Skip to content

Commit 59e7410

Browse files
authored
add businessmetrics feature ID for env-based bearer token (#3182)
1 parent 1cdc158 commit 59e7410

File tree

5 files changed

+42
-1
lines changed

5 files changed

+42
-1
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"id": "8aa450c4-7b4b-4c08-bd9e-87041915eb82",
3+
"type": "feature",
4+
"description": "Emit user-agent business metrics for use of env-based bearer tokens.",
5+
"modules": [
6+
".",
7+
"service/bedrock",
8+
"service/bedrockruntime"
9+
]
10+
}

aws/middleware/user_agent.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ const (
135135
UserAgentFeatureCredentialsAwsSdkStore = "y" // n/a (this is used by .NET based sdk)
136136
UserAgentFeatureCredentialsHTTP = "z"
137137
UserAgentFeatureCredentialsIMDS = "0"
138+
139+
UserAgentFeatureBearerServiceEnvVars = "3"
138140
)
139141

140142
var credentialSourceToFeature = map[aws.CredentialSource]UserAgentFeature{

codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/customization/service/BearerTokenEnvProvider.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import java.util.List;
77
import java.util.Map;
8+
import software.amazon.smithy.aws.go.codegen.customization.AwsCustomGoDependency;
89
import software.amazon.smithy.aws.traits.auth.SigV4Trait;
910
import software.amazon.smithy.go.codegen.GoCodegenContext;
1011
import software.amazon.smithy.go.codegen.GoWriter;
@@ -59,7 +60,7 @@ private GoWriter.Writable bearerTokenResolver(ServiceShape service) {
5960
.replace(' ', '_')
6061
.replace('-', '_');
6162
return goTemplate("""
62-
$context:D $os:D $bearer:D
63+
$context:D $os:D $bearer:D $awsmiddleware:D
6364
func resolveEnvBearerToken(options *Options) {
6465
token := os.Getenv("AWS_BEARER_TOKEN_$envSuffix:L")
6566
if len(token) == 0 { return }
@@ -68,12 +69,22 @@ func resolveEnvBearerToken(options *Options) {
6869
return bearer.Token{Value: token}, nil
6970
})
7071
options.AuthSchemePreference = []string{"httpBearerAuth"}
72+
options.APIOptions = append(options.APIOptions, func(stack *middleware.Stack) error {
73+
ua, err := getOrAddRequestUserAgent(stack)
74+
if err != nil {
75+
return err
76+
}
77+
78+
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureBearerServiceEnvVars)
79+
return nil
80+
})
7181
}
7282
""",
7383
Map.of(
7484
"context", SmithyGoDependency.CONTEXT,
7585
"os", SmithyGoDependency.OS,
7686
"bearer", SmithyGoDependency.SMITHY_AUTH_BEARER,
87+
"awsmiddleware", AwsCustomGoDependency.AWS_MIDDLEWARE,
7788
"envSuffix", envSuffix
7889
));
7990
}

service/bedrock/api_client.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

service/bedrockruntime/api_client.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)