@empire-builder-kit/nx 1.0.0-rc.4 → 1.0.0-rc.40

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 (791) hide show
  1. package/README.md +18 -0
  2. package/executors.json +21 -1
  3. package/generators.json +10 -0
  4. package/package.json +31 -7
  5. package/src/aws/child-environment.d.ts +10 -0
  6. package/src/aws/child-environment.js +77 -0
  7. package/src/aws/identity.d.ts +13 -0
  8. package/src/aws/identity.js +41 -0
  9. package/src/aws-authority/index.d.ts +2 -0
  10. package/src/aws-authority/index.js +6 -0
  11. package/src/aws-authority/lambda-policy-ordering.d.ts +38 -0
  12. package/src/aws-authority/lambda-policy-ordering.js +56 -0
  13. package/src/aws-authority/stage-authority.d.ts +248 -0
  14. package/src/aws-authority/stage-authority.js +3558 -0
  15. package/src/blueprints/external-sandbox.js +21 -9
  16. package/src/blueprints/manifest.d.ts +1 -1
  17. package/src/blueprints/resolver.js +28 -15
  18. package/src/cli/bootstrap.d.ts +1 -1
  19. package/src/cli/deploy-runtime.d.ts +6 -0
  20. package/src/cli/deploy-runtime.js +58 -0
  21. package/src/cli/dev-command.d.ts +16 -4
  22. package/src/cli/dev-command.js +63 -0
  23. package/src/cli/main.d.ts +9 -1
  24. package/src/cli/main.js +139 -20
  25. package/src/cli/output.d.ts +1 -1
  26. package/src/cli/output.js +1 -1
  27. package/src/developer-agent/context.js +41 -9
  28. package/src/developer-agent/generator-planning.js +20 -6
  29. package/src/developer-agent/git-inspection.d.ts +6 -2
  30. package/src/developer-agent/git-inspection.js +78 -6
  31. package/src/developer-agent/model.d.ts +5 -3
  32. package/src/developer-agent/model.js +4 -4
  33. package/src/developer-agent/operation-registry.d.ts +5 -0
  34. package/src/developer-agent/operation-registry.js +286 -40
  35. package/src/developer-agent/planning.js +16 -13
  36. package/src/developer-agent/preview-changes.d.ts +2 -0
  37. package/src/developer-agent/preview-changes.js +14 -2
  38. package/src/developer-agent/preview-source.js +3 -0
  39. package/src/developer-agent/validation.js +25 -9
  40. package/src/developer-agent/workspace-inspection.js +60 -5
  41. package/src/executors/blueprint-trust/blueprint-trust.js +6 -0
  42. package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
  43. package/src/executors/deployment-plan/deployment-plan.js +57 -2
  44. package/src/executors/dev-doctor/dev-doctor.js +13 -6
  45. package/src/executors/dev-task-cleanup/dev-task-cleanup.d.ts +23 -0
  46. package/src/executors/dev-task-cleanup/dev-task-cleanup.js +145 -0
  47. package/src/executors/dev-task-cleanup/schema.json +9 -0
  48. package/src/executors/dev-task-cleanup/task-stack-absence.d.ts +27 -0
  49. package/src/executors/dev-task-cleanup/task-stack-absence.js +281 -0
  50. package/src/executors/dev-task-cleanup/task-stack-checkpoint.d.ts +12 -0
  51. package/src/executors/dev-task-cleanup/task-stack-checkpoint.js +92 -0
  52. package/src/executors/fleet/fleet.js +1 -1
  53. package/src/executors/foundation-preflight/foundation-preflight.d.ts +1 -0
  54. package/src/executors/foundation-preflight/foundation-preflight.js +6 -2
  55. package/src/executors/foundation-preflight/schema.json +5 -0
  56. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +13 -2
  57. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -31
  58. package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +65 -0
  59. package/src/executors/foundation-profile-preflight/production-database-safeguard.js +223 -0
  60. package/src/executors/foundation-profile-preflight/schema.json +15 -4
  61. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
  62. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +70 -20
  63. package/src/executors/foundation-remove-preflight/schema.json +6 -1
  64. package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
  65. package/src/executors/github-bootstrap/github-bootstrap.js +3 -0
  66. package/src/executors/github-bootstrap/schema.json +7 -1
  67. package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +29 -136
  68. package/src/executors/infrastructure-plan/infrastructure-plan.js +230 -3282
  69. package/src/executors/infrastructure-plan/schema.json +12 -52
  70. package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
  71. package/src/executors/local-deploy/federated-credential-transport.js +252 -0
  72. package/src/executors/local-deploy/local-approval.d.ts +18 -0
  73. package/src/executors/local-deploy/local-approval.js +39 -0
  74. package/src/executors/local-deploy/local-deploy.d.ts +112 -0
  75. package/src/executors/local-deploy/local-deploy.js +1404 -0
  76. package/src/executors/local-deploy/schema.json +70 -0
  77. package/src/executors/refresh/refresh.js +2 -2
  78. package/src/executors/remove/remove.js +2 -2
  79. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +42 -0
  80. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +1229 -0
  81. package/src/executors/router-waf-rehearsal/schema.json +29 -0
  82. package/src/executors/secret-initialize/schema.json +42 -0
  83. package/src/executors/secret-initialize/secret-initialize.d.ts +34 -0
  84. package/src/executors/secret-initialize/secret-initialize.js +297 -0
  85. package/src/executors/secret-metadata/schema.json +5 -0
  86. package/src/executors/secret-metadata/secret-metadata.d.ts +16 -2
  87. package/src/executors/secret-metadata/secret-metadata.js +129 -30
  88. package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
  89. package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
  90. package/src/executors/sst-lifecycle/governed-native-operation.d.ts +48 -0
  91. package/src/executors/sst-lifecycle/governed-native-operation.js +162 -0
  92. package/src/executors/sst-lifecycle/logging-preflight.d.ts +5 -0
  93. package/src/executors/sst-lifecycle/logging-preflight.js +23 -13
  94. package/src/executors/sst-lifecycle/run-sst-command.d.ts +40 -6
  95. package/src/executors/sst-lifecycle/run-sst-command.js +779 -70
  96. package/src/executors/sst-lifecycle/schema.json +8 -1
  97. package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
  98. package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
  99. package/src/executors/sst-lifecycle/sst-environment-source.d.ts +33 -0
  100. package/src/executors/sst-lifecycle/sst-environment-source.js +267 -0
  101. package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
  102. package/src/executors/sst-lifecycle/task-unlock.js +126 -0
  103. package/src/executors/unlock/unlock.js +2 -2
  104. package/src/foundation/capability-plan.d.ts +43 -0
  105. package/src/foundation/capability-plan.js +168 -0
  106. package/src/foundation/discovery.d.ts +14 -11
  107. package/src/foundation/discovery.js +32 -6
  108. package/src/foundation/index.d.ts +4 -0
  109. package/src/foundation/index.js +11 -0
  110. package/src/foundation/local-database-contract.d.ts +20 -0
  111. package/src/foundation/local-database-contract.js +262 -13
  112. package/src/foundation/local-private-smoke-access.d.ts +20 -0
  113. package/src/foundation/local-private-smoke-access.js +197 -0
  114. package/src/foundation/logging-preflight.js +1 -1
  115. package/src/foundation/logging.d.ts +3 -1
  116. package/src/foundation/logging.js +1 -1
  117. package/src/foundation/partial-state.d.ts +10 -0
  118. package/src/foundation/partial-state.js +21 -0
  119. package/src/foundation/preflight.js +37 -18
  120. package/src/foundation/private-smoke-access.d.ts +25 -0
  121. package/src/foundation/private-smoke-access.js +135 -0
  122. package/src/foundation/private-smoke-admission.d.ts +45 -0
  123. package/src/foundation/private-smoke-admission.js +180 -0
  124. package/src/foundation/private-smoke-control-plane.d.ts +18 -0
  125. package/src/foundation/private-smoke-control-plane.js +184 -0
  126. package/src/foundation/provision-database-bindings.d.ts +5 -0
  127. package/src/foundation/provision-database-bindings.js +41 -8
  128. package/src/foundation/provision-logical-database.js +15 -8
  129. package/src/foundation/requirements.d.ts +3 -3
  130. package/src/foundation/requirements.js +24 -12
  131. package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
  132. package/src/foundation/router-waf-rate-rehearsal.js +210 -0
  133. package/src/foundation/router-waf.d.ts +149 -0
  134. package/src/foundation/router-waf.js +809 -0
  135. package/src/foundation/stages.d.ts +1 -0
  136. package/src/foundation/stages.js +11 -0
  137. package/src/generators/blueprint/blueprint.d.ts +5 -0
  138. package/src/generators/blueprint/blueprint.js +102 -0
  139. package/src/generators/blueprint/files.d.ts +6 -0
  140. package/src/generators/blueprint/files.js +217 -0
  141. package/src/generators/blueprint/schema.d.ts +4 -0
  142. package/src/generators/blueprint/schema.json +18 -0
  143. package/src/generators/formatting.d.ts +8 -0
  144. package/src/generators/formatting.js +141 -0
  145. package/src/generators/function/function.js +38 -17
  146. package/src/generators/logging-registry.d.ts +2 -0
  147. package/src/generators/logging-registry.js +22 -0
  148. package/src/generators/post-generation-install.js +2 -2
  149. package/src/generators/preset/dependency-overrides.d.ts +8 -0
  150. package/src/generators/preset/dependency-overrides.js +55 -0
  151. package/src/generators/preset/generator.js +43 -3
  152. package/src/generators/preset/schema.d.ts +10 -0
  153. package/src/generators/preset/schema.json +47 -0
  154. package/src/generators/preset/tool-versions.d.ts +2 -0
  155. package/src/generators/preset/tool-versions.js +3 -1
  156. package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
  157. package/src/generators/preset/workspace-files-adopter-skills.js +303 -0
  158. package/src/generators/preset/workspace-files-ci-acceptance.d.ts +1 -0
  159. package/src/generators/preset/workspace-files-ci-acceptance.js +791 -0
  160. package/src/generators/preset/workspace-files-ci-install.d.ts +2 -0
  161. package/src/generators/preset/workspace-files-ci-install.js +196 -0
  162. package/src/generators/preset/workspace-files-developer-agent.d.ts +2 -0
  163. package/src/generators/preset/workspace-files-developer-agent.js +90 -28
  164. package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
  165. package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
  166. package/src/generators/preset/workspace-files-foundation-workload-roles.js +5 -2
  167. package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
  168. package/src/generators/preset/workspace-files-performance-cost.js +8 -8
  169. package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
  170. package/src/generators/preset/workspace-files-performance-load.js +39 -25
  171. package/src/generators/preset/workspace-files-stage-authority.d.ts +6 -0
  172. package/src/generators/preset/workspace-files-stage-authority.js +518 -0
  173. package/src/generators/preset/workspace-files-thin-deploy.d.ts +55 -0
  174. package/src/generators/preset/workspace-files-thin-deploy.js +2473 -0
  175. package/src/generators/preset/workspace-files-thin-docs.d.ts +7 -0
  176. package/src/generators/preset/workspace-files-thin-docs.js +352 -0
  177. package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
  178. package/src/generators/preset/workspace-files-thin-release.js +26 -0
  179. package/src/generators/preset/workspace-files-workload-role-baseline.js +254 -42
  180. package/src/generators/preset/workspace-files.d.ts +18 -2
  181. package/src/generators/preset/workspace-files.js +1504 -608
  182. package/src/generators/repository-policy/repository-policy.js +235 -5
  183. package/src/generators/repository-policy/schema.d.ts +10 -0
  184. package/src/generators/repository-policy/schema.json +80 -4
  185. package/src/generators/repository-policy/tree-policy.d.ts +3 -0
  186. package/src/generators/repository-policy/tree-policy.js +25 -0
  187. package/src/generators/slice/built-in-plan-api-contract-files.js +42 -7
  188. package/src/generators/slice/built-in-plan-api-files.d.ts +1 -1
  189. package/src/generators/slice/built-in-plan-api-files.js +130 -414
  190. package/src/generators/slice/built-in-plan-async-work-files.js +166 -1969
  191. package/src/generators/slice/built-in-plan-authorization-files.js +92 -329
  192. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +60 -2
  193. package/src/generators/slice/built-in-plan-authorization-storage.d.ts +3 -0
  194. package/src/generators/slice/built-in-plan-authorization-storage.js +119 -0
  195. package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
  196. package/src/generators/slice/built-in-plan-background-work-files.js +99 -0
  197. package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
  198. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
  199. package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
  200. package/src/generators/slice/built-in-plan-data-files.js +163 -1196
  201. package/src/generators/slice/built-in-plan-data-lifecycle-files.js +53 -28
  202. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +37 -2
  203. package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2443
  204. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +50 -8
  205. package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
  206. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +44 -25
  207. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +20 -1
  208. package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
  209. package/src/generators/slice/built-in-plan-foundation-files.js +39 -18
  210. package/src/generators/slice/built-in-plan-frontend-files.js +7 -3
  211. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
  212. package/src/generators/slice/built-in-plan-infrastructure-files.js +933 -729
  213. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +67 -11
  214. package/src/generators/slice/built-in-plan-key-value-cleanup.d.ts +4 -0
  215. package/src/generators/slice/built-in-plan-key-value-cleanup.js +100 -0
  216. package/src/generators/slice/built-in-plan-key-value-consumer.d.ts +4 -0
  217. package/src/generators/slice/built-in-plan-key-value-consumer.js +151 -0
  218. package/src/generators/slice/built-in-plan-key-value-deletion.d.ts +2 -0
  219. package/src/generators/slice/built-in-plan-key-value-deletion.js +377 -0
  220. package/src/generators/slice/built-in-plan-key-value-delivery.d.ts +2 -0
  221. package/src/generators/slice/built-in-plan-key-value-delivery.js +137 -0
  222. package/src/generators/slice/built-in-plan-key-value-export.d.ts +2 -0
  223. package/src/generators/slice/built-in-plan-key-value-export.js +595 -0
  224. package/src/generators/slice/built-in-plan-key-value-files.d.ts +2 -0
  225. package/src/generators/slice/built-in-plan-key-value-files.js +31 -0
  226. package/src/generators/slice/built-in-plan-key-value-holds.d.ts +2 -0
  227. package/src/generators/slice/built-in-plan-key-value-holds.js +189 -0
  228. package/src/generators/slice/built-in-plan-key-value-infrastructure.d.ts +2 -0
  229. package/src/generators/slice/built-in-plan-key-value-infrastructure.js +102 -0
  230. package/src/generators/slice/built-in-plan-key-value-performance.d.ts +5 -0
  231. package/src/generators/slice/built-in-plan-key-value-performance.js +530 -0
  232. package/src/generators/slice/built-in-plan-key-value-provider.d.ts +4 -0
  233. package/src/generators/slice/built-in-plan-key-value-provider.js +366 -0
  234. package/src/generators/slice/built-in-plan-key-value-records.d.ts +3 -0
  235. package/src/generators/slice/built-in-plan-key-value-records.js +232 -0
  236. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.d.ts +2 -0
  237. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.js +103 -0
  238. package/src/generators/slice/built-in-plan-key-value-retention-job-files.d.ts +2 -0
  239. package/src/generators/slice/built-in-plan-key-value-retention-job-files.js +160 -0
  240. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.d.ts +2 -0
  241. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.js +329 -0
  242. package/src/generators/slice/built-in-plan-key-value-retention-worker.d.ts +2 -0
  243. package/src/generators/slice/built-in-plan-key-value-retention-worker.js +477 -0
  244. package/src/generators/slice/built-in-plan-key-value-retention.d.ts +2 -0
  245. package/src/generators/slice/built-in-plan-key-value-retention.js +184 -0
  246. package/src/generators/slice/built-in-plan-metadata-files.d.ts +1 -1
  247. package/src/generators/slice/built-in-plan-metadata-files.js +157 -28
  248. package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
  249. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +324 -0
  250. package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
  251. package/src/generators/slice/built-in-plan-operations-files.js +585 -97
  252. package/src/generators/slice/built-in-plan-performance-files.d.ts +2 -1
  253. package/src/generators/slice/built-in-plan-performance-files.js +220 -1074
  254. package/src/generators/slice/built-in-plan-project-files.js +141 -135
  255. package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
  256. package/src/generators/slice/built-in-plan-release-files.js +310 -70
  257. package/src/generators/slice/built-in-plan-reliability-files.d.ts +1 -1
  258. package/src/generators/slice/built-in-plan-reliability-files.js +279 -43
  259. package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
  260. package/src/generators/slice/built-in-plan-secret-runtime-files.js +87 -76
  261. package/src/generators/slice/built-in-plan-shared.d.ts +4 -2
  262. package/src/generators/slice/built-in-plan-shared.js +41 -19
  263. package/src/generators/slice/built-in-plan-sql-events.d.ts +2 -0
  264. package/src/generators/slice/built-in-plan-sql-events.js +276 -0
  265. package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
  266. package/src/generators/slice/built-in-plan-testing-files.js +304 -172
  267. package/src/generators/slice/built-in-plan-testing-persistence-files.d.ts +2 -0
  268. package/src/generators/slice/built-in-plan-testing-persistence-files.js +178 -0
  269. package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
  270. package/src/generators/slice/built-in-plan-thin-release-files.js +162 -0
  271. package/src/generators/slice/built-in-plan-verification-files.js +76 -2
  272. package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
  273. package/src/generators/slice/built-in-plan-web-files.js +223 -16
  274. package/src/generators/slice/built-in-plan-workload-role-files.d.ts +1 -1
  275. package/src/generators/slice/built-in-plan-workload-role-files.js +143 -279
  276. package/src/generators/slice/built-in-plan.d.ts +11 -1
  277. package/src/generators/slice/built-in-plan.js +80 -29
  278. package/src/generators/slice/data-policy-review-seed.d.ts +2 -0
  279. package/src/generators/slice/data-policy-review-seed.js +22 -0
  280. package/src/generators/slice/deployed-smoke-readiness.d.ts +2 -0
  281. package/src/generators/slice/deployed-smoke-readiness.js +214 -0
  282. package/src/generators/slice/local-source-identity.d.ts +2 -0
  283. package/src/generators/slice/local-source-identity.js +31 -0
  284. package/src/generators/slice/persistence-contract.d.ts +14 -0
  285. package/src/generators/slice/persistence-contract.js +32 -0
  286. package/src/generators/slice/slice.js +61 -50
  287. package/src/generators/sql/schema.d.ts +7 -0
  288. package/src/generators/sql/schema.json +38 -0
  289. package/src/generators/sql/sql.d.ts +6 -0
  290. package/src/generators/sql/sql.js +53 -0
  291. package/src/generators/upgrade/sql-seeded-reconciliation.d.ts +2 -0
  292. package/src/generators/upgrade/sql-seeded-reconciliation.js +170 -0
  293. package/src/generators/upgrade/upgrade.d.ts +15 -1
  294. package/src/generators/upgrade/upgrade.js +435 -44
  295. package/src/generators/workload/performance-registration.d.ts +1 -0
  296. package/src/generators/workload/performance-registration.js +9 -11
  297. package/src/generators/workload/service-performance-files.d.ts +1 -0
  298. package/src/generators/workload/service-performance-files.js +27 -7
  299. package/src/generators/workload/workload.d.ts +1 -1
  300. package/src/generators/workload/workload.js +105 -29
  301. package/src/git-policy/action-pins.d.ts +5 -0
  302. package/src/git-policy/action-pins.js +5 -0
  303. package/src/git-policy/github-bootstrap.d.ts +39 -8
  304. package/src/git-policy/github-bootstrap.js +329 -175
  305. package/src/git-policy/routing.d.ts +7 -1
  306. package/src/git-policy/routing.js +62 -1
  307. package/src/index.d.ts +1 -0
  308. package/src/index.js +1 -0
  309. package/src/infrastructure-change/local-capability.d.ts +73 -0
  310. package/src/infrastructure-change/local-capability.js +114 -0
  311. package/src/infrastructure-change/model.d.ts +25 -4
  312. package/src/infrastructure-change/model.js +1 -0
  313. package/src/infrastructure-change/normalize.d.ts +4 -0
  314. package/src/infrastructure-change/normalize.js +47 -7
  315. package/src/infrastructure-change/plan.d.ts +30 -3
  316. package/src/infrastructure-change/plan.js +323 -13
  317. package/src/infrastructure-change/risk.d.ts +3 -1
  318. package/src/infrastructure-change/risk.js +96 -16
  319. package/src/local-dev/browser-verification.d.ts +37 -0
  320. package/src/local-dev/browser-verification.js +281 -0
  321. package/src/local-dev/contracts.d.ts +10 -1
  322. package/src/local-dev/contracts.js +114 -13
  323. package/src/local-dev/dev-command-core.js +24 -5
  324. package/src/local-dev/docker-credential-health.d.ts +14 -0
  325. package/src/local-dev/docker-credential-health.js +94 -0
  326. package/src/local-dev/environment-inspector.d.ts +7 -0
  327. package/src/local-dev/environment-inspector.js +42 -15
  328. package/src/local-dev/environment-state.js +2 -2
  329. package/src/local-dev/errors.d.ts +1 -1
  330. package/src/local-dev/errors.js +2 -0
  331. package/src/local-dev/fleet-client.js +2 -2
  332. package/src/local-dev/fleet-configuration.js +57 -25
  333. package/src/local-dev/fleet-inventory.js +46 -18
  334. package/src/local-dev/fleet-ipc.d.ts +7 -0
  335. package/src/local-dev/fleet-ipc.js +14 -2
  336. package/src/local-dev/fleet-launcher.d.ts +6 -0
  337. package/src/local-dev/fleet-launcher.js +14 -2
  338. package/src/local-dev/fleet-logs.js +50 -22
  339. package/src/local-dev/fleet-process.d.ts +20 -1
  340. package/src/local-dev/fleet-process.js +197 -41
  341. package/src/local-dev/fleet-runner-evidence.d.ts +5 -0
  342. package/src/local-dev/fleet-runner-evidence.js +56 -0
  343. package/src/local-dev/fleet-runtime.js +268 -229
  344. package/src/local-dev/fleet-session.d.ts +2 -0
  345. package/src/local-dev/fleet-session.js +28 -11
  346. package/src/local-dev/fleet-slice-runner-daemon.js +4 -0
  347. package/src/local-dev/fleet-state.d.ts +5 -2
  348. package/src/local-dev/fleet-state.js +25 -4
  349. package/src/local-dev/fleet-supervisor.d.ts +3 -0
  350. package/src/local-dev/fleet-supervisor.js +66 -11
  351. package/src/local-dev/fleet-web-start.d.ts +12 -0
  352. package/src/local-dev/fleet-web-start.js +48 -0
  353. package/src/local-dev/identity.js +3 -14
  354. package/src/local-dev/index.d.ts +1 -0
  355. package/src/local-dev/index.js +1 -0
  356. package/src/local-dev/native-completion.d.ts +9 -0
  357. package/src/local-dev/native-completion.js +130 -0
  358. package/src/local-dev/nx-workspace.d.ts +4 -2
  359. package/src/local-dev/nx-workspace.js +11 -6
  360. package/src/local-dev/personal-stage.d.ts +4 -5
  361. package/src/local-dev/personal-stage.js +6 -54
  362. package/src/local-dev/port-claims.d.ts +13 -0
  363. package/src/local-dev/port-claims.js +46 -0
  364. package/src/local-dev/ports.d.ts +14 -2
  365. package/src/local-dev/ports.js +78 -3
  366. package/src/local-dev/private-state.d.ts +11 -0
  367. package/src/local-dev/private-state.js +146 -40
  368. package/src/local-dev/process-group.d.ts +4 -0
  369. package/src/local-dev/process-group.js +29 -0
  370. package/src/local-dev/process-identity.d.ts +8 -0
  371. package/src/local-dev/process-identity.js +31 -1
  372. package/src/local-dev/proxy.js +11 -12
  373. package/src/local-dev/runtime-paths.js +1 -1
  374. package/src/local-dev/slice-claim.js +1 -1
  375. package/src/local-dev/slice-runner.d.ts +15 -6
  376. package/src/local-dev/slice-runner.js +189 -54
  377. package/src/local-dev/task-attachment.d.ts +17 -0
  378. package/src/local-dev/task-attachment.js +73 -0
  379. package/src/local-dev/task-authority.d.ts +10 -0
  380. package/src/local-dev/task-authority.js +27 -0
  381. package/src/local-dev/task-identity.d.ts +33 -0
  382. package/src/local-dev/task-identity.js +418 -0
  383. package/src/local-dev/task-native-writer.d.ts +18 -0
  384. package/src/local-dev/task-native-writer.js +329 -0
  385. package/src/local-dev/tls.js +8 -2
  386. package/src/local-dev/web-launch.d.ts +9 -0
  387. package/src/local-dev/web-launch.js +130 -0
  388. package/src/ownership/composition.d.ts +2 -1
  389. package/src/ownership/composition.js +1 -0
  390. package/src/performance/cost-collection.d.ts +1 -1
  391. package/src/performance/cost-collection.js +4 -2
  392. package/src/performance/cost-controls.d.ts +8 -4
  393. package/src/performance/cost-controls.js +39 -28
  394. package/src/performance/evidence.d.ts +1 -1
  395. package/src/performance/evidence.js +5 -3
  396. package/src/performance/load-safety.js +5 -3
  397. package/src/performance/model.d.ts +4 -4
  398. package/src/performance/model.js +4 -5
  399. package/src/performance/scenario.d.ts +22 -0
  400. package/src/performance/scenario.js +100 -92
  401. package/src/release/index.d.ts +0 -2
  402. package/src/release/index.js +0 -2
  403. package/src/release/source-authority.d.ts +5 -5
  404. package/src/release/source-authority.js +141 -124
  405. package/src/repository-policy/aurora-preflight.d.ts +1 -1
  406. package/src/repository-policy/aurora-preflight.js +4 -1
  407. package/src/repository-policy/capacity-migration.d.ts +3 -0
  408. package/src/repository-policy/capacity-migration.js +21 -0
  409. package/src/repository-policy/deployment-plan.d.ts +4 -1
  410. package/src/repository-policy/deployment-plan.js +9 -0
  411. package/src/repository-policy/foundation-profile.js +10 -1
  412. package/src/repository-policy/policy.d.ts +57 -3
  413. package/src/repository-policy/policy.js +497 -11
  414. package/src/schemas/blueprint-v1.json +5 -4
  415. package/src/schemas/foundation-requirement-v1.json +5 -4
  416. package/src/schemas/performance-policy-v1.json +3 -3
  417. package/src/schemas/repository-policy-v1.json +130 -6
  418. package/src/schemas/testing-evidence-result-v1.json +1 -1
  419. package/src/secrets/adapters.d.ts +7 -2
  420. package/src/secrets/adapters.js +34 -3
  421. package/src/secrets/aws-control-plane.d.ts +10 -1
  422. package/src/secrets/aws-control-plane.js +67 -0
  423. package/src/secrets/generated-aws-control-plane.d.ts +23 -0
  424. package/src/secrets/generated-aws-control-plane.js +259 -0
  425. package/src/secrets/metadata.js +38 -10
  426. package/src/secrets/model.d.ts +8 -1
  427. package/src/secrets/model.js +24 -3
  428. package/src/secrets/operator.d.ts +91 -3
  429. package/src/secrets/operator.js +463 -13
  430. package/src/secrets/registry.d.ts +2 -1
  431. package/src/secrets/registry.js +18 -1
  432. package/src/secrets/verification.js +9 -1
  433. package/src/secrets/workload-access.js +10 -2
  434. package/src/sst-environment-source-format.d.ts +6 -0
  435. package/src/sst-environment-source-format.js +199 -0
  436. package/src/supply-chain/action-pins.js +61 -7
  437. package/src/supply-chain/blueprint-trust-git.js +85 -24
  438. package/src/supply-chain/blueprint-verification-authority.js +55 -3
  439. package/src/supply-chain/build-output-bounds.d.ts +2 -0
  440. package/src/supply-chain/build-output-bounds.js +12 -0
  441. package/src/supply-chain/build-output.d.ts +7 -1
  442. package/src/supply-chain/build-output.js +177 -24
  443. package/src/supply-chain/ecr-scanning.d.ts +5 -3
  444. package/src/supply-chain/ecr-scanning.js +11 -7
  445. package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
  446. package/src/supply-chain/ecs-deployed-image.js +6 -4
  447. package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
  448. package/src/supply-chain/generated-command.js +1 -0
  449. package/src/supply-chain/generated-container-release-command.js +1285 -124
  450. package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
  451. package/src/supply-chain/generated-ecr-collector-command.js +200 -93
  452. package/src/supply-chain/generated-files.js +25 -14
  453. package/src/supply-chain/generated-scanner-command.js +2 -1
  454. package/src/supply-chain/index.d.ts +1 -1
  455. package/src/supply-chain/index.js +2 -1
  456. package/src/supply-chain/sbom.d.ts +1 -1
  457. package/src/supply-chain/sbom.js +30 -5
  458. package/src/supply-chain/scanner.js +3 -0
  459. package/src/testing-evidence/fixture-scope.d.ts +2 -1
  460. package/src/testing-evidence/fixture-scope.js +4 -2
  461. package/src/testing-evidence/result.d.ts +2 -1
  462. package/src/testing-evidence/result.js +18 -4
  463. package/src/workload-roles/account-baseline.d.ts +11 -0
  464. package/src/workload-roles/account-baseline.js +253 -16
  465. package/src/workload-roles/authority.d.ts +3 -1
  466. package/src/workload-roles/authority.js +48 -2
  467. package/src/workload-roles/aws-s3-state.js +27 -0
  468. package/src/workload-roles/boundary.d.ts +2 -1
  469. package/src/workload-roles/boundary.js +9 -2
  470. package/src/workload-roles/handler.js +52 -24
  471. package/src/workload-roles/index.d.ts +10 -17
  472. package/src/workload-roles/index.js +5 -18
  473. package/src/workload-roles/injection.js +1 -1
  474. package/src/workload-roles/provisioner.js +12 -4
  475. package/src/workload-roles/registration.d.ts +1 -0
  476. package/src/workload-roles/registration.js +5 -0
  477. package/src/workload-roles/stage-boundary.js +1 -1
  478. package/src/workload-roles/standard-slice.js +3 -3
  479. package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
  480. package/src/workspace-deployment/affected-lifecycle.js +84 -0
  481. package/src/workspace-deployment/identity.d.ts +3 -0
  482. package/src/workspace-deployment/identity.js +22 -0
  483. package/src/workspace-deployment/index.d.ts +4 -0
  484. package/src/workspace-deployment/index.js +8 -0
  485. package/src/workspace-deployment/migration-evidence.d.ts +29 -0
  486. package/src/workspace-deployment/migration-evidence.js +83 -0
  487. package/src/workspace-deployment/migration.d.ts +27 -0
  488. package/src/workspace-deployment/migration.js +109 -0
  489. package/src/workspace-deployment/ownership.d.ts +81 -0
  490. package/src/workspace-deployment/ownership.js +381 -0
  491. package/src/api-contract/baseline-update.js.map +0 -1
  492. package/src/api-contract/compatibility.js.map +0 -1
  493. package/src/api-contract/contract-graph.js.map +0 -1
  494. package/src/api-contract/evidence.js.map +0 -1
  495. package/src/api-contract/index.js.map +0 -1
  496. package/src/api-contract/model.fixtures.d.ts +0 -2
  497. package/src/api-contract/model.fixtures.js +0 -81
  498. package/src/api-contract/model.fixtures.js.map +0 -1
  499. package/src/api-contract/model.js.map +0 -1
  500. package/src/api-contract/rollout.js.map +0 -1
  501. package/src/authorization/compatibility.js.map +0 -1
  502. package/src/authorization/index.js.map +0 -1
  503. package/src/blueprints/execution.js.map +0 -1
  504. package/src/blueprints/external-sandbox.js.map +0 -1
  505. package/src/blueprints/index.js.map +0 -1
  506. package/src/blueprints/inputs.js.map +0 -1
  507. package/src/blueprints/manifest.js.map +0 -1
  508. package/src/blueprints/resolver.js.map +0 -1
  509. package/src/blueprints/transitions.js.map +0 -1
  510. package/src/cli/agent-command.js.map +0 -1
  511. package/src/cli/agent-runtime.js.map +0 -1
  512. package/src/cli/blueprint-authority.js.map +0 -1
  513. package/src/cli/blueprint-command.js.map +0 -1
  514. package/src/cli/bootstrap.js.map +0 -1
  515. package/src/cli/dev-command.js.map +0 -1
  516. package/src/cli/main.js.map +0 -1
  517. package/src/cli/output.js.map +0 -1
  518. package/src/cli/personal-secret-runtime.js.map +0 -1
  519. package/src/cli/secret-terminal.js.map +0 -1
  520. package/src/container-images.js.map +0 -1
  521. package/src/data-lifecycle/index.js.map +0 -1
  522. package/src/data-lifecycle/model.fixtures.d.ts +0 -2
  523. package/src/data-lifecycle/model.fixtures.js +0 -244
  524. package/src/data-lifecycle/model.fixtures.js.map +0 -1
  525. package/src/data-lifecycle/model.js.map +0 -1
  526. package/src/data-lifecycle/sensitive-artifacts.js.map +0 -1
  527. package/src/data-lifecycle/validation.js.map +0 -1
  528. package/src/database-retirement/contract.js.map +0 -1
  529. package/src/database-retirement/index.js.map +0 -1
  530. package/src/deterministic-order.js.map +0 -1
  531. package/src/developer-agent/context.js.map +0 -1
  532. package/src/developer-agent/generator-planning.js.map +0 -1
  533. package/src/developer-agent/generator-preview.js.map +0 -1
  534. package/src/developer-agent/git-inspection.js.map +0 -1
  535. package/src/developer-agent/handoff.js.map +0 -1
  536. package/src/developer-agent/index.js.map +0 -1
  537. package/src/developer-agent/model.js.map +0 -1
  538. package/src/developer-agent/operation-registry.js.map +0 -1
  539. package/src/developer-agent/ordering.js.map +0 -1
  540. package/src/developer-agent/planning.js.map +0 -1
  541. package/src/developer-agent/preview-changes.js.map +0 -1
  542. package/src/developer-agent/preview-source.js.map +0 -1
  543. package/src/developer-agent/validation.js.map +0 -1
  544. package/src/developer-agent/workspace-inspection.js.map +0 -1
  545. package/src/developer-agent/workspace-path.js.map +0 -1
  546. package/src/executors/blueprint-trust/blueprint-trust.js.map +0 -1
  547. package/src/executors/blueprint-verification/blueprint-verification.js.map +0 -1
  548. package/src/executors/deploy/deploy.js.map +0 -1
  549. package/src/executors/deployment-plan/deployment-plan.js.map +0 -1
  550. package/src/executors/dev/dev.js.map +0 -1
  551. package/src/executors/dev-doctor/dev-doctor.js.map +0 -1
  552. package/src/executors/dev-setup/dev-setup.js.map +0 -1
  553. package/src/executors/developer-context/developer-context.js.map +0 -1
  554. package/src/executors/fleet/fleet.js.map +0 -1
  555. package/src/executors/foundation-preflight/foundation-preflight.js.map +0 -1
  556. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +0 -1
  557. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +0 -1
  558. package/src/executors/github-bootstrap/github-bootstrap.js.map +0 -1
  559. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +0 -1
  560. package/src/executors/refresh/refresh.js.map +0 -1
  561. package/src/executors/remove/remove.js.map +0 -1
  562. package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
  563. package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
  564. package/src/executors/sst-lifecycle/logging-preflight.js.map +0 -1
  565. package/src/executors/sst-lifecycle/run-sst-command.js.map +0 -1
  566. package/src/executors/sst-lifecycle/secret-preflight.js.map +0 -1
  567. package/src/executors/unlock/unlock.js.map +0 -1
  568. package/src/executors/work-markers/work-markers.js.map +0 -1
  569. package/src/foundation/discovery.js.map +0 -1
  570. package/src/foundation/index.js.map +0 -1
  571. package/src/foundation/local-database-contract.js.map +0 -1
  572. package/src/foundation/logging-preflight.js.map +0 -1
  573. package/src/foundation/logging.js.map +0 -1
  574. package/src/foundation/preflight.js.map +0 -1
  575. package/src/foundation/provision-database-bindings.js.map +0 -1
  576. package/src/foundation/provision-logical-database.js.map +0 -1
  577. package/src/foundation/requirements.js.map +0 -1
  578. package/src/foundation/router-origin-proof.js.map +0 -1
  579. package/src/foundation/stages.js.map +0 -1
  580. package/src/frontend-security/index.js.map +0 -1
  581. package/src/frontend-security/security-headers.js.map +0 -1
  582. package/src/generators/feature-registry.js.map +0 -1
  583. package/src/generators/function/function.js.map +0 -1
  584. package/src/generators/job/job.js.map +0 -1
  585. package/src/generators/logging-registry.js.map +0 -1
  586. package/src/generators/post-generation-install.js.map +0 -1
  587. package/src/generators/preset/generator.js.map +0 -1
  588. package/src/generators/preset/tool-versions.js.map +0 -1
  589. package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
  590. package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +0 -1
  591. package/src/generators/preset/workspace-files-performance-cost.js.map +0 -1
  592. package/src/generators/preset/workspace-files-performance-load.js.map +0 -1
  593. package/src/generators/preset/workspace-files-workload-role-baseline.js.map +0 -1
  594. package/src/generators/preset/workspace-files.js.map +0 -1
  595. package/src/generators/repository-policy/repository-policy.js.map +0 -1
  596. package/src/generators/service/service.js.map +0 -1
  597. package/src/generators/slice/built-in-plan-api-contract-files.js.map +0 -1
  598. package/src/generators/slice/built-in-plan-api-files.js.map +0 -1
  599. package/src/generators/slice/built-in-plan-async-work-files.js.map +0 -1
  600. package/src/generators/slice/built-in-plan-authorization-files.js.map +0 -1
  601. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +0 -1
  602. package/src/generators/slice/built-in-plan-data-deletion-files.js.map +0 -1
  603. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +0 -1
  604. package/src/generators/slice/built-in-plan-data-files.js.map +0 -1
  605. package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +0 -1
  606. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +0 -1
  607. package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +0 -1
  608. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +0 -1
  609. package/src/generators/slice/built-in-plan-data-rights-files.js.map +0 -1
  610. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +0 -1
  611. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +0 -1
  612. package/src/generators/slice/built-in-plan-foundation-files.js.map +0 -1
  613. package/src/generators/slice/built-in-plan-frontend-files.js.map +0 -1
  614. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +0 -1
  615. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +0 -1
  616. package/src/generators/slice/built-in-plan-metadata-files.js.map +0 -1
  617. package/src/generators/slice/built-in-plan-operations-files.js.map +0 -1
  618. package/src/generators/slice/built-in-plan-performance-files.js.map +0 -1
  619. package/src/generators/slice/built-in-plan-project-files.js.map +0 -1
  620. package/src/generators/slice/built-in-plan-release-files.js.map +0 -1
  621. package/src/generators/slice/built-in-plan-reliability-files.js.map +0 -1
  622. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +0 -1
  623. package/src/generators/slice/built-in-plan-shared.js.map +0 -1
  624. package/src/generators/slice/built-in-plan-testing-files.js.map +0 -1
  625. package/src/generators/slice/built-in-plan-verification-files.js.map +0 -1
  626. package/src/generators/slice/built-in-plan-web-files.js.map +0 -1
  627. package/src/generators/slice/built-in-plan-workload-role-files.js.map +0 -1
  628. package/src/generators/slice/built-in-plan.js.map +0 -1
  629. package/src/generators/slice/slice.js.map +0 -1
  630. package/src/generators/upgrade/upgrade.js.map +0 -1
  631. package/src/generators/workload/frozen-container.js.map +0 -1
  632. package/src/generators/workload/performance-registration.js.map +0 -1
  633. package/src/generators/workload/reliability-registration.js.map +0 -1
  634. package/src/generators/workload/service-performance-files.js.map +0 -1
  635. package/src/generators/workload/workload.js.map +0 -1
  636. package/src/git-policy/action-pins.js.map +0 -1
  637. package/src/git-policy/github-bootstrap.js.map +0 -1
  638. package/src/git-policy/index.js.map +0 -1
  639. package/src/git-policy/routing.js.map +0 -1
  640. package/src/index.js.map +0 -1
  641. package/src/infrastructure-change/convergence.js.map +0 -1
  642. package/src/infrastructure-change/drift.js.map +0 -1
  643. package/src/infrastructure-change/index.js.map +0 -1
  644. package/src/infrastructure-change/model.js.map +0 -1
  645. package/src/infrastructure-change/normalize.js.map +0 -1
  646. package/src/infrastructure-change/plan.js.map +0 -1
  647. package/src/infrastructure-change/risk.js.map +0 -1
  648. package/src/infrastructure-change/summary.js.map +0 -1
  649. package/src/local-dev/context-discovery.js.map +0 -1
  650. package/src/local-dev/contract-validation.js.map +0 -1
  651. package/src/local-dev/contracts.js.map +0 -1
  652. package/src/local-dev/control-contract.js.map +0 -1
  653. package/src/local-dev/dev-command-core.js.map +0 -1
  654. package/src/local-dev/effects.js.map +0 -1
  655. package/src/local-dev/environment-inspector.js.map +0 -1
  656. package/src/local-dev/environment-state.js.map +0 -1
  657. package/src/local-dev/errors.js.map +0 -1
  658. package/src/local-dev/fleet-client.js.map +0 -1
  659. package/src/local-dev/fleet-configuration.js.map +0 -1
  660. package/src/local-dev/fleet-inventory.js.map +0 -1
  661. package/src/local-dev/fleet-ipc.js.map +0 -1
  662. package/src/local-dev/fleet-launcher.js.map +0 -1
  663. package/src/local-dev/fleet-lock.js.map +0 -1
  664. package/src/local-dev/fleet-logs.js.map +0 -1
  665. package/src/local-dev/fleet-process.js.map +0 -1
  666. package/src/local-dev/fleet-runtime.js.map +0 -1
  667. package/src/local-dev/fleet-session.js.map +0 -1
  668. package/src/local-dev/fleet-slice-runner-daemon.js.map +0 -1
  669. package/src/local-dev/fleet-startup.js.map +0 -1
  670. package/src/local-dev/fleet-state.js.map +0 -1
  671. package/src/local-dev/fleet-supervisor-daemon.js.map +0 -1
  672. package/src/local-dev/fleet-supervisor.js.map +0 -1
  673. package/src/local-dev/gateway-daemon.js.map +0 -1
  674. package/src/local-dev/gateway.js.map +0 -1
  675. package/src/local-dev/identity.js.map +0 -1
  676. package/src/local-dev/index.js.map +0 -1
  677. package/src/local-dev/local-context.js.map +0 -1
  678. package/src/local-dev/nx-workspace.js.map +0 -1
  679. package/src/local-dev/personal-secret-ledger.js.map +0 -1
  680. package/src/local-dev/personal-stage.js.map +0 -1
  681. package/src/local-dev/portless.js.map +0 -1
  682. package/src/local-dev/ports.js.map +0 -1
  683. package/src/local-dev/private-state.js.map +0 -1
  684. package/src/local-dev/process-identity.js.map +0 -1
  685. package/src/local-dev/proxy.js.map +0 -1
  686. package/src/local-dev/runtime-paths.js.map +0 -1
  687. package/src/local-dev/secret-slice-claim.js.map +0 -1
  688. package/src/local-dev/slice-claim.js.map +0 -1
  689. package/src/local-dev/slice-runner.js.map +0 -1
  690. package/src/local-dev/tls.js.map +0 -1
  691. package/src/ownership/composition.js.map +0 -1
  692. package/src/ownership/foundation-record.js.map +0 -1
  693. package/src/ownership/hash.js.map +0 -1
  694. package/src/ownership/index.js.map +0 -1
  695. package/src/ownership/json-ownership.js.map +0 -1
  696. package/src/ownership/record.js.map +0 -1
  697. package/src/ownership/workspace-record.js.map +0 -1
  698. package/src/performance/cost-collection.js.map +0 -1
  699. package/src/performance/cost-controls.js.map +0 -1
  700. package/src/performance/evidence.js.map +0 -1
  701. package/src/performance/index.js.map +0 -1
  702. package/src/performance/load-safety.js.map +0 -1
  703. package/src/performance/model.js.map +0 -1
  704. package/src/performance/pr-artifact-budget.js.map +0 -1
  705. package/src/performance/runner.js.map +0 -1
  706. package/src/performance/scenario-endpoint.js.map +0 -1
  707. package/src/performance/scenario.js.map +0 -1
  708. package/src/performance/test-fixtures.d.ts +0 -7
  709. package/src/performance/test-fixtures.js +0 -169
  710. package/src/performance/test-fixtures.js.map +0 -1
  711. package/src/performance/unit-cost.js.map +0 -1
  712. package/src/release/index.js.map +0 -1
  713. package/src/release/lifecycle.js.map +0 -1
  714. package/src/release/manifest.js.map +0 -1
  715. package/src/release/rollout.js.map +0 -1
  716. package/src/release/source-authority.js.map +0 -1
  717. package/src/repository-policy/aurora-preflight.js.map +0 -1
  718. package/src/repository-policy/deployment-plan.js.map +0 -1
  719. package/src/repository-policy/foundation-profile.js.map +0 -1
  720. package/src/repository-policy/index.js.map +0 -1
  721. package/src/repository-policy/policy.js.map +0 -1
  722. package/src/secrets/adapters.js.map +0 -1
  723. package/src/secrets/aws-control-plane.js.map +0 -1
  724. package/src/secrets/declaration-verification.js.map +0 -1
  725. package/src/secrets/guardrails.js.map +0 -1
  726. package/src/secrets/index.js.map +0 -1
  727. package/src/secrets/metadata.js.map +0 -1
  728. package/src/secrets/model.js.map +0 -1
  729. package/src/secrets/operator.js.map +0 -1
  730. package/src/secrets/permissions.js.map +0 -1
  731. package/src/secrets/personal-command.js.map +0 -1
  732. package/src/secrets/personal-ledger.js.map +0 -1
  733. package/src/secrets/registry.js.map +0 -1
  734. package/src/secrets/verification.js.map +0 -1
  735. package/src/secrets/workload-access.js.map +0 -1
  736. package/src/supply-chain/action-pins.js.map +0 -1
  737. package/src/supply-chain/blueprint-trust-git.js.map +0 -1
  738. package/src/supply-chain/blueprint-trust-process.js.map +0 -1
  739. package/src/supply-chain/blueprint-trust.js.map +0 -1
  740. package/src/supply-chain/blueprint-verification-authority.js.map +0 -1
  741. package/src/supply-chain/blueprint-verification-execution.js.map +0 -1
  742. package/src/supply-chain/build-output.js.map +0 -1
  743. package/src/supply-chain/common.js.map +0 -1
  744. package/src/supply-chain/container-artifact-contract.js.map +0 -1
  745. package/src/supply-chain/container-release.js.map +0 -1
  746. package/src/supply-chain/ecr-applicability.js.map +0 -1
  747. package/src/supply-chain/ecr-scanning.js.map +0 -1
  748. package/src/supply-chain/ecs-deployed-image.js.map +0 -1
  749. package/src/supply-chain/errors.js.map +0 -1
  750. package/src/supply-chain/generated-blueprint-trust-command.js.map +0 -1
  751. package/src/supply-chain/generated-command.js.map +0 -1
  752. package/src/supply-chain/generated-container-release-command.js.map +0 -1
  753. package/src/supply-chain/generated-ecr-collector-command.js.map +0 -1
  754. package/src/supply-chain/generated-files.js.map +0 -1
  755. package/src/supply-chain/generated-scanner-command.js.map +0 -1
  756. package/src/supply-chain/index.js.map +0 -1
  757. package/src/supply-chain/inventory.js.map +0 -1
  758. package/src/supply-chain/license-expression.js.map +0 -1
  759. package/src/supply-chain/pnpm-toolchain-authority.js.map +0 -1
  760. package/src/supply-chain/policy.js.map +0 -1
  761. package/src/supply-chain/publication.js.map +0 -1
  762. package/src/supply-chain/sbom.js.map +0 -1
  763. package/src/supply-chain/scanner.js.map +0 -1
  764. package/src/supply-chain/vendored-source.js.map +0 -1
  765. package/src/testing-evidence/fixture-scope.js.map +0 -1
  766. package/src/testing-evidence/index.js.map +0 -1
  767. package/src/testing-evidence/quarantine.js.map +0 -1
  768. package/src/testing-evidence/result.js.map +0 -1
  769. package/src/testing-evidence/runner-adapter.js.map +0 -1
  770. package/src/testing-evidence/sensitive-artifacts.js.map +0 -1
  771. package/src/validation.js.map +0 -1
  772. package/src/work-markers/index.js.map +0 -1
  773. package/src/work-markers/work-markers.js.map +0 -1
  774. package/src/workload-roles/account-baseline.js.map +0 -1
  775. package/src/workload-roles/authority.js.map +0 -1
  776. package/src/workload-roles/aws-adapter.js.map +0 -1
  777. package/src/workload-roles/aws-internal-handler.js.map +0 -1
  778. package/src/workload-roles/aws-s3-state.js.map +0 -1
  779. package/src/workload-roles/aws-sdk-control-plane.js.map +0 -1
  780. package/src/workload-roles/boundary.js.map +0 -1
  781. package/src/workload-roles/convergence.js.map +0 -1
  782. package/src/workload-roles/effective-policy.js.map +0 -1
  783. package/src/workload-roles/handler.js.map +0 -1
  784. package/src/workload-roles/history.js.map +0 -1
  785. package/src/workload-roles/index.js.map +0 -1
  786. package/src/workload-roles/injection.js.map +0 -1
  787. package/src/workload-roles/manifest.js.map +0 -1
  788. package/src/workload-roles/provisioner.js.map +0 -1
  789. package/src/workload-roles/registration.js.map +0 -1
  790. package/src/workload-roles/stage-boundary.js.map +0 -1
  791. package/src/workload-roles/standard-slice.js.map +0 -1
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.THIN_ECR_INSPECTOR_WORKFLOW_PATH = void 0;
4
+ exports.renderThinEcrInspectorWorkflow = renderThinEcrInspectorWorkflow;
5
+ exports.THIN_ECR_INSPECTOR_WORKFLOW_PATH = '.github/workflows/ecr-inspector-evidence.yml';
6
+ /** Render the postdeploy scanner against the thin lifecycle receipt artifact. */
7
+ function renderThinEcrInspectorWorkflow(options) {
8
+ const { actionPins, deploymentProfile, name, nodeVersion } = options;
9
+ const stageChoices = deploymentProfile === 'starter' ? 'production' : 'staging, production';
10
+ const stageBranchCases = deploymentProfile === 'starter'
11
+ ? 'production:main'
12
+ : 'staging:develop|production:main';
13
+ return {
14
+ [exports.THIN_ECR_INSPECTOR_WORKFLOW_PATH]: `name: ECR Inspector evidence
15
+
16
+ on:
17
+ workflow_dispatch:
18
+ inputs:
19
+ stage:
20
+ description: Exact deployed container stage
21
+ required: true
22
+ type: choice
23
+ options: [${stageChoices}]
24
+ deployment_commit:
25
+ description: Exact successful Deploy workflow commit
26
+ required: true
27
+ type: string
28
+ deploy_run_id:
29
+ description: Exact successful Deploy workflow run ID
30
+ required: true
31
+ type: string
32
+ deployment_receipt_artifact_name:
33
+ description: Exact deployment-receipt artifact from that run
34
+ required: true
35
+ type: string
36
+ slice:
37
+ description: Exact registered Product Slice
38
+ required: true
39
+ type: string
40
+ artifact_id:
41
+ description: Exact OCI artifact ID from operations/release.json
42
+ required: true
43
+ type: string
44
+ task_definition_family:
45
+ description: Exact deployed ECS task-definition family
46
+ required: true
47
+ type: string
48
+ deployment_kind:
49
+ description: Exact deployed ECS authority kind
50
+ required: true
51
+ type: choice
52
+ options: [service, task]
53
+ cluster_arn:
54
+ description: Exact ECS cluster ARN
55
+ required: true
56
+ type: string
57
+ deployment_arn:
58
+ description: Exact ECS service ARN or task ARN
59
+ required: true
60
+ type: string
61
+
62
+ concurrency:
63
+ group: ecr-inspector-\${{ inputs.stage }}-\${{ inputs.slice }}-\${{ inputs.artifact_id }}
64
+ cancel-in-progress: false
65
+
66
+ permissions:
67
+ contents: read
68
+
69
+ jobs:
70
+ collect:
71
+ name: exact deployed OCI and Inspector evidence
72
+ runs-on: ubuntu-latest
73
+ environment: ecr-inspector-\${{ inputs.stage }}
74
+ permissions:
75
+ actions: read
76
+ contents: read
77
+ id-token: write
78
+ env:
79
+ AWS_EVIDENCE_ROLE_ARN: \${{ secrets.AWS_ECR_INSPECTOR_EVIDENCE_ROLE_ARN }}
80
+ AWS_EXPECTED_ACCOUNT_ID: \${{ vars.AWS_EXPECTED_ACCOUNT_ID }}
81
+ AWS_REGION: \${{ vars.AWS_REGION }}
82
+ EBK_ARTIFACT_ID: \${{ inputs.artifact_id }}
83
+ EBK_CLUSTER_ARN: \${{ inputs.cluster_arn }}
84
+ EBK_DEPLOYMENT_ARN: \${{ inputs.deployment_arn }}
85
+ EBK_DEPLOYMENT_COMMIT: \${{ inputs.deployment_commit }}
86
+ EBK_DEPLOYMENT_KIND: \${{ inputs.deployment_kind }}
87
+ EBK_DEPLOYMENT_RECEIPT_ARTIFACT_NAME: \${{ inputs.deployment_receipt_artifact_name }}
88
+ EBK_DEPLOY_RUN_ID: \${{ inputs.deploy_run_id }}
89
+ EBK_SLICE: \${{ inputs.slice }}
90
+ EBK_STAGE: \${{ inputs.stage }}
91
+ EBK_TASK_DEFINITION_FAMILY: \${{ inputs.task_definition_family }}
92
+ GH_REPO: \${{ github.repository }}
93
+ GH_TOKEN: \${{ github.token }}
94
+ steps:
95
+ - name: Validate exact postdeploy evidence authority
96
+ run: |
97
+ set -euo pipefail
98
+ case "$EBK_DEPLOYMENT_COMMIT" in ''|*[!0-9a-f]*) exit 1 ;; esac
99
+ { [ "\${#EBK_DEPLOYMENT_COMMIT}" -eq 40 ] || [ "\${#EBK_DEPLOYMENT_COMMIT}" -eq 64 ]; } || exit 1
100
+ case "$EBK_DEPLOY_RUN_ID" in ''|0|*[!0-9]*) exit 1 ;; esac
101
+ case "$EBK_SLICE" in ''|-*|*-|*[!a-z0-9-]*) exit 1 ;; esac
102
+ expected_branch=develop
103
+ if [ "$EBK_STAGE" = production ]; then expected_branch=main; fi
104
+ case "$EBK_STAGE:$expected_branch" in ${stageBranchCases}) ;;
105
+ *) echo 'ECR evidence stage is inactive for this deployment profile'; exit 1 ;;
106
+ esac
107
+ prefix="deployment-receipt-$EBK_STAGE-$EBK_DEPLOY_RUN_ID-"
108
+ case "$EBK_DEPLOYMENT_RECEIPT_ARTIFACT_NAME" in
109
+ "$prefix"*) attempt="\${EBK_DEPLOYMENT_RECEIPT_ARTIFACT_NAME#"$prefix"}" ;;
110
+ *) echo 'Deployment receipt artifact does not bind the exact Deploy run'; exit 1 ;;
111
+ esac
112
+ case "$attempt" in ''|0*|*[!0-9]*) exit 1 ;; esac
113
+ echo "EBK_DEPLOY_RUN_ATTEMPT=$attempt" >> "$GITHUB_ENV"
114
+ run="$(gh api "/repos/$GH_REPO/actions/runs/$EBK_DEPLOY_RUN_ID")"
115
+ [ "$(printf '%s' "$run" | jq -r .conclusion)" = success ] &&
116
+ [ "$(printf '%s' "$run" | jq -r .run_attempt)" = "$attempt" ] &&
117
+ [ "$(printf '%s' "$run" | jq -r .head_sha)" = "$EBK_DEPLOYMENT_COMMIT" ] &&
118
+ [ "$(printf '%s' "$run" | jq -r .head_branch)" = "$expected_branch" ] &&
119
+ [ "$(printf '%s' "$run" | jq -r .path)" = .github/workflows/deploy.yml ] || {
120
+ echo 'Deploy run is not the exact successful protected source authority'; exit 1;
121
+ }
122
+ artifacts="$(gh api "/repos/$GH_REPO/actions/runs/$EBK_DEPLOY_RUN_ID/artifacts?per_page=100")"
123
+ count="$(printf '%s' "$artifacts" | jq --arg name "$EBK_DEPLOYMENT_RECEIPT_ARTIFACT_NAME" \
124
+ '[.artifacts[] | select(.name == $name and .expired == false)] | length')"
125
+ [ "$count" = 1 ] || { echo 'Exact unexpired deployment receipt is absent or ambiguous'; exit 1; }
126
+ - uses: ${actionPins.checkout}
127
+ with:
128
+ fetch-depth: 0
129
+ persist-credentials: false
130
+ ref: \${{ inputs.deployment_commit }}
131
+ - name: Restore exact deployment receipt and release binding
132
+ uses: ${actionPins.downloadArtifact}
133
+ with:
134
+ github-token: \${{ github.token }}
135
+ name: \${{ inputs.deployment_receipt_artifact_name }}
136
+ path: .
137
+ run-id: \${{ inputs.deploy_run_id }}
138
+ - id: candidate
139
+ name: Verify exact release-candidate artifact provenance
140
+ run: |
141
+ set -euo pipefail
142
+ binding=.ebk/evidence/deployment/postdeploy-supply-chain.json
143
+ test -f "$binding" || { echo 'Postdeploy release-candidate binding is absent'; exit 1; }
144
+ artifact_id="$(jq -r '.releaseCandidateArtifactId // empty' "$binding")"
145
+ artifact_digest="$(jq -r '.releaseCandidateArtifactDigest // empty' "$binding")"
146
+ candidate_source="$(jq -r '.releaseSourceCommit // empty' "$binding")"
147
+ producer_attempt="$(jq -r '.releaseCandidateProducerRunAttempt // empty' "$binding")"
148
+ producer_run_id="$(jq -r '.releaseCandidateProducerRunId // empty' "$binding")"
149
+ profile="$(jq -r '.profile // empty' "$binding")"
150
+ case "$artifact_id:$producer_attempt:$producer_run_id" in
151
+ *[!0-9:]*|:*|*:|*::*|0*:*|*:0*:*|*:0*) echo 'Candidate artifact provenance is malformed'; exit 1 ;;
152
+ esac
153
+ printf '%s' "$artifact_digest" | grep -Eq '^sha256:[0-9a-f]{64}$' || {
154
+ echo 'Candidate artifact digest is malformed'; exit 1;
155
+ }
156
+ case "$candidate_source" in ''|*[!0-9a-f]*) exit 1 ;; esac
157
+ { [ "\${#candidate_source}" -eq 40 ] || [ "\${#candidate_source}" -eq 64 ]; } || exit 1
158
+ expected_candidate_branch=develop
159
+ case "$profile:$EBK_STAGE" in
160
+ starter:production) expected_candidate_branch=main ;;
161
+ production-isolated:staging|production-isolated:production|fully-isolated:staging|fully-isolated:production) ;;
162
+ *) echo 'Candidate profile and protected ECR stage disagree'; exit 1 ;;
163
+ esac
164
+ artifact="$(gh api "/repos/$GH_REPO/actions/artifacts/$artifact_id")"
165
+ printf '%s' "$artifact" | jq -e \
166
+ --arg digest "$artifact_digest" \
167
+ --arg id "$artifact_id" \
168
+ --arg name "release-candidate-$candidate_source" \
169
+ --arg run "$producer_run_id" \
170
+ '(.id | tostring) == $id and .name == $name and .expired == false and .digest == $digest and (.workflow_run.id | tostring) == $run' \
171
+ >/dev/null || { echo 'Candidate artifact differs from the exact producer'; exit 1; }
172
+ producer="$(gh api "/repos/$GH_REPO/actions/runs/$producer_run_id")"
173
+ printf '%s' "$producer" | jq -e \
174
+ --arg attempt "$producer_attempt" \
175
+ --arg branch "$expected_candidate_branch" \
176
+ --arg run "$producer_run_id" \
177
+ --arg source "$candidate_source" \
178
+ '(.id | tostring) == $run and (.run_attempt | tostring) == $attempt and .head_sha == $source and .head_branch == $branch and .conclusion == "success" and .event == "push" and .path == ".github/workflows/ci.yml"' \
179
+ >/dev/null || { echo 'Candidate producer is not the exact successful protected CI run'; exit 1; }
180
+ echo "artifact_id=$artifact_id" >> "$GITHUB_OUTPUT"
181
+ echo "producer_run_id=$producer_run_id" >> "$GITHUB_OUTPUT"
182
+ echo "candidate_source=$candidate_source" >> "$GITHUB_OUTPUT"
183
+ - name: Require fresh original candidate destination
184
+ run: |
185
+ set -euo pipefail
186
+ test ! -e .ebk/evidence/ecr-original-release-candidate || {
187
+ echo 'Original candidate destination already exists'; exit 1;
188
+ }
189
+ - name: Download exact original release candidate
190
+ uses: ${actionPins.downloadArtifact}
191
+ with:
192
+ artifact-ids: \${{ steps.candidate.outputs.artifact_id }}
193
+ github-token: \${{ github.token }}
194
+ path: .ebk/evidence/ecr-original-release-candidate
195
+ run-id: \${{ steps.candidate.outputs.producer_run_id }}
196
+ - name: Verify downloaded release candidate identity
197
+ env:
198
+ EBK_CANDIDATE_SOURCE: \${{ steps.candidate.outputs.candidate_source }}
199
+ EBK_PRODUCER_RUN_ID: \${{ steps.candidate.outputs.producer_run_id }}
200
+ run: |
201
+ set -euo pipefail
202
+ candidate=.ebk/evidence/ecr-original-release-candidate/packages/$EBK_SLICE/candidate.json
203
+ test -f "$candidate" || { echo 'Exact Slice candidate is absent'; exit 1; }
204
+ jq -e \
205
+ --arg slice "$EBK_SLICE" \
206
+ --arg source "$EBK_CANDIDATE_SOURCE" \
207
+ --arg run "$EBK_PRODUCER_RUN_ID" \
208
+ '.kind == "ebk-release-candidate" and .schemaVersion == 1 and .slice == $slice and .sourceCommit == $source and (.provenance.runId | tostring) == $run' \
209
+ "$candidate" >/dev/null || { echo 'Downloaded candidate identity disagrees with its immutable artifact'; exit 1; }
210
+ - uses: ${actionPins.pnpmSetup}
211
+ - uses: ${actionPins.setupNode}
212
+ with:
213
+ node-version: ${nodeVersion}
214
+ cache: pnpm
215
+ - run: pnpm install --frozen-lockfile --ignore-scripts --ignore-pnpmfile
216
+ - name: Verify managed workspace integrity before AWS authority
217
+ run: pnpm nx run ${name}:workspace-health
218
+ - name: Validate read-only evidence role configuration
219
+ run: |
220
+ set -euo pipefail
221
+ test -n "$AWS_EVIDENCE_ROLE_ARN" && test -n "$AWS_EXPECTED_ACCOUNT_ID" && test -n "$AWS_REGION"
222
+ case "$AWS_EVIDENCE_ROLE_ARN" in
223
+ arn:aws:iam::$AWS_EXPECTED_ACCOUNT_ID:role/*) ;;
224
+ *) echo 'ECR evidence role does not belong to the expected account'; exit 1 ;;
225
+ esac
226
+ - uses: ${actionPins.configureAwsCredentials}
227
+ with:
228
+ role-to-assume: \${{ secrets.AWS_ECR_INSPECTOR_EVIDENCE_ROLE_ARN }}
229
+ role-session-name: ebk-ecr-inspector-\${{ github.run_id }}-\${{ github.run_attempt }}
230
+ aws-region: \${{ vars.AWS_REGION }}
231
+ - name: Collect exact deployed OCI and Inspector evidence
232
+ env:
233
+ ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
234
+ ACTIONS_ID_TOKEN_REQUEST_URL: ''
235
+ run: |
236
+ set -euo pipefail
237
+ [ "$(aws sts get-caller-identity --query Account --output text)" = "$AWS_EXPECTED_ACCOUNT_ID" ]
238
+ slice_root="packages/$EBK_SLICE"
239
+ test -d "$slice_root" || { echo 'Requested Product Slice is absent'; exit 1; }
240
+ input="$slice_root/.ebk/evidence/ecr-inspector-input.json"
241
+ EBK_COLLECTOR_INPUT="$input" node -e '
242
+ const { mkdirSync, writeFileSync } = require("node:fs");
243
+ const { dirname } = require("node:path");
244
+ const deployment = process.env.EBK_DEPLOYMENT_KIND === "service"
245
+ ? { clusterArn: process.env.EBK_CLUSTER_ARN, kind: "service", serviceArn: process.env.EBK_DEPLOYMENT_ARN }
246
+ : { clusterArn: process.env.EBK_CLUSTER_ARN, kind: "task", taskArn: process.env.EBK_DEPLOYMENT_ARN };
247
+ const record = {
248
+ accountId: process.env.AWS_EXPECTED_ACCOUNT_ID,
249
+ artifactId: process.env.EBK_ARTIFACT_ID,
250
+ deployment,
251
+ deployRunAttempt: process.env.EBK_DEPLOY_RUN_ATTEMPT,
252
+ deployRunId: process.env.EBK_DEPLOY_RUN_ID,
253
+ deploymentReceiptPath: "../../.ebk/evidence/deployment/latest.json",
254
+ outputDirectory: ".ebk/evidence/supply-chain/ecr-scans",
255
+ postdeployBindingPath: "../../.ebk/evidence/deployment/postdeploy-supply-chain.json",
256
+ region: process.env.AWS_REGION,
257
+ releaseCandidatePath: "../../.ebk/evidence/ecr-original-release-candidate/packages/" + process.env.EBK_SLICE + "/candidate.json",
258
+ schemaVersion: 1,
259
+ stage: process.env.EBK_STAGE,
260
+ taskDefinitionFamily: process.env.EBK_TASK_DEFINITION_FAMILY,
261
+ };
262
+ mkdirSync(dirname(process.env.EBK_COLLECTOR_INPUT), { recursive: true, mode: 0o700 });
263
+ writeFileSync(process.env.EBK_COLLECTOR_INPUT, JSON.stringify(record, null, 2) + "\\n", { flag: "wx", mode: 0o600 });
264
+ '
265
+ export EBK_ECR_SCAN_INPUT_PATH=.ebk/evidence/ecr-inspector-input.json
266
+ pnpm nx run "$EBK_SLICE:ecr-inspector-collect"
267
+ - name: Clear current ECR evidence authority
268
+ if: always()
269
+ env:
270
+ ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
271
+ ACTIONS_ID_TOKEN_REQUEST_URL: ''
272
+ run: |
273
+ unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_SECURITY_TOKEN
274
+ echo 'AWS_ACCESS_KEY_ID=' >> "$GITHUB_ENV"
275
+ echo 'AWS_SECRET_ACCESS_KEY=' >> "$GITHUB_ENV"
276
+ echo 'AWS_SESSION_TOKEN=' >> "$GITHUB_ENV"
277
+ echo 'AWS_SECURITY_TOKEN=' >> "$GITHUB_ENV"
278
+ - name: Retain exact deployed OCI and Inspector evidence
279
+ if: always()
280
+ uses: ${actionPins.uploadArtifact}
281
+ env:
282
+ ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
283
+ ACTIONS_ID_TOKEN_REQUEST_URL: ''
284
+ AWS_ACCESS_KEY_ID: ''
285
+ AWS_SECRET_ACCESS_KEY: ''
286
+ AWS_SESSION_TOKEN: ''
287
+ with:
288
+ name: ecr-inspector-\${{ inputs.stage }}-\${{ inputs.slice }}-\${{ github.run_id }}-\${{ github.run_attempt }}
289
+ if-no-files-found: error
290
+ include-hidden-files: true
291
+ retention-days: 90
292
+ path: |
293
+ packages/\${{ inputs.slice }}/.ebk/evidence/ecr-inspector-input.json
294
+ packages/\${{ inputs.slice }}/.ebk/evidence/supply-chain/ecr-scans/**
295
+ `,
296
+ };
297
+ }
298
+ //# sourceMappingURL=workspace-files-ecr-inspector.js.map
@@ -229,6 +229,7 @@ export async function reportWorkloadRoleCandidate(options: {
229
229
  import { GetParameterCommand, SSMClient } from '@aws-sdk/client-ssm';
230
230
  import { GetCallerIdentityCommand, STSClient } from '@aws-sdk/client-sts';
231
231
  import {
232
+ areWorkloadRoleIntentsEquivalent,
232
233
  digestWorkloadRoleManifest,
233
234
  provisionedWorkloadRoleRegistrationObjectKey,
234
235
  registeredWorkloadRoleManifestObjectKey,
@@ -360,8 +361,10 @@ export async function preflightFoundationWorkloadRoles(stage: string) {
360
361
  digestWorkloadRoleManifest(recreated.manifest) !==
361
362
  registered.manifestDigest ||
362
363
  registered.manifestDigest !== storage.manifestDigest ||
363
- JSON.stringify(recreated.intentsByRole) !==
364
- JSON.stringify(registered.intentsByRole)
364
+ !areWorkloadRoleIntentsEquivalent(
365
+ recreated.intentsByRole,
366
+ registered.intentsByRole,
367
+ )
365
368
  ) {
366
369
  throw new Error(
367
370
  'Foundation workload-role registration differs from generated intent.',
@@ -55,12 +55,12 @@ export declare function validateProtectedAggregateCountSourceAuthority(input: Pr
55
55
  artifactName: string;
56
56
  runAttempt: string;
57
57
  }>;
58
- export declare function renderProtectedAggregateCountWorkflow(): Readonly<Record<typeof PROTECTED_AGGREGATE_COUNT_WORKFLOW_PATH, string>>;
58
+ export declare function renderProtectedAggregateCountWorkflow(rehearsalStage?: 'development' | 'staging'): Readonly<Record<typeof PROTECTED_AGGREGATE_COUNT_WORKFLOW_PATH, string>>;
59
59
  /**
60
60
  * Treats caller-supplied run IDs and artifact names only as selectors. The
61
61
  * selected producer runs and artifacts must independently match the fixed
62
62
  * protected workflow contracts before AWS authority is introduced.
63
63
  */
64
64
  export declare function validateProtectedPerformanceCostSourceAuthority(input: ProtectedPerformanceCostSourceAuthority): void;
65
- export declare function renderProtectedPerformanceCostWorkflow(): Readonly<Record<typeof PROTECTED_PERFORMANCE_COST_WORKFLOW_PATH, string>>;
65
+ export declare function renderProtectedPerformanceCostWorkflow(rehearsalStage?: 'development' | 'staging'): Readonly<Record<typeof PROTECTED_PERFORMANCE_COST_WORKFLOW_PATH, string>>;
66
66
  export {};
@@ -20,7 +20,7 @@ function validateProtectedAggregateCountSourceAuthority(input) {
20
20
  const refuse = (detail) => {
21
21
  throw new Error(`Protected aggregate-count source authority is invalid: ${detail}.`);
22
22
  };
23
- const branch = input.stage === 'staging'
23
+ const branch = input.stage === 'development' || input.stage === 'staging'
24
24
  ? 'develop'
25
25
  : input.stage === 'production'
26
26
  ? 'main'
@@ -61,7 +61,7 @@ function validateProtectedAggregateCountSourceAuthority(input) {
61
61
  }
62
62
  return Object.freeze({ artifactName, runAttempt });
63
63
  }
64
- function renderProtectedAggregateCountWorkflow() {
64
+ function renderProtectedAggregateCountWorkflow(rehearsalStage = 'staging') {
65
65
  const checkout = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.checkout);
66
66
  const configureAws = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.configureAwsCredentials);
67
67
  const downloadArtifact = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.downloadArtifact);
@@ -79,7 +79,7 @@ on:
79
79
  description: Exact protected aggregate cohort stage
80
80
  required: true
81
81
  type: choice
82
- options: [staging, production]
82
+ options: [${rehearsalStage}, production]
83
83
  project:
84
84
  description: Exact Product Slice project
85
85
  required: true
@@ -137,7 +137,7 @@ jobs:
137
137
  run: |
138
138
  set -euo pipefail
139
139
  case "$EBK_STAGE:$EBK_PROTECTED_REF" in
140
- staging:refs/heads/develop|production:refs/heads/main) ;;
140
+ ${rehearsalStage}:refs/heads/develop|production:refs/heads/main) ;;
141
141
  *) echo 'Aggregate stage does not match its protected branch'; exit 1 ;;
142
142
  esac
143
143
  case "$EBK_PROJECT" in
@@ -334,7 +334,7 @@ function validateProtectedPerformanceCostSourceAuthority(input) {
334
334
  const refuse = (detail) => {
335
335
  throw new Error(`Protected cost source authority is invalid: ${detail}.`);
336
336
  };
337
- const branch = input.stage === 'staging'
337
+ const branch = input.stage === 'development' || input.stage === 'staging'
338
338
  ? 'develop'
339
339
  : input.stage === 'production'
340
340
  ? 'main'
@@ -399,7 +399,7 @@ function validateProtectedPerformanceCostSourceAuthority(input) {
399
399
  validateArtifact(input.aggregateArtifacts, input.aggregateArtifactTotal, input.aggregateArtifactName, expectedAggregateName, 'aggregate-count');
400
400
  validateArtifact(input.releaseArtifacts, input.releaseArtifactTotal, input.releaseArtifactName, expectedReleaseName, 'release');
401
401
  }
402
- function renderProtectedPerformanceCostWorkflow() {
402
+ function renderProtectedPerformanceCostWorkflow(rehearsalStage = 'staging') {
403
403
  const checkout = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.checkout);
404
404
  const configureAws = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.configureAwsCredentials);
405
405
  const downloadArtifact = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.downloadArtifact);
@@ -417,7 +417,7 @@ on:
417
417
  description: Exact protected billing cohort stage
418
418
  required: true
419
419
  type: choice
420
- options: [staging, production]
420
+ options: [${rehearsalStage}, production]
421
421
  project:
422
422
  description: Exact Product Slice project
423
423
  required: true
@@ -511,7 +511,7 @@ jobs:
511
511
  run: |
512
512
  set -euo pipefail
513
513
  case "$EBK_STAGE:$EBK_PROTECTED_REF" in
514
- staging:refs/heads/develop|production:refs/heads/main) ;;
514
+ ${rehearsalStage}:refs/heads/develop|production:refs/heads/main) ;;
515
515
  *) echo 'Cost collection stage does not match its protected branch'; exit 1 ;;
