52
52
import io .airbyte .config .helpers .StateMessageHelper ;
53
53
import io .airbyte .config .persistence .ActorDefinitionVersionHelper ;
54
54
import io .airbyte .config .persistence .ConfigInjector ;
55
+ import io .airbyte .config .secrets .ConfigWithSecretReferences ;
56
+ import io .airbyte .config .secrets .InlinedConfigWithSecretRefsKt ;
55
57
import io .airbyte .data .services .ConnectionService ;
56
58
import io .airbyte .data .services .DestinationService ;
57
59
import io .airbyte .data .services .ScopedConfigurationService ;
58
60
import io .airbyte .data .services .SourceService ;
59
61
import io .airbyte .data .services .shared .NetworkSecurityTokenKey ;
62
+ import io .airbyte .domain .models .SecretReferenceScopeType ;
63
+ import io .airbyte .domain .services .secrets .SecretReferenceService ;
60
64
import io .airbyte .featureflag .Connection ;
61
65
import io .airbyte .featureflag .Context ;
62
66
import io .airbyte .featureflag .FeatureFlagClient ;
@@ -100,6 +104,7 @@ public class JobInputHandler {
100
104
private final DestinationService destinationService ;
101
105
private final ApiPojoConverters apiPojoConverters ;
102
106
private final ScopedConfigurationService scopedConfigurationService ;
107
+ private final SecretReferenceService secretReferenceService ;
103
108
104
109
private static final Logger LOGGER = LoggerFactory .getLogger (JobInputHandler .class );
105
110
@@ -116,7 +121,8 @@ public JobInputHandler(final JobPersistence jobPersistence,
116
121
final SourceService sourceService ,
117
122
final DestinationService destinationService ,
118
123
final ApiPojoConverters apiPojoConverters ,
119
- final ScopedConfigurationService scopedConfigurationService ) {
124
+ final ScopedConfigurationService scopedConfigurationService ,
125
+ final SecretReferenceService secretReferenceService ) {
120
126
this .jobPersistence = jobPersistence ;
121
127
this .featureFlagClient = featureFlagClient ;
122
128
this .oAuthConfigSupplier = oAuthConfigSupplier ;
@@ -130,6 +136,7 @@ public JobInputHandler(final JobPersistence jobPersistence,
130
136
this .destinationService = destinationService ;
131
137
this .apiPojoConverters = apiPojoConverters ;
132
138
this .scopedConfigurationService = scopedConfigurationService ;
139
+ this .secretReferenceService = secretReferenceService ;
133
140
}
134
141
135
142
/**
@@ -160,12 +167,9 @@ public Object getJobInput(final SyncInput input) {
160
167
sourceService .getStandardSourceDefinition (source .getSourceDefinitionId ()),
161
168
source .getWorkspaceId (),
162
169
source .getSourceId ());
163
- final JsonNode sourceConfiguration = oAuthConfigSupplier .injectSourceOAuthParameters (
164
- source .getSourceDefinitionId (),
165
- source .getSourceId (),
166
- source .getWorkspaceId (),
167
- source .getConfiguration ());
168
- attemptSyncConfig .setSourceConfiguration (configInjector .injectConfig (sourceConfiguration , source .getSourceDefinitionId ()));
170
+ final ConfigWithSecretReferences sourceConfiguration = getSourceConfiguration (source );
171
+ final JsonNode sourceConfigWithInlinedRefs = InlinedConfigWithSecretRefsKt .toInlined (sourceConfiguration );
172
+ attemptSyncConfig .setSourceConfiguration (sourceConfigWithInlinedRefs );
169
173
} else if (JobConfig .ConfigType .RESET_CONNECTION .equals (jobConfigType )) {
170
174
final JobResetConnectionConfig resetConnection = job .getConfig ().getResetConnection ();
171
175
final ResetSourceConfiguration resetSourceConfiguration = resetConnection .getResetSourceConfiguration ();
@@ -181,12 +185,9 @@ public Object getJobInput(final SyncInput input) {
181
185
destinationService .getStandardDestinationDefinition (destination .getDestinationDefinitionId ()),
182
186
destination .getWorkspaceId (),
183
187
destination .getDestinationId ());
184
- final JsonNode destinationConfiguration = oAuthConfigSupplier .injectDestinationOAuthParameters (
185
- destination .getDestinationDefinitionId (),
186
- destination .getDestinationId (),
187
- destination .getWorkspaceId (),
188
- destination .getConfiguration ());
189
- attemptSyncConfig .setDestinationConfiguration (configInjector .injectConfig (destinationConfiguration , destination .getDestinationDefinitionId ()));
188
+ final ConfigWithSecretReferences destinationConfiguration = getDestinationConfiguration (destination );
189
+ final JsonNode destinationConfigWithInlinedRefs = InlinedConfigWithSecretRefsKt .toInlined (destinationConfiguration );
190
+ attemptSyncConfig .setDestinationConfiguration (destinationConfigWithInlinedRefs );
190
191
191
192
final IntegrationLauncherConfig sourceLauncherConfig = getSourceIntegrationLauncherConfig (
192
193
jobId ,
@@ -266,16 +267,19 @@ public Object getCheckJobInput(final CheckInput input) {
266
267
final ActorDefinitionVersion sourceVersion =
267
268
actorDefinitionVersionHelper .getSourceVersion (sourceDefinition , source .getWorkspaceId (), source .getSourceId ());
268
269
269
- final JsonNode sourceConfiguration = getSourceConfiguration (source );
270
- final JsonNode destinationConfiguration = getDestinationConfiguration (destination );
270
+ final ConfigWithSecretReferences sourceConfiguration = getSourceConfiguration (source );
271
+ final JsonNode sourceConfigWithInlinedRefs = InlinedConfigWithSecretRefsKt .toInlined (sourceConfiguration );
272
+
273
+ final ConfigWithSecretReferences destinationConfiguration = getDestinationConfiguration (destination );
274
+ final JsonNode destinationConfigWithInlinedRefs = InlinedConfigWithSecretRefsKt .toInlined (destinationConfiguration );
271
275
272
276
final IntegrationLauncherConfig sourceLauncherConfig = getSourceIntegrationLauncherConfig (
273
277
jobId ,
274
278
attemptNumber ,
275
279
connectionId ,
276
280
jobSyncConfig ,
277
281
sourceVersion ,
278
- sourceConfiguration );
282
+ sourceConfigWithInlinedRefs );
279
283
280
284
final IntegrationLauncherConfig destinationLauncherConfig =
281
285
getDestinationIntegrationLauncherConfig (
@@ -284,7 +288,7 @@ public Object getCheckJobInput(final CheckInput input) {
284
288
connectionId ,
285
289
jobSyncConfig ,
286
290
destinationVersion ,
287
- destinationConfiguration ,
291
+ destinationConfigWithInlinedRefs ,
288
292
Collections .emptyMap ());
289
293
290
294
final ResourceRequirements sourceCheckResourceRequirements =
@@ -295,7 +299,7 @@ public Object getCheckJobInput(final CheckInput input) {
295
299
final StandardCheckConnectionInput sourceCheckConnectionInput = new StandardCheckConnectionInput ()
296
300
.withActorType (ActorType .SOURCE )
297
301
.withActorId (source .getSourceId ())
298
- .withConnectionConfiguration (sourceConfiguration )
302
+ .withConnectionConfiguration (sourceConfigWithInlinedRefs )
299
303
.withResourceRequirements (sourceCheckResourceRequirements )
300
304
.withActorContext (sourceContext )
301
305
.withNetworkSecurityTokens (getNetworkSecurityTokens (jobSyncConfig .getWorkspaceId ()));
@@ -308,7 +312,7 @@ public Object getCheckJobInput(final CheckInput input) {
308
312
final StandardCheckConnectionInput destinationCheckConnectionInput = new StandardCheckConnectionInput ()
309
313
.withActorType (ActorType .DESTINATION )
310
314
.withActorId (destination .getDestinationId ())
311
- .withConnectionConfiguration (destinationConfiguration )
315
+ .withConnectionConfiguration (destinationConfigWithInlinedRefs )
312
316
.withResourceRequirements (destinationCheckResourceRequirements )
313
317
.withActorContext (destinationContext )
314
318
.withNetworkSecurityTokens (getNetworkSecurityTokens (jobSyncConfig .getWorkspaceId ()));
@@ -441,20 +445,22 @@ private IntegrationLauncherConfig getDestinationIntegrationLauncherConfig(final
441
445
.withAdditionalEnvironmentVariables (additionalEnviornmentVariables );
442
446
}
443
447
444
- private JsonNode getSourceConfiguration (final SourceConnection source ) throws IOException {
445
- return configInjector .injectConfig (oAuthConfigSupplier .injectSourceOAuthParameters (
448
+ private ConfigWithSecretReferences getSourceConfiguration (final SourceConnection source ) throws IOException {
449
+ final JsonNode injectedConfig = configInjector .injectConfig (oAuthConfigSupplier .injectSourceOAuthParameters (
446
450
source .getSourceDefinitionId (),
447
451
source .getSourceId (),
448
452
source .getWorkspaceId (),
449
453
source .getConfiguration ()), source .getSourceDefinitionId ());
454
+ return secretReferenceService .getConfigWithSecretReferences (SecretReferenceScopeType .ACTOR , source .getSourceId (), injectedConfig );
450
455
}
451
456
452
- private JsonNode getDestinationConfiguration (final DestinationConnection destination ) throws IOException {
453
- return configInjector .injectConfig (oAuthConfigSupplier .injectDestinationOAuthParameters (
457
+ private ConfigWithSecretReferences getDestinationConfiguration (final DestinationConnection destination ) throws IOException {
458
+ final JsonNode injectedConfig = configInjector .injectConfig (oAuthConfigSupplier .injectDestinationOAuthParameters (
454
459
destination .getDestinationDefinitionId (),
455
460
destination .getDestinationId (),
456
461
destination .getWorkspaceId (),
457
462
destination .getConfiguration ()), destination .getDestinationDefinitionId ());
463
+ return secretReferenceService .getConfigWithSecretReferences (SecretReferenceScopeType .ACTOR , destination .getDestinationId (), injectedConfig );
458
464
}
459
465
460
466
private @ NotNull List <String > getNetworkSecurityTokens (final UUID workspaceId ) {
0 commit comments