fix: correct outputs for role chaining (#1633)

re-instantiate stsClient when roleChaining

technically a breaking change
This commit is contained in:
Michael Lehmann
2026-01-29 10:47:17 -08:00
committed by GitHub
parent a7a2c1125c
commit 7ceaf96edc
3 changed files with 14 additions and 4 deletions

8
dist/index.js generated vendored
View File

@@ -36,9 +36,10 @@ class CredentialsClient {
httpAgent: handler,
});
}
this.roleChaining = props.roleChaining;
}
get stsClient() {
if (!this._stsClient) {
if (!this._stsClient || this.roleChaining) {
const config = { customUserAgent: USER_AGENT };
if (this.region !== undefined)
config.region = this.region;
@@ -756,7 +757,10 @@ async function run() {
}
(0, helpers_1.exportRegion)(region, outputEnvCredentials);
// Instantiate credentials client
const clientProps = { region };
const clientProps = {
region,
roleChaining,
};
if (proxyServer)
clientProps.proxyServer = proxyServer;
if (noProxy)

View File

@@ -12,12 +12,14 @@ export interface CredentialsClientProps {
region?: string;
proxyServer?: string;
noProxy?: string;
roleChaining: boolean;
}
export class CredentialsClient {
public region?: string;
private _stsClient?: STSClient;
private readonly requestHandler?: NodeHttpHandler;
private roleChaining?: boolean;
constructor(props: CredentialsClientProps) {
if (props.region !== undefined) {
@@ -39,10 +41,11 @@ export class CredentialsClient {
httpAgent: handler,
});
}
this.roleChaining = props.roleChaining;
}
public get stsClient(): STSClient {
if (!this._stsClient) {
if (!this._stsClient || this.roleChaining) {
const config = { customUserAgent: USER_AGENT } as {
customUserAgent: string;
region?: string;

View File

@@ -121,7 +121,10 @@ export async function run() {
exportRegion(region, outputEnvCredentials);
// Instantiate credentials client
const clientProps: { region: string; proxyServer?: string; noProxy?: string } = { region };
const clientProps: { region: string; proxyServer?: string; noProxy?: string; roleChaining: boolean } = {
region,
roleChaining,
};
if (proxyServer) clientProps.proxyServer = proxyServer;
if (noProxy) clientProps.noProxy = noProxy;
const credentialsClient = new CredentialsClient(clientProps);