@empire-builder-kit/nx 1.0.0-rc.30 → 1.0.0-rc.32

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.
Files changed (310) hide show
  1. package/executors.json +8 -3
  2. package/package.json +14 -7
  3. package/src/aws/child-environment.d.ts +10 -0
  4. package/src/aws/child-environment.js +77 -0
  5. package/src/aws/child-environment.js.map +1 -0
  6. package/src/aws/identity.d.ts +13 -0
  7. package/src/aws/identity.js +41 -0
  8. package/src/aws/identity.js.map +1 -0
  9. package/src/aws-authority/index.d.ts +1 -0
  10. package/src/aws-authority/index.js +5 -0
  11. package/src/aws-authority/index.js.map +1 -0
  12. package/src/aws-authority/stage-authority.d.ts +240 -0
  13. package/src/aws-authority/stage-authority.js +2968 -0
  14. package/src/aws-authority/stage-authority.js.map +1 -0
  15. package/src/cli/main.d.ts +2 -0
  16. package/src/cli/main.js +11 -0
  17. package/src/cli/main.js.map +1 -1
  18. package/src/developer-agent/generator-planning.js +4 -4
  19. package/src/developer-agent/generator-planning.js.map +1 -1
  20. package/src/developer-agent/operation-registry.js +14 -6
  21. package/src/developer-agent/operation-registry.js.map +1 -1
  22. package/src/developer-agent/workspace-inspection.js +11 -2
  23. package/src/developer-agent/workspace-inspection.js.map +1 -1
  24. package/src/executors/deployment-plan/deployment-plan.js +1 -1
  25. package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
  26. package/src/executors/foundation-preflight/foundation-preflight.d.ts +0 -1
  27. package/src/executors/foundation-preflight/foundation-preflight.js.map +1 -1
  28. package/src/executors/foundation-preflight/schema.json +0 -5
  29. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +12 -3
  30. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -32
  31. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +1 -1
  32. package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +64 -0
  33. package/src/executors/foundation-profile-preflight/production-database-safeguard.js +221 -0
  34. package/src/executors/foundation-profile-preflight/production-database-safeguard.js.map +1 -0
  35. package/src/executors/foundation-profile-preflight/schema.json +1 -6
  36. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
  37. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +44 -21
  38. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +1 -1
  39. package/src/executors/foundation-remove-preflight/schema.json +6 -1
  40. package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
  41. package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
  42. package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
  43. package/src/executors/github-bootstrap/schema.json +7 -1
  44. package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +27 -369
  45. package/src/executors/infrastructure-plan/infrastructure-plan.js +237 -5470
  46. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +1 -1
  47. package/src/executors/infrastructure-plan/schema.json +8 -64
  48. package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
  49. package/src/executors/local-deploy/federated-credential-transport.js +252 -0
  50. package/src/executors/local-deploy/federated-credential-transport.js.map +1 -0
  51. package/src/executors/local-deploy/local-approval.d.ts +4 -9
  52. package/src/executors/local-deploy/local-approval.js +3 -7
  53. package/src/executors/local-deploy/local-approval.js.map +1 -1
  54. package/src/executors/local-deploy/local-deploy.d.ts +60 -43
  55. package/src/executors/local-deploy/local-deploy.js +955 -804
  56. package/src/executors/local-deploy/local-deploy.js.map +1 -1
  57. package/src/executors/local-deploy/schema.json +3 -20
  58. package/src/executors/refresh/refresh.js +2 -2
  59. package/src/executors/refresh/refresh.js.map +1 -1
  60. package/src/executors/remove/remove.js +2 -2
  61. package/src/executors/remove/remove.js.map +1 -1
  62. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +27 -1
  63. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +907 -22
  64. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js.map +1 -1
  65. package/src/executors/router-waf-rehearsal/schema.json +17 -2
  66. package/src/executors/secret-initialize/schema.json +42 -0
  67. package/src/executors/secret-initialize/secret-initialize.d.ts +32 -0
  68. package/src/executors/secret-initialize/secret-initialize.js +243 -0
  69. package/src/executors/secret-initialize/secret-initialize.js.map +1 -0
  70. package/src/executors/secret-metadata/secret-metadata.d.ts +4 -1
  71. package/src/executors/secret-metadata/secret-metadata.js +76 -29
  72. package/src/executors/secret-metadata/secret-metadata.js.map +1 -1
  73. package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
  74. package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
  75. package/src/executors/sst-lifecycle/generated-secret-retirement.js.map +1 -0
  76. package/src/executors/sst-lifecycle/governed-native-operation.d.ts +46 -0
  77. package/src/executors/sst-lifecycle/governed-native-operation.js +153 -0
  78. package/src/executors/sst-lifecycle/governed-native-operation.js.map +1 -0
  79. package/src/executors/sst-lifecycle/run-sst-command.d.ts +27 -7
  80. package/src/executors/sst-lifecycle/run-sst-command.js +474 -89
  81. package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
  82. package/src/executors/sst-lifecycle/schema.json +0 -5
  83. package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
  84. package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
  85. package/src/executors/sst-lifecycle/secret-preflight.js.map +1 -1
  86. package/src/executors/unlock/unlock.js +2 -2
  87. package/src/executors/unlock/unlock.js.map +1 -1
  88. package/src/foundation/provision-logical-database.js +2 -0
  89. package/src/foundation/provision-logical-database.js.map +1 -1
  90. package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
  91. package/src/foundation/router-waf-rate-rehearsal.js +210 -0
  92. package/src/foundation/router-waf-rate-rehearsal.js.map +1 -0
  93. package/src/foundation/router-waf.d.ts +59 -9
  94. package/src/foundation/router-waf.js +427 -32
  95. package/src/foundation/router-waf.js.map +1 -1
  96. package/src/foundation/stages.d.ts +1 -0
  97. package/src/foundation/stages.js +11 -0
  98. package/src/foundation/stages.js.map +1 -1
  99. package/src/generators/formatting.d.ts +8 -0
  100. package/src/generators/formatting.js +118 -0
  101. package/src/generators/formatting.js.map +1 -0
  102. package/src/generators/function/function.js +37 -17
  103. package/src/generators/function/function.js.map +1 -1
  104. package/src/generators/post-generation-install.js +2 -2
  105. package/src/generators/post-generation-install.js.map +1 -1
  106. package/src/generators/preset/generator.js +28 -8
  107. package/src/generators/preset/generator.js.map +1 -1
  108. package/src/generators/preset/schema.d.ts +3 -0
  109. package/src/generators/preset/schema.json +5 -5
  110. package/src/generators/preset/workspace-files-developer-agent.js +15 -7
  111. package/src/generators/preset/workspace-files-developer-agent.js.map +1 -1
  112. package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
  113. package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
  114. package/src/generators/preset/workspace-files-ecr-inspector.js.map +1 -0
  115. package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
  116. package/src/generators/preset/workspace-files-performance-cost.js +8 -8
  117. package/src/generators/preset/workspace-files-performance-cost.js.map +1 -1
  118. package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
  119. package/src/generators/preset/workspace-files-performance-load.js +29 -24
  120. package/src/generators/preset/workspace-files-performance-load.js.map +1 -1
  121. package/src/generators/preset/workspace-files-stage-authority.d.ts +6 -0
  122. package/src/generators/preset/workspace-files-stage-authority.js +479 -0
  123. package/src/generators/preset/workspace-files-stage-authority.js.map +1 -0
  124. package/src/generators/preset/workspace-files-thin-deploy.d.ts +40 -0
  125. package/src/generators/preset/workspace-files-thin-deploy.js +1500 -0
  126. package/src/generators/preset/workspace-files-thin-deploy.js.map +1 -0
  127. package/src/generators/preset/workspace-files-thin-docs.d.ts +5 -0
  128. package/src/generators/preset/workspace-files-thin-docs.js +240 -0
  129. package/src/generators/preset/workspace-files-thin-docs.js.map +1 -0
  130. package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
  131. package/src/generators/preset/workspace-files-thin-release.js +26 -0
  132. package/src/generators/preset/workspace-files-thin-release.js.map +1 -0
  133. package/src/generators/preset/workspace-files.d.ts +2 -1
  134. package/src/generators/preset/workspace-files.js +448 -680
  135. package/src/generators/preset/workspace-files.js.map +1 -1
  136. package/src/generators/repository-policy/repository-policy.js +149 -19
  137. package/src/generators/repository-policy/repository-policy.js.map +1 -1
  138. package/src/generators/repository-policy/schema.d.ts +2 -0
  139. package/src/generators/repository-policy/schema.json +11 -1
  140. package/src/generators/repository-policy/tree-policy.d.ts +3 -0
  141. package/src/generators/repository-policy/tree-policy.js +25 -0
  142. package/src/generators/repository-policy/tree-policy.js.map +1 -0
  143. package/src/generators/slice/built-in-plan-api-files.js +1 -0
  144. package/src/generators/slice/built-in-plan-api-files.js.map +1 -1
  145. package/src/generators/slice/built-in-plan-async-work-files.js +41 -0
  146. package/src/generators/slice/built-in-plan-async-work-files.js.map +1 -1
  147. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +6 -0
  148. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +1 -1
  149. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
  150. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +1 -1
  151. package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
  152. package/src/generators/slice/built-in-plan-data-files.js +89 -30
  153. package/src/generators/slice/built-in-plan-data-files.js.map +1 -1
  154. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +19 -0
  155. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +1 -1
  156. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +21 -3
  157. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +1 -1
  158. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +20 -1
  159. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +1 -1
  160. package/src/generators/slice/built-in-plan-foundation-files.js +3 -5
  161. package/src/generators/slice/built-in-plan-foundation-files.js.map +1 -1
  162. package/src/generators/slice/built-in-plan-frontend-files.js +5 -1
  163. package/src/generators/slice/built-in-plan-frontend-files.js.map +1 -1
  164. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
  165. package/src/generators/slice/built-in-plan-infrastructure-files.js +199 -188
  166. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -1
  167. package/src/generators/slice/built-in-plan-metadata-files.js +13 -0
  168. package/src/generators/slice/built-in-plan-metadata-files.js.map +1 -1
  169. package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
  170. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +307 -0
  171. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js.map +1 -0
  172. package/src/generators/slice/built-in-plan-operations-files.js +65 -51
  173. package/src/generators/slice/built-in-plan-operations-files.js.map +1 -1
  174. package/src/generators/slice/built-in-plan-performance-files.js +97 -19
  175. package/src/generators/slice/built-in-plan-performance-files.js.map +1 -1
  176. package/src/generators/slice/built-in-plan-project-files.js +9 -68
  177. package/src/generators/slice/built-in-plan-project-files.js.map +1 -1
  178. package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
  179. package/src/generators/slice/built-in-plan-secret-runtime-files.js +87 -76
  180. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +1 -1
  181. package/src/generators/slice/built-in-plan-testing-files.js +94 -47
  182. package/src/generators/slice/built-in-plan-testing-files.js.map +1 -1
  183. package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
  184. package/src/generators/slice/built-in-plan-thin-release-files.js +129 -0
  185. package/src/generators/slice/built-in-plan-thin-release-files.js.map +1 -0
  186. package/src/generators/slice/built-in-plan-verification-files.js +6 -2
  187. package/src/generators/slice/built-in-plan-verification-files.js.map +1 -1
  188. package/src/generators/slice/built-in-plan-web-files.js +4 -2
  189. package/src/generators/slice/built-in-plan-web-files.js.map +1 -1
  190. package/src/generators/slice/built-in-plan-workload-role-files.js +26 -4
  191. package/src/generators/slice/built-in-plan-workload-role-files.js.map +1 -1
  192. package/src/generators/slice/built-in-plan.d.ts +1 -0
  193. package/src/generators/slice/built-in-plan.js +28 -11
  194. package/src/generators/slice/built-in-plan.js.map +1 -1
  195. package/src/generators/slice/slice.js +30 -32
  196. package/src/generators/slice/slice.js.map +1 -1
  197. package/src/generators/upgrade/upgrade.d.ts +1 -1
  198. package/src/generators/upgrade/upgrade.js +200 -48
  199. package/src/generators/upgrade/upgrade.js.map +1 -1
  200. package/src/generators/workload/performance-registration.d.ts +1 -0
  201. package/src/generators/workload/performance-registration.js +9 -11
  202. package/src/generators/workload/performance-registration.js.map +1 -1
  203. package/src/generators/workload/service-performance-files.d.ts +1 -0
  204. package/src/generators/workload/service-performance-files.js +27 -7
  205. package/src/generators/workload/service-performance-files.js.map +1 -1
  206. package/src/generators/workload/workload.d.ts +1 -1
  207. package/src/generators/workload/workload.js +55 -28
  208. package/src/generators/workload/workload.js.map +1 -1
  209. package/src/git-policy/github-bootstrap.d.ts +28 -7
  210. package/src/git-policy/github-bootstrap.js +205 -163
  211. package/src/git-policy/github-bootstrap.js.map +1 -1
  212. package/src/index.d.ts +1 -0
  213. package/src/index.js +1 -0
  214. package/src/index.js.map +1 -1
  215. package/src/local-dev/private-state.d.ts +3 -0
  216. package/src/local-dev/private-state.js +17 -5
  217. package/src/local-dev/private-state.js.map +1 -1
  218. package/src/local-dev/tls.js +5 -1
  219. package/src/local-dev/tls.js.map +1 -1
  220. package/src/performance/cost-collection.d.ts +1 -1
  221. package/src/performance/cost-collection.js +4 -2
  222. package/src/performance/cost-collection.js.map +1 -1
  223. package/src/performance/cost-controls.d.ts +3 -1
  224. package/src/performance/cost-controls.js +9 -4
  225. package/src/performance/cost-controls.js.map +1 -1
  226. package/src/performance/evidence.d.ts +1 -1
  227. package/src/performance/evidence.js +5 -3
  228. package/src/performance/evidence.js.map +1 -1
  229. package/src/performance/load-safety.js +5 -3
  230. package/src/performance/load-safety.js.map +1 -1
  231. package/src/performance/model.d.ts +2 -2
  232. package/src/performance/model.js +4 -3
  233. package/src/performance/model.js.map +1 -1
  234. package/src/release/index.d.ts +0 -2
  235. package/src/release/index.js +0 -2
  236. package/src/release/index.js.map +1 -1
  237. package/src/release/source-authority.d.ts +4 -5
  238. package/src/release/source-authority.js +13 -123
  239. package/src/release/source-authority.js.map +1 -1
  240. package/src/repository-policy/aurora-preflight.d.ts +1 -1
  241. package/src/repository-policy/aurora-preflight.js +4 -1
  242. package/src/repository-policy/aurora-preflight.js.map +1 -1
  243. package/src/repository-policy/policy.d.ts +21 -2
  244. package/src/repository-policy/policy.js +290 -25
  245. package/src/repository-policy/policy.js.map +1 -1
  246. package/src/schemas/performance-policy-v1.json +3 -1
  247. package/src/schemas/repository-policy-v1.json +46 -2
  248. package/src/secrets/adapters.d.ts +7 -2
  249. package/src/secrets/adapters.js +34 -3
  250. package/src/secrets/adapters.js.map +1 -1
  251. package/src/secrets/aws-control-plane.d.ts +10 -1
  252. package/src/secrets/aws-control-plane.js +67 -0
  253. package/src/secrets/aws-control-plane.js.map +1 -1
  254. package/src/secrets/generated-aws-control-plane.d.ts +23 -0
  255. package/src/secrets/generated-aws-control-plane.js +259 -0
  256. package/src/secrets/generated-aws-control-plane.js.map +1 -0
  257. package/src/secrets/metadata.js +38 -10
  258. package/src/secrets/metadata.js.map +1 -1
  259. package/src/secrets/model.d.ts +8 -1
  260. package/src/secrets/model.js +24 -3
  261. package/src/secrets/model.js.map +1 -1
  262. package/src/secrets/operator.d.ts +89 -3
  263. package/src/secrets/operator.js +422 -9
  264. package/src/secrets/operator.js.map +1 -1
  265. package/src/secrets/registry.d.ts +2 -1
  266. package/src/secrets/registry.js +18 -1
  267. package/src/secrets/registry.js.map +1 -1
  268. package/src/secrets/workload-access.js +10 -2
  269. package/src/secrets/workload-access.js.map +1 -1
  270. package/src/supply-chain/action-pins.js +61 -7
  271. package/src/supply-chain/action-pins.js.map +1 -1
  272. package/src/supply-chain/build-output-bounds.d.ts +2 -0
  273. package/src/supply-chain/build-output-bounds.js +12 -0
  274. package/src/supply-chain/build-output-bounds.js.map +1 -0
  275. package/src/supply-chain/build-output.js +2 -4
  276. package/src/supply-chain/build-output.js.map +1 -1
  277. package/src/supply-chain/ecr-scanning.d.ts +5 -3
  278. package/src/supply-chain/ecr-scanning.js +11 -7
  279. package/src/supply-chain/ecr-scanning.js.map +1 -1
  280. package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
  281. package/src/supply-chain/ecs-deployed-image.js +6 -4
  282. package/src/supply-chain/ecs-deployed-image.js.map +1 -1
  283. package/src/supply-chain/generated-container-release-command.js +849 -44
  284. package/src/supply-chain/generated-container-release-command.js.map +1 -1
  285. package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
  286. package/src/supply-chain/generated-ecr-collector-command.js +188 -91
  287. package/src/supply-chain/generated-ecr-collector-command.js.map +1 -1
  288. package/src/supply-chain/generated-files.js +4 -3
  289. package/src/supply-chain/generated-files.js.map +1 -1
  290. package/src/supply-chain/index.d.ts +1 -1
  291. package/src/supply-chain/index.js +2 -1
  292. package/src/supply-chain/index.js.map +1 -1
  293. package/src/workload-roles/index.d.ts +10 -17
  294. package/src/workload-roles/index.js +5 -18
  295. package/src/workload-roles/index.js.map +1 -1
  296. package/src/workspace-deployment/identity.d.ts +3 -0
  297. package/src/workspace-deployment/identity.js +22 -0
  298. package/src/workspace-deployment/identity.js.map +1 -0
  299. package/src/workspace-deployment/index.d.ts +3 -0
  300. package/src/workspace-deployment/index.js +7 -0
  301. package/src/workspace-deployment/index.js.map +1 -0
  302. package/src/workspace-deployment/migration-evidence.d.ts +29 -0
  303. package/src/workspace-deployment/migration-evidence.js +83 -0
  304. package/src/workspace-deployment/migration-evidence.js.map +1 -0
  305. package/src/workspace-deployment/migration.d.ts +27 -0
  306. package/src/workspace-deployment/migration.js +109 -0
  307. package/src/workspace-deployment/migration.js.map +1 -0
  308. package/src/workspace-deployment/ownership.d.ts +81 -0
  309. package/src/workspace-deployment/ownership.js +381 -0
  310. package/src/workspace-deployment/ownership.js.map +1 -0
