@jjrawlins/cdk-iam-policy-builder-helper 0.0.69 → 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +4 -4
- package/cdk-iam-policy-builder-helper/jsii/jsii.go +2 -2
- package/cdk-iam-policy-builder-helper/version +1 -1
- package/lib/constructs/Actions.d.ts +2 -0
- package/lib/constructs/Actions.js +3 -1
- package/methods_list.txt +2 -0
- package/node_modules/@aws-sdk/client-iam/dist-types/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/client-iam/dist-types/ts3.4/runtimeConfig.d.ts +1 -3
- package/node_modules/@aws-sdk/client-iam/package.json +12 -12
- package/node_modules/@aws-sdk/client-sso/package.json +11 -11
- package/node_modules/@aws-sdk/core/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +108 -45
- package/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js +55 -46
- package/node_modules/@aws-sdk/credential-provider-node/dist-es/runtime/memoize-chain.js +54 -0
- package/node_modules/@aws-sdk/credential-provider-node/dist-types/defaultProvider.d.ts +3 -2
- package/node_modules/@aws-sdk/credential-provider-node/dist-types/runtime/memoize-chain.d.ts +18 -0
- package/node_modules/@aws-sdk/credential-provider-node/dist-types/ts3.4/defaultProvider.d.ts +3 -2
- package/node_modules/@aws-sdk/credential-provider-node/dist-types/ts3.4/runtime/memoize-chain.d.ts +19 -0
- package/node_modules/@aws-sdk/credential-provider-node/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
- package/node_modules/@aws-sdk/middleware-host-header/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-logger/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +4 -4
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +13 -6
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +13 -6
- package/node_modules/@aws-sdk/nested-clients/package.json +11 -11
- package/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js +7 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-cjs/regionConfig/stsRegionDefaultResolver.js +20 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-cjs/regionConfig/stsRegionDefaultResolver.native.js +6 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-es/index.js +1 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/stsRegionDefaultResolver.browser.js +3 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/stsRegionDefaultResolver.js +16 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/stsRegionDefaultResolver.native.js +3 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-types/index.d.ts +1 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/stsRegionDefaultResolver.browser.d.ts +4 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/stsRegionDefaultResolver.d.ts +14 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/stsRegionDefaultResolver.native.d.ts +4 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/index.d.ts +1 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/stsRegionDefaultResolver.browser.d.ts +1 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/stsRegionDefaultResolver.d.ts +7 -0
- package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/stsRegionDefaultResolver.native.d.ts +1 -0
- package/node_modules/@aws-sdk/region-config-resolver/package.json +8 -3
- package/node_modules/@aws-sdk/token-providers/package.json +4 -4
- package/node_modules/@aws-sdk/types/dist-types/credentials.d.ts +1 -0
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/credentials.d.ts +1 -0
- package/node_modules/@aws-sdk/types/package.json +1 -1
- package/node_modules/@aws-sdk/util-endpoints/package.json +2 -2
- package/node_modules/@aws-sdk/util-user-agent-browser/package.json +2 -2
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +3 -3
- package/package.json +6 -6
package/methods_list.txt
CHANGED
|
@@ -10378,6 +10378,7 @@ kinesis:StopStreamEncryption
|
|
|
10378
10378
|
kinesis:SubscribeToShard
|
|
10379
10379
|
kinesis:TagResource
|
|
10380
10380
|
kinesis:UntagResource
|
|
10381
|
+
kinesis:UpdateMaxRecordSize
|
|
10381
10382
|
kinesis:UpdateShardCount
|
|
10382
10383
|
kinesis:UpdateStreamMode
|
|
10383
10384
|
kinesisanalytics:AddApplicationCloudWatchLoggingOption
|
|
@@ -17931,6 +17932,7 @@ support:DescribeTrustedAdvisorCheckSummaries
|
|
|
17931
17932
|
support:GetInteraction
|
|
17932
17933
|
support:InitiateCallForCase
|
|
17933
17934
|
support:InitiateChatForCase
|
|
17935
|
+
support:InitiateLiveContactForCase
|
|
17934
17936
|
support:PutCaseAttributes
|
|
17935
17937
|
support:RateCaseCommunication
|
|
17936
17938
|
support:RefreshTrustedAdvisorCheck
|
|
@@ -8,7 +8,7 @@ export declare const getRuntimeConfig: (config: IAMClientConfig) => {
|
|
|
8
8
|
defaultsMode: import("@smithy/types").Provider<import("@smithy/smithy-client").ResolvedDefaultsMode>;
|
|
9
9
|
authSchemePreference: string[] | import("@smithy/types").Provider<string[]>;
|
|
10
10
|
bodyLengthChecker: import("@smithy/types").BodyLengthCalculator;
|
|
11
|
-
credentialDefaultProvider: ((input: any) => import("@smithy/types").AwsCredentialIdentityProvider) | ((init?: import("@aws-sdk/credential-provider-node").DefaultProviderInit) => import("@
|
|
11
|
+
credentialDefaultProvider: ((input: any) => import("@smithy/types").AwsCredentialIdentityProvider) | ((init?: import("@aws-sdk/credential-provider-node").DefaultProviderInit) => import("@aws-sdk/credential-provider-node/dist-types/runtime/memoize-chain").MemoizedRuntimeConfigAwsCredentialIdentityProvider);
|
|
12
12
|
defaultUserAgentProvider: (config?: import("@aws-sdk/util-user-agent-node").PreviouslyResolved) => Promise<import("@smithy/types").UserAgent>;
|
|
13
13
|
maxAttempts: number | import("@smithy/types").Provider<number>;
|
|
14
14
|
region: string | import("@smithy/types").Provider<string>;
|
|
@@ -11,9 +11,7 @@ export declare const getRuntimeConfig: (config: IAMClientConfig) => {
|
|
|
11
11
|
| ((input: any) => import("@smithy/types").AwsCredentialIdentityProvider)
|
|
12
12
|
| ((
|
|
13
13
|
init?: import("@aws-sdk/credential-provider-node").DefaultProviderInit
|
|
14
|
-
) => import("@
|
|
15
|
-
import("@smithy/types").AwsCredentialIdentity
|
|
16
|
-
>);
|
|
14
|
+
) => import("@aws-sdk/credential-provider-node/dist-types/runtime/memoize-chain").MemoizedRuntimeConfigAwsCredentialIdentityProvider);
|
|
17
15
|
defaultUserAgentProvider: (
|
|
18
16
|
config?: import("@aws-sdk/util-user-agent-node").PreviouslyResolved
|
|
19
17
|
) => Promise<import("@smithy/types").UserAgent>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-iam",
|
|
3
3
|
"description": "AWS SDK for JavaScript Iam Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.920.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-iam",
|
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@aws-crypto/sha256-browser": "5.2.0",
|
|
22
22
|
"@aws-crypto/sha256-js": "5.2.0",
|
|
23
|
-
"@aws-sdk/core": "3.
|
|
24
|
-
"@aws-sdk/credential-provider-node": "3.
|
|
25
|
-
"@aws-sdk/middleware-host-header": "3.
|
|
26
|
-
"@aws-sdk/middleware-logger": "3.
|
|
27
|
-
"@aws-sdk/middleware-recursion-detection": "3.
|
|
28
|
-
"@aws-sdk/middleware-user-agent": "3.
|
|
29
|
-
"@aws-sdk/region-config-resolver": "3.
|
|
30
|
-
"@aws-sdk/types": "3.
|
|
31
|
-
"@aws-sdk/util-endpoints": "3.
|
|
32
|
-
"@aws-sdk/util-user-agent-browser": "3.
|
|
33
|
-
"@aws-sdk/util-user-agent-node": "3.
|
|
23
|
+
"@aws-sdk/core": "3.920.0",
|
|
24
|
+
"@aws-sdk/credential-provider-node": "3.920.0",
|
|
25
|
+
"@aws-sdk/middleware-host-header": "3.920.0",
|
|
26
|
+
"@aws-sdk/middleware-logger": "3.920.0",
|
|
27
|
+
"@aws-sdk/middleware-recursion-detection": "3.920.0",
|
|
28
|
+
"@aws-sdk/middleware-user-agent": "3.920.0",
|
|
29
|
+
"@aws-sdk/region-config-resolver": "3.920.0",
|
|
30
|
+
"@aws-sdk/types": "3.920.0",
|
|
31
|
+
"@aws-sdk/util-endpoints": "3.920.0",
|
|
32
|
+
"@aws-sdk/util-user-agent-browser": "3.920.0",
|
|
33
|
+
"@aws-sdk/util-user-agent-node": "3.920.0",
|
|
34
34
|
"@smithy/config-resolver": "^4.4.0",
|
|
35
35
|
"@smithy/core": "^3.17.1",
|
|
36
36
|
"@smithy/fetch-http-handler": "^5.3.4",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-sso",
|
|
3
3
|
"description": "AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.920.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-sso",
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@aws-crypto/sha256-browser": "5.2.0",
|
|
22
22
|
"@aws-crypto/sha256-js": "5.2.0",
|
|
23
|
-
"@aws-sdk/core": "3.
|
|
24
|
-
"@aws-sdk/middleware-host-header": "3.
|
|
25
|
-
"@aws-sdk/middleware-logger": "3.
|
|
26
|
-
"@aws-sdk/middleware-recursion-detection": "3.
|
|
27
|
-
"@aws-sdk/middleware-user-agent": "3.
|
|
28
|
-
"@aws-sdk/region-config-resolver": "3.
|
|
29
|
-
"@aws-sdk/types": "3.
|
|
30
|
-
"@aws-sdk/util-endpoints": "3.
|
|
31
|
-
"@aws-sdk/util-user-agent-browser": "3.
|
|
32
|
-
"@aws-sdk/util-user-agent-node": "3.
|
|
23
|
+
"@aws-sdk/core": "3.920.0",
|
|
24
|
+
"@aws-sdk/middleware-host-header": "3.920.0",
|
|
25
|
+
"@aws-sdk/middleware-logger": "3.920.0",
|
|
26
|
+
"@aws-sdk/middleware-recursion-detection": "3.920.0",
|
|
27
|
+
"@aws-sdk/middleware-user-agent": "3.920.0",
|
|
28
|
+
"@aws-sdk/region-config-resolver": "3.920.0",
|
|
29
|
+
"@aws-sdk/types": "3.920.0",
|
|
30
|
+
"@aws-sdk/util-endpoints": "3.920.0",
|
|
31
|
+
"@aws-sdk/util-user-agent-browser": "3.920.0",
|
|
32
|
+
"@aws-sdk/util-user-agent-node": "3.920.0",
|
|
33
33
|
"@smithy/config-resolver": "^4.4.0",
|
|
34
34
|
"@smithy/core": "^3.17.1",
|
|
35
35
|
"@smithy/fetch-http-handler": "^5.3.4",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.920.0",
|
|
4
4
|
"description": "Core functions & classes shared by multiple AWS SDK clients.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
},
|
|
82
82
|
"license": "Apache-2.0",
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@aws-sdk/types": "3.
|
|
84
|
+
"@aws-sdk/types": "3.920.0",
|
|
85
85
|
"@aws-sdk/xml-builder": "3.914.0",
|
|
86
86
|
"@smithy/core": "^3.17.1",
|
|
87
87
|
"@smithy/node-config-provider": "^4.3.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/credential-provider-env",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.920.0",
|
|
4
4
|
"description": "AWS credential provider that sources credentials from known environment variables",
|
|
5
5
|
"main": "./dist-cjs/index.js",
|
|
6
6
|
"module": "./dist-es/index.js",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
},
|
|
27
27
|
"license": "Apache-2.0",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@aws-sdk/core": "3.
|
|
30
|
-
"@aws-sdk/types": "3.
|
|
29
|
+
"@aws-sdk/core": "3.920.0",
|
|
30
|
+
"@aws-sdk/types": "3.920.0",
|
|
31
31
|
"@smithy/property-provider": "^4.2.3",
|
|
32
32
|
"@smithy/types": "^4.8.0",
|
|
33
33
|
"tslib": "^2.6.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/credential-provider-http",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.920.0",
|
|
4
4
|
"description": "AWS credential provider for containers and HTTP sources",
|
|
5
5
|
"main": "./dist-cjs/index.js",
|
|
6
6
|
"module": "./dist-es/index.js",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
},
|
|
29
29
|
"license": "Apache-2.0",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aws-sdk/core": "3.
|
|
32
|
-
"@aws-sdk/types": "3.
|
|
31
|
+
"@aws-sdk/core": "3.920.0",
|
|
32
|
+
"@aws-sdk/types": "3.920.0",
|
|
33
33
|
"@smithy/fetch-http-handler": "^5.3.4",
|
|
34
34
|
"@smithy/node-http-handler": "^4.4.3",
|
|
35
35
|
"@smithy/property-provider": "^4.2.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/credential-provider-ini",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.920.0",
|
|
4
4
|
"description": "AWS credential provider that sources credentials from ~/.aws/credentials and ~/.aws/config",
|
|
5
5
|
"main": "./dist-cjs/index.js",
|
|
6
6
|
"module": "./dist-es/index.js",
|
|
@@ -28,14 +28,14 @@
|
|
|
28
28
|
},
|
|
29
29
|
"license": "Apache-2.0",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aws-sdk/core": "3.
|
|
32
|
-
"@aws-sdk/credential-provider-env": "3.
|
|
33
|
-
"@aws-sdk/credential-provider-http": "3.
|
|
34
|
-
"@aws-sdk/credential-provider-process": "3.
|
|
35
|
-
"@aws-sdk/credential-provider-sso": "3.
|
|
36
|
-
"@aws-sdk/credential-provider-web-identity": "3.
|
|
37
|
-
"@aws-sdk/nested-clients": "3.
|
|
38
|
-
"@aws-sdk/types": "3.
|
|
31
|
+
"@aws-sdk/core": "3.920.0",
|
|
32
|
+
"@aws-sdk/credential-provider-env": "3.920.0",
|
|
33
|
+
"@aws-sdk/credential-provider-http": "3.920.0",
|
|
34
|
+
"@aws-sdk/credential-provider-process": "3.920.0",
|
|
35
|
+
"@aws-sdk/credential-provider-sso": "3.920.0",
|
|
36
|
+
"@aws-sdk/credential-provider-web-identity": "3.920.0",
|
|
37
|
+
"@aws-sdk/nested-clients": "3.920.0",
|
|
38
|
+
"@aws-sdk/types": "3.920.0",
|
|
39
39
|
"@smithy/credential-provider-imds": "^4.2.3",
|
|
40
40
|
"@smithy/property-provider": "^4.2.3",
|
|
41
41
|
"@smithy/shared-ini-file-loader": "^4.3.3",
|
|
@@ -21,17 +21,73 @@ const remoteProvider = async (init) => {
|
|
|
21
21
|
return fromInstanceMetadata(init);
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
function memoizeChain(providers, treatAsExpired) {
|
|
25
|
+
const chain = internalCreateChain(providers);
|
|
26
|
+
let activeLock;
|
|
27
|
+
let passiveLock;
|
|
28
|
+
let credentials;
|
|
29
|
+
const provider = async (options) => {
|
|
30
|
+
if (options?.forceRefresh) {
|
|
31
|
+
return await chain(options);
|
|
32
|
+
}
|
|
33
|
+
if (credentials?.expiration) {
|
|
34
|
+
if (credentials?.expiration?.getTime() < Date.now()) {
|
|
35
|
+
credentials = undefined;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (activeLock) {
|
|
39
|
+
await activeLock;
|
|
40
|
+
}
|
|
41
|
+
else if (!credentials || treatAsExpired?.(credentials)) {
|
|
42
|
+
if (credentials) {
|
|
43
|
+
if (!passiveLock) {
|
|
44
|
+
passiveLock = chain(options).then((c) => {
|
|
45
|
+
credentials = c;
|
|
46
|
+
passiveLock = undefined;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
activeLock = chain(options).then((c) => {
|
|
52
|
+
credentials = c;
|
|
53
|
+
activeLock = undefined;
|
|
54
|
+
});
|
|
55
|
+
return provider(options);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return credentials;
|
|
59
|
+
};
|
|
60
|
+
return provider;
|
|
61
|
+
}
|
|
62
|
+
const internalCreateChain = (providers) => async (awsIdentityProperties) => {
|
|
63
|
+
let lastProviderError;
|
|
64
|
+
for (const provider of providers) {
|
|
65
|
+
try {
|
|
66
|
+
return await provider(awsIdentityProperties);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
lastProviderError = err;
|
|
70
|
+
if (err?.tryNextLink) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
throw err;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
throw lastProviderError;
|
|
77
|
+
};
|
|
78
|
+
|
|
24
79
|
let multipleCredentialSourceWarningEmitted = false;
|
|
25
|
-
const defaultProvider = (init = {}) =>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
80
|
+
const defaultProvider = (init = {}) => memoizeChain([
|
|
81
|
+
async () => {
|
|
82
|
+
const profile = init.profile ?? process.env[sharedIniFileLoader.ENV_PROFILE];
|
|
83
|
+
if (profile) {
|
|
84
|
+
const envStaticCredentialsAreSet = process.env[credentialProviderEnv.ENV_KEY] && process.env[credentialProviderEnv.ENV_SECRET];
|
|
85
|
+
if (envStaticCredentialsAreSet) {
|
|
86
|
+
if (!multipleCredentialSourceWarningEmitted) {
|
|
87
|
+
const warnFn = init.logger?.warn && init.logger?.constructor?.name !== "NoOpLogger"
|
|
88
|
+
? init.logger.warn.bind(init.logger)
|
|
89
|
+
: console.warn;
|
|
90
|
+
warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:
|
|
35
91
|
Multiple credential sources detected:
|
|
36
92
|
Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.
|
|
37
93
|
This SDK will proceed with the AWS_PROFILE value.
|
|
@@ -40,45 +96,52 @@ const defaultProvider = (init = {}) => propertyProvider.memoize(propertyProvider
|
|
|
40
96
|
Please ensure that your environment only sets either the AWS_PROFILE or the
|
|
41
97
|
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.
|
|
42
98
|
`);
|
|
43
|
-
|
|
99
|
+
multipleCredentialSourceWarningEmitted = true;
|
|
100
|
+
}
|
|
44
101
|
}
|
|
102
|
+
throw new propertyProvider.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.", {
|
|
103
|
+
logger: init.logger,
|
|
104
|
+
tryNextLink: true,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv");
|
|
108
|
+
return credentialProviderEnv.fromEnv(init)();
|
|
109
|
+
},
|
|
110
|
+
async (awsIdentityProperties) => {
|
|
111
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");
|
|
112
|
+
const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
|
|
113
|
+
if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {
|
|
114
|
+
throw new propertyProvider.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).", { logger: init.logger });
|
|
45
115
|
}
|
|
46
|
-
|
|
116
|
+
const { fromSSO } = await import('@aws-sdk/credential-provider-sso');
|
|
117
|
+
return fromSSO(init)(awsIdentityProperties);
|
|
118
|
+
},
|
|
119
|
+
async (awsIdentityProperties) => {
|
|
120
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");
|
|
121
|
+
const { fromIni } = await import('@aws-sdk/credential-provider-ini');
|
|
122
|
+
return fromIni(init)(awsIdentityProperties);
|
|
123
|
+
},
|
|
124
|
+
async (awsIdentityProperties) => {
|
|
125
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");
|
|
126
|
+
const { fromProcess } = await import('@aws-sdk/credential-provider-process');
|
|
127
|
+
return fromProcess(init)(awsIdentityProperties);
|
|
128
|
+
},
|
|
129
|
+
async (awsIdentityProperties) => {
|
|
130
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");
|
|
131
|
+
const { fromTokenFile } = await import('@aws-sdk/credential-provider-web-identity');
|
|
132
|
+
return fromTokenFile(init)(awsIdentityProperties);
|
|
133
|
+
},
|
|
134
|
+
async () => {
|
|
135
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider");
|
|
136
|
+
return (await remoteProvider(init))();
|
|
137
|
+
},
|
|
138
|
+
async () => {
|
|
139
|
+
throw new propertyProvider.CredentialsProviderError("Could not load credentials from any providers", {
|
|
140
|
+
tryNextLink: false,
|
|
47
141
|
logger: init.logger,
|
|
48
|
-
tryNextLink: true,
|
|
49
142
|
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return credentialProviderEnv.fromEnv(init)();
|
|
53
|
-
}, async () => {
|
|
54
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");
|
|
55
|
-
const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
|
|
56
|
-
if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {
|
|
57
|
-
throw new propertyProvider.CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).", { logger: init.logger });
|
|
58
|
-
}
|
|
59
|
-
const { fromSSO } = await import('@aws-sdk/credential-provider-sso');
|
|
60
|
-
return fromSSO(init)();
|
|
61
|
-
}, async () => {
|
|
62
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");
|
|
63
|
-
const { fromIni } = await import('@aws-sdk/credential-provider-ini');
|
|
64
|
-
return fromIni(init)();
|
|
65
|
-
}, async () => {
|
|
66
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");
|
|
67
|
-
const { fromProcess } = await import('@aws-sdk/credential-provider-process');
|
|
68
|
-
return fromProcess(init)();
|
|
69
|
-
}, async () => {
|
|
70
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");
|
|
71
|
-
const { fromTokenFile } = await import('@aws-sdk/credential-provider-web-identity');
|
|
72
|
-
return fromTokenFile(init)();
|
|
73
|
-
}, async () => {
|
|
74
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider");
|
|
75
|
-
return (await remoteProvider(init))();
|
|
76
|
-
}, async () => {
|
|
77
|
-
throw new propertyProvider.CredentialsProviderError("Could not load credentials from any providers", {
|
|
78
|
-
tryNextLink: false,
|
|
79
|
-
logger: init.logger,
|
|
80
|
-
});
|
|
81
|
-
}), credentialsTreatedAsExpired, credentialsWillNeedRefresh);
|
|
143
|
+
},
|
|
144
|
+
], credentialsTreatedAsExpired);
|
|
82
145
|
const credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;
|
|
83
146
|
const credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;
|
|
84
147
|
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { ENV_KEY, ENV_SECRET, fromEnv } from "@aws-sdk/credential-provider-env";
|
|
2
|
-
import {
|
|
2
|
+
import { CredentialsProviderError } from "@smithy/property-provider";
|
|
3
3
|
import { ENV_PROFILE } from "@smithy/shared-ini-file-loader";
|
|
4
4
|
import { remoteProvider } from "./remoteProvider";
|
|
5
|
+
import { memoizeChain } from "./runtime/memoize-chain";
|
|
5
6
|
let multipleCredentialSourceWarningEmitted = false;
|
|
6
|
-
export const defaultProvider = (init = {}) =>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
export const defaultProvider = (init = {}) => memoizeChain([
|
|
8
|
+
async () => {
|
|
9
|
+
const profile = init.profile ?? process.env[ENV_PROFILE];
|
|
10
|
+
if (profile) {
|
|
11
|
+
const envStaticCredentialsAreSet = process.env[ENV_KEY] && process.env[ENV_SECRET];
|
|
12
|
+
if (envStaticCredentialsAreSet) {
|
|
13
|
+
if (!multipleCredentialSourceWarningEmitted) {
|
|
14
|
+
const warnFn = init.logger?.warn && init.logger?.constructor?.name !== "NoOpLogger"
|
|
15
|
+
? init.logger.warn.bind(init.logger)
|
|
16
|
+
: console.warn;
|
|
17
|
+
warnFn(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:
|
|
16
18
|
Multiple credential sources detected:
|
|
17
19
|
Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.
|
|
18
20
|
This SDK will proceed with the AWS_PROFILE value.
|
|
@@ -21,44 +23,51 @@ export const defaultProvider = (init = {}) => memoize(chain(async () => {
|
|
|
21
23
|
Please ensure that your environment only sets either the AWS_PROFILE or the
|
|
22
24
|
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.
|
|
23
25
|
`);
|
|
24
|
-
|
|
26
|
+
multipleCredentialSourceWarningEmitted = true;
|
|
27
|
+
}
|
|
25
28
|
}
|
|
29
|
+
throw new CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.", {
|
|
30
|
+
logger: init.logger,
|
|
31
|
+
tryNextLink: true,
|
|
32
|
+
});
|
|
26
33
|
}
|
|
27
|
-
|
|
34
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv");
|
|
35
|
+
return fromEnv(init)();
|
|
36
|
+
},
|
|
37
|
+
async (awsIdentityProperties) => {
|
|
38
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");
|
|
39
|
+
const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
|
|
40
|
+
if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {
|
|
41
|
+
throw new CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).", { logger: init.logger });
|
|
42
|
+
}
|
|
43
|
+
const { fromSSO } = await import("@aws-sdk/credential-provider-sso");
|
|
44
|
+
return fromSSO(init)(awsIdentityProperties);
|
|
45
|
+
},
|
|
46
|
+
async (awsIdentityProperties) => {
|
|
47
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");
|
|
48
|
+
const { fromIni } = await import("@aws-sdk/credential-provider-ini");
|
|
49
|
+
return fromIni(init)(awsIdentityProperties);
|
|
50
|
+
},
|
|
51
|
+
async (awsIdentityProperties) => {
|
|
52
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");
|
|
53
|
+
const { fromProcess } = await import("@aws-sdk/credential-provider-process");
|
|
54
|
+
return fromProcess(init)(awsIdentityProperties);
|
|
55
|
+
},
|
|
56
|
+
async (awsIdentityProperties) => {
|
|
57
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");
|
|
58
|
+
const { fromTokenFile } = await import("@aws-sdk/credential-provider-web-identity");
|
|
59
|
+
return fromTokenFile(init)(awsIdentityProperties);
|
|
60
|
+
},
|
|
61
|
+
async () => {
|
|
62
|
+
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider");
|
|
63
|
+
return (await remoteProvider(init))();
|
|
64
|
+
},
|
|
65
|
+
async () => {
|
|
66
|
+
throw new CredentialsProviderError("Could not load credentials from any providers", {
|
|
67
|
+
tryNextLink: false,
|
|
28
68
|
logger: init.logger,
|
|
29
|
-
tryNextLink: true,
|
|
30
69
|
});
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return fromEnv(init)();
|
|
34
|
-
}, async () => {
|
|
35
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");
|
|
36
|
-
const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
|
|
37
|
-
if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {
|
|
38
|
-
throw new CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).", { logger: init.logger });
|
|
39
|
-
}
|
|
40
|
-
const { fromSSO } = await import("@aws-sdk/credential-provider-sso");
|
|
41
|
-
return fromSSO(init)();
|
|
42
|
-
}, async () => {
|
|
43
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");
|
|
44
|
-
const { fromIni } = await import("@aws-sdk/credential-provider-ini");
|
|
45
|
-
return fromIni(init)();
|
|
46
|
-
}, async () => {
|
|
47
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");
|
|
48
|
-
const { fromProcess } = await import("@aws-sdk/credential-provider-process");
|
|
49
|
-
return fromProcess(init)();
|
|
50
|
-
}, async () => {
|
|
51
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");
|
|
52
|
-
const { fromTokenFile } = await import("@aws-sdk/credential-provider-web-identity");
|
|
53
|
-
return fromTokenFile(init)();
|
|
54
|
-
}, async () => {
|
|
55
|
-
init.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider");
|
|
56
|
-
return (await remoteProvider(init))();
|
|
57
|
-
}, async () => {
|
|
58
|
-
throw new CredentialsProviderError("Could not load credentials from any providers", {
|
|
59
|
-
tryNextLink: false,
|
|
60
|
-
logger: init.logger,
|
|
61
|
-
});
|
|
62
|
-
}), credentialsTreatedAsExpired, credentialsWillNeedRefresh);
|
|
70
|
+
},
|
|
71
|
+
], credentialsTreatedAsExpired);
|
|
63
72
|
export const credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;
|
|
64
73
|
export const credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export function memoizeChain(providers, treatAsExpired) {
|
|
2
|
+
const chain = internalCreateChain(providers);
|
|
3
|
+
let activeLock;
|
|
4
|
+
let passiveLock;
|
|
5
|
+
let credentials;
|
|
6
|
+
const provider = async (options) => {
|
|
7
|
+
if (options?.forceRefresh) {
|
|
8
|
+
return await chain(options);
|
|
9
|
+
}
|
|
10
|
+
if (credentials?.expiration) {
|
|
11
|
+
if (credentials?.expiration?.getTime() < Date.now()) {
|
|
12
|
+
credentials = undefined;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (activeLock) {
|
|
16
|
+
await activeLock;
|
|
17
|
+
}
|
|
18
|
+
else if (!credentials || treatAsExpired?.(credentials)) {
|
|
19
|
+
if (credentials) {
|
|
20
|
+
if (!passiveLock) {
|
|
21
|
+
passiveLock = chain(options).then((c) => {
|
|
22
|
+
credentials = c;
|
|
23
|
+
passiveLock = undefined;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
activeLock = chain(options).then((c) => {
|
|
29
|
+
credentials = c;
|
|
30
|
+
activeLock = undefined;
|
|
31
|
+
});
|
|
32
|
+
return provider(options);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return credentials;
|
|
36
|
+
};
|
|
37
|
+
return provider;
|
|
38
|
+
}
|
|
39
|
+
export const internalCreateChain = (providers) => async (awsIdentityProperties) => {
|
|
40
|
+
let lastProviderError;
|
|
41
|
+
for (const provider of providers) {
|
|
42
|
+
try {
|
|
43
|
+
return await provider(awsIdentityProperties);
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
lastProviderError = err;
|
|
47
|
+
if (err?.tryNextLink) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
throw err;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
throw lastProviderError;
|
|
54
|
+
};
|
|
@@ -4,7 +4,8 @@ import type { FromProcessInit } from "@aws-sdk/credential-provider-process";
|
|
|
4
4
|
import type { FromSSOInit, SsoCredentialsParameters } from "@aws-sdk/credential-provider-sso";
|
|
5
5
|
import type { FromTokenFileInit } from "@aws-sdk/credential-provider-web-identity";
|
|
6
6
|
import type { RemoteProviderInit } from "@smithy/credential-provider-imds";
|
|
7
|
-
import { AwsCredentialIdentity
|
|
7
|
+
import type { AwsCredentialIdentity } from "@smithy/types";
|
|
8
|
+
import { type MemoizedRuntimeConfigAwsCredentialIdentityProvider } from "./runtime/memoize-chain";
|
|
8
9
|
/**
|
|
9
10
|
* @public
|
|
10
11
|
*/
|
|
@@ -43,7 +44,7 @@ export type DefaultProviderInit = FromIniInit & FromHttpOptions & RemoteProvider
|
|
|
43
44
|
* @see {@link fromContainerMetadata} The function used to source credentials from the
|
|
44
45
|
* ECS Container Metadata Service.
|
|
45
46
|
*/
|
|
46
|
-
export declare const defaultProvider: (init?: DefaultProviderInit) =>
|
|
47
|
+
export declare const defaultProvider: (init?: DefaultProviderInit) => MemoizedRuntimeConfigAwsCredentialIdentityProvider;
|
|
47
48
|
/**
|
|
48
49
|
* @internal
|
|
49
50
|
*
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AwsCredentialIdentity, AwsIdentityProperties, RuntimeConfigAwsCredentialIdentityProvider } from "@aws-sdk/types";
|
|
2
|
+
/**
|
|
3
|
+
* Memoized provider chain for AWS credentials.
|
|
4
|
+
* The options are only reevaluated if forceRefresh=true is passed or a natural
|
|
5
|
+
* refresh occurs.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export interface MemoizedRuntimeConfigAwsCredentialIdentityProvider {
|
|
10
|
+
(options?: AwsIdentityProperties & {
|
|
11
|
+
forceRefresh?: boolean;
|
|
12
|
+
}): Promise<AwsCredentialIdentity>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export declare function memoizeChain(providers: RuntimeConfigAwsCredentialIdentityProvider[], treatAsExpired: (resolved: AwsCredentialIdentity) => boolean): MemoizedRuntimeConfigAwsCredentialIdentityProvider;
|
|
18
|
+
export declare const internalCreateChain: (providers: RuntimeConfigAwsCredentialIdentityProvider[]) => RuntimeConfigAwsCredentialIdentityProvider;
|
package/node_modules/@aws-sdk/credential-provider-node/dist-types/ts3.4/defaultProvider.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ import {
|
|
|
7
7
|
} from "@aws-sdk/credential-provider-sso";
|
|
8
8
|
import { FromTokenFileInit } from "@aws-sdk/credential-provider-web-identity";
|
|
9
9
|
import { RemoteProviderInit } from "@smithy/credential-provider-imds";
|
|
10
|
-
import { AwsCredentialIdentity
|
|
10
|
+
import { AwsCredentialIdentity } from "@smithy/types";
|
|
11
|
+
import { MemoizedRuntimeConfigAwsCredentialIdentityProvider } from "./runtime/memoize-chain";
|
|
11
12
|
export type DefaultProviderInit = FromIniInit &
|
|
12
13
|
FromHttpOptions &
|
|
13
14
|
RemoteProviderInit &
|
|
@@ -16,7 +17,7 @@ export type DefaultProviderInit = FromIniInit &
|
|
|
16
17
|
FromTokenFileInit;
|
|
17
18
|
export declare const defaultProvider: (
|
|
18
19
|
init?: DefaultProviderInit
|
|
19
|
-
) =>
|
|
20
|
+
) => MemoizedRuntimeConfigAwsCredentialIdentityProvider;
|
|
20
21
|
export declare const credentialsWillNeedRefresh: (
|
|
21
22
|
credentials: AwsCredentialIdentity
|
|
22
23
|
) => boolean;
|
package/node_modules/@aws-sdk/credential-provider-node/dist-types/ts3.4/runtime/memoize-chain.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AwsCredentialIdentity,
|
|
3
|
+
AwsIdentityProperties,
|
|
4
|
+
RuntimeConfigAwsCredentialIdentityProvider,
|
|
5
|
+
} from "@aws-sdk/types";
|
|
6
|
+
export interface MemoizedRuntimeConfigAwsCredentialIdentityProvider {
|
|
7
|
+
(
|
|
8
|
+
options?: AwsIdentityProperties & {
|
|
9
|
+
forceRefresh?: boolean;
|
|
10
|
+
}
|
|
11
|
+
): Promise<AwsCredentialIdentity>;
|
|
12
|
+
}
|
|
13
|
+
export declare function memoizeChain(
|
|
14
|
+
providers: RuntimeConfigAwsCredentialIdentityProvider[],
|
|
15
|
+
treatAsExpired: (resolved: AwsCredentialIdentity) => boolean
|
|
16
|
+
): MemoizedRuntimeConfigAwsCredentialIdentityProvider;
|
|
17
|
+
export declare const internalCreateChain: (
|
|
18
|
+
providers: RuntimeConfigAwsCredentialIdentityProvider[]
|
|
19
|
+
) => RuntimeConfigAwsCredentialIdentityProvider;
|