@jjrawlins/cdk-diff-pr-github-action 0.0.1-beta → 0.0.2-beta
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 +162 -9
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.jsii +163 -10
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.jsii +4070 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.junie/guidelines.md +62 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.tool-versions +3 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.jsii +3946 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.junie/guidelines.md +62 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.tool-versions +3 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.jsii +3917 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.junie/guidelines.md +62 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.tool-versions +3 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/API.md +276 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/LICENSE +202 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/README.md +146 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.d.ts +8 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.js +96 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.d.ts +22 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.js +144 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.d.ts +9 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.js +256 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.d.ts +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.js +204 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.d.ts +2 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.js +19 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/package.json +137 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.lock +10 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.sig +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/API.md +276 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/LICENSE +202 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/README.md +146 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.d.ts +10 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.js +96 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.d.ts +22 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.js +144 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.d.ts +9 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.js +256 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.d.ts +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.js +204 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.d.ts +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.js +122 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.d.ts +2 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.js +19 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/package.json +137 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.lock +10 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.sig +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/API.md +298 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/LICENSE +202 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/README.md +146 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.d.ts +10 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.js +101 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.d.ts +22 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffStackWorkflow.js +144 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDriftIamTemplate.d.ts +10 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDriftIamTemplate.js +76 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.d.ts +9 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/cdk-changeset-script.js +256 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.d.ts +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/describe-cfn-changeset.js +204 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.d.ts +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.js +122 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.d.ts +3 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.js +20 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/package.json +136 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.lock +10 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.sig +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/API.md +131 -11
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/README.md +5 -5
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.d.ts +3 -1
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDiffIamTemplate.js +9 -4
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDriftIamTemplate.d.ts +10 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/CdkDriftIamTemplate.js +76 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.d.ts +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/bin/detect-drift.js +122 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.d.ts +1 -0
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/lib/index.js +2 -1
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/package.json +1 -2
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.lock +1 -1
- package/.yalc/@jjrawlins/cdk-diff-pr-github-action/yalc.sig +1 -1
- package/API.md +125 -5
- package/README.md +5 -5
- package/lib/CdkDiffIamTemplate.d.ts +3 -1
- package/lib/CdkDiffIamTemplate.js +9 -4
- package/lib/CdkDiffStackWorkflow.d.ts +2 -2
- package/lib/CdkDiffStackWorkflow.js +18 -19
- package/lib/CdkDriftIamTemplate.d.ts +10 -0
- package/lib/CdkDriftIamTemplate.js +76 -0
- package/lib/bin/detect-drift.d.ts +1 -0
- package/lib/bin/detect-drift.js +122 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/package.json +1 -1
- package/yalc.lock +1 -1
|
@@ -17,9 +17,31 @@ const cdkDiffIamTemplateProps: CdkDiffIamTemplateProps = { ... }
|
|
|
17
17
|
|
|
18
18
|
| **Name** | **Type** | **Description** |
|
|
19
19
|
| --- | --- | --- |
|
|
20
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.oidcRegion">oidcRegion</a></code> | <code>string</code> | *No description.* |
|
|
21
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.oidcRoleArn">oidcRoleArn</a></code> | <code>string</code> | *No description.* |
|
|
20
22
|
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.project">project</a></code> | <code>any</code> | *No description.* |
|
|
23
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.roleName">roleName</a></code> | <code>string</code> | *No description.* |
|
|
21
24
|
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.outputPath">outputPath</a></code> | <code>string</code> | *No description.* |
|
|
22
|
-
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
##### `oidcRegion`<sup>Required</sup> <a name="oidcRegion" id="@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.oidcRegion"></a>
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
public readonly oidcRegion: string;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- *Type:* string
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
##### `oidcRoleArn`<sup>Required</sup> <a name="oidcRoleArn" id="@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.oidcRoleArn"></a>
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
public readonly oidcRoleArn: string;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- *Type:* string
|
|
23
45
|
|
|
24
46
|
---
|
|
25
47
|
|
|
@@ -33,20 +55,20 @@ public readonly project: any;
|
|
|
33
55
|
|
|
34
56
|
---
|
|
35
57
|
|
|
36
|
-
##### `
|
|
58
|
+
##### `roleName`<sup>Required</sup> <a name="roleName" id="@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.roleName"></a>
|
|
37
59
|
|
|
38
60
|
```typescript
|
|
39
|
-
public readonly
|
|
61
|
+
public readonly roleName: string;
|
|
40
62
|
```
|
|
41
63
|
|
|
42
64
|
- *Type:* string
|
|
43
65
|
|
|
44
66
|
---
|
|
45
67
|
|
|
46
|
-
##### `
|
|
68
|
+
##### `outputPath`<sup>Optional</sup> <a name="outputPath" id="@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplateProps.property.outputPath"></a>
|
|
47
69
|
|
|
48
70
|
```typescript
|
|
49
|
-
public readonly
|
|
71
|
+
public readonly outputPath: string;
|
|
50
72
|
```
|
|
51
73
|
|
|
52
74
|
- *Type:* string
|
|
@@ -67,28 +89,28 @@ const cdkDiffStack: CdkDiffStack = { ... }
|
|
|
67
89
|
|
|
68
90
|
| **Name** | **Type** | **Description** |
|
|
69
91
|
| --- | --- | --- |
|
|
70
|
-
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.
|
|
71
|
-
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.
|
|
92
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.changesetRoleToAssumeArn">changesetRoleToAssumeArn</a></code> | <code>string</code> | *No description.* |
|
|
93
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.changesetRoleToAssumeRegion">changesetRoleToAssumeRegion</a></code> | <code>string</code> | *No description.* |
|
|
72
94
|
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.stackName">stackName</a></code> | <code>string</code> | *No description.* |
|
|
73
95
|
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.oidcRegion">oidcRegion</a></code> | <code>string</code> | *No description.* |
|
|
74
96
|
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.oidcRoleArn">oidcRoleArn</a></code> | <code>string</code> | *No description.* |
|
|
75
97
|
|
|
76
98
|
---
|
|
77
99
|
|
|
78
|
-
##### `
|
|
100
|
+
##### `changesetRoleToAssumeArn`<sup>Required</sup> <a name="changesetRoleToAssumeArn" id="@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.changesetRoleToAssumeArn"></a>
|
|
79
101
|
|
|
80
102
|
```typescript
|
|
81
|
-
public readonly
|
|
103
|
+
public readonly changesetRoleToAssumeArn: string;
|
|
82
104
|
```
|
|
83
105
|
|
|
84
106
|
- *Type:* string
|
|
85
107
|
|
|
86
108
|
---
|
|
87
109
|
|
|
88
|
-
##### `
|
|
110
|
+
##### `changesetRoleToAssumeRegion`<sup>Required</sup> <a name="changesetRoleToAssumeRegion" id="@jjrawlins/cdk-diff-pr-github-action.CdkDiffStack.property.changesetRoleToAssumeRegion"></a>
|
|
89
111
|
|
|
90
112
|
```typescript
|
|
91
|
-
public readonly
|
|
113
|
+
public readonly changesetRoleToAssumeRegion: string;
|
|
92
114
|
```
|
|
93
115
|
|
|
94
116
|
- *Type:* string
|
|
@@ -219,6 +241,78 @@ public readonly scriptOutputPath: string;
|
|
|
219
241
|
|
|
220
242
|
---
|
|
221
243
|
|
|
244
|
+
### CdkDriftIamTemplateProps <a name="CdkDriftIamTemplateProps" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps"></a>
|
|
245
|
+
|
|
246
|
+
#### Initializer <a name="Initializer" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.Initializer"></a>
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
import { CdkDriftIamTemplateProps } from '@jjrawlins/cdk-diff-pr-github-action'
|
|
250
|
+
|
|
251
|
+
const cdkDriftIamTemplateProps: CdkDriftIamTemplateProps = { ... }
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
255
|
+
|
|
256
|
+
| **Name** | **Type** | **Description** |
|
|
257
|
+
| --- | --- | --- |
|
|
258
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.oidcRegion">oidcRegion</a></code> | <code>string</code> | *No description.* |
|
|
259
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.oidcRoleArn">oidcRoleArn</a></code> | <code>string</code> | *No description.* |
|
|
260
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.project">project</a></code> | <code>any</code> | *No description.* |
|
|
261
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.roleName">roleName</a></code> | <code>string</code> | *No description.* |
|
|
262
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.outputPath">outputPath</a></code> | <code>string</code> | *No description.* |
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
##### `oidcRegion`<sup>Required</sup> <a name="oidcRegion" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.oidcRegion"></a>
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
public readonly oidcRegion: string;
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
- *Type:* string
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
##### `oidcRoleArn`<sup>Required</sup> <a name="oidcRoleArn" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.oidcRoleArn"></a>
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
public readonly oidcRoleArn: string;
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
- *Type:* string
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
##### `project`<sup>Required</sup> <a name="project" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.project"></a>
|
|
287
|
+
|
|
288
|
+
```typescript
|
|
289
|
+
public readonly project: any;
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
- *Type:* any
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
##### `roleName`<sup>Required</sup> <a name="roleName" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.roleName"></a>
|
|
297
|
+
|
|
298
|
+
```typescript
|
|
299
|
+
public readonly roleName: string;
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
- *Type:* string
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
##### `outputPath`<sup>Optional</sup> <a name="outputPath" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps.property.outputPath"></a>
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
public readonly outputPath: string;
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
- *Type:* string
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
222
316
|
## Classes <a name="Classes" id="Classes"></a>
|
|
223
317
|
|
|
224
318
|
### CdkDiffIamTemplate <a name="CdkDiffIamTemplate" id="@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplate"></a>
|
|
@@ -273,4 +367,30 @@ new CdkDiffStackWorkflow(props: CdkDiffStackWorkflowProps)
|
|
|
273
367
|
|
|
274
368
|
|
|
275
369
|
|
|
370
|
+
### CdkDriftIamTemplate <a name="CdkDriftIamTemplate" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplate"></a>
|
|
371
|
+
|
|
372
|
+
#### Initializers <a name="Initializers" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplate.Initializer"></a>
|
|
373
|
+
|
|
374
|
+
```typescript
|
|
375
|
+
import { CdkDriftIamTemplate } from '@jjrawlins/cdk-diff-pr-github-action'
|
|
376
|
+
|
|
377
|
+
new CdkDriftIamTemplate(props: CdkDriftIamTemplateProps)
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
| **Name** | **Type** | **Description** |
|
|
381
|
+
| --- | --- | --- |
|
|
382
|
+
| <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplate.Initializer.parameter.props">props</a></code> | <code><a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps">CdkDriftIamTemplateProps</a></code> | *No description.* |
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
##### `props`<sup>Required</sup> <a name="props" id="@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplate.Initializer.parameter.props"></a>
|
|
387
|
+
|
|
388
|
+
- *Type:* <a href="#@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplateProps">CdkDriftIamTemplateProps</a>
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
|
|
276
396
|
|
|
@@ -44,8 +44,8 @@ new CdkDiffStackWorkflow({
|
|
|
44
44
|
stacks: [
|
|
45
45
|
{
|
|
46
46
|
stackName: 'MyAppStack',
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
changesetRoleToAssumeArn: 'arn:aws:iam::123456789012:role/cdk-diff-role',
|
|
48
|
+
changesetRoleToAssumeRegion: 'us-east-1',
|
|
49
49
|
// Optional per‑stack OIDC override (if not using the defaults below)
|
|
50
50
|
// oidcRoleArn: 'arn:aws:iam::123456789012:role/github-oidc-role',
|
|
51
51
|
// oidcRegion: 'us-east-1',
|
|
@@ -76,8 +76,8 @@ If neither the defaults nor all per‑stack values are supplied, the construct t
|
|
|
76
76
|
|
|
77
77
|
### Stack item fields
|
|
78
78
|
- `stackName` — The CDK stack name to create the change set for.
|
|
79
|
-
- `
|
|
80
|
-
- `
|
|
79
|
+
- `changesetRoleToAssumeArn` — The ARN of the role used to create the change set (role chaining after OIDC).
|
|
80
|
+
- `changesetRoleToAssumeRegion` — The region for that role.
|
|
81
81
|
- `oidcRoleArn` (optional) — Per‑stack override for the OIDC role.
|
|
82
82
|
- `oidcRegion` (optional) — Per‑stack override for the OIDC region.
|
|
83
83
|
|
|
@@ -124,7 +124,7 @@ This will write `cdk-diff-workflow-iam-template.yaml` at the project root. The t
|
|
|
124
124
|
- `iam:PassRole` to `cloudformation.amazonaws.com`
|
|
125
125
|
- Outputs exporting the role name and ARN.
|
|
126
126
|
|
|
127
|
-
You can deploy the file via CloudFormation/StackSets and then use the created role ARN as the `
|
|
127
|
+
You can deploy the file via CloudFormation/StackSets and then use the created role ARN as the `changesetRoleToAssumeArn` in your workflow configuration.
|
|
128
128
|
|
|
129
129
|
## Testing
|
|
130
130
|
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export interface CdkDiffIamTemplateProps {
|
|
2
2
|
readonly project: any;
|
|
3
|
+
readonly roleName: string;
|
|
3
4
|
readonly outputPath?: string;
|
|
4
|
-
readonly
|
|
5
|
+
readonly oidcRoleArn: string;
|
|
6
|
+
readonly oidcRegion: string;
|
|
5
7
|
}
|
|
6
8
|
export declare class CdkDiffIamTemplate {
|
|
7
9
|
constructor(props: CdkDiffIamTemplateProps);
|
|
@@ -7,6 +7,11 @@ const projen_1 = require("projen");
|
|
|
7
7
|
class CdkDiffIamTemplate {
|
|
8
8
|
constructor(props) {
|
|
9
9
|
const outputPath = props.outputPath ?? 'cdk-diff-workflow-iam-template.yaml';
|
|
10
|
+
props.project.addTask('deploy-cdkdiff-iam-template', {
|
|
11
|
+
description: 'Deploy the CDK Diff IAM template via CloudFormation (accepts extra AWS CLI args, e.g., --parameter-overrides Key=Value...)',
|
|
12
|
+
receiveArgs: true,
|
|
13
|
+
exec: `aws cloudformation deploy --template-file ${outputPath} --stack-name cdk-diff-workflow-iam-role --capabilities CAPABILITY_NAMED_IAM`,
|
|
14
|
+
});
|
|
10
15
|
new projen_1.TextFile(props.project, outputPath, {
|
|
11
16
|
lines: [
|
|
12
17
|
"AWSTemplateFormatVersion: '2010-09-09'",
|
|
@@ -16,14 +21,14 @@ class CdkDiffIamTemplate {
|
|
|
16
21
|
' GitHubOIDCRoleArn:',
|
|
17
22
|
' Type: String',
|
|
18
23
|
" Description: 'ARN of the existing GitHub OIDC role that can assume this changeset role'",
|
|
19
|
-
|
|
24
|
+
` Default: '${props.oidcRoleArn}'`,
|
|
20
25
|
'',
|
|
21
26
|
'Resources:',
|
|
22
27
|
' # CloudFormation ChangeSet Role - minimal permissions for changeset operations',
|
|
23
28
|
' CdkChangesetRole:',
|
|
24
29
|
' Type: AWS::IAM::Role',
|
|
25
30
|
' Properties:',
|
|
26
|
-
" RoleName:
|
|
31
|
+
" RoleName: '" + props.roleName + "'",
|
|
27
32
|
' AssumeRolePolicyDocument:',
|
|
28
33
|
" Version: '2012-10-17'",
|
|
29
34
|
' Statement:',
|
|
@@ -33,7 +38,7 @@ class CdkDiffIamTemplate {
|
|
|
33
38
|
' Action: sts:AssumeRole',
|
|
34
39
|
' Condition:',
|
|
35
40
|
' StringEquals:',
|
|
36
|
-
"
|
|
41
|
+
" aws:RequestedRegion: '" + props.oidcRegion + "'",
|
|
37
42
|
' Policies:',
|
|
38
43
|
' - PolicyName: CloudFormationChangeSetAccess',
|
|
39
44
|
' PolicyDocument:',
|
|
@@ -93,4 +98,4 @@ class CdkDiffIamTemplate {
|
|
|
93
98
|
exports.CdkDiffIamTemplate = CdkDiffIamTemplate;
|
|
94
99
|
_a = JSII_RTTI_SYMBOL_1;
|
|
95
100
|
CdkDiffIamTemplate[_a] = { fqn: "@jjrawlins/cdk-diff-pr-github-action.CdkDiffIamTemplate", version: "0.0.0" };
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2RrRGlmZklhbVRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Nka0RpZmZJYW1UZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFrQztBQVVsQyxNQUFhLGtCQUFrQjtJQUM3QixZQUFZLEtBQThCO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUkscUNBQXFDLENBQUM7UUFDN0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEVBQUU7WUFDbkQsV0FBVyxFQUFFLDRIQUE0SDtZQUN6SSxXQUFXLEVBQUUsSUFBSTtZQUNqQixJQUFJLEVBQUUsNkNBQTZDLFVBQVUsOEVBQThFO1NBQzVJLENBQUMsQ0FBQztRQUVILElBQUksaUJBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRTtZQUN0QyxLQUFLLEVBQUU7Z0JBQ0wsd0NBQXdDO2dCQUN4QywrREFBK0Q7Z0JBQy9ELEVBQUU7Z0JBQ0YsYUFBYTtnQkFDYixzQkFBc0I7Z0JBQ3RCLGtCQUFrQjtnQkFDbEIsNkZBQTZGO2dCQUM3RixpQkFBaUIsS0FBSyxDQUFDLFdBQVcsR0FBRztnQkFDckMsRUFBRTtnQkFDRixZQUFZO2dCQUNaLGtGQUFrRjtnQkFDbEYscUJBQXFCO2dCQUNyQiwwQkFBMEI7Z0JBQzFCLGlCQUFpQjtnQkFDakIsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHO2dCQUMxQyxpQ0FBaUM7Z0JBQ2pDLCtCQUErQjtnQkFDL0Isb0JBQW9CO2dCQUNwQiwyQkFBMkI7Z0JBQzNCLHdCQUF3QjtnQkFDeEIsMkNBQTJDO2dCQUMzQyxvQ0FBb0M7Z0JBQ3BDLHdCQUF3QjtnQkFDeEIsNkJBQTZCO2dCQUM3Qix3Q0FBd0MsR0FBRyxLQUFLLENBQUMsVUFBVSxHQUFHLEdBQUc7Z0JBQ2pFLGlCQUFpQjtnQkFDakIscURBQXFEO2dCQUNyRCwyQkFBMkI7Z0JBQzNCLG1DQUFtQztnQkFDbkMsd0JBQXdCO2dCQUN4QixxREFBcUQ7Z0JBQ3JELCtCQUErQjtnQkFDL0IseUJBQXlCO2dCQUN6QixvREFBb0Q7Z0JBQ3BELHNEQUFzRDtnQkFDdEQsb0RBQW9EO2dCQUNwRCxtREFBbUQ7Z0JBQ25ELG1EQUFtRDtnQkFDbkQsK0JBQStCO2dCQUMvQixzRUFBc0U7Z0JBQ3RFLCtCQUErQjtnQkFDL0IseUJBQXlCO2dCQUN6QixrQ0FBa0M7Z0JBQ2xDLGtDQUFrQztnQkFDbEMscUNBQXFDO2dCQUNyQyxtQ0FBbUM7Z0JBQ25DLDJCQUEyQjtnQkFDM0IsZ0ZBQWdGO2dCQUNoRixrRkFBa0Y7Z0JBQ2xGLGdEQUFnRDtnQkFDaEQsK0JBQStCO2dCQUMvQix5QkFBeUI7Z0JBQ3pCLHNDQUFzQztnQkFDdEMsdUNBQXVDO2dCQUN2Qyw2Q0FBNkM7Z0JBQzdDLHlHQUF5RztnQkFDekcsaURBQWlEO2dCQUNqRCwrQkFBK0I7Z0JBQy9CLHlCQUF5QjtnQkFDekIsa0NBQWtDO2dCQUNsQywrQkFBK0I7Z0JBQy9CLDRCQUE0QjtnQkFDNUIsaUNBQWlDO2dCQUNqQywyRUFBMkU7Z0JBQzNFLEVBQUU7Z0JBQ0YsVUFBVTtnQkFDVix3QkFBd0I7Z0JBQ3hCLGtEQUFrRDtnQkFDbEQseUNBQXlDO2dCQUN6QyxhQUFhO2dCQUNiLDBEQUEwRDtnQkFDMUQsRUFBRTtnQkFDRix5QkFBeUI7Z0JBQ3pCLG1EQUFtRDtnQkFDbkQsa0NBQWtDO2dCQUNsQyxhQUFhO2dCQUNiLDJEQUEyRDthQUM1RDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBMUZILGdEQTJGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRGaWxlIH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGludGVyZmFjZSBDZGtEaWZmSWFtVGVtcGxhdGVQcm9wcyB7XG4gIHJlYWRvbmx5IHByb2plY3Q6IGFueTtcbiAgcmVhZG9ubHkgcm9sZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgb3V0cHV0UGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgb2lkY1JvbGVBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgb2lkY1JlZ2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2RrRGlmZklhbVRlbXBsYXRlIHtcbiAgY29uc3RydWN0b3IocHJvcHM6IENka0RpZmZJYW1UZW1wbGF0ZVByb3BzKSB7XG4gICAgY29uc3Qgb3V0cHV0UGF0aCA9IHByb3BzLm91dHB1dFBhdGggPz8gJ2Nkay1kaWZmLXdvcmtmbG93LWlhbS10ZW1wbGF0ZS55YW1sJztcbiAgICBwcm9wcy5wcm9qZWN0LmFkZFRhc2soJ2RlcGxveS1jZGtkaWZmLWlhbS10ZW1wbGF0ZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95IHRoZSBDREsgRGlmZiBJQU0gdGVtcGxhdGUgdmlhIENsb3VkRm9ybWF0aW9uIChhY2NlcHRzIGV4dHJhIEFXUyBDTEkgYXJncywgZS5nLiwgLS1wYXJhbWV0ZXItb3ZlcnJpZGVzIEtleT1WYWx1ZS4uLiknLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgICBleGVjOiBgYXdzIGNsb3VkZm9ybWF0aW9uIGRlcGxveSAtLXRlbXBsYXRlLWZpbGUgJHtvdXRwdXRQYXRofSAtLXN0YWNrLW5hbWUgY2RrLWRpZmYtd29ya2Zsb3ctaWFtLXJvbGUgLS1jYXBhYmlsaXRpZXMgQ0FQQUJJTElUWV9OQU1FRF9JQU1gLFxuICAgIH0pO1xuXG4gICAgbmV3IFRleHRGaWxlKHByb3BzLnByb2plY3QsIG91dHB1dFBhdGgsIHtcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIFwiQVdTVGVtcGxhdGVGb3JtYXRWZXJzaW9uOiAnMjAxMC0wOS0wOSdcIixcbiAgICAgICAgXCJEZXNjcmlwdGlvbjogJ0lBTSByb2xlIGZvciBDREsgRGlmZiBTdGFjayBXb3JrZmxvdyBjb25zdHJ1Y3QnXCIsXG4gICAgICAgICcnLFxuICAgICAgICAnUGFyYW1ldGVyczonLFxuICAgICAgICAnICBHaXRIdWJPSURDUm9sZUFybjonLFxuICAgICAgICAnICAgIFR5cGU6IFN0cmluZycsXG4gICAgICAgIFwiICAgIERlc2NyaXB0aW9uOiAnQVJOIG9mIHRoZSBleGlzdGluZyBHaXRIdWIgT0lEQyByb2xlIHRoYXQgY2FuIGFzc3VtZSB0aGlzIGNoYW5nZXNldCByb2xlJ1wiLFxuICAgICAgICBgICAgIERlZmF1bHQ6ICcke3Byb3BzLm9pZGNSb2xlQXJufSdgLFxuICAgICAgICAnJyxcbiAgICAgICAgJ1Jlc291cmNlczonLFxuICAgICAgICAnICAjIENsb3VkRm9ybWF0aW9uIENoYW5nZVNldCBSb2xlIC0gbWluaW1hbCBwZXJtaXNzaW9ucyBmb3IgY2hhbmdlc2V0IG9wZXJhdGlvbnMnLFxuICAgICAgICAnICBDZGtDaGFuZ2VzZXRSb2xlOicsXG4gICAgICAgICcgICAgVHlwZTogQVdTOjpJQU06OlJvbGUnLFxuICAgICAgICAnICAgIFByb3BlcnRpZXM6JyxcbiAgICAgICAgXCIgICAgICBSb2xlTmFtZTogJ1wiICsgcHJvcHMucm9sZU5hbWUgKyBcIidcIixcbiAgICAgICAgJyAgICAgIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudDonLFxuICAgICAgICBcIiAgICAgICAgVmVyc2lvbjogJzIwMTItMTAtMTcnXCIsXG4gICAgICAgICcgICAgICAgIFN0YXRlbWVudDonLFxuICAgICAgICAnICAgICAgICAgIC0gRWZmZWN0OiBBbGxvdycsXG4gICAgICAgICcgICAgICAgICAgICBQcmluY2lwYWw6JyxcbiAgICAgICAgJyAgICAgICAgICAgICAgQVdTOiAhUmVmIEdpdEh1Yk9JRENSb2xlQXJuJyxcbiAgICAgICAgJyAgICAgICAgICAgIEFjdGlvbjogc3RzOkFzc3VtZVJvbGUnLFxuICAgICAgICAnICAgICAgICAgICAgQ29uZGl0aW9uOicsXG4gICAgICAgICcgICAgICAgICAgICAgIFN0cmluZ0VxdWFsczonLFxuICAgICAgICBcIiAgICAgICAgICAgICAgICBhd3M6UmVxdWVzdGVkUmVnaW9uOiAnXCIgKyBwcm9wcy5vaWRjUmVnaW9uICsgXCInXCIsXG4gICAgICAgICcgICAgICBQb2xpY2llczonLFxuICAgICAgICAnICAgICAgICAtIFBvbGljeU5hbWU6IENsb3VkRm9ybWF0aW9uQ2hhbmdlU2V0QWNjZXNzJyxcbiAgICAgICAgJyAgICAgICAgICBQb2xpY3lEb2N1bWVudDonLFxuICAgICAgICBcIiAgICAgICAgICAgIFZlcnNpb246ICcyMDEyLTEwLTE3J1wiLFxuICAgICAgICAnICAgICAgICAgICAgU3RhdGVtZW50OicsXG4gICAgICAgICcgICAgICAgICAgICAgICMgQ2xvdWRGb3JtYXRpb24gY2hhbmdlc2V0IG9wZXJhdGlvbnMnLFxuICAgICAgICAnICAgICAgICAgICAgICAtIEVmZmVjdDogQWxsb3cnLFxuICAgICAgICAnICAgICAgICAgICAgICAgIEFjdGlvbjonLFxuICAgICAgICAnICAgICAgICAgICAgICAgICAgLSBjbG91ZGZvcm1hdGlvbjpDcmVhdGVDaGFuZ2VTZXQnLFxuICAgICAgICAnICAgICAgICAgICAgICAgICAgLSBjbG91ZGZvcm1hdGlvbjpEZXNjcmliZUNoYW5nZVNldCcsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICAtIGNsb3VkZm9ybWF0aW9uOkRlbGV0ZUNoYW5nZVNldCcsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICAtIGNsb3VkZm9ybWF0aW9uOkxpc3RDaGFuZ2VTZXRzJyxcbiAgICAgICAgJyAgICAgICAgICAgICAgICAgIC0gY2xvdWRmb3JtYXRpb246RGVzY3JpYmVTdGFja3MnLFxuICAgICAgICBcIiAgICAgICAgICAgICAgICBSZXNvdXJjZTogJyonXCIsXG4gICAgICAgICcgICAgICAgICAgICAgICMgQ0RLIGJvb3RzdHJhcCBidWNrZXQgYWNjZXNzIChmb3IgY2hhbmdlc2V0IGNyZWF0aW9uKScsXG4gICAgICAgICcgICAgICAgICAgICAgIC0gRWZmZWN0OiBBbGxvdycsXG4gICAgICAgICcgICAgICAgICAgICAgICAgQWN0aW9uOicsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICAtIHMzOkdldE9iamVjdCcsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICAtIHMzOlB1dE9iamVjdCcsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICAtIHMzOkRlbGV0ZU9iamVjdCcsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICAtIHMzOkxpc3RCdWNrZXQnLFxuICAgICAgICAnICAgICAgICAgICAgICAgIFJlc291cmNlOicsXG4gICAgICAgIFwiICAgICAgICAgICAgICAgICAgLSAhU3ViICdhcm46YXdzOnMzOjo6Y2RrLSR7QVdTOjpBY2NvdW50SWR9LSR7QVdTOjpSZWdpb259LSonXCIsXG4gICAgICAgIFwiICAgICAgICAgICAgICAgICAgLSAhU3ViICdhcm46YXdzOnMzOjo6Y2RrLSR7QVdTOjpBY2NvdW50SWR9LSR7QVdTOjpSZWdpb259LSovKidcIixcbiAgICAgICAgJyAgICAgICAgICAgICAgIyBDREsgYm9vdHN0cmFwIHBhcmFtZXRlciBhY2Nlc3MnLFxuICAgICAgICAnICAgICAgICAgICAgICAtIEVmZmVjdDogQWxsb3cnLFxuICAgICAgICAnICAgICAgICAgICAgICAgIEFjdGlvbjonLFxuICAgICAgICAnICAgICAgICAgICAgICAgICAgLSBzc206R2V0UGFyYW1ldGVyJyxcbiAgICAgICAgJyAgICAgICAgICAgICAgICAgIC0gc3NtOkdldFBhcmFtZXRlcnMnLFxuICAgICAgICAnICAgICAgICAgICAgICAgICAgLSBzc206R2V0UGFyYW1ldGVyc0J5UGF0aCcsXG4gICAgICAgIFwiICAgICAgICAgICAgICAgIFJlc291cmNlOiAhU3ViICdhcm46YXdzOnNzbToke0FXUzo6UmVnaW9ufToke0FXUzo6QWNjb3VudElkfTpwYXJhbWV0ZXIvY2RrLWJvb3RzdHJhcC8qJ1wiLFxuICAgICAgICAnICAgICAgICAgICAgICAjIElBTSBQYXNzUm9sZSBmb3IgQ0RLIG9wZXJhdGlvbnMnLFxuICAgICAgICAnICAgICAgICAgICAgICAtIEVmZmVjdDogQWxsb3cnLFxuICAgICAgICAnICAgICAgICAgICAgICAgIEFjdGlvbjonLFxuICAgICAgICAnICAgICAgICAgICAgICAgICAgLSBpYW06UGFzc1JvbGUnLFxuICAgICAgICBcIiAgICAgICAgICAgICAgICBSZXNvdXJjZTogJyonXCIsXG4gICAgICAgICcgICAgICAgICAgICAgICAgQ29uZGl0aW9uOicsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICBTdHJpbmdFcXVhbHM6JyxcbiAgICAgICAgXCIgICAgICAgICAgICAgICAgICAgICdpYW06UGFzc2VkVG9TZXJ2aWNlJzogJ2Nsb3VkZm9ybWF0aW9uLmFtYXpvbmF3cy5jb20nXCIsXG4gICAgICAgICcnLFxuICAgICAgICAnT3V0cHV0czonLFxuICAgICAgICAnICBDZGtDaGFuZ2VzZXRSb2xlQXJuOicsXG4gICAgICAgIFwiICAgIERlc2NyaXB0aW9uOiAnQVJOIG9mIHRoZSBDREsgY2hhbmdlc2V0IHJvbGUnXCIsXG4gICAgICAgICcgICAgVmFsdWU6ICFHZXRBdHQgQ2RrQ2hhbmdlc2V0Um9sZS5Bcm4nLFxuICAgICAgICAnICAgIEV4cG9ydDonLFxuICAgICAgICBcIiAgICAgIE5hbWU6ICFTdWIgJyR7QVdTOjpTdGFja05hbWV9LUNka0NoYW5nZXNldFJvbGVBcm4nXCIsXG4gICAgICAgICcnLFxuICAgICAgICAnICBDZGtDaGFuZ2VzZXRSb2xlTmFtZTonLFxuICAgICAgICBcIiAgICBEZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIENESyBjaGFuZ2VzZXQgcm9sZSdcIixcbiAgICAgICAgJyAgICBWYWx1ZTogIVJlZiBDZGtDaGFuZ2VzZXRSb2xlJyxcbiAgICAgICAgJyAgICBFeHBvcnQ6JyxcbiAgICAgICAgXCIgICAgICBOYW1lOiAhU3ViICcke0FXUzo6U3RhY2tOYW1lfS1DZGtDaGFuZ2VzZXRSb2xlTmFtZSdcIixcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface CdkDriftIamTemplateProps {
|
|
2
|
+
readonly project: any;
|
|
3
|
+
readonly roleName: string;
|
|
4
|
+
readonly outputPath?: string;
|
|
5
|
+
readonly oidcRoleArn: string;
|
|
6
|
+
readonly oidcRegion: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class CdkDriftIamTemplate {
|
|
9
|
+
constructor(props: CdkDriftIamTemplateProps);
|
|
10
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CdkDriftIamTemplate = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const projen_1 = require("projen");
|
|
7
|
+
class CdkDriftIamTemplate {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
const outputPath = props.outputPath ?? 'cdk-drift-workflow-iam-template.yaml';
|
|
10
|
+
props.project.addTask('deploy-cdkdrift-iam-template', {
|
|
11
|
+
description: 'Deploy the CDK Drift Detection IAM template via CloudFormation (accepts extra AWS CLI args, e.g., --parameter-overrides Key=Value...)',
|
|
12
|
+
receiveArgs: true,
|
|
13
|
+
exec: `aws cloudformation deploy --template-file ${outputPath} --stack-name cdk-drift-workflow-iam-role --capabilities CAPABILITY_NAMED_IAM`,
|
|
14
|
+
});
|
|
15
|
+
new projen_1.TextFile(props.project, outputPath, {
|
|
16
|
+
lines: [
|
|
17
|
+
"AWSTemplateFormatVersion: '2010-09-09'",
|
|
18
|
+
"Description: 'IAM role for CDK Drift Detection Workflow'",
|
|
19
|
+
'',
|
|
20
|
+
'Parameters:',
|
|
21
|
+
' GitHubOIDCRoleArn:',
|
|
22
|
+
' Type: String',
|
|
23
|
+
" Description: 'ARN of the existing GitHub OIDC role that can assume this drift role'",
|
|
24
|
+
` Default: '${props.oidcRoleArn}'`,
|
|
25
|
+
'',
|
|
26
|
+
'Resources:',
|
|
27
|
+
' # CloudFormation Drift Detection Role - minimal permissions for drift detection operations',
|
|
28
|
+
' CdkDriftRole:',
|
|
29
|
+
' Type: AWS::IAM::Role',
|
|
30
|
+
' Properties:',
|
|
31
|
+
" RoleName: '" + props.roleName + "'",
|
|
32
|
+
' AssumeRolePolicyDocument:',
|
|
33
|
+
" Version: '2012-10-17'",
|
|
34
|
+
' Statement:',
|
|
35
|
+
' - Effect: Allow',
|
|
36
|
+
' Principal:',
|
|
37
|
+
' AWS: !Ref GitHubOIDCRoleArn',
|
|
38
|
+
' Action: sts:AssumeRole',
|
|
39
|
+
' Condition:',
|
|
40
|
+
' StringEquals:',
|
|
41
|
+
" aws:RequestedRegion: '" + props.oidcRegion + "'",
|
|
42
|
+
' Policies:',
|
|
43
|
+
' - PolicyName: CloudFormationDriftAccess',
|
|
44
|
+
' PolicyDocument:',
|
|
45
|
+
" Version: '2012-10-17'",
|
|
46
|
+
' Statement:',
|
|
47
|
+
' # CloudFormation drift detection operations',
|
|
48
|
+
' - Effect: Allow',
|
|
49
|
+
' Action:',
|
|
50
|
+
' - cloudformation:DetectStackDrift',
|
|
51
|
+
' - cloudformation:DescribeStackDriftDetectionStatus',
|
|
52
|
+
' - cloudformation:DescribeStackResourceDrifts',
|
|
53
|
+
' - cloudformation:DescribeStacks',
|
|
54
|
+
' - cloudformation:ListStackResources',
|
|
55
|
+
" Resource: '*'",
|
|
56
|
+
'',
|
|
57
|
+
'Outputs:',
|
|
58
|
+
' CdkDriftRoleArn:',
|
|
59
|
+
" Description: 'ARN of the CDK drift detection role'",
|
|
60
|
+
' Value: !GetAtt CdkDriftRole.Arn',
|
|
61
|
+
' Export:',
|
|
62
|
+
" Name: !Sub '${AWS::StackName}-CdkDriftRoleArn'",
|
|
63
|
+
'',
|
|
64
|
+
' CdkDriftRoleName:',
|
|
65
|
+
" Description: 'Name of the CDK drift detection role'",
|
|
66
|
+
' Value: !Ref CdkDriftRole',
|
|
67
|
+
' Export:',
|
|
68
|
+
" Name: !Sub '${AWS::StackName}-CdkDriftRoleName'",
|
|
69
|
+
],
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.CdkDriftIamTemplate = CdkDriftIamTemplate;
|
|
74
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
75
|
+
CdkDriftIamTemplate[_a] = { fqn: "@jjrawlins/cdk-diff-pr-github-action.CdkDriftIamTemplate", version: "0.0.0" };
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2RrRHJpZnRJYW1UZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DZGtEcmlmdElhbVRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQWtDO0FBVWxDLE1BQWEsbUJBQW1CO0lBQzlCLFlBQVksS0FBK0I7UUFDekMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxzQ0FBc0MsQ0FBQztRQUU5RSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRTtZQUNwRCxXQUFXLEVBQ1QsdUlBQXVJO1lBQ3pJLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLElBQUksRUFDRiw2Q0FBNkMsVUFBVSwrRUFBK0U7U0FDekksQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFO1lBQ3RDLEtBQUssRUFBRTtnQkFDTCx3Q0FBd0M7Z0JBQ3hDLDBEQUEwRDtnQkFDMUQsRUFBRTtnQkFDRixhQUFhO2dCQUNiLHNCQUFzQjtnQkFDdEIsa0JBQWtCO2dCQUNsQix5RkFBeUY7Z0JBQ3pGLGlCQUFpQixLQUFLLENBQUMsV0FBVyxHQUFHO2dCQUNyQyxFQUFFO2dCQUNGLFlBQVk7Z0JBQ1osOEZBQThGO2dCQUM5RixpQkFBaUI7Z0JBQ2pCLDBCQUEwQjtnQkFDMUIsaUJBQWlCO2dCQUNqQixtQkFBbUIsR0FBRyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUc7Z0JBQzFDLGlDQUFpQztnQkFDakMsK0JBQStCO2dCQUMvQixvQkFBb0I7Z0JBQ3BCLDJCQUEyQjtnQkFDM0Isd0JBQXdCO2dCQUN4QiwyQ0FBMkM7Z0JBQzNDLG9DQUFvQztnQkFDcEMsd0JBQXdCO2dCQUN4Qiw2QkFBNkI7Z0JBQzdCLHdDQUF3QyxHQUFHLEtBQUssQ0FBQyxVQUFVLEdBQUcsR0FBRztnQkFDakUsaUJBQWlCO2dCQUNqQixpREFBaUQ7Z0JBQ2pELDJCQUEyQjtnQkFDM0IsbUNBQW1DO2dCQUNuQyx3QkFBd0I7Z0JBQ3hCLDJEQUEyRDtnQkFDM0QsK0JBQStCO2dCQUMvQix5QkFBeUI7Z0JBQ3pCLHFEQUFxRDtnQkFDckQsc0VBQXNFO2dCQUN0RSxnRUFBZ0U7Z0JBQ2hFLG1EQUFtRDtnQkFDbkQsdURBQXVEO2dCQUN2RCwrQkFBK0I7Z0JBQy9CLEVBQUU7Z0JBQ0YsVUFBVTtnQkFDVixvQkFBb0I7Z0JBQ3BCLHdEQUF3RDtnQkFDeEQscUNBQXFDO2dCQUNyQyxhQUFhO2dCQUNiLHNEQUFzRDtnQkFDdEQsRUFBRTtnQkFDRixxQkFBcUI7Z0JBQ3JCLHlEQUF5RDtnQkFDekQsOEJBQThCO2dCQUM5QixhQUFhO2dCQUNiLHVEQUF1RDthQUN4RDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBcEVILGtEQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRGaWxlIH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGludGVyZmFjZSBDZGtEcmlmdElhbVRlbXBsYXRlUHJvcHMge1xuICByZWFkb25seSBwcm9qZWN0OiBhbnk7XG4gIHJlYWRvbmx5IHJvbGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG91dHB1dFBhdGg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9pZGNSb2xlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9pZGNSZWdpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENka0RyaWZ0SWFtVGVtcGxhdGUge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogQ2RrRHJpZnRJYW1UZW1wbGF0ZVByb3BzKSB7XG4gICAgY29uc3Qgb3V0cHV0UGF0aCA9IHByb3BzLm91dHB1dFBhdGggPz8gJ2Nkay1kcmlmdC13b3JrZmxvdy1pYW0tdGVtcGxhdGUueWFtbCc7XG5cbiAgICBwcm9wcy5wcm9qZWN0LmFkZFRhc2soJ2RlcGxveS1jZGtkcmlmdC1pYW0tdGVtcGxhdGUnLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0RlcGxveSB0aGUgQ0RLIERyaWZ0IERldGVjdGlvbiBJQU0gdGVtcGxhdGUgdmlhIENsb3VkRm9ybWF0aW9uIChhY2NlcHRzIGV4dHJhIEFXUyBDTEkgYXJncywgZS5nLiwgLS1wYXJhbWV0ZXItb3ZlcnJpZGVzIEtleT1WYWx1ZS4uLiknLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgICBleGVjOlxuICAgICAgICBgYXdzIGNsb3VkZm9ybWF0aW9uIGRlcGxveSAtLXRlbXBsYXRlLWZpbGUgJHtvdXRwdXRQYXRofSAtLXN0YWNrLW5hbWUgY2RrLWRyaWZ0LXdvcmtmbG93LWlhbS1yb2xlIC0tY2FwYWJpbGl0aWVzIENBUEFCSUxJVFlfTkFNRURfSUFNYCxcbiAgICB9KTtcblxuICAgIG5ldyBUZXh0RmlsZShwcm9wcy5wcm9qZWN0LCBvdXRwdXRQYXRoLCB7XG4gICAgICBsaW5lczogW1xuICAgICAgICBcIkFXU1RlbXBsYXRlRm9ybWF0VmVyc2lvbjogJzIwMTAtMDktMDknXCIsXG4gICAgICAgIFwiRGVzY3JpcHRpb246ICdJQU0gcm9sZSBmb3IgQ0RLIERyaWZ0IERldGVjdGlvbiBXb3JrZmxvdydcIixcbiAgICAgICAgJycsXG4gICAgICAgICdQYXJhbWV0ZXJzOicsXG4gICAgICAgICcgIEdpdEh1Yk9JRENSb2xlQXJuOicsXG4gICAgICAgICcgICAgVHlwZTogU3RyaW5nJyxcbiAgICAgICAgXCIgICAgRGVzY3JpcHRpb246ICdBUk4gb2YgdGhlIGV4aXN0aW5nIEdpdEh1YiBPSURDIHJvbGUgdGhhdCBjYW4gYXNzdW1lIHRoaXMgZHJpZnQgcm9sZSdcIixcbiAgICAgICAgYCAgICBEZWZhdWx0OiAnJHtwcm9wcy5vaWRjUm9sZUFybn0nYCxcbiAgICAgICAgJycsXG4gICAgICAgICdSZXNvdXJjZXM6JyxcbiAgICAgICAgJyAgIyBDbG91ZEZvcm1hdGlvbiBEcmlmdCBEZXRlY3Rpb24gUm9sZSAtIG1pbmltYWwgcGVybWlzc2lvbnMgZm9yIGRyaWZ0IGRldGVjdGlvbiBvcGVyYXRpb25zJyxcbiAgICAgICAgJyAgQ2RrRHJpZnRSb2xlOicsXG4gICAgICAgICcgICAgVHlwZTogQVdTOjpJQU06OlJvbGUnLFxuICAgICAgICAnICAgIFByb3BlcnRpZXM6JyxcbiAgICAgICAgXCIgICAgICBSb2xlTmFtZTogJ1wiICsgcHJvcHMucm9sZU5hbWUgKyBcIidcIixcbiAgICAgICAgJyAgICAgIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudDonLFxuICAgICAgICBcIiAgICAgICAgVmVyc2lvbjogJzIwMTItMTAtMTcnXCIsXG4gICAgICAgICcgICAgICAgIFN0YXRlbWVudDonLFxuICAgICAgICAnICAgICAgICAgIC0gRWZmZWN0OiBBbGxvdycsXG4gICAgICAgICcgICAgICAgICAgICBQcmluY2lwYWw6JyxcbiAgICAgICAgJyAgICAgICAgICAgICAgQVdTOiAhUmVmIEdpdEh1Yk9JRENSb2xlQXJuJyxcbiAgICAgICAgJyAgICAgICAgICAgIEFjdGlvbjogc3RzOkFzc3VtZVJvbGUnLFxuICAgICAgICAnICAgICAgICAgICAgQ29uZGl0aW9uOicsXG4gICAgICAgICcgICAgICAgICAgICAgIFN0cmluZ0VxdWFsczonLFxuICAgICAgICBcIiAgICAgICAgICAgICAgICBhd3M6UmVxdWVzdGVkUmVnaW9uOiAnXCIgKyBwcm9wcy5vaWRjUmVnaW9uICsgXCInXCIsXG4gICAgICAgICcgICAgICBQb2xpY2llczonLFxuICAgICAgICAnICAgICAgICAtIFBvbGljeU5hbWU6IENsb3VkRm9ybWF0aW9uRHJpZnRBY2Nlc3MnLFxuICAgICAgICAnICAgICAgICAgIFBvbGljeURvY3VtZW50OicsXG4gICAgICAgIFwiICAgICAgICAgICAgVmVyc2lvbjogJzIwMTItMTAtMTcnXCIsXG4gICAgICAgICcgICAgICAgICAgICBTdGF0ZW1lbnQ6JyxcbiAgICAgICAgJyAgICAgICAgICAgICAgIyBDbG91ZEZvcm1hdGlvbiBkcmlmdCBkZXRlY3Rpb24gb3BlcmF0aW9ucycsXG4gICAgICAgICcgICAgICAgICAgICAgIC0gRWZmZWN0OiBBbGxvdycsXG4gICAgICAgICcgICAgICAgICAgICAgICAgQWN0aW9uOicsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICAtIGNsb3VkZm9ybWF0aW9uOkRldGVjdFN0YWNrRHJpZnQnLFxuICAgICAgICAnICAgICAgICAgICAgICAgICAgLSBjbG91ZGZvcm1hdGlvbjpEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXMnLFxuICAgICAgICAnICAgICAgICAgICAgICAgICAgLSBjbG91ZGZvcm1hdGlvbjpEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHMnLFxuICAgICAgICAnICAgICAgICAgICAgICAgICAgLSBjbG91ZGZvcm1hdGlvbjpEZXNjcmliZVN0YWNrcycsXG4gICAgICAgICcgICAgICAgICAgICAgICAgICAtIGNsb3VkZm9ybWF0aW9uOkxpc3RTdGFja1Jlc291cmNlcycsXG4gICAgICAgIFwiICAgICAgICAgICAgICAgIFJlc291cmNlOiAnKidcIixcbiAgICAgICAgJycsXG4gICAgICAgICdPdXRwdXRzOicsXG4gICAgICAgICcgIENka0RyaWZ0Um9sZUFybjonLFxuICAgICAgICBcIiAgICBEZXNjcmlwdGlvbjogJ0FSTiBvZiB0aGUgQ0RLIGRyaWZ0IGRldGVjdGlvbiByb2xlJ1wiLFxuICAgICAgICAnICAgIFZhbHVlOiAhR2V0QXR0IENka0RyaWZ0Um9sZS5Bcm4nLFxuICAgICAgICAnICAgIEV4cG9ydDonLFxuICAgICAgICBcIiAgICAgIE5hbWU6ICFTdWIgJyR7QVdTOjpTdGFja05hbWV9LUNka0RyaWZ0Um9sZUFybidcIixcbiAgICAgICAgJycsXG4gICAgICAgICcgIENka0RyaWZ0Um9sZU5hbWU6JyxcbiAgICAgICAgXCIgICAgRGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSBDREsgZHJpZnQgZGV0ZWN0aW9uIHJvbGUnXCIsXG4gICAgICAgICcgICAgVmFsdWU6ICFSZWYgQ2RrRHJpZnRSb2xlJyxcbiAgICAgICAgJyAgICBFeHBvcnQ6JyxcbiAgICAgICAgXCIgICAgICBOYW1lOiAhU3ViICcke0FXUzo6U3RhY2tOYW1lfS1DZGtEcmlmdFJvbGVOYW1lJ1wiLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
+
async function sleep(ms) {
|
|
5
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
6
|
+
}
|
|
7
|
+
async function main() {
|
|
8
|
+
const stackName = process.env.STACK_NAME;
|
|
9
|
+
if (!stackName) {
|
|
10
|
+
console.error('STACK_NAME env var is required');
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
// Region and credentials pulled from environment set by actions/configure-aws-credentials
|
|
14
|
+
const client = new client_cloudformation_1.CloudFormationClient({});
|
|
15
|
+
const detect = await client.send(new client_cloudformation_1.DetectStackDriftCommand({ StackName: stackName }));
|
|
16
|
+
if (!detect.StackDriftDetectionId) {
|
|
17
|
+
console.error('Failed to start drift detection');
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const id = detect.StackDriftDetectionId;
|
|
21
|
+
console.log(`Drift detection started: ${id}`);
|
|
22
|
+
let detectionStatus = 'DETECTION_IN_PROGRESS';
|
|
23
|
+
let stackDriftStatus;
|
|
24
|
+
while (detectionStatus === 'DETECTION_IN_PROGRESS') {
|
|
25
|
+
await sleep(5000);
|
|
26
|
+
const res = await client.send(new client_cloudformation_1.DescribeStackDriftDetectionStatusCommand({ StackDriftDetectionId: id }));
|
|
27
|
+
detectionStatus = res.DetectionStatus ?? 'UNKNOWN';
|
|
28
|
+
stackDriftStatus = res.StackDriftStatus;
|
|
29
|
+
console.log(`Detection status: ${detectionStatus}`);
|
|
30
|
+
}
|
|
31
|
+
// Helper to build an HTML report of drifted resources
|
|
32
|
+
const buildHtml = (stack, drifts) => {
|
|
33
|
+
let body = `<h1>Drift report</h1><h2>Stack Name: ${stack}</h2><br>`;
|
|
34
|
+
if (drifts.length === 0) {
|
|
35
|
+
body += 'no drift.';
|
|
36
|
+
return body;
|
|
37
|
+
}
|
|
38
|
+
body += '<table>' +
|
|
39
|
+
'<tr><th>Status</th><th>ID</th><th>Type</th><th>Differences</th></tr>';
|
|
40
|
+
for (const d of drifts) {
|
|
41
|
+
const status = d.StackResourceDriftStatus ?? '-';
|
|
42
|
+
const logicalId = d.LogicalResourceId ?? '-';
|
|
43
|
+
const type = d.ResourceType ?? '-';
|
|
44
|
+
const diffs = (d.PropertyDifferences ?? []).map((pd) => {
|
|
45
|
+
const p = pd.PropertyPath ?? '-';
|
|
46
|
+
const t = pd.DifferenceType ?? '-';
|
|
47
|
+
return `- ${t}: ${p}`;
|
|
48
|
+
}).join('<br>');
|
|
49
|
+
const statusEmoji = status === 'MODIFIED' ? '🟠' : status === 'DELETED' ? '🔴' : status === 'NOT_CHECKED' ? '⚪' : '🟢';
|
|
50
|
+
body += '<tr>' +
|
|
51
|
+
`<td>${statusEmoji} ${status}</td>` +
|
|
52
|
+
`<td>${logicalId}</td>` +
|
|
53
|
+
`<td>${type}</td>` +
|
|
54
|
+
`<td>${diffs}</td>` +
|
|
55
|
+
'</tr>';
|
|
56
|
+
}
|
|
57
|
+
body += '</table>';
|
|
58
|
+
return body;
|
|
59
|
+
};
|
|
60
|
+
async function listDriftedResources() {
|
|
61
|
+
const results = [];
|
|
62
|
+
// Only include resources that are not IN_SYNC
|
|
63
|
+
const filters = ['MODIFIED', 'DELETED', 'NOT_CHECKED'];
|
|
64
|
+
let nextToken = undefined;
|
|
65
|
+
do {
|
|
66
|
+
const resp = await client.send(new client_cloudformation_1.DescribeStackResourceDriftsCommand({
|
|
67
|
+
StackName: stackName,
|
|
68
|
+
NextToken: nextToken,
|
|
69
|
+
StackResourceDriftStatusFilters: filters,
|
|
70
|
+
}));
|
|
71
|
+
if (resp.StackResourceDrifts)
|
|
72
|
+
results.push(...resp.StackResourceDrifts);
|
|
73
|
+
nextToken = resp.NextToken;
|
|
74
|
+
} while (nextToken);
|
|
75
|
+
return results;
|
|
76
|
+
}
|
|
77
|
+
async function postGithubComment(url, token, body) {
|
|
78
|
+
const res = await fetch(url, {
|
|
79
|
+
method: 'POST',
|
|
80
|
+
headers: {
|
|
81
|
+
'Authorization': `token ${token}`,
|
|
82
|
+
'Content-Type': 'application/json',
|
|
83
|
+
'Accept': 'application/vnd.github+json',
|
|
84
|
+
},
|
|
85
|
+
body: JSON.stringify({ body }),
|
|
86
|
+
});
|
|
87
|
+
if (!res.ok) {
|
|
88
|
+
const text = await res.text().catch(() => '');
|
|
89
|
+
console.error(`Failed to post GitHub comment: ${res.status} ${res.statusText} ${text}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// When there is drift, collect details and post a PR comment + step summary
|
|
93
|
+
if (stackDriftStatus !== 'IN_SYNC') {
|
|
94
|
+
console.error(`Drift detected (status: ${stackDriftStatus})`);
|
|
95
|
+
const drifts = await listDriftedResources();
|
|
96
|
+
const html = buildHtml(stackName, drifts);
|
|
97
|
+
// Print to stdout and append to summary if available
|
|
98
|
+
console.log(html);
|
|
99
|
+
const stepSummary = process.env.GITHUB_STEP_SUMMARY;
|
|
100
|
+
if (stepSummary) {
|
|
101
|
+
try {
|
|
102
|
+
const { appendFile } = await Promise.resolve().then(() => require('fs/promises'));
|
|
103
|
+
await appendFile(stepSummary, `${html}\n`, { encoding: 'utf8' });
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
console.error('Failed to append to GITHUB_STEP_SUMMARY:', e?.message || e);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const commentUrl = process.env.GITHUB_COMMENT_URL;
|
|
110
|
+
const token = process.env.GITHUB_TOKEN;
|
|
111
|
+
if (commentUrl && token) {
|
|
112
|
+
await postGithubComment(commentUrl, token, html);
|
|
113
|
+
}
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
console.log('No drift detected (IN_SYNC)');
|
|
117
|
+
}
|
|
118
|
+
main().catch((e) => {
|
|
119
|
+
console.error(e);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0LWRyaWZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9kZXRlY3QtZHJpZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFPd0M7QUFFeEMsS0FBSyxVQUFVLEtBQUssQ0FBQyxFQUFVO0lBQzdCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDekMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELDBGQUEwRjtJQUMxRixNQUFNLE1BQU0sR0FBRyxJQUFJLDRDQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLCtDQUF1QixDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RixJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTlDLElBQUksZUFBZSxHQUFHLHVCQUF1QixDQUFDO0lB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dXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICBEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kLFxuICBEZXRlY3RTdGFja0RyaWZ0Q29tbWFuZCxcbiAgRGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kT3V0cHV0LFxuICB0eXBlIFN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcblxuYXN5bmMgZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcikge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgbXMpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3Qgc3RhY2tOYW1lID0gcHJvY2Vzcy5lbnYuU1RBQ0tfTkFNRTtcbiAgaWYgKCFzdGFja05hbWUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdTVEFDS19OQU1FIGVudiB2YXIgaXMgcmVxdWlyZWQnKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICAvLyBSZWdpb24gYW5kIGNyZWRlbnRpYWxzIHB1bGxlZCBmcm9tIGVudmlyb25tZW50IHNldCBieSBhY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNcbiAgY29uc3QgY2xpZW50ID0gbmV3IENsb3VkRm9ybWF0aW9uQ2xpZW50KHt9KTtcblxuICBjb25zdCBkZXRlY3QgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgRGV0ZWN0U3RhY2tEcmlmdENvbW1hbmQoeyBTdGFja05hbWU6IHN0YWNrTmFtZSB9KSk7XG4gIGlmICghZGV0ZWN0LlN0YWNrRHJpZnREZXRlY3Rpb25JZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBkcmlmdCBkZXRlY3Rpb24nKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBjb25zdCBpZCA9IGRldGVjdC5TdGFja0RyaWZ0RGV0ZWN0aW9uSWQ7XG4gIGNvbnNvbGUubG9nKGBEcmlmdCBkZXRlY3Rpb24gc3RhcnRlZDogJHtpZH1gKTtcblxuICBsZXQgZGV0ZWN0aW9uU3RhdHVzID0gJ0RFVEVDVElPTl9JTl9QUk9HUkVTUyc7XG4gIGxldCBzdGFja0RyaWZ0U3RhdHVzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgd2hpbGUgKGRldGVjdGlvblN0YXR1cyA9PT0gJ0RFVEVDVElPTl9JTl9QUk9HUkVTUycpIHtcbiAgICBhd2FpdCBzbGVlcCg1MDAwKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrRHJpZnREZXRlY3Rpb25TdGF0dXNDb21tYW5kKHsgU3RhY2tEcmlmdERldGVjdGlvbklkOiBpZCB9KSxcbiAgICApO1xuICAgIGRldGVjdGlvblN0YXR1cyA9IHJlcy5EZXRlY3Rpb25TdGF0dXMgPz8gJ1VOS05PV04nO1xuICAgIHN0YWNrRHJpZnRTdGF0dXMgPSByZXMuU3RhY2tEcmlmdFN0YXR1cztcbiAgICBjb25zb2xlLmxvZyhgRGV0ZWN0aW9uIHN0YXR1czogJHtkZXRlY3Rpb25TdGF0dXN9YCk7XG4gIH1cblxuICAvLyBIZWxwZXIgdG8gYnVpbGQgYW4gSFRNTCByZXBvcnQgb2YgZHJpZnRlZCByZXNvdXJjZXNcbiAgY29uc3QgYnVpbGRIdG1sID0gKHN0YWNrOiBzdHJpbmcsIGRyaWZ0czogYW55W10pOiBzdHJpbmcgPT4ge1xuICAgIGxldCBib2R5ID0gYDxoMT5EcmlmdCByZXBvcnQ8L2gxPjxoMj5TdGFjayBOYW1lOiAke3N0YWNrfTwvaDI+PGJyPmA7XG4gICAgaWYgKGRyaWZ0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGJvZHkgKz0gJ25vIGRyaWZ0Lic7XG4gICAgICByZXR1cm4gYm9keTtcbiAgICB9XG4gICAgYm9keSArPSAnPHRhYmxlPicgK1xuICAgICAgJzx0cj48dGg+U3RhdHVzPC90aD48dGg+SUQ8L3RoPjx0aD5UeXBlPC90aD48dGg+RGlmZmVyZW5jZXM8L3RoPjwvdHI+JztcbiAgICBmb3IgKGNvbnN0IGQgb2YgZHJpZnRzKSB7XG4gICAgICBjb25zdCBzdGF0dXMgPSBkLlN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyA/PyAnLSc7XG4gICAgICBjb25zdCBsb2dpY2FsSWQgPSBkLkxvZ2ljYWxSZXNvdXJjZUlkID8/ICctJztcbiAgICAgIGNvbnN0IHR5cGUgPSBkLlJlc291cmNlVHlwZSA/PyAnLSc7XG4gICAgICBjb25zdCBkaWZmcyA9IChkLlByb3BlcnR5RGlmZmVyZW5jZXMgPz8gW10pLm1hcCgocGQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwID0gcGQuUHJvcGVydHlQYXRoID8/ICctJztcbiAgICAgICAgY29uc3QgdCA9IHBkLkRpZmZlcmVuY2VUeXBlID8/ICctJztcbiAgICAgICAgcmV0dXJuIGAtICR7dH06ICR7cH1gO1xuICAgICAgfSkuam9pbignPGJyPicpO1xuICAgICAgY29uc3Qgc3RhdHVzRW1vamkgPSBzdGF0dXMgPT09ICdNT0RJRklFRCcgPyAn8J+foCcgOiBzdGF0dXMgPT09ICdERUxFVEVEJyA/ICfwn5S0JyA6IHN0YXR1cyA9PT0gJ05PVF9DSEVDS0VEJyA/ICfimqonIDogJ/Cfn6InO1xuICAgICAgYm9keSArPSAnPHRyPicgK1xuICAgICAgICBgPHRkPiR7c3RhdHVzRW1vaml9ICR7c3RhdHVzfTwvdGQ+YCArXG4gICAgICAgIGA8dGQ+JHtsb2dpY2FsSWR9PC90ZD5gICtcbiAgICAgICAgYDx0ZD4ke3R5cGV9PC90ZD5gICtcbiAgICAgICAgYDx0ZD4ke2RpZmZzfTwvdGQ+YCArXG4gICAgICAgICc8L3RyPic7XG4gICAgfVxuICAgIGJvZHkgKz0gJzwvdGFibGU+JztcbiAgICByZXR1cm4gYm9keTtcbiAgfTtcblxuICBhc3luYyBmdW5jdGlvbiBsaXN0RHJpZnRlZFJlc291cmNlcygpOiBQcm9taXNlPGFueVtdPiB7XG4gICAgY29uc3QgcmVzdWx0czogYW55W10gPSBbXTtcbiAgICAvLyBPbmx5IGluY2x1ZGUgcmVzb3VyY2VzIHRoYXQgYXJlIG5vdCBJTl9TWU5DXG4gICAgY29uc3QgZmlsdGVyczogU3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzW10gPSBbJ01PRElGSUVEJywgJ0RFTEVURUQnLCAnTk9UX0NIRUNLRUQnXTtcbiAgICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZG8ge1xuICAgICAgY29uc3QgcmVzcDogRGVzY3JpYmVTdGFja1Jlc291cmNlRHJpZnRzQ29tbWFuZE91dHB1dCA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZVN0YWNrUmVzb3VyY2VEcmlmdHNDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICAgIE5leHRUb2tlbjogbmV4dFRva2VuLFxuICAgICAgICBTdGFja1Jlc291cmNlRHJpZnRTdGF0dXNGaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgfSkpO1xuICAgICAgaWYgKHJlc3AuU3RhY2tSZXNvdXJjZURyaWZ0cykgcmVzdWx0cy5wdXNoKC4uLnJlc3AuU3RhY2tSZXNvdXJjZURyaWZ0cyk7XG4gICAgICBuZXh0VG9rZW4gPSByZXNwLk5leHRUb2tlbjtcbiAgICB9IHdoaWxlIChuZXh0VG9rZW4pO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcG9zdEdpdGh1YkNvbW1lbnQodXJsOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIGJvZHk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdBdXRob3JpemF0aW9uJzogYHRva2VuICR7dG9rZW59YCxcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi92bmQuZ2l0aHViK2pzb24nLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgYm9keSB9KSxcbiAgICB9KTtcbiAgICBpZiAoIXJlcy5vaykge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlcy50ZXh0KCkuY2F0Y2goKCkgPT4gJycpO1xuICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHBvc3QgR2l0SHViIGNvbW1lbnQ6ICR7cmVzLnN0YXR1c30gJHtyZXMuc3RhdHVzVGV4dH0gJHt0ZXh0fWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdoZW4gdGhlcmUgaXMgZHJpZnQsIGNvbGxlY3QgZGV0YWlscyBhbmQgcG9zdCBhIFBSIGNvbW1lbnQgKyBzdGVwIHN1bW1hcnlcbiAgaWYgKHN0YWNrRHJpZnRTdGF0dXMgIT09ICdJTl9TWU5DJykge1xuICAgIGNvbnNvbGUuZXJyb3IoYERyaWZ0IGRldGVjdGVkIChzdGF0dXM6ICR7c3RhY2tEcmlmdFN0YXR1c30pYCk7XG4gICAgY29uc3QgZHJpZnRzID0gYXdhaXQgbGlzdERyaWZ0ZWRSZXNvdXJjZXMoKTtcbiAgICBjb25zdCBodG1sID0gYnVpbGRIdG1sKHN0YWNrTmFtZSwgZHJpZnRzKTtcblxuICAgIC8vIFByaW50IHRvIHN0ZG91dCBhbmQgYXBwZW5kIHRvIHN1bW1hcnkgaWYgYXZhaWxhYmxlXG4gICAgY29uc29sZS5sb2coaHRtbCk7XG4gICAgY29uc3Qgc3RlcFN1bW1hcnkgPSBwcm9jZXNzLmVudi5HSVRIVUJfU1RFUF9TVU1NQVJZO1xuICAgIGlmIChzdGVwU3VtbWFyeSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBhcHBlbmRGaWxlIH0gPSBhd2FpdCBpbXBvcnQoJ2ZzL3Byb21pc2VzJyk7XG4gICAgICAgIGF3YWl0IGFwcGVuZEZpbGUoc3RlcFN1bW1hcnksIGAke2h0bWx9XFxuYCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBhcHBlbmQgdG8gR0lUSFVCX1NURVBfU1VNTUFSWTonLCBlPy5tZXNzYWdlIHx8IGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbW1lbnRVcmwgPSBwcm9jZXNzLmVudi5HSVRIVUJfQ09NTUVOVF9VUkw7XG4gICAgY29uc3QgdG9rZW4gPSBwcm9jZXNzLmVudi5HSVRIVUJfVE9LRU47XG4gICAgaWYgKGNvbW1lbnRVcmwgJiYgdG9rZW4pIHtcbiAgICAgIGF3YWl0IHBvc3RHaXRodWJDb21tZW50KGNvbW1lbnRVcmwsIHRva2VuLCBodG1sKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbiAgY29uc29sZS5sb2coJ05vIGRyaWZ0IGRldGVjdGVkIChJTl9TWU5DKScpO1xufVxuXG5tYWluKCkuY2F0Y2goKGUpID0+IHtcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufSk7XG4iXX0=
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./CdkDiffStackWorkflow"), exports);
|
|
18
18
|
__exportStar(require("./CdkDiffIamTemplate"), exports);
|
|
19
|
-
|
|
19
|
+
__exportStar(require("./CdkDriftIamTemplate"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF1QztBQUN2Qyx1REFBcUM7QUFDckMsd0RBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9DZGtEaWZmU3RhY2tXb3JrZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL0Nka0RpZmZJYW1UZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL0Nka0RyaWZ0SWFtVGVtcGxhdGUnO1xuIl19
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@aws-sdk/client-cloudformation": "^3.922.0",
|
|
41
|
-
"@jjrawlins/cdk-diff-pr-github-action": "file:.yalc/@jjrawlins/cdk-diff-pr-github-action",
|
|
42
41
|
"@types/crypto-js": "^4.2.2",
|
|
43
42
|
"@types/js-yaml": "^4.0.9",
|
|
44
43
|
"crypto-js": "^4.2.0",
|
|
@@ -133,5 +132,5 @@
|
|
|
133
132
|
}
|
|
134
133
|
},
|
|
135
134
|
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\".",
|
|
136
|
-
"yalcSig": "
|
|
135
|
+
"yalcSig": "51af33bb4e77689c6fcf023c37a03c3d"
|
|
137
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
51af33bb4e77689c6fcf023c37a03c3d
|