package/executors.json CHANGED
@@ -38,17 +38,17 @@
38
38
  "infrastructure-plan": {
39
39
  "implementation": "./src/executors/infrastructure-plan/infrastructure-plan",
40
40
  "schema": "./src/executors/infrastructure-plan/schema.json",
41
- "description": "Run a pinned SST resource diff and fail closed on unapproved, stale, locked, drifted, or unknown protected plans."
41
+ "description": "Stream one advisory native SST diff through the exact committed stage authority without retaining mutation authority."
42
42
  },
43
43
  "local-deploy": {
44
44
  "implementation": "./src/executors/local-deploy/local-deploy",
45
45
  "schema": "./src/executors/local-deploy/schema.json",
46
- "description": "Plan and deploy one complete stage locally with exact temporary AWS role, source, account, Region, and production confirmation authority."
46
+ "description": "Deploy one complete active stage through ordered native SST children, exact temporary AWS authority, migrations, smoke checks, and a bounded receipt."
47
47
  },
48
48
  "router-waf-rehearsal": {
49
49
  "implementation": "./src/executors/router-waf-rehearsal/router-waf-rehearsal",
50
50
  "schema": "./src/executors/router-waf-rehearsal/schema.json",
51
- "description": "Seal bounded staging Router WAF blocking evidence for the exact committed policy before production deployment."
51
+ "description": "Run the bounded Router WAF rate probe, correlate its exact BLOCK sample and metric, and seal the committed blocking evidence."
52
52
  },
