Skip to content

Commit cc96557

Browse files
committed
chore(codegen): add dependencies required by default credential providers
1 parent 003de3f commit cc96557

File tree

5 files changed

+40
-0
lines changed

5 files changed

+40
-0
lines changed

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddAwsAuthPlugin.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
212212
.addImport("defaultProvider", "credentialDefaultProvider",
213213
AwsDependency.CREDENTIAL_PROVIDER_NODE)
214214
.write("credentialDefaultProvider");
215+
AwsCredentialProviderUtils.addAwsCredentialProviderDependencies(service, writer);
215216
}
216217
);
217218
default:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package software.amazon.smithy.aws.typescript.codegen;
2+
3+
import software.amazon.smithy.model.shapes.ServiceShape;
4+
import software.amazon.smithy.model.shapes.ShapeId;
5+
import software.amazon.smithy.typescript.codegen.TypeScriptWriter;
6+
import software.amazon.smithy.utils.SmithyInternalApi;
7+
8+
/**
9+
* Utility methods related to AWS traits.
10+
*/
11+
@SmithyInternalApi
12+
public final class AwsCredentialProviderUtils {
13+
14+
private AwsCredentialProviderUtils() {}
15+
16+
/**
17+
* Adds dependencies required by the default credential provider.
18+
* The dependencies are skipped in first party credential providers to avoid circular dependency issue.
19+
*
20+
* @param service
21+
* @param writer
22+
*/
23+
public static void addAwsCredentialProviderDependencies(ServiceShape service, TypeScriptWriter writer) {
24+
if (!service.getId().equals(ShapeId.from("com.amazonaws.ssooidc#AWSSSOOIDCService"))) {
25+
// SSO OIDC client is required in Sso credential provider
26+
writer.addDependency(AwsDependency.SSO_OIDC_CLIENT);
27+
}
28+
if (!service.getId().equals(ShapeId.from("com.amazonaws.sts#AWSSecurityTokenServiceV20110615"))) {
29+
// STS client is required in Ini and WebIdentity credential providers
30+
writer.addDependency(AwsDependency.STS_CLIENT);
31+
}
32+
}
33+
}

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public enum AwsDependency implements Dependency {
6767
TRANSCRIBE_STREAMING_MIDDLEWARE(NORMAL_DEPENDENCY, "@aws-sdk/middleware-sdk-transcribe-streaming"),
6868
STS_MIDDLEWARE(NORMAL_DEPENDENCY, "@aws-sdk/middleware-sdk-sts"),
6969
STS_CLIENT(NORMAL_DEPENDENCY, "@aws-sdk/client-sts"),
70+
SSO_OIDC_CLIENT(NORMAL_DEPENDENCY, "@aws-sdk/client-sso-oidc"),
7071
MIDDLEWARE_LOGGER(NORMAL_DEPENDENCY, "@aws-sdk/middleware-logger"),
7172
MIDDLEWARE_USER_AGENT("dependencies", "@aws-sdk/middleware-user-agent"),
7273
AWS_SDK_UTIL_USER_AGENT_BROWSER(NORMAL_DEPENDENCY, "@aws-sdk/util-user-agent-browser"),

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/auth/http/integration/AddSTSAuthCustomizations.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.function.Consumer;
1515
import java.util.logging.Logger;
1616
import software.amazon.smithy.aws.traits.auth.SigV4Trait;
17+
import software.amazon.smithy.aws.typescript.codegen.AwsCredentialProviderUtils;
1718
import software.amazon.smithy.aws.typescript.codegen.AwsDependency;
1819
import software.amazon.smithy.aws.typescript.codegen.AwsTraitsUtils;
1920
import software.amazon.smithy.codegen.core.Symbol;
@@ -114,6 +115,8 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
114115
.addImport("defaultProvider", "credentialDefaultProvider",
115116
AwsDependency.CREDENTIAL_PROVIDER_NODE)
116117
.write("credentialDefaultProvider");
118+
AwsCredentialProviderUtils.addAwsCredentialProviderDependencies(
119+
settings.getService(model), writer);
117120
}
118121
);
119122
default:

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/auth/http/integration/AwsSdkCustomizeSigV4Auth.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.Set;
1515
import java.util.function.Consumer;
1616
import software.amazon.smithy.aws.traits.auth.SigV4Trait;
17+
import software.amazon.smithy.aws.typescript.codegen.AwsCredentialProviderUtils;
1718
import software.amazon.smithy.aws.typescript.codegen.AwsDependency;
1819
import software.amazon.smithy.codegen.core.Symbol;
1920
import software.amazon.smithy.codegen.core.SymbolProvider;
@@ -115,6 +116,7 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
115116
.addImport("defaultProvider", "credentialDefaultProvider",
116117
AwsDependency.CREDENTIAL_PROVIDER_NODE)
117118
.write("credentialDefaultProvider");
119+
AwsCredentialProviderUtils.addAwsCredentialProviderDependencies(service, writer);
118120
}
119121
);
120122
}

0 commit comments

Comments
 (0)