516
516
  esac
517
517
  case "$EBK_PROJECT" in
@@ -70,4 +70,4 @@ export declare function createProtectedPerformanceLoadSliceTargets(slice: string
70
70
  * The caller merges the returned fixed Slice targets into generated project
71
71
  * metadata; neither target forwards user-supplied commands or arguments.
72
72
  */
73
- export declare function renderProtectedPerformanceLoadWorkflowPlan(sliceForTargetMetadata: string): ProtectedPerformanceLoadWorkflowPlan;
73
+ export declare function renderProtectedPerformanceLoadWorkflowPlan(sliceForTargetMetadata: string, rehearsalStage?: 'development' | 'staging'): ProtectedPerformanceLoadWorkflowPlan;
@@ -81,7 +81,7 @@ function deriveProtectedPerformanceEndpoint(input) {
81
81
  const refuse = (detail) => {
82
82
  throw new Error(`Protected performance target authority is invalid: ${detail}.`);
83
83
  };
84
- const expectedRef = input.stage === 'staging'
84
+ const expectedRef = input.stage === 'development' || input.stage === 'staging'
85
85
  ? 'refs/heads/develop'
86
86
  : input.stage === 'production'
87
87
  ? 'refs/heads/main'
@@ -170,6 +170,14 @@ function deriveProtectedPerformanceEndpoint(input) {
170
170
  suffix: '/__ebk/performance/async-worker',
171
171
  workload: 'async-worker',
172
172
  },
173
+ 'async-key-value-burst': {
174
+ suffix: '/__ebk/performance/async-worker',
175
+ workload: 'async-worker',
176
+ },
177
+ 'database-read-write': {
178
+ suffix: '/__ebk/performance/database',
179
+ workload: 'database',
180
+ },
173
181
  'database-cold-resume': {
174
182
  suffix: '/__ebk/performance/database',
175
183
  workload: 'database',
@@ -344,7 +352,7 @@ function createProtectedPerformanceLoadSliceTargets(slice) {
344
352
  * The caller merges the returned fixed Slice targets into generated project
345
353
  * metadata; neither target forwards user-supplied commands or arguments.
346
354
  */
347
- function renderProtectedPerformanceLoadWorkflowPlan(sliceForTargetMetadata) {
355
+ function renderProtectedPerformanceLoadWorkflowPlan(sliceForTargetMetadata, rehearsalStage = 'staging') {
348
356
  const checkout = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.checkout);
349
357
  const configureAws = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.configureAwsCredentials);
350
358
  const pnpmSetup = (0, index_js_1.pinnedAction)(index_js_1.GITHUB_ACTION_PINS.pnpmSetup);
@@ -362,11 +370,11 @@ on:
362
370
  workflow_dispatch:
363
371
  inputs:
364
372
  stage:
365
- description: Protected target stage; staging is the normal path
373
+ description: Protected target stage; ${rehearsalStage} is the rehearsal path
366
374
  required: true
367
- default: staging
375
+ default: ${rehearsalStage}
368
376
  type: choice
369
- options: [staging, production]
377
+ options: [${rehearsalStage}, production]
370
378
  project:
371
379
  description: Exact Product Slice project
372
380
  required: true
@@ -414,7 +422,6 @@ jobs:
414
422
  EBK_ACCOUNT_FINGERPRINT: \${{ inputs.target_account_fingerprint }}
415
423
  EBK_APPROVED_REGION: \${{ vars.AWS_REGION }}
416
424
  EBK_PERFORMANCE_ORIGINS_JSON: \${{ vars.EBK_PERFORMANCE_ORIGINS_JSON }}
417
- EBK_PERFORMANCE_LOAD_HMAC_KEY_PATH: \${{ runner.temp }}/ebk-performance-load-hmac-\${{ github.run_id }}-\${{ github.run_attempt }}.json
418
425
  EBK_PROJECT: \${{ inputs.project }}
419
426
  EBK_PROTECTED_LOAD_APPROVAL_PATH: \${{ inputs.approval }}
420
427
  EBK_PROTECTED_LOAD_PLAN_PATH: \${{ inputs.plan }}
@@ -422,6 +429,8 @@ jobs:
422
429
  EBK_STAGE: \${{ inputs.stage }}
423
430
  NX_DAEMON: 'false'
424
431
  steps:
432
+ - name: Initialize private performance material path
433
+ run: echo "EBK_PERFORMANCE_LOAD_HMAC_KEY_PATH=$RUNNER_TEMP/ebk-performance-load-hmac-$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT.json" >> "$GITHUB_ENV"
425
434
  - name: Validate exact protected request
426
435
  env:
427
436
  EBK_PROTECTED_REF: \${{ github.ref }}
@@ -429,7 +438,7 @@ jobs:
429
438
  run: |
430
439
  set -euo pipefail
431
440
  case "$EBK_STAGE:$EBK_PROTECTED_REF" in
432
- staging:refs/heads/develop|production:refs/heads/main) ;;
441
+ ${rehearsalStage}:refs/heads/develop|production:refs/heads/main) ;;
433
442
  *) echo 'Performance load stage does not match its protected branch'; exit 1 ;;
434
443
  esac
435
444
  case "$EBK_PROJECT" in
@@ -556,6 +565,27 @@ jobs:
556
565
  { echo 'Assumed account fingerprint does not equal the reviewed target'; exit 1; }
557
566
  test "$AWS_REGION" = "$EBK_APPROVED_REGION" ||
558
567
  { echo 'Target Region does not equal the environment-approved Region'; exit 1; }
568
+ owner_parameter="/ebk/$EBK_STAGE/workspace-owner"
569
+ actual_owner="$(aws ssm get-parameter \
570
+ --name "$owner_parameter" \
571
+ --no-with-decryption \
572
+ --query 'Parameter.Value' \
573
+ --output text)" ||
574
+ { echo 'Performance load role requires ssm:GetParameter on the exact retained workspace owner'; exit 1; }
575
+ expected_owner="$(node -e '
576
+ const policy = require("./ebk.repository-policy.json");
577
+ process.stdout.write(JSON.stringify({
578
+ accountId: process.env.AWS_EXPECTED_ACCOUNT_ID,
579
+ kind: "ebk-workspace-stage-owner",
580
+ region: process.env.AWS_REGION,
581
+ schemaVersion: 1,
582
+ stage: process.env.EBK_STAGE,
583
+ workspaceDeploymentId: policy.workspaceDeploymentId,
584
+ }));
585
+ ')" ||
586
+ { echo 'Committed workspace owner identity is invalid'; exit 1; }
587
+ test "$actual_owner" = "$expected_owner" ||
588
+ { echo 'Performance load target is owned by another workspace'; exit 1; }
559
589
  test -f "$EBK_PROTECTED_LOAD_PLAN_PATH" ||
