From 6d533e105b2369419c7f91a83392236bc081434e Mon Sep 17 00:00:00 2001 From: Malik Diarra Date: Wed, 23 Mar 2022 09:41:46 -0700 Subject: [PATCH 1/7] Move buildDestinationOAuthParameter to DbConverter --- .../config/persistence/DatabaseConfigPersistence.java | 10 +--------- .../io/airbyte/config/persistence/DbConverter.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DatabaseConfigPersistence.java b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DatabaseConfigPersistence.java index 08633b762d41..a1c895b16069 100644 --- a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DatabaseConfigPersistence.java +++ b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DatabaseConfigPersistence.java @@ -512,7 +512,7 @@ private List> listDestinationOauth final List> destinationOAuthParameters = new ArrayList<>(); for (final Record record : result) { - final DestinationOAuthParameter destinationOAuthParameter = buildDestinationOAuthParameter(record); + final DestinationOAuthParameter destinationOAuthParameter = DbConverter.buildDestinationOAuthParameter(record); destinationOAuthParameters.add(new ConfigWithMetadata<>( record.get(ACTOR_OAUTH_PARAMETER.ID).toString(), ConfigSchema.DESTINATION_OAUTH_PARAM.name(), @@ -523,14 +523,6 @@ private List> listDestinationOauth return destinationOAuthParameters; } - private DestinationOAuthParameter buildDestinationOAuthParameter(final Record record) { - return new DestinationOAuthParameter() - .withOauthParameterId(record.get(ACTOR_OAUTH_PARAMETER.ID)) - .withConfiguration(Jsons.deserialize(record.get(ACTOR_OAUTH_PARAMETER.CONFIGURATION).data())) - .withWorkspaceId(record.get(ACTOR_OAUTH_PARAMETER.WORKSPACE_ID)) - .withDestinationDefinitionId(record.get(ACTOR_OAUTH_PARAMETER.ACTOR_DEFINITION_ID)); - } - private List> listStandardSyncOperationWithMetadata() throws IOException { return listStandardSyncOperationWithMetadata(Optional.empty()); } diff --git a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java index 263c63f44bb1..e13587ce695b 100644 --- a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java +++ b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java @@ -5,12 +5,14 @@ package io.airbyte.config.persistence; import static io.airbyte.db.instance.configs.jooq.Tables.ACTOR_DEFINITION; +import static io.airbyte.db.instance.configs.jooq.Tables.ACTOR_OAUTH_PARAMETER; import static io.airbyte.db.instance.configs.jooq.Tables.CONNECTION; import static io.airbyte.db.instance.configs.jooq.Tables.WORKSPACE; import io.airbyte.commons.enums.Enums; import io.airbyte.commons.json.Jsons; import io.airbyte.config.ActorDefinitionResourceRequirements; +import io.airbyte.config.DestinationOAuthParameter; import io.airbyte.config.JobSyncConfig.NamespaceDefinitionType; import io.airbyte.config.Notification; import io.airbyte.config.ResourceRequirements; @@ -119,4 +121,12 @@ public static StandardDestinationDefinition buildStandardDestinationDefinition(f : Jsons.deserialize(record.get(ACTOR_DEFINITION.RESOURCE_REQUIREMENTS).data(), ActorDefinitionResourceRequirements.class)); } + public static DestinationOAuthParameter buildDestinationOAuthParameter(final Record record) { + return new DestinationOAuthParameter() + .withOauthParameterId(record.get(ACTOR_OAUTH_PARAMETER.ID)) + .withConfiguration(Jsons.deserialize(record.get(ACTOR_OAUTH_PARAMETER.CONFIGURATION).data())) + .withWorkspaceId(record.get(ACTOR_OAUTH_PARAMETER.WORKSPACE_ID)) + .withDestinationDefinitionId(record.get(ACTOR_OAUTH_PARAMETER.ACTOR_DEFINITION_ID)); + } + } From bdfa51dc3b42abdb32532bff171ed31d86f821f3 Mon Sep 17 00:00:00 2001 From: Malik Diarra Date: Wed, 23 Mar 2022 09:54:04 -0700 Subject: [PATCH 2/7] Migrate getDestinationOAuthParamByDefinitionIdOptional to use direct SQL --- .../config/persistence/ConfigRepository.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java index 0e1e5cc1c6f4..0418ff8b10f2 100644 --- a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java +++ b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java @@ -9,6 +9,7 @@ import static io.airbyte.db.instance.configs.jooq.Tables.ACTOR_CATALOG_FETCH_EVENT; import static io.airbyte.db.instance.configs.jooq.Tables.ACTOR_DEFINITION; import static io.airbyte.db.instance.configs.jooq.Tables.ACTOR_DEFINITION_WORKSPACE_GRANT; +import static io.airbyte.db.instance.configs.jooq.Tables.ACTOR_OAUTH_PARAMETER; import static io.airbyte.db.instance.configs.jooq.Tables.CONNECTION; import static io.airbyte.db.instance.configs.jooq.Tables.CONNECTION_OPERATION; import static io.airbyte.db.instance.configs.jooq.Tables.WORKSPACE; @@ -66,6 +67,7 @@ import org.jooq.Record1; import org.jooq.Record2; import org.jooq.Result; +import org.jooq.SelectJoinStep; import org.jooq.impl.DSL; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -632,14 +634,18 @@ public DestinationOAuthParameter getDestinationOAuthParams(final UUID destinatio public Optional getDestinationOAuthParamByDefinitionIdOptional(final UUID workspaceId, final UUID destinationDefinitionId) - throws JsonValidationException, IOException { - for (final DestinationOAuthParameter oAuthParameter : listDestinationOAuthParam()) { - if (destinationDefinitionId.equals(oAuthParameter.getDestinationDefinitionId()) && - Objects.equals(workspaceId, oAuthParameter.getWorkspaceId())) { - return Optional.of(oAuthParameter); - } + throws IOException { + final Result result = database.query(ctx -> { + final SelectJoinStep query = ctx.select(asterisk()).from(ACTOR_OAUTH_PARAMETER); + return query.where(ACTOR_OAUTH_PARAMETER.ACTOR_TYPE.eq(ActorType.destination), + ACTOR_OAUTH_PARAMETER.WORKSPACE_ID.eq(workspaceId), + ACTOR_OAUTH_PARAMETER.ACTOR_DEFINITION_ID.eq(destinationDefinitionId)).fetch(); + }); + + if (result.size() == 0) { + return Optional.empty(); } - return Optional.empty(); + return Optional.of(DbConverter.buildDestinationOAuthParameter(result.get(0))); } public void writeDestinationOAuthParam(final DestinationOAuthParameter destinationOAuthParameter) throws JsonValidationException, IOException { From 388de094de9fcb84dbe234f7a65e44b7c0d46b13 Mon Sep 17 00:00:00 2001 From: Malik Diarra Date: Wed, 23 Mar 2022 09:54:48 -0700 Subject: [PATCH 3/7] Move buildSourceOAuthParameter to DbConverter --- .../config/persistence/DatabaseConfigPersistence.java | 10 +--------- .../io/airbyte/config/persistence/DbConverter.java | 9 +++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DatabaseConfigPersistence.java b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DatabaseConfigPersistence.java index a1c895b16069..cf81750dc74e 100644 --- a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DatabaseConfigPersistence.java +++ b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DatabaseConfigPersistence.java @@ -477,7 +477,7 @@ private List> listSourceOauthParamWithM final List> sourceOAuthParameters = new ArrayList<>(); for (final Record record : result) { - final SourceOAuthParameter sourceOAuthParameter = buildSourceOAuthParameter(record); + final SourceOAuthParameter sourceOAuthParameter = DbConverter.buildSourceOAuthParameter(record); sourceOAuthParameters.add(new ConfigWithMetadata<>( record.get(ACTOR_OAUTH_PARAMETER.ID).toString(), ConfigSchema.SOURCE_OAUTH_PARAM.name(), @@ -488,14 +488,6 @@ private List> listSourceOauthParamWithM return sourceOAuthParameters; } - private SourceOAuthParameter buildSourceOAuthParameter(final Record record) { - return new SourceOAuthParameter() - .withOauthParameterId(record.get(ACTOR_OAUTH_PARAMETER.ID)) - .withConfiguration(Jsons.deserialize(record.get(ACTOR_OAUTH_PARAMETER.CONFIGURATION).data())) - .withWorkspaceId(record.get(ACTOR_OAUTH_PARAMETER.WORKSPACE_ID)) - .withSourceDefinitionId(record.get(ACTOR_OAUTH_PARAMETER.ACTOR_DEFINITION_ID)); - } - private List> listDestinationOauthParamWithMetadata() throws IOException { return listDestinationOauthParamWithMetadata(Optional.empty()); } diff --git a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java index e13587ce695b..0cb788a4dfd6 100644 --- a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java +++ b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java @@ -20,6 +20,7 @@ import io.airbyte.config.StandardDestinationDefinition; import io.airbyte.config.StandardSourceDefinition; import io.airbyte.config.StandardSourceDefinition.SourceType; +import io.airbyte.config.SourceOAuthParameter; import io.airbyte.config.StandardSync; import io.airbyte.config.StandardSync.Status; import io.airbyte.config.StandardWorkspace; @@ -129,4 +130,12 @@ public static DestinationOAuthParameter buildDestinationOAuthParameter(final Rec .withDestinationDefinitionId(record.get(ACTOR_OAUTH_PARAMETER.ACTOR_DEFINITION_ID)); } + public static SourceOAuthParameter buildSourceOAuthParameter(final Record record) { + return new SourceOAuthParameter() + .withOauthParameterId(record.get(ACTOR_OAUTH_PARAMETER.ID)) + .withConfiguration(Jsons.deserialize(record.get(ACTOR_OAUTH_PARAMETER.CONFIGURATION).data())) + .withWorkspaceId(record.get(ACTOR_OAUTH_PARAMETER.WORKSPACE_ID)) + .withSourceDefinitionId(record.get(ACTOR_OAUTH_PARAMETER.ACTOR_DEFINITION_ID)); + } + } From 4df0710eb26a0195dbea8dcaa86b0cb081e9f6ef Mon Sep 17 00:00:00 2001 From: Malik Diarra Date: Wed, 23 Mar 2022 09:55:19 -0700 Subject: [PATCH 4/7] Change getSourceOAuthParamByDefinitionIdOptional to use direct SQL --- .../config/persistence/ConfigRepository.java | 19 +++++++++++-------- .../config/persistence/DbConverter.java | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java index 0418ff8b10f2..7590b4b38477 100644 --- a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java +++ b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/ConfigRepository.java @@ -51,7 +51,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.UUID; @@ -609,14 +608,18 @@ public SourceOAuthParameter getSourceOAuthParams(final UUID SourceOAuthParameter } public Optional getSourceOAuthParamByDefinitionIdOptional(final UUID workspaceId, final UUID sourceDefinitionId) - throws JsonValidationException, IOException { - for (final SourceOAuthParameter oAuthParameter : listSourceOAuthParam()) { - if (sourceDefinitionId.equals(oAuthParameter.getSourceDefinitionId()) && - Objects.equals(workspaceId, oAuthParameter.getWorkspaceId())) { - return Optional.of(oAuthParameter); - } + throws IOException { + final Result result = database.query(ctx -> { + final SelectJoinStep query = ctx.select(asterisk()).from(ACTOR_OAUTH_PARAMETER); + return query.where(ACTOR_OAUTH_PARAMETER.ACTOR_TYPE.eq(ActorType.source), + ACTOR_OAUTH_PARAMETER.WORKSPACE_ID.eq(workspaceId), + ACTOR_OAUTH_PARAMETER.ACTOR_DEFINITION_ID.eq(sourceDefinitionId)).fetch(); + }); + + if (result.size() == 0) { + return Optional.empty(); } - return Optional.empty(); + return Optional.of(DbConverter.buildSourceOAuthParameter(result.get(0))); } public void writeSourceOAuthParam(final SourceOAuthParameter SourceOAuthParameter) throws JsonValidationException, IOException { diff --git a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java index 0cb788a4dfd6..e7ab36b1a4bc 100644 --- a/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java +++ b/airbyte-config/persistence/src/main/java/io/airbyte/config/persistence/DbConverter.java @@ -17,10 +17,10 @@ import io.airbyte.config.Notification; import io.airbyte.config.ResourceRequirements; import io.airbyte.config.Schedule; +import io.airbyte.config.SourceOAuthParameter; import io.airbyte.config.StandardDestinationDefinition; import io.airbyte.config.StandardSourceDefinition; import io.airbyte.config.StandardSourceDefinition.SourceType; -import io.airbyte.config.SourceOAuthParameter; import io.airbyte.config.StandardSync; import io.airbyte.config.StandardSync.Status; import io.airbyte.config.StandardWorkspace; From be7210660d4fb6efeb7bd904337fd2f05006bb2d Mon Sep 17 00:00:00 2001 From: Malik Diarra Date: Wed, 23 Mar 2022 11:09:43 -0700 Subject: [PATCH 5/7] Add tests --- .../ConfigRepositoryE2EReadWriteTest.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/airbyte-config/persistence/src/test/java/io/airbyte/config/persistence/ConfigRepositoryE2EReadWriteTest.java b/airbyte-config/persistence/src/test/java/io/airbyte/config/persistence/ConfigRepositoryE2EReadWriteTest.java index 315bcf14e677..39a8563765aa 100644 --- a/airbyte-config/persistence/src/test/java/io/airbyte/config/persistence/ConfigRepositoryE2EReadWriteTest.java +++ b/airbyte-config/persistence/src/test/java/io/airbyte/config/persistence/ConfigRepositoryE2EReadWriteTest.java @@ -16,7 +16,9 @@ import io.airbyte.commons.features.FeatureFlags; import io.airbyte.commons.json.Jsons; import io.airbyte.config.DestinationConnection; +import io.airbyte.config.DestinationOAuthParameter; import io.airbyte.config.SourceConnection; +import io.airbyte.config.SourceOAuthParameter; import io.airbyte.config.StandardDestinationDefinition; import io.airbyte.config.StandardSourceDefinition; import io.airbyte.config.StandardSourceDefinition.SourceType; @@ -100,6 +102,12 @@ void setup() throws IOException, JsonValidationException { for (final StandardSync sync : MockData.standardSyncs()) { configRepository.writeStandardSync(sync); } + for (final SourceOAuthParameter oAuthParameter : MockData.sourceOauthParameters()) { + configRepository.writeSourceOAuthParam(oAuthParameter); + } + for (final DestinationOAuthParameter oAuthParameter : MockData.destinationOauthParameters()) { + configRepository.writeDestinationOAuthParam(oAuthParameter); + } } @AfterAll @@ -292,4 +300,47 @@ public void testDestinationDefinitionGrants() throws IOException { Map.entry(grantableDefinition2, false))); } + @Test + public void testGetDestinationOAuthByDefinitionId() throws IOException { + + final DestinationOAuthParameter destinationOAuthParameter = MockData.destinationOauthParameters().get(0); + final Optional result = configRepository.getDestinationOAuthParamByDefinitionIdOptional( + destinationOAuthParameter.getWorkspaceId(), destinationOAuthParameter.getDestinationDefinitionId()); + assertTrue(result.isPresent()); + assertEquals(destinationOAuthParameter, result.get()); + } + + @Test + public void testMissingDestinationOAuthByDefinitionId() throws IOException { + final UUID missingId = UUID.fromString("fc59cfa0-06de-4c8b-850b-46d4cfb65629"); + final DestinationOAuthParameter destinationOAuthParameter = MockData.destinationOauthParameters().get(0); + Optional result = + configRepository.getDestinationOAuthParamByDefinitionIdOptional(destinationOAuthParameter.getWorkspaceId(), missingId); + assertFalse(result.isPresent()); + + result = configRepository.getDestinationOAuthParamByDefinitionIdOptional(missingId, destinationOAuthParameter.getDestinationDefinitionId()); + assertFalse(result.isPresent()); + } + + @Test + public void testGetSourceOAuthByDefinitionId() throws IOException { + final SourceOAuthParameter sourceOAuthParameter = MockData.sourceOauthParameters().get(0); + final Optional result = configRepository.getSourceOAuthParamByDefinitionIdOptional(sourceOAuthParameter.getWorkspaceId(), + sourceOAuthParameter.getSourceDefinitionId()); + assertTrue(result.isPresent()); + assertEquals(sourceOAuthParameter, result.get()); + } + + @Test + public void testMissingSourceOAuthByDefinitionId() throws IOException { + final UUID missingId = UUID.fromString("fc59cfa0-06de-4c8b-850b-46d4cfb65629"); + final SourceOAuthParameter sourceOAuthParameter = MockData.sourceOauthParameters().get(0); + Optional result = + configRepository.getSourceOAuthParamByDefinitionIdOptional(sourceOAuthParameter.getWorkspaceId(), missingId); + assertFalse(result.isPresent()); + + result = configRepository.getSourceOAuthParamByDefinitionIdOptional(missingId, sourceOAuthParameter.getSourceDefinitionId()); + assertFalse(result.isPresent()); + } + } From b24286c8713a74787e587244c8759f951e752817 Mon Sep 17 00:00:00 2001 From: Malik Diarra Date: Wed, 23 Mar 2022 12:48:30 -0700 Subject: [PATCH 6/7] Add new indices for oauth param table --- .../airbyte/bootloader/BootloaderAppTest.java | 2 +- .../V0_35_59_004__AddOauthParamIndex.java | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 airbyte-db/lib/src/main/java/io/airbyte/db/instance/configs/migrations/V0_35_59_004__AddOauthParamIndex.java diff --git a/airbyte-bootloader/src/test/java/io/airbyte/bootloader/BootloaderAppTest.java b/airbyte-bootloader/src/test/java/io/airbyte/bootloader/BootloaderAppTest.java index e2f864218e7f..774922c7cb5c 100644 --- a/airbyte-bootloader/src/test/java/io/airbyte/bootloader/BootloaderAppTest.java +++ b/airbyte-bootloader/src/test/java/io/airbyte/bootloader/BootloaderAppTest.java @@ -80,7 +80,7 @@ void testBootloaderAppBlankDb() throws Exception { mockedConfigs.getConfigDatabaseUrl()) .getAndInitialize(); val configsMigrator = new ConfigsDatabaseMigrator(configDatabase, this.getClass().getName()); - assertEquals("0.35.59.003", configsMigrator.getLatestMigration().getVersion().getVersion()); + assertEquals("0.35.59.004", configsMigrator.getLatestMigration().getVersion().getVersion()); val jobsPersistence = new DefaultJobPersistence(jobDatabase); assertEquals(version, jobsPersistence.getVersion().get()); diff --git a/airbyte-db/lib/src/main/java/io/airbyte/db/instance/configs/migrations/V0_35_59_004__AddOauthParamIndex.java b/airbyte-db/lib/src/main/java/io/airbyte/db/instance/configs/migrations/V0_35_59_004__AddOauthParamIndex.java new file mode 100644 index 000000000000..3c18b740eef8 --- /dev/null +++ b/airbyte-db/lib/src/main/java/io/airbyte/db/instance/configs/migrations/V0_35_59_004__AddOauthParamIndex.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2021 Airbyte, Inc., all rights reserved. + */ + +package io.airbyte.db.instance.configs.migrations; + +import org.flywaydb.core.api.migration.BaseJavaMigration; +import org.flywaydb.core.api.migration.Context; +import org.jooq.DSLContext; +import org.jooq.impl.DSL; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class V0_35_59_004__AddOauthParamIndex extends BaseJavaMigration { + + private static final Logger LOGGER = LoggerFactory.getLogger(V0_35_59_004__AddOauthParamIndex.class); + + @Override + public void migrate(final Context context) throws Exception { + LOGGER.info("Running migration: {}", this.getClass().getSimpleName()); + + final DSLContext ctx = DSL.using(context.getConnection()); + ctx.createIndexIfNotExists("actor_oauth_parameter_workspace_definition_idx").on("actor_oauth_parameter", "workspace_id", "actor_definition_id"); + } + +} From 8b291d85cb4cd692dd65334a84e60f244a39fc5c Mon Sep 17 00:00:00 2001 From: Malik Diarra Date: Wed, 23 Mar 2022 13:20:04 -0700 Subject: [PATCH 7/7] Fix index creation statement --- .../configs/migrations/V0_35_59_004__AddOauthParamIndex.java | 3 ++- .../lib/src/main/resources/configs_database/schema_dump.txt | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/airbyte-db/lib/src/main/java/io/airbyte/db/instance/configs/migrations/V0_35_59_004__AddOauthParamIndex.java b/airbyte-db/lib/src/main/java/io/airbyte/db/instance/configs/migrations/V0_35_59_004__AddOauthParamIndex.java index 3c18b740eef8..0c017e0545a1 100644 --- a/airbyte-db/lib/src/main/java/io/airbyte/db/instance/configs/migrations/V0_35_59_004__AddOauthParamIndex.java +++ b/airbyte-db/lib/src/main/java/io/airbyte/db/instance/configs/migrations/V0_35_59_004__AddOauthParamIndex.java @@ -20,7 +20,8 @@ public void migrate(final Context context) throws Exception { LOGGER.info("Running migration: {}", this.getClass().getSimpleName()); final DSLContext ctx = DSL.using(context.getConnection()); - ctx.createIndexIfNotExists("actor_oauth_parameter_workspace_definition_idx").on("actor_oauth_parameter", "workspace_id", "actor_definition_id"); + ctx.createIndexIfNotExists("actor_oauth_parameter_workspace_definition_idx").on("actor_oauth_parameter", "workspace_id", "actor_definition_id") + .execute(); } } diff --git a/airbyte-db/lib/src/main/resources/configs_database/schema_dump.txt b/airbyte-db/lib/src/main/resources/configs_database/schema_dump.txt index b18f0f279efd..c941c10a7bfa 100644 --- a/airbyte-db/lib/src/main/resources/configs_database/schema_dump.txt +++ b/airbyte-db/lib/src/main/resources/configs_database/schema_dump.txt @@ -232,6 +232,10 @@ create unique index "actor_definition_workspace_gr_workspace_id_actor_definition "actor_definition_id" asc ); create unique index "actor_oauth_parameter_pkey" on "public"."actor_oauth_parameter"("id" asc); +create index "actor_oauth_parameter_workspace_definition_idx" on "public"."actor_oauth_parameter"( + "workspace_id" asc, + "actor_definition_id" asc +); create unique index "airbyte_configs_migrations_pk" on "public"."airbyte_configs_migrations"("installed_rank" asc); create index "airbyte_configs_migrations_s_idx" on "public"."airbyte_configs_migrations"("success" asc); create index "connection_destination_id_idx" on "public"."connection"("destination_id" asc);