53
53
  "work-markers": {
54
54
  "implementation": "./src/executors/work-markers/work-markers",
@@ -80,6 +80,11 @@
80
80
  "schema": "./src/executors/secret-metadata/schema.json",
81
81
  "description": "Report or explicitly apply value-blind operator-secret container metadata for one Product Slice."
82
82
  },
83
+ "secret-initialize": {
84
+ "implementation": "./src/executors/secret-initialize/secret-initialize",
85
+ "schema": "./src/executors/secret-initialize/schema.json",
86
+ "description": "Report or explicitly initialize one declared machine-generated secret without accepting or returning its value."
87
+ },
83
88
  "secret-guardrails": {
84
89
  "implementation": "./src/executors/secret-guardrails/secret-guardrails",
85
90
  "schema": "./src/executors/secret-guardrails/schema.json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empire-builder-kit/nx",
3
- "version": "1.0.0-rc.30",
3
+ "version": "1.0.0-rc.32",
4
4
  "description": "Nx generators, executors, and Blueprint contracts for Empire Builder Kit",
5
5
  "keywords": [
6
6
  "aws",
@@ -39,6 +39,10 @@
39
39
  "types": "./src/authorization/index.d.ts",
40
40
  "default": "./src/authorization/index.js"
41
41
  },
42
+ "./aws-authority": {
43
+ "types": "./src/aws-authority/index.d.ts",
44
+ "default": "./src/aws-authority/index.js"
45
+ },
42
46
  "./database-retirement": {
43
47
  "types": "./src/database-retirement/index.d.ts",
44
48
  "default": "./src/database-retirement/index.js"
@@ -59,10 +63,6 @@
59
63
  "types": "./src/git-policy/index.d.ts",
60
64
  "default": "./src/git-policy/index.js"
61
65
  },
62
- "./infrastructure-change": {
63
- "types": "./src/infrastructure-change/index.d.ts",
64
- "default": "./src/infrastructure-change/index.js"
65
- },
66
66
  "./local-dev": {
67
67
  "types": "./src/local-dev/index.d.ts",
68
68
  "default": "./src/local-dev/index.js"
@@ -103,6 +103,10 @@
103
103
  "types": "./src/workload-roles/index.d.ts",
104
104
  "default": "./src/workload-roles/index.js"
105
105
  },
106
+ "./workspace-deployment": {
107
+ "types": "./src/workspace-deployment/index.d.ts",
108
+ "default": "./src/workspace-deployment/index.js"
109
+ },
106
110
  "./schemas/blueprint-v1.json": "./src/schemas/blueprint-v1.json",
107
111
  "./schemas/aggregate-count-evidence-v1.json": "./src/schemas/aggregate-count-evidence-v1.json",
108
112
  "./schemas/blueprint-input-schema-v1.json": "./src/schemas/blueprint-input-schema-v1.json",
@@ -126,7 +130,9 @@
126
130
  "provenance": false
127
131
  },
