Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Destination Oracle - Remove Normalization #35470

Closed
wants to merge 137 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
cdb1238
...
jbfbell Jan 24, 2024
6f7c28c
conflicts
jbfbell Jan 24, 2024
08f0173
all sorts of stuff
jbfbell Jan 25, 2024
d2cb631
working sync
jbfbell Jan 27, 2024
6443554
merge conflict
jbfbell Jan 29, 2024
35c3493
add breaking change metadata
jbfbell Jan 29, 2024
8004b50
formatting
jbfbell Jan 29, 2024
ecaf881
pr self review
jbfbell Jan 29, 2024
e5cfdf4
formatting
jbfbell Jan 29, 2024
7f7bd8f
merge conflict
jbfbell Jan 30, 2024
372edd2
merge conflict
jbfbell Jan 30, 2024
3a005d7
AirbyteLib: Installation improvements and improved error handling (#3…
aaronsteers Jan 30, 2024
98d760f
Revert Default Cloud Version (#34646)
jbfbell Jan 30, 2024
6408023
AirbyteLib: Progress Printer (#34588)
aaronsteers Jan 30, 2024
a4738b9
AirbyteLib: DuckDB Perf Boost (#34589)
aaronsteers Jan 30, 2024
923fcc5
airbyte-ci: Switch to prod pypi (#34606)
Jan 30, 2024
8f72720
airbyte-lib: Refactor connectors (#34552)
Jan 30, 2024
bd0a877
airbyte-lib: Fix validation (#34599)
Jan 30, 2024
b551732
📝Destination Astra DB Connector Name Update, Icon Update, Spec format…
Jan 30, 2024
cc1f1a2
airbyte-lib: Refactor follow-up (#34649)
Jan 30, 2024
70b05a6
Publish pokeapi to pypi (#34650)
Jan 30, 2024
b5e268e
:bug: Source Microsoft OneDrive: Fix Oauth (#34478)
tolik0 Jan 30, 2024
d7ddc77
Publish to pypi (#34652)
Jan 30, 2024
8cef869
Emit state when no partitions are generated for ccdk (#34605)
maxi297 Jan 30, 2024
8932636
Have StateBuilder return our actual state object and not simply a dic…
maxi297 Jan 30, 2024
b7a39ce
Publish to pypi batch 2 (#34656)
Jan 30, 2024
6a6b89c
Fix Cursor interface change + FileBased change at the same time (#34653)
maxi297 Jan 30, 2024
e3c14c7
Publish to pypi batch3 (#34657)
Jan 30, 2024
e808c51
🤖 Bump patch version of Python CDK
maxi297 Jan 30, 2024
15efffe
Revert "Publish to pypi batch3 (#34657)" (#34659)
Jan 30, 2024
ae3a028
airbyte-lib: Prepare for published connectors (#34651)
Jan 30, 2024
4ccdf36
Recreate pypi publish batch3 (#34660)
Jan 30, 2024
4136e9c
Update cdc.md - Add MongoDB support (#34671)
rwask Jan 30, 2024
82b7e5d
Pin file-based sources to airbyte-cdk version 0.59.2 (#34661)
clnoll Jan 30, 2024
7f2fddf
Fix log4j-slf4j-impl version conflicts (#34669)
postamar Jan 30, 2024
c391e2e
Source Faker: Declare primary keys (#34644)
aaronsteers Jan 30, 2024
d13b7c9
Destination Redshift - Bump CDK version to 0.16.3 (#34680)
jbfbell Jan 30, 2024
3bd0acd
Destination Teradata: make connector avaialble on Airbyte Cloud (#28667)
marcosmarxm Jan 30, 2024
73cda9a
Support resuming initial snapshot when id type is String, Int, Long (…
rodireich Jan 30, 2024
1da8866
Publish to pypi batch4 (#34666)
Jan 31, 2024
b8a806d
airbyte-ci: Test pypi published properly (#34689)
Jan 31, 2024
b8e4871
Publish to pypi batch5 (#34668)
Jan 31, 2024
c881fe0
Publish to pypi batch6 (#34672)
Jan 31, 2024
410fc8a
Publish to pypi batch7 (#34673)
Jan 31, 2024
0c2d92e
Kubernetes docs: update instructions to use external database (#34604)
marcosmarxm Jan 31, 2024
045ce95
Update file-based connectors for compatibility with concurrent CDK (#…
clnoll Jan 31, 2024
65a7f42
🚨🚨🐛Source Hubspot: update marketing_emails stream schema (#34492)
Jan 31, 2024
1e80b8d
Publish to pypi batch8 (#34690)
Jan 31, 2024
a5d3bad
Source Azure Table Storage: CDK Update (#34576)
ChristoGrab Jan 31, 2024
2cff690
Publish to pypi batch9 (#34691)
Jan 31, 2024
1ba7b21
Build a resume token with a pipeline consisting of selected streams (…
rodireich Jan 31, 2024
c6bc976
Publish to pypi batch10 (#34692)
Jan 31, 2024
a2e4026
Destination Postgres: Upgrade CDK with fixed dependency and unpin clo…
gisripa Jan 31, 2024
2c86106
CAT: fix NoAdditionalPropertiesValidator (#34709)
artem1205 Jan 31, 2024
365ca38
merge conflicts
jbfbell Feb 1, 2024
b81aa62
source recharge for some reason
jbfbell Feb 1, 2024
61d96d1
delete file
jbfbell Feb 1, 2024
79d6db0
passing tests
jbfbell Feb 2, 2024
a59b052
formatting
jbfbell Feb 2, 2024
e455a88
Merge branch 'master' into joseph.bell/32528/remove-clickhouse-normal…
jbfbell Feb 2, 2024
5de537d
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 2, 2024
d5c1cca
PR Feedback non gradle
jbfbell Feb 2, 2024
eeae224
PR Feedback non gradle - 2
jbfbell Feb 2, 2024
b7c4b2d
unneccessary class
jbfbell Feb 2, 2024
6448685
change jvm target
jbfbell Feb 3, 2024
bcfd84b
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 3, 2024
05f3b7c
gradle changes
jbfbell Feb 3, 2024
5b5efb1
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 5, 2024
86bbd12
clean up thread count access
jbfbell Feb 5, 2024
1e654f8
formatting
jbfbell Feb 5, 2024
470b70b
update yaml and markdown
jbfbell Feb 5, 2024
92c4ab1
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 6, 2024
2139544
test updates
jbfbell Feb 7, 2024
c68774e
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 7, 2024
541e694
formatting
jbfbell Feb 7, 2024
9182df2
merge conflict
jbfbell Feb 7, 2024
1011b79
disable ssh tests
jbfbell Feb 7, 2024
50d7719
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 7, 2024
64e6ad8
merge conflict
jbfbell Feb 8, 2024
7b59ac6
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 8, 2024
0c5fcd4
remove normalization from oracle
jbfbell Feb 9, 2024
db03685
merge conflicts
jbfbell Feb 14, 2024
c486e3e
java 21 upgrade
jbfbell Feb 14, 2024
b64108e
merge conflicts
jbfbell Feb 14, 2024
d38359c
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 14, 2024
59219c6
java 21 upgrade
jbfbell Feb 14, 2024
162543b
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 14, 2024
40f9347
disable tests comment
jbfbell Feb 14, 2024
4908a81
pr feedback
jbfbell Feb 14, 2024
5b5303a
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 14, 2024
32fcb0f
pr feedback
jbfbell Feb 15, 2024
da31776
formatting
jbfbell Feb 15, 2024
0968210
merge conflicts
jbfbell Feb 15, 2024
19b6ab4
fix strict encrypt tests
jbfbell Feb 16, 2024
1fb15eb
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 16, 2024
369ffdc
formatting
jbfbell Feb 16, 2024
fdb9188
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 16, 2024
9ab52ae
clickhouse migration query
jbfbell Feb 16, 2024
f73622b
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 16, 2024
fbc5418
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 21, 2024
890ef95
remove append option
jbfbell Feb 21, 2024
f551fdb
Merge branch 'joseph.bell/32528/remove-clickhouse-normalization' into…
jbfbell Feb 21, 2024
907eb1c
update tests and docs
jbfbell Feb 21, 2024
65d4c11
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 21, 2024
f7f210f
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 21, 2024
89ebbc7
use non local cdk version
jbfbell Feb 21, 2024
ce5564f
bump version
jbfbell Feb 21, 2024
3bec74e
remove local version
jbfbell Feb 21, 2024
91e7e6a
merge conflicts
jbfbell Feb 21, 2024
376d151
use local again
jbfbell Feb 21, 2024
29a6f08
Merge branch 'joseph.bell/32528/remove-clickhouse-normalization' into…
jbfbell Feb 21, 2024
d62b891
merge conflicts
jbfbell Feb 23, 2024
2cbdcfb
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Feb 26, 2024
504a79b
formatting
jbfbell Feb 26, 2024
1a91597
cdk version bump
jbfbell Feb 26, 2024
78794b8
appease the interface
jbfbell Feb 27, 2024
0457e78
version updates
jbfbell Feb 27, 2024
5a27ffd
merge conflicts
jbfbell Mar 4, 2024
9d21d89
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Mar 5, 2024
dbcc23f
formatting
jbfbell Mar 5, 2024
99585f2
update kotlin file
jbfbell Mar 6, 2024
51c997e
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Mar 6, 2024
a08a049
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Mar 7, 2024
cfca421
conform to other cdk updates
jbfbell Mar 7, 2024
ac6f714
version bump
jbfbell Mar 7, 2024
b686e3d
appease gradle
jbfbell Mar 7, 2024
34435d3
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Mar 7, 2024
4473873
formatting
jbfbell Mar 7, 2024
056407e
add always type and dedupe method
jbfbell Mar 7, 2024
7f9777b
formatting
jbfbell Mar 7, 2024
cabf976
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Mar 7, 2024
01d3443
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Mar 8, 2024
898cbd9
test timeouts
jbfbell Mar 8, 2024
ddb90fb
Merge branch 'master' of github.com:airbytehq/airbyte into joseph.bel…
jbfbell Mar 11, 2024
0664a96
add airbyte meta column to raw table
jbfbell Mar 11, 2024
3b3f819
add airbyte meta column
jbfbell Mar 11, 2024
561c444
formatting
jbfbell Mar 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
package io.airbyte.cdk.integrations.base;

import java.util.List;
import org.apache.commons.lang3.StringUtils;

public final class JavaBaseConstants {

Expand Down Expand Up @@ -43,4 +44,8 @@ private JavaBaseConstants() {}

public static final String DEFAULT_AIRBYTE_INTERNAL_NAMESPACE = "airbyte_internal";

public static String upperQuoted(final String column) {
return StringUtils.wrap(column.toUpperCase(), "\"");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,16 @@ protected String getConfigSchemaKey() {
return "schema";
}

/**
* If the destination should always disable type dedupe, override this method to return true. We
* only type and dedupe if we create final tables.
*
* @return whether the destination should always disable type dedupe
*/
protected boolean shouldAlwaysDisableTypeDedupe() {
return false;
}

public AbstractJdbcDestination(final String driverClass,
final NamingConventionTransformer namingResolver,
final SqlOperations sqlOperations) {
Expand Down Expand Up @@ -323,7 +333,7 @@ private TyperDeduper getV2TyperDeduper(final JsonNode config, final ConfiguredAi
final NoopV2TableMigrator v2TableMigrator = new NoopV2TableMigrator();
final DestinationHandler<? extends MinimumDestinationState> destinationHandler =
getDestinationHandler(databaseName, database, rawNamespaceOverride.orElse(DEFAULT_AIRBYTE_INTERNAL_NAMESPACE));
final boolean disableTypeDedupe = config.has(DISABLE_TYPE_DEDUPE) && config.get(DISABLE_TYPE_DEDUPE).asBoolean(false);
final boolean disableTypeDedupe = isTypeDedupeDisabled(config);
final TyperDeduper typerDeduper;
if (disableTypeDedupe) {
typerDeduper = new NoOpTyperDeduperWithV1V2Migrations<>(sqlGenerator, destinationHandler, parsedCatalog, migrator, v2TableMigrator, List.of());
Expand All @@ -334,4 +344,8 @@ private TyperDeduper getV2TyperDeduper(final JsonNode config, final ConfiguredAi
return typerDeduper;
}

private boolean isTypeDedupeDisabled(final JsonNode config) {
return (config.has(DISABLE_TYPE_DEDUPE) && config.get(DISABLE_TYPE_DEDUPE).asBoolean(false)) || shouldAlwaysDisableTypeDedupe();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
* Copyright (c) 2024 Airbyte, Inc., all rights reserved.
*/

package io.airbyte.cdk.integrations.destination.jdbc.typing_deduping

import com.fasterxml.jackson.databind.JsonNode
import io.airbyte.cdk.db.jdbc.JdbcDatabase
import io.airbyte.cdk.integrations.destination.jdbc.TableDefinition
import io.airbyte.integrations.base.destination.typing_deduping.AirbyteType
import io.airbyte.integrations.base.destination.typing_deduping.Sql
import io.airbyte.integrations.base.destination.typing_deduping.StreamConfig
import org.jooq.SQLDialect

class NoOpJdbcDestinationHandler<DestinationState>(
databaseName: String,
jdbcDatabase: JdbcDatabase,
rawTableSchemaName: String,
sqlDialect: SQLDialect
) :
JdbcDestinationHandler<DestinationState>(
databaseName,
jdbcDatabase,
rawTableSchemaName,
sqlDialect
) {
override fun execute(sql: Sql?) {
throw NotImplementedError("This JDBC Destination Handler does not support typing deduping")
}

override fun toDestinationState(json: JsonNode?): DestinationState {
throw NotImplementedError("This JDBC Destination Handler does not support typing deduping")
}

override fun existingSchemaMatchesStreamConfig(
stream: StreamConfig?,
existingTable: TableDefinition?
): Boolean {
throw NotImplementedError("This JDBC Destination Handler does not support typing deduping")
}

override fun toJdbcTypeName(airbyteType: AirbyteType?): String {
throw NotImplementedError("This JDBC Destination Handler does not support typing deduping")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"supportsIncremental": true,
"supportsNormalization": true,
"supportsDBT": false,
"supported_destination_sync_modes": ["overwrite", "append", "append_dedup"],
"supported_destination_sync_modes": ["overwrite", "append"],
"connectionSpecification": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "ClickHouse Destination Spec",
Expand Down Expand Up @@ -52,6 +52,12 @@
"type": "string",
"order": 5
},
"raw_data_schema": {
"type": "string",
"description": "The schema to write raw tables into (default: airbyte_internal)",
"title": "Raw Table Schema Name",
"order": 7
},
"tunnel_method": {
"type": "object",
"title": "SSH Tunnel Method",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ plugins {
}

airbyteJavaConnector {
cdkVersionRequired = '0.2.0'
features = ['db-destinations']
useLocalCdk = false
cdkVersionRequired = '0.23.16'
features = ['db-destinations', 's3-destinations', 'typing-deduping']
useLocalCdk = true
}

//remove once upgrading the CDK version to 0.4.x or later
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
junitMethodExecutionTimeout = 30 m
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,17 @@ data:
icon: oracle.svg
license: ELv2
name: Oracle
normalizationConfig:
normalizationIntegrationType: oracle
normalizationRepository: airbyte/normalization-oracle
normalizationTag: 0.4.1
releaseStage: alpha
releases:
breakingChanges:
1.0.0:
upgradeDeadline: "2024-03-15"
message: >
This version removes the option to use "normalization" with Oracle. It also changes
the schema and database of Airbyte's "raw" tables to be compatible with the new
[Destinations V2](https://docs.airbyte.com/release_notes/upgrading_to_destinations_v2/#what-is-destinations-v2)
format. These changes will likely require updates to downstream dbt / SQL models.
Selecting `Upgrade` will upgrade **all** connections using this destination at their next sync.
documentationUrl: https://docs.airbyte.com/integrations/destinations/oracle
supportsDbt: true
tags:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@
import io.airbyte.cdk.db.jdbc.DefaultJdbcDatabase;
import io.airbyte.cdk.db.jdbc.JdbcDatabase;
import io.airbyte.cdk.db.jdbc.JdbcUtils;
import io.airbyte.cdk.integrations.base.JavaBaseConstants;
import io.airbyte.cdk.integrations.destination.StandardNameTransformer;
import io.airbyte.cdk.integrations.standardtest.destination.DestinationAcceptanceTest;
import io.airbyte.commons.json.Jsons;
import io.airbyte.commons.string.Strings;
import io.airbyte.integrations.destination.oracle.OracleDestination;
import io.airbyte.integrations.destination.oracle.OracleNameTransformer;
import java.sql.SQLException;
import java.time.Duration;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -73,7 +74,7 @@ protected List<JsonNode> retrieveRecords(final TestDestinationEnv env,
return retrieveRecordsFromTable(namingResolver.getRawTableName(streamName), namespace)
.stream()
.map(r -> Jsons.deserialize(
r.get(OracleDestination.COLUMN_NAME_DATA.replace("\"", "")).asText()))
r.get(JavaBaseConstants.COLUMN_NAME_DATA).asText()))
.collect(Collectors.toList());
}

Expand Down Expand Up @@ -113,16 +114,15 @@ protected List<String> resolveIdentifier(final String identifier) {

private List<JsonNode> retrieveRecordsFromTable(final String tableName, final String schemaName)
throws SQLException {
final String query = String.format("SELECT * FROM %s.%s ORDER BY %s ASC", schemaName, tableName, OracleDestination.COLUMN_NAME_EMITTED_AT);

try (final DSLContext dslContext = getDslContext(config)) {
final List<org.jooq.Record> result = getDatabase(dslContext).query(ctx -> ctx.fetch(query).stream().toList());
return result
.stream()
.map(r -> r.formatJSON(JSON_FORMAT))
.map(Jsons::deserialize)
.collect(Collectors.toList());
}
final String query =
String.format("SELECT * FROM %s.%s ORDER BY %s ASC", schemaName, tableName, JavaBaseConstants.COLUMN_NAME_AB_EXTRACTED_AT.toUpperCase());
final DSLContext dslContext = getDslContext(config);
final List<org.jooq.Record> result = getDatabase(dslContext).query(ctx -> ctx.fetch(query).stream().toList());
return result
.stream()
.map(r -> r.formatJSON(JSON_FORMAT))
.map(Jsons::deserialize)
.collect(Collectors.toList());
}

private static Database getDatabase(final DSLContext dslContext) {
Expand Down Expand Up @@ -151,15 +151,13 @@ protected void setup(final TestDestinationEnv testEnv, final HashSet<String> TES
db.start();

config = getConfig(db);
final DSLContext dslContext = getDslContext(config);
final Database database = getDatabase(dslContext);
database.query(
ctx -> ctx.fetch(String.format("CREATE USER %s IDENTIFIED BY %s", schemaName, schemaName)));
database.query(ctx -> ctx.fetch(String.format("GRANT ALL PRIVILEGES TO %s", schemaName)));

try (final DSLContext dslContext = getDslContext(config)) {
final Database database = getDatabase(dslContext);
database.query(
ctx -> ctx.fetch(String.format("CREATE USER %s IDENTIFIED BY %s", schemaName, schemaName)));
database.query(ctx -> ctx.fetch(String.format("GRANT ALL PRIVILEGES TO %s", schemaName)));

((ObjectNode) config).put(JdbcUtils.SCHEMA_KEY, dbName);
}
((ObjectNode) config).put(JdbcUtils.SCHEMA_KEY, dbName);
}

@Override
Expand All @@ -182,7 +180,8 @@ public void testEncryption() throws SQLException {
config.get(JdbcUtils.PORT_KEY).asInt(),
config.get("sid").asText()),
JdbcUtils.parseJdbcParameters("oracle.net.encryption_client=REQUIRED;" +
"oracle.net.encryption_types_client=( " + algorithm + " )", ";"));
"oracle.net.encryption_types_client=( " + algorithm + " )", ";"),
Duration.ofMinutes(5));
final JdbcDatabase database = new DefaultJdbcDatabase(dataSource);

final String networkServiceBanner =
Expand All @@ -208,7 +207,8 @@ public void testCheckProtocol() throws SQLException {
config.get(JdbcUtils.PORT_KEY).asInt(),
config.get("sid").asText()),
JdbcUtils.parseJdbcParameters("oracle.net.encryption_client=REQUIRED;" +
"oracle.net.encryption_types_client=( " + algorithm + " )", ";"));
"oracle.net.encryption_types_client=( " + algorithm + " )", ";"),
Duration.ofMinutes(5));
final JdbcDatabase database = new DefaultJdbcDatabase(dataSource);

final String networkServiceBanner = "SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,126 @@
"examples": ["airbyte"],
"default": "airbyte",
"order": 6
},
"raw_data_schema": {
"type": "string",
"description": "The schema to write raw tables into (default: airbyte_internal)",
"title": "Raw Table Schema Name",
"order": 7
},
"tunnel_method": {
"type": "object",
"title": "SSH Tunnel Method",
"description": "Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.",
"oneOf": [
{
"title": "No Tunnel",
"required": ["tunnel_method"],
"properties": {
"tunnel_method": {
"description": "No ssh tunnel needed to connect to database",
"type": "string",
"const": "NO_TUNNEL",
"order": 0
}
}
},
{
"title": "SSH Key Authentication",
"required": [
"tunnel_method",
"tunnel_host",
"tunnel_port",
"tunnel_user",
"ssh_key"
],
"properties": {
"tunnel_method": {
"description": "Connect through a jump server tunnel host using username and ssh key",
"type": "string",
"const": "SSH_KEY_AUTH",
"order": 0
},
"tunnel_host": {
"title": "SSH Tunnel Jump Server Host",
"description": "Hostname of the jump server host that allows inbound ssh tunnel.",
"type": "string",
"order": 1
},
"tunnel_port": {
"title": "SSH Connection Port",
"description": "Port on the proxy/jump server that accepts inbound ssh connections.",
"type": "integer",
"minimum": 0,
"maximum": 65536,
"default": 22,
"examples": ["22"],
"order": 2
},
"tunnel_user": {
"title": "SSH Login Username",
"description": "OS-level username for logging into the jump server host.",
"type": "string",
"order": 3
},
"ssh_key": {
"title": "SSH Private Key",
"description": "OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )",
"type": "string",
"airbyte_secret": true,
"multiline": true,
"order": 4
}
}
},
{
"title": "Password Authentication",
"required": [
"tunnel_method",
"tunnel_host",
"tunnel_port",
"tunnel_user",
"tunnel_user_password"
],
"properties": {
"tunnel_method": {
"description": "Connect through a jump server tunnel host using username and password authentication",
"type": "string",
"const": "SSH_PASSWORD_AUTH",
"order": 0
},
"tunnel_host": {
"title": "SSH Tunnel Jump Server Host",
"description": "Hostname of the jump server host that allows inbound ssh tunnel.",
"type": "string",
"order": 1
},
"tunnel_port": {
"title": "SSH Connection Port",
"description": "Port on the proxy/jump server that accepts inbound ssh connections.",
"type": "integer",
"minimum": 0,
"maximum": 65536,
"default": 22,
"examples": ["22"],
"order": 2
},
"tunnel_user": {
"title": "SSH Login Username",
"description": "OS-level username for logging into the jump server host",
"type": "string",
"order": 3
},
"tunnel_user_password": {
"title": "Password",
"description": "OS-level password for logging into the jump server host",
"type": "string",
"airbyte_secret": true,
"order": 4
}
}
}
]
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ plugins {
}

airbyteJavaConnector {
cdkVersionRequired = '0.2.0'
features = ['db-destinations']
useLocalCdk = false
cdkVersionRequired = '0.23.16'
features = ['db-destinations', 's3-destinations', 'typing-deduping']
useLocalCdk = true
}

//remove once upgrading the CDK version to 0.4.x or later
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
junitMethodExecutionTimeout = 30 m
Loading
Loading