From 1cc4de91fb080b32d58c5b45e0debac42a45f99e Mon Sep 17 00:00:00 2001 From: isaiahshall <95551503+isaiahshall@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:10:57 -0400 Subject: [PATCH] chore(client-sso-oidc): move sts to peer (#6224) --- clients/client-sso-oidc/package.json | 4 +++- .../codegen/AwsCredentialProviderUtils.java | 14 +++++++++++--- .../aws/typescript/codegen/AwsDependency.java | 1 + 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/clients/client-sso-oidc/package.json b/clients/client-sso-oidc/package.json index 6ce510d5e2ad..dd3431f462b5 100644 --- a/clients/client-sso-oidc/package.json +++ b/clients/client-sso-oidc/package.json @@ -20,7 +20,6 @@ "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sts": "*", "@aws-sdk/core": "*", "@aws-sdk/credential-provider-node": "*", "@aws-sdk/middleware-host-header": "*", @@ -59,6 +58,9 @@ "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, + "peerDependencies": { + "@aws-sdk/client-sts": "*" + }, "devDependencies": { "@tsconfig/node16": "16.1.3", "@types/node": "^16.18.96", diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsCredentialProviderUtils.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsCredentialProviderUtils.java index ad61be8e2c6d..6cc6c87d87bb 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsCredentialProviderUtils.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsCredentialProviderUtils.java @@ -33,13 +33,21 @@ private AwsCredentialProviderUtils() {} * The dependencies are skipped in first party credential providers to avoid circular dependency issue. */ public static void addAwsCredentialProviderDependencies(ServiceShape service, TypeScriptWriter writer) { - if (!service.getId().equals(ShapeId.from("com.amazonaws.ssooidc#AWSSSOOIDCService"))) { + boolean isStsClient = + service.getId().equals(ShapeId.from("com.amazonaws.sts#AWSSecurityTokenServiceV20110615")); + boolean isSsoOidcClient = service.getId().equals(ShapeId.from("com.amazonaws.ssooidc#AWSSSOOIDCService")); + if (!isSsoOidcClient) { // SSO OIDC client is required in Sso credential provider writer.addDependency(AwsDependency.SSO_OIDC_CLIENT); } - if (!service.getId().equals(ShapeId.from("com.amazonaws.sts#AWSSecurityTokenServiceV20110615"))) { + if (!isStsClient) { // STS client is required in Ini and WebIdentity credential providers - writer.addDependency(AwsDependency.STS_CLIENT); + if (isSsoOidcClient) { + // For the SSO OIDC client, adding the STS client as a peerDependency avoids circular dependency issues. + writer.addDependency(AwsDependency.STS_CLIENT_PEER); + } else { + writer.addDependency(AwsDependency.STS_CLIENT); + } } } } diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java index c9c8bd32ed80..a4a58fe8ec13 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java @@ -67,6 +67,7 @@ public enum AwsDependency implements Dependency { TRANSCRIBE_STREAMING_MIDDLEWARE(NORMAL_DEPENDENCY, "@aws-sdk/middleware-sdk-transcribe-streaming"), STS_MIDDLEWARE(NORMAL_DEPENDENCY, "@aws-sdk/middleware-sdk-sts"), STS_CLIENT(NORMAL_DEPENDENCY, "@aws-sdk/client-sts"), + STS_CLIENT_PEER(PEER_DEPENDENCY, "@aws-sdk/client-sts"), SSO_OIDC_CLIENT(NORMAL_DEPENDENCY, "@aws-sdk/client-sso-oidc"), MIDDLEWARE_LOGGER(NORMAL_DEPENDENCY, "@aws-sdk/middleware-logger"), MIDDLEWARE_USER_AGENT("dependencies", "@aws-sdk/middleware-user-agent"),