128
132
  "dependencies": {
129
- "@empire-builder-kit/runtime": "1.0.0-rc.30",
133
+ "@empire-builder-kit/runtime": "1.0.0-rc.32",
134
+ "@aws-sdk/client-cloudfront": "^3.700.0",
135
+ "@aws-sdk/client-cloudwatch": "^3.700.0",
130
136
  "@aws-sdk/client-cloudwatch-logs": "^3.700.0",
131
137
  "@aws-sdk/client-iam": "^3.700.0",
132
138
  "@nx/devkit": "23.1.0",
@@ -135,6 +141,7 @@
135
141
  "@aws-sdk/client-secrets-manager": "^3.700.0",
136
142
  "@aws-sdk/client-ssm": "^3.700.0",
137
143
  "@aws-sdk/client-sts": "^3.700.0",
144
+ "@aws-sdk/client-wafv2": "^3.700.0",
138
145
  "@aws-sdk/credential-providers": "^3.700.0",
139
146
  "ajv": "8.20.0",
140
147
  "prettier": "^3.8.2",
@@ -154,5 +161,5 @@
154
161
  "engines": {
155
162
  "node": ">=22.13.0"
156
163
  },
157
- "gitHead": "8fa5d9e9867de1192111268210cc96c2ceb96119"
164
+ "gitHead": "550d37dc3eb44e8f34ea438033ffefb65a42dc77"
158
165
  }
