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 35817854982d..8026a9e8e302 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 @@ -85,6 +85,15 @@ public class DatabaseConfigPersistence implements ConfigPersistence { private final FeatureFlags featureFlags; private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseConfigPersistence.class); + /** + * Entrypoint into DatabaseConfigPersistence. Except in testing, we should never be using it without + * it being decorated with validation classes. + * + * @param database - database where configs are stored + * @param jsonSecretsProcessor - for filtering secrets in export + * @param featureFlags - feature flags that govern secret export behavior + * @return database config persistence wrapped in validation decorators + */ public static ConfigPersistence createWithValidation(final Database database, final JsonSecretsProcessor jsonSecretsProcessor, final FeatureFlags featureFlags) { diff --git a/airbyte-server/src/test/java/io/airbyte/server/handlers/ArchiveHandlerTest.java b/airbyte-server/src/test/java/io/airbyte/server/handlers/ArchiveHandlerTest.java index 68d6b3cf361e..736c3a8e8212 100644 --- a/airbyte-server/src/test/java/io/airbyte/server/handlers/ArchiveHandlerTest.java +++ b/airbyte-server/src/test/java/io/airbyte/server/handlers/ArchiveHandlerTest.java @@ -80,7 +80,7 @@ public class ArchiveHandlerTest { private JobPersistence jobPersistence; private SecretsRepositoryReader secretsRepositoryReader; private SecretsRepositoryWriter secretsRepositoryWriter; - private DatabaseConfigPersistence configPersistence; + private ConfigPersistence configPersistence; private ConfigPersistence seedPersistence; private JsonSecretsProcessor jsonSecretsProcessor; private FeatureFlags featureFlags; @@ -122,7 +122,7 @@ public void setup() throws Exception { jsonSecretsProcessor = mock(JsonSecretsProcessor.class); featureFlags = mock(FeatureFlags.class); when(featureFlags.exposeSecretsInExport()).thenReturn(true); - configPersistence = new DatabaseConfigPersistence(jobDatabase, jsonSecretsProcessor, featureFlags); + configPersistence = DatabaseConfigPersistence.createWithValidation(jobDatabase, jsonSecretsProcessor, featureFlags); configPersistence.replaceAllConfigs(Collections.emptyMap(), false); configPersistence.loadData(seedPersistence); configRepository = new ConfigRepository(configPersistence, configDatabase);