Skip to content

Commit d9c0036

Browse files
authored
Merge branch 'master' into feat_16246
2 parents e05e410 + bc47b29 commit d9c0036

File tree

257 files changed

+3962
-1200
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

257 files changed

+3962
-1200
lines changed

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@
1616
},
1717
"devDependencies": {
1818
"@yarnpkg/lockfile": "^1.1.0",
19-
"cdk-generate-synthetic-examples": "^0.1.5",
19+
"cdk-generate-synthetic-examples": "^0.1.6",
2020
"conventional-changelog-cli": "^2.2.2",
2121
"fs-extra": "^9.1.0",
2222
"graceful-fs": "^4.2.9",
2323
"jest-junit": "^13.0.0",
24-
"jsii-diff": "^1.53.0",
25-
"jsii-pacmak": "^1.53.0",
26-
"jsii-reflect": "^1.53.0",
27-
"jsii-rosetta": "^1.53.0",
24+
"jsii-diff": "^1.54.0",
25+
"jsii-pacmak": "^1.54.0",
26+
"jsii-reflect": "^1.54.0",
27+
"jsii-rosetta": "^1.54.0",
2828
"lerna": "^4.0.0",
2929
"patch-package": "^6.4.7",
3030
"standard-version": "^9.3.2",

packages/@aws-cdk/app-delivery/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
"@aws-cdk/cdk-integ-tools": "0.0.0",
7474
"@aws-cdk/pkglint": "0.0.0",
7575
"@types/jest": "^27.4.0",
76-
"fast-check": "^2.21.0",
76+
"fast-check": "^2.22.0",
7777
"jest": "^27.5.1"
7878
},
7979
"repository": {

packages/@aws-cdk/assertions/lib/private/cyclic.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,16 @@ function findExpressionDependencies(obj: any): Set<string> {
7070
} else if (keys.length === 1 && keys[0] === 'Fn::Sub') {
7171
const argument = x[keys[0]];
7272
const pattern = Array.isArray(argument) ? argument[0] : argument;
73-
for (const logId of logicalIdsInSubString(pattern)) {
74-
ret.add(logId);
73+
74+
// pattern should always be a string, but we've encountered some cases in which
75+
// it isn't. Better safeguard.
76+
if (typeof pattern === 'string') {
77+
for (const logId of logicalIdsInSubString(pattern)) {
78+
ret.add(logId);
79+
}
7580
}
7681
const contextDict = Array.isArray(argument) ? argument[1] : undefined;
77-
if (contextDict) {
82+
if (contextDict && typeof contextDict === 'object') {
7883
Object.values(contextDict).forEach(recurse);
7984
}
8085
} else {

packages/@aws-cdk/assertions/lib/private/messages.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ export function findMessage(messages: Messages, constructPath: string, props: an
1010
return {};
1111
}
1212

13-
Object.values(result.matches).forEach((m) => handleTrace(m));
1413
return result.matches;
1514
}
1615

packages/@aws-cdk/assertions/test/annotations.test.ts

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@ describe('Messages', () => {
77
let annotations: _Annotations;
88
beforeAll(() => {
99
stack = new Stack();
10-
const foo = new CfnResource(stack, 'Foo', {
10+
new CfnResource(stack, 'Foo', {
1111
type: 'Foo::Bar',
1212
properties: {
1313
Fred: 'Thud',
1414
},
1515
});
16-
foo.node.setContext('disable-stack-trace', false);
1716

1817
new CfnResource(stack, 'Bar', {
1918
type: 'Foo::Bar',
@@ -61,11 +60,6 @@ describe('Messages', () => {
6160
const result = annotations.findError('*', 'no message looks like this');
6261
expect(result.length).toEqual(0);
6362
});
64-
65-
test('trace is redacted', () => {
66-
const result = annotations.findError('/Default/Foo', Match.anyValue());
67-
expect(result[0].entry.trace).toEqual('redacted');
68-
});
6963
});
7064

7165
describe('hasWarning', () => {
@@ -165,15 +159,7 @@ describe('Multiple Messages on the Resource', () => {
165159
const result2 = annotations.findError('/Default/Bar', Match.stringLikeRegexp('error:.*'));
166160
expect(result2.length).toEqual(2);
167161
const result3 = annotations.findWarning('/Default/Bar', 'warning: Foo::Bar is deprecated');
168-
expect(result3).toEqual([{
169-
level: 'warning',
170-
entry: {
171-
type: 'aws:cdk:warning',
172-
data: 'warning: Foo::Bar is deprecated',
173-
trace: 'redacted',
174-
},
175-
id: '/Default/Bar',
176-
}]);
162+
expect(result3[0].entry.data).toEqual('warning: Foo::Bar is deprecated');
177163
});
178164
});
179165
class MyAspect implements IAspect {

packages/@aws-cdk/aws-applicationautoscaling/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
"@aws-cdk/cfn2ts": "0.0.0",
8585
"@aws-cdk/pkglint": "0.0.0",
8686
"@types/jest": "^27.4.0",
87-
"fast-check": "^2.21.0",
87+
"fast-check": "^2.22.0",
8888
"jest": "^27.5.1"
8989
},
9090
"dependencies": {

packages/@aws-cdk/aws-autoscaling-common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
"@aws-cdk/cdk-integ-tools": "0.0.0",
7676
"@aws-cdk/pkglint": "0.0.0",
7777
"@types/jest": "^27.4.0",
78-
"fast-check": "^2.21.0",
78+
"fast-check": "^2.22.0",
7979
"jest": "^27.5.1"
8080
},
8181
"dependencies": {

packages/@aws-cdk/aws-codepipeline-actions/lib/cloudformation/private/singleton-policy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export class SingletonPolicy extends Construct implements iam.IGrantable {
3232
private statements: { [key: string]: iam.PolicyStatement } = {};
3333

3434
private constructor(private readonly role: iam.IRole) {
35-
super(role as unknown as cdk.Construct, SingletonPolicy.UUID);
35+
super(role as unknown as Construct, SingletonPolicy.UUID);
3636
this.grantPrincipal = role;
3737
}
3838

packages/@aws-cdk/aws-ecs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,7 @@ const newContainer = taskDefinition.addContainer('container', {
427427
secrets: { // Retrieved from AWS Secrets Manager or AWS Systems Manager Parameter Store at container start-up.
428428
SECRET: ecs.Secret.fromSecretsManager(secret),
429429
DB_PASSWORD: ecs.Secret.fromSecretsManager(dbSecret, 'password'), // Reference a specific JSON field, (requires platform version 1.4.0 or later for Fargate tasks)
430+
API_KEY: ecs.Secret.fromSecretsManagerVersion(secret, { versionId: '12345' }, 'apiKey'), // Reference a specific version of the secret by its version id or version stage (requires platform version 1.4.0 or later for Fargate tasks)
430431
PARAMETER: ecs.Secret.fromSsmParameter(parameter),
431432
},
432433
});

packages/@aws-cdk/aws-ecs/lib/container-definition.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,24 @@ import { LogDriver, LogDriverConfig } from './log-drivers/log-driver';
1414
// eslint-disable-next-line no-duplicate-imports, import/order
1515
import { Construct as CoreConstruct } from '@aws-cdk/core';
1616

17+
/**
18+
* Specify the secret's version id or version stage
19+
*/
20+
export interface SecretVersionInfo {
21+
/**
22+
* version id of the secret
23+
*
24+
* @default - use default version id
25+
*/
26+
readonly versionId?: string;
27+
/**
28+
* version stage of the secret
29+
*
30+
* @default - use default version stage
31+
*/
32+
readonly versionStage?: string;
33+
}
34+
1735
/**
1836
* A secret environment variable.
1937
*/
@@ -47,6 +65,25 @@ export abstract class Secret {
4765
};
4866
}
4967

68+
/**
69+
* Creates a environment variable value from a secret stored in AWS Secrets
70+
* Manager.
71+
*
72+
* @param secret the secret stored in AWS Secrets Manager
73+
* @param versionInfo the version information to reference the secret
74+
* @param field the name of the field with the value that you want to set as
75+
* the environment variable value. Only values in JSON format are supported.
76+
* If you do not specify a JSON field, then the full content of the secret is
77+
* used.
78+
*/
79+
public static fromSecretsManagerVersion(secret: secretsmanager.ISecret, versionInfo: SecretVersionInfo, field?: string): Secret {
80+
return {
81+
arn: `${secret.secretArn}:${field ?? ''}:${versionInfo.versionStage ?? ''}:${versionInfo.versionId ?? ''}`,
82+
hasField: !!field,
83+
grantRead: grantee => secret.grantRead(grantee),
84+
};
85+
}
86+
5087
/**
5188
* The ARN of the secret
5289
*/

0 commit comments

Comments
 (0)