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

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 (805) hide show
  1. package/README.md +44 -10
  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.d.ts +1 -1
  16. package/src/blueprints/external-sandbox.js +21 -9
  17. package/src/blueprints/manifest.d.ts +1 -1
  18. package/src/blueprints/resolver.js +28 -15
  19. package/src/cli/bootstrap.d.ts +1 -1
  20. package/src/cli/deploy-runtime.d.ts +30 -0
  21. package/src/cli/deploy-runtime.js +174 -0
  22. package/src/cli/dev-command.d.ts +18 -4
  23. package/src/cli/dev-command.js +71 -0
  24. package/src/cli/main.d.ts +9 -1
  25. package/src/cli/main.js +157 -24
  26. package/src/cli/output.d.ts +1 -1
  27. package/src/cli/output.js +1 -1
  28. package/src/cli/personal-secret-runtime.d.ts +12 -0
  29. package/src/cli/personal-secret-runtime.js +18 -3
  30. package/src/cli/secret-terminal.js +1 -1
  31. package/src/container-images.d.ts +1 -1
  32. package/src/container-images.js +1 -1
  33. package/src/developer-agent/context.js +41 -9
  34. package/src/developer-agent/generator-planning.js +20 -6
  35. package/src/developer-agent/git-inspection.d.ts +6 -2
  36. package/src/developer-agent/git-inspection.js +78 -6
  37. package/src/developer-agent/model.d.ts +5 -3
  38. package/src/developer-agent/model.js +4 -4
  39. package/src/developer-agent/operation-registry.d.ts +15 -0
  40. package/src/developer-agent/operation-registry.js +342 -49
  41. package/src/developer-agent/planning.d.ts +8 -1
  42. package/src/developer-agent/planning.js +39 -16
  43. package/src/developer-agent/preview-changes.d.ts +2 -0
  44. package/src/developer-agent/preview-changes.js +14 -2
  45. package/src/developer-agent/preview-source.js +3 -0
  46. package/src/developer-agent/validation.js +25 -9
  47. package/src/developer-agent/workspace-inspection.js +60 -5
  48. package/src/executors/blueprint-trust/blueprint-trust.js +6 -0
  49. package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
  50. package/src/executors/deployment-plan/deployment-plan.js +57 -2
  51. package/src/executors/dev-doctor/dev-doctor.js +13 -6
  52. package/src/executors/dev-task-cleanup/dev-task-cleanup.d.ts +23 -0
  53. package/src/executors/dev-task-cleanup/dev-task-cleanup.js +145 -0
  54. package/src/executors/dev-task-cleanup/schema.json +9 -0
  55. package/src/executors/dev-task-cleanup/task-stack-absence.d.ts +27 -0
  56. package/src/executors/dev-task-cleanup/task-stack-absence.js +281 -0
  57. package/src/executors/dev-task-cleanup/task-stack-checkpoint.d.ts +12 -0
  58. package/src/executors/dev-task-cleanup/task-stack-checkpoint.js +92 -0
  59. package/src/executors/fleet/fleet.js +1 -1
  60. package/src/executors/foundation-preflight/foundation-preflight.d.ts +1 -0
  61. package/src/executors/foundation-preflight/foundation-preflight.js +6 -2
  62. package/src/executors/foundation-preflight/schema.json +5 -0
  63. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +13 -2
  64. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -31
  65. package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +65 -0
  66. package/src/executors/foundation-profile-preflight/production-database-safeguard.js +223 -0
  67. package/src/executors/foundation-profile-preflight/schema.json +15 -4
  68. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
  69. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +70 -20
  70. package/src/executors/foundation-remove-preflight/schema.json +6 -1
  71. package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
  72. package/src/executors/github-bootstrap/github-bootstrap.js +3 -0
  73. package/src/executors/github-bootstrap/schema.json +7 -1
  74. package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +29 -136
  75. package/src/executors/infrastructure-plan/infrastructure-plan.js +230 -3282
  76. package/src/executors/infrastructure-plan/schema.json +12 -52
  77. package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
  78. package/src/executors/local-deploy/federated-credential-transport.js +252 -0
  79. package/src/executors/local-deploy/local-approval.d.ts +18 -0
  80. package/src/executors/local-deploy/local-approval.js +39 -0
  81. package/src/executors/local-deploy/local-deploy.d.ts +112 -0
  82. package/src/executors/local-deploy/local-deploy.js +1404 -0
  83. package/src/executors/local-deploy/schema.json +70 -0
  84. package/src/executors/refresh/refresh.js +2 -2
  85. package/src/executors/remove/remove.js +2 -2
  86. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +42 -0
  87. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +1229 -0
  88. package/src/executors/router-waf-rehearsal/schema.json +29 -0
  89. package/src/executors/secret-initialize/schema.json +42 -0
  90. package/src/executors/secret-initialize/secret-initialize.d.ts +34 -0
  91. package/src/executors/secret-initialize/secret-initialize.js +297 -0
  92. package/src/executors/secret-metadata/schema.json +5 -0
  93. package/src/executors/secret-metadata/secret-metadata.d.ts +16 -2
  94. package/src/executors/secret-metadata/secret-metadata.js +129 -30
  95. package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
  96. package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
  97. package/src/executors/sst-lifecycle/governed-native-operation.d.ts +48 -0
  98. package/src/executors/sst-lifecycle/governed-native-operation.js +163 -0
  99. package/src/executors/sst-lifecycle/logging-preflight.d.ts +5 -0
  100. package/src/executors/sst-lifecycle/logging-preflight.js +23 -13
  101. package/src/executors/sst-lifecycle/run-sst-command.d.ts +46 -6
  102. package/src/executors/sst-lifecycle/run-sst-command.js +750 -71
  103. package/src/executors/sst-lifecycle/schema.json +8 -1
  104. package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
  105. package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
  106. package/src/executors/sst-lifecycle/sst-environment-source.d.ts +33 -0
  107. package/src/executors/sst-lifecycle/sst-environment-source.js +267 -0
  108. package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
  109. package/src/executors/sst-lifecycle/task-unlock.js +126 -0
  110. package/src/executors/unlock/unlock.js +2 -2
  111. package/src/foundation/capability-plan.d.ts +43 -0
  112. package/src/foundation/capability-plan.js +168 -0
  113. package/src/foundation/cost-estimate.d.ts +170 -0
  114. package/src/foundation/cost-estimate.js +683 -0
  115. package/src/foundation/discovery.d.ts +14 -11
  116. package/src/foundation/discovery.js +32 -6
  117. package/src/foundation/index.d.ts +4 -0
  118. package/src/foundation/index.js +11 -0
  119. package/src/foundation/local-database-contract.d.ts +20 -0
  120. package/src/foundation/local-database-contract.js +262 -13
  121. package/src/foundation/local-private-smoke-access.d.ts +20 -0
  122. package/src/foundation/local-private-smoke-access.js +197 -0
  123. package/src/foundation/logging-preflight.js +1 -1
  124. package/src/foundation/logging.d.ts +3 -1
  125. package/src/foundation/logging.js +1 -1
  126. package/src/foundation/partial-state.d.ts +10 -0
  127. package/src/foundation/partial-state.js +21 -0
  128. package/src/foundation/preflight.js +37 -18
  129. package/src/foundation/private-smoke-access.d.ts +25 -0
  130. package/src/foundation/private-smoke-access.js +135 -0
  131. package/src/foundation/private-smoke-admission.d.ts +45 -0
  132. package/src/foundation/private-smoke-admission.js +180 -0
  133. package/src/foundation/private-smoke-control-plane.d.ts +18 -0
  134. package/src/foundation/private-smoke-control-plane.js +184 -0
  135. package/src/foundation/provision-database-bindings.d.ts +5 -0
  136. package/src/foundation/provision-database-bindings.js +41 -8
  137. package/src/foundation/provision-logical-database.js +15 -8
  138. package/src/foundation/requirements.d.ts +3 -3
  139. package/src/foundation/requirements.js +24 -12
  140. package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
  141. package/src/foundation/router-waf-rate-rehearsal.js +210 -0
  142. package/src/foundation/router-waf.d.ts +149 -0
  143. package/src/foundation/router-waf.js +809 -0
  144. package/src/foundation/stages.d.ts +1 -0
  145. package/src/foundation/stages.js +11 -0
  146. package/src/generators/blueprint/blueprint.d.ts +5 -0
  147. package/src/generators/blueprint/blueprint.js +102 -0
  148. package/src/generators/blueprint/files.d.ts +6 -0
  149. package/src/generators/blueprint/files.js +217 -0
  150. package/src/generators/blueprint/schema.d.ts +4 -0
  151. package/src/generators/blueprint/schema.json +18 -0
  152. package/src/generators/formatting.d.ts +8 -0
  153. package/src/generators/formatting.js +141 -0
  154. package/src/generators/function/function.js +38 -17
  155. package/src/generators/logging-registry.d.ts +2 -0
  156. package/src/generators/logging-registry.js +22 -0
  157. package/src/generators/post-generation-install.js +2 -2
  158. package/src/generators/preset/dependency-overrides.d.ts +8 -0
  159. package/src/generators/preset/dependency-overrides.js +55 -0
  160. package/src/generators/preset/generator.js +43 -3
  161. package/src/generators/preset/schema.d.ts +10 -0
  162. package/src/generators/preset/schema.json +47 -0
  163. package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
  164. package/src/generators/preset/workspace-files-adopter-skills.js +324 -0
  165. package/src/generators/preset/workspace-files-ci-acceptance.d.ts +1 -0
  166. package/src/generators/preset/workspace-files-ci-acceptance.js +791 -0
  167. package/src/generators/preset/workspace-files-ci-install.d.ts +2 -0
  168. package/src/generators/preset/workspace-files-ci-install.js +196 -0
  169. package/src/generators/preset/workspace-files-developer-agent.d.ts +2 -0
  170. package/src/generators/preset/workspace-files-developer-agent.js +162 -44
  171. package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
  172. package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
  173. package/src/generators/preset/workspace-files-foundation-workload-roles.js +5 -2
  174. package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
  175. package/src/generators/preset/workspace-files-performance-cost.js +8 -8
  176. package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
  177. package/src/generators/preset/workspace-files-performance-load.js +39 -25
  178. package/src/generators/preset/workspace-files-shared-operation-claims.d.ts +10 -0
  179. package/src/generators/preset/workspace-files-shared-operation-claims.js +59 -0
  180. package/src/generators/preset/workspace-files-stage-authority.d.ts +6 -0
  181. package/src/generators/preset/workspace-files-stage-authority.js +529 -0
  182. package/src/generators/preset/workspace-files-thin-deploy.d.ts +65 -0
  183. package/src/generators/preset/workspace-files-thin-deploy.js +2507 -0
  184. package/src/generators/preset/workspace-files-thin-docs.d.ts +7 -0
  185. package/src/generators/preset/workspace-files-thin-docs.js +370 -0
  186. package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
  187. package/src/generators/preset/workspace-files-thin-release.js +26 -0
  188. package/src/generators/preset/workspace-files-workload-role-baseline.js +254 -42
  189. package/src/generators/preset/workspace-files.d.ts +18 -2
  190. package/src/generators/preset/workspace-files.js +1525 -609
  191. package/src/generators/repository-policy/repository-policy.js +235 -5
  192. package/src/generators/repository-policy/schema.d.ts +10 -0
  193. package/src/generators/repository-policy/schema.json +80 -4
  194. package/src/generators/repository-policy/tree-policy.d.ts +3 -0
  195. package/src/generators/repository-policy/tree-policy.js +25 -0
  196. package/src/generators/slice/built-in-plan-api-contract-files.js +49 -11
  197. package/src/generators/slice/built-in-plan-api-files.d.ts +1 -1
  198. package/src/generators/slice/built-in-plan-api-files.js +130 -414
  199. package/src/generators/slice/built-in-plan-async-work-files.js +166 -1969
  200. package/src/generators/slice/built-in-plan-authorization-files.js +102 -334
  201. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +975 -233
  202. package/src/generators/slice/built-in-plan-authorization-storage.d.ts +3 -0
  203. package/src/generators/slice/built-in-plan-authorization-storage.js +119 -0
  204. package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
  205. package/src/generators/slice/built-in-plan-background-work-files.js +99 -0
  206. package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
  207. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
  208. package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
  209. package/src/generators/slice/built-in-plan-data-files.js +176 -1200
  210. package/src/generators/slice/built-in-plan-data-lifecycle-files.js +53 -28
  211. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +37 -2
  212. package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2443
  213. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +50 -8
  214. package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
  215. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +44 -25
  216. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +25 -2
  217. package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
  218. package/src/generators/slice/built-in-plan-foundation-files.js +39 -18
  219. package/src/generators/slice/built-in-plan-frontend-files.js +14 -3
  220. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
  221. package/src/generators/slice/built-in-plan-infrastructure-files.js +933 -730
  222. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +75 -14
  223. package/src/generators/slice/built-in-plan-key-value-cleanup.d.ts +4 -0
  224. package/src/generators/slice/built-in-plan-key-value-cleanup.js +100 -0
  225. package/src/generators/slice/built-in-plan-key-value-consumer.d.ts +4 -0
  226. package/src/generators/slice/built-in-plan-key-value-consumer.js +151 -0
  227. package/src/generators/slice/built-in-plan-key-value-deletion.d.ts +2 -0
  228. package/src/generators/slice/built-in-plan-key-value-deletion.js +377 -0
  229. package/src/generators/slice/built-in-plan-key-value-delivery.d.ts +2 -0
  230. package/src/generators/slice/built-in-plan-key-value-delivery.js +137 -0
  231. package/src/generators/slice/built-in-plan-key-value-export.d.ts +2 -0
  232. package/src/generators/slice/built-in-plan-key-value-export.js +595 -0
  233. package/src/generators/slice/built-in-plan-key-value-files.d.ts +2 -0
  234. package/src/generators/slice/built-in-plan-key-value-files.js +31 -0
  235. package/src/generators/slice/built-in-plan-key-value-holds.d.ts +2 -0
  236. package/src/generators/slice/built-in-plan-key-value-holds.js +189 -0
  237. package/src/generators/slice/built-in-plan-key-value-infrastructure.d.ts +2 -0
  238. package/src/generators/slice/built-in-plan-key-value-infrastructure.js +102 -0
  239. package/src/generators/slice/built-in-plan-key-value-performance.d.ts +5 -0
  240. package/src/generators/slice/built-in-plan-key-value-performance.js +530 -0
  241. package/src/generators/slice/built-in-plan-key-value-provider.d.ts +4 -0
  242. package/src/generators/slice/built-in-plan-key-value-provider.js +366 -0
  243. package/src/generators/slice/built-in-plan-key-value-records.d.ts +3 -0
  244. package/src/generators/slice/built-in-plan-key-value-records.js +232 -0
  245. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.d.ts +2 -0
  246. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.js +103 -0
  247. package/src/generators/slice/built-in-plan-key-value-retention-job-files.d.ts +2 -0
  248. package/src/generators/slice/built-in-plan-key-value-retention-job-files.js +160 -0
  249. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.d.ts +2 -0
  250. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.js +329 -0
  251. package/src/generators/slice/built-in-plan-key-value-retention-worker.d.ts +2 -0
  252. package/src/generators/slice/built-in-plan-key-value-retention-worker.js +477 -0
  253. package/src/generators/slice/built-in-plan-key-value-retention.d.ts +2 -0
  254. package/src/generators/slice/built-in-plan-key-value-retention.js +184 -0
  255. package/src/generators/slice/built-in-plan-metadata-files.d.ts +1 -1
  256. package/src/generators/slice/built-in-plan-metadata-files.js +159 -29
  257. package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
  258. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +324 -0
  259. package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
  260. package/src/generators/slice/built-in-plan-operations-files.js +585 -97
  261. package/src/generators/slice/built-in-plan-performance-files.d.ts +2 -1
  262. package/src/generators/slice/built-in-plan-performance-files.js +220 -1074
  263. package/src/generators/slice/built-in-plan-project-files.js +141 -135
  264. package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
  265. package/src/generators/slice/built-in-plan-release-files.js +310 -70
  266. package/src/generators/slice/built-in-plan-reliability-files.d.ts +1 -1
  267. package/src/generators/slice/built-in-plan-reliability-files.js +283 -44
  268. package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
  269. package/src/generators/slice/built-in-plan-secret-runtime-files.js +87 -76
  270. package/src/generators/slice/built-in-plan-shared.d.ts +4 -2
  271. package/src/generators/slice/built-in-plan-shared.js +41 -19
  272. package/src/generators/slice/built-in-plan-sql-events.d.ts +2 -0
  273. package/src/generators/slice/built-in-plan-sql-events.js +276 -0
  274. package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
  275. package/src/generators/slice/built-in-plan-testing-files.js +304 -172
  276. package/src/generators/slice/built-in-plan-testing-persistence-event-files.d.ts +7 -0
  277. package/src/generators/slice/built-in-plan-testing-persistence-event-files.js +487 -0
  278. package/src/generators/slice/built-in-plan-testing-persistence-files.d.ts +2 -0
  279. package/src/generators/slice/built-in-plan-testing-persistence-files.js +180 -0
  280. package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
  281. package/src/generators/slice/built-in-plan-thin-release-files.js +162 -0
  282. package/src/generators/slice/built-in-plan-verification-files.js +76 -2
  283. package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
  284. package/src/generators/slice/built-in-plan-web-files.js +223 -16
  285. package/src/generators/slice/built-in-plan-workload-role-files.d.ts +1 -1
  286. package/src/generators/slice/built-in-plan-workload-role-files.js +143 -279
  287. package/src/generators/slice/built-in-plan.d.ts +11 -1
  288. package/src/generators/slice/built-in-plan.js +83 -30
  289. package/src/generators/slice/data-policy-review-seed.d.ts +2 -0
  290. package/src/generators/slice/data-policy-review-seed.js +22 -0
  291. package/src/generators/slice/deployed-smoke-readiness.d.ts +2 -0
  292. package/src/generators/slice/deployed-smoke-readiness.js +214 -0
  293. package/src/generators/slice/local-source-identity.d.ts +2 -0
  294. package/src/generators/slice/local-source-identity.js +31 -0
  295. package/src/generators/slice/persistence-contract.d.ts +14 -0
  296. package/src/generators/slice/persistence-contract.js +32 -0
  297. package/src/generators/slice/slice.js +61 -50
  298. package/src/generators/sql/schema.d.ts +7 -0
  299. package/src/generators/sql/schema.json +38 -0
  300. package/src/generators/sql/sql.d.ts +6 -0
  301. package/src/generators/sql/sql.js +53 -0
  302. package/src/generators/upgrade/sql-seeded-reconciliation.d.ts +2 -0
  303. package/src/generators/upgrade/sql-seeded-reconciliation.js +170 -0
  304. package/src/generators/upgrade/upgrade.d.ts +15 -1
  305. package/src/generators/upgrade/upgrade.js +435 -44
  306. package/src/generators/workload/frozen-container.d.ts +1 -1
  307. package/src/generators/workload/performance-registration.d.ts +1 -0
  308. package/src/generators/workload/performance-registration.js +9 -11
  309. package/src/generators/workload/service-performance-files.d.ts +1 -0
  310. package/src/generators/workload/service-performance-files.js +27 -7
  311. package/src/generators/workload/workload.d.ts +1 -1
  312. package/src/generators/workload/workload.js +105 -29
  313. package/src/git-policy/action-pins.d.ts +5 -0
  314. package/src/git-policy/action-pins.js +5 -0
  315. package/src/git-policy/github-bootstrap.d.ts +48 -8
  316. package/src/git-policy/github-bootstrap.js +344 -176
  317. package/src/git-policy/routing.d.ts +7 -1
  318. package/src/git-policy/routing.js +62 -1
  319. package/src/index.d.ts +1 -0
  320. package/src/index.js +1 -0
  321. package/src/infrastructure-change/local-capability.d.ts +73 -0
  322. package/src/infrastructure-change/local-capability.js +114 -0
  323. package/src/infrastructure-change/model.d.ts +25 -4
  324. package/src/infrastructure-change/model.js +1 -0
  325. package/src/infrastructure-change/normalize.d.ts +4 -0
  326. package/src/infrastructure-change/normalize.js +47 -7
  327. package/src/infrastructure-change/plan.d.ts +30 -3
  328. package/src/infrastructure-change/plan.js +323 -13
  329. package/src/infrastructure-change/risk.d.ts +3 -1
  330. package/src/infrastructure-change/risk.js +96 -16
  331. package/src/local-dev/browser-verification.d.ts +37 -0
  332. package/src/local-dev/browser-verification.js +281 -0
  333. package/src/local-dev/contracts.d.ts +10 -1
  334. package/src/local-dev/contracts.js +114 -13
  335. package/src/local-dev/dev-command-core.js +24 -5
  336. package/src/local-dev/docker-credential-health.d.ts +14 -0
  337. package/src/local-dev/docker-credential-health.js +94 -0
  338. package/src/local-dev/environment-inspector.d.ts +7 -0
  339. package/src/local-dev/environment-inspector.js +42 -15
  340. package/src/local-dev/environment-state.js +2 -2
  341. package/src/local-dev/errors.d.ts +1 -1
  342. package/src/local-dev/errors.js +2 -0
  343. package/src/local-dev/fleet-client.js +2 -2
  344. package/src/local-dev/fleet-configuration.js +57 -25
  345. package/src/local-dev/fleet-inventory.js +58 -22
  346. package/src/local-dev/fleet-ipc.d.ts +7 -0
  347. package/src/local-dev/fleet-ipc.js +14 -2
  348. package/src/local-dev/fleet-launcher.d.ts +6 -0
  349. package/src/local-dev/fleet-launcher.js +16 -4
  350. package/src/local-dev/fleet-logs.js +50 -22
  351. package/src/local-dev/fleet-process.d.ts +20 -1
  352. package/src/local-dev/fleet-process.js +197 -41
  353. package/src/local-dev/fleet-runner-evidence.d.ts +5 -0
  354. package/src/local-dev/fleet-runner-evidence.js +56 -0
  355. package/src/local-dev/fleet-runtime.js +268 -229
  356. package/src/local-dev/fleet-session.d.ts +2 -0
  357. package/src/local-dev/fleet-session.js +28 -11
  358. package/src/local-dev/fleet-slice-runner-daemon.js +4 -0
  359. package/src/local-dev/fleet-state.d.ts +5 -2
  360. package/src/local-dev/fleet-state.js +25 -4
  361. package/src/local-dev/fleet-supervisor.d.ts +3 -0
  362. package/src/local-dev/fleet-supervisor.js +66 -11
  363. package/src/local-dev/fleet-web-start.d.ts +12 -0
  364. package/src/local-dev/fleet-web-start.js +48 -0
  365. package/src/local-dev/identity.js +3 -14
  366. package/src/local-dev/index.d.ts +1 -0
  367. package/src/local-dev/index.js +1 -0
  368. package/src/local-dev/native-completion.d.ts +9 -0
  369. package/src/local-dev/native-completion.js +130 -0
  370. package/src/local-dev/nx-workspace.d.ts +4 -2
  371. package/src/local-dev/nx-workspace.js +11 -6
  372. package/src/local-dev/personal-stage.d.ts +4 -5
  373. package/src/local-dev/personal-stage.js +6 -54
  374. package/src/local-dev/port-claims.d.ts +13 -0
  375. package/src/local-dev/port-claims.js +46 -0
  376. package/src/local-dev/ports.d.ts +14 -2
  377. package/src/local-dev/ports.js +78 -3
  378. package/src/local-dev/private-state.d.ts +11 -0
  379. package/src/local-dev/private-state.js +146 -40
  380. package/src/local-dev/process-group.d.ts +4 -0
  381. package/src/local-dev/process-group.js +29 -0
  382. package/src/local-dev/process-identity.d.ts +8 -0
  383. package/src/local-dev/process-identity.js +31 -1
  384. package/src/local-dev/proxy.js +11 -12
  385. package/src/local-dev/runtime-paths.js +1 -1
  386. package/src/local-dev/slice-claim.js +1 -1
  387. package/src/local-dev/slice-runner.d.ts +15 -6
  388. package/src/local-dev/slice-runner.js +189 -54
  389. package/src/local-dev/task-attachment.d.ts +17 -0
  390. package/src/local-dev/task-attachment.js +73 -0
  391. package/src/local-dev/task-authority.d.ts +10 -0
  392. package/src/local-dev/task-authority.js +27 -0
  393. package/src/local-dev/task-identity.d.ts +33 -0
  394. package/src/local-dev/task-identity.js +418 -0
  395. package/src/local-dev/task-native-writer.d.ts +18 -0
  396. package/src/local-dev/task-native-writer.js +329 -0
  397. package/src/local-dev/tls.js +8 -2
  398. package/src/local-dev/web-launch.d.ts +9 -0
  399. package/src/local-dev/web-launch.js +130 -0
  400. package/src/ownership/composition.d.ts +2 -1
  401. package/src/ownership/composition.js +1 -0
  402. package/src/performance/cost-collection.d.ts +1 -1
  403. package/src/performance/cost-collection.js +4 -2
  404. package/src/performance/cost-controls.d.ts +8 -4
  405. package/src/performance/cost-controls.js +39 -28
  406. package/src/performance/evidence.d.ts +1 -1
  407. package/src/performance/evidence.js +5 -3
  408. package/src/performance/load-safety.js +5 -3
  409. package/src/performance/model.d.ts +4 -4
  410. package/src/performance/model.js +4 -5
  411. package/src/performance/scenario.d.ts +22 -0
  412. package/src/performance/scenario.js +100 -92
  413. package/src/release/index.d.ts +0 -2
  414. package/src/release/index.js +0 -2
  415. package/src/release/source-authority.d.ts +5 -5
  416. package/src/release/source-authority.js +141 -124
  417. package/src/repository-policy/aurora-preflight.d.ts +1 -1
  418. package/src/repository-policy/aurora-preflight.js +4 -1
  419. package/src/repository-policy/capacity-migration.d.ts +3 -0
  420. package/src/repository-policy/capacity-migration.js +21 -0
  421. package/src/repository-policy/deployment-plan.d.ts +4 -1
  422. package/src/repository-policy/deployment-plan.js +9 -0
  423. package/src/repository-policy/foundation-profile.js +10 -1
  424. package/src/repository-policy/policy.d.ts +57 -3
  425. package/src/repository-policy/policy.js +497 -11
  426. package/src/schemas/blueprint-v1.json +5 -4
  427. package/src/schemas/foundation-requirement-v1.json +5 -4
  428. package/src/schemas/performance-policy-v1.json +3 -3
  429. package/src/schemas/repository-policy-v1.json +130 -6
  430. package/src/schemas/testing-evidence-result-v1.json +1 -1
  431. package/src/secrets/adapters.d.ts +7 -2
  432. package/src/secrets/adapters.js +34 -3
  433. package/src/secrets/aws-control-plane.d.ts +10 -1
  434. package/src/secrets/aws-control-plane.js +67 -0
  435. package/src/secrets/generated-aws-control-plane.d.ts +23 -0
  436. package/src/secrets/generated-aws-control-plane.js +259 -0
  437. package/src/secrets/metadata.js +38 -10
  438. package/src/secrets/model.d.ts +8 -1
  439. package/src/secrets/model.js +24 -3
  440. package/src/secrets/operator.d.ts +91 -3
  441. package/src/secrets/operator.js +463 -13
  442. package/src/secrets/personal-command.d.ts +18 -2
  443. package/src/secrets/personal-command.js +66 -12
  444. package/src/secrets/registry.d.ts +2 -1
  445. package/src/secrets/registry.js +18 -1
  446. package/src/secrets/verification.js +15 -2
  447. package/src/secrets/workload-access.js +10 -2
  448. package/src/sst-environment-source-format.d.ts +6 -0
  449. package/src/sst-environment-source-format.js +199 -0
  450. package/src/supply-chain/action-pins.js +61 -7
  451. package/src/supply-chain/blueprint-trust-git.js +85 -24
  452. package/src/supply-chain/blueprint-verification-authority.js +55 -3
  453. package/src/supply-chain/build-output-bounds.d.ts +2 -0
  454. package/src/supply-chain/build-output-bounds.js +12 -0
  455. package/src/supply-chain/build-output.d.ts +7 -1
  456. package/src/supply-chain/build-output.js +177 -24
  457. package/src/supply-chain/ecr-scanning.d.ts +5 -3
  458. package/src/supply-chain/ecr-scanning.js +11 -7
  459. package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
  460. package/src/supply-chain/ecs-deployed-image.js +6 -4
  461. package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
  462. package/src/supply-chain/generated-command.js +1 -0
  463. package/src/supply-chain/generated-container-release-command.js +1285 -124
  464. package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
  465. package/src/supply-chain/generated-ecr-collector-command.js +200 -93
  466. package/src/supply-chain/generated-files.js +25 -14
  467. package/src/supply-chain/generated-scanner-command.js +2 -1
  468. package/src/supply-chain/index.d.ts +1 -1
  469. package/src/supply-chain/index.js +2 -1
  470. package/src/supply-chain/sbom.d.ts +1 -1
  471. package/src/supply-chain/sbom.js +30 -5
  472. package/src/supply-chain/scanner.js +3 -0
  473. package/src/testing-evidence/fixture-scope.d.ts +2 -1
  474. package/src/testing-evidence/fixture-scope.js +4 -2
  475. package/src/testing-evidence/result.d.ts +2 -1
  476. package/src/testing-evidence/result.js +18 -4
  477. package/src/workload-roles/account-baseline.d.ts +11 -0
  478. package/src/workload-roles/account-baseline.js +253 -16
  479. package/src/workload-roles/authority.d.ts +3 -1
  480. package/src/workload-roles/authority.js +48 -2
  481. package/src/workload-roles/aws-s3-state.js +27 -0
  482. package/src/workload-roles/boundary.d.ts +2 -1
  483. package/src/workload-roles/boundary.js +9 -2
  484. package/src/workload-roles/handler.js +52 -24
  485. package/src/workload-roles/index.d.ts +10 -17
  486. package/src/workload-roles/index.js +5 -18
  487. package/src/workload-roles/injection.js +1 -1
  488. package/src/workload-roles/provisioner.js +12 -4
  489. package/src/workload-roles/registration.d.ts +1 -0
  490. package/src/workload-roles/registration.js +5 -0
  491. package/src/workload-roles/stage-boundary.js +1 -1
  492. package/src/workload-roles/standard-slice.js +3 -3
  493. package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
  494. package/src/workspace-deployment/affected-lifecycle.js +84 -0
  495. package/src/workspace-deployment/identity.d.ts +3 -0
  496. package/src/workspace-deployment/identity.js +22 -0
  497. package/src/workspace-deployment/index.d.ts +4 -0
  498. package/src/workspace-deployment/index.js +8 -0
  499. package/src/workspace-deployment/migration-evidence.d.ts +29 -0
  500. package/src/workspace-deployment/migration-evidence.js +83 -0
  501. package/src/workspace-deployment/migration.d.ts +27 -0
  502. package/src/workspace-deployment/migration.js +109 -0
  503. package/src/workspace-deployment/ownership.d.ts +81 -0
  504. package/src/workspace-deployment/ownership.js +381 -0
  505. package/src/api-contract/baseline-update.js.map +0 -1
  506. package/src/api-contract/compatibility.js.map +0 -1
  507. package/src/api-contract/contract-graph.js.map +0 -1
  508. package/src/api-contract/evidence.js.map +0 -1
  509. package/src/api-contract/index.js.map +0 -1
  510. package/src/api-contract/model.fixtures.d.ts +0 -2
  511. package/src/api-contract/model.fixtures.js +0 -81
  512. package/src/api-contract/model.fixtures.js.map +0 -1
  513. package/src/api-contract/model.js.map +0 -1
  514. package/src/api-contract/rollout.js.map +0 -1
  515. package/src/authorization/compatibility.js.map +0 -1
  516. package/src/authorization/index.js.map +0 -1
  517. package/src/blueprints/execution.js.map +0 -1
  518. package/src/blueprints/external-sandbox.js.map +0 -1
  519. package/src/blueprints/index.js.map +0 -1
  520. package/src/blueprints/inputs.js.map +0 -1
  521. package/src/blueprints/manifest.js.map +0 -1
  522. package/src/blueprints/resolver.js.map +0 -1
  523. package/src/blueprints/transitions.js.map +0 -1
  524. package/src/cli/agent-command.js.map +0 -1
  525. package/src/cli/agent-runtime.js.map +0 -1
  526. package/src/cli/blueprint-authority.js.map +0 -1
  527. package/src/cli/blueprint-command.js.map +0 -1
  528. package/src/cli/bootstrap.js.map +0 -1
  529. package/src/cli/dev-command.js.map +0 -1
  530. package/src/cli/main.js.map +0 -1
  531. package/src/cli/output.js.map +0 -1
  532. package/src/cli/personal-secret-runtime.js.map +0 -1
  533. package/src/cli/secret-terminal.js.map +0 -1
  534. package/src/container-images.js.map +0 -1
  535. package/src/data-lifecycle/index.js.map +0 -1
  536. package/src/data-lifecycle/model.fixtures.d.ts +0 -2
  537. package/src/data-lifecycle/model.fixtures.js +0 -244
  538. package/src/data-lifecycle/model.fixtures.js.map +0 -1
  539. package/src/data-lifecycle/model.js.map +0 -1
  540. package/src/data-lifecycle/sensitive-artifacts.js.map +0 -1
  541. package/src/data-lifecycle/validation.js.map +0 -1
  542. package/src/database-retirement/contract.js.map +0 -1
  543. package/src/database-retirement/index.js.map +0 -1
  544. package/src/deterministic-order.js.map +0 -1
  545. package/src/developer-agent/context.js.map +0 -1
  546. package/src/developer-agent/generator-planning.js.map +0 -1
  547. package/src/developer-agent/generator-preview.js.map +0 -1
  548. package/src/developer-agent/git-inspection.js.map +0 -1
  549. package/src/developer-agent/handoff.js.map +0 -1
  550. package/src/developer-agent/index.js.map +0 -1
  551. package/src/developer-agent/model.js.map +0 -1
  552. package/src/developer-agent/operation-registry.js.map +0 -1
  553. package/src/developer-agent/ordering.js.map +0 -1
  554. package/src/developer-agent/planning.js.map +0 -1
  555. package/src/developer-agent/preview-changes.js.map +0 -1
  556. package/src/developer-agent/preview-source.js.map +0 -1
  557. package/src/developer-agent/validation.js.map +0 -1
  558. package/src/developer-agent/workspace-inspection.js.map +0 -1
  559. package/src/developer-agent/workspace-path.js.map +0 -1
  560. package/src/executors/blueprint-trust/blueprint-trust.js.map +0 -1
  561. package/src/executors/blueprint-verification/blueprint-verification.js.map +0 -1
  562. package/src/executors/deploy/deploy.js.map +0 -1
  563. package/src/executors/deployment-plan/deployment-plan.js.map +0 -1
  564. package/src/executors/dev/dev.js.map +0 -1
  565. package/src/executors/dev-doctor/dev-doctor.js.map +0 -1
  566. package/src/executors/dev-setup/dev-setup.js.map +0 -1
  567. package/src/executors/developer-context/developer-context.js.map +0 -1
  568. package/src/executors/fleet/fleet.js.map +0 -1
  569. package/src/executors/foundation-preflight/foundation-preflight.js.map +0 -1
  570. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +0 -1
  571. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +0 -1
  572. package/src/executors/github-bootstrap/github-bootstrap.js.map +0 -1
  573. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +0 -1
  574. package/src/executors/refresh/refresh.js.map +0 -1
  575. package/src/executors/remove/remove.js.map +0 -1
  576. package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
  577. package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
  578. package/src/executors/sst-lifecycle/logging-preflight.js.map +0 -1
  579. package/src/executors/sst-lifecycle/run-sst-command.js.map +0 -1
  580. package/src/executors/sst-lifecycle/secret-preflight.js.map +0 -1
  581. package/src/executors/unlock/unlock.js.map +0 -1
  582. package/src/executors/work-markers/work-markers.js.map +0 -1
  583. package/src/foundation/discovery.js.map +0 -1
  584. package/src/foundation/index.js.map +0 -1
  585. package/src/foundation/local-database-contract.js.map +0 -1
  586. package/src/foundation/logging-preflight.js.map +0 -1
  587. package/src/foundation/logging.js.map +0 -1
  588. package/src/foundation/preflight.js.map +0 -1
  589. package/src/foundation/provision-database-bindings.js.map +0 -1
  590. package/src/foundation/provision-logical-database.js.map +0 -1
  591. package/src/foundation/requirements.js.map +0 -1
  592. package/src/foundation/router-origin-proof.js.map +0 -1
  593. package/src/foundation/stages.js.map +0 -1
  594. package/src/frontend-security/index.js.map +0 -1
  595. package/src/frontend-security/security-headers.js.map +0 -1
  596. package/src/generators/feature-registry.js.map +0 -1
  597. package/src/generators/function/function.js.map +0 -1
  598. package/src/generators/job/job.js.map +0 -1
  599. package/src/generators/logging-registry.js.map +0 -1
  600. package/src/generators/post-generation-install.js.map +0 -1
  601. package/src/generators/preset/generator.js.map +0 -1
  602. package/src/generators/preset/tool-versions.js.map +0 -1
  603. package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
  604. package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +0 -1
  605. package/src/generators/preset/workspace-files-performance-cost.js.map +0 -1
  606. package/src/generators/preset/workspace-files-performance-load.js.map +0 -1
  607. package/src/generators/preset/workspace-files-workload-role-baseline.js.map +0 -1
  608. package/src/generators/preset/workspace-files.js.map +0 -1
  609. package/src/generators/repository-policy/repository-policy.js.map +0 -1
  610. package/src/generators/service/service.js.map +0 -1
  611. package/src/generators/slice/built-in-plan-api-contract-files.js.map +0 -1
  612. package/src/generators/slice/built-in-plan-api-files.js.map +0 -1
  613. package/src/generators/slice/built-in-plan-async-work-files.js.map +0 -1
  614. package/src/generators/slice/built-in-plan-authorization-files.js.map +0 -1
  615. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +0 -1
  616. package/src/generators/slice/built-in-plan-data-deletion-files.js.map +0 -1
  617. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +0 -1
  618. package/src/generators/slice/built-in-plan-data-files.js.map +0 -1
  619. package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +0 -1
  620. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +0 -1
  621. package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +0 -1
  622. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +0 -1
  623. package/src/generators/slice/built-in-plan-data-rights-files.js.map +0 -1
  624. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +0 -1
  625. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +0 -1
  626. package/src/generators/slice/built-in-plan-foundation-files.js.map +0 -1
  627. package/src/generators/slice/built-in-plan-frontend-files.js.map +0 -1
  628. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +0 -1
  629. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +0 -1
  630. package/src/generators/slice/built-in-plan-metadata-files.js.map +0 -1
  631. package/src/generators/slice/built-in-plan-operations-files.js.map +0 -1
  632. package/src/generators/slice/built-in-plan-performance-files.js.map +0 -1
  633. package/src/generators/slice/built-in-plan-project-files.js.map +0 -1
  634. package/src/generators/slice/built-in-plan-release-files.js.map +0 -1
  635. package/src/generators/slice/built-in-plan-reliability-files.js.map +0 -1
  636. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +0 -1
  637. package/src/generators/slice/built-in-plan-shared.js.map +0 -1
  638. package/src/generators/slice/built-in-plan-testing-files.js.map +0 -1
  639. package/src/generators/slice/built-in-plan-verification-files.js.map +0 -1
  640. package/src/generators/slice/built-in-plan-web-files.js.map +0 -1
  641. package/src/generators/slice/built-in-plan-workload-role-files.js.map +0 -1
  642. package/src/generators/slice/built-in-plan.js.map +0 -1
  643. package/src/generators/slice/slice.js.map +0 -1
  644. package/src/generators/upgrade/upgrade.js.map +0 -1
  645. package/src/generators/workload/frozen-container.js.map +0 -1
  646. package/src/generators/workload/performance-registration.js.map +0 -1
  647. package/src/generators/workload/reliability-registration.js.map +0 -1
  648. package/src/generators/workload/service-performance-files.js.map +0 -1
  649. package/src/generators/workload/workload.js.map +0 -1
  650. package/src/git-policy/action-pins.js.map +0 -1
  651. package/src/git-policy/github-bootstrap.js.map +0 -1
  652. package/src/git-policy/index.js.map +0 -1
  653. package/src/git-policy/routing.js.map +0 -1
  654. package/src/index.js.map +0 -1
  655. package/src/infrastructure-change/convergence.js.map +0 -1
  656. package/src/infrastructure-change/drift.js.map +0 -1
  657. package/src/infrastructure-change/index.js.map +0 -1
  658. package/src/infrastructure-change/model.js.map +0 -1
  659. package/src/infrastructure-change/normalize.js.map +0 -1
  660. package/src/infrastructure-change/plan.js.map +0 -1
  661. package/src/infrastructure-change/risk.js.map +0 -1
  662. package/src/infrastructure-change/summary.js.map +0 -1
  663. package/src/local-dev/context-discovery.js.map +0 -1
  664. package/src/local-dev/contract-validation.js.map +0 -1
  665. package/src/local-dev/contracts.js.map +0 -1
  666. package/src/local-dev/control-contract.js.map +0 -1
  667. package/src/local-dev/dev-command-core.js.map +0 -1
  668. package/src/local-dev/effects.js.map +0 -1
  669. package/src/local-dev/environment-inspector.js.map +0 -1
  670. package/src/local-dev/environment-state.js.map +0 -1
  671. package/src/local-dev/errors.js.map +0 -1
  672. package/src/local-dev/fleet-client.js.map +0 -1
  673. package/src/local-dev/fleet-configuration.js.map +0 -1
  674. package/src/local-dev/fleet-inventory.js.map +0 -1
  675. package/src/local-dev/fleet-ipc.js.map +0 -1
  676. package/src/local-dev/fleet-launcher.js.map +0 -1
  677. package/src/local-dev/fleet-lock.js.map +0 -1
  678. package/src/local-dev/fleet-logs.js.map +0 -1
  679. package/src/local-dev/fleet-process.js.map +0 -1
  680. package/src/local-dev/fleet-runtime.js.map +0 -1
  681. package/src/local-dev/fleet-session.js.map +0 -1
  682. package/src/local-dev/fleet-slice-runner-daemon.js.map +0 -1
  683. package/src/local-dev/fleet-startup.js.map +0 -1
  684. package/src/local-dev/fleet-state.js.map +0 -1
  685. package/src/local-dev/fleet-supervisor-daemon.js.map +0 -1
  686. package/src/local-dev/fleet-supervisor.js.map +0 -1
  687. package/src/local-dev/gateway-daemon.js.map +0 -1
  688. package/src/local-dev/gateway.js.map +0 -1
  689. package/src/local-dev/identity.js.map +0 -1
  690. package/src/local-dev/index.js.map +0 -1
  691. package/src/local-dev/local-context.js.map +0 -1
  692. package/src/local-dev/nx-workspace.js.map +0 -1
  693. package/src/local-dev/personal-secret-ledger.js.map +0 -1
  694. package/src/local-dev/personal-stage.js.map +0 -1
  695. package/src/local-dev/portless.js.map +0 -1
  696. package/src/local-dev/ports.js.map +0 -1
  697. package/src/local-dev/private-state.js.map +0 -1
  698. package/src/local-dev/process-identity.js.map +0 -1
  699. package/src/local-dev/proxy.js.map +0 -1
  700. package/src/local-dev/runtime-paths.js.map +0 -1
  701. package/src/local-dev/secret-slice-claim.js.map +0 -1
  702. package/src/local-dev/slice-claim.js.map +0 -1
  703. package/src/local-dev/slice-runner.js.map +0 -1
  704. package/src/local-dev/tls.js.map +0 -1
  705. package/src/ownership/composition.js.map +0 -1
  706. package/src/ownership/foundation-record.js.map +0 -1
  707. package/src/ownership/hash.js.map +0 -1
  708. package/src/ownership/index.js.map +0 -1
  709. package/src/ownership/json-ownership.js.map +0 -1
  710. package/src/ownership/record.js.map +0 -1
  711. package/src/ownership/workspace-record.js.map +0 -1
  712. package/src/performance/cost-collection.js.map +0 -1
  713. package/src/performance/cost-controls.js.map +0 -1
  714. package/src/performance/evidence.js.map +0 -1
  715. package/src/performance/index.js.map +0 -1
  716. package/src/performance/load-safety.js.map +0 -1
  717. package/src/performance/model.js.map +0 -1
  718. package/src/performance/pr-artifact-budget.js.map +0 -1
  719. package/src/performance/runner.js.map +0 -1
  720. package/src/performance/scenario-endpoint.js.map +0 -1
  721. package/src/performance/scenario.js.map +0 -1
  722. package/src/performance/test-fixtures.d.ts +0 -7
  723. package/src/performance/test-fixtures.js +0 -169
  724. package/src/performance/test-fixtures.js.map +0 -1
  725. package/src/performance/unit-cost.js.map +0 -1
  726. package/src/release/index.js.map +0 -1
  727. package/src/release/lifecycle.js.map +0 -1
  728. package/src/release/manifest.js.map +0 -1
  729. package/src/release/rollout.js.map +0 -1
  730. package/src/release/source-authority.js.map +0 -1
  731. package/src/repository-policy/aurora-preflight.js.map +0 -1
  732. package/src/repository-policy/deployment-plan.js.map +0 -1
  733. package/src/repository-policy/foundation-profile.js.map +0 -1
  734. package/src/repository-policy/index.js.map +0 -1
  735. package/src/repository-policy/policy.js.map +0 -1
  736. package/src/secrets/adapters.js.map +0 -1
  737. package/src/secrets/aws-control-plane.js.map +0 -1
  738. package/src/secrets/declaration-verification.js.map +0 -1
  739. package/src/secrets/guardrails.js.map +0 -1
  740. package/src/secrets/index.js.map +0 -1
  741. package/src/secrets/metadata.js.map +0 -1
  742. package/src/secrets/model.js.map +0 -1
  743. package/src/secrets/operator.js.map +0 -1
  744. package/src/secrets/permissions.js.map +0 -1
  745. package/src/secrets/personal-command.js.map +0 -1
  746. package/src/secrets/personal-ledger.js.map +0 -1
  747. package/src/secrets/registry.js.map +0 -1
  748. package/src/secrets/verification.js.map +0 -1
  749. package/src/secrets/workload-access.js.map +0 -1
  750. package/src/supply-chain/action-pins.js.map +0 -1
  751. package/src/supply-chain/blueprint-trust-git.js.map +0 -1
  752. package/src/supply-chain/blueprint-trust-process.js.map +0 -1
  753. package/src/supply-chain/blueprint-trust.js.map +0 -1
  754. package/src/supply-chain/blueprint-verification-authority.js.map +0 -1
  755. package/src/supply-chain/blueprint-verification-execution.js.map +0 -1
  756. package/src/supply-chain/build-output.js.map +0 -1
  757. package/src/supply-chain/common.js.map +0 -1
  758. package/src/supply-chain/container-artifact-contract.js.map +0 -1
  759. package/src/supply-chain/container-release.js.map +0 -1
  760. package/src/supply-chain/ecr-applicability.js.map +0 -1
  761. package/src/supply-chain/ecr-scanning.js.map +0 -1
  762. package/src/supply-chain/ecs-deployed-image.js.map +0 -1
  763. package/src/supply-chain/errors.js.map +0 -1
  764. package/src/supply-chain/generated-blueprint-trust-command.js.map +0 -1
  765. package/src/supply-chain/generated-command.js.map +0 -1
  766. package/src/supply-chain/generated-container-release-command.js.map +0 -1
  767. package/src/supply-chain/generated-ecr-collector-command.js.map +0 -1
  768. package/src/supply-chain/generated-files.js.map +0 -1
  769. package/src/supply-chain/generated-scanner-command.js.map +0 -1
  770. package/src/supply-chain/index.js.map +0 -1
  771. package/src/supply-chain/inventory.js.map +0 -1
  772. package/src/supply-chain/license-expression.js.map +0 -1
  773. package/src/supply-chain/pnpm-toolchain-authority.js.map +0 -1
  774. package/src/supply-chain/policy.js.map +0 -1
  775. package/src/supply-chain/publication.js.map +0 -1
  776. package/src/supply-chain/sbom.js.map +0 -1
  777. package/src/supply-chain/scanner.js.map +0 -1
  778. package/src/supply-chain/vendored-source.js.map +0 -1
  779. package/src/testing-evidence/fixture-scope.js.map +0 -1
  780. package/src/testing-evidence/index.js.map +0 -1
  781. package/src/testing-evidence/quarantine.js.map +0 -1
  782. package/src/testing-evidence/result.js.map +0 -1
  783. package/src/testing-evidence/runner-adapter.js.map +0 -1
  784. package/src/testing-evidence/sensitive-artifacts.js.map +0 -1
  785. package/src/validation.js.map +0 -1
  786. package/src/work-markers/index.js.map +0 -1
  787. package/src/work-markers/work-markers.js.map +0 -1
  788. package/src/workload-roles/account-baseline.js.map +0 -1
  789. package/src/workload-roles/authority.js.map +0 -1
  790. package/src/workload-roles/aws-adapter.js.map +0 -1
  791. package/src/workload-roles/aws-internal-handler.js.map +0 -1
  792. package/src/workload-roles/aws-s3-state.js.map +0 -1
  793. package/src/workload-roles/aws-sdk-control-plane.js.map +0 -1
  794. package/src/workload-roles/boundary.js.map +0 -1
  795. package/src/workload-roles/convergence.js.map +0 -1
  796. package/src/workload-roles/effective-policy.js.map +0 -1
  797. package/src/workload-roles/handler.js.map +0 -1
  798. package/src/workload-roles/history.js.map +0 -1
  799. package/src/workload-roles/index.js.map +0 -1
  800. package/src/workload-roles/injection.js.map +0 -1
  801. package/src/workload-roles/manifest.js.map +0 -1
  802. package/src/workload-roles/provisioner.js.map +0 -1
  803. package/src/workload-roles/registration.js.map +0 -1
  804. package/src/workload-roles/stage-boundary.js.map +0 -1
  805. package/src/workload-roles/standard-slice.js.map +0 -1
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AwsGeneratedSecretInitializationError = void 0;
4
+ exports.createAwsGeneratedSecretInitializationControlPlane = createAwsGeneratedSecretInitializationControlPlane;
5
+ const node_crypto_1 = require("node:crypto");
6
+ const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
7
+ const model_js_1 = require("./model.js");
8
+ class AwsGeneratedSecretInitializationError extends Error {
9
+ code;
10
+ constructor(code) {
11
+ super(`Generated secret initialization failed (${code}).`);
12
+ this.name = 'AwsGeneratedSecretInitializationError';
13
+ this.code = code;
14
+ }
15
+ }
16
+ exports.AwsGeneratedSecretInitializationError = AwsGeneratedSecretInitializationError;
17
+ const inspectionDelaysMilliseconds = [0, 100, 250, 500, 1_000];
18
+ const generatedSecretNamePattern = /^ebk\/(development|staging|production)\/([a-z0-9][a-z0-9-]{0,62})\/([A-Za-z][A-Za-z0-9]{0,63})$/;
19
+ const metadataTextPattern = /^[^\0]{1,256}$/;
20
+ const slugPattern = /^[a-z0-9][a-z0-9-]{0,62}$/;
21
+ const generatedSecretTagKeys = [
22
+ 'ebk:generation',
23
+ 'ebk:logical-name',
24
+ 'ebk:management',
25
+ 'ebk:owner',
26
+ 'ebk:slice',
27
+ 'ebk:stage',
28
+ 'ebk:workspace',
29
+ ];
30
+ function expectedVersionId(name, generation) {
31
+ return (0, node_crypto_1.createHash)('sha256')
32
+ .update('ebk-generated-secret-initialization-v2\0', 'utf8')
33
+ .update(name, 'utf8')
34
+ .update('\0', 'utf8')
35
+ .update(generation, 'utf8')
36
+ .digest('hex');
37
+ }
38
+ function isRecord(value) {
39
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
40
+ }
41
+ function isResourceNotFound(error) {
42
+ return (isRecord(error) &&
43
+ (error['name'] === 'ResourceNotFoundException' ||
44
+ error['Code'] === 'ResourceNotFoundException' ||
45
+ error['code'] === 'ResourceNotFoundException'));
46
+ }
47
+ function requireInput(input) {
48
+ const name = generatedSecretNamePattern.exec(input.name);
49
+ if (!isRecord(input) ||
50
+ name === null ||
51
+ input.description !== `EBK generated secret ${name[3]}` ||
52
+ input.generation !== 'hmac-key-ring-v1' ||
53
+ !isRecord(input.tags) ||
54
+ Object.keys(input.tags).length !== generatedSecretTagKeys.length ||
55
+ generatedSecretTagKeys.some((key) => !Object.prototype.hasOwnProperty.call(input.tags, key)) ||
56
+ input.tags['ebk:generation'] !== 'hmac-key-ring-v1' ||
57
+ input.tags['ebk:logical-name'] !== name[3] ||
58
+ input.tags['ebk:management'] !== 'generated-secret' ||
59
+ !slugPattern.test(input.tags['ebk:owner'] ?? '') ||
60
+ input.tags['ebk:slice'] !== name[2] ||
61
+ input.tags['ebk:stage'] !== name[1] ||
62
+ !slugPattern.test(input.tags['ebk:workspace'] ?? '') ||
63
+ Object.entries(input.tags).some(([key, value]) => !metadataTextPattern.test(key) ||
64
+ typeof value !== 'string' ||
65
+ !metadataTextPattern.test(value))) {
66
+ throw new AwsGeneratedSecretInitializationError('generated-secret-input-invalid');
67
+ }
68
+ }
69
+ function tagsToAws(tags) {
70
+ return Object.keys(tags)
71
+ .sort()
72
+ .map((Key) => ({ Key, Value: tags[Key] }));
73
+ }
74
+ function exactTags(value, expected) {
75
+ if (!Array.isArray(value) || value.length !== Object.keys(expected).length) {
76
+ return false;
77
+ }
78
+ const observed = {};
79
+ for (const entry of value) {
80
+ if (!isRecord(entry) ||
81
+ typeof entry['Key'] !== 'string' ||
82
+ typeof entry['Value'] !== 'string' ||
83
+ Object.prototype.hasOwnProperty.call(observed, entry['Key'])) {
84
+ return false;
85
+ }
86
+ observed[entry['Key']] = entry['Value'];
87
+ }
88
+ return Object.entries(expected).every(([key, expectedValue]) => observed[key] === expectedValue);
89
+ }
90
+ function arnMatchesName(arn, name) {
91
+ if (!(0, model_js_1.isExactSecretArn)(arn))
92
+ return false;
93
+ const marker = `:secret:${name}-`;
94
+ const markerIndex = arn.lastIndexOf(marker);
95
+ return (markerIndex > 0 &&
96
+ /^[A-Za-z0-9]{6}$/.test(arn.slice(markerIndex + marker.length)));
97
+ }
98
+ function inspectVersionState(output, versionId) {
99
+ const versions = output.VersionIdsToStages;
100
+ if (versions === undefined || Object.keys(versions).length !== 1) {
101
+ return 'conflicting';
102
+ }
103
+ const entry = Object.entries(versions)[0];
104
+ return entry?.[0] === versionId &&
105
+ Array.isArray(entry[1]) &&
106
+ entry[1].length === 1 &&
107
+ entry[1][0] === 'AWSCURRENT'
108
+ ? 'current'
109
+ : 'conflicting';
110
+ }
111
+ function requireDescribeOutput(value, input) {
112
+ if (!isRecord(value) ||
113
+ typeof value['ARN'] !== 'string' ||
114
+ !arnMatchesName(value['ARN'], input.name) ||
115
+ value['Name'] !== input.name ||
116
+ value['Description'] !== input.description ||
117
+ value['DeletedDate'] !== undefined ||
118
+ value['RotationEnabled'] === true ||
119
+ !exactTags(value['Tags'], input.tags)) {
120
+ throw new AwsGeneratedSecretInitializationError('generated-secret-observation-invalid');
121
+ }
122
+ return {
123
+ arn: value['ARN'],
124
+ state: inspectVersionState(value, expectedVersionId(input.name, input.generation)),
125
+ };
126
+ }
127
+ function requireCreateOutput(value, input, versionId) {
128
+ if (!isRecord(value) ||
129
+ typeof value['ARN'] !== 'string' ||
130
+ !arnMatchesName(value['ARN'], input.name) ||
131
+ value['Name'] !== input.name ||
132
+ value['VersionId'] !== versionId) {
133
+ throw new AwsGeneratedSecretInitializationError('generated-secret-observation-invalid');
134
+ }
135
+ return value;
136
+ }
137
+ function defaultClient(configuration) {
138
+ const client = new client_secrets_manager_1.SecretsManagerClient(configuration);
139
+ return {
140
+ send(command) {
141
+ if (command instanceof client_secrets_manager_1.DescribeSecretCommand) {
142
+ return client.send(command);
143
+ }
144
+ return client.send(command);
145
+ },
146
+ };
147
+ }
148
+ async function defaultWait(milliseconds) {
149
+ if (milliseconds === 0)
150
+ return;
151
+ await new Promise((resolve) => setTimeout(resolve, milliseconds));
152
+ }
153
+ /**
154
+ * Generates one declared machine value inside the AWS adapter and atomically
155
+ * creates its Secrets Manager container. The public API accepts no plaintext
156
+ * and returns only applied/unchanged metadata. Plaintext necessarily exists
157
+ * transiently in this trusted process and the AWS SDK request, but it is never
158
+ * returned, logged, or persisted by EBK.
159
+ */
160
+ function createAwsGeneratedSecretInitializationControlPlane(options = {}) {
161
+ const client = options.client ?? defaultClient(options.clientConfiguration ?? {});
162
+ const generateBytes = options.randomBytes ?? node_crypto_1.randomBytes;
163
+ const wait = options.wait ?? defaultWait;
164
+ const inspectExact = async (input) => {
165
+ requireInput(input);
166
+ let rawOutput;
167
+ try {
168
+ rawOutput = await client.send(new client_secrets_manager_1.DescribeSecretCommand({ SecretId: input.name }));
169
+ }
170
+ catch (error) {
171
+ if (isResourceNotFound(error))
172
+ return { state: 'missing' };
173
+ throw new AwsGeneratedSecretInitializationError('generated-secret-read-failed');
174
+ }
175
+ return requireDescribeOutput(rawOutput, input);
176
+ };
177
+ const inspectAfterCreate = async (input) => {
178
+ let finalInspection = { state: 'missing' };
179
+ for (const delay of inspectionDelaysMilliseconds) {
180
+ await wait(delay);
181
+ finalInspection = await inspectExact(input);
182
+ if (finalInspection.state !== 'missing')
183
+ return finalInspection;
184
+ }
185
+ return finalInspection;
186
+ };
187
+ return Object.freeze({
188
+ async inspect(input) {
189
+ return (await inspectExact(input)).state;
190
+ },
191
+ async initializeGenerated(input) {
192
+ requireInput(input);
193
+ const initial = await inspectExact(input);
194
+ if (initial.state === 'current')
195
+ return 'unchanged';
196
+ if (initial.state !== 'missing') {
197
+ throw new AwsGeneratedSecretInitializationError('generated-secret-state-conflicting');
198
+ }
199
+ let idBytes;
200
+ let keyBytes;
201
+ try {
202
+ idBytes = generateBytes(12);
203
+ keyBytes = generateBytes(32);
204
+ }
205
+ catch {
206
+ idBytes?.fill(0);
207
+ keyBytes?.fill(0);
208
+ throw new AwsGeneratedSecretInitializationError('generated-secret-input-invalid');
209
+ }
210
+ if (idBytes.length !== 12 || keyBytes.length !== 32) {
211
+ idBytes.fill(0);
212
+ keyBytes.fill(0);
213
+ throw new AwsGeneratedSecretInitializationError('generated-secret-input-invalid');
214
+ }
215
+ const versionId = expectedVersionId(input.name, input.generation);
216
+ let responseAccepted = false;
217
+ try {
218
+ try {
219
+ // SecretString is intentionally created only in the trusted adapter.
220
+ // JavaScript strings cannot be zeroized; never expose this command or
221
+ // its input through logs, return values, evidence, or dependency hooks.
222
+ const secretString = JSON.stringify({
223
+ current: {
224
+ id: `ebk-${idBytes.toString('hex')}`,
225
+ secret: keyBytes.toString('base64url'),
226
+ },
227
+ });
228
+ const output = await client.send(new client_secrets_manager_1.CreateSecretCommand({
229
+ ClientRequestToken: versionId,
230
+ Description: input.description,
231
+ Name: input.name,
232
+ SecretString: secretString,
233
+ Tags: tagsToAws(input.tags),
234
+ }));
235
+ requireCreateOutput(output, input, versionId);
236
+ responseAccepted = true;
237
+ }
238
+ catch {
239
+ responseAccepted = false;
240
+ }
241
+ }
242
+ finally {
243
+ idBytes.fill(0);
244
+ keyBytes.fill(0);
245
+ }
246
+ const finalInspection = await inspectAfterCreate(input);
247
+ if (finalInspection.state === 'current') {
248
+ return responseAccepted ? 'applied' : 'unchanged';
249
+ }
250
+ if (finalInspection.state === 'conflicting') {
251
+ throw new AwsGeneratedSecretInitializationError('generated-secret-state-conflicting');
252
+ }
253
+ throw new AwsGeneratedSecretInitializationError(responseAccepted
254
+ ? 'generated-secret-observation-invalid'
255
+ : 'generated-secret-write-failed');
256
+ },
257
+ });
258
+ }
259
+ //# sourceMappingURL=generated-aws-control-plane.js.map
@@ -23,8 +23,9 @@ function expectedDeclarations(declarations, scope) {
23
23
  const names = new Set();
24
24
  for (const declaration of declarations) {
25
25
  (0, model_js_1.validateSecretMetadataDeclaration)(declaration);
26
- if (declaration.source !== 'operator') {
27
- throw new model_js_1.SecretMetadataModelError(`declarations.${declaration.logicalName}.source`, 'must be operator for the operator-secret metadata path');
26
+ if (declaration.source !== 'operator' &&
27
+ declaration.source !== 'generated') {
28
+ throw new model_js_1.SecretMetadataModelError(`declarations.${declaration.logicalName}.source`, 'must be operator or generated for the deployed-secret metadata path');
28
29
  }
29
30
  if (names.has(declaration.logicalName)) {
30
31
  throw new model_js_1.SecretMetadataModelError('declarations', 'must not contain duplicate logical names');
@@ -54,6 +55,17 @@ function identityDisposition(observed, expectedTags) {
54
55
  }
55
56
  return present.length === identityTagKeys.length ? 'owned' : 'ambiguous';
56
57
  }
58
+ function managementDisposition(observed, expectedTags) {
59
+ const actualManagement = observed.tags[model_js_1.SECRET_METADATA_TAG_KEYS.management];
60
+ const expectedManagement = expectedTags[model_js_1.SECRET_METADATA_TAG_KEYS.management];
61
+ const actualGeneration = observed.tags[model_js_1.SECRET_METADATA_TAG_KEYS.generation];
62
+ const expectedGeneration = expectedTags[model_js_1.SECRET_METADATA_TAG_KEYS.generation];
63
+ if (actualManagement === expectedManagement &&
64
+ actualGeneration === expectedGeneration) {
65
+ return 'owned';
66
+ }
67
+ return 'conflicting';
68
+ }
57
69
  function tagsDiffer(observed, expected) {
58
70
  return Object.entries(expected).some(([key, value]) => observed.tags[key] !== value);
59
71
  }
@@ -83,12 +95,17 @@ function reconcileSecretMetadata(input) {
83
95
  const actual = observed.get(name);
84
96
  if (actual === undefined) {
85
97
  findings.push(finding('missing-container', name, declaration.logicalName, 'blocking'));
86
- proposedMutations.push({
87
- description: `EBK operator secret ${declaration.logicalName}`,
88
- kind: 'create-empty-container',
89
- name,
90
- tags: expectedTags,
91
- });
98
+ // A generated value and its container are one atomic Secrets Manager
99
+ // creation. Metadata reconciliation may create only value-free operator
100
+ // containers; the generated initializer owns the generated container.
101
+ if (declaration.source !== 'generated') {
102
+ proposedMutations.push({
103
+ description: `EBK ${declaration.source} secret ${declaration.logicalName}`,
104
+ kind: 'create-empty-container',
105
+ name,
106
+ tags: expectedTags,
107
+ });
108
+ }
92
109
  continue;
93
110
  }
94
111
  const ownership = identityDisposition(actual, expectedTags);
@@ -100,6 +117,11 @@ function reconcileSecretMetadata(input) {
100
117
  findings.push(finding('identity-conflict', name, declaration.logicalName, 'blocking'));
101
118
  continue;
102
119
  }
120
+ const management = managementDisposition(actual, expectedTags);
121
+ if (management === 'conflicting') {
122
+ findings.push(finding('identity-conflict', name, declaration.logicalName, 'blocking'));
123
+ continue;
124
+ }
103
125
  if (tagsDiffer(actual, expectedTags)) {
104
126
  findings.push(finding('tag-drift', name, declaration.logicalName, 'warning'));
105
127
  proposedMutations.push({
@@ -118,8 +140,10 @@ function reconcileSecretMetadata(input) {
118
140
  input.scope.workspace &&
119
141
  actual.tags[model_js_1.SECRET_METADATA_TAG_KEYS.stage] === input.scope.stage &&
120
142
  actual.tags[model_js_1.SECRET_METADATA_TAG_KEYS.slice] === input.scope.slice &&
121
- actual.tags[model_js_1.SECRET_METADATA_TAG_KEYS.management] ===
122
- model_js_1.OPERATOR_SECRET_MANAGEMENT_CLASS) {
143
+ (actual.tags[model_js_1.SECRET_METADATA_TAG_KEYS.management] ===
144
+ model_js_1.OPERATOR_SECRET_MANAGEMENT_CLASS ||
145
+ actual.tags[model_js_1.SECRET_METADATA_TAG_KEYS.management] ===
146
+ model_js_1.GENERATED_SECRET_MANAGEMENT_CLASS)) {
123
147
  findings.push(finding('orphan-container', actual.name, actual.tags[model_js_1.SECRET_METADATA_TAG_KEYS.logicalName], 'warning'));
124
148
  }
125
149
  }
@@ -156,6 +180,10 @@ function preflightSecretMetadata(input) {
156
180
  findings.push(finding('identity-conflict', name, declaration.logicalName, 'blocking'));
157
181
  continue;
158
182
  }
183
+ if (managementDisposition(actual, expectedTags) === 'conflicting') {
184
+ findings.push(finding('identity-conflict', name, declaration.logicalName, 'blocking'));
185
+ continue;
186
+ }
159
187
  if (!actual.versionStages.includes('AWSCURRENT')) {
160
188
  findings.push(finding('missing-current-version', name, declaration.logicalName, 'blocking'));
161
189
  }
@@ -1,7 +1,10 @@
1
1
  export declare const OPERATOR_SECRET_MANAGEMENT_CLASS: "operator-secret";
2
+ export declare const GENERATED_SECRET_MANAGEMENT_CLASS: "generated-secret";
3
+ export declare const GENERATED_HMAC_SECRET_LOGICAL_NAME: "GeneratedPerformanceLoadHmacKeys";
2
4
  export declare const SECRET_CANONICAL_STAGES: readonly ["development", "staging", "production"];
3
5
  export type SecretCanonicalStage = (typeof SECRET_CANONICAL_STAGES)[number];
4
6
  export declare const SECRET_METADATA_TAG_KEYS: {
7
+ readonly generation: "ebk:generation";
5
8
  readonly logicalName: "ebk:logical-name";
6
9
  readonly management: "ebk:management";
7
10
  readonly owner: "ebk:owner";
@@ -15,11 +18,14 @@ export type SecretMetadataRotation = {
15
18
  mode: 'provider-managed';
16
19
  };
17
20
  export interface SecretMetadataDeclaration {
21
+ generation?: {
22
+ kind: 'hmac-key-ring-v1';
23
+ };
18
24
  logicalName: string;
19
25
  owner: string;
20
26
  requiredStages: readonly string[];
21
27
  rotation: SecretMetadataRotation;
22
- source: 'aws-managed' | 'database-bootstrap' | 'operator';
28
+ source: 'aws-managed' | 'database-bootstrap' | 'generated' | 'operator';
23
29
  valueKind: 'binary' | 'json' | 'string';
24
30
  }
25
31
  export interface SecretManagementScope {
@@ -29,6 +35,7 @@ export interface SecretManagementScope {
29
35
  }
30
36
  export interface ObservedSecretMetadata {
31
37
  arn: string;
38
+ deletionPendingUntil?: string;
32
39
  name: string;
33
40
  rotationEnabled: boolean;
34
41
  tags: Readonly<Record<string, string>>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SecretMetadataModelError = exports.SECRET_METADATA_TAG_KEYS = exports.SECRET_CANONICAL_STAGES = exports.OPERATOR_SECRET_MANAGEMENT_CLASS = void 0;
3
+ exports.SecretMetadataModelError = exports.SECRET_METADATA_TAG_KEYS = exports.SECRET_CANONICAL_STAGES = exports.GENERATED_HMAC_SECRET_LOGICAL_NAME = exports.GENERATED_SECRET_MANAGEMENT_CLASS = exports.OPERATOR_SECRET_MANAGEMENT_CLASS = void 0;
4
4
  exports.isSecretCanonicalStage = isSecretCanonicalStage;
5
5
  exports.validateSecretManagementScope = validateSecretManagementScope;
6
6
  exports.validateSecretMetadataDeclaration = validateSecretMetadataDeclaration;
@@ -10,12 +10,15 @@ exports.canonicalOperatorSecretTags = canonicalOperatorSecretTags;
10
10
  exports.isExactSecretArn = isExactSecretArn;
11
11
  exports.isRotationCompliant = isRotationCompliant;
12
12
  exports.OPERATOR_SECRET_MANAGEMENT_CLASS = 'operator-secret';
13
+ exports.GENERATED_SECRET_MANAGEMENT_CLASS = 'generated-secret';
14
+ exports.GENERATED_HMAC_SECRET_LOGICAL_NAME = 'GeneratedPerformanceLoadHmacKeys';
13
15
  exports.SECRET_CANONICAL_STAGES = [
14
16
  'development',
15
17
  'staging',
16
18
  'production',
17
19
  ];
18
20
  exports.SECRET_METADATA_TAG_KEYS = {
21
+ generation: 'ebk:generation',
19
22
  logicalName: 'ebk:logical-name',
20
23
  management: 'ebk:management',
21
24
  owner: 'ebk:owner',
@@ -64,12 +67,20 @@ function validateSecretMetadataDeclaration(declaration) {
64
67
  declaration.requiredStages.length) {
65
68
  throw new SecretMetadataModelError('declaration.requiredStages', 'must contain unique canonical deployed stages');
66
69
  }
67
- if (!['aws-managed', 'database-bootstrap', 'operator'].includes(declaration.source)) {
70
+ if (!['aws-managed', 'database-bootstrap', 'generated', 'operator'].includes(declaration.source)) {
68
71
  throw new SecretMetadataModelError('declaration.source', 'must name a supported value authority');
69
72
  }
70
73
  if (!['binary', 'json', 'string'].includes(declaration.valueKind)) {
71
74
  throw new SecretMetadataModelError('declaration.valueKind', 'must name a supported value shape');
72
75
  }
76
+ if ((declaration.source === 'generated') !==
77
+ (declaration.generation !== undefined) ||
78
+ (declaration.generation !== undefined &&
79
+ (declaration.generation.kind !== 'hmac-key-ring-v1' ||
80
+ Object.keys(declaration.generation).length !== 1 ||
81
+ declaration.valueKind !== 'json'))) {
82
+ throw new SecretMetadataModelError('declaration.generation', 'must select the supported value-blind JSON generator exactly when source is generated');
83
+ }
73
84
  if (!['manual', 'provider-managed'].includes(declaration.rotation.mode)) {
74
85
  throw new SecretMetadataModelError('declaration.rotation.mode', 'must be manual or provider-managed');
75
86
  }
@@ -82,6 +93,9 @@ function validateObservedSecretMetadata(observed) {
82
93
  throw new SecretMetadataModelError('observed.name', 'must be a concrete secret name');
83
94
  }
84
95
  if (typeof observed.rotationEnabled !== 'boolean' ||
96
+ (observed.deletionPendingUntil !== undefined &&
97
+ (typeof observed.deletionPendingUntil !== 'string' ||
98
+ Number.isNaN(Date.parse(observed.deletionPendingUntil)))) ||
85
99
  typeof observed.tags !== 'object' ||
86
100
  observed.tags === null ||
87
101
  Array.isArray(observed.tags) ||
@@ -106,8 +120,15 @@ function canonicalOperatorSecretTags(scope, declaration) {
106
120
  validateSecretManagementScope(scope);
107
121
  validateSecretMetadataDeclaration(declaration);
108
122
  return Object.freeze({
123
+ ...(declaration.generation === undefined
124
+ ? {}
125
+ : {
126
+ [exports.SECRET_METADATA_TAG_KEYS.generation]: declaration.generation.kind,
127
+ }),
109
128
  [exports.SECRET_METADATA_TAG_KEYS.logicalName]: declaration.logicalName,
110
- [exports.SECRET_METADATA_TAG_KEYS.management]: exports.OPERATOR_SECRET_MANAGEMENT_CLASS,
129
+ [exports.SECRET_METADATA_TAG_KEYS.management]: declaration.source === 'generated'
130
+ ? exports.GENERATED_SECRET_MANAGEMENT_CLASS
131
+ : exports.OPERATOR_SECRET_MANAGEMENT_CLASS,
111
132
  [exports.SECRET_METADATA_TAG_KEYS.owner]: declaration.owner,
112
133
  [exports.SECRET_METADATA_TAG_KEYS.slice]: scope.slice,
113
134
  [exports.SECRET_METADATA_TAG_KEYS.stage]: scope.stage,
@@ -1,4 +1,5 @@
1
- import { type SecretMetadataMutationIntent, type SecretMetadataPreflightResult, type SecretMetadataReconciliationResult } from './metadata.js';
1
+ import { AwsGeneratedSecretInitializationError } from './generated-aws-control-plane.js';
2
+ import { type SecretMetadataFinding, type SecretMetadataMutationIntent, type SecretMetadataPreflightResult, type SecretMetadataReconciliationResult } from './metadata.js';
2
3
  import { type ObservedSecretMetadata, type SecretManagementScope, type SecretMetadataDeclaration } from './model.js';
3
4
  export interface ListedSecretContainer {
4
5
  arn: string;
@@ -20,12 +21,40 @@ export interface SecretMetadataControlPlane {
20
21
  describe(input: {
21
22
  arn: string;
22
23
  }): Promise<ObservedSecretMetadata>;
24
+ describeExact(input: {
25
+ includePlannedDeletion?: boolean;
26
+ name: string;
27
+ }): Promise<ObservedSecretMetadata | undefined>;
23
28
  list(input: {
24
29
  includePlannedDeletion?: boolean;
25
30
  namePrefix: string;
26
31
  }): Promise<readonly ListedSecretContainer[]>;
27
32
  tag(input: TagSecretContainerInput): Promise<void>;
28
33
  }
34
+ export interface GeneratedSecretInitializationControlPlane {
35
+ /**
36
+ * Atomically create the container and generated value inside the concrete
37
+ * control-plane adapter. The plaintext must never be returned to this
38
+ * orchestration layer.
39
+ */
40
+ initializeGenerated(input: {
41
+ description: string;
42
+ generation: 'hmac-key-ring-v1';
43
+ name: string;
44
+ tags: Readonly<Record<string, string>>;
45
+ }): Promise<'applied' | 'unchanged'>;
46
+ /**
47
+ * Describe and validate the exact named container, provenance metadata, and
48
+ * deterministic generated version. Implementations must not use an
49
+ * eventually consistent inventory/list operation for this attestation.
50
+ */
51
+ inspect(input: {
52
+ description: string;
53
+ generation: 'hmac-key-ring-v1';
54
+ name: string;
55
+ tags: Readonly<Record<string, string>>;
56
+ }): Promise<'conflicting' | 'current' | 'missing'>;
57
+ }
29
58
  export interface ProtectedSecretLifecycleControlPlane extends SecretMetadataControlPlane {
30
59
  restore(input: {
31
60
  arn: string;
@@ -37,6 +66,14 @@ export interface ProtectedSecretLifecycleControlPlane extends SecretMetadataCont
37
66
  recoveryUntil: string;
38
67
  }>;
39
68
  }
69
+ export interface GeneratedSecretRetirementControlPlane extends Pick<ProtectedSecretLifecycleControlPlane, 'describeExact' | 'scheduleRetirement'> {
70
+ deleteImmediately(input: {
71
+ arn: string;
72
+ }): Promise<void>;
73
+ restore(input: {
74
+ arn: string;
75
+ }): Promise<void>;
76
+ }
40
77
  export interface ProtectedSecretOperatorAuthorization {
41
78
  approved: true;
42
79
  authority: 'protected-secret-operator';
@@ -45,9 +82,10 @@ export interface ProtectedSecretOperatorAuthorization {
45
82
  }
46
83
  export type SecretProtectedLifecycleAction = 'deploy' | 'recover' | 'remove' | 'unlock';
47
84
  export declare class SecretOperatorControlPlaneError extends Error {
48
- readonly operation: 'create-empty' | 'describe' | 'inventory' | 'list' | 'recover' | 'retire' | 'tag';
85
+ readonly operation: 'create-empty' | 'describe' | 'inventory' | 'initialize-generated' | 'list' | 'recover' | 'retire' | 'tag';
86
+ readonly diagnosticCode?: AwsGeneratedSecretInitializationError['code'];
49
87
  readonly code: 'secret-control-plane-apply-failed' | 'secret-control-plane-inventory-failed' | 'secret-control-plane-inventory-invalid' | 'secret-control-plane-protected-action-failed';
50
- constructor(code: SecretOperatorControlPlaneError['code'], operation: 'create-empty' | 'describe' | 'inventory' | 'list' | 'recover' | 'retire' | 'tag');
88
+ constructor(code: SecretOperatorControlPlaneError['code'], operation: 'create-empty' | 'describe' | 'inventory' | 'initialize-generated' | 'list' | 'recover' | 'retire' | 'tag', diagnosticCode?: AwsGeneratedSecretInitializationError['code']);
51
89
  }
52
90
  export interface SecretMetadataOperatorResult {
53
91
  after?: SecretMetadataReconciliationResult;
@@ -56,6 +94,33 @@ export interface SecretMetadataOperatorResult {
56
94
  mode: 'apply' | 'report';
57
95
  outcome: 'applied' | 'applied-with-findings' | 'blocked' | 'reported';
58
96
  }
97
+ export interface GeneratedSecretInitializationResult {
98
+ findings: readonly SecretMetadataFinding[];
99
+ initialized: readonly {
100
+ logicalName: string;
101
+ name: string;
102
+ }[];
103
+ mode: 'apply' | 'report';
104
+ outcome: 'applied' | 'blocked' | 'reported' | 'unchanged';
105
+ proposed: readonly {
106
+ logicalName: string;
107
+ name: string;
108
+ }[];
109
+ }
110
+ export interface GeneratedSecretRetirementResult {
111
+ deletionMode: 'immediate' | 'recovery-window';
112
+ outcome: 'not-applicable' | 'retired';
113
+ recoveryWindowDays?: 7;
114
+ secrets: readonly {
115
+ generation: 'hmac-key-ring-v1';
116
+ logicalName: string;
117
+ name: string;
118
+ outcome: 'already-scheduled' | 'deleted' | 'not-found' | 'scheduled';
119
+ recoveryUntil?: string;
120
+ source: 'generated';
121
+ }[];
122
+ stage: string;
123
+ }
59
124
  export interface SecretDeployPreflightResult extends SecretMetadataPreflightResult {
60
125
  action: SecretProtectedLifecycleAction;
61
126
  bypassed: boolean;
@@ -79,12 +144,35 @@ export declare function runSecretMetadataOperator(input: {
79
144
  mode?: 'apply' | 'report';
80
145
  scope: SecretManagementScope;
81
146
  }): Promise<SecretMetadataOperatorResult>;
147
+ export declare function runGeneratedSecretInitializer(input: {
148
+ initializationControlPlane: GeneratedSecretInitializationControlPlane;
149
+ logicalName: string;
150
+ metadataControlPlane: SecretMetadataControlPlane;
151
+ declarations: readonly SecretMetadataDeclaration[];
152
+ mode?: 'apply' | 'report';
153
+ scope: SecretManagementScope;
154
+ }): Promise<GeneratedSecretInitializationResult>;
82
155
  export declare function runSecretDeployPreflight(input: {
83
156
  action: SecretProtectedLifecycleAction;
84
157
  controlPlane: SecretMetadataControlPlane;
85
158
  declarations: readonly SecretMetadataDeclaration[];
86
159
  scope: SecretManagementScope;
87
160
  }): Promise<SecretDeployPreflightResult>;
161
+ /**
162
+ * Retires only exact framework-generated stage secrets after a
163
+ * successful native Slice removal. This path never reads a secret value,
164
+ * inventories a prefix, or operates on operator/database-bootstrap secrets.
165
+ */
166
+ export declare function runGeneratedSecretRetirement(input: {
167
+ accountId: string;
168
+ controlPlane: GeneratedSecretRetirementControlPlane;
169
+ declarations: readonly SecretMetadataDeclaration[];
170
+ now?: () => number;
171
+ partition: 'aws' | 'aws-cn' | 'aws-us-gov';
172
+ region: string;
173
+ scope: SecretManagementScope;
174
+ waitBeforeRetry?: (delayMs: number) => Promise<void>;
175
+ }): Promise<GeneratedSecretRetirementResult>;
88
176
  export declare function runProtectedSecretLifecycle(input: {
89
177
  action: 'recover';
90
178
  authorization: ProtectedSecretOperatorAuthorization;