@pwrdrvr/microapps-cdk 0.0.24 → 0.0.28

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 CHANGED
@@ -1281,7 +1281,7 @@
1281
1281
  },
1282
1282
  "locationInModule": {
1283
1283
  "filename": "src/MicroApps.ts",
1284
- "line": 133
1284
+ "line": 188
1285
1285
  },
1286
1286
  "parameters": [
1287
1287
  {
@@ -1308,7 +1308,7 @@
1308
1308
  "kind": "class",
1309
1309
  "locationInModule": {
1310
1310
  "filename": "src/MicroApps.ts",
1311
- "line": 123
1311
+ "line": 178
1312
1312
  },
1313
1313
  "name": "MicroApps"
1314
1314
  },
@@ -1337,7 +1337,7 @@
1337
1337
  "immutable": true,
1338
1338
  "locationInModule": {
1339
1339
  "filename": "src/MicroApps.ts",
1340
- "line": 95
1340
+ "line": 150
1341
1341
  },
1342
1342
  "name": "account",
1343
1343
  "type": {
@@ -1437,7 +1437,7 @@
1437
1437
  "immutable": true,
1438
1438
  "locationInModule": {
1439
1439
  "filename": "src/MicroApps.ts",
1440
- "line": 110
1440
+ "line": 165
1441
1441
  },
1442
1442
  "name": "domainNameEdge",
1443
1443
  "type": {
@@ -1454,7 +1454,7 @@
1454
1454
  "immutable": true,
1455
1455
  "locationInModule": {
1456
1456
  "filename": "src/MicroApps.ts",
1457
- "line": 117
1457
+ "line": 172
1458
1458
  },
1459
1459
  "name": "domainNameOrigin",
1460
1460
  "type": {
@@ -1504,7 +1504,7 @@
1504
1504
  "immutable": true,
1505
1505
  "locationInModule": {
1506
1506
  "filename": "src/MicroApps.ts",
1507
- "line": 103
1507
+ "line": 158
1508
1508
  },
1509
1509
  "name": "region",
1510
1510
  "type": {
@@ -1514,17 +1514,17 @@
1514
1514
  {
1515
1515
  "abstract": true,
1516
1516
  "docs": {
1517
- "example": "AROA1234567890123",
1518
- "remarks": "This allows sessions that assume the IAM Role to be excluded from the\nDENY rules on the S3 Bucket Policy.",
1517
+ "default": "- none",
1519
1518
  "stability": "stable",
1520
- "summary": "AROA of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy."
1519
+ "summary": "Suffix to add to asset names, such as -[env]-pr-[prNum]."
1521
1520
  },
1522
1521
  "immutable": true,
1523
1522
  "locationInModule": {
1524
1523
  "filename": "src/MicroApps.ts",
1525
- "line": 87
1524
+ "line": 38
1526
1525
  },
1527
- "name": "s3PolicyBypassAROA",
1526
+ "name": "assetNameSuffix",
1527
+ "optional": true,
1528
1528
  "type": {
1529
1529
  "primitive": "string"
1530
1530
  }
@@ -1532,51 +1532,85 @@
1532
1532
  {
1533
1533
  "abstract": true,
1534
1534
  "docs": {
1535
- "default": "AdminAccess",
1535
+ "default": "false",
1536
1536
  "stability": "stable",
1537
- "summary": "IAM Role name to exclude from the DENY rules on the S3 Bucket Policy."
1537
+ "summary": "Automatically destroy all assets when stack is deleted."
1538
1538
  },
1539
1539
  "immutable": true,
1540
1540
  "locationInModule": {
1541
1541
  "filename": "src/MicroApps.ts",
1542
- "line": 78
1542
+ "line": 17
1543
1543
  },
1544
- "name": "s3PolicyBypassRoleName",
1544
+ "name": "autoDeleteEverything",
1545
+ "optional": true,
1545
1546
  "type": {
1546
- "primitive": "string"
1547
+ "primitive": "boolean"
1547
1548
  }
1548
1549
  },
1549
1550
  {
1550
1551
  "abstract": true,
1551
1552
  "docs": {
1552
- "default": "- none",
1553
+ "example": "[ 'AROA1234567890123' ]",
1554
+ "remarks": "AROAs of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.\nThis allows sessions that assume the IAM Role to be excluded from the\nDENY rules on the S3 Bucket Policy.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.\n\nRoles / users that are used directly, not assumed, can be added to `s3PolicyBypassRoleNames` instead.\n\nNote: This AROA must be specified to prevent this policy from locking\nout non-root sessions that have assumed the admin role.\n\nThe notPrincipals will only match the role name exactly and will not match\nany session that has assumed the role since notPrincipals does not allow\nwildcard matches and does not do wildcard matches implicitly either.\n\nThe AROA must be used because there are only 3 Principal variables available:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable\n aws:username, aws:userid, aws:PrincipalTag\n\nFor an assumed role, aws:username is blank, aws:userid is:\n [unique id AKA AROA for Role]:[session name]\n\nTable of unique ID prefixes such as AROA:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-prefixes\n\nThe name of the role is simply not available for an assumed role and, if it was,\na complicated comparison would be requierd to prevent exclusion\nof applying the Deny Rule to roles from other accounts.\n\nTo get the AROA with the AWS CLI:\n aws iam get-role --role-name ROLE-NAME\n aws iam get-user -–user-name USER-NAME",
1555
+ "see": "s3StrictBucketPolicy",
1553
1556
  "stability": "stable",
1554
- "summary": "Suffix to add to asset names, such as -[env]-pr-[prNum]."
1557
+ "summary": "Applies when using s3StrictBucketPolicy = true."
1555
1558
  },
1556
1559
  "immutable": true,
1557
1560
  "locationInModule": {
1558
1561
  "filename": "src/MicroApps.ts",
1559
- "line": 38
1562
+ "line": 142
1560
1563
  },
1561
- "name": "assetNameSuffix",
1564
+ "name": "s3PolicyBypassAROAs",
1562
1565
  "optional": true,
1563
1566
  "type": {
1564
- "primitive": "string"
1567
+ "collection": {
1568
+ "elementtype": {
1569
+ "primitive": "string"
1570
+ },
1571
+ "kind": "array"
1572
+ }
1573
+ }
1574
+ },
1575
+ {
1576
+ "abstract": true,
1577
+ "docs": {
1578
+ "example": "['arn:aws:iam::1234567890123:role/AdminAccess', 'arn:aws:iam::1234567890123:user/MyAdminUser']",
1579
+ "remarks": "IAM Role or IAM User names to exclude from the DENY rules on the S3 Bucket Policy.\n\nRoles that are Assumed must instead have their AROA added to `s3PolicyBypassAROAs`.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.",
1580
+ "see": "s3PolicyBypassAROAs",
1581
+ "stability": "stable",
1582
+ "summary": "Applies when using s3StrictBucketPolicy = true."
1583
+ },
1584
+ "immutable": true,
1585
+ "locationInModule": {
1586
+ "filename": "src/MicroApps.ts",
1587
+ "line": 99
1588
+ },
1589
+ "name": "s3PolicyBypassPrincipalARNs",
1590
+ "optional": true,
1591
+ "type": {
1592
+ "collection": {
1593
+ "elementtype": {
1594
+ "primitive": "string"
1595
+ },
1596
+ "kind": "array"
1597
+ }
1565
1598
  }
1566
1599
  },
1567
1600
  {
1568
1601
  "abstract": true,
1569
1602
  "docs": {
1570
1603
  "default": "false",
1604
+ "remarks": "This setting should be used when applications are less than\nfully trusted.",
1571
1605
  "stability": "stable",
1572
- "summary": "Automatically destroy all assets when stack is deleted."
1606
+ "summary": "Use a strict S3 Bucket Policy that prevents applications from reading/writing/modifying/deleting files in the S3 Bucket outside of the path that is specific to their app/version."
1573
1607
  },
1574
1608
  "immutable": true,
1575
1609
  "locationInModule": {
1576
1610
  "filename": "src/MicroApps.ts",
1577
- "line": 17
1611
+ "line": 83
1578
1612
  },
1579
- "name": "autoDeleteEverything",
1613
+ "name": "s3StrictBucketPolicy",
1580
1614
  "optional": true,
1581
1615
  "type": {
1582
1616
  "primitive": "boolean"
@@ -1585,6 +1619,6 @@
1585
1619
  ]
1586
1620
  }
1587
1621
  },
1588
- "version": "0.0.24",
1589
- "fingerprint": "e6LDGiAjF4Gfy51zxiHZsZaft99IdeBGzU2Ap6yP4v8="
1622
+ "version": "0.0.28",
1623
+ "fingerprint": "pN31x9a1Ge6xzfe9ibawLdds8o7PqA7OvCumMeTj+74="
1590
1624
  }
package/API.md CHANGED
@@ -142,41 +142,94 @@ AWS Region that the stack is being deployed to, this is required for importing t
142
142
 
143
143
  ---
144
144
 
145
- ##### `s3PolicyBypassAROA`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.s3PolicyBypassAROA"></a>
145
+ ##### `assetNameSuffix`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.assetNameSuffix"></a>
146
146
 
147
147
  - *Type:* `string`
148
+ - *Default:* none
149
+
150
+ Suffix to add to asset names, such as -[env]-pr-[prNum].
151
+
152
+ ---
153
+
154
+ ##### `autoDeleteEverything`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.autoDeleteEverything"></a>
155
+
156
+ - *Type:* `boolean`
157
+ - *Default:* false
148
158
 
149
- AROA of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.
159
+ Automatically destroy all assets when stack is deleted.
160
+
161
+ ---
150
162
 
163
+ ##### `s3PolicyBypassAROAs`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.s3PolicyBypassAROAs"></a>
164
+
165
+ - *Type:* `string`[]
166
+
167
+ Applies when using s3StrictBucketPolicy = true.
168
+
169
+ AROAs of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.
151
170
  This allows sessions that assume the IAM Role to be excluded from the
152
171
  DENY rules on the S3 Bucket Policy.
153
172
 
154
- ---
173
+ Typically any admin roles / users that need to view or manage the S3 Bucket
174
+ would be added to this list.
155
175
 
156
- ##### `s3PolicyBypassRoleName`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.s3PolicyBypassRoleName"></a>
176
+ Roles / users that are used directly, not assumed, can be added to `s3PolicyBypassRoleNames` instead.
157
177
 
158
- - *Type:* `string`
159
- - *Default:* AdminAccess
178
+ Note: This AROA must be specified to prevent this policy from locking
179
+ out non-root sessions that have assumed the admin role.
180
+
181
+ The notPrincipals will only match the role name exactly and will not match
182
+ any session that has assumed the role since notPrincipals does not allow
183
+ wildcard matches and does not do wildcard matches implicitly either.
184
+
185
+ The AROA must be used because there are only 3 Principal variables available:
186
+ https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable
187
+ aws:username, aws:userid, aws:PrincipalTag
188
+
189
+ For an assumed role, aws:username is blank, aws:userid is:
190
+ [unique id AKA AROA for Role]:[session name]
191
+
192
+ Table of unique ID prefixes such as AROA:
193
+ https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-prefixes
160
194
 
161
- IAM Role name to exclude from the DENY rules on the S3 Bucket Policy.
195
+ The name of the role is simply not available for an assumed role and, if it was,
196
+ a complicated comparison would be requierd to prevent exclusion
197
+ of applying the Deny Rule to roles from other accounts.
198
+
199
+ To get the AROA with the AWS CLI:
200
+ aws iam get-role --role-name ROLE-NAME
201
+ aws iam get-user -–user-name USER-NAME
202
+
203
+ > s3StrictBucketPolicy
162
204
 
163
205
  ---
164
206
 
165
- ##### `assetNameSuffix`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.assetNameSuffix"></a>
207
+ ##### `s3PolicyBypassPrincipalARNs`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.s3PolicyBypassPrincipalARNs"></a>
166
208
 
167
- - *Type:* `string`
168
- - *Default:* none
209
+ - *Type:* `string`[]
169
210
 
170
- Suffix to add to asset names, such as -[env]-pr-[prNum].
211
+ Applies when using s3StrictBucketPolicy = true.
212
+
213
+ IAM Role or IAM User names to exclude from the DENY rules on the S3 Bucket Policy.
214
+
215
+ Roles that are Assumed must instead have their AROA added to `s3PolicyBypassAROAs`.
216
+
217
+ Typically any admin roles / users that need to view or manage the S3 Bucket
218
+ would be added to this list.
219
+
220
+ > s3PolicyBypassAROAs
171
221
 
172
222
  ---
173
223
 
174
- ##### `autoDeleteEverything`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.autoDeleteEverything"></a>
224
+ ##### `s3StrictBucketPolicy`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.s3StrictBucketPolicy"></a>
175
225
 
176
226
  - *Type:* `boolean`
177
227
  - *Default:* false
178
228
 
179
- Automatically destroy all assets when stack is deleted.
229
+ Use a strict S3 Bucket Policy that prevents applications from reading/writing/modifying/deleting files in the S3 Bucket outside of the path that is specific to their app/version.
230
+
231
+ This setting should be used when applications are less than
232
+ fully trusted.
180
233
 
181
234
  ---
182
235
 
@@ -70,24 +70,76 @@ export interface MicroAppsProps {
70
70
  */
71
71
  readonly certOrigin: acm.ICertificate;
72
72
  /**
73
- * IAM Role name to exclude from the DENY rules on the S3 Bucket Policy.
73
+ * Use a strict S3 Bucket Policy that prevents applications from reading/writing/modifying/deleting files in the S3 Bucket outside of the path that is specific to their app/version.
74
74
  *
75
- * @default AdminAccess
75
+ * This setting should be used when applications are less than
76
+ * fully trusted.
77
+ *
78
+ * @default false
79
+ * @stability stable
80
+ */
81
+ readonly s3StrictBucketPolicy?: boolean;
82
+ /**
83
+ * Applies when using s3StrictBucketPolicy = true.
84
+ *
85
+ * IAM Role or IAM User names to exclude from the DENY rules on the S3 Bucket Policy.
86
+ *
87
+ * Roles that are Assumed must instead have their AROA added to `s3PolicyBypassAROAs`.
88
+ *
89
+ * Typically any admin roles / users that need to view or manage the S3 Bucket
90
+ * would be added to this list.
91
+ *
92
+ * @see s3PolicyBypassAROAs
76
93
  * @stability stable
94
+ * @example
95
+ *
96
+ * ['arn:aws:iam::1234567890123:role/AdminAccess', 'arn:aws:iam::1234567890123:user/MyAdminUser']
77
97
  */
78
- readonly s3PolicyBypassRoleName: string;
98
+ readonly s3PolicyBypassPrincipalARNs?: string[];
79
99
  /**
80
- * AROA of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.
100
+ * Applies when using s3StrictBucketPolicy = true.
81
101
  *
102
+ * AROAs of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.
82
103
  * This allows sessions that assume the IAM Role to be excluded from the
83
104
  * DENY rules on the S3 Bucket Policy.
84
105
  *
106
+ * Typically any admin roles / users that need to view or manage the S3 Bucket
107
+ * would be added to this list.
108
+ *
109
+ * Roles / users that are used directly, not assumed, can be added to `s3PolicyBypassRoleNames` instead.
110
+ *
111
+ * Note: This AROA must be specified to prevent this policy from locking
112
+ * out non-root sessions that have assumed the admin role.
113
+ *
114
+ * The notPrincipals will only match the role name exactly and will not match
115
+ * any session that has assumed the role since notPrincipals does not allow
116
+ * wildcard matches and does not do wildcard matches implicitly either.
117
+ *
118
+ * The AROA must be used because there are only 3 Principal variables available:
119
+ * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable
120
+ * aws:username, aws:userid, aws:PrincipalTag
121
+ *
122
+ * For an assumed role, aws:username is blank, aws:userid is:
123
+ * [unique id AKA AROA for Role]:[session name]
124
+ *
125
+ * Table of unique ID prefixes such as AROA:
126
+ * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-prefixes
127
+ *
128
+ * The name of the role is simply not available for an assumed role and, if it was,
129
+ * a complicated comparison would be requierd to prevent exclusion
130
+ * of applying the Deny Rule to roles from other accounts.
131
+ *
132
+ * To get the AROA with the AWS CLI:
133
+ * aws iam get-role --role-name ROLE-NAME
134
+ * aws iam get-user -–user-name USER-NAME
135
+ *
136
+ * @see s3StrictBucketPolicy
85
137
  * @stability stable
86
138
  * @example
87
139
  *
88
- * AROA1234567890123
140
+ * [ 'AROA1234567890123' ]
89
141
  */
90
- readonly s3PolicyBypassAROA: string;
142
+ readonly s3PolicyBypassAROAs?: string[];
91
143
  /**
92
144
  * AWS Account ID that the stack is being deployed to, this is required for importing the R53 Zone.
93
145
  *
package/lib/MicroApps.js CHANGED
@@ -21,7 +21,7 @@ class MicroApps extends cdk.Construct {
21
21
  if (props === undefined) {
22
22
  throw new Error('props must be set');
23
23
  }
24
- const { domainName, domainNameEdge, domainNameOrigin, assetNameRoot = 'microapps', assetNameSuffix = '', autoDeleteEverything = false, r53ZoneID, r53ZoneName, certEdge, account, region, appEnv = 'dev', certOrigin, s3PolicyBypassAROA, s3PolicyBypassRoleName = 'AdminAccess', } = props;
24
+ const { domainName, domainNameEdge, domainNameOrigin, assetNameRoot = 'microapps', assetNameSuffix = '', autoDeleteEverything = false, r53ZoneID, r53ZoneName, certEdge, account, region, appEnv = 'dev', certOrigin, s3PolicyBypassAROAs, s3PolicyBypassPrincipalARNs, s3StrictBucketPolicy, } = props;
25
25
  const reverseDomainName = MicroApps.reverseDomain(domainName);
26
26
  const s3 = new MicroAppsS3_1.MicroAppsS3(this, 'microapps-s3', {
27
27
  autoDeleteEverything,
@@ -58,8 +58,9 @@ class MicroApps extends cdk.Construct {
58
58
  region,
59
59
  appEnv,
60
60
  certOrigin,
61
- s3PolicyBypassAROA,
62
- s3PolicyBypassRoleName,
61
+ s3PolicyBypassAROAs,
62
+ s3PolicyBypassPrincipalARNs,
63
+ s3StrictBucketPolicy,
63
64
  });
64
65
  }
65
66
  // input like 'example.com.' will return as 'com.example'
@@ -73,5 +74,5 @@ class MicroApps extends cdk.Construct {
73
74
  }
74
75
  exports.MicroApps = MicroApps;
75
76
  _a = JSII_RTTI_SYMBOL_1;
76
- MicroApps[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroApps", version: "0.0.24" };
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01pY3JvQXBwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHFDQUFxQztBQUNyQywrQ0FBNEM7QUFDNUMsK0NBQTRDO0FBQzVDLG1EQUFnRDs7Ozs7O0FBbURoRCxNQUFhLFNBQVUsU0FBUSxHQUFHLENBQUMsU0FBUzs7OztJQVUxQyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN0QztRQUVELE1BQU0sRUFDSixVQUFVLEVBQ1YsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixhQUFhLEdBQUcsV0FBVyxFQUMzQixlQUFlLEdBQUcsRUFBRSxFQUNwQixvQkFBb0IsR0FBRyxLQUFLLEVBQzVCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsUUFBUSxFQUNSLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxHQUFHLEtBQUssRUFDZCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLHNCQUFzQixHQUFHLGFBQWEsR0FDdkMsR0FBRyxLQUFLLENBQUM7UUFDVixNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUQsTUFBTSxFQUFFLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDL0Msb0JBQW9CO1lBQ3BCLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsZUFBZTtTQUNoQixDQUFDLENBQUM7UUFDSCxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQ3ZELFNBQVMsRUFBRSxFQUFFO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLFNBQVM7WUFDVCxXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUMsQ0FBQztRQUNILElBQUksNkJBQWEsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDeEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsU0FBUyxFQUFFLEVBQUU7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLFVBQVU7WUFDVixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsU0FBUztZQUNULFdBQVc7WUFDWCxPQUFPO1lBQ1AsTUFBTTtZQUNOLE1BQU07WUFDTixVQUFVO1lBQ1Ysa0JBQWtCO1lBQ2xCLHNCQUFzQjtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBekVELHlEQUF5RDtJQUNqRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQWM7UUFDekMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEI7UUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQzs7QUFSSCw4QkEyRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhY20gZnJvbSAnQGF3cy1jZGsvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBNaWNyb0FwcHNDRiB9IGZyb20gJy4vTWljcm9BcHBzQ0YnO1xuaW1wb3J0IHsgTWljcm9BcHBzUzMgfSBmcm9tICcuL01pY3JvQXBwc1MzJztcbmltcG9ydCB7IE1pY3JvQXBwc1N2Y3MgfSBmcm9tICcuL01pY3JvQXBwc1N2Y3MnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgTWljcm9BcHBzUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGF1dG9EZWxldGVFdmVyeXRoaW5nPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFwcEVudjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFzc2V0TmFtZVJvb3Q6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXNzZXROYW1lU3VmZml4Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByNTNab25lTmFtZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByNTNab25lSUQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjZXJ0RWRnZTogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjZXJ0T3JpZ2luOiBhY20uSUNlcnRpZmljYXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgczNQb2xpY3lCeXBhc3NSb2xlTmFtZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgczNQb2xpY3lCeXBhc3NBUk9BOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVFZGdlOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZG9tYWluTmFtZU9yaWdpbjogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgTWljcm9BcHBzIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCB7XG4gIC8vIGlucHV0IGxpa2UgJ2V4YW1wbGUuY29tLicgd2lsbCByZXR1cm4gYXMgJ2NvbS5leGFtcGxlJ1xuICBwcml2YXRlIHN0YXRpYyByZXZlcnNlRG9tYWluKGRvbWFpbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcGFydHMgPSBkb21haW4uc3BsaXQoJy4nKS5yZXZlcnNlKCk7XG4gICAgaWYgKHBhcnRzWzBdID09PSAnJykge1xuICAgICAgcGFydHMgPSBwYXJ0cy5zbGljZSgxKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJy4nKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IE1pY3JvQXBwc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb3BzIG11c3QgYmUgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZG9tYWluTmFtZSxcbiAgICAgIGRvbWFpbk5hbWVFZGdlLFxuICAgICAgZG9tYWluTmFtZU9yaWdpbixcbiAgICAgIGFzc2V0TmFtZVJvb3QgPSAnbWljcm9hcHBzJyxcbiAgICAgIGFzc2V0TmFtZVN1ZmZpeCA9ICcnLFxuICAgICAgYXV0b0RlbGV0ZUV2ZXJ5dGhpbmcgPSBmYWxzZSxcbiAgICAgIHI1M1pvbmVJRCxcbiAgICAgIHI1M1pvbmVOYW1lLFxuICAgICAgY2VydEVkZ2UsXG4gICAgICBhY2NvdW50LFxuICAgICAgcmVnaW9uLFxuICAgICAgYXBwRW52ID0gJ2RldicsXG4gICAgICBjZXJ0T3JpZ2luLFxuICAgICAgczNQb2xpY3lCeXBhc3NBUk9BLFxuICAgICAgczNQb2xpY3lCeXBhc3NSb2xlTmFtZSA9ICdBZG1pbkFjY2VzcycsXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHJldmVyc2VEb21haW5OYW1lID0gTWljcm9BcHBzLnJldmVyc2VEb21haW4oZG9tYWluTmFtZSk7XG5cbiAgICBjb25zdCBzMyA9IG5ldyBNaWNyb0FwcHNTMyh0aGlzLCAnbWljcm9hcHBzLXMzJywge1xuICAgICAgYXV0b0RlbGV0ZUV2ZXJ5dGhpbmcsXG4gICAgICByZXZlcnNlRG9tYWluTmFtZSxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgfSk7XG4gICAgY29uc3QgY2YgPSBuZXcgTWljcm9BcHBzQ0YodGhpcywgJ21pY3JvYXBwcy1jbG91ZGZyb250Jywge1xuICAgICAgczNFeHBvcnRzOiBzMyxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgICBkb21haW5OYW1lLFxuICAgICAgcmV2ZXJzZURvbWFpbk5hbWUsXG4gICAgICBkb21haW5OYW1lRWRnZSxcbiAgICAgIGRvbWFpbk5hbWVPcmlnaW4sXG4gICAgICBhdXRvRGVsZXRlRXZlcnl0aGluZyxcbiAgICAgIHI1M1pvbmVJRCxcbiAgICAgIHI1M1pvbmVOYW1lLFxuICAgICAgY2VydEVkZ2UsXG4gICAgfSk7XG4gICAgbmV3IE1pY3JvQXBwc1N2Y3ModGhpcywgJ21pY3JvYXBwcy1zdmNzJywge1xuICAgICAgY2ZTdGFja0V4cG9ydHM6IGNmLFxuICAgICAgczNFeHBvcnRzOiBzMyxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgICBkb21haW5OYW1lLFxuICAgICAgcmV2ZXJzZURvbWFpbk5hbWUsXG4gICAgICBkb21haW5OYW1lRWRnZSxcbiAgICAgIGRvbWFpbk5hbWVPcmlnaW4sXG4gICAgICBhdXRvRGVsZXRlRXZlcnl0aGluZyxcbiAgICAgIHI1M1pvbmVJRCxcbiAgICAgIHI1M1pvbmVOYW1lLFxuICAgICAgYWNjb3VudCxcbiAgICAgIHJlZ2lvbixcbiAgICAgIGFwcEVudixcbiAgICAgIGNlcnRPcmlnaW4sXG4gICAgICBzM1BvbGljeUJ5cGFzc0FST0EsXG4gICAgICBzM1BvbGljeUJ5cGFzc1JvbGVOYW1lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
77
+ MicroApps[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroApps", version: "0.0.28" };
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01pY3JvQXBwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHFDQUFxQztBQUNyQywrQ0FBNEM7QUFDNUMsK0NBQTRDO0FBQzVDLG1EQUFnRDs7Ozs7O0FBc0RoRCxNQUFhLFNBQVUsU0FBUSxHQUFHLENBQUMsU0FBUzs7OztJQVUxQyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN0QztRQUVELE1BQU0sRUFDSixVQUFVLEVBQ1YsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixhQUFhLEdBQUcsV0FBVyxFQUMzQixlQUFlLEdBQUcsRUFBRSxFQUNwQixvQkFBb0IsR0FBRyxLQUFLLEVBQzVCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsUUFBUSxFQUNSLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxHQUFHLEtBQUssRUFDZCxVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLDJCQUEyQixFQUMzQixvQkFBb0IsR0FDckIsR0FBRyxLQUFLLENBQUM7UUFDVixNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUQsTUFBTSxFQUFFLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDL0Msb0JBQW9CO1lBQ3BCLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsZUFBZTtTQUNoQixDQUFDLENBQUM7UUFDSCxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQ3ZELFNBQVMsRUFBRSxFQUFFO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLFNBQVM7WUFDVCxXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUMsQ0FBQztRQUNILElBQUksNkJBQWEsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDeEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsU0FBUyxFQUFFLEVBQUU7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLFVBQVU7WUFDVixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsU0FBUztZQUNULFdBQVc7WUFDWCxPQUFPO1lBQ1AsTUFBTTtZQUNOLE1BQU07WUFDTixVQUFVO1lBQ1YsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQixvQkFBb0I7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQTNFRCx5REFBeUQ7SUFDakQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFjO1FBQ3pDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O0FBUkgsOEJBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYWNtIGZyb20gJ0Bhd3MtY2RrL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgTWljcm9BcHBzQ0YgfSBmcm9tICcuL01pY3JvQXBwc0NGJztcbmltcG9ydCB7IE1pY3JvQXBwc1MzIH0gZnJvbSAnLi9NaWNyb0FwcHNTMyc7XG5pbXBvcnQgeyBNaWNyb0FwcHNTdmNzIH0gZnJvbSAnLi9NaWNyb0FwcHNTdmNzJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIE1pY3JvQXBwc1Byb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhdXRvRGVsZXRlRXZlcnl0aGluZz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhcHBFbnY6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhc3NldE5hbWVSb290OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFzc2V0TmFtZVN1ZmZpeD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcjUzWm9uZU5hbWU6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcjUzWm9uZUlEOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2VydEVkZ2U6IGFjbS5JQ2VydGlmaWNhdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2VydE9yaWdpbjogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgczNTdHJpY3RCdWNrZXRQb2xpY3k/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgczNQb2xpY3lCeXBhc3NQcmluY2lwYWxBUk5zPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHMzUG9saWN5QnlwYXNzQVJPQXM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZG9tYWluTmFtZUVkZ2U6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkb21haW5OYW1lT3JpZ2luOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBNaWNyb0FwcHMgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgLy8gaW5wdXQgbGlrZSAnZXhhbXBsZS5jb20uJyB3aWxsIHJldHVybiBhcyAnY29tLmV4YW1wbGUnXG4gIHByaXZhdGUgc3RhdGljIHJldmVyc2VEb21haW4oZG9tYWluOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBwYXJ0cyA9IGRvbWFpbi5zcGxpdCgnLicpLnJldmVyc2UoKTtcbiAgICBpZiAocGFydHNbMF0gPT09ICcnKSB7XG4gICAgICBwYXJ0cyA9IHBhcnRzLnNsaWNlKDEpO1xuICAgIH1cbiAgICByZXR1cm4gcGFydHMuam9pbignLicpO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogTWljcm9BcHBzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHJvcHMgbXVzdCBiZSBzZXQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBkb21haW5OYW1lLFxuICAgICAgZG9tYWluTmFtZUVkZ2UsXG4gICAgICBkb21haW5OYW1lT3JpZ2luLFxuICAgICAgYXNzZXROYW1lUm9vdCA9ICdtaWNyb2FwcHMnLFxuICAgICAgYXNzZXROYW1lU3VmZml4ID0gJycsXG4gICAgICBhdXRvRGVsZXRlRXZlcnl0aGluZyA9IGZhbHNlLFxuICAgICAgcjUzWm9uZUlELFxuICAgICAgcjUzWm9uZU5hbWUsXG4gICAgICBjZXJ0RWRnZSxcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBhcHBFbnYgPSAnZGV2JyxcbiAgICAgIGNlcnRPcmlnaW4sXG4gICAgICBzM1BvbGljeUJ5cGFzc0FST0FzLFxuICAgICAgczNQb2xpY3lCeXBhc3NQcmluY2lwYWxBUk5zLFxuICAgICAgczNTdHJpY3RCdWNrZXRQb2xpY3ksXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHJldmVyc2VEb21haW5OYW1lID0gTWljcm9BcHBzLnJldmVyc2VEb21haW4oZG9tYWluTmFtZSk7XG5cbiAgICBjb25zdCBzMyA9IG5ldyBNaWNyb0FwcHNTMyh0aGlzLCAnbWljcm9hcHBzLXMzJywge1xuICAgICAgYXV0b0RlbGV0ZUV2ZXJ5dGhpbmcsXG4gICAgICByZXZlcnNlRG9tYWluTmFtZSxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgfSk7XG4gICAgY29uc3QgY2YgPSBuZXcgTWljcm9BcHBzQ0YodGhpcywgJ21pY3JvYXBwcy1jbG91ZGZyb250Jywge1xuICAgICAgczNFeHBvcnRzOiBzMyxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgICBkb21haW5OYW1lLFxuICAgICAgcmV2ZXJzZURvbWFpbk5hbWUsXG4gICAgICBkb21haW5OYW1lRWRnZSxcbiAgICAgIGRvbWFpbk5hbWVPcmlnaW4sXG4gICAgICBhdXRvRGVsZXRlRXZlcnl0aGluZyxcbiAgICAgIHI1M1pvbmVJRCxcbiAgICAgIHI1M1pvbmVOYW1lLFxuICAgICAgY2VydEVkZ2UsXG4gICAgfSk7XG4gICAgbmV3IE1pY3JvQXBwc1N2Y3ModGhpcywgJ21pY3JvYXBwcy1zdmNzJywge1xuICAgICAgY2ZTdGFja0V4cG9ydHM6IGNmLFxuICAgICAgczNFeHBvcnRzOiBzMyxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgICBkb21haW5OYW1lLFxuICAgICAgcmV2ZXJzZURvbWFpbk5hbWUsXG4gICAgICBkb21haW5OYW1lRWRnZSxcbiAgICAgIGRvbWFpbk5hbWVPcmlnaW4sXG4gICAgICBhdXRvRGVsZXRlRXZlcnl0aGluZyxcbiAgICAgIHI1M1pvbmVJRCxcbiAgICAgIHI1M1pvbmVOYW1lLFxuICAgICAgYWNjb3VudCxcbiAgICAgIHJlZ2lvbixcbiAgICAgIGFwcEVudixcbiAgICAgIGNlcnRPcmlnaW4sXG4gICAgICBzM1BvbGljeUJ5cGFzc0FST0FzLFxuICAgICAgczNQb2xpY3lCeXBhc3NQcmluY2lwYWxBUk5zLFxuICAgICAgczNTdHJpY3RCdWNrZXRQb2xpY3ksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -17,8 +17,9 @@ interface MicroAppsSvcsStackProps extends cdk.ResourceProps {
17
17
  readonly certOrigin: acm.ICertificate;
18
18
  readonly r53ZoneName: string;
19
19
  readonly r53ZoneID: string;
20
- readonly s3PolicyBypassAROA: string;
21
- readonly s3PolicyBypassRoleName: string;
20
+ readonly s3StrictBucketPolicy?: boolean;
21
+ readonly s3PolicyBypassAROAs?: string[];
22
+ readonly s3PolicyBypassPrincipalARNs?: string[];
22
23
  readonly account: string;
23
24
  readonly region: string;
24
25
  }