Developing with the Java CDK
This page will walk through the process of developing with the Java CDK.
- Developing with the Java CDK
Intro to the Java CDK
What is included in the Java CDK?
The java CDK is comprised of separate modules, among which:
dependenciesandcore- Shared classes for building connectors of all types.db-sources- Shared classes for building DB sources.db-destinations- Shared classes for building DB destinations.
Each CDK submodule may contain these elements:
src/main- (Required.) The classes that will ship with the connector, providing capabilities to the connectors.src/test- (Required.) These are unit tests that run as part of every build of the CDK. They help ensure that CDKmaincode is in a healthy state.src/testFixtures- (Optional.) These shared classes are exported for connectors for use in the connectors' own test implementations. Connectors will have access to these classes within their unit and integration tests, but the classes will not be shipped with connectors when they are published.
How is the CDK published?
The CDK is published as a set of jar files sharing a version number. Every submodule generates one runtime jar for the main classes. If the submodule contains test fixtures, a second jar will be published with the test fixtures classes.
Note: Connectors do not have to manage which jars they should depend on, as this is handled
automatically by the airbyte-java-connector plugin. See example below.
Using the Java CDK
Building the CDK
To build and test the Java CDK, execute the following:
./gradlew :airbyte-cdk:java:airbyte-cdk:build
Bumping the CDK version
You will need to bump this version manually whenever you are making changes to code inside the CDK.
While under development, the next version number for the CDK is tracked in the file:
airbyte-cdk/java/airbyte-cdk/core/src/main/resources/version.properties.
If the CDK is not being modified, this file will contain the most recently published version number.
Publishing the CDK
⚠️ These steps should only be performed after all testing and approvals are in place on the PR. ⚠️
The CDK can be published with a GitHub Workflow and a slash command which can be run by Airbyte personnel.
To invoke via slash command (recommended), use the following syntax in a comment on the PR that contains your changes:
/publish-java-cdk # Run with the defaults (dry-run=false, force=false)
/publish-java-cdk dry-run=true # Run in dry-run mode (no-op)
/publish-java-cdk force=true # Force-publish if needing to replace an already published version
Note:
- Remember to document your changes in the Changelog section below.
- After you publish the CDK, remember to toggle
useLocalCdkback tofalsein all connectors. - Unless you specify
force=true, the pipeline should fail if the version you are trying to publish already exists. - By running the publish with
dry-run=true, you can confirm the process is working as expected, without actually publishing the changes. - In dry-run mode, you can also view and download the jars that are generated. To do so, navigate to the job status in GitHub Actions and navigate to the 'artifacts' section.
- You can also invoke manually in the GitHub Web UI. To do so: go to
Actionstab, select thePublish Java CDKworkflow, and clickRun workflow. - You can view and administer published CDK versions here: https://admin.cloudrepo.io/repository/airbyte-public-jars/io/airbyte/cdk
- The public endpoint for published CDK versions is here: https://airbyte.mycloudrepo.io/public/repositories/airbyte-public-jars/io/airbyte/cdk/
Developing Connectors with the Java CDK
Referencing the CDK from Java connectors
You can reference the CDK in your connector's build.gradle file:
plugins {
id 'airbyte-java-connector'
}
airbyteJavaConnector {
cdkVersionRequired = '0.1.0' // The CDK version to pin to.
features = ['db-destinations'] // An array of CDK features to depend on.
useLocalCdk = false // Use 'true' to use a live reference to the
// local cdk project.
}
Replace 0.1.0 with the CDK version you are working with. If you're actively developing the CDK and
want to use the latest version locally, use the useLocalCdk flag to use the live CDK code during
builds and tests.
Developing a connector alongside the CDK
You can iterate on changes in the CDK local and test them in the connector without needing to publish the CDK changes publicly.
When modifying the CDK and a connector in the same PR or branch, please use the following steps:
- Set the version of the CDK in
version.propertiesto the next appropriate version number and add a description in theChangelogat the bottom of this readme file. - Modify your connector's build.gradle file as follows:
- Set
useLocalCdktotruein the connector you are working on. This will ensure the connector always uses the local CDK definitions instead of the published version. - Set
cdkVersionRequiredto use the new to-be-published CDK version.
- Set
After the above, you can build and test your connector as usual. Gradle will automatically use the local CDK code files while you are working on the connector.
Publishing the CDK and switching to a pinned CDK reference
Once you are done developing and testing your CDK changes:
- Publish the CDK using the instructions here in this readme.
- After publishing the CDK, update the
useLocalCdksetting tofalse.
Troubleshooting CDK Dependency Caches
Note: after switching between a local and a pinned CDK reference, you may need to refresh dependency caches in Gradle and/or your IDE.
In Gradle, you can use the CLI arg --refresh-dependencies the next time you build or test your
connector, which will ensure that the correct version of the CDK is used after toggling the
useLocalCdk value.
Developing a connector against a pinned CDK version
You can always pin your connector to a prior stable version of the CDK, which may not match what is
the latest version in the airbyte repo. For instance, your connector can be pinned to 0.1.1
while the latest version may be 0.2.0.
Maven and Gradle will automatically reference the correct (pinned) version of the CDK for your connector, and you can use your local IDE to browse the prior version of the codebase that corresponds to that version.
Changelog
Java CDK
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 0.41.2 | 2024-07-12 | #40567 | Fix BaseSqlGenerator test case (generation_id support); update minimum platform version for refreshes support. |
| 0.41.1 | 2024-07-11 | #41212 | Improve debezium logging. |
| 0.41.0 | 2024-07-11 | #38240 | Sources : Changes in CDC interfaces to support WASS algorithm |
| 0.40.11 | 2024-07-08 | #41041 | Destinations: Fix truncate refreshes incorrectly discarding data if successful attempt had 0 records |
| 0.40.10 | 2024-07-05 | #40719 | Update test to refrlect isResumable field in catalog |
| 0.40.9 | 2024-07-01 | #39473 | minor changes around error logging and testing |
| 0.40.8 | 2024-07-01 | #40499 | Make JdbcDatabase SQL statement logging optional; add generation_id support to JdbcSqlGenerator |
| 0.40.7 | 2024-07-01 | #40516 | Remove dbz hearbeat. |
| (this version does not exist) | |||
| 0.40.5 | 2024-06-26 | #40517 | JdbcDatabase.executeWithinTransaction allows disabling SQL statement logging |
| 0.40.4 | 2024-06-18 | #40254 | Destinations: Do not throw on unrecognized airbyte message type (ignore message instead) |
| 0.40.3 | 2024-06-18 | #39526 | Destinations: INCOMPLETE stream status is a TRANSIENT error rather than SYSTEM |
| 0.40.2 | 2024-06-18 | #39552 | Destinations: Throw error if the ConfiguredCatalog has no streams |
| 0.40.1 | 2024-06-14 | #39349 | Source stats for full refresh streams |
| 0.40.0 | 2024-06-17 | #38622 | Destinations: Implement refreshes logic in AbstractStreamOperation |
| 0.39.0 | 2024-06-17 | #38067 | Destinations: Breaking changes for refreshes (fail on INCOMPLETE stream status; ignore OVERWRITE sync mode) |
| 0.38.3 | 2024-06-25 | #40499 | (backport) Make JdbcDatabase SQL statement logging optional; add generation_id support to JdbcSqlGenerator |
| 0.38.2 | 2024-06-14 | #39460 | Bump postgres JDBC driver version |
| 0.38.1 | 2024-06-13 | #39445 | Sources: More CDK changes to handle big initial snapshots. |
| 0.38.0 | 2024-06-11 | #39405 | Sources: Debezium properties manager interface changed to accept a list of streams to scope to |
| 0.37.1 | 2024-06-10 | #38075 | Destinations: Track stream statuses in async framework |
| 0.37.0 | 2024-06-10 | #38121 | Destinations: Set default namespace via CatalogParser |
| 0.36.8 | 2024-06-07 | #38763 | Increase Jackson message length limit |
| 0.36.7 | 2024-06-06 | #39220 | Handle null messages in ConnectorExceptionUtil |
| 0.36.6 | 2024-06-05 | #39106 | Skip write to storage with 0 byte file |
| 0.36.5 | 2024-06-01 | #38792 | Throw config exception if no selectable table exists in user provided schemas |
| 0.36.4 | 2024-05-31 | #38824 | Param marked as non-null to nullable in JdbcDestinationHandler for NPE fix |
| 0.36.2 | 2024-05-29 | #38538 | Exit connector when encountering a config error. |
| 0.36.0 | 2024-05-29 | #38358 | Plumb generation_id / sync_id to destinations code |
| 0.35.16 | 2024-06-25 | #40517 | (backport) JdbcDatabase.executeWithinTransaction allows disabling SQL statement logging |
| 0.35.15 | 2024-05-31 | #38824 | Param marked as non-null to nullable in JdbcDestinationHandler for NPE fix |
| 0.35.14 | 2024-05-28 | #38738 | make ThreadCreationInfo cast as nullable |
| 0.35.13 | 2024-05-28 | #38632 | minor changes to allow conversion of snowflake tests to kotlin |
| 0.35.12 | 2024-05-23 | #38638 | Minor change to support Snowflake conversion to Kotlin |
| 0.35.11 | 2024-05-23 | #38357 | This release fixes an error on the previous release. |
| 0.35.10 | 2024-05-23 | #38357 | Add shared code for db sources stream status trace messages and testing. |
| 0.35.9 | 2024-05-23 | #38586 | code cleanup |
| 0.35.9 | 2024-05-23 | #37583 | code cleanup |
| 0.35.9 | 2024-05-23 | #37555 | code cleanup |
| 0.35.9 | 2024-05-23 | #37540 | code cleanup |
| 0.35.9 | 2024-05-23 | #37539 | code cleanup |
| 0.35.9 | 2024-05-23 | #37538 | code cleanup |
| 0.35.9 | 2024-05-23 | #37537 | code cleanup |
| 0.35.9 | 2024-05-23 | #37518 | code cleanup |
| 0.35.8 | 2024-05-22 | #38572 | Add a temporary static method to decouple SnowflakeDestination from AbstractJdbcDestination |
| 0.35.7 | 2024-05-20 | #38357 | Decouple create namespace from per stream operation interface. |
| 0.35.6 | 2024-05-17 | #38107 | New interfaces for Destination connectors to plug into AsyncStreamConsumer |
| 0.35.5 | 2024-05-17 | #38204 | add assume-role authentication to s3 |
| 0.35.2 | 2024-05-13 | #38104 | Handle transient error messages |
| 0.35.0 | 2024-05-13 | #38127 | Destinations: Populate generation/sync ID on StreamConfig |
| 0.34.4 | 2024-05-10 | #37712 | make sure the exceptionHandler always terminates |
| 0.34.3 | 2024-05-10 | #38095 | Minor changes for databricks connector |
| 0.34.1 | 2024-05-07 | #38030 | Add support for transient errors |
| 0.34.0 | 2024-05-01 | #37712 | Destinations: Remove incremental T+D |
| 0.33.2 | 2024-05-03 | #37824 | improve source acceptance tests |
| 0.33.1 | 2024-05-03 | #37824 | Add a unit test for cursor based sync |
| 0.33.0 | 2024-05-03 | #36935 | Destinations: Enable non-safe-casting DV2 tests |
| 0.32.0 | 2024-05-03 | #36929 | Destinations: Assorted DV2 changes for mysql |
| 0.31.7 | 2024-05-02 | #36910 | changes for destination-snowflake |
| 0.31.6 | 2024-05-02 | #37746 | debuggability improvements. |
| 0.31.5 | 2024-04-30 | #37758 | Set debezium max retries to zero |
| 0.31.4 | 2024-04-30 | #37754 | Add DebeziumEngine notification log |
| 0.31.3 | 2024-04-30 | #37726 | Remove debezium retries |
| 0.31.2 | 2024-04-30 | #37507 | Better error messages when switching between global/per-stream modes. |
| 0.31.0 | 2024-04-26 | #37584 | Update S3 destination deps to exclude zookeeper and hadoop-yarn-common |
| 0.30.11 | 2024-04-25 | #36899 | changes for bigQuery destination. |
| 0.30.10 | 2024-04-24 | #37541 | remove excessive logging |
| 0.30.9 | 2024-04-24 | #37477 | remove unnecessary logs |
| 0.30.7 | 2024-04-23 | #37477 | fix kotlin warnings in core CDK submodule |
| 0.30.7 | 2024-04-23 | #37484 | fix kotlin warnings in dependencies CDK submodule |
| 0.30.7 | 2024-04-23 | #37479 | fix kotlin warnings in azure-destination, datastore-{bigquery,mongo,postgres} CDK submodules |
| 0.30.7 | 2024-04-23 | #37481 | fix kotlin warnings in destination CDK submodules |
| 0.30.7 | 2024-04-23 | #37482 | fix kotlin warnings in db-sources CDK submodule |
| 0.30.6 | 2024-04-19 | #37442 | Destinations: Rename File format related classes to be agnostic of S3 |
| 0.30.3 | 2024-04-12 | #37106 | Destinations: Simplify constructors in AsyncStreamConsumer |
| 0.30.2 | 2024-04-12 | #36926 | Destinations: Remove JdbcSqlOperations#formatData; misc changes for java interop |
| 0.30.1 | 2024-04-11 | #36919 | Fix regression in sources conversion of null values |
| 0.30.0 | 2024-04-11 | #36974 | Destinations: Pass config to jdbc sqlgenerator; allow cascade drop |
| 0.29.13 | 2024-04-10 | #36981 | DB sources : Emit analytics for data type serialization errors. |
| 0.29.12 | 2024-04-10 | #36973 | Destinations: Make flush batch size configurable for JdbcInsertFlush |
| 0.29.11 | 2024-04-10 | #36865 | Sources : Remove noisy log line. |
| 0.29.10 | 2024-04-10 | #36805 | Destinations: Enhance CatalogParser name collision handling; add DV2 tests for long identifiers |
| 0.29.9 | 2024-04-09 | #36047 | Destinations: CDK updates for raw-only destinations |
| 0.29.8 | 2024-04-08 | #36868 | Destinations: s3-destinations Compilation fixes for connector |
| 0.29.7 | 2024-04-08 | #36768 | Destinations: Make destination state fetch/commit logic more resilient to errors |
| 0.29.6 | 2024-04-05 | #36577 | Do not send system_error trace message for config exceptions. |
| 0.29.5 | 2024-04-05 | #36620 | Missed changes - open for extension for destination-postgres |
| 0.29.3 | 2024-04-04 | #36759 | Minor fixes. |
| 0.29.3 | 2024-04-04 | #36706 | Enabling spotbugs for s3-destination. |
| 0.29.3 | 2024-04-03 | #36705 | Enabling spotbugs for db-sources. |
| 0.29.3 | 2024-04-03 | #36704 | Enabling spotbugs for datastore-postgres. |
| 0.29.3 | 2024-04-03 | #36703 | Enabling spotbugs for gcs-destination. |
| 0.29.3 | 2024-04-03 | #36702 | Enabling spotbugs for db-destinations. |
| 0.29.3 | 2024-04-03 | #36701 | Enabling spotbugs for typing_and_deduping. |
| 0.29.3 | 2024-04-03 | #36612 | Enabling spotbugs for dependencies. |
| 0.29.5 | 2024-04-05 | #36577 | Do not send system_error trace message for config exceptions. |
| 0.29.3 | 2024-04-04 | #36759 | Minor fixes. |
| 0.29.3 | 2024-04-04 | #36706 | Enabling spotbugs for s3-destination. |
| 0.29.3 | 2024-04-03 | #36705 | Enabling spotbugs for db-sources. |
| 0.29.3 | 2024-04-03 | #36704 | Enabling spotbugs for datastore-postgres. |
| 0.29.3 | 2024-04-03 | #36703 | Enabling spotbugs for gcs-destination. |
| 0.29.3 | 2024-04-03 | #36702 | Enabling spotbugs for db-destinations. |
| 0.29.3 | 2024-04-03 | #36701 | Enabling spotbugs for typing_and_deduping. |
| 0.29.3 | 2024-04-03 | #36612 | Enabling spotbugs for dependencies. |
| 0.29.2 | 2024-04-04 | #36845 | Changes to make source-mongo compileable |
| 0.29.1 | 2024-04-03 | #36772 | Changes to make source-mssql compileable |
| 0.29.0 | 2024-04-02 | #36759 | Build artifact publication changes and fixes. |
| 0.28.21 | 2024-04-02 | #36673 | Change the destination message parsing to use standard java/kotlin classes. Adds logging to catch empty lines. |
| 0.28.20 | 2024-04-01 | #36584 | Changes to make source-postgres compileable |
| 0.28.19 | 2024-03-29 | #36619 | Changes to make destination-postgres compileable |
| 0.28.19 | 2024-03-29 | #36588 | Changes to make destination-redshift compileable |
| 0.28.19 | 2024-03-29 | #36610 | remove airbyte-api generation, pull depdendency jars instead |
| 0.28.19 | 2024-03-29 | #36611 | disable spotbugs for CDK tes and testFixtures tasks |
| 0.28.18 | 2024-03-28 | #36606 | disable spotbugs for CDK tes and testFixtures tasks |
| 0.28.18 | 2024-03-28 | #36574 | Fix ContainerFactory |
| 0.28.18 | 2024-03-27 | #36570 | Convert missing s3-destinations tests to Kotlin |
| 0.28.18 | 2024-03-27 | #36446 | Convert dependencies submodule to Kotlin |
| 0.28.18 | 2024-03-27 | #36445 | Convert functional out Checked interfaces to kotlin |
| 0.28.18 | 2024-03-27 | #36444 | Use apache-commons classes in our Checked functional interfaces |
| 0.28.18 | 2024-03-27 | #36467 | Convert #36465 to Kotlin |
| 0.28.18 | 2024-03-27 | #36473 | Convert convert #36396 to Kotlin |
| 0.28.18 | 2024-03-27 | #36439 | Convert db-destinations submodule to Kotlin |
| 0.28.18 | 2024-03-27 | #36438 | Convert db-sources submodule to Kotlin |
| 0.28.18 | 2024-03-26 | #36437 | Convert gsc submodule to Kotlin |
| 0.28.18 | 2024-03-26 | #36421 | Convert typing-deduping submodule to Kotlin |
| 0.28.18 | 2024-03-26 | #36420 | Convert s3-destinations submodule to Kotlin |
| 0.28.18 | 2024-03-26 | #36419 | Convert azure submodule to Kotlin |
| 0.28.18 | 2024-03-26 | #36413 | Convert postgres submodule to Kotlin |
| 0.28.18 | 2024-03-26 | #36412 | Convert mongodb submodule to Kotlin |
| 0.28.18 | 2024-03-26 | #36411 | Convert datastore-bigquery submodule to Kotlin |
| 0.28.18 | 2024-03-26 | #36205 | Convert core/main to Kotlin |
| 0.28.18 | 2024-03-26 | #36204 | Convert core/test to Kotlin |
| 0.28.18 | 2024-03-26 | #36190 | Convert core/testFixtures to Kotlin |
| 0.28.0 | 2024-03-26 | #36514 | Bump CDK version to 0.28.0 |
| 0.27.7 | 2024-03-26 | #36466 | Destinations: fix support for case-sensitive fields in destination state. |
| 0.27.6 | 2024-03-26 | #36432 | Sources support for AirbyteRecordMessageMeta during reading source data types. |
| 0.27.5 | 2024-03-25 | #36461 | Destinations: Handle case-sensitive columns in destination state handling. |
| 0.27.4 | 2024-03-25 | #36333 | Sunset DebeziumSourceDecoratingIterator. |
| 0.27.1 | 2024-03-22 | #36296 | Destinations: (async framework) Do not log invalid message data. |
| 0.27.0 | 2024-03-21 | #36364 | Sources: Increase debezium initial record wait time to 40 minute. |
| 0.26.1 | 2024-03-19 | #35599 | Sunset SourceDecoratingIterator. |
| 0.26.0 | 2024-03-19 | #36263 | Improve conversion of debezium Date type for some edge case in mssql. |
| 0.25.0 | 2024-03-18 | #36203 | Wiring of Transformer to StagingConsumerFactory and JdbcBufferedConsumerFactory; import changes for Kotlin conversion; State message logs to debug |
| 0.24.1 | 2024-03-13 | #36022 | Move log4j2-test.xml to test fixtures, away from runtime classpath. |
| 0.24.0 | 2024-03-13 | #35944 | Add _airbyte_meta in raw table and test fixture updates |
| 0.23.20 | 2024-03-12 | #36011 | Debezium configuration for conversion of null value on a column with default value. |
| 0.23.19 | 2024-03-11 | #35904 | Add retries to the debezium engine. |
| 0.23.18 | 2024-03-07 | #35899 | Null check when retrieving destination state |
| 0.23.16 | 2024-03-06 | #35842 | Improve logging in debezium processing. |
| 0.23.15 | 2024-03-05 | #35827 | improving the Junit interceptor. |
| 0.23.14 | 2024-03-05 | #35739 | Add logging to the CDC queue size. Fix the ContainerFactory. |
| 0.23.13 | 2024-03-04 | #35774 | minor changes to the CDK test fixtures. |
| 0.23.12 | 2024-03-01 | #35767 | introducing a timeout for java tests. |
| 0.23.11 | 2024-03-01 | #35313 | Preserve timezone offset in CSV writer for destinations |
| 0.23.10 | 2024-03-01 | #35303 | Migration framework with DestinationState for softReset |
| 0.23.9 | 2024-02-29 | #35720 | various improvements for tests TestDataHolder |
| 0.23.8 | 2024-02-28 | #35529 | Refactor on state iterators |
| 0.23.7 | 2024-02-28 | #35376 | Extract typereduper migrations to separte method |
| 0.23.6 | 2024-02-26 | #35647 | Add a getNamespace into TestDataHolder |
| 0.23.5 | 2024-02-26 | #35512 | Remove @DisplayName from all CDK tests. |
| 0.23.4 | 2024-02-26 | #35507 | Add more logs into TestDatabase. |
| 0.23.3 | 2024-02-26 | #35495 | Fix Junit Interceptor to print better stacktraces |
| 0.23.2 | 2024-02-22 | #35385 | Bugfix: inverted logic of disableTypeDedupe flag |
| 0.23.1 | 2024-02-22 | #35527 | reduce shutdow timeouts |
| 0.23.0 | 2024-02-22 | #35342 | Consolidate and perform upfront gathering of DB metadata state |
| 0.21.4 | 2024-02-21 | #35511 | Reduce CDC state compression limit to 1MB |
| 0.21.3 | 2024-02-20 | #35394 | Add Junit progress information to the test logs |
| 0.21.2 | 2024-02-20 | #34978 | Reduce log noise in NormalizationLogParser. |
| 0.21.1 | 2024-02-20 | #35199 | Add thread names to the logs. |
| 0.21.0 | 2024-02-16 | #35314 | Delete S3StreamCopier classes. These have been superseded by the async destinations framework. |
| 0.20.9 | 2024-02-15 | #35240 | Make state emission to platform inside state manager itself. |
| 0.20.8 | 2024-02-15 | #35285 | Improve blobstore module structure. |
| 0.20.7 | 2024-02-13 | #35236 | output logs to files in addition to stdout when running tests |
| 0.20.6 | 2024-02-12 | #35036 | Add trace utility to emit analytics messages. |
| 0.20.5 | 2024-02-13 | #34869 | Don't emit final state in SourceStateIterator there is an underlying stream failure. |
| 0.20.4 | 2024-02-12 | #35042 | Use delegate's isDestinationV2 invocation in SshWrappedDestination. |
| 0.20.3 | 2024-02-09 | #34580 | Support special chars in mysql/mssql database name. |
| 0.20.2 | 2024-02-12 | #35111 | Make state emission from async framework synchronized. |
| 0.20.1 | 2024-02-11 | #35111 | Fix GlobalAsyncStateManager stats counting logic. |
| 0.20.0 | 2024-02-09 | #34562 | Add new test cases to BaseTypingDedupingTest to exercise special characters. |
| 0.19.0 | 2024-02-01 | #34745 | Reorganize CDK module structure. |
| 0.18.0 | 2024-02-08 | #33606 | Add updated Initial and Incremental Stream State definitions for DB Sources. |
| 0.17.1 | 2024-02-08 | #35027 | Make state handling thread safe in async destination framework. |
| 0.17.0 | 2024-02-08 | #34502 | Enable configuring async destination batch size. |
| 0.16.6 | 2024-02-07 | #34892 | Improved testcontainers logging and support for unshared containers. |
| 0.16.5 | 2024-02-07 | #34948 | Fix source state stats counting logic |
| 0.16.4 | 2024-02-01 | #34727 | Add future based stdout consumer in BaseTypingDedupingTest |
| 0.16.3 | 2024-01-30 | #34669 | Fix org.apache.logging.log4j:log4j-slf4j-impl version conflicts. |
| 0.16.2 | 2024-01-29 | #34630 | expose NamingTransformer to sub-classes in destinations JdbcSqlGenerator. |
| 0.16.1 | 2024-01-29 | #34533 | Add a safe method to execute DatabaseMetadata's Resultset returning queries. |
| 0.16.0 | 2024-01-26 | #34573 | Untangle Debezium harness dependencies. |
| 0.15.2 | 2024-01-25 | #34441 | Improve airbyte-api build performance. |
| 0.15.1 | 2024-01-25 | #34451 | Async destinations: Better logging when we fail to parse an AirbyteMessage |
| 0.15.0 | 2024-01-23 | #34441 | Removed connector registry and micronaut dependencies. |
| 0.14.2 | 2024-01-24 | #34458 | Handle case-sensitivity in sentry error grouping |
| 0.14.1 | 2024-01-24 | #34468 | Add wait for process to be done before ending sync in destination BaseTDTest |
| 0.14.0 | 2024-01-23 | #34461 | Revert non backward compatible signature changes from 0.13.1 |
| 0.13.3 | 2024-01-23 | #34077 | Denote if destinations fully support Destinations V2 |
| 0.13.2 | 2024-01-18 | #34364 | Better logging in mongo db source connector |
| 0.13.1 | 2024-01-18 | #34236 | Add postCreateTable hook in destination JdbcSqlGenerator |
| 0.13.0 | 2024-01-16 | #34177 | Add useExpensiveSafeCasting param in JdbcSqlGenerator methods; add JdbcTypingDedupingTest fixture; other DV2-related changes |
| 0.12.1 | 2024-01-11 | #34186 | Add hook for additional destination specific checks to JDBC destination check method |
| 0.12.0 | 2024-01-10 | #33875 | Upgrade sshd-mina to 2.11.1 |
| 0.11.5 | 2024-01-10 | #34119 | Remove wal2json support for postgres+debezium. |
| 0.11.4 | 2024-01-09 | #33305 | Source stats in incremental syncs |
| 0.11.3 | 2023-01-09 | #33658 | Always fail when debezium fails, even if it happened during the setup phase. |
| 0.11.2 | 2024-01-09 | #33969 | Destination state stats implementation |
| 0.11.1 | 2024-01-04 | #33727 | SSH bastion heartbeats for Destinations |
| 0.11.0 | 2024-01-04 | #33730 | DV2 T+D uses Sql struct to represent transactions; other T+D-related changes |
| 0.10.4 | 2023-12-20 | #33071 | Add the ability to parse JDBC parameters with another delimiter than '&' |
| 0.10.3 | 2024-01-03 | #33312 | Send out count in AirbyteStateMessage |
| 0.10.1 | 2023-12-21 | #33723 | Make memory-manager log message less scary |
| 0.10.0 | 2023-12-20 | #33704 | JdbcDestinationHandler now properly implements getInitialRawTableState; reenable SqlGenerator test |
| 0.9.0 | 2023-12-18 | #33124 | Make Schema Creation Separate from Table Creation, exclude the T&D module from the CDK |
| 0.8.0 | 2023-12-18 | #33506 | Improve async destination shutdown logic; more JDBC async migration work; improve DAT test schema handling |
| 0.7.9 | 2023-12-18 | #33549 | Improve MongoDB logging. |
| 0.7.8 | 2023-12-18 | #33365 | Emit stream statuses more consistently |
| 0.7.7 | 2023-12-18 | #33434 | Remove LEGACY state |
| 0.7.6 | 2023-12-14 | #32328 | Add schema less mode for mongodb CDC. Fixes for non standard mongodb id type. |
| 0.7.4 | 2023-12-13 | #33232 | Track stream record count during sync; only run T+D if a stream had nonzero records or the previous sync left unprocessed records. |
| 0.7.3 | 2023-12-13 | #33369 | Extract shared JDBC T+D code. |
| 0.7.2 | 2023-12-11 | #33307 | Fix DV2 JDBC type mappings (code changes in #33307). |
| 0.7.1 | 2023-12-01 | #33027 | Add the abstract DB source debugger. |
| 0.7.0 | 2023-12-07 | #32326 | Destinations V2 changes for JDBC destinations |
| 0.6.4 | 2023-12-06 | #33082 | Improvements to schema snapshot error handling + schema snapshot history scope (scoped to configured DB). |
| 0.6.2 | 2023-11-30 | #32573 | Update MSSQLConverter to enforce 6-digit microsecond precision for timestamp fields |
| 0.6.1 | 2023-11-30 | #32610 | Support DB initial sync using binary as primary key. |
| 0.6.0 | 2023-11-30 | #32888 | JDBC destinations now use the async framework |
| 0.5.3 | 2023-11-28 | #32686 | Better attribution of debezium engine shutdown due to heartbeat. |
| 0.5.1 | 2023-11-27 | #32662 | Debezium initialization wait time will now read from initial setup time. |
| 0.5.0 | 2023-11-22 | #32656 | Introduce TestDatabase test fixture, refactor database source test base classes. |
| 0.4.11 | 2023-11-14 | #32526 | Clean up memory manager logs. |
| 0.4.10 | 2023-11-13 | #32285 | Fix UUID codec ordering for MongoDB connector |
| 0.4.9 | 2023-11-13 | #32468 | Further error grouping improvements for DV2 connectors |
| 0.4.8 | 2023-11-09 | #32377 | source-postgres tests: skip dropping database |
| 0.4.7 | 2023-11-08 | #31856 | source-postgres: support for infinity date and timestamps |
| 0.4.5 | 2023-11-07 | #32112 | Async destinations framework: Allow configuring the queue flush threshold |
| 0.4.4 | 2023-11-06 | #32119 | Add STANDARD UUID codec to MongoDB debezium handler |
| 0.4.2 | 2023-11-06 | #32190 | Improve error deinterpolation |
| 0.4.1 | 2023-11-02 | #32192 | Add 's3-destinations' CDK module. |
| 0.4.0 | 2023-11-02 | #32050 | Fix compiler warnings. |
| 0.3.0 | 2023-11-02 | #31983 | Add deinterpolation feature to AirbyteExceptionHandler. |
| 0.2.4 | 2023-10-31 | #31807 | Handle case of debezium update and delete of records in mongodb. |
| 0.2.3 | 2023-10-31 | #32022 | Update Debezium version from 2.20 -> 2.4.0. |
| 0.2.2 | 2023-10-31 | #31976 | Debezium tweaks to make tests run faster. |
| 0.2.0 | 2023-10-30 | #31960 | Hoist top-level gradle subprojects into CDK. |
| 0.1.12 | 2023-10-24 | #31674 | Fail sync when Debezium does not shut down properly. |
| 0.1.11 | 2023-10-18 | #31486 | Update constants in AdaptiveSourceRunner. |
| 0.1.9 | 2023-10-12 | #31309 | Use toPlainString() when handling BigDecimals in PostgresConverter |
| 0.1.8 | 2023-10-11 | #31322 | Cap log line length to 32KB to prevent loss of records |
| 0.1.7 | 2023-10-10 | #31194 | Deallocate unused per stream buffer memory when empty |
| 0.1.6 | 2023-10-10 | #31083 | Fix precision of numeric values in async destinations |
| 0.1.5 | 2023-10-09 | #31196 | Update typo in CDK (CDN_LSN -> CDC_LSN) |
| 0.1.4 | 2023-10-06 | #31139 | Reduce async buffer |
| 0.1.1 | 2023-09-28 | #30835 | JDBC destinations now avoid staging area name collisions by using the raw table name as the stage name. (previously we used the stream name as the stage name) |
| 0.1.0 | 2023-09-27 | #30445 | First launch, including shared classes for all connectors. |
| 0.0.2 | 2023-08-21 | #28687 | Version bump only (no other changes). |
| 0.0.1 | 2023-08-08 | #28687 | Initial release for testing. |