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 ff8f09ed1be433..0b0b32aec14c75 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -96,7 +96,7 @@ - name: BigQuery sourceDefinitionId: bfd1ddf8-ae8a-4620-b1d7-55597d2ba08c dockerRepository: airbyte/source-bigquery - dockerImageTag: 0.1.8 + dockerImageTag: 0.1.9 documentationUrl: https://docs.airbyte.io/integrations/sources/bigquery icon: bigquery.svg sourceType: database @@ -168,7 +168,7 @@ - name: Cockroachdb sourceDefinitionId: 9fa5862c-da7c-11eb-8d19-0242ac130003 dockerRepository: airbyte/source-cockroachdb - dockerImageTag: 0.1.12 + dockerImageTag: 0.1.13 documentationUrl: https://docs.airbyte.io/integrations/sources/cockroachdb icon: cockroachdb.svg sourceType: database @@ -414,7 +414,7 @@ - name: IBM Db2 sourceDefinitionId: 447e0381-3780-4b46-bb62-00a4e3c8b8e2 dockerRepository: airbyte/source-db2 - dockerImageTag: 0.1.11 + dockerImageTag: 0.1.12 documentationUrl: https://docs.airbyte.io/integrations/sources/db2 icon: db2.svg sourceType: database @@ -556,7 +556,7 @@ - name: Microsoft SQL Server (MSSQL) sourceDefinitionId: b5ea17b1-f170-46dc-bc31-cc744ca984c1 dockerRepository: airbyte/source-mssql - dockerImageTag: 0.4.9 + dockerImageTag: 0.4.10 documentationUrl: https://docs.airbyte.io/integrations/sources/mssql icon: mssql.svg sourceType: database @@ -604,7 +604,7 @@ - name: MySQL sourceDefinitionId: 435bb9a5-7887-4809-aa58-28c27df0d7ad dockerRepository: airbyte/source-mysql - dockerImageTag: 0.5.15 + dockerImageTag: 0.5.16 documentationUrl: https://docs.airbyte.io/integrations/sources/mysql icon: mysql.svg sourceType: database @@ -643,7 +643,7 @@ - name: Oracle DB sourceDefinitionId: b39a7370-74c3-45a6-ac3a-380d48520a83 dockerRepository: airbyte/source-oracle - dockerImageTag: 0.3.17 + dockerImageTag: 0.3.18 documentationUrl: https://docs.airbyte.io/integrations/sources/oracle icon: oracle.svg sourceType: database @@ -754,7 +754,7 @@ - name: Postgres sourceDefinitionId: decd338e-5647-4c0b-adf4-da0e75f5a750 dockerRepository: airbyte/source-postgres - dockerImageTag: 0.4.34 + dockerImageTag: 0.4.35 documentationUrl: https://docs.airbyte.io/integrations/sources/postgres icon: postgresql.svg sourceType: database @@ -802,7 +802,7 @@ - name: Redshift sourceDefinitionId: e87ffa8e-a3b5-f69c-9076-6011339de1f6 dockerRepository: airbyte/source-redshift - dockerImageTag: 0.3.10 + dockerImageTag: 0.3.11 documentationUrl: https://docs.airbyte.io/integrations/sources/redshift icon: redshift.svg sourceType: database @@ -905,7 +905,7 @@ - name: Snowflake sourceDefinitionId: e2d65910-8c8b-40a1-ae7d-ee2416b2bfa2 dockerRepository: airbyte/source-snowflake - dockerImageTag: 0.1.12 + dockerImageTag: 0.1.13 documentationUrl: https://docs.airbyte.io/integrations/sources/snowflake icon: snowflake.svg sourceType: database 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 e06d4b6e0f04bf..c67c13e1653555 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -830,7 +830,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-bigquery:0.1.8" +- dockerImage: "airbyte/source-bigquery:0.1.9" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/bigquery" connectionSpecification: @@ -840,7 +840,6 @@ required: - "project_id" - "credentials_json" - additionalProperties: false properties: project_id: type: "string" @@ -1359,7 +1358,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-cockroachdb:0.1.12" +- dockerImage: "airbyte/source-cockroachdb:0.1.13" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/cockroachdb" connectionSpecification: @@ -1371,7 +1370,6 @@ - "port" - "database" - "username" - additionalProperties: false properties: host: title: "Host" @@ -3808,7 +3806,7 @@ - - "client_secret" oauthFlowOutputParameters: - - "refresh_token" -- dockerImage: "airbyte/source-db2:0.1.11" +- dockerImage: "airbyte/source-db2:0.1.12" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/db2" connectionSpecification: @@ -3822,7 +3820,6 @@ - "username" - "password" - "encryption" - additionalProperties: false properties: host: description: "Host of the Db2." @@ -3859,7 +3856,6 @@ order: 5 oneOf: - title: "Unencrypted" - additionalProperties: false description: "Data transfer will not be encrypted." required: - "encryption_method" @@ -3871,7 +3867,6 @@ - "unencrypted" default: "unencrypted" - title: "TLS Encrypted (verify certificate)" - additionalProperties: false description: "Verify and use the cert provided by the server." required: - "encryption_method" @@ -4988,7 +4983,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-mssql:0.4.9" +- dockerImage: "airbyte/source-mssql:0.4.10" spec: documentationUrl: "https://docs.airbyte.io/integrations/destinations/mssql" connectionSpecification: @@ -5000,7 +4995,6 @@ - "port" - "database" - "username" - additionalProperties: true properties: host: description: "The hostname of the database." @@ -5049,7 +5043,6 @@ order: 6 oneOf: - title: "Unencrypted" - additionalProperties: false description: "Data transfer will not be encrypted." required: - "ssl_method" @@ -5061,7 +5054,6 @@ - "unencrypted" default: "unencrypted" - title: "Encrypted (trust server certificate)" - additionalProperties: false description: "Use the certificate provided by the server without verification.\ \ (For testing purposes only!)" required: @@ -5074,7 +5066,6 @@ - "encrypted_trust_server_certificate" default: "encrypted_trust_server_certificate" - title: "Encrypted (verify certificate)" - additionalProperties: false description: "Verify and use the certificate provided by the server." required: - "ssl_method" @@ -5102,11 +5093,9 @@ \ inserts, updates, and deletes. This needs to be configured on the source\ \ database itself." default: "STANDARD" - additionalProperties: true order: 8 oneOf: - title: "Standard" - additionalProperties: false description: "Standard replication requires no setup on the DB side but\ \ will not be able to represent deletions incrementally." required: @@ -5120,7 +5109,6 @@ default: "STANDARD" order: 0 - title: "Logical Replication (CDC)" - additionalProperties: false description: "CDC uses {TBC} to detect inserts, updates, and deletes.\ \ This needs to be configured on the source database itself." required: @@ -5771,7 +5759,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-mysql:0.5.15" +- dockerImage: "airbyte/source-mysql:0.5.16" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/mysql" connectionSpecification: @@ -5784,7 +5772,6 @@ - "database" - "username" - "replication_method" - additionalProperties: false properties: host: description: "The host name of the database." @@ -6299,7 +6286,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-oracle:0.3.17" +- dockerImage: "airbyte/source-oracle:0.3.18" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/oracle" connectionSpecification: @@ -6311,7 +6298,6 @@ - "port" - "sid" - "username" - additionalProperties: false properties: host: title: "Host" @@ -6368,7 +6354,6 @@ order: 8 oneOf: - title: "Unencrypted" - additionalProperties: false description: "Data transfer will not be encrypted." required: - "encryption_method" @@ -6380,7 +6365,6 @@ - "unencrypted" default: "unencrypted" - title: "Native Network Encryption (NNE)" - additionalProperties: false description: "The native network encryption gives you the ability to encrypt\ \ database connections, without the configuration overhead of TCP/IP\ \ and SSL/TLS and without the need to open and listen on different ports." @@ -6404,7 +6388,6 @@ - "RC4_56" - "3DES168" - title: "TLS Encrypted (verify certificate)" - additionalProperties: false description: "Verify and use the certificate provided by the server." required: - "encryption_method" @@ -7064,7 +7047,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-postgres:0.4.34" +- dockerImage: "airbyte/source-postgres:0.4.35" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/postgres" connectionSpecification: @@ -7076,7 +7059,6 @@ - "port" - "database" - "username" - additionalProperties: false properties: host: title: "Host" @@ -7285,7 +7267,6 @@ order: 8 oneOf: - title: "Standard" - additionalProperties: false description: "Standard replication requires no setup on the DB side but\ \ will not be able to represent deletions incrementally." required: @@ -7299,7 +7280,6 @@ default: "Standard" order: 0 - title: "Logical Replication (CDC)" - additionalProperties: false description: "Logical replication uses the Postgres write-ahead log (WAL)\ \ to detect inserts, updates, and deletes. This needs to be configured\ \ on the source database itself. Only available on Postgres 10 and above.\ @@ -7656,7 +7636,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-redshift:0.3.10" +- dockerImage: "airbyte/source-redshift:0.3.11" spec: documentationUrl: "https://docs.airbyte.io/integrations/destinations/redshift" connectionSpecification: @@ -7669,7 +7649,6 @@ - "database" - "username" - "password" - additionalProperties: false properties: host: title: "Host" @@ -8788,7 +8767,7 @@ - - "client_secret" oauthFlowOutputParameters: - - "refresh_token" -- dockerImage: "airbyte/source-snowflake:0.1.12" +- dockerImage: "airbyte/source-snowflake:0.1.13" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/snowflake" connectionSpecification: @@ -8801,7 +8780,6 @@ - "warehouse" - "database" - "schema" - additionalProperties: true properties: credentials: title: "Authorization Method" @@ -8927,7 +8905,6 @@ oauth_config_specification: oauth_user_input_from_connector_config_specification: type: "object" - additionalProperties: false properties: host: type: "string" @@ -8935,7 +8912,6 @@ - "host" complete_oauth_output_specification: type: "object" - additionalProperties: false properties: access_token: type: "string" @@ -8949,7 +8925,6 @@ - "refresh_token" complete_oauth_server_input_specification: type: "object" - additionalProperties: false properties: client_id: type: "string" @@ -8957,7 +8932,6 @@ type: "string" complete_oauth_server_output_specification: type: "object" - additionalProperties: false properties: client_id: type: "string" diff --git a/airbyte-integrations/connectors/source-bigquery/Dockerfile b/airbyte-integrations/connectors/source-bigquery/Dockerfile index dc501b8357f4ca..5a9b95c4448336 100644 --- a/airbyte-integrations/connectors/source-bigquery/Dockerfile +++ b/airbyte-integrations/connectors/source-bigquery/Dockerfile @@ -17,5 +17,5 @@ ENV APPLICATION source-bigquery COPY --from=build /airbyte /airbyte # Airbyte's build system uses these labels to know what to name and tag the docker images produced by this Dockerfile. -LABEL io.airbyte.version=0.1.8 +LABEL io.airbyte.version=0.1.9 LABEL io.airbyte.name=airbyte/source-bigquery diff --git a/airbyte-integrations/connectors/source-bigquery/src/main/resources/spec.json b/airbyte-integrations/connectors/source-bigquery/src/main/resources/spec.json index 50d54368ab4744..13185cc7e970c7 100644 --- a/airbyte-integrations/connectors/source-bigquery/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-bigquery/src/main/resources/spec.json @@ -9,7 +9,6 @@ "title": "BigQuery Source Spec", "type": "object", "required": ["project_id", "credentials_json"], - "additionalProperties": false, "properties": { "project_id": { "type": "string", diff --git a/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/build.gradle b/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/build.gradle index 7116dd22ab3ef3..913c114460afb3 100644 --- a/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/build.gradle +++ b/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/build.gradle @@ -18,7 +18,7 @@ dependencies { implementation project(':airbyte-protocol:protocol-models') implementation files(project(':airbyte-integrations:bases:base-java').airbyteDocker.outputs) - implementation 'ru.yandex.clickhouse:clickhouse-jdbc:0.3.1' + implementation group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.3.2-patch9' integrationTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') integrationTestJavaImplementation project(':airbyte-integrations:connectors:source-clickhouse') diff --git a/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/src/test-integration/resources/expected_spec.json b/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/src/test-integration/resources/expected_spec.json index 8ae21a8351dbee..985e302f8b2763 100644 --- a/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/src/test-integration/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-clickhouse-strict-encrypt/src/test-integration/resources/expected_spec.json @@ -5,7 +5,6 @@ "title": "ClickHouse Source Spec", "type": "object", "required": ["host", "port", "database", "username"], - "additionalProperties": false, "properties": { "host": { "description": "The host endpoint of the Clickhouse cluster.", diff --git a/airbyte-integrations/connectors/source-clickhouse/build.gradle b/airbyte-integrations/connectors/source-clickhouse/build.gradle index 5280ad611802a8..77d94cae31c22f 100644 --- a/airbyte-integrations/connectors/source-clickhouse/build.gradle +++ b/airbyte-integrations/connectors/source-clickhouse/build.gradle @@ -17,7 +17,7 @@ dependencies { implementation project(':airbyte-protocol:protocol-models') implementation files(project(':airbyte-integrations:bases:base-java').airbyteDocker.outputs) - implementation 'ru.yandex.clickhouse:clickhouse-jdbc:0.3.1' + implementation group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.3.2-patch9' integrationTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') integrationTestJavaImplementation project(':airbyte-integrations:connectors:source-clickhouse') diff --git a/airbyte-integrations/connectors/source-clickhouse/src/main/resources/spec.json b/airbyte-integrations/connectors/source-clickhouse/src/main/resources/spec.json index ced34efdfbf52d..7b28b58ff35932 100644 --- a/airbyte-integrations/connectors/source-clickhouse/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-clickhouse/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "ClickHouse Source Spec", "type": "object", "required": ["host", "port", "database", "username"], - "additionalProperties": false, "properties": { "host": { "description": "The host endpoint of the Clickhouse cluster.", diff --git a/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/Dockerfile index b3ee12030a544b..b9e65f2f3406e8 100644 --- a/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-cockroachdb-strict-encrypt COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.1.13 +LABEL io.airbyte.version=0.1.14 LABEL io.airbyte.name=airbyte/source-cockroachdb-strict-encrypt diff --git a/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/src/main/resources/expected_spec.json b/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/src/main/resources/expected_spec.json index e02992b151d8cf..37ce4ffec1b8fa 100644 --- a/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/src/main/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-cockroachdb-strict-encrypt/src/main/resources/expected_spec.json @@ -5,7 +5,6 @@ "title": "Cockroach Source Spec", "type": "object", "required": ["host", "port", "database", "username"], - "additionalProperties": false, "properties": { "host": { "title": "Host", diff --git a/airbyte-integrations/connectors/source-cockroachdb/Dockerfile b/airbyte-integrations/connectors/source-cockroachdb/Dockerfile index 8ae1e6922049af..311ad518b9dcdb 100644 --- a/airbyte-integrations/connectors/source-cockroachdb/Dockerfile +++ b/airbyte-integrations/connectors/source-cockroachdb/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-cockroachdb COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.1.12 +LABEL io.airbyte.version=0.1.13 LABEL io.airbyte.name=airbyte/source-cockroachdb diff --git a/airbyte-integrations/connectors/source-cockroachdb/src/main/resources/spec.json b/airbyte-integrations/connectors/source-cockroachdb/src/main/resources/spec.json index 0d1215c074da8a..8b0bff81317154 100644 --- a/airbyte-integrations/connectors/source-cockroachdb/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-cockroachdb/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "Cockroach Source Spec", "type": "object", "required": ["host", "port", "database", "username"], - "additionalProperties": false, "properties": { "host": { "title": "Host", diff --git a/airbyte-integrations/connectors/source-cockroachdb/src/test-integration/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceAcceptanceTest.java b/airbyte-integrations/connectors/source-cockroachdb/src/test-integration/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceAcceptanceTest.java index 54fe61172b726d..7294db87a25951 100644 --- a/airbyte-integrations/connectors/source-cockroachdb/src/test-integration/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceAcceptanceTest.java +++ b/airbyte-integrations/connectors/source-cockroachdb/src/test-integration/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceAcceptanceTest.java @@ -14,6 +14,7 @@ import io.airbyte.db.factory.DatabaseDriver; import io.airbyte.integrations.standardtest.source.SourceAcceptanceTest; import io.airbyte.integrations.standardtest.source.TestDestinationEnv; +import io.airbyte.integrations.util.HostPortResolver; import io.airbyte.protocol.models.CatalogHelpers; import io.airbyte.protocol.models.ConfiguredAirbyteCatalog; import io.airbyte.protocol.models.ConfiguredAirbyteStream; @@ -23,6 +24,8 @@ import io.airbyte.protocol.models.JsonSchemaType; import io.airbyte.protocol.models.SyncMode; import java.util.HashMap; +import java.util.Objects; + import org.jooq.DSLContext; import org.jooq.SQLDialect; import org.testcontainers.containers.CockroachContainer; @@ -41,9 +44,14 @@ protected void setupEnvironment(final TestDestinationEnv environment) throws Exc container.start(); config = Jsons.jsonNode(ImmutableMap.builder() - .put("host", container.getHost()) + .put("host", Objects.requireNonNull(container.getContainerInfo() + .getNetworkSettings() + .getNetworks() + .entrySet().stream() + .findFirst() + .get().getValue().getIpAddress())) // by some reason it return not a port number as exposed and mentioned in logs - .put("port", container.getFirstMappedPort() - 1) + .put("port", container.getExposedPorts().get(1)) .put("database", container.getDatabaseName()) .put("username", container.getUsername()) .put("password", container.getPassword()) diff --git a/airbyte-integrations/connectors/source-cockroachdb/src/test-integration/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceDatatypeTest.java b/airbyte-integrations/connectors/source-cockroachdb/src/test-integration/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceDatatypeTest.java index d7a9d59e865f10..357d2f86fd0f77 100644 --- a/airbyte-integrations/connectors/source-cockroachdb/src/test-integration/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceDatatypeTest.java +++ b/airbyte-integrations/connectors/source-cockroachdb/src/test-integration/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceDatatypeTest.java @@ -13,8 +13,11 @@ import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest; import io.airbyte.integrations.standardtest.source.TestDataHolder; import io.airbyte.integrations.standardtest.source.TestDestinationEnv; +import io.airbyte.integrations.util.HostPortResolver; import io.airbyte.protocol.models.JsonSchemaType; import java.sql.SQLException; +import java.util.Objects; + import org.jooq.DSLContext; import org.jooq.SQLDialect; import org.slf4j.Logger; @@ -35,9 +38,13 @@ protected Database setupDatabase() throws SQLException { container.start(); config = Jsons.jsonNode(ImmutableMap.builder() - .put("host", container.getHost()) - // by some reason it return not a port number as exposed and mentioned in logs - .put("port", container.getFirstMappedPort() - 1) + .put("host", Objects.requireNonNull(container.getContainerInfo() + .getNetworkSettings() + .getNetworks() + .entrySet().stream() + .findFirst() + .get().getValue().getIpAddress())) + .put("port", container.getExposedPorts().get(1)) .put("database", container.getDatabaseName()) .put("username", container.getUsername()) .put("password", container.getPassword()) diff --git a/airbyte-integrations/connectors/source-cockroachdb/src/test/java/io/airbyte/integrations/source/cockroachdb/CockroachDbJdbcSourceAcceptanceTest.java b/airbyte-integrations/connectors/source-cockroachdb/src/test/java/io/airbyte/integrations/source/cockroachdb/CockroachDbJdbcSourceAcceptanceTest.java index 9fb55debe528f7..dfe06dc4e193ad 100644 --- a/airbyte-integrations/connectors/source-cockroachdb/src/test/java/io/airbyte/integrations/source/cockroachdb/CockroachDbJdbcSourceAcceptanceTest.java +++ b/airbyte-integrations/connectors/source-cockroachdb/src/test/java/io/airbyte/integrations/source/cockroachdb/CockroachDbJdbcSourceAcceptanceTest.java @@ -22,6 +22,7 @@ import io.airbyte.integrations.source.jdbc.test.JdbcSourceAcceptanceTest; import io.airbyte.integrations.source.relationaldb.models.DbState; import io.airbyte.integrations.source.relationaldb.models.DbStreamState; +import io.airbyte.integrations.util.HostPortResolver; import io.airbyte.protocol.models.AirbyteCatalog; import io.airbyte.protocol.models.AirbyteConnectionStatus; import io.airbyte.protocol.models.AirbyteConnectionStatus.Status; @@ -38,10 +39,7 @@ import io.airbyte.protocol.models.JsonSchemaType; import io.airbyte.protocol.models.SyncMode; import java.sql.JDBCType; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; @@ -61,6 +59,7 @@ class CockroachDbJdbcSourceAcceptanceTest extends JdbcSourceAcceptanceTest { public static Long ID_VALUE_5 = 5L; private JsonNode config; + private String dbName; @BeforeAll static void init() { @@ -70,18 +69,26 @@ static void init() { @BeforeEach public void setup() throws Exception { - final String dbName = Strings.addRandomSuffix("db", "_", 10).toLowerCase(); + dbName = Strings.addRandomSuffix("db", "_", 10).toLowerCase(); config = Jsons.jsonNode(ImmutableMap.builder() - .put("host", PSQL_DB.getHost()) - .put("port", PSQL_DB.getFirstMappedPort() - 1) + .put("host", Objects.requireNonNull(PSQL_DB.getContainerInfo() + .getNetworkSettings() + .getNetworks() + .entrySet().stream() + .findFirst() + .get().getValue().getIpAddress())) + .put("port", PSQL_DB.getExposedPorts().get(1)) .put("database", dbName) .put("username", PSQL_DB.getUsername()) .put("password", PSQL_DB.getPassword()) .put("ssl", false) .build()); - final JsonNode jdbcConfig = getToDatabaseConfigFunction().apply(config); + final JsonNode clone = Jsons.clone(config); + ((ObjectNode) clone).put("database", PSQL_DB.getDatabaseName()); + final JsonNode jdbcConfig = getToDatabaseConfigFunction().apply(clone); + database = new DefaultJdbcDatabase( DataSourceFactory.create( jdbcConfig.get("username").asText(), @@ -89,10 +96,16 @@ public void setup() throws Exception { getDriverClass(), jdbcConfig.get("jdbc_url").asText(), JdbcUtils.parseJdbcParameters(jdbcConfig, "connection_properties"))); - database.execute(connection -> connection.createStatement().execute("CREATE DATABASE " + config.get("database") + ";")); + database.execute(connection -> connection.createStatement().execute("CREATE DATABASE " + dbName + ";")); super.setup(); } + @Override + protected String createTableQuery(final String tableName, final String columnClause, final String primaryKeyClause) { + return String.format("CREATE TABLE " + dbName + ".%s(%s %s %s)", + tableName, columnClause, primaryKeyClause.equals("") ? "" : ",", primaryKeyClause); + } + @Override public boolean supportsSchemas() { return true; @@ -263,10 +276,10 @@ void testReadOneTableIncrementallyTwice() throws Exception { database.execute(connection -> { connection.createStatement().execute( - String.format("INSERT INTO %s(id, name, updated_at) VALUES (4,'riker', '2006-10-19')", + String.format("INSERT INTO " + dbName + ".%s(id, name, updated_at) VALUES (4,'riker', '2006-10-19')", getFullyQualifiedTableName(TABLE_NAME))); connection.createStatement().execute( - String.format("INSERT INTO %s(id, name, updated_at) VALUES (5, 'data', '2006-10-19')", + String.format("INSERT INTO " + dbName + ".%s(id, name, updated_at) VALUES (5, 'data', '2006-10-19')", getFullyQualifiedTableName(TABLE_NAME))); }); @@ -292,6 +305,7 @@ void testReadOneTableIncrementallyTwice() throws Exception { expectedMessages.add(new AirbyteMessage() .withType(Type.STATE) .withState(new AirbyteStateMessage() + .withType(AirbyteStateMessage.AirbyteStateType.LEGACY) .withData(Jsons.jsonNode(new DbState() .withCdc(false) .withStreams(Lists.newArrayList(new DbStreamState() @@ -322,13 +336,13 @@ void testReadMultipleTables() throws Exception { createTableQuery(getFullyQualifiedTableName(TABLE_NAME + iFinal), "id INTEGER, name VARCHAR(200)", "")); connection.createStatement() - .execute(String.format("INSERT INTO %s(id, name) VALUES (1,'picard')", + .execute(String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES (1,'picard')", getFullyQualifiedTableName(TABLE_NAME + iFinal))); connection.createStatement() - .execute(String.format("INSERT INTO %s(id, name) VALUES (2, 'crusher')", + .execute(String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES (2, 'crusher')", getFullyQualifiedTableName(TABLE_NAME + iFinal))); connection.createStatement() - .execute(String.format("INSERT INTO %s(id, name) VALUES (3, 'vash')", + .execute(String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES (3, 'vash')", getFullyQualifiedTableName(TABLE_NAME + iFinal))); }); catalog.getStreams().add(CatalogHelpers.createConfiguredAirbyteStream( @@ -370,13 +384,13 @@ void testReadMultipleTablesIncrementally() throws Exception { createTableQuery(getFullyQualifiedTableName(tableName2), "id INTEGER, name VARCHAR(200)", "")); ctx.createStatement().execute( - String.format("INSERT INTO %s(id, name) VALUES (1,'picard')", + String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES (1,'picard')", getFullyQualifiedTableName(tableName2))); ctx.createStatement().execute( - String.format("INSERT INTO %s(id, name) VALUES (2, 'crusher')", + String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES (2, 'crusher')", getFullyQualifiedTableName(tableName2))); ctx.createStatement().execute( - String.format("INSERT INTO %s(id, name) VALUES (3, 'vash')", + String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES (3, 'vash')", getFullyQualifiedTableName(tableName2))); }); @@ -422,6 +436,7 @@ void testReadMultipleTablesIncrementally() throws Exception { expectedMessagesFirstSync.add(new AirbyteMessage() .withType(Type.STATE) .withState(new AirbyteStateMessage() + .withType(AirbyteStateMessage.AirbyteStateType.LEGACY) .withData(Jsons.jsonNode(new DbState() .withCdc(false) .withStreams(Lists.newArrayList( @@ -439,6 +454,7 @@ void testReadMultipleTablesIncrementally() throws Exception { expectedMessagesFirstSync.add(new AirbyteMessage() .withType(Type.STATE) .withState(new AirbyteStateMessage() + .withType(AirbyteStateMessage.AirbyteStateType.LEGACY) .withData(Jsons.jsonNode(new DbState() .withCdc(false) .withStreams(Lists.newArrayList( @@ -471,16 +487,16 @@ void testDiscoverWithMultipleSchemas() throws Exception { // add table and data to a separate schema. database.execute(connection -> { connection.createStatement().execute( - String.format("CREATE TABLE %s(id VARCHAR(200), name VARCHAR(200))", + String.format("CREATE TABLE " + dbName + ".%s(id VARCHAR(200), name VARCHAR(200))", sourceOperations.getFullyQualifiedTableName(SCHEMA_NAME2, TABLE_NAME))); connection.createStatement() - .execute(String.format("INSERT INTO %s(id, name) VALUES ('1','picard')", + .execute(String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES ('1','picard')", sourceOperations.getFullyQualifiedTableName(SCHEMA_NAME2, TABLE_NAME))); connection.createStatement() - .execute(String.format("INSERT INTO %s(id, name) VALUES ('2', 'crusher')", + .execute(String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES ('2', 'crusher')", sourceOperations.getFullyQualifiedTableName(SCHEMA_NAME2, TABLE_NAME))); connection.createStatement() - .execute(String.format("INSERT INTO %s(id, name) VALUES ('3', 'vash')", + .execute(String.format("INSERT INTO " + dbName + ".%s(id, name) VALUES ('3', 'vash')", sourceOperations.getFullyQualifiedTableName(SCHEMA_NAME2, TABLE_NAME))); }); diff --git a/airbyte-integrations/connectors/source-cockroachdb/src/test/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceTest.java b/airbyte-integrations/connectors/source-cockroachdb/src/test/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceTest.java index e6fb1610b6a98b..798145454e45a0 100644 --- a/airbyte-integrations/connectors/source-cockroachdb/src/test/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceTest.java +++ b/airbyte-integrations/connectors/source-cockroachdb/src/test/java/io/airbyte/integrations/source/cockroachdb/CockroachDbSourceTest.java @@ -17,6 +17,7 @@ import io.airbyte.db.Database; import io.airbyte.db.factory.DSLContextFactory; import io.airbyte.db.factory.DatabaseDriver; +import io.airbyte.integrations.util.HostPortResolver; import io.airbyte.protocol.models.AirbyteCatalog; import io.airbyte.protocol.models.AirbyteMessage; import io.airbyte.protocol.models.AirbyteMessage.Type; @@ -28,11 +29,7 @@ import io.airbyte.protocol.models.JsonSchemaType; import io.airbyte.protocol.models.SyncMode; import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import org.jooq.DSLContext; import org.jooq.SQLDialect; @@ -103,26 +100,30 @@ static void init() { void setup() throws Exception { dbName = Strings.addRandomSuffix("db", "_", 10).toLowerCase(); - final JsonNode config = getConfig(PSQL_DB, dbName); + final JsonNode config = getConfig(PSQL_DB, null); try (final DSLContext dslContext = getDslContext(config)) { final Database database = getDatabase(dslContext); database.query(ctx -> { ctx.fetch("CREATE DATABASE " + dbName + ";"); ctx.fetch( - "CREATE TABLE id_and_name(id NUMERIC(20, 10), name VARCHAR(200), power double precision, PRIMARY KEY (id));"); - ctx.fetch("CREATE INDEX i1 ON id_and_name (id);"); + "CREATE TABLE " + dbName + ".id_and_name(id NUMERIC(20, 10), name VARCHAR(200), power double precision, PRIMARY KEY (id));"); + ctx.fetch("CREATE INDEX i1 ON " + dbName + ".id_and_name (id);"); ctx.fetch( - "INSERT INTO id_and_name (id, name, power) VALUES (1,'goku', 'Infinity'), (2, 'vegeta', 9000.1), ('NaN', 'piccolo', '-Infinity');"); + "INSERT INTO " + dbName + + ".id_and_name (id, name, power) VALUES (1,'goku', 'Infinity'), (2, 'vegeta', 9000.1), ('NaN', 'piccolo', '-Infinity');"); ctx.fetch( - "CREATE TABLE id_and_name2(id NUMERIC(20, 10), name VARCHAR(200), power double precision);"); + "CREATE TABLE " + dbName + ".id_and_name2(id NUMERIC(20, 10), name VARCHAR(200), power double precision);"); ctx.fetch( - "INSERT INTO id_and_name2 (id, name, power) VALUES (1,'goku', 'Infinity'), (2, 'vegeta', 9000.1), ('NaN', 'piccolo', '-Infinity');"); + "INSERT INTO " + dbName + + ".id_and_name2 (id, name, power) VALUES (1,'goku', 'Infinity'), (2, 'vegeta', 9000.1), ('NaN', 'piccolo', '-Infinity');"); ctx.fetch( - "CREATE TABLE names(first_name VARCHAR(200), last_name VARCHAR(200), power double precision, PRIMARY KEY (first_name, last_name));"); + "CREATE TABLE " + dbName + + ".names(first_name VARCHAR(200), last_name VARCHAR(200), power double precision, PRIMARY KEY (first_name, last_name));"); ctx.fetch( - "INSERT INTO names (first_name, last_name, power) VALUES ('san', 'goku', 'Infinity'), ('prince', 'vegeta', 9000.1), ('piccolo', 'junior', '-Infinity');"); + "INSERT INTO " + dbName + + ".names (first_name, last_name, power) VALUES ('san', 'goku', 'Infinity'), ('prince', 'vegeta', 9000.1), ('piccolo', 'junior', '-Infinity');"); return null; }); } @@ -150,9 +151,14 @@ private JsonNode getConfig(final CockroachContainer psqlDb, final String dbName) private JsonNode getConfig(final CockroachContainer psqlDb, final String dbName, final String username) { return Jsons.jsonNode(ImmutableMap.builder() - .put("host", psqlDb.getHost()) - .put("port", psqlDb.getFirstMappedPort() - 1) - .put("database", dbName) + .put("host", Objects.requireNonNull(PSQL_DB.getContainerInfo() + .getNetworkSettings() + .getNetworks() + .entrySet().stream() + .findFirst() + .get().getValue().getIpAddress())) + .put("port", psqlDb.getExposedPorts().get(1)) + .put("database", dbName == null ? psqlDb.getDatabaseName() : dbName) .put("username", username) .put("password", psqlDb.getPassword()) .put("ssl", false) diff --git a/airbyte-integrations/connectors/source-db2-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-db2-strict-encrypt/Dockerfile index 4340d6cc98bd8e..d044b803ef900a 100644 --- a/airbyte-integrations/connectors/source-db2-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-db2-strict-encrypt/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-db2-strict-encrypt COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.1.11 +LABEL io.airbyte.version=0.1.12 LABEL io.airbyte.name=airbyte/source-db2-strict-encrypt diff --git a/airbyte-integrations/connectors/source-db2-strict-encrypt/src/test/resources/expected_spec.json b/airbyte-integrations/connectors/source-db2-strict-encrypt/src/test/resources/expected_spec.json index ce5f76dad3213c..eb30afcfe92c6f 100644 --- a/airbyte-integrations/connectors/source-db2-strict-encrypt/src/test/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-db2-strict-encrypt/src/test/resources/expected_spec.json @@ -5,7 +5,6 @@ "title": "IBM Db2 Source Spec", "type": "object", "required": ["host", "port", "db", "username", "password", "encryption"], - "additionalProperties": false, "properties": { "host": { "description": "Host of the Db2.", @@ -46,7 +45,6 @@ "oneOf": [ { "title": "TLS Encrypted (verify certificate)", - "additionalProperties": false, "description": "Verify and use the cert provided by the server.", "required": ["encryption_method", "ssl_certificate"], "properties": { diff --git a/airbyte-integrations/connectors/source-db2/Dockerfile b/airbyte-integrations/connectors/source-db2/Dockerfile index 379bf889370e32..01a5ff1c62fc8f 100644 --- a/airbyte-integrations/connectors/source-db2/Dockerfile +++ b/airbyte-integrations/connectors/source-db2/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-db2 COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.1.11 +LABEL io.airbyte.version=0.1.12 LABEL io.airbyte.name=airbyte/source-db2 diff --git a/airbyte-integrations/connectors/source-db2/src/main/resources/spec.json b/airbyte-integrations/connectors/source-db2/src/main/resources/spec.json index 070cb90af90082..31af53be8891e2 100644 --- a/airbyte-integrations/connectors/source-db2/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-db2/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "IBM Db2 Source Spec", "type": "object", "required": ["host", "port", "db", "username", "password", "encryption"], - "additionalProperties": false, "properties": { "host": { "description": "Host of the Db2.", @@ -46,7 +45,6 @@ "oneOf": [ { "title": "Unencrypted", - "additionalProperties": false, "description": "Data transfer will not be encrypted.", "required": ["encryption_method"], "properties": { @@ -60,7 +58,6 @@ }, { "title": "TLS Encrypted (verify certificate)", - "additionalProperties": false, "description": "Verify and use the cert provided by the server.", "required": ["encryption_method", "ssl_certificate"], "properties": { diff --git a/airbyte-integrations/connectors/source-jdbc/src/main/resources/spec.json b/airbyte-integrations/connectors/source-jdbc/src/main/resources/spec.json index 83e56422038d35..38b1e8f7aa7319 100644 --- a/airbyte-integrations/connectors/source-jdbc/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-jdbc/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "JDBC Source Spec", "type": "object", "required": ["username", "jdbc_url"], - "additionalProperties": false, "properties": { "username": { "title": "Username", diff --git a/airbyte-integrations/connectors/source-mssql-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-mssql-strict-encrypt/Dockerfile index e8bf7ab9936cb6..261083f6d7a6b0 100644 --- a/airbyte-integrations/connectors/source-mssql-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-mssql-strict-encrypt/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-mssql-strict-encrypt COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.4.6 +LABEL io.airbyte.version=0.4.7 LABEL io.airbyte.name=airbyte/source-mssql-strict-encrypt diff --git a/airbyte-integrations/connectors/source-mssql-strict-encrypt/src/test/resources/expected_spec.json b/airbyte-integrations/connectors/source-mssql-strict-encrypt/src/test/resources/expected_spec.json index f96e0b83bc405d..af6cc24193fd1a 100644 --- a/airbyte-integrations/connectors/source-mssql-strict-encrypt/src/test/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-mssql-strict-encrypt/src/test/resources/expected_spec.json @@ -5,7 +5,6 @@ "title": "MSSQL Source Spec", "type": "object", "required": ["host", "port", "database", "username"], - "additionalProperties": true, "properties": { "host": { "description": "The hostname of the database.", @@ -56,7 +55,6 @@ "oneOf": [ { "title": "Encrypted (trust server certificate)", - "additionalProperties": false, "description": "Use the certificate provided by the server without verification. (For testing purposes only!)", "required": ["ssl_method"], "properties": { @@ -70,7 +68,6 @@ }, { "title": "Encrypted (verify certificate)", - "additionalProperties": false, "description": "Verify and use the certificate provided by the server.", "required": ["ssl_method", "trustStoreName", "trustStorePassword"], "properties": { @@ -95,12 +92,10 @@ "title": "Replication Method", "description": "The replication method used for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.", "default": "STANDARD", - "additionalProperties": true, "order": 8, "oneOf": [ { "title": "Standard", - "additionalProperties": false, "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.", "required": ["replication_type"], "properties": { @@ -115,7 +110,6 @@ }, { "title": "Logical Replication (CDC)", - "additionalProperties": false, "description": "CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.", "required": ["replication_type"], "properties": { diff --git a/airbyte-integrations/connectors/source-mssql/Dockerfile b/airbyte-integrations/connectors/source-mssql/Dockerfile index 3865ce0fd27405..2809a7b5bde45d 100644 --- a/airbyte-integrations/connectors/source-mssql/Dockerfile +++ b/airbyte-integrations/connectors/source-mssql/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-mssql COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.4.9 +LABEL io.airbyte.version=0.4.10 LABEL io.airbyte.name=airbyte/source-mssql diff --git a/airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json b/airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json index 042885e6786e73..aba59c81aa7f27 100644 --- a/airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "MSSQL Source Spec", "type": "object", "required": ["host", "port", "database", "username"], - "additionalProperties": true, "properties": { "host": { "description": "The hostname of the database.", @@ -56,7 +55,6 @@ "oneOf": [ { "title": "Unencrypted", - "additionalProperties": false, "description": "Data transfer will not be encrypted.", "required": ["ssl_method"], "properties": { @@ -70,7 +68,6 @@ }, { "title": "Encrypted (trust server certificate)", - "additionalProperties": false, "description": "Use the certificate provided by the server without verification. (For testing purposes only!)", "required": ["ssl_method"], "properties": { @@ -84,7 +81,6 @@ }, { "title": "Encrypted (verify certificate)", - "additionalProperties": false, "description": "Verify and use the certificate provided by the server.", "required": ["ssl_method", "trustStoreName", "trustStorePassword"], "properties": { @@ -109,12 +105,10 @@ "title": "Replication Method", "description": "The replication method used for extracting data from the database. STANDARD replication requires no setup on the DB side but will not be able to represent deletions incrementally. CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.", "default": "STANDARD", - "additionalProperties": true, "order": 8, "oneOf": [ { "title": "Standard", - "additionalProperties": false, "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.", "required": ["replication_type"], "properties": { @@ -129,7 +123,6 @@ }, { "title": "Logical Replication (CDC)", - "additionalProperties": false, "description": "CDC uses {TBC} to detect inserts, updates, and deletes. This needs to be configured on the source database itself.", "required": ["replication_type"], "properties": { diff --git a/airbyte-integrations/connectors/source-mysql-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-mysql-strict-encrypt/Dockerfile index 9c98b4ead299a1..6fe752841296b4 100644 --- a/airbyte-integrations/connectors/source-mysql-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-mysql-strict-encrypt/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-mysql-strict-encrypt COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.5.15 +LABEL io.airbyte.version=0.5.16 LABEL io.airbyte.name=airbyte/source-mysql-strict-encrypt diff --git a/airbyte-integrations/connectors/source-mysql-strict-encrypt/src/test/resources/expected_spec.json b/airbyte-integrations/connectors/source-mysql-strict-encrypt/src/test/resources/expected_spec.json index 1aac8a064b23e4..1bd91e3f0f91a6 100644 --- a/airbyte-integrations/connectors/source-mysql-strict-encrypt/src/test/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-mysql-strict-encrypt/src/test/resources/expected_spec.json @@ -5,7 +5,6 @@ "title": "MySql Source Spec", "type": "object", "required": ["host", "port", "database", "username", "replication_method"], - "additionalProperties": false, "properties": { "host": { "description": "The host name of the database.", diff --git a/airbyte-integrations/connectors/source-mysql/Dockerfile b/airbyte-integrations/connectors/source-mysql/Dockerfile index 1444cba8665c16..985de5fe5d7f75 100644 --- a/airbyte-integrations/connectors/source-mysql/Dockerfile +++ b/airbyte-integrations/connectors/source-mysql/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-mysql COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.5.15 +LABEL io.airbyte.version=0.5.16 LABEL io.airbyte.name=airbyte/source-mysql diff --git a/airbyte-integrations/connectors/source-mysql/src/main/resources/spec.json b/airbyte-integrations/connectors/source-mysql/src/main/resources/spec.json index c6a652f3e48ef7..6021b6a02102e1 100644 --- a/airbyte-integrations/connectors/source-mysql/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-mysql/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "MySql Source Spec", "type": "object", "required": ["host", "port", "database", "username", "replication_method"], - "additionalProperties": false, "properties": { "host": { "description": "The host name of the database.", diff --git a/airbyte-integrations/connectors/source-oracle-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-oracle-strict-encrypt/Dockerfile index 96726701554ad1..030f9909887a2e 100644 --- a/airbyte-integrations/connectors/source-oracle-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-oracle-strict-encrypt/Dockerfile @@ -17,5 +17,5 @@ ENV TZ UTC COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.3.15 +LABEL io.airbyte.version=0.3.16 LABEL io.airbyte.name=airbyte/source-oracle-strict-encrypt diff --git a/airbyte-integrations/connectors/source-oracle-strict-encrypt/src/test/java/io/airbyte/integrations/source/oracle_strict_encrypt/OracleStrictEncryptJdbcSourceAcceptanceTest.java b/airbyte-integrations/connectors/source-oracle-strict-encrypt/src/test/java/io/airbyte/integrations/source/oracle_strict_encrypt/OracleStrictEncryptJdbcSourceAcceptanceTest.java index e82d20cc358d00..50deb2189f2107 100644 --- a/airbyte-integrations/connectors/source-oracle-strict-encrypt/src/test/java/io/airbyte/integrations/source/oracle_strict_encrypt/OracleStrictEncryptJdbcSourceAcceptanceTest.java +++ b/airbyte-integrations/connectors/source-oracle-strict-encrypt/src/test/java/io/airbyte/integrations/source/oracle_strict_encrypt/OracleStrictEncryptJdbcSourceAcceptanceTest.java @@ -5,6 +5,7 @@ package io.airbyte.integrations.source.oracle_strict_encrypt; import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import com.fasterxml.jackson.databind.JsonNode; @@ -281,16 +282,6 @@ protected List getTestMessages() { COL_NAME, "vash", COL_UPDATED_AT, "2006-10-19T00:00:00.000000Z"))))); } - - @Test - void testIncrementalTimestampCheckCursor() throws Exception { - incrementalCursorCheck( - COL_UPDATED_AT, - "2005-10-18T00:00:00.000000Z", - "2006-10-19T00:00:00.000000Z", - Lists.newArrayList(getTestMessages().get(1), getTestMessages().get(2))); - } - @Test void testReadOneTableIncrementallyTwice() throws Exception { final String namespace = getDefaultNamespace(); @@ -302,58 +293,67 @@ void testReadOneTableIncrementallyTwice() throws Exception { }); final DbState state = new DbState() - .withStreams(Lists.newArrayList(new DbStreamState().withStreamName(streamName).withStreamNamespace(namespace))); + .withStreams(Lists.newArrayList(new DbStreamState().withStreamName(streamName).withStreamNamespace(namespace))); final List actualMessagesFirstSync = MoreIterators - .toList(source.read(config, configuredCatalog, Jsons.jsonNode(state))); + .toList(source.read(config, configuredCatalog, Jsons.jsonNode(state))); final Optional stateAfterFirstSyncOptional = actualMessagesFirstSync.stream() - .filter(r -> r.getType() == AirbyteMessage.Type.STATE).findFirst(); + .filter(r -> r.getType() == AirbyteMessage.Type.STATE).findFirst(); assertTrue(stateAfterFirstSyncOptional.isPresent()); database.execute(connection -> { connection.createStatement().execute( - String.format("INSERT INTO %s(id, name, updated_at) VALUES (4,'riker', '2006-10-19')", - getFullyQualifiedTableName(TABLE_NAME))); + String.format("INSERT INTO %s(id, name, updated_at) VALUES (4,'riker', '2006-10-19')", + getFullyQualifiedTableName(TABLE_NAME))); connection.createStatement().execute( - String.format("INSERT INTO %s(id, name, updated_at) VALUES (5, 'data', '2006-10-19')", - getFullyQualifiedTableName(TABLE_NAME))); + String.format("INSERT INTO %s(id, name, updated_at) VALUES (5, 'data', '2006-10-19')", + getFullyQualifiedTableName(TABLE_NAME))); }); final List actualMessagesSecondSync = MoreIterators - .toList(source.read(config, configuredCatalog, - stateAfterFirstSyncOptional.get().getState().getData())); + .toList(source.read(config, configuredCatalog, + stateAfterFirstSyncOptional.get().getState().getData())); Assertions.assertEquals(2, - (int) actualMessagesSecondSync.stream().filter(r -> r.getType() == AirbyteMessage.Type.RECORD).count()); + (int) actualMessagesSecondSync.stream().filter(r -> r.getType() == AirbyteMessage.Type.RECORD).count()); final List expectedMessages = new ArrayList<>(); expectedMessages.add(new AirbyteMessage().withType(AirbyteMessage.Type.RECORD) - .withRecord(new AirbyteRecordMessage().withStream(streamName).withNamespace(namespace) - .withData(Jsons.jsonNode(ImmutableMap - .of(COL_ID, ID_VALUE_4, - COL_NAME, "riker", - COL_UPDATED_AT, "2006-10-19T00:00:00.000000Z"))))); + .withRecord(new AirbyteRecordMessage().withStream(streamName).withNamespace(namespace) + .withData(Jsons.jsonNode(ImmutableMap + .of(COL_ID, ID_VALUE_4, + COL_NAME, "riker", + COL_UPDATED_AT, "2006-10-19T00:00:00.000000Z"))))); expectedMessages.add(new AirbyteMessage().withType(AirbyteMessage.Type.RECORD) - .withRecord(new AirbyteRecordMessage().withStream(streamName).withNamespace(namespace) - .withData(Jsons.jsonNode(ImmutableMap - .of(COL_ID, ID_VALUE_5, - COL_NAME, "data", - COL_UPDATED_AT, "2006-10-19T00:00:00.000000Z"))))); + .withRecord(new AirbyteRecordMessage().withStream(streamName).withNamespace(namespace) + .withData(Jsons.jsonNode(ImmutableMap + .of(COL_ID, ID_VALUE_5, + COL_NAME, "data", + COL_UPDATED_AT, "2006-10-19T00:00:00.000000Z"))))); expectedMessages.add(new AirbyteMessage() - .withType(AirbyteMessage.Type.STATE) - .withState(new AirbyteStateMessage() - .withData(Jsons.jsonNode(new DbState() - .withCdc(false) - .withStreams(Lists.newArrayList(new DbStreamState() - .withStreamName(streamName) - .withStreamNamespace(namespace) - .withCursorField(ImmutableList.of(COL_ID)) - .withCursor("5"))))))); + .withType(AirbyteMessage.Type.STATE) + .withState(new AirbyteStateMessage() + .withType(AirbyteStateMessage.AirbyteStateType.LEGACY) + .withData(Jsons.jsonNode(new DbState() + .withCdc(false) + .withStreams(Lists.newArrayList(new DbStreamState() + .withStreamName(streamName) + .withStreamNamespace(namespace) + .withCursorField(ImmutableList.of(COL_ID)) + .withCursor("5"))))))); setEmittedAtToNull(actualMessagesSecondSync); - assertTrue(expectedMessages.size() == actualMessagesSecondSync.size()); + assertArrayEquals(expectedMessages.toArray(), actualMessagesSecondSync.toArray()); assertTrue(expectedMessages.containsAll(actualMessagesSecondSync)); assertTrue(actualMessagesSecondSync.containsAll(expectedMessages)); } + @Test + void testIncrementalTimestampCheckCursor() throws Exception { + incrementalCursorCheck( + COL_UPDATED_AT, + "2005-10-18T00:00:00.000000Z", + "2006-10-19T00:00:00.000000Z", + Lists.newArrayList(getTestMessages().get(1), getTestMessages().get(2))); + } } diff --git a/airbyte-integrations/connectors/source-oracle-strict-encrypt/src/test/resources/expected_spec.json b/airbyte-integrations/connectors/source-oracle-strict-encrypt/src/test/resources/expected_spec.json index 0a7cdf7cdfdcb7..4c0c66c1d5af37 100644 --- a/airbyte-integrations/connectors/source-oracle-strict-encrypt/src/test/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-oracle-strict-encrypt/src/test/resources/expected_spec.json @@ -5,12 +5,12 @@ "title": "Oracle Source Spec", "type": "object", "required": ["host", "port", "sid", "username", "encryption"], - "additionalProperties": false, "properties": { "host": { "title": "Host", "description": "Hostname of the database.", - "type": "string" + "type": "string", + "order": 1 }, "port": { "title": "Port", @@ -18,22 +18,26 @@ "type": "integer", "minimum": 0, "maximum": 65536, - "default": 1521 + "default": 1521, + "order": 2 }, "sid": { "title": "SID (Oracle System Identifier)", - "type": "string" + "type": "string", + "order": 3 }, "username": { "title": "User", "description": "The username which is used to access the database.", - "type": "string" + "type": "string", + "order": 4 }, "password": { "title": "Password", "description": "The password associated with the username.", "type": "string", - "airbyte_secret": true + "airbyte_secret": true, + "order": 5 }, "schemas": { "title": "Schemas", @@ -43,17 +47,23 @@ "type": "string" }, "minItems": 1, - "uniqueItems": true + "uniqueItems": true, + "order": 6 + }, + "jdbc_url_params": { + "title": "JDBC URL Params", + "description": "Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).", + "type": "string", + "order": 7 }, "encryption": { "title": "Encryption", "type": "object", "description": "The encryption method with is used when communicating with the database.", - "order": 6, + "order": 8, "oneOf": [ { "title": "Native Network Encryption (NNE)", - "additionalProperties": false, "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.", "required": ["encryption_method"], "properties": { @@ -74,7 +84,6 @@ }, { "title": "TLS Encrypted (verify certificate)", - "additionalProperties": false, "description": "Verify and use the certificate provided by the server.", "required": ["encryption_method", "ssl_certificate"], "properties": { diff --git a/airbyte-integrations/connectors/source-oracle/Dockerfile b/airbyte-integrations/connectors/source-oracle/Dockerfile index f543c204501bad..2e6f9348df7699 100644 --- a/airbyte-integrations/connectors/source-oracle/Dockerfile +++ b/airbyte-integrations/connectors/source-oracle/Dockerfile @@ -8,5 +8,5 @@ ENV TZ UTC COPY build/distributions/${APPLICATION}*.tar ${APPLICATION}.tar RUN tar xf ${APPLICATION}.tar --strip-components=1 -LABEL io.airbyte.version=0.3.17 +LABEL io.airbyte.version=0.3.18 LABEL io.airbyte.name=airbyte/source-oracle diff --git a/airbyte-integrations/connectors/source-oracle/src/main/resources/spec.json b/airbyte-integrations/connectors/source-oracle/src/main/resources/spec.json index 4ad4d6aecc6578..d3bfbdc3a3af4d 100644 --- a/airbyte-integrations/connectors/source-oracle/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-oracle/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "Oracle Source Spec", "type": "object", "required": ["host", "port", "sid", "username"], - "additionalProperties": false, "properties": { "host": { "title": "Host", @@ -65,7 +64,6 @@ "oneOf": [ { "title": "Unencrypted", - "additionalProperties": false, "description": "Data transfer will not be encrypted.", "required": ["encryption_method"], "properties": { @@ -79,7 +77,6 @@ }, { "title": "Native Network Encryption (NNE)", - "additionalProperties": false, "description": "The native network encryption gives you the ability to encrypt database connections, without the configuration overhead of TCP/IP and SSL/TLS and without the need to open and listen on different ports.", "required": ["encryption_method"], "properties": { @@ -100,7 +97,6 @@ }, { "title": "TLS Encrypted (verify certificate)", - "additionalProperties": false, "description": "Verify and use the certificate provided by the server.", "required": ["encryption_method", "ssl_certificate"], "properties": { diff --git a/airbyte-integrations/connectors/source-oracle/src/test-integration/java/io/airbyte/integrations/source/oracle/OracleSourceDatatypeTest.java b/airbyte-integrations/connectors/source-oracle/src/test-integration/java/io/airbyte/integrations/source/oracle/OracleSourceDatatypeTest.java index af2e4262575f69..96d65d89512e5f 100644 --- a/airbyte-integrations/connectors/source-oracle/src/test-integration/java/io/airbyte/integrations/source/oracle/OracleSourceDatatypeTest.java +++ b/airbyte-integrations/connectors/source-oracle/src/test-integration/java/io/airbyte/integrations/source/oracle/OracleSourceDatatypeTest.java @@ -275,15 +275,6 @@ protected void initTests() { .addExpectedValues("c29tZSBjb250ZW50IGhlcmU=", null) .build()); - addDataTypeTestData( - TestDataHolder.builder() - .sourceType("LONG") - .airbyteType(JsonSchemaType.STRING) - .fullSourceDataType("LONG RAW") - .addInsertValues("utl_raw.cast_to_raw('some content here')", "null") - .addExpectedValues("c29tZSBjb250ZW50IGhlcmU=", null) - .build()); - addDataTypeTestData( TestDataHolder.builder() .sourceType("XMLTYPE") diff --git a/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile index 9fa9019735211b..fa31301b1f5f69 100644 --- a/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-postgres-strict-encrypt COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.4.34 +LABEL io.airbyte.version=0.4.35 LABEL io.airbyte.name=airbyte/source-postgres-strict-encrypt diff --git a/airbyte-integrations/connectors/source-postgres/Dockerfile b/airbyte-integrations/connectors/source-postgres/Dockerfile index 971cdf5cb67ad4..fedd06670b6e42 100644 --- a/airbyte-integrations/connectors/source-postgres/Dockerfile +++ b/airbyte-integrations/connectors/source-postgres/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-postgres COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.4.34 +LABEL io.airbyte.version=0.4.35 LABEL io.airbyte.name=airbyte/source-postgres diff --git a/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json b/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json index 8c004874e6448c..9dd9a0a229d4c6 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "Postgres Source Spec", "type": "object", "required": ["host", "port", "database", "username"], - "additionalProperties": false, "properties": { "host": { "title": "Host", @@ -224,7 +223,6 @@ "oneOf": [ { "title": "Standard", - "additionalProperties": false, "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.", "required": ["method"], "properties": { @@ -239,7 +237,6 @@ }, { "title": "Logical Replication (CDC)", - "additionalProperties": false, "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the Postgres Source docs for more information.", "required": ["method", "replication_slot", "publication"], "properties": { diff --git a/airbyte-integrations/connectors/source-postgres/src/test/resources/expected_spec.json b/airbyte-integrations/connectors/source-postgres/src/test/resources/expected_spec.json index 8d81417afeee34..5d2a0dcd10d50f 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/test/resources/expected_spec.json @@ -5,7 +5,6 @@ "title": "Postgres Source Spec", "type": "object", "required": ["host", "port", "database", "username"], - "additionalProperties": false, "properties": { "host": { "title": "Host", @@ -202,7 +201,6 @@ "oneOf": [ { "title": "Standard", - "additionalProperties": false, "description": "Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.", "required": ["method"], "properties": { @@ -217,7 +215,6 @@ }, { "title": "Logical Replication (CDC)", - "additionalProperties": false, "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the Postgres Source docs for more information.", "required": ["method", "replication_slot", "publication"], "properties": { diff --git a/airbyte-integrations/connectors/source-redshift/Dockerfile b/airbyte-integrations/connectors/source-redshift/Dockerfile index a743455d2227c1..9a9c16a8ed54ed 100644 --- a/airbyte-integrations/connectors/source-redshift/Dockerfile +++ b/airbyte-integrations/connectors/source-redshift/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-redshift COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.3.10 +LABEL io.airbyte.version=0.3.11 LABEL io.airbyte.name=airbyte/source-redshift diff --git a/airbyte-integrations/connectors/source-redshift/src/main/resources/spec.json b/airbyte-integrations/connectors/source-redshift/src/main/resources/spec.json index 6f1924433f9907..f3a55df7640daf 100644 --- a/airbyte-integrations/connectors/source-redshift/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-redshift/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "Redshift Source Spec", "type": "object", "required": ["host", "port", "database", "username", "password"], - "additionalProperties": false, "properties": { "host": { "title": "Host", diff --git a/airbyte-integrations/connectors/source-snowflake/Dockerfile b/airbyte-integrations/connectors/source-snowflake/Dockerfile index 7d904bc10687fd..7a917c353705a5 100644 --- a/airbyte-integrations/connectors/source-snowflake/Dockerfile +++ b/airbyte-integrations/connectors/source-snowflake/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-snowflake COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=0.1.12 +LABEL io.airbyte.version=0.1.13 LABEL io.airbyte.name=airbyte/source-snowflake diff --git a/airbyte-integrations/connectors/source-snowflake/src/main/resources/spec.json b/airbyte-integrations/connectors/source-snowflake/src/main/resources/spec.json index 689926366c68eb..fef26b120d2fde 100644 --- a/airbyte-integrations/connectors/source-snowflake/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-snowflake/src/main/resources/spec.json @@ -5,7 +5,6 @@ "title": "Snowflake Source Spec", "type": "object", "required": ["host", "role", "warehouse", "database", "schema"], - "additionalProperties": true, "properties": { "credentials": { "title": "Authorization Method", @@ -134,7 +133,6 @@ "oauth_config_specification": { "oauth_user_input_from_connector_config_specification": { "type": "object", - "additionalProperties": false, "properties": { "host": { "type": "string", @@ -144,7 +142,6 @@ }, "complete_oauth_output_specification": { "type": "object", - "additionalProperties": false, "properties": { "access_token": { "type": "string", @@ -158,7 +155,6 @@ }, "complete_oauth_server_input_specification": { "type": "object", - "additionalProperties": false, "properties": { "client_id": { "type": "string" @@ -170,7 +166,6 @@ }, "complete_oauth_server_output_specification": { "type": "object", - "additionalProperties": false, "properties": { "client_id": { "type": "string", diff --git a/airbyte-integrations/connectors/source-snowflake/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/SnowflakeSourceAuthAcceptanceTest.java b/airbyte-integrations/connectors/source-snowflake/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/SnowflakeSourceAuthAcceptanceTest.java index 4c94bc94dd900e..8e018d43e30126 100644 --- a/airbyte-integrations/connectors/source-snowflake/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/SnowflakeSourceAuthAcceptanceTest.java +++ b/airbyte-integrations/connectors/source-snowflake/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/SnowflakeSourceAuthAcceptanceTest.java @@ -20,7 +20,7 @@ public class SnowflakeSourceAuthAcceptanceTest extends SnowflakeSourceAcceptance protected DataSource createDataSource() { final HikariDataSource dataSource = new HikariDataSource(); final Properties properties = new Properties(); - final JsonNode config = getStaticConfig(); + config = getStaticConfig(); final StringBuilder jdbcUrl = new StringBuilder( String.format("jdbc:snowflake://%s/?", config.get("host").asText())); diff --git a/docs/integrations/sources/bigquery.md b/docs/integrations/sources/bigquery.md index a2c411b55aee21..6be71edaa5f97d 100644 --- a/docs/integrations/sources/bigquery.md +++ b/docs/integrations/sources/bigquery.md @@ -88,6 +88,7 @@ Once you've configured BigQuery as a source, delete the Service Account Key from | Version | Date | Pull Request | Subject | | :--- | :--- | :--- | :--- | +| 0.1.9 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.1.8 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | | 0.1.7 | 2022-04-11 | [11484](https://github.com/airbytehq/airbyte/pull/11484) | BigQuery connector escape column names | | 0.1.6 | 2022-02-14 | [10256](https://github.com/airbytehq/airbyte/pull/10256) | Add `-XX:+ExitOnOutOfMemoryError` JVM option | diff --git a/docs/integrations/sources/cockroachdb.md b/docs/integrations/sources/cockroachdb.md index 7bf2b0a5309484..176c9b800f7fe4 100644 --- a/docs/integrations/sources/cockroachdb.md +++ b/docs/integrations/sources/cockroachdb.md @@ -95,6 +95,7 @@ Your database user should now be ready for use with Airbyte. | Version | Date | Pull Request | Subject | |:--------|:-----------| :--- | :--- | +| 0.1.13 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.1.12 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | | 0.1.11 | 2022-04-06 | [11729](https://github.com/airbytehq/airbyte/pull/11729) | Bump mina-sshd from 2.7.0 to 2.8.0 | | 0.1.10 | 2022-02-24 | [10235](https://github.com/airbytehq/airbyte/pull/10235) | Fix Replication Failure due Multiple portal opens | @@ -111,7 +112,8 @@ Your database user should now be ready for use with Airbyte. | Version | Date | Pull Request | Subject | |:--------| :--- | :--- | :--- | -| 0.1.13 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | +| 0.1.14 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | +| 0.1.13 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | | 0.1.12 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | | 0.1.8 | 2022-04-06 | [11729](https://github.com/airbytehq/airbyte/pull/11729) | Bump mina-sshd from 2.7.0 to 2.8.0 | | 0.1.6 | 2022-02-21 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Fixed cursor for old connectors that use non-microsecond format. Now connectors work with both formats | diff --git a/docs/integrations/sources/db2.md b/docs/integrations/sources/db2.md index d1346312ec10d1..63e024aa25eb3c 100644 --- a/docs/integrations/sources/db2.md +++ b/docs/integrations/sources/db2.md @@ -62,6 +62,7 @@ You can also enter your own password for the keystore, but if you don't, the pas | Version | Date | Pull Request | Subject | | :--- | :--- | :--- | :--- | +| 0.1.12 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.1.11 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | | 0.1.10 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | | 0.1.9 | 2022-02-21 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Fixed cursor for old connectors that use non-microsecond format. Now connectors work with both formats | diff --git a/docs/integrations/sources/mssql.md b/docs/integrations/sources/mssql.md index 1b0c2417697837..4ff7c894523068 100644 --- a/docs/integrations/sources/mssql.md +++ b/docs/integrations/sources/mssql.md @@ -306,6 +306,7 @@ If you do not see a type in this list, assume that it is coerced into a string. | Version | Date | Pull Request | Subject | |:--------|:-----------| :----------------------------------------------------- |:-------------------------------------------------------------------------------------------------------| +| 0.4.10 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.4.9 | 2022-07-05 | [14379](https://github.com/airbytehq/airbyte/pull/14379) | Aligned Normal and CDC migration + added some fixes for datatypes processing | | 0.4.8 | 2022-06-24 | [14121](https://github.com/airbytehq/airbyte/pull/14121) | Omit using 'USE' keyword on Azure SQL with CDC | | 0.4.5 | 2022-06-23 | [14077](https://github.com/airbytehq/airbyte/pull/14077) | Use the new state management | diff --git a/docs/integrations/sources/mysql.md b/docs/integrations/sources/mysql.md index d7041ce61f6749..ce1665cd814a7d 100644 --- a/docs/integrations/sources/mysql.md +++ b/docs/integrations/sources/mysql.md @@ -185,6 +185,7 @@ If you do not see a type in this list, assume that it is coerced into a string. | Version | Date | Pull Request | Subject | |:--------|:-----------|:-----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------| +| 0.5.16 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.5.15 | 2022-06-23 | [14077](https://github.com/airbytehq/airbyte/pull/14077) | Use the new state management | | 0.5.13 | 2022-06-21 | [13945](https://github.com/airbytehq/airbyte/pull/13945) | Aligned datatype test | | 0.5.12 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | diff --git a/docs/integrations/sources/oracle.md b/docs/integrations/sources/oracle.md index 02f0f2eccc63c2..184a0723788ba0 100644 --- a/docs/integrations/sources/oracle.md +++ b/docs/integrations/sources/oracle.md @@ -132,6 +132,7 @@ Airbite has the ability to connect to the Oracle source with 3 network connectiv | Version | Date | Pull Request | Subject | |:--------| :--- | :--- |:------------------------------------------------| +| 0.3.18 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.3.17 | 2022-06-24 | [14092](https://github.com/airbytehq/airbyte/pull/14092) | Introduced a custom jdbc param field | | 0.3.16 | 2022-06-22 | [13997](https://github.com/airbytehq/airbyte/pull/13997) | Fixed tests | | 0.3.15 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | diff --git a/docs/integrations/sources/postgres.md b/docs/integrations/sources/postgres.md index a31d8f89f155e0..4da5038da510b3 100644 --- a/docs/integrations/sources/postgres.md +++ b/docs/integrations/sources/postgres.md @@ -327,6 +327,7 @@ One optimization on the Airbyte side is to break one large and long sync into mu | Version | Date | Pull Request | Subject | |:--------|:-----------|:---------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------| +| 0.4.35 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.4.34 | 2022-07-17 | [13840](https://github.com/airbytehq/airbyte/pull/13840) | Added the ability to connect using different SSL modes and SSL certificates. | | 0.4.33 | 2022-07-14 | [14586](https://github.com/airbytehq/airbyte/pull/14586) | Validate source JDBC url parameters | | 0.4.32 | 2022-07-07 | [14694](https://github.com/airbytehq/airbyte/pull/14694) | Force to produce LEGACY state if the use stream capable feature flag is set to false | diff --git a/docs/integrations/sources/redshift.md b/docs/integrations/sources/redshift.md index 33bd04918bc269..817fbb9d8ee0dd 100644 --- a/docs/integrations/sources/redshift.md +++ b/docs/integrations/sources/redshift.md @@ -54,6 +54,7 @@ All Redshift connections are encrypted using SSL | Version | Date | Pull Request | Subject | | :------ | :-------- | :----- | :------ | +| 0.3.11 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.3.10 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption |0 | 0.3.9 | 2022-02-21 | [9744](https://github.com/airbytehq/airbyte/pull/9744) | List only the tables on which the user has SELECT permissions. | 0.3.8 | 2022-02-14 | [10256](https://github.com/airbytehq/airbyte/pull/10256) | Add `-XX:+ExitOnOutOfMemoryError` JVM option | diff --git a/docs/integrations/sources/snowflake.md b/docs/integrations/sources/snowflake.md index 514dab650c07e5..f657a920b84c61 100644 --- a/docs/integrations/sources/snowflake.md +++ b/docs/integrations/sources/snowflake.md @@ -122,6 +122,7 @@ To read more please check official [Snowflake documentation](https://docs.snowfl | Version | Date | Pull Request | Subject | | :--- | :--- | :--- | :--- | +| 0.1.13 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | | 0.1.12 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | | 0.1.11 | 2022-04-27 | [10953](https://github.com/airbytehq/airbyte/pull/10953) | Implement OAuth flow | | 0.1.9 | 2022-02-21 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Fixed cursor for old connectors that use non-microsecond format. Now connectors work with both formats |