Skip to content

Commit 00a7f03

Browse files
authored
fix(backup): validation for vault name fails when parameters are referred in the name (#25943)
Validation for Backup vault name fails when parameters are referred in the name now. Current implementation simply validates vault name with regular expression described in [CFn reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaultname), so it does not consider the special characters for parameters. This PR solves the issue by checking props.backupVaultName is resolved. Closes #21735 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
1 parent 94e48c6 commit 00a7f03

File tree

8 files changed

+165
-56
lines changed

8 files changed

+165
-56
lines changed

packages/@aws-cdk-testing/framework-integ/test/aws-backup/test/integ.backup.js.snapshot/cdk-backup.assets.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"version": "32.0.0",
33
"files": {
4-
"cf2d89a4eac2c90005b9a1e142f1cac80cf9cd29d1b8f98f002b9f3a1849454c": {
4+
"0c52c355c71ac95690274d7987110017ff9cd1a1bc79fa4206fda2f55d6b62d5": {
55
"source": {
66
"path": "cdk-backup.template.json",
77
"packaging": "file"
88
},
99
"destinations": {
1010
"current_account-current_region": {
1111
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
12-
"objectKey": "cf2d89a4eac2c90005b9a1e142f1cac80cf9cd29d1b8f98f002b9f3a1849454c.json",
12+
"objectKey": "0c52c355c71ac95690274d7987110017ff9cd1a1bc79fa4206fda2f55d6b62d5.json",
1313
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
1414
}
1515
}

packages/@aws-cdk-testing/framework-integ/test/aws-backup/test/integ.backup.js.snapshot/cdk-backup.template.json

+30-4
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
"TableCD117FA1": {
44
"Type": "AWS::DynamoDB::Table",
55
"Properties": {
6-
"KeySchema": [
6+
"AttributeDefinitions": [
77
{
88
"AttributeName": "id",
9-
"KeyType": "HASH"
9+
"AttributeType": "S"
1010
}
1111
],
12-
"AttributeDefinitions": [
12+
"KeySchema": [
1313
{
1414
"AttributeName": "id",
15-
"AttributeType": "S"
15+
"KeyType": "HASH"
1616
}
1717
],
1818
"ProvisionedThroughput": {
@@ -50,6 +50,27 @@
5050
"UpdateReplacePolicy": "Delete",
5151
"DeletionPolicy": "Delete"
5252
},
53+
"ThirdVault3441C01E": {
54+
"Type": "AWS::Backup::BackupVault",
55+
"Properties": {
56+
"BackupVaultName": {
57+
"Fn::Join": [
58+
"",
59+
[
60+
"backupVault-",
61+
{
62+
"Ref": "Env"
63+
}
64+
]
65+
]
66+
},
67+
"LockConfiguration": {
68+
"MinRetentionDays": 5
69+
}
70+
},
71+
"UpdateReplacePolicy": "Delete",
72+
"DeletionPolicy": "Delete"
73+
},
5374
"PlanDAF4E53A": {
5475
"Type": "AWS::Backup::BackupPlan",
5576
"Properties": {
@@ -234,6 +255,11 @@
234255
}
235256
},
236257
"Parameters": {
258+
"Env": {
259+
"Type": "String",
260+
"Default": "test",
261+
"Description": "Env"
262+
},
237263
"BootstrapVersion": {
238264
"Type": "AWS::SSM::Parameter::Value<String>",
239265
"Default": "/cdk-bootstrap/hnb659fds/version",

packages/@aws-cdk-testing/framework-integ/test/aws-backup/test/integ.backup.js.snapshot/integ.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "32.0.0",
2+
"version": "33.0.0",
33
"testCases": {
44
"integ.backup": {
55
"stacks": [

packages/@aws-cdk-testing/framework-integ/test/aws-backup/test/integ.backup.js.snapshot/manifest.json

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "32.0.0",
2+
"version": "33.0.0",
33
"artifacts": {
44
"cdk-backup.assets": {
55
"type": "cdk:asset-manifest",
@@ -17,7 +17,7 @@
1717
"validateOnSynth": false,
1818
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}",
1919
"cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}",
20-
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/cf2d89a4eac2c90005b9a1e142f1cac80cf9cd29d1b8f98f002b9f3a1849454c.json",
20+
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0c52c355c71ac95690274d7987110017ff9cd1a1bc79fa4206fda2f55d6b62d5.json",
2121
"requiresBootstrapStackVersion": 6,
2222
"bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
2323
"additionalDependencies": [
@@ -57,6 +57,18 @@
5757
"data": "SecondaryVault67665B5E"
5858
}
5959
],
60+
"/cdk-backup/Env": [
61+
{
62+
"type": "aws:cdk:logicalId",
63+
"data": "Env"
64+
}
65+
],
66+
"/cdk-backup/ThirdVault/Resource": [
67+
{
68+
"type": "aws:cdk:logicalId",
69+
"data": "ThirdVault3441C01E"
70+
}
71+
],
6072
"/cdk-backup/Plan/Resource": [
6173
{
6274
"type": "aws:cdk:logicalId",

packages/@aws-cdk-testing/framework-integ/test/aws-backup/test/integ.backup.js.snapshot/tree.json

+88-43
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
"attributes": {
1919
"aws:cdk:cloudformation:type": "AWS::DynamoDB::Table",
2020
"aws:cdk:cloudformation:props": {
21-
"keySchema": [
21+
"attributeDefinitions": [
2222
{
2323
"attributeName": "id",
24-
"keyType": "HASH"
24+
"attributeType": "S"
2525
}
2626
],
27-
"attributeDefinitions": [
27+
"keySchema": [
2828
{
2929
"attributeName": "id",
30-
"attributeType": "S"
30+
"keyType": "HASH"
3131
}
3232
],
3333
"provisionedThroughput": {
@@ -37,22 +37,22 @@
3737
}
3838
},
3939
"constructInfo": {
40-
"fqn": "aws-cdk-lib.aws_dynamodb.CfnTable",
41-
"version": "0.0.0"
40+
"fqn": "constructs.Construct",
41+
"version": "10.2.69"
4242
}
4343
},
4444
"ScalingRole": {
4545
"id": "ScalingRole",
4646
"path": "cdk-backup/Table/ScalingRole",
4747
"constructInfo": {
48-
"fqn": "aws-cdk-lib.Resource",
49-
"version": "0.0.0"
48+
"fqn": "constructs.Construct",
49+
"version": "10.2.69"
5050
}
5151
}
5252
},
5353
"constructInfo": {
54-
"fqn": "aws-cdk-lib.aws_dynamodb.Table",
55-
"version": "0.0.0"
54+
"fqn": "constructs.Construct",
55+
"version": "10.2.69"
5656
}
5757
},
5858
"FileSystem": {
@@ -63,8 +63,8 @@
6363
"aws:cdk:cloudformation:props": {}
6464
},
6565
"constructInfo": {
66-
"fqn": "aws-cdk-lib.aws_efs.CfnFileSystem",
67-
"version": "0.0.0"
66+
"fqn": "constructs.Construct",
67+
"version": "10.2.69"
6868
}
6969
},
7070
"Vault": {
@@ -84,14 +84,14 @@
8484
}
8585
},
8686
"constructInfo": {
87-
"fqn": "aws-cdk-lib.aws_backup.CfnBackupVault",
88-
"version": "0.0.0"
87+
"fqn": "constructs.Construct",
88+
"version": "10.2.69"
8989
}
9090
}
9191
},
9292
"constructInfo": {
93-
"fqn": "aws-cdk-lib.aws_backup.BackupVault",
94-
"version": "0.0.0"
93+
"fqn": "constructs.Construct",
94+
"version": "10.2.69"
9595
}
9696
},
9797
"SecondaryVault": {
@@ -111,14 +111,59 @@
111111
}
112112
},
113113
"constructInfo": {
114-
"fqn": "aws-cdk-lib.aws_backup.CfnBackupVault",
115-
"version": "0.0.0"
114+
"fqn": "constructs.Construct",
115+
"version": "10.2.69"
116116
}
117117
}
118118
},
119119
"constructInfo": {
120-
"fqn": "aws-cdk-lib.aws_backup.BackupVault",
121-
"version": "0.0.0"
120+
"fqn": "constructs.Construct",
121+
"version": "10.2.69"
122+
}
123+
},
124+
"Env": {
125+
"id": "Env",
126+
"path": "cdk-backup/Env",
127+
"constructInfo": {
128+
"fqn": "constructs.Construct",
129+
"version": "10.2.69"
130+
}
131+
},
132+
"ThirdVault": {
133+
"id": "ThirdVault",
134+
"path": "cdk-backup/ThirdVault",
135+
"children": {
136+
"Resource": {
137+
"id": "Resource",
138+
"path": "cdk-backup/ThirdVault/Resource",
139+
"attributes": {
140+
"aws:cdk:cloudformation:type": "AWS::Backup::BackupVault",
141+
"aws:cdk:cloudformation:props": {
142+
"backupVaultName": {
143+
"Fn::Join": [
144+
"",
145+
[
146+
"backupVault-",
147+
{
148+
"Ref": "Env"
149+
}
150+
]
151+
]
152+
},
153+
"lockConfiguration": {
154+
"minRetentionDays": 5
155+
}
156+
}
157+
},
158+
"constructInfo": {
159+
"fqn": "constructs.Construct",
160+
"version": "10.2.69"
161+
}
162+
}
163+
},
164+
"constructInfo": {
165+
"fqn": "constructs.Construct",
166+
"version": "10.2.69"
122167
}
123168
},
124169
"Plan": {
@@ -205,8 +250,8 @@
205250
}
206251
},
207252
"constructInfo": {
208-
"fqn": "aws-cdk-lib.aws_backup.CfnBackupPlan",
209-
"version": "0.0.0"
253+
"fqn": "constructs.Construct",
254+
"version": "10.2.69"
210255
}
211256
},
212257
"Selection": {
@@ -221,8 +266,8 @@
221266
"id": "ImportRole",
222267
"path": "cdk-backup/Plan/Selection/Role/ImportRole",
223268
"constructInfo": {
224-
"fqn": "aws-cdk-lib.Resource",
225-
"version": "0.0.0"
269+
"fqn": "constructs.Construct",
270+
"version": "10.2.69"
226271
}
227272
},
228273
"Resource": {
@@ -260,14 +305,14 @@
260305
}
261306
},
262307
"constructInfo": {
263-
"fqn": "aws-cdk-lib.aws_iam.CfnRole",
264-
"version": "0.0.0"
308+
"fqn": "constructs.Construct",
309+
"version": "10.2.69"
265310
}
266311
}
267312
},
268313
"constructInfo": {
269-
"fqn": "aws-cdk-lib.aws_iam.Role",
270-
"version": "0.0.0"
314+
"fqn": "constructs.Construct",
315+
"version": "10.2.69"
271316
}
272317
},
273318
"Resource": {
@@ -349,56 +394,56 @@
349394
}
350395
},
351396
"constructInfo": {
352-
"fqn": "aws-cdk-lib.aws_backup.CfnBackupSelection",
353-
"version": "0.0.0"
397+
"fqn": "constructs.Construct",
398+
"version": "10.2.69"
354399
}
355400
}
356401
},
357402
"constructInfo": {
358-
"fqn": "aws-cdk-lib.aws_backup.BackupSelection",
359-
"version": "0.0.0"
403+
"fqn": "constructs.Construct",
404+
"version": "10.2.69"
360405
}
361406
}
362407
},
363408
"constructInfo": {
364-
"fqn": "aws-cdk-lib.aws_backup.BackupPlan",
365-
"version": "0.0.0"
409+
"fqn": "constructs.Construct",
410+
"version": "10.2.69"
366411
}
367412
},
368413
"BootstrapVersion": {
369414
"id": "BootstrapVersion",
370415
"path": "cdk-backup/BootstrapVersion",
371416
"constructInfo": {
372-
"fqn": "aws-cdk-lib.CfnParameter",
373-
"version": "0.0.0"
417+
"fqn": "constructs.Construct",
418+
"version": "10.2.69"
374419
}
375420
},
376421
"CheckBootstrapVersion": {
377422
"id": "CheckBootstrapVersion",
378423
"path": "cdk-backup/CheckBootstrapVersion",
379424
"constructInfo": {
380-
"fqn": "aws-cdk-lib.CfnRule",
381-
"version": "0.0.0"
425+
"fqn": "constructs.Construct",
426+
"version": "10.2.69"
382427
}
383428
}
384429
},
385430
"constructInfo": {
386-
"fqn": "aws-cdk-lib.Stack",
387-
"version": "0.0.0"
431+
"fqn": "constructs.Construct",
432+
"version": "10.2.69"
388433
}
389434
},
390435
"Tree": {
391436
"id": "Tree",
392437
"path": "Tree",
393438
"constructInfo": {
394439
"fqn": "constructs.Construct",
395-
"version": "10.2.26"
440+
"version": "10.2.69"
396441
}
397442
}
398443
},
399444
"constructInfo": {
400-
"fqn": "aws-cdk-lib.App",
401-
"version": "0.0.0"
445+
"fqn": "constructs.Construct",
446+
"version": "10.2.69"
402447
}
403448
}
404449
}

0 commit comments

Comments
 (0)