560
590
  { echo 'Exact protected load plan is absent from the candidate'; exit 1; }
561
591
  test -f "$EBK_PROTECTED_LOAD_APPROVAL_PATH" ||
@@ -662,16 +692,12 @@ jobs:
662
692
  run: |
663
693
  set -euo pipefail
664
694
  logical_name="$(node -e '
665
- const project = process.argv[1];
666
- const logicalName =
667
- project.split("-")
668
- .map((part) => part[0].toUpperCase() + part.slice(1))
669
- .join("") + "PerformanceLoadHmacKeys";
695
+ const logicalName = "GeneratedPerformanceLoadHmacKeys";
670
696
  if (!/^[A-Za-z][A-Za-z0-9]{0,63}$/.test(logicalName)) {
671
697
  process.exit(1);
672
698
  }
673
699
  process.stdout.write(logicalName);
674
- ' "$EBK_PROJECT")" ||
700
+ ')" ||
675
701
  { echo 'Slice HMAC logical name is invalid'; exit 1; }
676
702
  secret_name="ebk/$EBK_STAGE/$EBK_PROJECT/$logical_name"
677
703
  aws secretsmanager get-secret-value \
@@ -722,18 +748,6 @@ jobs:
722
748
  }
723
749
  });
724
750
  ' "$EBK_PERFORMANCE_LOAD_HMAC_KEY_PATH"
725
- - name: Clear current performance-load AWS session credentials
726
- if: always()
727
- env:
728
- ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
729
- ACTIONS_ID_TOKEN_REQUEST_URL: ''
730
- run: |
731
- {
732
- echo 'AWS_ACCESS_KEY_ID='
733
- echo 'AWS_SECRET_ACCESS_KEY='
734
- echo 'AWS_SESSION_TOKEN='
735
- echo 'AWS_SECURITY_TOKEN='
736
- } >> "$GITHUB_ENV"
737
751
  - name: Guard and run the exact allowlisted load target
738
752
  env:
739
753
  ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
@@ -0,0 +1,6 @@
1
+ import type { DeploymentProfile } from '../../repository-policy/index.js';
2
+ export declare function renderStageAuthorityWorkspaceFiles(options: {
3
+ deploymentProfile: DeploymentProfile;
4
+ name: string;
5
+ workspaceDeploymentId: string;
6
+ }): Readonly<Record<string, string>>;