@fjall/generator 4.4.0 → 5.0.0
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/dist/.build-source-hash +156 -0
- package/dist/.minified +1 -1
- package/dist/src/dns/domainFileGenerator.js +1 -1
- package/dist/src/schemas/devRolePolicies.d.ts +17 -16
- package/dist/src/schemas/devRolePolicies.js +1 -1
- package/dist/src/schemas/instanceTypeArchitecture.js +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"algorithm": "sha256",
|
|
4
|
+
"sources": [
|
|
5
|
+
"src"
|
|
6
|
+
],
|
|
7
|
+
"hash": "57a1628f8b57c0ec6e562cbb8d82160de330bd8409e1d9023a8bffb7198aaaa3",
|
|
8
|
+
"files": {
|
|
9
|
+
"src/ast/astTestHelpers.ts": "026cac849eb88bdb",
|
|
10
|
+
"src/ast/domain/astDomainParser.ts": "bac0b16eb2e62552",
|
|
11
|
+
"src/ast/index.ts": "502a507c3764acbf",
|
|
12
|
+
"src/ast/mutation/astCodeInjection.ts": "c1ebf483fb1e2332",
|
|
13
|
+
"src/ast/mutation/astExpressionEvaluator.ts": "6082789268b91212",
|
|
14
|
+
"src/ast/mutation/astSurgicalModification.ts": "9c512e11e8239c4d",
|
|
15
|
+
"src/ast/parsers/common/astCommonParser.ts": "d4c19453e9a75cac",
|
|
16
|
+
"src/ast/parsers/common/astStatementClassifier.ts": "b053f2ed51ec76f5",
|
|
17
|
+
"src/ast/parsers/common/astStatementQueries.ts": "e40e31e0fcdc15e3",
|
|
18
|
+
"src/ast/parsers/orchestrator/astInfrastructureParser.ts": "07fd7a94796ebf5f",
|
|
19
|
+
"src/ast/parsers/orchestrator/astPlanConverter.ts": "eb9b1f0ab90f6999",
|
|
20
|
+
"src/ast/parsers/resources/astCdnParser.ts": "e00d034378374811",
|
|
21
|
+
"src/ast/parsers/resources/astClickHouseParser.ts": "cf49943b3d2bbd48",
|
|
22
|
+
"src/ast/parsers/resources/astComputeConnectionParser.ts": "e0f1533845f3ce8a",
|
|
23
|
+
"src/ast/parsers/resources/astComputeParser.ts": "98e4a2e6b2d634fa",
|
|
24
|
+
"src/ast/parsers/resources/astComputeParserHelpers.ts": "6e0349d365bcf6cf",
|
|
25
|
+
"src/ast/parsers/resources/astDatabaseParser.ts": "e18f5483f5e23297",
|
|
26
|
+
"src/ast/parsers/resources/astDynamoDBParser.ts": "809c2c633447b388",
|
|
27
|
+
"src/ast/parsers/resources/astMessagingParser.ts": "b185ec22e6b96943",
|
|
28
|
+
"src/ast/parsers/resources/astNetworkParser.ts": "8697dccb454eac7d",
|
|
29
|
+
"src/ast/parsers/resources/astPatternParser.ts": "09c624247eaf0786",
|
|
30
|
+
"src/ast/parsers/resources/astScheduleParser.ts": "03de29da6d4b7380",
|
|
31
|
+
"src/ast/parsers/resources/astStorageParser.ts": "309bc3257f46cfdf",
|
|
32
|
+
"src/aws/regions.ts": "a028bcb92b0e41d9",
|
|
33
|
+
"src/codemod/_internal.ts": "e865b7172fcc457b",
|
|
34
|
+
"src/codemod/drift/detect.ts": "af3fb518a9d7165d",
|
|
35
|
+
"src/codemod/drift/index.ts": "e87e1ced35eefa44",
|
|
36
|
+
"src/codemod/drift/merge.ts": "29093929befa9abd",
|
|
37
|
+
"src/codemod/drift/snapshot.ts": "f8ef6b4097aa3d10",
|
|
38
|
+
"src/codemod/drift/types.ts": "7f1d7899e420e4d7",
|
|
39
|
+
"src/codemod/edits/addResource.ts": "002563615dbca570",
|
|
40
|
+
"src/codemod/edits/addResource/appBinding.ts": "20fe5dbcfdc378c3",
|
|
41
|
+
"src/codemod/edits/addResource/bodyIndex.ts": "3e179eac10d7bcf4",
|
|
42
|
+
"src/codemod/edits/addResource/propertyBuilder.ts": "18022f8899ba4b38",
|
|
43
|
+
"src/codemod/edits/appendAccountToStage.ts": "2b92f93734497303",
|
|
44
|
+
"src/codemod/edits/controlFlowPolicy.ts": "e32bbe2894f76c65",
|
|
45
|
+
"src/codemod/edits/crossPlanConnection.ts": "54a4ecb7b3368160",
|
|
46
|
+
"src/codemod/edits/driftPolicy.ts": "5d9b7bb3505f987d",
|
|
47
|
+
"src/codemod/edits/ensureImports.ts": "3ca0b6d446c4333c",
|
|
48
|
+
"src/codemod/edits/findInsertionPosition.ts": "20cd34fdcf781017",
|
|
49
|
+
"src/codemod/edits/index.ts": "bea5ed7c3983342b",
|
|
50
|
+
"src/codemod/edits/modifyResource.ts": "8b91e93dc9a732ec",
|
|
51
|
+
"src/codemod/edits/modifyResource/literalConversion.ts": "9a9eefbe72e434bf",
|
|
52
|
+
"src/codemod/edits/removeResource.ts": "2c7c8fe67bc3a866",
|
|
53
|
+
"src/codemod/edits/removeResource/commentHeuristic.ts": "90b6ce7ba5aa2a48",
|
|
54
|
+
"src/codemod/edits/removeResource/importPruning.ts": "f22783108b40f6cb",
|
|
55
|
+
"src/codemod/edits/unmanagedShapeErrors.ts": "4ea5a1614f8065f8",
|
|
56
|
+
"src/codemod/edits/vpcPeer.ts": "0bcf90c2e6d16ca4",
|
|
57
|
+
"src/codemod/edits/vpcPeerAccepter.ts": "c9eace933e9e2345",
|
|
58
|
+
"src/codemod/fileRewriter/builders.ts": "46a0d43240ff0818",
|
|
59
|
+
"src/codemod/fileRewriter/index.ts": "fd715b41176a7999",
|
|
60
|
+
"src/codemod/fileRewriter/locateByRange.ts": "889ee6256201c1fe",
|
|
61
|
+
"src/codemod/fileRewriter/parse.ts": "b12026c31562a13c",
|
|
62
|
+
"src/codemod/fileRewriter/print.ts": "f5ff7afb5b7786bf",
|
|
63
|
+
"src/codemod/historyPaths.ts": "ef8084013146db57",
|
|
64
|
+
"src/codemod/index.ts": "a555c237989cb6c4",
|
|
65
|
+
"src/codemod/listResources.ts": "97f206a50edbea20",
|
|
66
|
+
"src/codemod/llmFallback/apply.ts": "2e656a6e55b3b4e3",
|
|
67
|
+
"src/codemod/llmFallback/claudeTier.ts": "0a37fe782c85f75b",
|
|
68
|
+
"src/codemod/llmFallback/egressGate.ts": "2573dcf5b7a126a0",
|
|
69
|
+
"src/codemod/llmFallback/egressGate.types.ts": "15531dd497ae6135",
|
|
70
|
+
"src/codemod/llmFallback/index.ts": "b6c6cc8ef78d7887",
|
|
71
|
+
"src/codemod/llmFallback/morphTier.ts": "9551b6b63a1af561",
|
|
72
|
+
"src/codemod/llmFallback/prompt.ts": "60e8f4ab434bf9ec",
|
|
73
|
+
"src/codemod/llmFallback/runFallback.ts": "d3f1d1915aa56a23",
|
|
74
|
+
"src/codemod/llmFallback/shouldTryFallback.ts": "df6038f97612b8ee",
|
|
75
|
+
"src/codemod/llmFallback/signals.ts": "298bae6465b5f173",
|
|
76
|
+
"src/codemod/llmFallback/telemetryEvents.ts": "33a85939739693ab",
|
|
77
|
+
"src/codemod/llmFallback/tierRunner.ts": "a26094accd78cf15",
|
|
78
|
+
"src/codemod/llmFallback/types.ts": "14af8d2bd9afae12",
|
|
79
|
+
"src/codemod/registry.ts": "14b93cc476fdadd1",
|
|
80
|
+
"src/codemod/semanticIndex/classifyControlFlow.ts": "ed96215d91a3cae3",
|
|
81
|
+
"src/codemod/semanticIndex/findReferences.ts": "96aea37418d1e91a",
|
|
82
|
+
"src/codemod/semanticIndex/index.ts": "cfcd212d34ab20fb",
|
|
83
|
+
"src/codemod/semanticIndex/listImports.ts": "1e5fba6e34a17dab",
|
|
84
|
+
"src/codemod/semanticIndex/locateByShape.ts": "6c2eadd7d1df9464",
|
|
85
|
+
"src/codemod/semanticIndex/projectCache.ts": "dfd9b265c9d233c9",
|
|
86
|
+
"src/codemod/semanticIndex/resolveConstructByLiteralProperty.ts": "2d013a330af15c5c",
|
|
87
|
+
"src/codemod/telemetry/errorKinds.ts": "66c736abfa8b3a67",
|
|
88
|
+
"src/codemod/types.ts": "4097b650c1bde13a",
|
|
89
|
+
"src/codemod/validationGate/gates/classify.ts": "edb92a1f7a2d9aeb",
|
|
90
|
+
"src/codemod/validationGate/gates/drift.ts": "bd603a216fbb91a9",
|
|
91
|
+
"src/codemod/validationGate/gates/locate.ts": "2c186c32edbb97ce",
|
|
92
|
+
"src/codemod/validationGate/gates/parse.ts": "5433c5c8ffa35324",
|
|
93
|
+
"src/codemod/validationGate/gates/schema.ts": "aa904146e30219bd",
|
|
94
|
+
"src/codemod/validationGate/index.ts": "df5754bea9070410",
|
|
95
|
+
"src/codemod/validationGate/types.ts": "af466ee5f3433042",
|
|
96
|
+
"src/detection/index.ts": "b4ad9a935564cb3e",
|
|
97
|
+
"src/dns/bindParser.ts": "a5371cd1fa781ce6",
|
|
98
|
+
"src/dns/bindWriter.ts": "634b96dd15ee94b2",
|
|
99
|
+
"src/dns/domainFileGenerator.ts": "143fbcfbdb152398",
|
|
100
|
+
"src/dns/domainRecords.ts": "17f895ff9a7b719b",
|
|
101
|
+
"src/dns/index.ts": "b476ef3d7b381dc8",
|
|
102
|
+
"src/dns/types.ts": "82d6db9d7d26dbc2",
|
|
103
|
+
"src/generation/common.ts": "4b63724600c726de",
|
|
104
|
+
"src/generation/compute.ts": "4029a0d8e3197686",
|
|
105
|
+
"src/generation/compute/ec2.ts": "4d8187d293a57fb1",
|
|
106
|
+
"src/generation/compute/ecs.ts": "72190132fdaa1847",
|
|
107
|
+
"src/generation/compute/lambda.ts": "4f5e31080941b83a",
|
|
108
|
+
"src/generation/compute/shared.ts": "3724d4bfe92cfcb7",
|
|
109
|
+
"src/generation/database.ts": "a28f791f0f028343",
|
|
110
|
+
"src/generation/generatePatternCode.ts": "de16f42105a45358",
|
|
111
|
+
"src/generation/index.ts": "fd58a833e13bcf07",
|
|
112
|
+
"src/generation/infrastructure.ts": "6381d502f4733926",
|
|
113
|
+
"src/generation/messagingConnections.ts": "1f070088c39e9749",
|
|
114
|
+
"src/generation/storage.ts": "68fa78401bbcf8a5",
|
|
115
|
+
"src/generation/storageConnections.ts": "db1ab6ccdc19afab",
|
|
116
|
+
"src/index.ts": "fc8f27b8ffade9ef",
|
|
117
|
+
"src/planning/generateResourceChange.ts": "1c6411f9a12e7acb",
|
|
118
|
+
"src/planning/index.ts": "5caacb699eed31ba",
|
|
119
|
+
"src/planning/openNextPlanning.ts": "4af9cb9061f7d21e",
|
|
120
|
+
"src/planning/resourceAddition.ts": "45b010d2eaf96522",
|
|
121
|
+
"src/planning/resourceConnections.ts": "a6b7db8f733e560f",
|
|
122
|
+
"src/planning/resourcePlanning.ts": "85038ad65bda976f",
|
|
123
|
+
"src/planning/staticSitePlanning.ts": "242af1e9618821ab",
|
|
124
|
+
"src/presets/clickhouseTierPreset.ts": "72b2b8a8caf4bdb4",
|
|
125
|
+
"src/presets/index.ts": "8332c0198b2a6fe9",
|
|
126
|
+
"src/presets/patternTierPresets.ts": "f4fc368fc623aae4",
|
|
127
|
+
"src/presets/storagePresets.ts": "5df2d4d7d21a66d8",
|
|
128
|
+
"src/presets/tierPresets.ts": "c0148771bffbef9b",
|
|
129
|
+
"src/presets/tierTypes.ts": "96d33201ebddf6e6",
|
|
130
|
+
"src/schemas/alarmSchemas.ts": "9016095d8031f006",
|
|
131
|
+
"src/schemas/applicationSchemas.ts": "d85771a4607cf2da",
|
|
132
|
+
"src/schemas/baseSchemas.ts": "93d9bd1c0adfcaa0",
|
|
133
|
+
"src/schemas/buildkiteSchemas.ts": "a28ec3b40f7851ec",
|
|
134
|
+
"src/schemas/cdnSchemas.ts": "a982034c7903a31a",
|
|
135
|
+
"src/schemas/computeSchemas.ts": "516df862131921fe",
|
|
136
|
+
"src/schemas/constants.ts": "1df67cde0522a514",
|
|
137
|
+
"src/schemas/databaseSchemas.ts": "3c05f176e1aadb46",
|
|
138
|
+
"src/schemas/devRolePolicies.ts": "6ca70fb20f5fbebc",
|
|
139
|
+
"src/schemas/index.ts": "a1500a885048074b",
|
|
140
|
+
"src/schemas/instanceTypeArchitecture.ts": "6bf38031a54a4620",
|
|
141
|
+
"src/schemas/messagingSchemas.ts": "2c1975fac903fd1b",
|
|
142
|
+
"src/schemas/networkSchemas.ts": "c3a5f30e440dd2f8",
|
|
143
|
+
"src/schemas/organisationSchemas.ts": "50d793aa7ff7f749",
|
|
144
|
+
"src/schemas/patternSchemas.ts": "2ad2ed522c244ac1",
|
|
145
|
+
"src/schemas/resourceSchemas.ts": "cd050813242ea213",
|
|
146
|
+
"src/schemas/securityBoundary.ts": "54d216807103bab8",
|
|
147
|
+
"src/schemas/sharedTypes.ts": "45210e600bea393e",
|
|
148
|
+
"src/schemas/storageSchemas.ts": "2d4b9d86e3397387",
|
|
149
|
+
"src/types/Result.ts": "6a078a91fc3072e3",
|
|
150
|
+
"src/util/errorUtils.ts": "c021c57804424a5d",
|
|
151
|
+
"src/validation/patterns.ts": "f9629eafdad7ac3e",
|
|
152
|
+
"src/validation/validationMessages.ts": "c727ade4690274f4",
|
|
153
|
+
"src/validation/validationPatterns.ts": "865f3d688975b7c8",
|
|
154
|
+
"src/version.ts": "cf9b5c4290050e6f"
|
|
155
|
+
}
|
|
156
|
+
}
|
package/dist/.minified
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
146 files minified at 2026-07-
|
|
1
|
+
146 files minified at 2026-07-31T11:05:13.235Z
|
|
@@ -24,7 +24,7 @@ ${l} certificates: [
|
|
|
24
24
|
],
|
|
25
25
|
records: ${d},
|
|
26
26
|
});
|
|
27
|
-
`}r(k,"generateDefaultInfrastructureTs");function g(t){return JSON.stringify({name:`domain-${t}`,version:u,scripts:{},devDependencies:{"@types/node":"20.4.9","ts-node":"^10.9.1",typescript:"~5.1.6"},dependencies:{"@fjall/components-infrastructure":`^${u}`,"aws-cdk-lib":"^2.
|
|
27
|
+
`}r(k,"generateDefaultInfrastructureTs");function g(t){return JSON.stringify({name:`domain-${t}`,version:u,scripts:{},devDependencies:{"@types/node":"20.4.9","ts-node":"^10.9.1",typescript:"~5.1.6"},dependencies:{"@fjall/components-infrastructure":`^${u}`,"aws-cdk-lib":"^2.262.2",constructs:"^10.7.2"}},null,2)+`
|
|
28
28
|
`}r(g,"generateDomainPackageJson");const y=`node_modules/
|
|
29
29
|
cdk.out/
|
|
30
30
|
*.d.ts
|
|
@@ -161,9 +161,10 @@ export interface OidcTrustParams {
|
|
|
161
161
|
/**
|
|
162
162
|
* §4.4a machine-trust rendering mode for the FjallDeploy role.
|
|
163
163
|
*
|
|
164
|
-
* - `"expanded"` (default):
|
|
165
|
-
* of the pre-§4.4a trust,
|
|
166
|
-
* still issue the generic
|
|
164
|
+
* - `"expanded"` (default): the machine accept list renders `[generic, acct]`
|
|
165
|
+
* wherever the account id is known — a SUPERSET of the pre-§4.4a trust,
|
|
166
|
+
* safe for every org because off-allowlist mints still issue the generic
|
|
167
|
+
* subject (governance tiers since §4.4a; every tier since §4.4b Step 1).
|
|
167
168
|
* - `"account-scoped"` (Step-3 contract): the machine statement accepts ONLY
|
|
168
169
|
* the account-scoped literal. Opt-in per deployment — NEVER the shared
|
|
169
170
|
* default: issuance for most orgs still mints the generic subject, so a
|
|
@@ -180,17 +181,18 @@ export type MachineTrustMode = "expanded" | "account-scoped";
|
|
|
180
181
|
*/
|
|
181
182
|
export interface NarrowedDeployTrustParams extends OidcTrustParams {
|
|
182
183
|
/**
|
|
183
|
-
* Account TIER (never the workload STAGE).
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
* generic literal only (unchanged).
|
|
184
|
+
* Account TIER (never the workload STAGE). Gates ONLY the
|
|
185
|
+
* `"account-scoped"` contract mode, which stays restricted to governance
|
|
186
|
+
* tiers (`organisation`/`platform`) until §4.4b's probe gate lands. The
|
|
187
|
+
* expand itself keys on `accountId` alone (§4.4b Step 1).
|
|
188
188
|
*/
|
|
189
189
|
accountTier?: AccountTier;
|
|
190
190
|
/**
|
|
191
191
|
* 12-digit AWS account id of THIS account — the `{awsAccountId}` in the
|
|
192
|
-
* account-scoped machine subject ({@link deployAccountSubject}).
|
|
193
|
-
*
|
|
192
|
+
* account-scoped machine subject ({@link deployAccountSubject}). When
|
|
193
|
+
* present, the machine accept list gains the account-scoped literal
|
|
194
|
+
* alongside the generic sentinel (expand); absent ⇒ generic-only
|
|
195
|
+
* (fail-safe — never widen to a wildcard we cannot bind to an account).
|
|
194
196
|
*/
|
|
195
197
|
accountId?: string;
|
|
196
198
|
/**
|
|
@@ -216,16 +218,15 @@ export interface NarrowedDeployTrustParams extends OidcTrustParams {
|
|
|
216
218
|
* scoped dev-tier roles AccessDeny, so it runs under the admin role like
|
|
217
219
|
* `org-setup` (design "Deploy-role boundary" VERDICT-2).
|
|
218
220
|
*
|
|
219
|
-
* §4.4a
|
|
220
|
-
* (`organisation`/`platform`) AND `accountId` is present, the machine-subject
|
|
221
|
+
* §4.4a/§4.4b expand: when `accountId` is present the machine-subject
|
|
221
222
|
* statement additionally accepts the account-scoped literal
|
|
222
223
|
* `org:{orgId}:acct:{accountId}` ({@link deployAccountSubject}) — a SUPERSET of
|
|
223
224
|
* the prior trust (the generic `org:{orgId}:*` is retained), so this step never
|
|
224
225
|
* narrows on its own. Issuance flips to the account-scoped subject only after
|
|
225
|
-
* this expand is LIVE (design §4.2 invariant)
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
* to a bare wildcard we cannot bind to an account).
|
|
226
|
+
* this expand is LIVE (design §4.2 invariant): governance issuance flipped
|
|
227
|
+
* with §4.4a; app-tier issuance stays generic until the §4.4b flip. An absent
|
|
228
|
+
* `accountId` renders the generic-only machine subject unchanged (fail-safe —
|
|
229
|
+
* never widen to a bare wildcard we cannot bind to an account).
|
|
229
230
|
*
|
|
230
231
|
* §4.4a Step-3 contract: `machineTrustMode: "account-scoped"` renders the
|
|
231
232
|
* account-scoped literal ONLY (no generic member). Opt-in per deployment —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var A=Object.defineProperty;var t=(e,a)=>A(e,"name",{value:a,configurable:!0});import{isGovernanceTier as u}from"@fjall/util";const y="fjall.io",c="sts.amazonaws.com",P="0000000000000000000000000000000000000000";function F(e){return`FjallDevDeploy${e}`}t(F,"devDeployRoleName");function T(e){return`FjallDevProvisioner${e}`}t(T,"devProvisionerRoleName");function $(e){return`FjallDevSyncWriter${e}`}t($,"devSyncWriterRoleName");const C="FjallDevDeployPolicy",k="FjallDevProvisionerPolicy",L="FjallDevSyncWriterPolicy",D="FjallDevBoundary";function m(e){return`arn:aws:iam::${e}:policy/${D}`}t(m,"devBoundaryPolicyArn");function R(e){return`org:${e}:dev-provisioner`}t(R,"devProvisionerSubject");function j(e){return`org:${e}:dev-sync`}t(j,"devSyncSubject");function d(e,a){return`org:${e}:acct:${a}`}t(d,"deployAccountSubject");function f(e){return`org:${e}:*`}t(f,"genericMachineSubject");const w=["discovery","connection","org-setup","dev-substrate-setup"];function E(e,a){return`org:${e}:${a}`}t(E,"serviceSubject");function h(e){const{fjallOrgId:a,providerArn:i,issuerDomain:r,accountTier:o,accountId:l}=e,v=e.machineTrustMode??"expanded",n={[`${r}:aud`]:c};let s;if(v==="account-scoped"){if(o===void 0||!u(o)||l===void 0)throw new Error(`machineTrustMode "account-scoped" requires a governance accountTier and an accountId (got tier: ${String(o)}, accountId ${l===void 0?"absent":"present"}) \u2014 refusing to fall back to the generic machine subject: a silent fallback would re-widen the trust the \xA74.4a Step-3 contract removes`);s=[d(a,l)]}else o!==void 0&&u(o)&&l!==void 0?s=[f(a),d(a,l)]:s=f(a);return[{Sid:"FjallMachineSubject",Effect:"Allow",Principal:{Federated:i},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:{...n,[`${r}:sub`]:s}}},{Sid:"FjallUserSubjects",Effect:"Allow",Principal:{Federated:i},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:n,StringLike:{[`${r}:sub`]:`org:${a}:user:*`}}},{Sid:"FjallServiceSubjects",Effect:"Allow",Principal:{Federated:i},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:{...n,[`${r}:sub`]:w.map(S=>E(a,S))}}}]}t(h,"buildNarrowedDeployTrustStatements");function x(e){const{fjallOrgId:a,providerArn:i,issuerDomain:r,accountId:o}=e;return[{Sid:"FjallDevSubjectsThisAccount",Effect:"Allow",Principal:{Federated:i},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:{[`${r}:aud`]:c},StringLike:{[`${r}:sub`]:`org:${a}:dev:${o}:*`}}}]}t(x,"buildDevDeployTrustStatements");function g(e){const{providerArn:a,issuerDomain:i,sid:r,subject:o}=e;return[{Sid:r,Effect:"Allow",Principal:{Federated:a},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:{[`${i}:aud`]:c,[`${i}:sub`]:o}}}]}t(g,"buildServiceSubjectTrustStatements");function G(e){return g({...e,sid:"FjallDevProvisionerSubject",subject:R(e.fjallOrgId)})}t(G,"buildDevProvisionerTrustStatements");function O(e){return g({...e,sid:"FjallDevSyncSubject",subject:j(e.fjallOrgId)})}t(O,"buildDevSyncWriterTrustStatements");function q({accountId:e}){return[{Sid:"FjallDevEcsTaggedMutations",Effect:"Allow",Action:["ecs:UpdateService","ecs:DeleteService","ecs:RunTask","ecs:StopTask"],Resource:`arn:aws:ecs:*:${e}:*`,Condition:{StringEquals:{"aws:ResourceTag/fjall:dev":"true"}}},{Sid:"FjallDevEcsTaggedCreates",Effect:"Allow",Action:["ecs:RegisterTaskDefinition","ecs:CreateService"],Resource:"*",Condition:{StringEquals:{"aws:RequestTag/fjall:dev":"true"}}},{Sid:"FjallDevEcsTagOnCreate",Effect:"Allow",Action:["ecs:TagResource"],Resource:`arn:aws:ecs:*:${e}:*`,Condition:{StringEquals:{"ecs:CreateAction":["RegisterTaskDefinition","CreateService","RunTask"]}}},{Sid:"FjallDevEcsReads",Effect:"Allow",Action:["ecs:Describe*","ecs:List*"],Resource:"*"},{Sid:"FjallDevEcsDeregisterTaskDefinition",Effect:"Allow",Action:["ecs:DeregisterTaskDefinition"],Resource:`arn:aws:ecs:*:${e}:task-definition/fjall-dev-*`},{Sid:"FjallDevElbTaggedMutations",Effect:"Allow",Action:["elasticloadbalancing:ModifyRule","elasticloadbalancing:DeleteRule","elasticloadbalancing:ModifyTargetGroup","elasticloadbalancing:ModifyTargetGroupAttributes","elasticloadbalancing:DeleteTargetGroup","elasticloadbalancing:RegisterTargets","elasticloadbalancing:DeregisterTargets"],Resource:`arn:aws:elasticloadbalancing:*:${e}:*`,Condition:{StringEquals:{"aws:ResourceTag/fjall:dev":"true"}}},{Sid:"FjallDevElbTaggedCreates",Effect:"Allow",Action:["elasticloadbalancing:CreateTargetGroup","elasticloadbalancing:CreateRule"],Resource:`arn:aws:elasticloadbalancing:*:${e}:*`,Condition:{StringEquals:{"aws:RequestTag/fjall:dev":"true"}}},{Sid:"FjallDevElbTagOnCreate",Effect:"Allow",Action:["elasticloadbalancing:AddTags"],Resource:`arn:aws:elasticloadbalancing:*:${e}:*`,Condition:{StringEquals:{"elasticloadbalancing:CreateAction":["CreateTargetGroup","CreateRule"]}}},{Sid:"FjallDevElbReads",Effect:"Allow",Action:["elasticloadbalancing:Describe*"],Resource:"*"},{Sid:"FjallDevSsmDevTree",Effect:"Allow",Action:["ssm:GetParameter*","ssm:PutParameter","ssm:AddTagsToResource"],Resource:`arn:aws:ssm:*:${e}:parameter/fjall/dev/*`},{Sid:"FjallDevLogsMutations",Effect:"Allow",Action:["logs:PutRetentionPolicy","logs:DeleteLogGroup"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`},{Sid:"FjallDevLogsTaggedCreate",Effect:"Allow",Action:["logs:CreateLogGroup","logs:TagResource"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`,Condition:{StringEquals:{"aws:RequestTag/fjall:dev":"true"}}},{Sid:"FjallDevLogsRead",Effect:"Allow",Action:["logs:GetLogEvents","logs:DescribeLogStreams","logs:FilterLogEvents"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`},{Sid:"FjallDevLogsDescribeGroups",Effect:"Allow",Action:["logs:DescribeLogGroups"],Resource:"*"},{Sid:"FjallDevKmsViaDevAlias",Effect:"Allow",Action:["kms:Encrypt","kms:Decrypt","kms:GenerateDataKey"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{"ForAnyValue:StringLike":{"kms:ResourceAliases":"alias/fjall-dev-*"}}},{Sid:"FjallDevKmsSsmSecureString",Effect:"Allow",Action:["kms:Encrypt","kms:Decrypt","kms:GenerateDataKey"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{StringLike:{"kms:ViaService":"ssm.*.amazonaws.com"}}},{Sid:"FjallDevEcrAuthToken",Effect:"Allow",Action:["ecr:GetAuthorizationToken"],Resource:"*"},{Sid:"FjallDevEcrPushPull",Effect:"Allow",Action:["ecr:PutImage","ecr:InitiateLayerUpload","ecr:UploadLayerPart","ecr:CompleteLayerUpload","ecr:BatchCheckLayerAvailability","ecr:BatchGetImage","ecr:GetDownloadUrlForLayer","ecr:DescribeImages"],Resource:`arn:aws:ecr:*:${e}:repository/*`},{Sid:"FjallDevPassDevPathRoles",Effect:"Allow",Action:["iam:PassRole"],Resource:`arn:aws:iam::${e}:role/fjall/dev/*`}]}t(q,"buildDevDeployPolicyStatements");function M({accountId:e}){return[{Sid:"FjallDevProvisionerBoundedRoleWrites",Effect:"Allow",Action:["iam:CreateRole","iam:PutRolePolicy","iam:AttachRolePolicy"],Resource:`arn:aws:iam::${e}:role/fjall/dev/*`,Condition:{StringEquals:{"iam:PermissionsBoundary":m(e)}}},{Sid:"FjallDevProvisionerPathRoleOps",Effect:"Allow",Action:["iam:DeleteRole","iam:DeleteRolePolicy","iam:DetachRolePolicy","iam:ListRolePolicies","iam:TagRole"],Resource:`arn:aws:iam::${e}:role/fjall/dev/*`},{Sid:"FjallDevProvisionerListRoles",Effect:"Allow",Action:["iam:ListRoles"],Resource:"*"},{Sid:"FjallDevProvisionerDevMasterSecrets",Effect:"Allow",Action:["secretsmanager:GetSecretValue"],Resource:`arn:aws:secretsmanager:*:${e}:secret:fjall-dev-*`},{Sid:"FjallDevProvisionerKmsDecryptViaSecretsManager",Effect:"Allow",Action:["kms:Decrypt"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{StringLike:{"kms:ViaService":"secretsmanager.*.amazonaws.com"}}},{Sid:"FjallDevProvisionerDataApi",Effect:"Allow",Action:["rds-data:ExecuteStatement","rds-data:BatchExecuteStatement","rds-data:BeginTransaction","rds-data:CommitTransaction","rds-data:RollbackTransaction"],Resource:`arn:aws:rds:*:${e}:cluster:fjall-dev-*`},{Sid:"FjallDevProvisionerMetrics",Effect:"Allow",Action:["cloudwatch:GetMetricData"],Resource:"*"},{Sid:"FjallDevProvisionerOrphanDiscovery",Effect:"Allow",Action:["tag:GetResources"],Resource:"*"},{Sid:"FjallDevProvisionerSsmTeardown",Effect:"Allow",Action:["ssm:DeleteParameter*"],Resource:`arn:aws:ssm:*:${e}:parameter/fjall/dev/*`},{Sid:"FjallDevProvisionerLogsTeardown",Effect:"Allow",Action:["logs:DeleteLogGroup"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`},{Sid:"FjallDevProvisionerTaggedTeardown",Effect:"Allow",Action:["ecs:UpdateService","ecs:StopTask","ecs:DeleteService","elasticloadbalancing:DeleteRule","elasticloadbalancing:DeleteTargetGroup","elasticloadbalancing:DeregisterTargets"],Resource:[`arn:aws:ecs:*:${e}:*`,`arn:aws:elasticloadbalancing:*:${e}:*`],Condition:{StringEquals:{"aws:ResourceTag/fjall:dev":"true"}}},{Sid:"FjallDevProvisionerTeardownReads",Effect:"Allow",Action:["ecs:Describe*","elasticloadbalancing:Describe*"],Resource:"*"},{Sid:"FjallDevProvisionerImageJanitor",Effect:"Allow",Action:["ecr:ListImages","ecr:DescribeImages","ecr:BatchDeleteImage"],Resource:`arn:aws:ecr:*:${e}:repository/*`},{Sid:"FjallDevProvisionerSsmReadAll",Effect:"Allow",Action:["ssm:GetParameter*"],Resource:`arn:aws:ssm:*:${e}:parameter/*`},{Sid:"FjallDevProvisionerKmsDecryptViaSsm",Effect:"Allow",Action:["kms:Decrypt"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{StringLike:{"kms:ViaService":"ssm.*.amazonaws.com"}}}]}t(M,"buildDevProvisionerPolicyStatements");function _({accountId:e}){return[{Sid:"FjallDevSyncPrefixReadWrite",Effect:"Allow",Action:["s3:GetObject","s3:PutObject"],Resource:`arn:aws:s3:::fjall-dev-sync-${e}-*/*`,Condition:{StringEquals:{"aws:ResourceAccount":e}}}]}t(_,"buildDevSyncWriterPolicyStatements");function W({accountId:e}){return[{Sid:"FjallDevBoundarySsmDevRead",Effect:"Allow",Action:["ssm:GetParameter*"],Resource:`arn:aws:ssm:*:${e}:parameter/fjall/dev/*`},{Sid:"FjallDevBoundaryKmsDecryptDevAlias",Effect:"Allow",Action:["kms:Decrypt"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{"ForAnyValue:StringLike":{"kms:ResourceAliases":"alias/fjall-dev-*"}}},{Sid:"FjallDevBoundarySyncPrefixReadWrite",Effect:"Allow",Action:["s3:GetObject","s3:PutObject"],Resource:`arn:aws:s3:::fjall-dev-sync-${e}-*/*`,Condition:{StringEquals:{"aws:ResourceAccount":e}}},{Sid:"FjallDevBoundarySlotLogs",Effect:"Allow",Action:["logs:CreateLogStream","logs:PutLogEvents"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`},{Sid:"FjallDevBoundarySyncQueue",Effect:"Allow",Action:["sqs:ReceiveMessage","sqs:DeleteMessage","sqs:GetQueueUrl"],Resource:`arn:aws:sqs:*:${e}:fjall-dev-sync-${e}-*`}]}t(W,"buildDevBoundaryStatements");export{w as DEPLOY_SERVICE_SUBJECT_NAMES,D as DEV_BOUNDARY_POLICY_NAME,C as DEV_DEPLOY_POLICY_NAME,k as DEV_PROVISIONER_POLICY_NAME,L as DEV_SYNC_WRITER_POLICY_NAME,c as FJALL_OIDC_AUDIENCE,y as FJALL_OIDC_ISSUER_DOMAIN,P as FJALL_OIDC_PLACEHOLDER_THUMBPRINT,W as buildDevBoundaryStatements,q as buildDevDeployPolicyStatements,x as buildDevDeployTrustStatements,M as buildDevProvisionerPolicyStatements,G as buildDevProvisionerTrustStatements,_ as buildDevSyncWriterPolicyStatements,O as buildDevSyncWriterTrustStatements,h as buildNarrowedDeployTrustStatements,d as deployAccountSubject,m as devBoundaryPolicyArn,F as devDeployRoleName,T as devProvisionerRoleName,R as devProvisionerSubject,j as devSyncSubject,$ as devSyncWriterRoleName,f as genericMachineSubject,E as serviceSubject};
|
|
1
|
+
var S=Object.defineProperty;var t=(e,a)=>S(e,"name",{value:a,configurable:!0});import{isGovernanceTier as A}from"@fjall/util";const y="fjall.io",c="sts.amazonaws.com",P="0000000000000000000000000000000000000000";function F(e){return`FjallDevDeploy${e}`}t(F,"devDeployRoleName");function T(e){return`FjallDevProvisioner${e}`}t(T,"devProvisionerRoleName");function $(e){return`FjallDevSyncWriter${e}`}t($,"devSyncWriterRoleName");const C="FjallDevDeployPolicy",k="FjallDevProvisionerPolicy",L="FjallDevSyncWriterPolicy",D="FjallDevBoundary";function m(e){return`arn:aws:iam::${e}:policy/${D}`}t(m,"devBoundaryPolicyArn");function R(e){return`org:${e}:dev-provisioner`}t(R,"devProvisionerSubject");function j(e){return`org:${e}:dev-sync`}t(j,"devSyncSubject");function u(e,a){return`org:${e}:acct:${a}`}t(u,"deployAccountSubject");function d(e){return`org:${e}:*`}t(d,"genericMachineSubject");const w=["discovery","connection","org-setup","dev-substrate-setup"];function E(e,a){return`org:${e}:${a}`}t(E,"serviceSubject");function h(e){const{fjallOrgId:a,providerArn:o,issuerDomain:r,accountTier:i,accountId:l}=e,g=e.machineTrustMode??"expanded",n={[`${r}:aud`]:c};let s;if(g==="account-scoped"){if(i===void 0||!A(i)||l===void 0)throw new Error(`machineTrustMode "account-scoped" requires a governance accountTier and an accountId (got tier: ${String(i)}, accountId ${l===void 0?"absent":"present"}) \u2014 refusing to fall back to the generic machine subject: a silent fallback would re-widen the trust the \xA74.4a Step-3 contract removes`);s=[u(a,l)]}else l!==void 0?s=[d(a),u(a,l)]:s=d(a);return[{Sid:"FjallMachineSubject",Effect:"Allow",Principal:{Federated:o},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:{...n,[`${r}:sub`]:s}}},{Sid:"FjallUserSubjects",Effect:"Allow",Principal:{Federated:o},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:n,StringLike:{[`${r}:sub`]:`org:${a}:user:*`}}},{Sid:"FjallServiceSubjects",Effect:"Allow",Principal:{Federated:o},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:{...n,[`${r}:sub`]:w.map(v=>E(a,v))}}}]}t(h,"buildNarrowedDeployTrustStatements");function x(e){const{fjallOrgId:a,providerArn:o,issuerDomain:r,accountId:i}=e;return[{Sid:"FjallDevSubjectsThisAccount",Effect:"Allow",Principal:{Federated:o},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:{[`${r}:aud`]:c},StringLike:{[`${r}:sub`]:`org:${a}:dev:${i}:*`}}}]}t(x,"buildDevDeployTrustStatements");function f(e){const{providerArn:a,issuerDomain:o,sid:r,subject:i}=e;return[{Sid:r,Effect:"Allow",Principal:{Federated:a},Action:"sts:AssumeRoleWithWebIdentity",Condition:{StringEquals:{[`${o}:aud`]:c,[`${o}:sub`]:i}}}]}t(f,"buildServiceSubjectTrustStatements");function G(e){return f({...e,sid:"FjallDevProvisionerSubject",subject:R(e.fjallOrgId)})}t(G,"buildDevProvisionerTrustStatements");function O(e){return f({...e,sid:"FjallDevSyncSubject",subject:j(e.fjallOrgId)})}t(O,"buildDevSyncWriterTrustStatements");function q({accountId:e}){return[{Sid:"FjallDevEcsTaggedMutations",Effect:"Allow",Action:["ecs:UpdateService","ecs:DeleteService","ecs:RunTask","ecs:StopTask"],Resource:`arn:aws:ecs:*:${e}:*`,Condition:{StringEquals:{"aws:ResourceTag/fjall:dev":"true"}}},{Sid:"FjallDevEcsTaggedCreates",Effect:"Allow",Action:["ecs:RegisterTaskDefinition","ecs:CreateService"],Resource:"*",Condition:{StringEquals:{"aws:RequestTag/fjall:dev":"true"}}},{Sid:"FjallDevEcsTagOnCreate",Effect:"Allow",Action:["ecs:TagResource"],Resource:`arn:aws:ecs:*:${e}:*`,Condition:{StringEquals:{"ecs:CreateAction":["RegisterTaskDefinition","CreateService","RunTask"]}}},{Sid:"FjallDevEcsReads",Effect:"Allow",Action:["ecs:Describe*","ecs:List*"],Resource:"*"},{Sid:"FjallDevEcsDeregisterTaskDefinition",Effect:"Allow",Action:["ecs:DeregisterTaskDefinition"],Resource:`arn:aws:ecs:*:${e}:task-definition/fjall-dev-*`},{Sid:"FjallDevElbTaggedMutations",Effect:"Allow",Action:["elasticloadbalancing:ModifyRule","elasticloadbalancing:DeleteRule","elasticloadbalancing:ModifyTargetGroup","elasticloadbalancing:ModifyTargetGroupAttributes","elasticloadbalancing:DeleteTargetGroup","elasticloadbalancing:RegisterTargets","elasticloadbalancing:DeregisterTargets"],Resource:`arn:aws:elasticloadbalancing:*:${e}:*`,Condition:{StringEquals:{"aws:ResourceTag/fjall:dev":"true"}}},{Sid:"FjallDevElbTaggedCreates",Effect:"Allow",Action:["elasticloadbalancing:CreateTargetGroup","elasticloadbalancing:CreateRule"],Resource:`arn:aws:elasticloadbalancing:*:${e}:*`,Condition:{StringEquals:{"aws:RequestTag/fjall:dev":"true"}}},{Sid:"FjallDevElbTagOnCreate",Effect:"Allow",Action:["elasticloadbalancing:AddTags"],Resource:`arn:aws:elasticloadbalancing:*:${e}:*`,Condition:{StringEquals:{"elasticloadbalancing:CreateAction":["CreateTargetGroup","CreateRule"]}}},{Sid:"FjallDevElbReads",Effect:"Allow",Action:["elasticloadbalancing:Describe*"],Resource:"*"},{Sid:"FjallDevSsmDevTree",Effect:"Allow",Action:["ssm:GetParameter*","ssm:PutParameter","ssm:AddTagsToResource"],Resource:`arn:aws:ssm:*:${e}:parameter/fjall/dev/*`},{Sid:"FjallDevLogsMutations",Effect:"Allow",Action:["logs:PutRetentionPolicy","logs:DeleteLogGroup"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`},{Sid:"FjallDevLogsTaggedCreate",Effect:"Allow",Action:["logs:CreateLogGroup","logs:TagResource"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`,Condition:{StringEquals:{"aws:RequestTag/fjall:dev":"true"}}},{Sid:"FjallDevLogsRead",Effect:"Allow",Action:["logs:GetLogEvents","logs:DescribeLogStreams","logs:FilterLogEvents"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`},{Sid:"FjallDevLogsDescribeGroups",Effect:"Allow",Action:["logs:DescribeLogGroups"],Resource:"*"},{Sid:"FjallDevKmsViaDevAlias",Effect:"Allow",Action:["kms:Encrypt","kms:Decrypt","kms:GenerateDataKey"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{"ForAnyValue:StringLike":{"kms:ResourceAliases":"alias/fjall-dev-*"}}},{Sid:"FjallDevKmsSsmSecureString",Effect:"Allow",Action:["kms:Encrypt","kms:Decrypt","kms:GenerateDataKey"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{StringLike:{"kms:ViaService":"ssm.*.amazonaws.com"}}},{Sid:"FjallDevEcrAuthToken",Effect:"Allow",Action:["ecr:GetAuthorizationToken"],Resource:"*"},{Sid:"FjallDevEcrPushPull",Effect:"Allow",Action:["ecr:PutImage","ecr:InitiateLayerUpload","ecr:UploadLayerPart","ecr:CompleteLayerUpload","ecr:BatchCheckLayerAvailability","ecr:BatchGetImage","ecr:GetDownloadUrlForLayer","ecr:DescribeImages"],Resource:`arn:aws:ecr:*:${e}:repository/*`},{Sid:"FjallDevPassDevPathRoles",Effect:"Allow",Action:["iam:PassRole"],Resource:`arn:aws:iam::${e}:role/fjall/dev/*`}]}t(q,"buildDevDeployPolicyStatements");function M({accountId:e}){return[{Sid:"FjallDevProvisionerBoundedRoleWrites",Effect:"Allow",Action:["iam:CreateRole","iam:PutRolePolicy","iam:AttachRolePolicy"],Resource:`arn:aws:iam::${e}:role/fjall/dev/*`,Condition:{StringEquals:{"iam:PermissionsBoundary":m(e)}}},{Sid:"FjallDevProvisionerPathRoleOps",Effect:"Allow",Action:["iam:DeleteRole","iam:DeleteRolePolicy","iam:DetachRolePolicy","iam:ListRolePolicies","iam:TagRole"],Resource:`arn:aws:iam::${e}:role/fjall/dev/*`},{Sid:"FjallDevProvisionerListRoles",Effect:"Allow",Action:["iam:ListRoles"],Resource:"*"},{Sid:"FjallDevProvisionerDevMasterSecrets",Effect:"Allow",Action:["secretsmanager:GetSecretValue"],Resource:`arn:aws:secretsmanager:*:${e}:secret:fjall-dev-*`},{Sid:"FjallDevProvisionerKmsDecryptViaSecretsManager",Effect:"Allow",Action:["kms:Decrypt"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{StringLike:{"kms:ViaService":"secretsmanager.*.amazonaws.com"}}},{Sid:"FjallDevProvisionerDataApi",Effect:"Allow",Action:["rds-data:ExecuteStatement","rds-data:BatchExecuteStatement","rds-data:BeginTransaction","rds-data:CommitTransaction","rds-data:RollbackTransaction"],Resource:`arn:aws:rds:*:${e}:cluster:fjall-dev-*`},{Sid:"FjallDevProvisionerMetrics",Effect:"Allow",Action:["cloudwatch:GetMetricData"],Resource:"*"},{Sid:"FjallDevProvisionerOrphanDiscovery",Effect:"Allow",Action:["tag:GetResources"],Resource:"*"},{Sid:"FjallDevProvisionerSsmTeardown",Effect:"Allow",Action:["ssm:DeleteParameter*"],Resource:`arn:aws:ssm:*:${e}:parameter/fjall/dev/*`},{Sid:"FjallDevProvisionerLogsTeardown",Effect:"Allow",Action:["logs:DeleteLogGroup"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`},{Sid:"FjallDevProvisionerTaggedTeardown",Effect:"Allow",Action:["ecs:UpdateService","ecs:StopTask","ecs:DeleteService","elasticloadbalancing:DeleteRule","elasticloadbalancing:DeleteTargetGroup","elasticloadbalancing:DeregisterTargets"],Resource:[`arn:aws:ecs:*:${e}:*`,`arn:aws:elasticloadbalancing:*:${e}:*`],Condition:{StringEquals:{"aws:ResourceTag/fjall:dev":"true"}}},{Sid:"FjallDevProvisionerTeardownReads",Effect:"Allow",Action:["ecs:Describe*","elasticloadbalancing:Describe*"],Resource:"*"},{Sid:"FjallDevProvisionerImageJanitor",Effect:"Allow",Action:["ecr:ListImages","ecr:DescribeImages","ecr:BatchDeleteImage"],Resource:`arn:aws:ecr:*:${e}:repository/*`},{Sid:"FjallDevProvisionerSsmReadAll",Effect:"Allow",Action:["ssm:GetParameter*"],Resource:`arn:aws:ssm:*:${e}:parameter/*`},{Sid:"FjallDevProvisionerKmsDecryptViaSsm",Effect:"Allow",Action:["kms:Decrypt"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{StringLike:{"kms:ViaService":"ssm.*.amazonaws.com"}}}]}t(M,"buildDevProvisionerPolicyStatements");function _({accountId:e}){return[{Sid:"FjallDevSyncPrefixReadWrite",Effect:"Allow",Action:["s3:GetObject","s3:PutObject"],Resource:`arn:aws:s3:::fjall-dev-sync-${e}-*/*`,Condition:{StringEquals:{"aws:ResourceAccount":e}}}]}t(_,"buildDevSyncWriterPolicyStatements");function W({accountId:e}){return[{Sid:"FjallDevBoundarySsmDevRead",Effect:"Allow",Action:["ssm:GetParameter*"],Resource:`arn:aws:ssm:*:${e}:parameter/fjall/dev/*`},{Sid:"FjallDevBoundaryKmsDecryptDevAlias",Effect:"Allow",Action:["kms:Decrypt"],Resource:`arn:aws:kms:*:${e}:key/*`,Condition:{"ForAnyValue:StringLike":{"kms:ResourceAliases":"alias/fjall-dev-*"}}},{Sid:"FjallDevBoundarySyncPrefixReadWrite",Effect:"Allow",Action:["s3:GetObject","s3:PutObject"],Resource:`arn:aws:s3:::fjall-dev-sync-${e}-*/*`,Condition:{StringEquals:{"aws:ResourceAccount":e}}},{Sid:"FjallDevBoundarySlotLogs",Effect:"Allow",Action:["logs:CreateLogStream","logs:PutLogEvents"],Resource:`arn:aws:logs:*:${e}:log-group:/fjall/dev/*`},{Sid:"FjallDevBoundarySyncQueue",Effect:"Allow",Action:["sqs:ReceiveMessage","sqs:DeleteMessage","sqs:GetQueueUrl"],Resource:`arn:aws:sqs:*:${e}:fjall-dev-sync-${e}-*`}]}t(W,"buildDevBoundaryStatements");export{w as DEPLOY_SERVICE_SUBJECT_NAMES,D as DEV_BOUNDARY_POLICY_NAME,C as DEV_DEPLOY_POLICY_NAME,k as DEV_PROVISIONER_POLICY_NAME,L as DEV_SYNC_WRITER_POLICY_NAME,c as FJALL_OIDC_AUDIENCE,y as FJALL_OIDC_ISSUER_DOMAIN,P as FJALL_OIDC_PLACEHOLDER_THUMBPRINT,W as buildDevBoundaryStatements,q as buildDevDeployPolicyStatements,x as buildDevDeployTrustStatements,M as buildDevProvisionerPolicyStatements,G as buildDevProvisionerTrustStatements,_ as buildDevSyncWriterPolicyStatements,O as buildDevSyncWriterTrustStatements,h as buildNarrowedDeployTrustStatements,u as deployAccountSubject,m as devBoundaryPolicyArn,F as devDeployRoleName,T as devProvisionerRoleName,R as devProvisionerSubject,j as devSyncSubject,$ as devSyncWriterRoleName,d as genericMachineSubject,E as serviceSubject};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var n=Object.defineProperty;var
|
|
1
|
+
var n=Object.defineProperty;var g=(t,e)=>n(t,"name",{value:e,configurable:!0});const i=new Set(["t4g","c6g","c6gd","c6gn","c7g","c7gd","c7gn","r6g","r6gd","r7g","r7gd","r8g","r8gd","c8g","c8gd","c8gn","m6g","m6gd","m7g","m7gd","m8g","m8gd","x8g","i8g","a1","x2gd","im4gn","is4gen","i4g","hpc7g"]);function r(t){const e=t.split(".")[0]??"";return i.has(e)?"ARM":"STANDARD"}g(r,"getArchitectureForInstanceType");function a(t,e){const c=r(t);return c!==e?{valid:!1,message:`Instance type '${t}' requires ${c} architecture, but '${e}' AMI was specified. Use a ${c==="ARM"?"Graviton instance (t4g, c6g, r6g, m6g, etc.)":"Intel/AMD instance (t3, c5, r5, m5, etc.)"} instead.`}:{valid:!0}}g(a,"validateArchitectureMatch");function d(t,e){return r(t)===e}g(d,"isArchitectureCompatible");export{r as getArchitectureForInstanceType,d as isArchitectureCompatible,a as validateArchitectureMatch};
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const GENERATOR_VERSION = "
|
|
1
|
+
export declare const GENERATOR_VERSION = "5.0.0";
|
package/dist/src/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const E="
|
|
1
|
+
const E="5.0.0";export{E as GENERATOR_VERSION};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjall/generator",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Pure infrastructure generation logic for Fjall",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
33
|
"clean": "rm -rf ./dist ./sourcemaps",
|
|
34
|
-
"build": "npm run clean && tsc && node ../scripts/minify-dist.mjs dist",
|
|
34
|
+
"build": "npm run clean && tsc && node ../scripts/minify-dist.mjs dist && node ../scripts/stamp-build.mjs",
|
|
35
35
|
"prepack": "node ../scripts/check-dist-freshness.mjs",
|
|
36
36
|
"watch": "npm run build && tsc --watch --preserveWatchOutput",
|
|
37
37
|
"watch:only": "tsc --watch --preserveWatchOutput",
|
|
@@ -48,21 +48,21 @@
|
|
|
48
48
|
},
|
|
49
49
|
"license": "SEE LICENSE IN LICENSE",
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@fjall/util": "^
|
|
51
|
+
"@fjall/util": "^5.0.0",
|
|
52
52
|
"ast-types": "^0.16.1",
|
|
53
|
-
"recast": "^0.23.
|
|
53
|
+
"recast": "^0.23.12",
|
|
54
54
|
"ts-morph": "^28.0.0",
|
|
55
55
|
"typescript": "^6.0.3",
|
|
56
56
|
"zod": "^4.4.3"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@eslint/js": "^10.0.1",
|
|
60
|
-
"@types/node": "^26.
|
|
61
|
-
"@vitest/coverage-v8": "^4.1.
|
|
62
|
-
"eslint": "^10.
|
|
63
|
-
"fast-check": "^4.
|
|
64
|
-
"typescript-eslint": "^8.
|
|
65
|
-
"vitest": "^4.1.
|
|
60
|
+
"@types/node": "^26.1.2",
|
|
61
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
62
|
+
"eslint": "^10.8.0",
|
|
63
|
+
"fast-check": "^4.9.0",
|
|
64
|
+
"typescript-eslint": "^8.65.0",
|
|
65
|
+
"vitest": "^4.1.10"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "78dded6f582368076e8b5f351399219e5a954659"
|
|
68
68
|
}
|