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 ff8f09ed1be4..0b0b32aec14c 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 e06d4b6e0f04..c67c13e16535 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 dc501b8357f4..5a9b95c44483 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 50d54368ab47..13185cc7e970 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 7116dd22ab3e..913c114460af 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 8ae21a8351db..985e302f8b27 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 5280ad611802..77d94cae31c2 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 ced34efdfbf5..7b28b58ff359 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 b3ee12030a54..b9e65f2f3406 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 e02992b151d8..37ce4ffec1b8 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 8ae1e6922049..311ad518b9dc 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 0d1215c074da..8b0bff813171 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 54fe61172b72..7294db87a259 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 d7a9d59e865f..357d2f86fd0f 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 9fb55debe528..dfe06dc4e193 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 e6fb1610b6a9..798145454e45 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 4340d6cc98bd..d044b803ef90 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 ce5f76dad321..eb30afcfe92c 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 379bf889370e..01a5ff1c62fc 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 070cb90af900..31af53be8891 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 83e56422038d..38b1e8f7aa73 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 e8bf7ab9936c..261083f6d7a6 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 f96e0b83bc40..af6cc24193fd 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 3865ce0fd274..2809a7b5bde4 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 042885e6786e..aba59c81aa7f 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 9c98b4ead299..6fe752841296 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 1aac8a064b23..1bd91e3f0f91 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 1444cba8665c..985de5fe5d7f 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 c6a652f3e48e..6021b6a02102 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 96726701554a..030f9909887a 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 e82d20cc358d..50deb2189f21 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 0a7cdf7cdfdc..4c0c66c1d5af 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 f543c204501b..2e6f9348df76 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 4ad4d6aecc65..d3bfbdc3a3af 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 af2e4262575f..96d65d89512e 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 9fa901973521..fa31301b1f5f 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 971cdf5cb67a..fedd06670b6e 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 8c004874e644..9dd9a0a229d4 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 8d81417afeee..5d2a0dcd10d5 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 a743455d2227..9a9c16a8ed54 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 6f1924433f99..f3a55df7640d 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 7d904bc10687..7a917c353705 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 689926366c68..fef26b120d2f 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 4c94bc94dd90..8e018d43e301 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 a2c411b55aee..6be71edaa5f9 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 7bf2b0a53094..176c9b800f7f 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 d1346312ec10..63e024aa25eb 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 1b0c24176978..4ff7c8945230 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 d7041ce61f67..ce1665cd814a 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 02f0f2eccc63..184a0723788b 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 a31d8f89f155..4da5038da510 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 33bd04918bc2..817fbb9d8ee0 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 514dab650c07..f657a920b84c 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 |