@fjall/components-infrastructure 0.43.0 → 0.43.1
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.
|
@@ -4,8 +4,8 @@ import { IConstruct } from "constructs";
|
|
|
4
4
|
* Aspect to enforce a standard set of tags on every tag-capable resource in a construct tree.
|
|
5
5
|
*
|
|
6
6
|
* Updated for CDK v2.206.0+ compatibility:
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
7
|
+
* - Avoids using any tagging APIs during aspect visitation to prevent infinite loops
|
|
8
|
+
* - Uses a synthesis-time approach to modify CloudFormation templates
|
|
9
9
|
* - Maintains the same clean API and automatic tagging benefits
|
|
10
10
|
*/
|
|
11
11
|
export declare class StandardTagsAspect implements IAspect {
|
|
@@ -15,5 +15,6 @@ export declare class StandardTagsAspect implements IAspect {
|
|
|
15
15
|
[key: string]: string;
|
|
16
16
|
});
|
|
17
17
|
visit(node: IConstruct): void;
|
|
18
|
-
private
|
|
18
|
+
private processCfnResource;
|
|
19
|
+
private buildTagsArray;
|
|
19
20
|
}
|
|
@@ -6,8 +6,8 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
6
6
|
* Aspect to enforce a standard set of tags on every tag-capable resource in a construct tree.
|
|
7
7
|
*
|
|
8
8
|
* Updated for CDK v2.206.0+ compatibility:
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
9
|
+
* - Avoids using any tagging APIs during aspect visitation to prevent infinite loops
|
|
10
|
+
* - Uses a synthesis-time approach to modify CloudFormation templates
|
|
11
11
|
* - Maintains the same clean API and automatic tagging benefits
|
|
12
12
|
*/
|
|
13
13
|
class StandardTagsAspect {
|
|
@@ -20,15 +20,13 @@ class StandardTagsAspect {
|
|
|
20
20
|
if (this.taggedResources.has(node)) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
|
-
//
|
|
23
|
+
// Process L1 (CFN) resources only
|
|
24
24
|
if (aws_cdk_lib_1.CfnResource.isCfnResource(node)) {
|
|
25
|
-
this.
|
|
25
|
+
this.processCfnResource(node);
|
|
26
26
|
this.taggedResources.add(node);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
// Check if resource supports tags
|
|
31
|
-
const cfnResourceType = resource.cfnResourceType;
|
|
29
|
+
processCfnResource(resource) {
|
|
32
30
|
// List of CloudFormation resource types that don't support tags
|
|
33
31
|
const unsupportedTypes = [
|
|
34
32
|
'AWS::CloudFormation::WaitConditionHandle',
|
|
@@ -38,26 +36,36 @@ class StandardTagsAspect {
|
|
|
38
36
|
'AWS::IAM::Role',
|
|
39
37
|
'AWS::IAM::User',
|
|
40
38
|
'AWS::IAM::Group',
|
|
39
|
+
'AWS::IAM::ManagedPolicy',
|
|
40
|
+
'AWS::IAM::InstanceProfile',
|
|
41
41
|
'AWS::Logs::LogGroup',
|
|
42
42
|
'AWS::Logs::LogStream',
|
|
43
|
-
'AWS::Events::Rule'
|
|
43
|
+
'AWS::Events::Rule',
|
|
44
|
+
'AWS::Route53::RecordSet',
|
|
45
|
+
'AWS::Route53::RecordSetGroup',
|
|
46
|
+
'AWS::CloudWatch::Alarm',
|
|
47
|
+
'AWS::CloudWatch::Dashboard'
|
|
44
48
|
];
|
|
45
|
-
if (unsupportedTypes.includes(cfnResourceType)) {
|
|
49
|
+
if (unsupportedTypes.includes(resource.cfnResourceType)) {
|
|
46
50
|
return;
|
|
47
51
|
}
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
// Convert to map for easier manipulation
|
|
52
|
+
// Add a synthesis hook to modify the CloudFormation template
|
|
53
|
+
const stack = aws_cdk_lib_1.Stack.of(resource);
|
|
54
|
+
const logicalId = stack.getLogicalId(resource);
|
|
55
|
+
// Use addTransform to add tags during synthesis
|
|
56
|
+
resource.addPropertyOverride('Tags', this.buildTagsArray(resource));
|
|
57
|
+
}
|
|
58
|
+
buildTagsArray(resource) {
|
|
56
59
|
const tagMap = new Map();
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
// Get any existing tags if they exist
|
|
61
|
+
const existingTags = resource.tags || [];
|
|
62
|
+
// Process existing tags if they're in array format
|
|
63
|
+
if (Array.isArray(existingTags)) {
|
|
64
|
+
existingTags.forEach((tag) => {
|
|
65
|
+
if (tag && typeof tag === 'object' && 'Key' in tag && 'Value' in tag) {
|
|
66
|
+
tagMap.set(tag.Key, tag.Value);
|
|
67
|
+
}
|
|
68
|
+
else if (tag && typeof tag === 'object' && 'key' in tag && 'value' in tag) {
|
|
61
69
|
tagMap.set(tag.key, tag.value);
|
|
62
70
|
}
|
|
63
71
|
});
|
|
@@ -78,12 +86,12 @@ class StandardTagsAspect {
|
|
|
78
86
|
Object.entries(this.requiredTags).forEach(([key, value]) => {
|
|
79
87
|
tagMap.set(key, value);
|
|
80
88
|
});
|
|
81
|
-
// Convert
|
|
82
|
-
|
|
83
|
-
key,
|
|
84
|
-
value
|
|
89
|
+
// Convert to CloudFormation format
|
|
90
|
+
return Array.from(tagMap.entries()).map(([key, value]) => ({
|
|
91
|
+
Key: key,
|
|
92
|
+
Value: value
|
|
85
93
|
}));
|
|
86
94
|
}
|
|
87
95
|
}
|
|
88
96
|
exports.StandardTagsAspect = StandardTagsAspect;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmRUYWdzQXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL3N0YW5kYXJkVGFnc0FzcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEQ7QUFHMUQ7Ozs7Ozs7R0FPRztBQUNILE1BQWEsa0JBQWtCO0lBSTdCLFlBQVksWUFBdUM7UUFGbEMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBRzNELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBZ0I7UUFDcEIsNEJBQTRCO1FBQzVCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLHlCQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQW1CLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQXFCO1FBQzlDLGdFQUFnRTtRQUNoRSxNQUFNLGdCQUFnQixHQUFHO1lBQ3ZCLDBDQUEwQztZQUMxQyxvQ0FBb0M7WUFDcEMseUJBQXlCO1lBQ3pCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQix5QkFBeUI7WUFDekIsMkJBQTJCO1lBQzNCLHFCQUFxQjtZQUNyQixzQkFBc0I7WUFDdEIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6Qiw4QkFBOEI7WUFDOUIsd0JBQXdCO1lBQ3hCLDRCQUE0QjtTQUM3QixDQUFDO1FBRUYsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxD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LENBQUM7SUFDTixDQUFDO0NBQ0Y7QUEvRkQsZ0RBK0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUFzcGVjdCwgQ2ZuUmVzb3VyY2UsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBBc3BlY3QgdG8gZW5mb3JjZSBhIHN0YW5kYXJkIHNldCBvZiB0YWdzIG9uIGV2ZXJ5IHRhZy1jYXBhYmxlIHJlc291cmNlIGluIGEgY29uc3RydWN0IHRyZWUuXG4gKiBcbiAqIFVwZGF0ZWQgZm9yIENESyB2Mi4yMDYuMCsgY29tcGF0aWJpbGl0eTpcbiAqIC0gQXZvaWRzIHVzaW5nIGFueSB0YWdnaW5nIEFQSXMgZHVyaW5nIGFzcGVjdCB2aXNpdGF0aW9uIHRvIHByZXZlbnQgaW5maW5pdGUgbG9vcHNcbiAqIC0gVXNlcyBhIHN5bnRoZXNpcy10aW1lIGFwcHJvYWNoIHRvIG1vZGlmeSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZXNcbiAqIC0gTWFpbnRhaW5zIHRoZSBzYW1lIGNsZWFuIEFQSSBhbmQgYXV0b21hdGljIHRhZ2dpbmcgYmVuZWZpdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YW5kYXJkVGFnc0FzcGVjdCBpbXBsZW1lbnRzIElBc3BlY3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVpcmVkVGFnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWdnZWRSZXNvdXJjZXMgPSBuZXcgV2Vha1NldDxJQ29uc3RydWN0PigpO1xuXG4gIGNvbnN0cnVjdG9yKHJlcXVpcmVkVGFnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIHRoaXMucmVxdWlyZWRUYWdzID0gcmVxdWlyZWRUYWdzO1xuICB9XG5cbiAgdmlzaXQobm9kZTogSUNvbnN0cnVjdCk6IHZvaWQge1xuICAgIC8vIFNraXAgaWYgYWxyZWFkeSBwcm9jZXNzZWRcbiAgICBpZiAodGhpcy50YWdnZWRSZXNvdXJjZXMuaGFzKG5vZGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFByb2Nlc3MgTDEgKENGTikgcmVzb3VyY2VzIG9ubHlcbiAgICBpZiAoQ2ZuUmVzb3VyY2UuaXNDZm5SZXNvdXJjZShub2RlKSkge1xuICAgICAgdGhpcy5wcm9jZXNzQ2ZuUmVzb3VyY2Uobm9kZSBhcyBDZm5SZXNvdXJjZSk7XG4gICAgICB0aGlzLnRhZ2dlZFJlc291cmNlcy5hZGQobm9kZSk7XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIHByb2Nlc3NDZm5SZXNvdXJjZShyZXNvdXJjZTogQ2ZuUmVzb3VyY2UpOiB2b2lkIHtcbiAgICAvLyBMaXN0IG9mIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGVzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0YWdzXG4gICAgY29uc3QgdW5zdXBwb3J0ZWRUeXBlcyA9IFtcbiAgICAgICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpXYWl0Q29uZGl0aW9uSGFuZGxlJyxcbiAgICAgICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpXYWl0Q29uZGl0aW9uJyxcbiAgICAgICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicsXG4gICAgICAnQVdTOjpJQU06OlBvbGljeScsXG4gICAgICAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgJ0FXUzo6SUFNOjpVc2VyJyxcbiAgICAgICdBV1M6OklBTTo6R3JvdXAnLFxuICAgICAgJ0FXUzo6SUFNOjpNYW5hZ2VkUG9saWN5JyxcbiAgICAgICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJyxcbiAgICAgICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgICdBV1M6OkxvZ3M6OkxvZ1N0cmVhbScsXG4gICAgICAnQVdTOjpFdmVudHM6OlJ1bGUnLFxuICAgICAgJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JyxcbiAgICAgICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldEdyb3VwJyxcbiAgICAgICdBV1M6OkNsb3VkV2F0Y2g6OkFsYXJtJyxcbiAgICAgICdBV1M6OkNsb3VkV2F0Y2g6OkRhc2hib2FyZCdcbiAgICBdO1xuICAgIFxuICAgIGlmICh1bnN1cHBvcnRlZFR5cGVzLmluY2x1ZGVzKHJlc291cmNlLmNmblJlc291cmNlVHlwZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gQWRkIGEgc3ludGhlc2lzIGhvb2sgdG8gbW9kaWZ5IHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2YocmVzb3VyY2UpO1xuICAgIGNvbnN0IGxvZ2ljYWxJZCA9IHN0YWNrLmdldExvZ2ljYWxJZChyZXNvdXJjZSk7XG4gICAgXG4gICAgLy8gVXNlIGFkZFRyYW5zZm9ybSB0byBhZGQgdGFncyBkdXJpbmcgc3ludGhlc2lzXG4gICAgcmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnVGFncycsIHRoaXMuYnVpbGRUYWdzQXJyYXkocmVzb3VyY2UpKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBidWlsZFRhZ3NBcnJheShyZXNvdXJjZTogQ2ZuUmVzb3VyY2UpOiBhbnlbXSB7XG4gICAgY29uc3QgdGFnTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICBcbiAgICAvLyBHZXQgYW55IGV4aXN0aW5nIHRhZ3MgaWYgdGhleSBleGlzdFxuICAgIGNvbnN0IGV4aXN0aW5nVGFncyA9IChyZXNvdXJjZSBhcyBhbnkpLnRhZ3MgfHwgW107XG4gICAgXG4gICAgLy8gUHJvY2VzcyBleGlzdGluZyB0YWdzIGlmIHRoZXkncmUgaW4gYXJyYXkgZm9ybWF0XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmdUYWdzKSkge1xuICAgICAgZXhpc3RpbmdUYWdzLmZvckVhY2goKHRhZzogYW55KSA9PiB7XG4gICAgICAgIGlmICh0YWcgJiYgdHlwZW9mIHRhZyA9PT0gJ29iamVjdCcgJiYgJ0tleScgaW4gdGFnICYmICdWYWx1ZScgaW4gdGFnKSB7XG4gICAgICAgICAgdGFnTWFwLnNldCh0YWcuS2V5LCB0YWcuVmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRhZyAmJiB0eXBlb2YgdGFnID09PSAnb2JqZWN0JyAmJiAna2V5JyBpbiB0YWcgJiYgJ3ZhbHVlJyBpbiB0YWcpIHtcbiAgICAgICAgICB0YWdNYXAuc2V0KHRhZy5rZXksIHRhZy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmb3IgZGlyZWN0IHRhZ3MgaW4gbWV0YWRhdGFcbiAgICBjb25zdCBtZXRhZGF0YSA9IHJlc291cmNlLm5vZGUubWV0YWRhdGE7XG4gICAgY29uc3QgZGlyZWN0VGFnc01ldGFkYXRhID0gbWV0YWRhdGEuZmlsdGVyKG0gPT4gbS50eXBlID09PSAnZmphbGw6ZGlyZWN0LXRhZ3MnKTtcbiAgICBkaXJlY3RUYWdzTWV0YWRhdGEuZm9yRWFjaChtID0+IHtcbiAgICAgIGlmIChtLmRhdGEgJiYgdHlwZW9mIG0uZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMobS5kYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGFnTWFwLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIEFkZCByZXF1aXJlZCB0YWdzIChvdmVyd3JpdGluZyBpZiB0aGV5IGV4aXN0KVxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMucmVxdWlyZWRUYWdzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIHRhZ01hcC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gQ29udmVydCB0byBDbG91ZEZvcm1hdGlvbiBmb3JtYXRcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0YWdNYXAuZW50cmllcygpKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgIEtleToga2V5LFxuICAgICAgVmFsdWU6IHZhbHVlXG4gICAgfSkpO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjall/components-infrastructure",
|
|
3
|
-
"version": "0.43.
|
|
3
|
+
"version": "0.43.1",
|
|
4
4
|
"bin": {
|
|
5
5
|
"infrastructure": "bin/infrastructure.js"
|
|
6
6
|
},
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@aws-sdk/client-cost-explorer": "^3.717.0",
|
|
37
37
|
"@aws-sdk/client-organizations": "^3.716.0",
|
|
38
|
-
"@fjall/util": "^0.43.
|
|
38
|
+
"@fjall/util": "^0.43.1",
|
|
39
39
|
"@pepperize/cdk-organizations": "^0.7.135",
|
|
40
40
|
"aws-lambda": "^1.0.7",
|
|
41
41
|
"cdk-time-sleep": "^1.0.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"overrides": {
|
|
47
47
|
"@smithy/core": "2.5.5"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "948c10f7e2fd66f4a2854c953622334555b733b9",
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"aws-cdk": "^2.206.0",
|
|
52
52
|
"aws-cdk-lib": "^2.206.0",
|