@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
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WORKSPACE_STAGE_OWNERSHIP_SCHEMA_VERSION = void 0;
4
+ exports.workspaceStageOwnerParameterName = workspaceStageOwnerParameterName;
5
+ exports.workspaceStageOwnerParameterArn = workspaceStageOwnerParameterArn;
6
+ exports.createWorkspaceStageOwnerRecord = createWorkspaceStageOwnerRecord;
7
+ exports.canonicalWorkspaceStageOwner = canonicalWorkspaceStageOwner;
8
+ exports.workspaceStageOwnershipTarget = workspaceStageOwnershipTarget;
9
+ exports.createWorkspaceStageOwnershipClaimPlan = createWorkspaceStageOwnershipClaimPlan;
10
+ exports.bindStageAuthorityTemplateToWorkspaceOwner = bindStageAuthorityTemplateToWorkspaceOwner;
11
+ exports.inspectWorkspaceStageOwnership = inspectWorkspaceStageOwnership;
12
+ exports.assertWorkspaceStageOwnership = assertWorkspaceStageOwnership;
13
+ exports.assertWorkspaceStageOwnershipForWorkspace = assertWorkspaceStageOwnershipForWorkspace;
14
+ const client_ssm_1 = require("@aws-sdk/client-ssm");
15
+ const credential_providers_1 = require("@aws-sdk/credential-providers");
16
+ const node_fs_1 = require("node:fs");
17
+ const node_path_1 = require("node:path");
18
+ const index_js_1 = require("../repository-policy/index.js");
19
+ const identity_js_1 = require("../aws/identity.js");
20
+ const identity_js_2 = require("./identity.js");
21
+ exports.WORKSPACE_STAGE_OWNERSHIP_SCHEMA_VERSION = 1;
22
+ const ACCOUNT_ID = /^\d{12}$/u;
23
+ const REGION = /^[a-z]{2}(?:-gov)?-[a-z]+(?:-[a-z]+)*-\d$/u;
24
+ const WORKSPACE_NAME = /^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/u;
25
+ function partitionForRegion(region) {
26
+ if (region.startsWith('cn-'))
27
+ return 'aws-cn';
28
+ if (region.startsWith('us-gov-'))
29
+ return 'aws-us-gov';
30
+ return 'aws';
31
+ }
32
+ function exactWorkspaceDeploymentTupleRule(target) {
33
+ return Object.freeze({
34
+ Assertions: [
35
+ {
36
+ Assert: {
37
+ 'Fn::Equals': [{ Ref: 'AWS::AccountId' }, target.accountId],
38
+ },
39
+ },
40
+ {
41
+ Assert: {
42
+ 'Fn::Equals': [{ Ref: 'AWS::Region' }, target.region],
43
+ },
44
+ },
45
+ {
46
+ Assert: {
47
+ 'Fn::Equals': [
48
+ { Ref: 'AWS::Partition' },
49
+ partitionForRegion(target.region),
50
+ ],
51
+ },
52
+ },
53
+ ],
54
+ });
55
+ }
56
+ function requireWorkspaceName(value) {
57
+ if (typeof value !== 'string' ||
58
+ value.length > 214 ||
59
+ !WORKSPACE_NAME.test(value)) {
60
+ throw new Error('Workspace deployment ownership requires one bounded lowercase npm package name for diagnostics.');
61
+ }
62
+ return value;
63
+ }
64
+ function requireTarget(input) {
65
+ if (!ACCOUNT_ID.test(input.accountId) ||
66
+ !REGION.test(input.region) ||
67
+ !['development', 'staging', 'production'].includes(input.stage)) {
68
+ throw new Error('Workspace stage ownership requires one exact account, Region, and canonical stage.');
69
+ }
70
+ return {
71
+ accountId: input.accountId,
72
+ region: input.region,
73
+ stage: input.stage,
74
+ workspaceDeploymentId: (0, identity_js_2.normalizeWorkspaceDeploymentId)(input.workspaceDeploymentId),
75
+ workspaceName: requireWorkspaceName(input.workspaceName),
76
+ };
77
+ }
78
+ function requireOwnerIdentity(input) {
79
+ if (!ACCOUNT_ID.test(input.accountId) ||
80
+ !REGION.test(input.region) ||
81
+ !['development', 'staging', 'production'].includes(input.stage)) {
82
+ throw new Error('Workspace stage ownership requires one exact account, Region, and canonical stage.');
83
+ }
84
+ return {
85
+ accountId: input.accountId,
86
+ region: input.region,
87
+ stage: input.stage,
88
+ workspaceDeploymentId: (0, identity_js_2.normalizeWorkspaceDeploymentId)(input.workspaceDeploymentId),
89
+ };
90
+ }
91
+ function workspaceStageOwnerParameterName(stage) {
92
+ if (!['development', 'staging', 'production'].includes(stage)) {
93
+ throw new Error('Workspace stage owner requires one canonical stage.');
94
+ }
95
+ return `/ebk/${stage}/workspace-owner`;
96
+ }
97
+ function workspaceStageOwnerParameterArn(input) {
98
+ if (!ACCOUNT_ID.test(input.accountId) || !REGION.test(input.region)) {
99
+ throw new Error('Workspace stage owner ARN requires one exact account and Region.');
100
+ }
101
+ return `arn:${partitionForRegion(input.region)}:ssm:${input.region}:${input.accountId}:parameter${workspaceStageOwnerParameterName(input.stage)}`;
102
+ }
103
+ function createWorkspaceStageOwnerRecord(input) {
104
+ const target = requireOwnerIdentity(input);
105
+ return Object.freeze({
106
+ accountId: target.accountId,
107
+ kind: 'ebk-workspace-stage-owner',
108
+ region: target.region,
109
+ schemaVersion: exports.WORKSPACE_STAGE_OWNERSHIP_SCHEMA_VERSION,
110
+ stage: target.stage,
111
+ workspaceDeploymentId: target.workspaceDeploymentId,
112
+ });
113
+ }
114
+ function canonicalWorkspaceStageOwner(input) {
115
+ return JSON.stringify(createWorkspaceStageOwnerRecord(input));
116
+ }
117
+ function parseWorkspaceStageOwner(value) {
118
+ let candidate;
119
+ try {
120
+ candidate = JSON.parse(value);
121
+ }
122
+ catch {
123
+ throw new Error('Workspace stage owner record is not valid JSON.');
124
+ }
125
+ if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate)) {
126
+ throw new Error('Workspace stage owner record is not one object.');
127
+ }
128
+ const record = candidate;
129
+ if (JSON.stringify(Object.keys(record).sort()) !==
130
+ JSON.stringify([
131
+ 'accountId',
132
+ 'kind',
133
+ 'region',
134
+ 'schemaVersion',
135
+ 'stage',
136
+ 'workspaceDeploymentId',
137
+ ].sort()) ||
138
+ record.kind !== 'ebk-workspace-stage-owner' ||
139
+ record.schemaVersion !== exports.WORKSPACE_STAGE_OWNERSHIP_SCHEMA_VERSION ||
140
+ typeof record.accountId !== 'string' ||
141
+ typeof record.region !== 'string' ||
142
+ typeof record.stage !== 'string' ||
143
+ typeof record.workspaceDeploymentId !== 'string') {
144
+ throw new Error('Workspace stage owner record has an unexpected shape.');
145
+ }
146
+ return createWorkspaceStageOwnerRecord({
147
+ accountId: record.accountId,
148
+ region: record.region,
149
+ stage: record.stage,
150
+ workspaceDeploymentId: record.workspaceDeploymentId,
151
+ });
152
+ }
153
+ function rootWorkspaceName(workspaceRoot) {
154
+ let value;
155
+ try {
156
+ value = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(workspaceRoot, 'package.json'), 'utf8'));
157
+ }
158
+ catch (error) {
159
+ throw new Error(`Workspace deployment ownership requires a valid root package.json: ${error instanceof Error ? error.message : String(error)}`);
160
+ }
161
+ return requireWorkspaceName(value && typeof value === 'object' && !Array.isArray(value)
162
+ ? value.name
163
+ : undefined);
164
+ }
165
+ function workspaceStageOwnershipTarget(workspaceRoot, stage, policy = (0, index_js_1.readRepositoryOperatingPolicy)(workspaceRoot)) {
166
+ return requireTarget({
167
+ accountId: (0, index_js_1.configuredDeploymentAccountForStage)(policy.deploymentProfile, policy.deploymentAccounts, stage),
168
+ region: (0, index_js_1.configuredDeploymentRegion)(policy.deploymentRegion),
169
+ stage,
170
+ workspaceDeploymentId: policy.workspaceDeploymentId,
171
+ workspaceName: rootWorkspaceName(workspaceRoot),
172
+ });
173
+ }
174
+ function createWorkspaceStageOwnershipClaimPlan(input) {
175
+ const target = requireTarget(input);
176
+ const parameterName = workspaceStageOwnerParameterName(target.stage);
177
+ const parameterArn = workspaceStageOwnerParameterArn(target);
178
+ const value = canonicalWorkspaceStageOwner(target);
179
+ const identity = target.workspaceDeploymentId.slice('ebkws-'.length);
180
+ const stackName = `ebk-${target.stage}-workspace-owner-${identity}`;
181
+ const template = Object.freeze({
182
+ AWSTemplateFormatVersion: '2010-09-09',
183
+ Description: `Immutable Empire Builder Kit ${target.stage} workspace owner claim.`,
184
+ Outputs: {
185
+ WorkspaceDeploymentId: { Value: target.workspaceDeploymentId },
186
+ WorkspaceStageOwnerParameterArn: { Value: parameterArn },
187
+ },
188
+ Rules: {
189
+ ExactWorkspaceDeploymentTuple: exactWorkspaceDeploymentTupleRule(target),
190
+ },
191
+ Resources: {
192
+ WorkspaceStageOwner: {
193
+ DeletionPolicy: 'Retain',
194
+ Properties: {
195
+ DataType: 'text',
196
+ Description: `Exclusive EBK workspace owner for ${target.stage} in this account and Region.`,
197
+ Name: parameterName,
198
+ Tags: {
199
+ 'ebk:managed-by': 'empire-builder-kit',
200
+ 'ebk:stage': target.stage,
201
+ 'ebk:workspace': target.workspaceName,
202
+ 'ebk:workspace-deployment-id': target.workspaceDeploymentId,
203
+ },
204
+ Type: 'String',
205
+ Value: value,
206
+ },
207
+ Type: 'AWS::SSM::Parameter',
208
+ UpdateReplacePolicy: 'Retain',
209
+ },
210
+ },
211
+ });
212
+ return Object.freeze({
213
+ digestInput: `${JSON.stringify(template)}\n`,
214
+ parameterArn,
215
+ parameterName,
216
+ stackName,
217
+ template,
218
+ value,
219
+ });
220
+ }
221
+ /** Bind the stage-authority change set to the already-claimed tuple. AWS
222
+ * resolves the exact SSM value while evaluating CloudFormation Rules, before
223
+ * any IAM resource in the authority stack can be changed. */
224
+ function bindStageAuthorityTemplateToWorkspaceOwner(template, input) {
225
+ const target = requireTarget(input);
226
+ if (Object.prototype.hasOwnProperty.call(template, 'Parameters') ||
227
+ Object.prototype.hasOwnProperty.call(template, 'Rules')) {
228
+ throw new Error('Stage authority template already declares Parameters or Rules; workspace ownership binding would be ambiguous.');
229
+ }
230
+ return Object.freeze({
231
+ ...template,
232
+ Parameters: {
233
+ WorkspaceStageOwnerValue: {
234
+ AllowedValues: [workspaceStageOwnerParameterName(target.stage)],
235
+ Default: workspaceStageOwnerParameterName(target.stage),
236
+ Type: 'AWS::SSM::Parameter::Value<String>',
237
+ },
238
+ },
239
+ Rules: {
240
+ ExactWorkspaceDeploymentTuple: exactWorkspaceDeploymentTupleRule(target),
241
+ ExactWorkspaceStageOwner: {
242
+ Assertions: [
243
+ {
244
+ Assert: {
245
+ 'Fn::Equals': [
246
+ { Ref: 'WorkspaceStageOwnerValue' },
247
+ canonicalWorkspaceStageOwner(target),
248
+ ],
249
+ },
250
+ },
251
+ ],
252
+ },
253
+ },
254
+ });
255
+ }
256
+ function ssmClient(target, options) {
257
+ if (options.client)
258
+ return options.client;
259
+ const configuration = {
260
+ endpoint: (0, identity_js_1.canonicalAwsRegionalEndpoint)('ssm', target.region),
261
+ region: target.region,
262
+ };
263
+ if (options.profile) {
264
+ configuration.credentials = (0, credential_providers_1.fromIni)({
265
+ profile: options.profile,
266
+ ...(options.configFilepath
267
+ ? { configFilepath: options.configFilepath }
268
+ : {}),
269
+ ...(options.credentialsFilepath
270
+ ? { filepath: options.credentialsFilepath }
271
+ : {}),
272
+ });
273
+ }
274
+ return options.clientFactory
275
+ ? options.clientFactory(configuration)
276
+ : new client_ssm_1.SSMClient(configuration);
277
+ }
278
+ function missingParameter(error) {
279
+ return (error instanceof Error &&
280
+ (error.name === 'ParameterNotFound' ||
281
+ error.Code === 'ParameterNotFound'));
282
+ }
283
+ async function inspectWorkspaceStageOwnership(input, options = {}) {
284
+ const target = requireTarget(input);
285
+ const expectedOwner = createWorkspaceStageOwnerRecord(target);
286
+ const parameterName = workspaceStageOwnerParameterName(target.stage);
287
+ const parameterArn = workspaceStageOwnerParameterArn(target);
288
+ let response;
289
+ try {
290
+ response = await ssmClient(target, options).send(new client_ssm_1.GetParameterCommand({ Name: parameterName, WithDecryption: false }));
291
+ }
292
+ catch (error) {
293
+ if (missingParameter(error)) {
294
+ return {
295
+ accountId: target.accountId,
296
+ expectedOwner,
297
+ parameterArn,
298
+ parameterName,
299
+ region: target.region,
300
+ stage: target.stage,
301
+ status: 'unclaimed',
302
+ };
303
+ }
304
+ throw error;
305
+ }
306
+ const parameter = response.Parameter;
307
+ if (parameter?.ARN !== parameterArn ||
308
+ parameter.Name !== parameterName ||
309
+ parameter.Type !== 'String' ||
310
+ typeof parameter.Value !== 'string' ||
311
+ !Number.isSafeInteger(parameter.Version) ||
312
+ (parameter.Version ?? 0) < 1) {
313
+ return {
314
+ accountId: target.accountId,
315
+ expectedOwner,
316
+ parameterArn,
317
+ parameterName,
318
+ reason: 'unexpected-identity',
319
+ region: target.region,
320
+ stage: target.stage,
321
+ status: 'conflict',
322
+ };
323
+ }
324
+ let actualOwner;
325
+ try {
326
+ actualOwner = parseWorkspaceStageOwner(parameter.Value);
327
+ }
328
+ catch {
329
+ return {
330
+ accountId: target.accountId,
331
+ expectedOwner,
332
+ parameterArn,
333
+ parameterName,
334
+ reason: 'malformed-record',
335
+ region: target.region,
336
+ stage: target.stage,
337
+ status: 'conflict',
338
+ };
339
+ }
340
+ if (canonicalWorkspaceStageOwner(actualOwner) !==
341
+ canonicalWorkspaceStageOwner(target)) {
342
+ return {
343
+ accountId: target.accountId,
344
+ actualOwner,
345
+ expectedOwner,
346
+ parameterArn,
347
+ parameterName,
348
+ reason: 'different-owner',
349
+ region: target.region,
350
+ stage: target.stage,
351
+ status: 'conflict',
352
+ };
353
+ }
354
+ return {
355
+ accountId: target.accountId,
356
+ expectedOwner,
357
+ parameterArn,
358
+ parameterName,
359
+ region: target.region,
360
+ stage: target.stage,
361
+ status: 'owned',
362
+ };
363
+ }
364
+ async function assertWorkspaceStageOwnership(input, options = {}) {
365
+ const result = await inspectWorkspaceStageOwnership(input, options);
366
+ if (result.status === 'unclaimed') {
367
+ throw new Error(`AWS tuple ${result.accountId}/${result.region}/${result.stage} has no EBK workspace owner claim. Apply the exact generated workspace-owner claim before authority or SST lifecycle operations. Existing deployments require committed migration evidence; they are never claimed implicitly.`);
368
+ }
369
+ if (result.status === 'conflict') {
370
+ const target = requireTarget(input);
371
+ const actual = result.actualOwner
372
+ ? result.actualOwner.workspaceDeploymentId
373
+ : result.reason;
374
+ throw new Error(`AWS tuple ${result.accountId}/${result.region}/${result.stage} is owned by ${actual}, not ${target.workspaceName} (${result.expectedOwner.workspaceDeploymentId}). No SST child or AWS application mutation is permitted.`);
375
+ }
376
+ return result;
377
+ }
378
+ async function assertWorkspaceStageOwnershipForWorkspace(workspaceRoot, stage, options = {}) {
379
+ return assertWorkspaceStageOwnership(workspaceStageOwnershipTarget(workspaceRoot, stage), options);
380
+ }
381
+ //# sourceMappingURL=ownership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership.js","sourceRoot":"","sources":["../../../../../packages/nx/src/workspace-deployment/ownership.ts"],"names":[],"mappings":"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"}