@@ -0,0 +1,10 @@
1
+ export interface GovernedAwsChildEnvironmentOptions {
2
+ /** GitHub's configure-aws-credentials action replaces ambient AWS
3
+ * credentials with one exact temporary role session. That verified session
4
+ * is the only raw credential environment admitted to a protected child. */
5
+ preserveVerifiedGithubCredentials?: boolean;
6
+ }
7
+ /** Remove ambient authority inputs that could redirect AWS calls, replace
8
+ * trust roots, mint another OIDC credential, or select an unverified AWS
9
+ * principal. Normal non-secret GitHub provenance remains available. */
10
+ export declare function sanitizeGovernedAwsChildEnvironment(ambient: NodeJS.ProcessEnv, options?: GovernedAwsChildEnvironmentOptions): NodeJS.ProcessEnv;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitizeGovernedAwsChildEnvironment = sanitizeGovernedAwsChildEnvironment;
4
+ const RAW_AWS_CREDENTIAL_VARIABLES = new Set([
5
+ 'AWS_ACCESS_KEY_ID',
6
+ 'AWS_CONTAINER_AUTHORIZATION_TOKEN',
7
+ 'AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE',
8
+ 'AWS_CONTAINER_CREDENTIALS_FULL_URI',
9
+ 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI',
10
+ 'AWS_CREDENTIAL_EXPIRATION',
11
+ 'AWS_ROLE_ARN',
12
+ 'AWS_ROLE_SESSION_NAME',
13
+ 'AWS_SECRET_ACCESS_KEY',
14
+ 'AWS_SECURITY_TOKEN',
15
+ 'AWS_SESSION_TOKEN',
16
+ 'AWS_WEB_IDENTITY_TOKEN_FILE',
17
+ ]);
18
+ const VERIFIED_GITHUB_CREDENTIAL_VARIABLES = new Set([
19
+ 'AWS_ACCESS_KEY_ID',
20
+ 'AWS_CREDENTIAL_EXPIRATION',
21
+ 'AWS_SECRET_ACCESS_KEY',
22
+ 'AWS_SESSION_TOKEN',
23
+ ]);
24
+ const AUTHORITY_OVERRIDE_VARIABLES = new Set([
25
+ 'ACTIONS_ID_TOKEN_REQUEST_TOKEN',
26
+ 'ACTIONS_ID_TOKEN_REQUEST_URL',
27
+ 'ACTIONS_RESULTS_URL',
28
+ 'ACTIONS_RUNTIME_TOKEN',
29
+ 'ACTIONS_RUNTIME_URL',
30
+ 'ALL_PROXY',
31
+ 'AWS_CA_BUNDLE',
32
+ 'AWS_EC2_METADATA_SERVICE_ENDPOINT',
33
+ 'AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE',
34
+ 'AWS_USE_DUALSTACK_ENDPOINT',
35
+ 'AWS_USE_FIPS_ENDPOINT',
36
+ 'CURL_CA_BUNDLE',
37
+ 'GH_TOKEN',
38
+ 'GITHUB_TOKEN',
39
+ 'GIT_SSL_CAINFO',
40
+ 'GIT_SSL_NO_VERIFY',
41
+ 'GLOBAL_AGENT_HTTP_PROXY',
42
+ 'GLOBAL_AGENT_HTTPS_PROXY',
43
+ 'HTTPS_PROXY',
44
+ 'HTTP_PROXY',
45
+ 'NODE_EXTRA_CA_CERTS',
46
+ 'NODE_TLS_REJECT_UNAUTHORIZED',
47
+ 'NO_PROXY',
48
+ 'NPM_CONFIG_CAFILE',
49
+ 'NPM_CONFIG_HTTPS_PROXY',
50
+ 'NPM_CONFIG_PROXY',
51
+ 'REQUESTS_CA_BUNDLE',
52
+ 'SSL_CERT_DIR',
53
+ 'SSL_CERT_FILE',
54
+ ]);
55
+ /** Remove ambient authority inputs that could redirect AWS calls, replace
56
+ * trust roots, mint another OIDC credential, or select an unverified AWS
57
+ * principal. Normal non-secret GitHub provenance remains available. */
58
+ function sanitizeGovernedAwsChildEnvironment(ambient, options = {}) {
59
+ const environment = { ...ambient };
60
+ for (const name of Object.keys(environment)) {
61
+ const canonical = name.toUpperCase();
62
+ const endpointOverride = canonical === 'AWS_ENDPOINT_URL' ||
63
+ canonical.startsWith('AWS_ENDPOINT_URL_');
64
+ const authorityOverride = AUTHORITY_OVERRIDE_VARIABLES.has(canonical);
65
+ const rawCredential = RAW_AWS_CREDENTIAL_VARIABLES.has(canonical);
66
+ const exactGithubCredential = options.preserveVerifiedGithubCredentials === true &&
67
+ name === canonical &&
68
+ VERIFIED_GITHUB_CREDENTIAL_VARIABLES.has(canonical);
69
+ if (endpointOverride ||
70
+ authorityOverride ||
71
+ (rawCredential && !exactGithubCredential)) {
72
+ delete environment[name];
73
+ }
74
+ }
75
+ return environment;
76
+ }
77
+ //# sourceMappingURL=child-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-environment.js","sourceRoot":"","sources":["../../../../../packages/nx/src/aws/child-environment.ts"],"names":[],"mappings":";;AAgEA,kFAyBC;AAzFD,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,mBAAmB;IACnB,mCAAmC;IACnC,wCAAwC;IACxC,oCAAoC;IACpC,wCAAwC;IACxC,2BAA2B;IAC3B,cAAc;IACd,uBAAuB;IACvB,uBAAuB;IACvB,oBAAoB;IACpB,mBAAmB;IACnB,6BAA6B;CAC9B,CAAC,CAAC;AAEH,MAAM,oCAAoC,GAAG,IAAI,GAAG,CAAC;IACnD,mBAAmB;IACnB,2BAA2B;IAC3B,uBAAuB;IACvB,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,gCAAgC;IAChC,8BAA8B;IAC9B,qBAAqB;IACrB,uBAAuB;IACvB,qBAAqB;IACrB,WAAW;IACX,eAAe;IACf,mCAAmC;IACnC,wCAAwC;IACxC,4BAA4B;IAC5B,uBAAuB;IACvB,gBAAgB;IAChB,UAAU;IACV,cAAc;IACd,gBAAgB;IAChB,mBAAmB;IACnB,yBAAyB;IACzB,0BAA0B;IAC1B,aAAa;IACb,YAAY;IACZ,qBAAqB;IACrB,8BAA8B;IAC9B,UAAU;IACV,mBAAmB;IACnB,wBAAwB;IACxB,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,eAAe;CAChB,CAAC,CAAC;AASH;;uEAEuE;AACvE,SAAgB,mCAAmC,CACjD,OAA0B,EAC1B,UAA8C,EAAE;IAEhD,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,gBAAgB,GACpB,SAAS,KAAK,kBAAkB;YAChC,SAAS,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,qBAAqB,GACzB,OAAO,CAAC,iCAAiC,KAAK,IAAI;YAClD,IAAI,KAAK,SAAS;YAClB,oCAAoC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,IACE,gBAAgB;YAChB,iBAAiB;YACjB,CAAC,aAAa,IAAI,CAAC,qBAAqB,CAAC,EACzC,CAAC;YACD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type CanonicalAwsRegionalService = 'rds' | 'secretsmanager' | 'ssm' | 'sts';
2
+ /** Bind security-sensitive AWS SDK reads to the canonical regional service
3
+ * endpoint rather than an ambient or shared-config endpoint override. */
4
+ export declare function canonicalAwsRegionalEndpoint(service: CanonicalAwsRegionalService, region: string): string;
5
+ /** Bind identity verification to AWS's canonical regional STS service rather
6
+ * than an ambient or shared-config endpoint override. */
7
+ export declare function canonicalStsEndpoint(region: string): string;
8
+ /**
9
+ * AWS STS omits an IAM role path from an assumed-role ARN. Match the exact
10
+ * account, partition, and terminal role name while accepting that documented
11
+ * AWS representation difference.
12
+ */
13
+ export declare function matchesExpectedAssumedRoleArn(expectedAccount: string, callerArn: string, expectedRoleArn: string): boolean;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.canonicalAwsRegionalEndpoint = canonicalAwsRegionalEndpoint;
4
+ exports.canonicalStsEndpoint = canonicalStsEndpoint;
5
+ exports.matchesExpectedAssumedRoleArn = matchesExpectedAssumedRoleArn;
6
+ const IAM_ROLE_ARN = /^arn:([^:]+):iam::(\d{12}):role\/(.+)$/u;
7
+ const STS_ASSUMED_ROLE_ARN = /^arn:([^:]+):sts::(\d{12}):assumed-role\/(.+)\/([^/]+)$/u;
8
+ const AWS_REGION = /^[a-z]{2}(?:-gov)?-[a-z]+(?:-[a-z]+)*-\d$/u;
9
+ /** Bind security-sensitive AWS SDK reads to the canonical regional service
10
+ * endpoint rather than an ambient or shared-config endpoint override. */
11
+ function canonicalAwsRegionalEndpoint(service, region) {
12
+ if (!AWS_REGION.test(region)) {
13
+ throw new Error(`${service.toUpperCase()} verification requires an exact AWS Region.`);
14
+ }
15
+ return region.startsWith('cn-')
16
+ ? `https://${service}.${region}.amazonaws.com.cn`
17
+ : `https://${service}.${region}.amazonaws.com`;
18
+ }
19
+ /** Bind identity verification to AWS's canonical regional STS service rather
20
+ * than an ambient or shared-config endpoint override. */
21
+ function canonicalStsEndpoint(region) {
22
+ return canonicalAwsRegionalEndpoint('sts', region);
23
+ }
24
+ /**
25
+ * AWS STS omits an IAM role path from an assumed-role ARN. Match the exact
26
+ * account, partition, and terminal role name while accepting that documented
27
+ * AWS representation difference.
28
+ */
29
+ function matchesExpectedAssumedRoleArn(expectedAccount, callerArn, expectedRoleArn) {
30
+ const expected = IAM_ROLE_ARN.exec(expectedRoleArn);
31
+ const caller = STS_ASSUMED_ROLE_ARN.exec(callerArn);
32
+ if (!expected || !caller)
33
+ return false;
34
+ const expectedRoleName = expected[3]?.split('/').at(-1);
35
+ return (expected[1] === caller[1] &&
36
+ expected[2] === expectedAccount &&
37
+ caller[2] === expectedAccount &&
38
+ expectedRoleName !== undefined &&
39
+ expectedRoleName === caller[3]);
40
+ }
41
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../../packages/nx/src/aws/identity.ts"],"names":[],"mappings":";;AAUA,oEAYC;AAID,oDAEC;AAOD,sEAgBC;AAnDD,MAAM,YAAY,GAAG,yCAAyC,CAAC;AAC/D,MAAM,oBAAoB,GACxB,0DAA0D,CAAC;AAC7D,MAAM,UAAU,GAAG,4CAA4C,CAAC;AAKhE;yEACyE;AACzE,SAAgB,4BAA4B,CAC1C,OAAoC,EACpC,MAAc;IAEd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,WAAW,EAAE,6CAA6C,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAC7B,CAAC,CAAC,WAAW,OAAO,IAAI,MAAM,mBAAmB;QACjD,CAAC,CAAC,WAAW,OAAO,IAAI,MAAM,gBAAgB,CAAC;AACnD,CAAC;AAED;yDACyD;AACzD,SAAgB,oBAAoB,CAAC,MAAc;IACjD,OAAO,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,SAAgB,6BAA6B,CAC3C,eAAuB,EACvB,SAAiB,EACjB,eAAuB;IAEvB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,CACL,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;QACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,eAAe;QAC/B,MAAM,CAAC,CAAC,CAAC,KAAK,eAAe;QAC7B,gBAAgB,KAAK,SAAS;QAC9B,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,CAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './stage-authority.js';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./stage-authority.js"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/nx/src/aws-authority/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC"}
@@ -0,0 +1,240 @@
1
+ export declare const STAGE_AUTHORITY_SCHEMA_VERSION: 1;
2
+ export declare const STAGE_AUTHORITY_STAGES: readonly ["development", "staging", "production"];
3
+ export declare const STAGE_AUTHORITY_PARTITIONS: readonly ["aws", "aws-cn", "aws-us-gov"];
4
+ export declare const STAGE_AUTHORITY_DEPLOYMENT_POLICY_KINDS: readonly ["read", "regional-mutation", "global-iam-mutation", "global-resource-mutation", "generated-resource-mutation", "stage-containment", "permission-guardrails", "guardrails"];
5
+ export declare const STAGE_AUTHORITY_MANAGED_POLICY_CHARACTER_LIMIT = 6144;
6
+ export declare const STAGE_AUTHORITY_MANAGED_POLICY_CHARACTER_HEADROOM = 200;
7
+ export declare const STAGE_AUTHORITY_TEMPLATE_BODY_BYTE_LIMIT = 51200;
8
+ export declare const STAGE_AUTHORITY_BOUND_TEMPLATE_BODY_MINIMUM_HEADROOM = 1024;
9
+ export type StageAuthorityStage = (typeof STAGE_AUTHORITY_STAGES)[number];
10
+ export type StageAuthorityPartition = (typeof STAGE_AUTHORITY_PARTITIONS)[number];
11
+ export type StageAuthorityDeploymentPolicyKind = (typeof STAGE_AUTHORITY_DEPLOYMENT_POLICY_KINDS)[number];
12
+ type ConditionValue = string | readonly string[];
13
+ type ConditionEntries = Readonly<Record<string, ConditionValue>>;
14
+ export interface StageAuthorityPolicyStatement {
15
+ Action: readonly string[];
16
+ Condition?: Readonly<Record<string, ConditionEntries>>;
17
+ Effect: 'Allow' | 'Deny';
18
+ NotResource?: readonly string[];
19
+ Resource?: readonly string[];
20
+ Sid: string;
21
+ }
22
+ export interface StageAuthorityPolicyDocument {
23
+ Statement: readonly StageAuthorityPolicyStatement[];
24
+ Version: '2012-10-17';
25
+ }
26
+ export interface StageAuthorityGithubTrust {
27
+ oidcProviderArn: string;
28
+ subject: string;
29
+ }
30
+ export interface StageAuthorityInput {
31
+ accountId: string;
32
+ awsPrincipalArns?: readonly string[];
33
+ github?: StageAuthorityGithubTrust;
34
+ partition?: StageAuthorityPartition;
35
+ region: string;
36
+ stage: StageAuthorityStage;
37
+ }
38
+ export interface StageAuthorityIdentity {
39
+ boundaryArn: string;
40
+ boundaryName: string;
41
+ boundaryPath: string;
42
+ deploymentPolicyArns: readonly string[];
43
+ deploymentPolicyNames: readonly string[];
44
+ deploymentRoleArn: string;
45
+ deploymentRoleName: string;
46
+ deploymentRolePath: string;
47
+ stackName: string;
48
+ workloadInstanceProfileArnPattern: string;
49
+ workloadInstanceProfilePath: string;
50
+ workloadRoleArnPattern: string;
51
+ workloadRolePath: string;
52
+ }
53
+ export interface StageAuthorityDeploymentPolicy {
54
+ arn: string;
55
+ document: StageAuthorityPolicyDocument;
56
+ kind: StageAuthorityDeploymentPolicyKind;
57
+ logicalId: string;
58
+ name: string;
59
+ }
60
+ export interface StageAuthorityLimitations {
61
+ protectedDatabaseConfiguration: 'iam-cannot-inspect-rds-modify-request-fields-lifecycle-preflight-required';
62
+ resourcePolicyAttributes: 'sns-and-sqs-set-attributes-can-write-resource-policies-name-account-region-containment-applies';
63
+ sameAccountStageDeploymentIsolation: 'deployment-role-is-account-scoped-use-production-isolated-for-hard-production-boundary';
64
+ wafLoggingResourcePolicy: 'cloudwatch-logs-put-resource-policy-has-no-resource-or-action-condition-keys-reviewed-generated-source-is-control';
65
+ workloadTrust: 'iam-cannot-inspect-create-role-trust-reviewed-generated-source-is-control';
66
+ }
67
+ export interface StageAuthorityPlan {
68
+ deploymentPolicies: readonly StageAuthorityDeploymentPolicy[];
69
+ digest: string;
70
+ identity: StageAuthorityIdentity;
71
+ limitations: StageAuthorityLimitations;
72
+ runtimeBoundaryPolicy: StageAuthorityPolicyDocument;
73
+ schemaVersion: typeof STAGE_AUTHORITY_SCHEMA_VERSION;
74
+ template: Readonly<Record<string, unknown>>;
75
+ }
76
+ export interface StageIamBoundaryTransformContract {
77
+ boundaryArn: string;
78
+ instanceProfilePath: string;
79
+ rolePath: string;
80
+ }
81
+ export interface StageIamBoundaryTransformArgs {
82
+ path?: unknown;
83
+ permissionsBoundary?: unknown;
84
+ [key: string]: unknown;
85
+ }
86
+ export interface StageIamBoundaryTransformInput {
87
+ accountId: string;
88
+ instanceProfileResource: unknown;
89
+ partition?: StageAuthorityPartition;
90
+ registerTransform: (resource: unknown, transform: (args: StageIamBoundaryTransformArgs) => void) => void;
91
+ roleResource: unknown;
92
+ stage: StageAuthorityStage;
93
+ }
94
+ /** Native lifecycle required by the generated machine-authorization nested
95
+ * stack. Recovery-only and stack-policy mutation APIs remain ungranted. */
96
+ export declare const STAGE_AUTHORITY_CLOUDFORMATION_LIFECYCLE_ACTIONS: readonly string[];
97
+ /** EventBridge archives expose no request-tag or resource-tag IAM condition
98
+ * keys. Their lifecycle is contained by the exact canonical archive ARN and
99
+ * requested Region instead. */
100
+ export declare const STAGE_AUTHORITY_EVENT_ARCHIVE_CREATE_ACTIONS: readonly string[];
101
+ export declare const STAGE_AUTHORITY_EVENT_ARCHIVE_RESOURCE_ACTIONS: readonly string[];
102
+ export declare const STAGE_AUTHORITY_LAMBDA_DEPLOYMENT_INVOKE_ACTIONS: readonly string[];
103
+ export declare const STAGE_AUTHORITY_CLOUDFRONT_INVALIDATION_ACTIONS: readonly string[];
104
+ export declare const STAGE_AUTHORITY_WAF_LOGGING_ACTIONS: readonly string[];
105
+ /** SST's CloudFront-scope WAF logging component owns exactly one generated log
106
+ * group in the edge control Region. These resource-capable actions stay bound
107
+ * to that generated ARN below. */
108
+ export declare const STAGE_AUTHORITY_EDGE_WAF_LOG_GROUP_ACTIONS: readonly string[];
109
+ /** CloudWatch Logs exposes these WAF delivery mutations only at account scope.
110
+ * In particular, PutResourcePolicy supports neither resource ARNs nor
111
+ * action-specific condition keys. Requested Region and reviewed generated
112
+ * source are therefore the strongest honest controls for that one exception. */
113
+ export declare const STAGE_AUTHORITY_EDGE_WAF_LOG_DELIVERY_MUTATION_ACTIONS: readonly string[];
114
+ export declare const STAGE_AUTHORITY_BUDGET_MUTATION_ACTIONS: readonly string[];
115
+ export declare const STAGE_AUTHORITY_RDS_EVENT_SUBSCRIPTION_SOURCE_ACTIONS: readonly string[];
116
+ export declare const STAGE_AUTHORITY_KMS_ROTATION_ACTIONS: readonly string[];
117
+ /** Cost Explorer creation is account-global, while existing anomaly controls
118
+ * support account-bound ARNs. These exact verbs are admitted only to the
119
+ * production stage role below. */
120
+ export declare const STAGE_AUTHORITY_COST_ANOMALY_READ_ACTIONS: readonly string[];
121
+ export declare const STAGE_AUTHORITY_COST_ANOMALY_CREATE_ACTIONS: readonly string[];
122
+ export declare const STAGE_AUTHORITY_COST_ANOMALY_RESOURCE_WRITE_ACTIONS: readonly string[];
123
+ export declare const STAGE_AUTHORITY_COST_ANOMALY_WRITE_ACTIONS: readonly string[];
124
+ export declare const STAGE_AUTHORITY_REGIONAL_READ_ACTIONS: readonly string[];
125
+ export declare const STAGE_AUTHORITY_GLOBAL_READ_ACTIONS: readonly string[];
126
+ /** CloudFront-scope WAF publishes its observability signals through the edge
127
+ * control Region. Keep this read surface exact instead of broadening every
128
+ * regional read when the application Region differs from us-east-1. */
129
+ export declare const STAGE_AUTHORITY_EDGE_OBSERVABILITY_READ_ACTIONS: readonly string[];
130
+ /** A deployment role is a temporary infrastructure administrator, not a
131
+ * runtime workload identity. Routine regional services therefore use one
132
+ * stable service-family contract instead of a provider-call inventory. The
133
+ * families whose policy, protection, launch, or trust semantics need tighter
134
+ * treatment remain on the bounded action sets below. */
135
+ export declare const STAGE_AUTHORITY_BROAD_REGIONAL_SERVICE_ACTIONS: readonly string[];
136
+ export declare const STAGE_AUTHORITY_BACKUP_INFRASTRUCTURE_ACTIONS: readonly string[];
137
+ export declare const STAGE_AUTHORITY_EC2_INFRASTRUCTURE_ACTIONS: readonly string[];
138
+ export declare const STAGE_AUTHORITY_KMS_INFRASTRUCTURE_ACTIONS: readonly string[];
139
+ /** AddPermission, RemovePermission, and InvokeFunction remain in exact
140
+ * statements so the family allow cannot bypass Lambda resource-policy and
141
+ * deployment-smoke constraints. */
142
+ export declare const STAGE_AUTHORITY_LAMBDA_INFRASTRUCTURE_ACTIONS: readonly string[];
143
+ export declare const STAGE_AUTHORITY_REGIONAL_WRITE_ACTIONS: readonly string[];
144
+ export declare const STAGE_AUTHORITY_UNSCOPED_CLOUDFRONT_CREATE_ACTIONS: readonly string[];
145
+ export declare const STAGE_AUTHORITY_S3_REGIONAL_MUTATION_ACTIONS: readonly string[];
146
+ export declare const STAGE_AUTHORITY_WAF_EDGE_MUTATION_ACTIONS: readonly string[];
147
+ /** These APIs establish unsupported replicas, global resources, alternate
148
+ * database topologies, integrations, or cross-Region copies. The generated
149
+ * architecture does not use them. */
150
+ export declare const STAGE_AUTHORITY_UNSUPPORTED_REPLICATION_AND_TOPOLOGY_ACTIONS: readonly string[];
151
+ export declare const STAGE_AUTHORITY_GLOBAL_WRITE_ACTIONS: readonly string[];
152
+ export declare const STAGE_AUTHORITY_ACCOUNT_SCOPED_GLOBAL_WRITE_ACTIONS: readonly string[];
153
+ export declare const STAGE_RUNTIME_REGIONAL_ACTIONS: readonly string[];
154
+ export declare const STAGE_RUNTIME_GLOBAL_ACTIONS: readonly string[];
155
+ export declare const STAGE_AUTHORITY_REGIONAL_MUTATION_FAMILIES: readonly string[];
156
+ /** Logs application resources live in the deployment Region, while native WAF
157
+ * delivery resources live in the CloudFront edge control Region. The allow
158
+ * statements remain separate; this family exists only to deny mutations in a
159
+ * third Region. */
160
+ export declare const STAGE_AUTHORITY_LOGS_MUTATION_FAMILIES: readonly string[];
161
+ export declare const STAGE_RUNTIME_REGIONAL_SERVICE_FAMILIES: readonly string[];
162
+ export declare const STAGE_AUTHORITY_APPROVED_AWS_MANAGED_POLICIES: readonly string[];
163
+ export declare const STAGE_AUTHORITY_WORKLOAD_IDENTITY_POLICY_ACTIONS: readonly string[];
164
+ /** Compact service-family scope guards keep mutation outside the selected AWS
165
+ * account/Region closed. They intentionally do not claim same-account stage
166
+ * isolation, because native SST owns account-shared bootstrap resources. */
167
+ export declare const STAGE_AUTHORITY_SCOPE_GUARD_MUTATION_FAMILIES: readonly string[];
168
+ /** SST 4.17.1 resolves the generated nonproduction VPC's EC2 NAT image from
169
+ * this commercial-partition fck-nat publisher. The generated development
170
+ * bastion reuses that NAT instance, while production uses managed NAT. No
171
+ * publisher is admitted in partitions where the pinned source is unproven. */
172
+ export declare const STAGE_AUTHORITY_SST_417_EXTERNAL_AMI_OWNERS_BY_PARTITION: Readonly<{
173
+ aws: readonly string[];
174
+ 'aws-cn': readonly any[];
175
+ 'aws-us-gov': readonly any[];
176
+ }>;
177
+ /** Preserve the generic cross-account guard for ordinary EC2 mutations while
178
+ * routing RunInstances through its resource-aware statements below. A service
179
+ * family wildcard would otherwise reject SST's deliberately external AMI. */
180
+ export declare const STAGE_AUTHORITY_CROSS_ACCOUNT_EC2_MUTATION_ACTIONS: readonly string[];
181
+ export declare const STAGE_AUTHORITY_CROSS_ACCOUNT_MUTATION_ACTIONS: readonly string[];
182
+ /** A deliberately narrow destructive set for same-account stage defense in
183
+ * depth. It protects named/tagged production resources without pretending the
184
+ * deployment roles form a complete IAM boundary. */
185
+ export declare const STAGE_AUTHORITY_CROSS_STAGE_DESTRUCTIVE_ACTIONS: readonly string[];
186
+ /** Existing-resource mutations must either retain the exact stage tag or use a
187
+ * generated stage/SST shared resource identity. Initial create/tag calls are
188
+ * governed by their request-tag or exact-resource statements instead. */
189
+ export declare const STAGE_AUTHORITY_UNTAGGED_DESTRUCTIVE_ACTIONS: readonly string[];
190
+ /** Operations whose target already exposes a stage tag may use the broader
191
+ * deployer contract. A known different-stage tag must still win as an explicit
192
+ * deny, including for provider calls that are not destructive by name. */
193
+ export declare const STAGE_AUTHORITY_KNOWN_STAGE_MUTATION_ACTIONS: readonly string[];
194
+ export declare const STAGE_AUTHORITY_S3_BUCKET_POLICY_MUTATION_ACTIONS: readonly string[];
195
+ /** Permission-management actions that the generated lifecycle must call. Each
196
+ * exception is named exactly here and remains subject to the resource and
197
+ * condition containment statements below. */
198
+ export declare const STAGE_AUTHORITY_REVIEWED_PERMISSION_MANAGEMENT_ACTIONS: readonly string[];
199
+ /** Compact deny patterns covering permission-management actions admitted by
200
+ * wildcard lifecycle grants but not named as reviewed exceptions. The focused
201
+ * oracle derives every wildcard service family from the policy and proves each
202
+ * currently admitted permission-management action is reviewed or denied, and
203
+ * that no compact pattern also captures a retained read-only action. */
204
+ export declare const STAGE_AUTHORITY_UNREVIEWED_PERMISSION_MANAGEMENT_ACTION_PATTERNS: readonly string[];
205
+ /** Stable exclusions from the temporary infrastructure-administrator role.
206
+ * These are account administration, direct application data/user mutation,
207
+ * message handling, or export paths rather than native stack reconciliation.
208
+ * The generated deployed smoke retains only its four exact Cognito admin calls. */
209
+ export declare const STAGE_AUTHORITY_NON_DEPLOYMENT_ACCOUNT_AND_DATA_ACTIONS: readonly string[];
210
+ export declare const STAGE_AUTHORITY_UNSUPPORTED_WORKFLOW_EXECUTION_ACTIONS: readonly string[];
211
+ export declare const STAGE_AUTHORITY_SERVICE_LINKED_ROLES: readonly (Readonly<{
212
+ path: "ecs.amazonaws.com/AWSServiceRoleForECS";
213
+ serviceName: "ecs.amazonaws.com";
214
+ }> | Readonly<{
215
+ path: "ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService";
216
+ serviceName: "ecs.application-autoscaling.amazonaws.com";
217
+ }> | Readonly<{
218
+ path: "rds.amazonaws.com/AWSServiceRoleForRDS";
219
+ serviceName: "rds.amazonaws.com";
220
+ }> | Readonly<{
221
+ path: "rds.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_RDSCluster";
222
+ serviceName: "rds.application-autoscaling.amazonaws.com";
223
+ }> | Readonly<{
224
+ path: "wafv2.amazonaws.com/AWSServiceRoleForWAFV2Logging";
225
+ serviceName: "wafv2.amazonaws.com";
226
+ }>)[];
227
+ export declare function createStageAuthorityIdentity(input: Pick<StageAuthorityInput, 'accountId' | 'partition' | 'region' | 'stage'>): StageAuthorityIdentity;
228
+ export declare function canonicalStageAuthorityTemplate(template: Readonly<Record<string, unknown>>): string;
229
+ export declare function digestStageAuthorityTemplate(template: Readonly<Record<string, unknown>>): string;
230
+ export declare function assertBoundStageAuthorityTemplateFitsBodyLimit(template: Readonly<Record<string, unknown>>): number;
231
+ export declare function createStageAuthorityPlan(input: StageAuthorityInput): StageAuthorityPlan;
232
+ export declare function createStageIamBoundaryTransformContract(input: Pick<StageAuthorityInput, 'accountId' | 'partition' | 'stage'>): StageIamBoundaryTransformContract;
233
+ /**
234
+ * Installs ordinary Pulumi resource transforms before generated SST components
235
+ * are constructed. SST remains responsible for creating its roles and NAT
236
+ * instance profiles; this helper contributes only the stable stage path and
237
+ * permissions boundary.
238
+ */
239
+ export declare function installStageIamBoundaryTransforms(input: StageIamBoundaryTransformInput): StageIamBoundaryTransformContract;
240
+ export {};