Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1650823

Browse files
committed
feat(credential-providers): add logger for credential providers
1 parent 50b8480 commit 1650823

File tree

14 files changed

+66
-32
lines changed

14 files changed

+66
-32
lines changed

packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { CredentialProviderOptions } from "@aws-sdk/types";
12
import { CredentialsProviderError } from "@smithy/property-provider";
23
import { AwsCredentialIdentity, Provider } from "@smithy/types";
34

@@ -29,6 +30,7 @@ export type CognitoIdentityCredentialProvider = Provider<CognitoIdentityCredenti
2930
*/
3031
export function fromCognitoIdentity(parameters: FromCognitoIdentityParameters): CognitoIdentityCredentialProvider {
3132
return async (): Promise<CognitoIdentityCredentials> => {
33+
parameters.logger?.debug("@aws-sdk/credential-provider-cognito-identity", "fromCognitoIdentity");
3234
const { GetCredentialsForIdentityCommand, CognitoIdentityClient } = await import("./loadCognitoIdentity");
3335

3436
const {
@@ -59,7 +61,7 @@ export function fromCognitoIdentity(parameters: FromCognitoIdentityParameters):
5961
/**
6062
* @internal
6163
*/
62-
export interface FromCognitoIdentityParameters extends CognitoProviderParameters {
64+
export interface FromCognitoIdentityParameters extends CognitoProviderParameters, CredentialProviderOptions {
6365
/**
6466
* The unique identifier for the identity against which credentials will be
6567
* issued.

packages/credential-provider-cognito-identity/src/fromCognitoIdentityPool.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { CredentialProviderOptions } from "@aws-sdk/types";
12
import { CredentialsProviderError } from "@smithy/property-provider";
23

34
import { CognitoProviderParameters } from "./CognitoProviderParameters";
@@ -25,7 +26,9 @@ export function fromCognitoIdentityPool({
2526
identityPoolId,
2627
logins,
2728
userIdentifier = !logins || Object.keys(logins).length === 0 ? "ANONYMOUS" : undefined,
29+
logger,
2830
}: FromCognitoIdentityPoolParameters): CognitoIdentityCredentialProvider {
31+
logger?.debug("@aws-sdk/credential-provider-cognito-identity", "fromCognitoIdentity");
2932
const cacheKey: string | undefined = userIdentifier
3033
? `aws:cognito-identity-credentials:${identityPoolId}:${userIdentifier}`
3134
: undefined;
@@ -72,7 +75,7 @@ export function fromCognitoIdentityPool({
7275
/**
7376
* @internal
7477
*/
75-
export interface FromCognitoIdentityPoolParameters extends CognitoProviderParameters {
78+
export interface FromCognitoIdentityPoolParameters extends CognitoProviderParameters, CredentialProviderOptions {
7679
/**
7780
* A standard AWS account ID (9+ digits).
7881
*/

packages/credential-provider-env/src/fromEnv.ts

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import type { CredentialProviderOptions } from "@aws-sdk/types";
12
import { CredentialsProviderError } from "@smithy/property-provider";
23
import { AwsCredentialIdentityProvider } from "@smithy/types";
34

5+
export interface FromEnvInit extends CredentialProviderOptions {}
6+
47
/**
58
* @internal
69
*/
@@ -29,22 +32,25 @@ export const ENV_CREDENTIAL_SCOPE = "AWS_CREDENTIAL_SCOPE";
2932
* `AWS_ACCESS_KEY_ID` or `AWS_SECRET_ACCESS_KEY` environment variable is not
3033
* set in this process, the provider will return a rejected promise.
3134
*/
32-
export const fromEnv = (): AwsCredentialIdentityProvider => async () => {
33-
const accessKeyId: string | undefined = process.env[ENV_KEY];
34-
const secretAccessKey: string | undefined = process.env[ENV_SECRET];
35-
const sessionToken: string | undefined = process.env[ENV_SESSION];
36-
const expiry: string | undefined = process.env[ENV_EXPIRATION];
37-
const credentialScope: string | undefined = process.env[ENV_CREDENTIAL_SCOPE];
35+
export const fromEnv =
36+
(init?: FromEnvInit): AwsCredentialIdentityProvider =>
37+
async () => {
38+
init?.logger?.debug("@aws-sdk/credential-provider-env", "fromEnv");
39+
const accessKeyId: string | undefined = process.env[ENV_KEY];
40+
const secretAccessKey: string | undefined = process.env[ENV_SECRET];
41+
const sessionToken: string | undefined = process.env[ENV_SESSION];
42+
const expiry: string | undefined = process.env[ENV_EXPIRATION];
43+
const credentialScope: string | undefined = process.env[ENV_CREDENTIAL_SCOPE];
3844

39-
if (accessKeyId && secretAccessKey) {
40-
return {
41-
accessKeyId,
42-
secretAccessKey,
43-
...(sessionToken && { sessionToken }),
44-
...(expiry && { expiration: new Date(expiry) }),
45-
...(credentialScope && { credentialScope }),
46-
};
47-
}
45+
if (accessKeyId && secretAccessKey) {
46+
return {
47+
accessKeyId,
48+
secretAccessKey,
49+
...(sessionToken && { sessionToken }),
50+
...(expiry && { expiration: new Date(expiry) }),
51+
...(credentialScope && { credentialScope }),
52+
};
53+
}
4854

49-
throw new CredentialsProviderError("Unable to find environment variable credentials.");
50-
};
55+
throw new CredentialsProviderError("Unable to find environment variable credentials.");
56+
};

packages/credential-provider-http/src/fromHttp/fromHttp.browser.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { retryWrapper } from "./retry-wrapper";
1111
* Creates a provider that gets credentials via HTTP request.
1212
*/
1313
export const fromHttp = (options: FromHttpOptions): AwsCredentialIdentityProvider => {
14+
options.logger?.debug("@aws-sdk/credential-provider-http", "fromHttp");
1415
let host: string;
1516

1617
const full = options.credentialsFullUri;

packages/credential-provider-http/src/fromHttp/fromHttp.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
1818
* Creates a provider that gets credentials via HTTP request.
1919
*/
2020
export const fromHttp = (options: FromHttpOptions): AwsCredentialIdentityProvider => {
21+
options.logger?.debug("@aws-sdk/credential-provider-http", "fromHttp");
2122
let host: string;
2223

2324
const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];

packages/credential-provider-http/src/fromHttp/fromHttpTypes.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
import type { CredentialProviderOptions } from "@aws-sdk/types";
2+
13
/**
24
* @public
35
*
46
* Input for the fromHttp function in the HTTP Credentials Provider for Node.js.
57
*/
6-
export interface FromHttpOptions {
8+
export interface FromHttpOptions extends CredentialProviderOptions {
79
/**
810
* If this value is provided, it will be used as-is.
911
*

packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ export const resolveAssumeRoleCredentials = async (
105105
...visitedProfiles,
106106
[source_profile]: true,
107107
})
108-
: resolveCredentialSource(data.credential_source!, profileName)();
108+
: resolveCredentialSource(data.credential_source!, profileName)(options)();
109109

110110
const params: AssumeRoleParams = {
111111
RoleArn: data.role_arn!,

packages/credential-provider-ini/src/resolveCredentialSource.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { fromEnv } from "@aws-sdk/credential-provider-env";
2+
import type { CredentialProviderOptions } from "@aws-sdk/types";
23
import { fromContainerMetadata, fromInstanceMetadata } from "@smithy/credential-provider-imds";
34
import { CredentialsProviderError } from "@smithy/property-provider";
45
import { AwsCredentialIdentityProvider } from "@smithy/types";
@@ -15,14 +16,14 @@ import { AwsCredentialIdentityProvider } from "@smithy/types";
1516
export const resolveCredentialSource = (
1617
credentialSource: string,
1718
profileName: string
18-
): AwsCredentialIdentityProvider => {
19-
const sourceProvidersMap: Record<string, () => AwsCredentialIdentityProvider> = {
19+
): ((options?: CredentialProviderOptions) => AwsCredentialIdentityProvider) => {
20+
const sourceProvidersMap: Record<string, (options?: CredentialProviderOptions) => AwsCredentialIdentityProvider> = {
2021
EcsContainer: fromContainerMetadata,
2122
Ec2InstanceMetadata: fromInstanceMetadata,
2223
Environment: fromEnv,
2324
};
2425
if (credentialSource in sourceProvidersMap) {
25-
return sourceProvidersMap[credentialSource]();
26+
return sourceProvidersMap[credentialSource];
2627
} else {
2728
throw new CredentialsProviderError(
2829
`Unsupported credential source in profile ${profileName}. Got ${credentialSource}, ` +

packages/credential-provider-node/src/defaultProvider.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,27 +55,33 @@ export const defaultProvider = (init: DefaultProviderInit = {}): MemoizedProvide
5555
? []
5656
: [
5757
async () => {
58+
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromEnv");
5859
const { fromEnv } = await import("@aws-sdk/credential-provider-env");
5960
return fromEnv()();
6061
},
6162
]),
6263
async () => {
64+
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromSSO");
6365
const { fromSSO } = await import("@aws-sdk/credential-provider-sso");
6466
return fromSSO(init)();
6567
},
6668
async () => {
69+
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromIni");
6770
const { fromIni } = await import("@aws-sdk/credential-provider-ini");
6871
return fromIni(init)();
6972
},
7073
async () => {
74+
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromProcess");
7175
const { fromProcess } = await import("@aws-sdk/credential-provider-process");
7276
return fromProcess(init)();
7377
},
7478
async () => {
79+
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromTokenFile");
7580
const { fromTokenFile } = await import("@aws-sdk/credential-provider-web-identity");
7681
return fromTokenFile(init)();
7782
},
7883
async () => {
84+
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::remoteProvider");
7985
return (await remoteProvider(init))();
8086
},
8187
async () => {

packages/credential-provider-node/src/remoteProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export const remoteProvider = async (init: RemoteProviderInit): Promise<AwsCrede
1313
);
1414

1515
if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {
16+
init.logger?.debug("@aws-sdk/credential-provider-node", "remoteProvider::fromContainerMetadata");
1617
return fromContainerMetadata(init);
1718
}
1819

@@ -22,5 +23,6 @@ export const remoteProvider = async (init: RemoteProviderInit): Promise<AwsCrede
2223
};
2324
}
2425

26+
init.logger?.debug("@aws-sdk/credential-provider-node", "remoteProvider::fromInstanceMetadata");
2527
return fromInstanceMetadata(init);
2628
};

0 commit comments

Comments
 (0)