@empire-builder-kit/nx 1.0.0-beta.9 → 1.0.0-rc.2

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 (824) hide show
  1. package/NOTICE +6 -0
  2. package/README.md +113 -3
  3. package/executors.json +30 -0
  4. package/package.json +84 -6
  5. package/src/api-contract/baseline-update.d.ts +82 -0
  6. package/src/api-contract/baseline-update.js +225 -0
  7. package/src/api-contract/baseline-update.js.map +1 -0
  8. package/src/api-contract/compatibility.d.ts +30 -0
  9. package/src/api-contract/compatibility.js +643 -0
  10. package/src/api-contract/compatibility.js.map +1 -0
  11. package/src/api-contract/contract-graph.d.ts +35 -0
  12. package/src/api-contract/contract-graph.js +141 -0
  13. package/src/api-contract/contract-graph.js.map +1 -0
  14. package/src/api-contract/evidence.d.ts +23 -0
  15. package/src/api-contract/evidence.js +87 -0
  16. package/src/api-contract/evidence.js.map +1 -0
  17. package/src/api-contract/index.d.ts +6 -0
  18. package/src/api-contract/index.js +10 -0
  19. package/src/api-contract/index.js.map +1 -0
  20. package/src/api-contract/model.d.ts +144 -0
  21. package/src/api-contract/model.fixtures.d.ts +2 -0
  22. package/src/api-contract/model.fixtures.js +81 -0
  23. package/src/api-contract/model.fixtures.js.map +1 -0
  24. package/src/api-contract/model.js +993 -0
  25. package/src/api-contract/model.js.map +1 -0
  26. package/src/api-contract/rollout.d.ts +32 -0
  27. package/src/api-contract/rollout.js +88 -0
  28. package/src/api-contract/rollout.js.map +1 -0
  29. package/src/authorization/compatibility.d.ts +62 -0
  30. package/src/authorization/compatibility.js +175 -0
  31. package/src/authorization/compatibility.js.map +1 -0
  32. package/src/authorization/index.d.ts +1 -0
  33. package/src/authorization/index.js +5 -0
  34. package/src/authorization/index.js.map +1 -0
  35. package/src/blueprints/execution.d.ts +25 -1
  36. package/src/blueprints/execution.js +246 -83
  37. package/src/blueprints/execution.js.map +1 -1
  38. package/src/blueprints/external-sandbox.d.ts +53 -0
  39. package/src/blueprints/external-sandbox.js +1182 -0
  40. package/src/blueprints/external-sandbox.js.map +1 -0
  41. package/src/blueprints/manifest.d.ts +42 -2
  42. package/src/blueprints/manifest.js +82 -27
  43. package/src/blueprints/manifest.js.map +1 -1
  44. package/src/blueprints/resolver.d.ts +14 -5
  45. package/src/blueprints/resolver.js +228 -68
  46. package/src/blueprints/resolver.js.map +1 -1
  47. package/src/cli/agent-command.d.ts +30 -0
  48. package/src/cli/agent-command.js +204 -0
  49. package/src/cli/agent-command.js.map +1 -0
  50. package/src/cli/agent-runtime.d.ts +25 -0
  51. package/src/cli/agent-runtime.js +488 -0
  52. package/src/cli/agent-runtime.js.map +1 -0
  53. package/src/cli/blueprint-authority.d.ts +9 -0
  54. package/src/cli/blueprint-authority.js +43 -0
  55. package/src/cli/blueprint-authority.js.map +1 -0
  56. package/src/cli/blueprint-command.d.ts +24 -0
  57. package/src/cli/blueprint-command.js +63 -0
  58. package/src/cli/blueprint-command.js.map +1 -0
  59. package/src/cli/bootstrap.d.ts +31 -0
  60. package/src/cli/bootstrap.js +165 -0
  61. package/src/cli/bootstrap.js.map +1 -0
  62. package/src/cli/dev-command.d.ts +92 -0
  63. package/src/cli/dev-command.js +561 -0
  64. package/src/cli/dev-command.js.map +1 -0
  65. package/src/cli/main.d.ts +131 -0
  66. package/src/cli/main.js +1199 -0
  67. package/src/cli/main.js.map +1 -0
  68. package/src/cli/output.d.ts +19 -0
  69. package/src/cli/output.js +51 -0
  70. package/src/cli/output.js.map +1 -0
  71. package/src/cli/personal-secret-runtime.d.ts +81 -0
  72. package/src/cli/personal-secret-runtime.js +567 -0
  73. package/src/cli/personal-secret-runtime.js.map +1 -0
  74. package/src/cli/secret-terminal.d.ts +12 -0
  75. package/src/cli/secret-terminal.js +128 -0
  76. package/src/cli/secret-terminal.js.map +1 -0
  77. package/src/container-images.d.ts +1 -0
  78. package/src/container-images.js +5 -0
  79. package/src/container-images.js.map +1 -0
  80. package/src/data-lifecycle/index.d.ts +3 -0
  81. package/src/data-lifecycle/index.js +7 -0
  82. package/src/data-lifecycle/index.js.map +1 -0
  83. package/src/data-lifecycle/model.d.ts +172 -0
  84. package/src/data-lifecycle/model.fixtures.d.ts +2 -0
  85. package/src/data-lifecycle/model.fixtures.js +244 -0
  86. package/src/data-lifecycle/model.fixtures.js.map +1 -0
  87. package/src/data-lifecycle/model.js +95 -0
  88. package/src/data-lifecycle/model.js.map +1 -0
  89. package/src/data-lifecycle/sensitive-artifacts.d.ts +28 -0
  90. package/src/data-lifecycle/sensitive-artifacts.js +146 -0
  91. package/src/data-lifecycle/sensitive-artifacts.js.map +1 -0
  92. package/src/data-lifecycle/validation.d.ts +32 -0
  93. package/src/data-lifecycle/validation.js +837 -0
  94. package/src/data-lifecycle/validation.js.map +1 -0
  95. package/src/database-retirement/contract.d.ts +68 -0
  96. package/src/database-retirement/contract.js +166 -0
  97. package/src/database-retirement/contract.js.map +1 -0
  98. package/src/database-retirement/index.d.ts +1 -0
  99. package/src/database-retirement/index.js +5 -0
  100. package/src/database-retirement/index.js.map +1 -0
  101. package/src/deterministic-order.d.ts +2 -0
  102. package/src/deterministic-order.js +7 -0
  103. package/src/deterministic-order.js.map +1 -0
  104. package/src/developer-agent/context.d.ts +27 -0
  105. package/src/developer-agent/context.js +497 -0
  106. package/src/developer-agent/context.js.map +1 -0
  107. package/src/developer-agent/generator-planning.d.ts +34 -0
  108. package/src/developer-agent/generator-planning.js +645 -0
  109. package/src/developer-agent/generator-planning.js.map +1 -0
  110. package/src/developer-agent/generator-preview.d.ts +8 -0
  111. package/src/developer-agent/generator-preview.js +650 -0
  112. package/src/developer-agent/generator-preview.js.map +1 -0
  113. package/src/developer-agent/git-inspection.d.ts +108 -0
  114. package/src/developer-agent/git-inspection.js +815 -0
  115. package/src/developer-agent/git-inspection.js.map +1 -0
  116. package/src/developer-agent/handoff.d.ts +43 -0
  117. package/src/developer-agent/handoff.js +698 -0
  118. package/src/developer-agent/handoff.js.map +1 -0
  119. package/src/developer-agent/index.d.ts +10 -0
  120. package/src/developer-agent/index.js +14 -0
  121. package/src/developer-agent/index.js.map +1 -0
  122. package/src/developer-agent/model.d.ts +481 -0
  123. package/src/developer-agent/model.js +143 -0
  124. package/src/developer-agent/model.js.map +1 -0
  125. package/src/developer-agent/operation-registry.d.ts +45 -0
  126. package/src/developer-agent/operation-registry.js +1255 -0
  127. package/src/developer-agent/operation-registry.js.map +1 -0
  128. package/src/developer-agent/ordering.d.ts +9 -0
  129. package/src/developer-agent/ordering.js +15 -0
  130. package/src/developer-agent/ordering.js.map +1 -0
  131. package/src/developer-agent/planning.d.ts +18 -0
  132. package/src/developer-agent/planning.js +447 -0
  133. package/src/developer-agent/planning.js.map +1 -0
  134. package/src/developer-agent/preview-changes.d.ts +26 -0
  135. package/src/developer-agent/preview-changes.js +203 -0
  136. package/src/developer-agent/preview-changes.js.map +1 -0
  137. package/src/developer-agent/preview-source.d.ts +2 -0
  138. package/src/developer-agent/preview-source.js +16 -0
  139. package/src/developer-agent/preview-source.js.map +1 -0
  140. package/src/developer-agent/validation.d.ts +18 -0
  141. package/src/developer-agent/validation.js +2617 -0
  142. package/src/developer-agent/validation.js.map +1 -0
  143. package/src/developer-agent/workspace-inspection.d.ts +20 -0
  144. package/src/developer-agent/workspace-inspection.js +1134 -0
  145. package/src/developer-agent/workspace-inspection.js.map +1 -0
  146. package/src/developer-agent/workspace-path.d.ts +6 -0
  147. package/src/developer-agent/workspace-path.js +22 -0
  148. package/src/developer-agent/workspace-path.js.map +1 -0
  149. package/src/executors/blueprint-trust/blueprint-trust.d.ts +29 -0
  150. package/src/executors/blueprint-trust/blueprint-trust.js +115 -0
  151. package/src/executors/blueprint-trust/blueprint-trust.js.map +1 -0
  152. package/src/executors/blueprint-trust/schema.json +27 -0
  153. package/src/executors/blueprint-verification/blueprint-verification.d.ts +13 -0
  154. package/src/executors/blueprint-verification/blueprint-verification.js +110 -0
  155. package/src/executors/blueprint-verification/blueprint-verification.js.map +1 -0
  156. package/src/executors/blueprint-verification/schema.json +44 -0
  157. package/src/executors/deployment-plan/deployment-plan.js +1 -0
  158. package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
  159. package/src/executors/dev-doctor/dev-doctor.d.ts +19 -5
  160. package/src/executors/dev-doctor/dev-doctor.js +186 -32
  161. package/src/executors/dev-doctor/dev-doctor.js.map +1 -1
  162. package/src/executors/dev-doctor/schema.json +1 -6
  163. package/src/executors/dev-setup/dev-setup.d.ts +7 -1
  164. package/src/executors/dev-setup/dev-setup.js +14 -3
  165. package/src/executors/dev-setup/dev-setup.js.map +1 -1
  166. package/src/executors/developer-context/developer-context.d.ts +38 -0
  167. package/src/executors/developer-context/developer-context.js +78 -0
  168. package/src/executors/developer-context/developer-context.js.map +1 -0
  169. package/src/executors/developer-context/schema.json +87 -0
  170. package/src/executors/fleet/fleet.d.ts +12 -43
  171. package/src/executors/fleet/fleet.js +120 -500
  172. package/src/executors/fleet/fleet.js.map +1 -1
  173. package/src/executors/fleet/schema.json +64 -14
  174. package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
  175. package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
  176. package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
  177. package/src/executors/github-bootstrap/schema.json +5 -0
  178. package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +144 -0
  179. package/src/executors/infrastructure-plan/infrastructure-plan.js +3320 -0
  180. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +1 -0
  181. package/src/executors/infrastructure-plan/schema.json +78 -0
  182. package/src/executors/secret-guardrails/schema.json +6 -0
  183. package/src/executors/secret-guardrails/secret-guardrails.d.ts +3 -0
  184. package/src/executors/secret-guardrails/secret-guardrails.js +44 -0
  185. package/src/executors/secret-guardrails/secret-guardrails.js.map +1 -0
  186. package/src/executors/secret-metadata/schema.json +31 -0
  187. package/src/executors/secret-metadata/secret-metadata.d.ts +32 -0
  188. package/src/executors/secret-metadata/secret-metadata.js +131 -0
  189. package/src/executors/secret-metadata/secret-metadata.js.map +1 -0
  190. package/src/executors/sst-lifecycle/logging-preflight.d.ts +17 -0
  191. package/src/executors/sst-lifecycle/logging-preflight.js +196 -0
  192. package/src/executors/sst-lifecycle/logging-preflight.js.map +1 -0
  193. package/src/executors/sst-lifecycle/run-sst-command.d.ts +23 -3
  194. package/src/executors/sst-lifecycle/run-sst-command.js +113 -10
  195. package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
  196. package/src/executors/sst-lifecycle/schema.json +9 -5
  197. package/src/executors/sst-lifecycle/secret-preflight.d.ts +25 -0
  198. package/src/executors/sst-lifecycle/secret-preflight.js +119 -0
  199. package/src/executors/sst-lifecycle/secret-preflight.js.map +1 -0
  200. package/src/foundation/discovery.d.ts +17 -1
  201. package/src/foundation/discovery.js +16 -1
  202. package/src/foundation/discovery.js.map +1 -1
  203. package/src/foundation/index.d.ts +3 -0
  204. package/src/foundation/index.js +3 -0
  205. package/src/foundation/index.js.map +1 -1
  206. package/src/foundation/local-database-contract.d.ts +1 -0
  207. package/src/foundation/local-database-contract.js +3 -0
  208. package/src/foundation/local-database-contract.js.map +1 -1
  209. package/src/foundation/logging-preflight.d.ts +30 -0
  210. package/src/foundation/logging-preflight.js +138 -0
  211. package/src/foundation/logging-preflight.js.map +1 -0
  212. package/src/foundation/logging.d.ts +70 -0
  213. package/src/foundation/logging.js +133 -0
  214. package/src/foundation/logging.js.map +1 -0
  215. package/src/foundation/preflight.d.ts +9 -0
  216. package/src/foundation/preflight.js +58 -2
  217. package/src/foundation/preflight.js.map +1 -1
  218. package/src/foundation/provision-database-bindings.d.ts +9 -1
  219. package/src/foundation/provision-database-bindings.js +25 -5
  220. package/src/foundation/provision-database-bindings.js.map +1 -1
  221. package/src/foundation/provision-logical-database.d.ts +10 -2
  222. package/src/foundation/provision-logical-database.js +68 -113
  223. package/src/foundation/provision-logical-database.js.map +1 -1
  224. package/src/foundation/router-origin-proof.d.ts +2 -0
  225. package/src/foundation/router-origin-proof.js +25 -0
  226. package/src/foundation/router-origin-proof.js.map +1 -0
  227. package/src/foundation/stages.d.ts +1 -0
  228. package/src/foundation/stages.js +9 -1
  229. package/src/foundation/stages.js.map +1 -1
  230. package/src/frontend-security/index.d.ts +1 -0
  231. package/src/frontend-security/index.js +5 -0
  232. package/src/frontend-security/index.js.map +1 -0
  233. package/src/frontend-security/security-headers.d.ts +50 -0
  234. package/src/frontend-security/security-headers.js +418 -0
  235. package/src/frontend-security/security-headers.js.map +1 -0
  236. package/src/generators/feature-registry.d.ts +13 -0
  237. package/src/generators/feature-registry.js +73 -0
  238. package/src/generators/feature-registry.js.map +1 -0
  239. package/src/generators/function/function.d.ts +1 -1
  240. package/src/generators/function/function.js +51 -6
  241. package/src/generators/function/function.js.map +1 -1
  242. package/src/generators/function/schema.d.ts +1 -0
  243. package/src/generators/function/schema.json +6 -1
  244. package/src/generators/logging-registry.d.ts +13 -0
  245. package/src/generators/logging-registry.js +62 -0
  246. package/src/generators/logging-registry.js.map +1 -0
  247. package/src/generators/post-generation-install.d.ts +67 -0
  248. package/src/generators/post-generation-install.js +3308 -0
  249. package/src/generators/post-generation-install.js.map +1 -0
  250. package/src/generators/preset/generator.js +3 -0
  251. package/src/generators/preset/generator.js.map +1 -1
  252. package/src/generators/preset/tool-versions.d.ts +18 -0
  253. package/src/generators/preset/tool-versions.js +22 -0
  254. package/src/generators/preset/tool-versions.js.map +1 -0
  255. package/src/generators/preset/workspace-files-developer-agent.d.ts +14 -0
  256. package/src/generators/preset/workspace-files-developer-agent.js +511 -0
  257. package/src/generators/preset/workspace-files-developer-agent.js.map +1 -0
  258. package/src/generators/preset/workspace-files-foundation-workload-roles.d.ts +6 -0
  259. package/src/generators/preset/workspace-files-foundation-workload-roles.js +406 -0
  260. package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +1 -0
  261. package/src/generators/preset/workspace-files-performance-cost.d.ts +66 -0
  262. package/src/generators/preset/workspace-files-performance-cost.js +866 -0
  263. package/src/generators/preset/workspace-files-performance-cost.js.map +1 -0
  264. package/src/generators/preset/workspace-files-performance-load.d.ts +73 -0
  265. package/src/generators/preset/workspace-files-performance-load.js +801 -0
  266. package/src/generators/preset/workspace-files-performance-load.js.map +1 -0
  267. package/src/generators/preset/workspace-files-workload-role-baseline.d.ts +9 -0
  268. package/src/generators/preset/workspace-files-workload-role-baseline.js +1102 -0
  269. package/src/generators/preset/workspace-files-workload-role-baseline.js.map +1 -0
  270. package/src/generators/preset/workspace-files.d.ts +14 -1
  271. package/src/generators/preset/workspace-files.js +8189 -245
  272. package/src/generators/preset/workspace-files.js.map +1 -1
  273. package/src/generators/repository-policy/repository-policy.js +3 -47
  274. package/src/generators/repository-policy/repository-policy.js.map +1 -1
  275. package/src/generators/slice/built-in-plan-api-contract-files.d.ts +2 -0
  276. package/src/generators/slice/built-in-plan-api-contract-files.js +2656 -0
  277. package/src/generators/slice/built-in-plan-api-contract-files.js.map +1 -0
  278. package/src/generators/slice/built-in-plan-api-files.d.ts +2 -0
  279. package/src/generators/slice/built-in-plan-api-files.js +1186 -0
  280. package/src/generators/slice/built-in-plan-api-files.js.map +1 -0
  281. package/src/generators/slice/built-in-plan-async-work-files.d.ts +2 -0
  282. package/src/generators/slice/built-in-plan-async-work-files.js +7903 -0
  283. package/src/generators/slice/built-in-plan-async-work-files.js.map +1 -0
  284. package/src/generators/slice/built-in-plan-authorization-files.d.ts +2 -0
  285. package/src/generators/slice/built-in-plan-authorization-files.js +2314 -0
  286. package/src/generators/slice/built-in-plan-authorization-files.js.map +1 -0
  287. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.d.ts +2 -0
  288. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +559 -0
  289. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +1 -0
  290. package/src/generators/slice/built-in-plan-data-deletion-files.d.ts +2 -0
  291. package/src/generators/slice/built-in-plan-data-deletion-files.js +1101 -0
  292. package/src/generators/slice/built-in-plan-data-deletion-files.js.map +1 -0
  293. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.d.ts +2 -0
  294. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +249 -0
  295. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +1 -0
  296. package/src/generators/slice/built-in-plan-data-files.d.ts +2 -0
  297. package/src/generators/slice/built-in-plan-data-files.js +1530 -0
  298. package/src/generators/slice/built-in-plan-data-files.js.map +1 -0
  299. package/src/generators/slice/built-in-plan-data-lifecycle-files.d.ts +2 -0
  300. package/src/generators/slice/built-in-plan-data-lifecycle-files.js +750 -0
  301. package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +1 -0
  302. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.d.ts +2 -0
  303. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +828 -0
  304. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +1 -0
  305. package/src/generators/slice/built-in-plan-data-retention-job-files.d.ts +2 -0
  306. package/src/generators/slice/built-in-plan-data-retention-job-files.js +2604 -0
  307. package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +1 -0
  308. package/src/generators/slice/built-in-plan-data-retention-launcher-files.d.ts +2 -0
  309. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +144 -0
  310. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +1 -0
  311. package/src/generators/slice/built-in-plan-data-rights-files.d.ts +2 -0
  312. package/src/generators/slice/built-in-plan-data-rights-files.js +4628 -0
  313. package/src/generators/slice/built-in-plan-data-rights-files.js.map +1 -0
  314. package/src/generators/slice/built-in-plan-database-lifecycle-files.d.ts +2 -0
  315. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +1901 -0
  316. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +1 -0
  317. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.d.ts +2 -0
  318. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +485 -0
  319. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +1 -0
  320. package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -0
  321. package/src/generators/slice/built-in-plan-foundation-files.js +184 -0
  322. package/src/generators/slice/built-in-plan-foundation-files.js.map +1 -0
  323. package/src/generators/slice/built-in-plan-frontend-files.d.ts +2 -0
  324. package/src/generators/slice/built-in-plan-frontend-files.js +2233 -0
  325. package/src/generators/slice/built-in-plan-frontend-files.js.map +1 -0
  326. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +2 -0
  327. package/src/generators/slice/built-in-plan-infrastructure-files.js +3038 -0
  328. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -0
  329. package/src/generators/slice/built-in-plan-infrastructure-safety-files.d.ts +2 -0
  330. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +312 -0
  331. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +1 -0
  332. package/src/generators/slice/built-in-plan-metadata-files.d.ts +3 -0
  333. package/src/generators/slice/built-in-plan-metadata-files.js +219 -0
  334. package/src/generators/slice/built-in-plan-metadata-files.js.map +1 -0
  335. package/src/generators/slice/built-in-plan-operations-files.d.ts +2 -0
  336. package/src/generators/slice/built-in-plan-operations-files.js +630 -0
  337. package/src/generators/slice/built-in-plan-operations-files.js.map +1 -0
  338. package/src/generators/slice/built-in-plan-performance-files.d.ts +3 -0
  339. package/src/generators/slice/built-in-plan-performance-files.js +3293 -0
  340. package/src/generators/slice/built-in-plan-performance-files.js.map +1 -0
  341. package/src/generators/slice/built-in-plan-project-files.d.ts +3 -0
  342. package/src/generators/slice/built-in-plan-project-files.js +979 -0
  343. package/src/generators/slice/built-in-plan-project-files.js.map +1 -0
  344. package/src/generators/slice/built-in-plan-release-files.d.ts +2 -0
  345. package/src/generators/slice/built-in-plan-release-files.js +6387 -0
  346. package/src/generators/slice/built-in-plan-release-files.js.map +1 -0
  347. package/src/generators/slice/built-in-plan-reliability-files.d.ts +2 -0
  348. package/src/generators/slice/built-in-plan-reliability-files.js +4499 -0
  349. package/src/generators/slice/built-in-plan-reliability-files.js.map +1 -0
  350. package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +2 -0
  351. package/src/generators/slice/built-in-plan-secret-runtime-files.js +1004 -0
  352. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +1 -0
  353. package/src/generators/slice/built-in-plan-shared.d.ts +53 -0
  354. package/src/generators/slice/built-in-plan-shared.js +113 -0
  355. package/src/generators/slice/built-in-plan-shared.js.map +1 -0
  356. package/src/generators/slice/built-in-plan-testing-files.d.ts +2 -0
  357. package/src/generators/slice/built-in-plan-testing-files.js +2356 -0
  358. package/src/generators/slice/built-in-plan-testing-files.js.map +1 -0
  359. package/src/generators/slice/built-in-plan-verification-files.d.ts +2 -0
  360. package/src/generators/slice/built-in-plan-verification-files.js +358 -0
  361. package/src/generators/slice/built-in-plan-verification-files.js.map +1 -0
  362. package/src/generators/slice/built-in-plan-web-files.d.ts +2 -0
  363. package/src/generators/slice/built-in-plan-web-files.js +430 -0
  364. package/src/generators/slice/built-in-plan-web-files.js.map +1 -0
  365. package/src/generators/slice/built-in-plan-workload-role-files.d.ts +2 -0
  366. package/src/generators/slice/built-in-plan-workload-role-files.js +2356 -0
  367. package/src/generators/slice/built-in-plan-workload-role-files.js.map +1 -0
  368. package/src/generators/slice/built-in-plan.d.ts +8 -0
  369. package/src/generators/slice/built-in-plan.js +264 -0
  370. package/src/generators/slice/built-in-plan.js.map +1 -0
  371. package/src/generators/slice/schema.json +1 -1
  372. package/src/generators/slice/slice.d.ts +1 -22
  373. package/src/generators/slice/slice.js +185 -1510
  374. package/src/generators/slice/slice.js.map +1 -1
  375. package/src/generators/upgrade/schema.d.ts +2 -0
  376. package/src/generators/upgrade/schema.json +11 -1
  377. package/src/generators/upgrade/upgrade.d.ts +51 -1
  378. package/src/generators/upgrade/upgrade.js +820 -82
  379. package/src/generators/upgrade/upgrade.js.map +1 -1
  380. package/src/generators/workload/frozen-container.d.ts +8 -0
  381. package/src/generators/workload/frozen-container.js +36 -0
  382. package/src/generators/workload/frozen-container.js.map +1 -0
  383. package/src/generators/workload/performance-registration.d.ts +32 -0
  384. package/src/generators/workload/performance-registration.js +226 -0
  385. package/src/generators/workload/performance-registration.js.map +1 -0
  386. package/src/generators/workload/reliability-registration.d.ts +16 -0
  387. package/src/generators/workload/reliability-registration.js +150 -0
  388. package/src/generators/workload/reliability-registration.js.map +1 -0
  389. package/src/generators/workload/schema.d.ts +1 -0
  390. package/src/generators/workload/schema.json +6 -1
  391. package/src/generators/workload/service-performance-files.d.ts +4 -0
  392. package/src/generators/workload/service-performance-files.js +1846 -0
  393. package/src/generators/workload/service-performance-files.js.map +1 -0
  394. package/src/generators/workload/workload.d.ts +3 -2
  395. package/src/generators/workload/workload.js +1083 -18
  396. package/src/generators/workload/workload.js.map +1 -1
  397. package/src/git-policy/action-pins.d.ts +10 -0
  398. package/src/git-policy/action-pins.js +10 -0
  399. package/src/git-policy/action-pins.js.map +1 -1
  400. package/src/git-policy/github-bootstrap.d.ts +14 -1
  401. package/src/git-policy/github-bootstrap.js +274 -46
  402. package/src/git-policy/github-bootstrap.js.map +1 -1
  403. package/src/index.d.ts +2 -0
  404. package/src/index.js +2 -0
  405. package/src/index.js.map +1 -1
  406. package/src/infrastructure-change/convergence.d.ts +13 -0
  407. package/src/infrastructure-change/convergence.js +85 -0
  408. package/src/infrastructure-change/convergence.js.map +1 -0
  409. package/src/infrastructure-change/drift.d.ts +13 -0
  410. package/src/infrastructure-change/drift.js +112 -0
  411. package/src/infrastructure-change/drift.js.map +1 -0
  412. package/src/infrastructure-change/index.d.ts +7 -0
  413. package/src/infrastructure-change/index.js +11 -0
  414. package/src/infrastructure-change/index.js.map +1 -0
  415. package/src/infrastructure-change/model.d.ts +253 -0
  416. package/src/infrastructure-change/model.js +28 -0
  417. package/src/infrastructure-change/model.js.map +1 -0
  418. package/src/infrastructure-change/normalize.d.ts +12 -0
  419. package/src/infrastructure-change/normalize.js +245 -0
  420. package/src/infrastructure-change/normalize.js.map +1 -0
  421. package/src/infrastructure-change/plan.d.ts +40 -0
  422. package/src/infrastructure-change/plan.js +361 -0
  423. package/src/infrastructure-change/plan.js.map +1 -0
  424. package/src/infrastructure-change/risk.d.ts +7 -0
  425. package/src/infrastructure-change/risk.js +269 -0
  426. package/src/infrastructure-change/risk.js.map +1 -0
  427. package/src/infrastructure-change/summary.d.ts +20 -0
  428. package/src/infrastructure-change/summary.js +130 -0
  429. package/src/infrastructure-change/summary.js.map +1 -0
  430. package/src/local-dev/context-discovery.d.ts +2 -0
  431. package/src/local-dev/context-discovery.js +59 -0
  432. package/src/local-dev/context-discovery.js.map +1 -0
  433. package/src/local-dev/contract-validation.d.ts +15 -0
  434. package/src/local-dev/contract-validation.js +84 -0
  435. package/src/local-dev/contract-validation.js.map +1 -0
  436. package/src/local-dev/contracts.d.ts +10 -1
  437. package/src/local-dev/contracts.js +57 -5
  438. package/src/local-dev/contracts.js.map +1 -1
  439. package/src/local-dev/control-contract.d.ts +67 -0
  440. package/src/local-dev/control-contract.js +180 -0
  441. package/src/local-dev/control-contract.js.map +1 -0
  442. package/src/local-dev/dev-command-core.d.ts +60 -0
  443. package/src/local-dev/dev-command-core.js +89 -0
  444. package/src/local-dev/dev-command-core.js.map +1 -0
  445. package/src/local-dev/effects.d.ts +16 -0
  446. package/src/local-dev/effects.js +63 -0
  447. package/src/local-dev/effects.js.map +1 -0
  448. package/src/local-dev/environment-inspector.d.ts +125 -0
  449. package/src/local-dev/environment-inspector.js +687 -0
  450. package/src/local-dev/environment-inspector.js.map +1 -0
  451. package/src/local-dev/environment-state.d.ts +113 -0
  452. package/src/local-dev/environment-state.js +463 -0
  453. package/src/local-dev/environment-state.js.map +1 -0
  454. package/src/local-dev/errors.d.ts +6 -0
  455. package/src/local-dev/errors.js +41 -0
  456. package/src/local-dev/errors.js.map +1 -0
  457. package/src/local-dev/fleet-client.d.ts +33 -0
  458. package/src/local-dev/fleet-client.js +156 -0
  459. package/src/local-dev/fleet-client.js.map +1 -0
  460. package/src/local-dev/fleet-configuration.d.ts +13 -0
  461. package/src/local-dev/fleet-configuration.js +71 -0
  462. package/src/local-dev/fleet-configuration.js.map +1 -0
  463. package/src/local-dev/fleet-inventory.d.ts +56 -0
  464. package/src/local-dev/fleet-inventory.js +469 -0
  465. package/src/local-dev/fleet-inventory.js.map +1 -0
  466. package/src/local-dev/fleet-ipc.d.ts +28 -0
  467. package/src/local-dev/fleet-ipc.js +267 -0
  468. package/src/local-dev/fleet-ipc.js.map +1 -0
  469. package/src/local-dev/fleet-launcher.d.ts +53 -0
  470. package/src/local-dev/fleet-launcher.js +379 -0
  471. package/src/local-dev/fleet-launcher.js.map +1 -0
  472. package/src/local-dev/fleet-lock.d.ts +41 -0
  473. package/src/local-dev/fleet-lock.js +135 -0
  474. package/src/local-dev/fleet-lock.js.map +1 -0
  475. package/src/local-dev/fleet-logs.d.ts +66 -0
  476. package/src/local-dev/fleet-logs.js +542 -0
  477. package/src/local-dev/fleet-logs.js.map +1 -0
  478. package/src/local-dev/fleet-process.d.ts +50 -0
  479. package/src/local-dev/fleet-process.js +289 -0
  480. package/src/local-dev/fleet-process.js.map +1 -0
  481. package/src/local-dev/fleet-runtime.d.ts +22 -0
  482. package/src/local-dev/fleet-runtime.js +368 -0
  483. package/src/local-dev/fleet-runtime.js.map +1 -0
  484. package/src/local-dev/fleet-session.d.ts +70 -0
  485. package/src/local-dev/fleet-session.js +301 -0
  486. package/src/local-dev/fleet-session.js.map +1 -0
  487. package/src/local-dev/fleet-slice-runner-daemon.d.ts +1 -0
  488. package/src/local-dev/fleet-slice-runner-daemon.js +21 -0
  489. package/src/local-dev/fleet-slice-runner-daemon.js.map +1 -0
  490. package/src/local-dev/fleet-startup.d.ts +22 -0
  491. package/src/local-dev/fleet-startup.js +114 -0
  492. package/src/local-dev/fleet-startup.js.map +1 -0
  493. package/src/local-dev/fleet-state.d.ts +62 -0
  494. package/src/local-dev/fleet-state.js +297 -0
  495. package/src/local-dev/fleet-state.js.map +1 -0
  496. package/src/local-dev/fleet-supervisor-daemon.d.ts +1 -0
  497. package/src/local-dev/fleet-supervisor-daemon.js +41 -0
  498. package/src/local-dev/fleet-supervisor-daemon.js.map +1 -0
  499. package/src/local-dev/fleet-supervisor.d.ts +52 -0
  500. package/src/local-dev/fleet-supervisor.js +384 -0
  501. package/src/local-dev/fleet-supervisor.js.map +1 -0
  502. package/src/local-dev/gateway.js +1 -1
  503. package/src/local-dev/gateway.js.map +1 -1
  504. package/src/local-dev/identity.js +4 -6
  505. package/src/local-dev/identity.js.map +1 -1
  506. package/src/local-dev/index.d.ts +1 -0
  507. package/src/local-dev/index.js +1 -0
  508. package/src/local-dev/index.js.map +1 -1
  509. package/src/local-dev/local-context.d.ts +62 -0
  510. package/src/local-dev/local-context.js +299 -0
  511. package/src/local-dev/local-context.js.map +1 -0
  512. package/src/local-dev/nx-workspace.d.ts +45 -0
  513. package/src/local-dev/nx-workspace.js +228 -0
  514. package/src/local-dev/nx-workspace.js.map +1 -0
  515. package/src/local-dev/personal-secret-ledger.d.ts +75 -0
  516. package/src/local-dev/personal-secret-ledger.js +391 -0
  517. package/src/local-dev/personal-secret-ledger.js.map +1 -0
  518. package/src/local-dev/personal-stage.d.ts +18 -0
  519. package/src/local-dev/personal-stage.js +129 -0
  520. package/src/local-dev/personal-stage.js.map +1 -0
  521. package/src/local-dev/private-state.d.ts +17 -0
  522. package/src/local-dev/private-state.js +254 -0
  523. package/src/local-dev/private-state.js.map +1 -0
  524. package/src/local-dev/process-identity.d.ts +9 -0
  525. package/src/local-dev/process-identity.js +79 -0
  526. package/src/local-dev/process-identity.js.map +1 -0
  527. package/src/local-dev/runtime-paths.d.ts +17 -0
  528. package/src/local-dev/runtime-paths.js +33 -0
  529. package/src/local-dev/runtime-paths.js.map +1 -0
  530. package/src/local-dev/secret-slice-claim.d.ts +17 -0
  531. package/src/local-dev/secret-slice-claim.js +75 -0
  532. package/src/local-dev/secret-slice-claim.js.map +1 -0
  533. package/src/local-dev/slice-claim.d.ts +36 -0
  534. package/src/local-dev/slice-claim.js +199 -0
  535. package/src/local-dev/slice-claim.js.map +1 -0
  536. package/src/local-dev/slice-runner.d.ts +121 -0
  537. package/src/local-dev/slice-runner.js +715 -0
  538. package/src/local-dev/slice-runner.js.map +1 -0
  539. package/src/local-dev/tls.js +51 -17
  540. package/src/local-dev/tls.js.map +1 -1
  541. package/src/ownership/composition.d.ts +5 -2
  542. package/src/ownership/composition.js +26 -3
  543. package/src/ownership/composition.js.map +1 -1
  544. package/src/ownership/hash.d.ts +1 -1
  545. package/src/ownership/hash.js +3 -1
  546. package/src/ownership/hash.js.map +1 -1
  547. package/src/ownership/record.d.ts +32 -1
  548. package/src/ownership/record.js +139 -2
  549. package/src/ownership/record.js.map +1 -1
  550. package/src/performance/cost-collection.d.ts +225 -0
  551. package/src/performance/cost-collection.js +825 -0
  552. package/src/performance/cost-collection.js.map +1 -0
  553. package/src/performance/cost-controls.d.ts +131 -0
  554. package/src/performance/cost-controls.js +336 -0
  555. package/src/performance/cost-controls.js.map +1 -0
  556. package/src/performance/evidence.d.ts +140 -0
  557. package/src/performance/evidence.js +599 -0
  558. package/src/performance/evidence.js.map +1 -0
  559. package/src/performance/index.d.ts +10 -0
  560. package/src/performance/index.js +14 -0
  561. package/src/performance/index.js.map +1 -0
  562. package/src/performance/load-safety.d.ts +84 -0
  563. package/src/performance/load-safety.js +346 -0
  564. package/src/performance/load-safety.js.map +1 -0
  565. package/src/performance/model.d.ts +129 -0
  566. package/src/performance/model.js +452 -0
  567. package/src/performance/model.js.map +1 -0
  568. package/src/performance/pr-artifact-budget.d.ts +42 -0
  569. package/src/performance/pr-artifact-budget.js +151 -0
  570. package/src/performance/pr-artifact-budget.js.map +1 -0
  571. package/src/performance/runner.d.ts +75 -0
  572. package/src/performance/runner.js +227 -0
  573. package/src/performance/runner.js.map +1 -0
  574. package/src/performance/scenario-endpoint.d.ts +1 -0
  575. package/src/performance/scenario-endpoint.js +5 -0
  576. package/src/performance/scenario-endpoint.js.map +1 -0
  577. package/src/performance/scenario.d.ts +193 -0
  578. package/src/performance/scenario.js +736 -0
  579. package/src/performance/scenario.js.map +1 -0
  580. package/src/performance/test-fixtures.d.ts +7 -0
  581. package/src/performance/test-fixtures.js +169 -0
  582. package/src/performance/test-fixtures.js.map +1 -0
  583. package/src/performance/unit-cost.d.ts +105 -0
  584. package/src/performance/unit-cost.js +364 -0
  585. package/src/performance/unit-cost.js.map +1 -0
  586. package/src/release/index.d.ts +4 -0
  587. package/src/release/index.js +8 -0
  588. package/src/release/index.js.map +1 -0
  589. package/src/release/lifecycle.d.ts +132 -0
  590. package/src/release/lifecycle.js +411 -0
  591. package/src/release/lifecycle.js.map +1 -0
  592. package/src/release/manifest.d.ts +148 -0
  593. package/src/release/manifest.js +503 -0
  594. package/src/release/manifest.js.map +1 -0
  595. package/src/release/rollout.d.ts +170 -0
  596. package/src/release/rollout.js +578 -0
  597. package/src/release/rollout.js.map +1 -0
  598. package/src/release/source-authority.d.ts +19 -0
  599. package/src/release/source-authority.js +195 -0
  600. package/src/release/source-authority.js.map +1 -0
  601. package/src/repository-policy/deployment-plan.d.ts +2 -1
  602. package/src/repository-policy/deployment-plan.js +2 -0
  603. package/src/repository-policy/deployment-plan.js.map +1 -1
  604. package/src/repository-policy/policy.d.ts +1 -1
  605. package/src/repository-policy/policy.js +29 -25
  606. package/src/repository-policy/policy.js.map +1 -1
  607. package/src/schemas/aggregate-count-evidence-v1.json +135 -0
  608. package/src/schemas/api-contract-baseline-v1.json +674 -0
  609. package/src/schemas/api-contract-compatibility-report-v1.json +126 -0
  610. package/src/schemas/aws-billing-actual-evidence-v1.json +407 -0
  611. package/src/schemas/blueprint-v1.json +18 -1
  612. package/src/schemas/data-lifecycle-policy-v1.json +517 -0
  613. package/src/schemas/generated-ownership-v2.json +22 -0
  614. package/src/schemas/performance-policy-v1.json +335 -0
  615. package/src/schemas/repository-policy-v1.json +1 -0
  616. package/src/schemas/testing-evidence-quarantine-v1.json +168 -0
  617. package/src/schemas/testing-evidence-result-v1.json +319 -0
  618. package/src/secrets/adapters.d.ts +49 -0
  619. package/src/secrets/adapters.js +184 -0
  620. package/src/secrets/adapters.js.map +1 -0
  621. package/src/secrets/aws-control-plane.d.ts +20 -0
  622. package/src/secrets/aws-control-plane.js +255 -0
  623. package/src/secrets/aws-control-plane.js.map +1 -0
  624. package/src/secrets/declaration-verification.d.ts +11 -0
  625. package/src/secrets/declaration-verification.js +68 -0
  626. package/src/secrets/declaration-verification.js.map +1 -0
  627. package/src/secrets/guardrails.d.ts +26 -0
  628. package/src/secrets/guardrails.js +328 -0
  629. package/src/secrets/guardrails.js.map +1 -0
  630. package/src/secrets/index.d.ts +12 -0
  631. package/src/secrets/index.js +16 -0
  632. package/src/secrets/index.js.map +1 -0
  633. package/src/secrets/metadata.d.ts +48 -0
  634. package/src/secrets/metadata.js +171 -0
  635. package/src/secrets/metadata.js.map +1 -0
  636. package/src/secrets/model.d.ts +49 -0
  637. package/src/secrets/model.js +125 -0
  638. package/src/secrets/model.js.map +1 -0
  639. package/src/secrets/operator.d.ts +101 -0
  640. package/src/secrets/operator.js +229 -0
  641. package/src/secrets/operator.js.map +1 -0
  642. package/src/secrets/permissions.d.ts +34 -0
  643. package/src/secrets/permissions.js +86 -0
  644. package/src/secrets/permissions.js.map +1 -0
  645. package/src/secrets/personal-command.d.ts +83 -0
  646. package/src/secrets/personal-command.js +197 -0
  647. package/src/secrets/personal-command.js.map +1 -0
  648. package/src/secrets/personal-ledger.d.ts +21 -0
  649. package/src/secrets/personal-ledger.js +135 -0
  650. package/src/secrets/personal-ledger.js.map +1 -0
  651. package/src/secrets/registry.d.ts +9 -0
  652. package/src/secrets/registry.js +86 -0
  653. package/src/secrets/registry.js.map +1 -0
  654. package/src/secrets/verification.d.ts +18 -0
  655. package/src/secrets/verification.js +139 -0
  656. package/src/secrets/verification.js.map +1 -0
  657. package/src/secrets/workload-access.d.ts +46 -0
  658. package/src/secrets/workload-access.js +163 -0
  659. package/src/secrets/workload-access.js.map +1 -0
  660. package/src/supply-chain/action-pins.d.ts +26 -0
  661. package/src/supply-chain/action-pins.js +208 -0
  662. package/src/supply-chain/action-pins.js.map +1 -0
  663. package/src/supply-chain/blueprint-trust-git.d.ts +130 -0
  664. package/src/supply-chain/blueprint-trust-git.js +1581 -0
  665. package/src/supply-chain/blueprint-trust-git.js.map +1 -0
  666. package/src/supply-chain/blueprint-trust-process.d.ts +4 -0
  667. package/src/supply-chain/blueprint-trust-process.js +88 -0
  668. package/src/supply-chain/blueprint-trust-process.js.map +1 -0
  669. package/src/supply-chain/blueprint-trust.d.ts +354 -0
  670. package/src/supply-chain/blueprint-trust.js +1558 -0
  671. package/src/supply-chain/blueprint-trust.js.map +1 -0
  672. package/src/supply-chain/blueprint-verification-authority.d.ts +62 -0
  673. package/src/supply-chain/blueprint-verification-authority.js +588 -0
  674. package/src/supply-chain/blueprint-verification-authority.js.map +1 -0
  675. package/src/supply-chain/blueprint-verification-execution.d.ts +68 -0
  676. package/src/supply-chain/blueprint-verification-execution.js +624 -0
  677. package/src/supply-chain/blueprint-verification-execution.js.map +1 -0
  678. package/src/supply-chain/build-output.d.ts +35 -0
  679. package/src/supply-chain/build-output.js +398 -0
  680. package/src/supply-chain/build-output.js.map +1 -0
  681. package/src/supply-chain/common.d.ts +21 -0
  682. package/src/supply-chain/common.js +107 -0
  683. package/src/supply-chain/common.js.map +1 -0
  684. package/src/supply-chain/container-artifact-contract.d.ts +23 -0
  685. package/src/supply-chain/container-artifact-contract.js +208 -0
  686. package/src/supply-chain/container-artifact-contract.js.map +1 -0
  687. package/src/supply-chain/container-release.d.ts +119 -0
  688. package/src/supply-chain/container-release.js +496 -0
  689. package/src/supply-chain/container-release.js.map +1 -0
  690. package/src/supply-chain/ecr-applicability.d.ts +19 -0
  691. package/src/supply-chain/ecr-applicability.js +103 -0
  692. package/src/supply-chain/ecr-applicability.js.map +1 -0
  693. package/src/supply-chain/ecr-scanning.d.ts +83 -0
  694. package/src/supply-chain/ecr-scanning.js +321 -0
  695. package/src/supply-chain/ecr-scanning.js.map +1 -0
  696. package/src/supply-chain/ecs-deployed-image.d.ts +85 -0
  697. package/src/supply-chain/ecs-deployed-image.js +300 -0
  698. package/src/supply-chain/ecs-deployed-image.js.map +1 -0
  699. package/src/supply-chain/errors.d.ts +6 -0
  700. package/src/supply-chain/errors.js +15 -0
  701. package/src/supply-chain/errors.js.map +1 -0
  702. package/src/supply-chain/generated-blueprint-trust-command.d.ts +4 -0
  703. package/src/supply-chain/generated-blueprint-trust-command.js +1362 -0
  704. package/src/supply-chain/generated-blueprint-trust-command.js.map +1 -0
  705. package/src/supply-chain/generated-command.d.ts +1 -0
  706. package/src/supply-chain/generated-command.js +687 -0
  707. package/src/supply-chain/generated-command.js.map +1 -0
  708. package/src/supply-chain/generated-container-release-command.d.ts +16 -0
  709. package/src/supply-chain/generated-container-release-command.js +2087 -0
  710. package/src/supply-chain/generated-container-release-command.js.map +1 -0
  711. package/src/supply-chain/generated-ecr-collector-command.d.ts +21 -0
  712. package/src/supply-chain/generated-ecr-collector-command.js +1338 -0
  713. package/src/supply-chain/generated-ecr-collector-command.js.map +1 -0
  714. package/src/supply-chain/generated-files.d.ts +13 -0
  715. package/src/supply-chain/generated-files.js +401 -0
  716. package/src/supply-chain/generated-files.js.map +1 -0
  717. package/src/supply-chain/generated-scanner-command.d.ts +1 -0
  718. package/src/supply-chain/generated-scanner-command.js +718 -0
  719. package/src/supply-chain/generated-scanner-command.js.map +1 -0
  720. package/src/supply-chain/index.d.ts +28 -0
  721. package/src/supply-chain/index.js +35 -0
  722. package/src/supply-chain/index.js.map +1 -0
  723. package/src/supply-chain/inventory.d.ts +79 -0
  724. package/src/supply-chain/inventory.js +717 -0
  725. package/src/supply-chain/inventory.js.map +1 -0
  726. package/src/supply-chain/license-expression.d.ts +7 -0
  727. package/src/supply-chain/license-expression.js +128 -0
  728. package/src/supply-chain/license-expression.js.map +1 -0
  729. package/src/supply-chain/pnpm-toolchain-authority.d.ts +31 -0
  730. package/src/supply-chain/pnpm-toolchain-authority.js +316 -0
  731. package/src/supply-chain/pnpm-toolchain-authority.js.map +1 -0
  732. package/src/supply-chain/policy.d.ts +105 -0
  733. package/src/supply-chain/policy.js +301 -0
  734. package/src/supply-chain/policy.js.map +1 -0
  735. package/src/supply-chain/publication.d.ts +48 -0
  736. package/src/supply-chain/publication.js +85 -0
  737. package/src/supply-chain/publication.js.map +1 -0
  738. package/src/supply-chain/sbom.d.ts +228 -0
  739. package/src/supply-chain/sbom.js +826 -0
  740. package/src/supply-chain/sbom.js.map +1 -0
  741. package/src/supply-chain/scanner.d.ts +77 -0
  742. package/src/supply-chain/scanner.js +502 -0
  743. package/src/supply-chain/scanner.js.map +1 -0
  744. package/src/supply-chain/vendored-source.d.ts +95 -0
  745. package/src/supply-chain/vendored-source.js +315 -0
  746. package/src/supply-chain/vendored-source.js.map +1 -0
  747. package/src/testing-evidence/fixture-scope.d.ts +52 -0
  748. package/src/testing-evidence/fixture-scope.js +140 -0
  749. package/src/testing-evidence/fixture-scope.js.map +1 -0
  750. package/src/testing-evidence/index.d.ts +5 -0
  751. package/src/testing-evidence/index.js +9 -0
  752. package/src/testing-evidence/index.js.map +1 -0
  753. package/src/testing-evidence/quarantine.d.ts +48 -0
  754. package/src/testing-evidence/quarantine.js +253 -0
  755. package/src/testing-evidence/quarantine.js.map +1 -0
  756. package/src/testing-evidence/result.d.ts +108 -0
  757. package/src/testing-evidence/result.js +571 -0
  758. package/src/testing-evidence/result.js.map +1 -0
  759. package/src/testing-evidence/runner-adapter.d.ts +51 -0
  760. package/src/testing-evidence/runner-adapter.js +288 -0
  761. package/src/testing-evidence/runner-adapter.js.map +1 -0
  762. package/src/testing-evidence/sensitive-artifacts.d.ts +13 -0
  763. package/src/testing-evidence/sensitive-artifacts.js +93 -0
  764. package/src/testing-evidence/sensitive-artifacts.js.map +1 -0
  765. package/src/work-markers/work-markers.js +4 -3
  766. package/src/work-markers/work-markers.js.map +1 -1
  767. package/src/workload-roles/account-baseline.d.ts +132 -0
  768. package/src/workload-roles/account-baseline.js +743 -0
  769. package/src/workload-roles/account-baseline.js.map +1 -0
  770. package/src/workload-roles/authority.d.ts +38 -0
  771. package/src/workload-roles/authority.js +156 -0
  772. package/src/workload-roles/authority.js.map +1 -0
  773. package/src/workload-roles/aws-adapter.d.ts +99 -0
  774. package/src/workload-roles/aws-adapter.js +416 -0
  775. package/src/workload-roles/aws-adapter.js.map +1 -0
  776. package/src/workload-roles/aws-internal-handler.d.ts +27 -0
  777. package/src/workload-roles/aws-internal-handler.js +58 -0
  778. package/src/workload-roles/aws-internal-handler.js.map +1 -0
  779. package/src/workload-roles/aws-s3-state.d.ts +52 -0
  780. package/src/workload-roles/aws-s3-state.js +164 -0
  781. package/src/workload-roles/aws-s3-state.js.map +1 -0
  782. package/src/workload-roles/aws-sdk-control-plane.d.ts +12 -0
  783. package/src/workload-roles/aws-sdk-control-plane.js +291 -0
  784. package/src/workload-roles/aws-sdk-control-plane.js.map +1 -0
  785. package/src/workload-roles/boundary.d.ts +33 -0
  786. package/src/workload-roles/boundary.js +130 -0
  787. package/src/workload-roles/boundary.js.map +1 -0
  788. package/src/workload-roles/convergence.d.ts +66 -0
  789. package/src/workload-roles/convergence.js +186 -0
  790. package/src/workload-roles/convergence.js.map +1 -0
  791. package/src/workload-roles/effective-policy.d.ts +51 -0
  792. package/src/workload-roles/effective-policy.js +183 -0
  793. package/src/workload-roles/effective-policy.js.map +1 -0
  794. package/src/workload-roles/handler.d.ts +43 -0
  795. package/src/workload-roles/handler.js +130 -0
  796. package/src/workload-roles/handler.js.map +1 -0
  797. package/src/workload-roles/history.d.ts +47 -0
  798. package/src/workload-roles/history.js +324 -0
  799. package/src/workload-roles/history.js.map +1 -0
  800. package/src/workload-roles/index.d.ts +17 -0
  801. package/src/workload-roles/index.js +21 -0
  802. package/src/workload-roles/index.js.map +1 -0
  803. package/src/workload-roles/injection.d.ts +119 -0
  804. package/src/workload-roles/injection.js +495 -0
  805. package/src/workload-roles/injection.js.map +1 -0
  806. package/src/workload-roles/manifest.d.ts +54 -0
  807. package/src/workload-roles/manifest.js +343 -0
  808. package/src/workload-roles/manifest.js.map +1 -0
  809. package/src/workload-roles/provisioner.d.ts +70 -0
  810. package/src/workload-roles/provisioner.js +231 -0
  811. package/src/workload-roles/provisioner.js.map +1 -0
  812. package/src/workload-roles/registration.d.ts +101 -0
  813. package/src/workload-roles/registration.js +457 -0
  814. package/src/workload-roles/registration.js.map +1 -0
  815. package/src/workload-roles/stage-boundary.d.ts +31 -0
  816. package/src/workload-roles/stage-boundary.js +208 -0
  817. package/src/workload-roles/stage-boundary.js.map +1 -0
  818. package/src/workload-roles/standard-slice.d.ts +54 -0
  819. package/src/workload-roles/standard-slice.js +252 -0
  820. package/src/workload-roles/standard-slice.js.map +1 -0
  821. package/migrations/standard-pre-v1-to-v1.md +0 -11
  822. package/src/foundation/aurora-logical-database.d.ts +0 -76
  823. package/src/foundation/aurora-logical-database.js +0 -419
  824. package/src/foundation/aurora-logical-database.js.map +0 -1
@@ -0,0 +1,1530 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderProductDataFiles = renderProductDataFiles;
4
+ const built_in_plan_shared_js_1 = require("./built-in-plan-shared.js");
5
+ function snapshotColumn(name, type, options = {}) {
6
+ return {
7
+ name,
8
+ type,
9
+ primaryKey: options.primaryKey ?? false,
10
+ notNull: options.notNull ?? true,
11
+ ...(options.default ? { default: options.default } : {}),
12
+ };
13
+ }
14
+ function snapshotTable(name, columns, uniqueConstraints = {}, compositePrimaryKeys = {}, indexes = {}, foreignKeys = {}) {
15
+ return {
16
+ name,
17
+ schema: '',
18
+ columns,
19
+ indexes,
20
+ foreignKeys,
21
+ compositePrimaryKeys,
22
+ uniqueConstraints,
23
+ policies: {},
24
+ checkConstraints: {},
25
+ isRLSEnabled: false,
26
+ };
27
+ }
28
+ function snapshotIndex(name, columns) {
29
+ return {
30
+ columns: columns.map(({ expression, opclass }) => ({
31
+ asc: true,
32
+ expression,
33
+ isExpression: false,
34
+ nulls: 'last',
35
+ opclass,
36
+ })),
37
+ concurrently: false,
38
+ isUnique: false,
39
+ method: 'btree',
40
+ name,
41
+ with: {},
42
+ };
43
+ }
44
+ /** @internal */
45
+ function renderProductDataFiles(name, pascalName) {
46
+ return {
47
+ 'contracts/events.ts': `import type { DataLifecycleChangeEventV1 } from '@empire-builder-kit/runtime/data-lifecycle';
48
+
49
+ export interface ${pascalName}CreatedData {
50
+ id: string;
51
+ occurredBy: string;
52
+ }
53
+
54
+ export const ${pascalName}Created = {
55
+ detailType: '${pascalName}Created',
56
+ schemaVersion: 1,
57
+ source: '${name}',
58
+ } as const;
59
+
60
+ export type ${pascalName}DataLifecycleChangedData =
61
+ DataLifecycleChangeEventV1;
62
+
63
+ export const ${pascalName}DataLifecycleChanged = {
64
+ detailType: 'DataLifecycleChanged',
65
+ schemaVersion: 1,
66
+ source: '${name}',
67
+ } as const;
68
+
69
+ /**
70
+ * Canonical machine-readable projection of the public event surface above.
71
+ * Release compatibility derives this value directly from this TypeScript
72
+ * source; async work scheduling metadata is intentionally not an event schema.
73
+ */
74
+ export const EventContractSchema = {
75
+ events: [
76
+ {
77
+ data: {
78
+ id: 'string',
79
+ occurredBy: 'string',
80
+ },
81
+ detailType: '${pascalName}Created',
82
+ schemaVersion: 1,
83
+ source: '${name}',
84
+ },
85
+ {
86
+ data: {
87
+ contract: 'DataLifecycleChangeEventV1',
88
+ },
89
+ detailType: 'DataLifecycleChanged',
90
+ schemaVersion: 1,
91
+ source: '${name}',
92
+ },
93
+ ],
94
+ kind: 'ebk-event-contract-schema',
95
+ schemaVersion: 1,
96
+ slice: '${name}',
97
+ } as const;
98
+ `,
99
+ 'database/schema.ts': `import { boolean, index, integer, jsonb, pgTable, primaryKey, text, timestamp, uuid } from 'drizzle-orm/pg-core';
100
+
101
+ export const records = pgTable(
102
+ 'records',
103
+ {
104
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
105
+ id: uuid('id').defaultRandom().primaryKey(),
106
+ lastActivityAt: timestamp('last_activity_at', { withTimezone: true }).defaultNow().notNull(),
107
+ name: text('name').notNull(),
108
+ ownerId: text('owner_id').notNull(),
109
+ runScope: text('run_scope').notNull(),
110
+ testExpiresAt: timestamp('test_expires_at', { withTimezone: true }),
111
+ },
112
+ (table) => [
113
+ index('records_performance_expiry_idx').on(
114
+ table.ownerId,
115
+ table.name,
116
+ table.testExpiresAt,
117
+ ),
118
+ index('records_performance_run_scope_idx').on(
119
+ table.ownerId,
120
+ table.name,
121
+ table.runScope,
122
+ ),
123
+ ],
124
+ );
125
+
126
+ export const authorizationAudit = pgTable('authorization_audit', {
127
+ action: text('action').notNull(),
128
+ approvalReference: text('approval_reference'),
129
+ authorityMode: text('authority_mode').notNull(),
130
+ correlationId: text('correlation_id').notNull(),
131
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
132
+ decision: text('decision').notNull(),
133
+ id: uuid('id').defaultRandom().primaryKey(),
134
+ policyVersion: text('policy_version').notNull(),
135
+ principalKind: text('principal_kind').notNull(),
136
+ pseudonymousSubjectId: text('pseudonymous_subject_id').notNull(),
137
+ reasonCategory: text('reason_category').notNull(),
138
+ delegationReference: text('delegation_reference'),
139
+ resourceReference: text('resource_reference'),
140
+ resourceType: text('resource_type').notNull(),
141
+ slice: text('slice').notNull(),
142
+ stage: text('stage').notNull(),
143
+ subjectType: text('subject_type').notNull(),
144
+ });
145
+
146
+ export const delegationGrants = pgTable('delegation_grants', {
147
+ capabilityDigest: text('capability_digest').notNull(),
148
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
149
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
150
+ grantJson: jsonb('grant_json').notNull(),
151
+ id: uuid('id').primaryKey(),
152
+ issuedAt: timestamp('issued_at', { withTimezone: true }).notNull(),
153
+ policyVersion: text('policy_version').notNull(),
154
+ revision: integer('revision').notNull(),
155
+ status: text('status').notNull(),
156
+ });
157
+
158
+ export const approvalRequests = pgTable('approval_requests', {
159
+ authorReference: text('author_reference').notNull(),
160
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
161
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
162
+ id: uuid('id').primaryKey(),
163
+ policyVersion: text('policy_version').notNull(),
164
+ requestJson: jsonb('request_json').notNull(),
165
+ requestDigest: text('request_digest').notNull(),
166
+ revision: integer('revision').notNull(),
167
+ status: text('status').notNull(),
168
+ });
169
+
170
+ export const dataLifecycleAudit = pgTable(
171
+ 'data_lifecycle_audit',
172
+ {
173
+ action: text('action').notNull(),
174
+ actorRef: text('actor_ref').notNull(),
175
+ approvalReference: text('approval_reference'),
176
+ auditJson: jsonb('audit_json').notNull(),
177
+ authorityCode: text('authority_code').notNull(),
178
+ correlationRef: text('correlation_ref').notNull(),
179
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
180
+ id: uuid('id').defaultRandom().primaryKey(),
181
+ occurredAt: timestamp('occurred_at', { withTimezone: true }).notNull(),
182
+ outcome: text('outcome').notNull(),
183
+ policyVersion: text('policy_version').notNull(),
184
+ principalKind: text('principal_kind').notNull(),
185
+ purposeCode: text('purpose_code').notNull(),
186
+ resourceReference: text('resource_reference'),
187
+ slice: text('slice').notNull(),
188
+ stage: text('stage').notNull(),
189
+ subjectType: text('subject_type').notNull(),
190
+ targetCategoryId: text('target_category_id').notNull(),
191
+ },
192
+ (table) => [
193
+ index('data_lifecycle_audit_expires_at_idx').on(table.expiresAt),
194
+ ],
195
+ );
196
+
197
+ export const dataLifecycleExportArtifacts = pgTable(
198
+ 'data_lifecycle_export_artifacts',
199
+ {
200
+ approvalRequestId: uuid('approval_request_id')
201
+ .primaryKey()
202
+ .references(() => approvalRequests.id, { onDelete: 'cascade' }),
203
+ artifactRef: text('artifact_ref'),
204
+ cleanupDeadlineAt: timestamp('cleanup_deadline_at', {
205
+ withTimezone: true,
206
+ }),
207
+ cleanupState: text('cleanup_state').notNull(),
208
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
209
+ currentVersionId: text('current_version_id'),
210
+ expiresAt: timestamp('expires_at', { withTimezone: true }),
211
+ lastErrorCode: text('last_error_code'),
212
+ objectKey: text('object_key').notNull(),
213
+ recordRef: text('record_ref').notNull(),
214
+ subjectRef: text('subject_ref').notNull(),
215
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
216
+ uploadStartedAt: timestamp('upload_started_at', { withTimezone: true }),
217
+ },
218
+ (table) => [
219
+ index('data_lifecycle_export_artifacts_subject_created_idx').on(
220
+ table.subjectRef,
221
+ table.createdAt,
222
+ ),
223
+ index('data_lifecycle_export_artifacts_cleanup_expiry_idx').on(
224
+ table.cleanupState,
225
+ table.expiresAt,
226
+ ),
227
+ index('data_lifecycle_export_artifacts_cleanup_deadline_idx').on(
228
+ table.cleanupState,
229
+ table.cleanupDeadlineAt,
230
+ ),
231
+ ],
232
+ );
233
+
234
+ export const dataLifecycleExportVersions = pgTable(
235
+ 'data_lifecycle_export_versions',
236
+ {
237
+ approvalRequestId: uuid('approval_request_id')
238
+ .notNull()
239
+ .references(() => approvalRequests.id, { onDelete: 'cascade' }),
240
+ deletedAt: timestamp('deleted_at', { withTimezone: true }),
241
+ isDeleteMarker: boolean('is_delete_marker').notNull(),
242
+ objectKey: text('object_key').notNull(),
243
+ status: text('status').notNull(),
244
+ versionId: text('version_id').notNull(),
245
+ },
246
+ (table) => [
247
+ primaryKey({
248
+ columns: [table.approvalRequestId, table.versionId],
249
+ }),
250
+ index('data_lifecycle_export_versions_status_idx').on(table.status),
251
+ ],
252
+ );
253
+
254
+ export const cleanupDeadlineReportCapacity = pgTable(
255
+ 'cleanup_deadline_report_capacity',
256
+ {
257
+ feature: text('feature').primaryKey(),
258
+ maximumPending: integer('maximum_pending').notNull(),
259
+ },
260
+ );
261
+
262
+ export const cleanupDeadlineReports = pgTable(
263
+ 'cleanup_deadline_reports',
264
+ {
265
+ deadlineAt: timestamp('deadline_at', { withTimezone: true }).notNull(),
266
+ feature: text('feature').notNull(),
267
+ observedAt: timestamp('observed_at', { withTimezone: true })
268
+ .defaultNow()
269
+ .notNull(),
270
+ resourceRef: text('resource_ref').notNull(),
271
+ },
272
+ (table) => [
273
+ primaryKey({ columns: [table.feature, table.resourceRef] }),
274
+ index('cleanup_deadline_reports_feature_observed_idx').on(
275
+ table.feature,
276
+ table.observedAt,
277
+ ),
278
+ ],
279
+ );
280
+
281
+ export const dataLifecycleLedger = pgTable('data_lifecycle_ledger', {
282
+ action: text('action').notNull(),
283
+ categoryId: text('category_id').notNull(),
284
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
285
+ effectiveAt: timestamp('effective_at', { withTimezone: true }).notNull(),
286
+ entryId: text('entry_id').primaryKey(),
287
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
288
+ idempotencyKey: text('idempotency_key').notNull().unique(),
289
+ policyVersion: text('policy_version').notNull(),
290
+ pseudonymousKey: text('pseudonymous_key').notNull(),
291
+ });
292
+
293
+ export const dataLifecycleRequests = pgTable('data_lifecycle_requests', {
294
+ approvalRequestId: uuid('approval_request_id').notNull().unique(),
295
+ id: uuid('id').primaryKey(),
296
+ requestJson: jsonb('request_json').notNull(),
297
+ revision: integer('revision').notNull(),
298
+ status: text('status').notNull(),
299
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
300
+ });
301
+
302
+ export const dataLifecycleHolds = pgTable('data_lifecycle_holds', {
303
+ categoryId: text('category_id').notNull(),
304
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
305
+ holdId: text('hold_id').primaryKey(),
306
+ holdJson: jsonb('hold_json').notNull(),
307
+ reviewAt: timestamp('review_at', { withTimezone: true }).notNull(),
308
+ scopeRef: text('scope_ref').notNull(),
309
+ status: text('status').notNull(),
310
+ });
311
+
312
+ export const dataLifecycleOutbox = pgTable('data_lifecycle_outbox', {
313
+ attempts: integer('attempts').default(0).notNull(),
314
+ createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
315
+ eventJson: jsonb('event_json').notNull(),
316
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
317
+ idempotencyKey: text('idempotency_key').primaryKey(),
318
+ lastErrorCode: text('last_error_code'),
319
+ publishedAt: timestamp('published_at', { withTimezone: true }),
320
+ });
321
+
322
+ export const performanceLoadRuns = pgTable(
323
+ 'performance_load_runs',
324
+ {
325
+ adapterId: text('adapter_id').notNull(),
326
+ cleanupStartedAt: timestamp('cleanup_started_at', {
327
+ withTimezone: true,
328
+ }),
329
+ createdAt: timestamp('created_at', { withTimezone: true }).notNull(),
330
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
331
+ maximumRequests: integer('maximum_requests').notNull(),
332
+ planDigest: text('plan_digest').primaryKey(),
333
+ releaseMaterialDigest: text('release_material_digest').notNull(),
334
+ runId: text('run_id').notNull(),
335
+ scenarioId: text('scenario_id').notNull(),
336
+ sourceCommit: text('source_commit').notNull(),
337
+ stage: text('stage').notNull(),
338
+ },
339
+ (table) => [
340
+ index('performance_load_runs_expires_at_idx').on(table.expiresAt),
341
+ ],
342
+ );
343
+
344
+ export const performanceLoadRequests = pgTable(
345
+ 'performance_load_requests',
346
+ {
347
+ claimedAt: timestamp('claimed_at', { withTimezone: true })
348
+ .defaultNow()
349
+ .notNull(),
350
+ effectId: text('effect_id'),
351
+ planDigest: text('plan_digest').notNull(),
352
+ requestOrdinal: integer('request_ordinal').notNull(),
353
+ },
354
+ (table) => [
355
+ primaryKey({ columns: [table.planDigest, table.requestOrdinal] }),
356
+ ],
357
+ );
358
+
359
+ export const performanceLoadAsyncEffects = pgTable(
360
+ 'performance_load_async_effects',
361
+ {
362
+ createdAt: timestamp('created_at', { withTimezone: true })
363
+ .defaultNow()
364
+ .notNull(),
365
+ effectId: text('effect_id').primaryKey(),
366
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
367
+ planDigest: text('plan_digest').notNull(),
368
+ processedAt: timestamp('processed_at', { withTimezone: true }),
369
+ runId: text('run_id').notNull(),
370
+ },
371
+ (table) => [
372
+ index('performance_load_async_effects_expires_at_idx').on(
373
+ table.expiresAt,
374
+ ),
375
+ index('performance_load_async_effects_pending_idx').on(
376
+ table.processedAt,
377
+ table.expiresAt,
378
+ ),
379
+ index('performance_load_async_effects_run_idx').on(
380
+ table.planDigest,
381
+ table.runId,
382
+ ),
383
+ ],
384
+ );
385
+
386
+ export const ebkInbox = pgTable(
387
+ 'ebk_inbox',
388
+ {
389
+ attempts: integer('attempts').default(0).notNull(),
390
+ completedAt: timestamp('completed_at', { withTimezone: true }),
391
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
392
+ firstSeenAt: timestamp('first_seen_at', { withTimezone: true }).defaultNow().notNull(),
393
+ handlerId: text('handler_id').notNull(),
394
+ handlerVersion: text('handler_version').notNull(),
395
+ lastAttemptAt: timestamp('last_attempt_at', { withTimezone: true }).notNull(),
396
+ messageId: text('message_id').notNull(),
397
+ payloadDigest: text('payload_digest').notNull(),
398
+ resultReference: text('result_reference'),
399
+ status: text('status').notNull(),
400
+ },
401
+ (table) => [
402
+ primaryKey({ columns: [table.handlerId, table.messageId] }),
403
+ index('ebk_inbox_expires_at_idx').on(table.expiresAt),
404
+ ],
405
+ );
406
+
407
+ export const dataLifecycleRetentionCandidates = pgTable(
408
+ 'data_lifecycle_retention_candidates',
409
+ {
410
+ candidateOrder: text('candidate_order').notNull(),
411
+ dueAt: timestamp('due_at', { withTimezone: true }).notNull(),
412
+ recordId: uuid('record_id').notNull(),
413
+ recordRef: text('record_ref').notNull(),
414
+ runId: uuid('run_id').notNull(),
415
+ },
416
+ (table) => [
417
+ primaryKey({ columns: [table.runId, table.candidateOrder] }),
418
+ ],
419
+ );
420
+
421
+ export const dataLifecycleRetentionRuns = pgTable('data_lifecycle_retention_runs', {
422
+ approvalRequestId: uuid('approval_request_id').unique(),
423
+ asOf: timestamp('as_of', { withTimezone: true }).notNull(),
424
+ checkpointJson: jsonb('checkpoint_json').notNull(),
425
+ completedAt: timestamp('completed_at', { withTimezone: true }),
426
+ countsJson: jsonb('counts_json').notNull(),
427
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
428
+ id: uuid('id').primaryKey(),
429
+ planJson: jsonb('plan_json').notNull(),
430
+ policyVersion: text('policy_version').notNull(),
431
+ revision: integer('revision').notNull(),
432
+ status: text('status').notNull(),
433
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
434
+ });
435
+
436
+ export const dataLifecycleReceipts = pgTable('data_lifecycle_receipts', {
437
+ action: text('action').notNull(),
438
+ occurredAt: timestamp('occurred_at', { withTimezone: true }).notNull(),
439
+ policyVersion: text('policy_version').notNull(),
440
+ pseudonymousKey: text('pseudonymous_key').notNull(),
441
+ receivedAt: timestamp('received_at', { withTimezone: true }).defaultNow().notNull(),
442
+ requestRef: text('request_ref').notNull(),
443
+ sourceSlice: text('source_slice').notNull(),
444
+ }, (table) => [
445
+ primaryKey({
446
+ columns: [
447
+ table.sourceSlice,
448
+ table.pseudonymousKey,
449
+ table.action,
450
+ table.requestRef,
451
+ ],
452
+ }),
453
+ ]);
454
+
455
+ export const dataLifecycleDownstreamCopies = pgTable(
456
+ 'data_lifecycle_downstream_copies',
457
+ {
458
+ action: text('action').notNull(),
459
+ copyId: text('copy_id').notNull(),
460
+ expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
461
+ holdRefs: jsonb('hold_refs').notNull(),
462
+ pseudonymousKey: text('pseudonymous_key').notNull(),
463
+ purpose: text('purpose').notNull(),
464
+ recipient: text('recipient').notNull(),
465
+ sourceSlice: text('source_slice').notNull(),
466
+ status: text('status').notNull(),
467
+ updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
468
+ },
469
+ (table) => [
470
+ primaryKey({
471
+ columns: [table.sourceSlice, table.pseudonymousKey, table.copyId],
472
+ }),
473
+ ],
474
+ );
475
+ `,
476
+ 'secrets/declarations.ts': `import { databaseCredentialSecretSchema } from '@empire-builder-kit/runtime/database';
477
+ import {
478
+ defineSecrets,
479
+ secret,
480
+ type DefinedSecrets,
481
+ } from '@empire-builder-kit/runtime/secret-contract';
482
+
483
+ const performanceLoadHmacKeys = secret.json<{
484
+ current: { id: string; secret: string };
485
+ previous?: { id: string; secret: string };
486
+ }>({
487
+ validate(value): value is {
488
+ current: { id: string; secret: string };
489
+ previous?: { id: string; secret: string };
490
+ } {
491
+ if (!value || typeof value !== 'object' || Array.isArray(value)) return false;
492
+ const keys = value as Record<string, unknown>;
493
+ if (
494
+ Object.keys(keys).some(
495
+ (key) => key !== 'current' && key !== 'previous',
496
+ )
497
+ ) return false;
498
+ const validKey = (candidate: unknown) => {
499
+ if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate)) {
500
+ return false;
501
+ }
502
+ const record = candidate as Record<string, unknown>;
503
+ const secret =
504
+ typeof record.secret === 'string' ? record.secret : '';
505
+ const decoded = /^[A-Za-z0-9_-]{43}$/.test(secret)
506
+ ? Buffer.from(secret, 'base64url')
507
+ : Buffer.alloc(0);
508
+ return (
509
+ Object.keys(record).length === 2 &&
510
+ typeof record.id === 'string' &&
511
+ /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/.test(record.id) &&
512
+ decoded.length === 32 &&
513
+ decoded.toString('base64url') === secret
514
+ );
515
+ };
516
+ return (
517
+ validKey(keys.current) &&
518
+ (keys.previous === undefined || validKey(keys.previous)) &&
519
+ (
520
+ keys.previous === undefined ||
521
+ (
522
+ (keys.previous as { id: string; secret: string }).id !==
523
+ (keys.current as { id: string; secret: string }).id &&
524
+ (keys.previous as { id: string; secret: string }).secret !==
525
+ (keys.current as { id: string; secret: string }).secret
526
+ )
527
+ )
528
+ );
529
+ },
530
+ });
531
+
532
+ const SecretDefinitions = {
533
+ ${pascalName}PerformanceLoadHmacKeys: {
534
+ cache: { freshTtlMs: 1_000, staleTtlMs: 0 },
535
+ owner: '${name}',
536
+ requiredStages: ['staging', 'production'],
537
+ retention: { mode: 'retain' },
538
+ rotation: {
539
+ mode: 'manual',
540
+ runbook: 'docs/runbooks/performance-capacity-cost.md',
541
+ },
542
+ source: 'operator',
543
+ value: performanceLoadHmacKeys,
544
+ },
545
+ ${pascalName}PrimaryDatabaseCredential: {
546
+ owner: '${name}',
547
+ requiredStages: ['development', 'staging', 'production'],
548
+ retention: { mode: 'retain' },
549
+ rotation: {
550
+ mode: 'manual',
551
+ runbook: 'docs/runbooks/database-credential-rotation.md',
552
+ },
553
+ source: 'database-bootstrap',
554
+ value: databaseCredentialSecretSchema,
555
+ },
556
+ } as const;
557
+
558
+ export const Secrets: DefinedSecrets<typeof SecretDefinitions> =
559
+ defineSecrets(SecretDefinitions);
560
+ `,
561
+ 'secrets/metadata.json': (0, built_in_plan_shared_js_1.json)({
562
+ declarations: [
563
+ {
564
+ logicalName: `${pascalName}PerformanceLoadHmacKeys`,
565
+ owner: name,
566
+ requiredStages: ['staging', 'production'],
567
+ rotation: { mode: 'manual' },
568
+ source: 'operator',
569
+ valueKind: 'json',
570
+ },
571
+ {
572
+ logicalName: `${pascalName}PrimaryDatabaseCredential`,
573
+ owner: name,
574
+ requiredStages: ['development', 'staging', 'production'],
575
+ rotation: { mode: 'manual' },
576
+ source: 'database-bootstrap',
577
+ valueKind: 'json',
578
+ },
579
+ ],
580
+ schemaVersion: 1,
581
+ }),
582
+ 'docs/runbooks/database-credential-rotation.md': `# Database credential rotation
583
+
584
+ The \`${pascalName}PrimaryDatabaseCredential\` value is generated and rotated
585
+ inside AWS by the exact database bootstrap workflow. Never read, copy, pass, or
586
+ write this value through an EBK deploy, CI input, SST output, source file, or
587
+ operator-secret command.
588
+
589
+ To rotate after an authentication failure, run the reviewed database migration
590
+ workflow for the exact Slice and stage. The server-only resolver invalidates its
591
+ cached value and retries one authentication failure against \`AWSCURRENT\`.
592
+ Confirm the bootstrap and migration lifecycle records share their execution
593
+ correlation, the runtime secret version is current, and the prior version can be
594
+ restored before accepting the rotation.
595
+ `,
596
+ 'docs/runbooks/operator-secret-management.md': `# Operator secret management
597
+
598
+ Operator-supplied deployed secrets use AWS Secrets Manager containers named
599
+ \`ebk/<stage>/${name}/<logical-name>\`. The declaration in
600
+ \`secrets/declarations.ts\` owns the typed runtime contract. Its value-free
601
+ control-plane projection in \`secrets/metadata.json\` must carry the same
602
+ logical name, owner, required stages, rotation mode, source, and value kind.
603
+ Neither file may contain a value, placeholder, fallback, value hash, or
604
+ provider credential.
605
+
606
+ ## Personal development value
607
+
608
+ Only a human at a local interactive terminal may set or remove an
609
+ operator-declared personal value:
610
+
611
+ \`\`\`bash
612
+ ebk secret set ${name} <logical-name>
613
+ ebk secret remove ${name} <logical-name>
614
+ \`\`\`
615
+
616
+ The CLI derives the personal stage, reads the profile and Region saved by
617
+ \`ebk dev configure\`, proves the current AWS account is the development
618
+ Foundation account, and invokes the workspace-pinned SST CLI. Set accepts the
619
+ value only through a hidden TTY prompt; remove requires a hidden confirmation.
620
+ Neither command accepts a stage, profile, Region, value argument, environment
621
+ value, file, fallback, or placeholder. Do not ask or permit an agent or CI job
622
+ to invoke either command.
623
+
624
+ ## Development metadata
625
+
626
+ Report first, using the exact development account profile and Region:
627
+
628
+ \`\`\`bash
629
+ pnpm nx run ${name}:secret-metadata --stage=development --profile=<profile> --region=<region>
630
+ \`\`\`
631
+
632
+ Review the complete report before explicitly adding \`--apply\`. Apply may
633
+ create an empty container and repair owned EBK tags only. It cannot read or
634
+ write a secret version, change a rotation label, or delete a secret.
635
+
636
+ ## Protected metadata
637
+
638
+ Run the **Secret metadata** GitHub workflow from \`develop\` for staging or
639
+ \`main\` for production. Select this exact Slice and choose \`report\` first.
640
+ After review, dispatch \`apply\` from the same protected branch and
641
+ environment. The workflow assumes the protected deploy role through OIDC,
642
+ verifies the expected AWS account, and invokes the same value-blind Nx
643
+ executor. Never add an application value to GitHub secrets or workflow input.
644
+
645
+ The protected deploy role needs metadata-only authority for the Slice prefix:
646
+ \`ListSecrets\`, \`DescribeSecret\`, \`CreateSecret\`, and \`TagResource\`.
647
+ It must be denied \`BatchGetSecretValue\`, \`GetSecretValue\`,
648
+ \`PutSecretValue\`, \`UpdateSecretVersionStage\`, \`DeleteSecret\`, and
649
+ application deployment outside its separately reviewed deploy policy.
650
+ Account-level role materialization remains an adopter responsibility.
651
+
652
+ ## Value ceremony
653
+
654
+ After an empty container exists, a human secret operator enters or rotates the
655
+ value through the approved hidden-input or provider-owned ceremony. Do not
656
+ delegate this ceremony to an agent and do not pass a value through argv,
657
+ source, a file, a ticket, a work marker, GitHub, logs, or evidence. Routine
658
+ operator authority is write-only for exact approved paths and has no
659
+ application or Foundation deployment authority. Value reads require a separate
660
+ audited break-glass path.
661
+
662
+ Run the report again and then deploy. Deployment performs only a read-only
663
+ metadata preflight and refuses before SST mutation when a required container,
664
+ \`AWSCURRENT\`, ownership tag, or rotation policy is invalid. Remove, unlock,
665
+ retirement, and recovery do not depend on this preflight.
666
+ `,
667
+ 'database/migrations/0000_initial.sql': `CREATE TABLE IF NOT EXISTS "records" (
668
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(),
669
+ "name" text NOT NULL,
670
+ "owner_id" text NOT NULL,
671
+ "run_scope" text NOT NULL,
672
+ "created_at" timestamptz NOT NULL DEFAULT now(),
673
+ "last_activity_at" timestamptz NOT NULL DEFAULT now(),
674
+ "test_expires_at" timestamptz
675
+ );
676
+ CREATE INDEX IF NOT EXISTS "records_performance_expiry_idx"
677
+ ON "records" ("owner_id", "name", "test_expires_at");
678
+ CREATE INDEX IF NOT EXISTS "records_performance_run_scope_idx"
679
+ ON "records" ("owner_id", "name", "run_scope");
680
+
681
+ CREATE TABLE IF NOT EXISTS "authorization_audit" (
682
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(),
683
+ "action" text NOT NULL,
684
+ "approval_reference" text,
685
+ "authority_mode" text NOT NULL,
686
+ "correlation_id" text NOT NULL,
687
+ "decision" text NOT NULL,
688
+ "policy_version" text NOT NULL,
689
+ "principal_kind" text NOT NULL,
690
+ "pseudonymous_subject_id" text NOT NULL,
691
+ "reason_category" text NOT NULL,
692
+ "delegation_reference" text,
693
+ "resource_reference" text,
694
+ "resource_type" text NOT NULL,
695
+ "slice" text NOT NULL,
696
+ "stage" text NOT NULL,
697
+ "subject_type" text NOT NULL,
698
+ "created_at" timestamptz NOT NULL DEFAULT now()
699
+ );
700
+
701
+ CREATE TABLE IF NOT EXISTS "delegation_grants" (
702
+ "id" uuid PRIMARY KEY,
703
+ "capability_digest" text NOT NULL,
704
+ "created_at" timestamptz NOT NULL DEFAULT now(),
705
+ "expires_at" timestamptz NOT NULL,
706
+ "grant_json" jsonb NOT NULL,
707
+ "issued_at" timestamptz NOT NULL,
708
+ "policy_version" text NOT NULL,
709
+ "revision" integer NOT NULL,
710
+ "status" text NOT NULL
711
+ );
712
+
713
+ CREATE TABLE IF NOT EXISTS "approval_requests" (
714
+ "id" uuid PRIMARY KEY,
715
+ "author_reference" text NOT NULL,
716
+ "created_at" timestamptz NOT NULL DEFAULT now(),
717
+ "expires_at" timestamptz NOT NULL,
718
+ "policy_version" text NOT NULL,
719
+ "request_json" jsonb NOT NULL,
720
+ "request_digest" text NOT NULL,
721
+ "revision" integer NOT NULL,
722
+ "status" text NOT NULL
723
+ );
724
+
725
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_audit" (
726
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(),
727
+ "action" text NOT NULL,
728
+ "actor_ref" text NOT NULL,
729
+ "approval_reference" text,
730
+ "audit_json" jsonb NOT NULL,
731
+ "authority_code" text NOT NULL,
732
+ "correlation_ref" text NOT NULL,
733
+ "expires_at" timestamptz NOT NULL,
734
+ "outcome" text NOT NULL,
735
+ "policy_version" text NOT NULL,
736
+ "principal_kind" text NOT NULL,
737
+ "purpose_code" text NOT NULL,
738
+ "resource_reference" text,
739
+ "slice" text NOT NULL,
740
+ "stage" text NOT NULL,
741
+ "subject_type" text NOT NULL,
742
+ "target_category_id" text NOT NULL,
743
+ "occurred_at" timestamptz NOT NULL
744
+ );
745
+
746
+ CREATE INDEX IF NOT EXISTS "data_lifecycle_audit_expires_at_idx"
747
+ ON "data_lifecycle_audit" ("expires_at");
748
+
749
+ CREATE OR REPLACE FUNCTION "ebk_prune_data_lifecycle_audit"(
750
+ "cutoff" timestamptz,
751
+ "batch_limit" integer
752
+ ) RETURNS integer
753
+ LANGUAGE plpgsql
754
+ SECURITY DEFINER
755
+ SET search_path = pg_catalog, public
756
+ AS $$
757
+ DECLARE
758
+ deleted_count integer;
759
+ effective_cutoff timestamptz;
760
+ BEGIN
761
+ IF batch_limit < 1 OR batch_limit > 1000 THEN
762
+ RAISE EXCEPTION 'audit prune batch is outside the reviewed bound';
763
+ END IF;
764
+ effective_cutoff := LEAST(cutoff, clock_timestamp());
765
+ WITH expired AS (
766
+ SELECT ctid FROM public.data_lifecycle_audit
767
+ WHERE expires_at <= effective_cutoff
768
+ ORDER BY expires_at, id
769
+ LIMIT batch_limit
770
+ FOR UPDATE SKIP LOCKED
771
+ )
772
+ DELETE FROM public.data_lifecycle_audit
773
+ WHERE ctid IN (SELECT ctid FROM expired);
774
+ GET DIAGNOSTICS deleted_count = ROW_COUNT;
775
+ RETURN deleted_count;
776
+ END;
777
+ $$;
778
+
779
+ CREATE OR REPLACE FUNCTION "ebk_prune_authorization_audit"(
780
+ "cutoff" timestamptz,
781
+ "batch_limit" integer
782
+ ) RETURNS integer
783
+ LANGUAGE plpgsql
784
+ SECURITY DEFINER
785
+ SET search_path = pg_catalog, public
786
+ AS $$
787
+ DECLARE
788
+ deleted_count integer;
789
+ effective_cutoff timestamptz;
790
+ BEGIN
791
+ IF batch_limit < 1 OR batch_limit > 1000 THEN
792
+ RAISE EXCEPTION 'audit prune batch is outside the reviewed bound';
793
+ END IF;
794
+ effective_cutoff := LEAST(cutoff, clock_timestamp());
795
+ WITH expired AS (
796
+ SELECT ctid FROM public.authorization_audit
797
+ WHERE created_at <= effective_cutoff - INTERVAL '400 days'
798
+ ORDER BY created_at, id
799
+ LIMIT batch_limit
800
+ FOR UPDATE SKIP LOCKED
801
+ )
802
+ DELETE FROM public.authorization_audit
803
+ WHERE ctid IN (SELECT ctid FROM expired);
804
+ GET DIAGNOSTICS deleted_count = ROW_COUNT;
805
+ RETURN deleted_count;
806
+ END;
807
+ $$;
808
+
809
+ REVOKE ALL ON FUNCTION "ebk_prune_data_lifecycle_audit"(
810
+ timestamptz, integer
811
+ ) FROM PUBLIC;
812
+ REVOKE ALL ON FUNCTION "ebk_prune_authorization_audit"(
813
+ timestamptz, integer
814
+ ) FROM PUBLIC;
815
+
816
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_export_artifacts" (
817
+ "approval_request_id" uuid PRIMARY KEY
818
+ REFERENCES "approval_requests" ("id") ON DELETE CASCADE,
819
+ "artifact_ref" text,
820
+ "cleanup_deadline_at" timestamptz,
821
+ "cleanup_state" text NOT NULL,
822
+ "current_version_id" text,
823
+ "expires_at" timestamptz,
824
+ "last_error_code" text,
825
+ "object_key" text NOT NULL,
826
+ "record_ref" text NOT NULL,
827
+ "subject_ref" text NOT NULL,
828
+ "upload_started_at" timestamptz,
829
+ "created_at" timestamptz NOT NULL DEFAULT now(),
830
+ "updated_at" timestamptz NOT NULL DEFAULT now()
831
+ );
832
+
833
+ CREATE INDEX IF NOT EXISTS "data_lifecycle_export_artifacts_subject_created_idx"
834
+ ON "data_lifecycle_export_artifacts" ("subject_ref", "created_at");
835
+ CREATE INDEX IF NOT EXISTS "data_lifecycle_export_artifacts_cleanup_expiry_idx"
836
+ ON "data_lifecycle_export_artifacts" ("cleanup_state", "expires_at");
837
+ CREATE INDEX IF NOT EXISTS "data_lifecycle_export_artifacts_cleanup_deadline_idx"
838
+ ON "data_lifecycle_export_artifacts" ("cleanup_state", "cleanup_deadline_at");
839
+
840
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_export_versions" (
841
+ "approval_request_id" uuid NOT NULL
842
+ REFERENCES "approval_requests" ("id") ON DELETE CASCADE,
843
+ "version_id" text NOT NULL,
844
+ "object_key" text NOT NULL,
845
+ "is_delete_marker" boolean NOT NULL,
846
+ "status" text NOT NULL,
847
+ "deleted_at" timestamptz,
848
+ PRIMARY KEY ("approval_request_id", "version_id")
849
+ );
850
+
851
+ CREATE TABLE IF NOT EXISTS "cleanup_deadline_reports" (
852
+ "feature" text NOT NULL,
853
+ "resource_ref" text NOT NULL,
854
+ "deadline_at" timestamptz NOT NULL,
855
+ "observed_at" timestamptz NOT NULL DEFAULT now(),
856
+ PRIMARY KEY ("feature", "resource_ref")
857
+ );
858
+ CREATE INDEX IF NOT EXISTS "cleanup_deadline_reports_feature_observed_idx"
859
+ ON "cleanup_deadline_reports" ("feature", "observed_at");
860
+
861
+ CREATE TABLE IF NOT EXISTS "cleanup_deadline_report_capacity" (
862
+ "feature" text PRIMARY KEY,
863
+ "maximum_pending" integer NOT NULL
864
+ );
865
+ INSERT INTO "cleanup_deadline_report_capacity" ("feature", "maximum_pending")
866
+ VALUES ('confidential-export', 1000)
867
+ ON CONFLICT ("feature") DO NOTHING;
868
+
869
+ CREATE INDEX IF NOT EXISTS "data_lifecycle_export_versions_status_idx"
870
+ ON "data_lifecycle_export_versions" ("status");
871
+
872
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_ledger" (
873
+ "entry_id" text PRIMARY KEY,
874
+ "action" text NOT NULL,
875
+ "category_id" text NOT NULL,
876
+ "effective_at" timestamptz NOT NULL,
877
+ "expires_at" timestamptz NOT NULL,
878
+ "idempotency_key" text NOT NULL UNIQUE,
879
+ "policy_version" text NOT NULL,
880
+ "pseudonymous_key" text NOT NULL,
881
+ "created_at" timestamptz NOT NULL DEFAULT now()
882
+ );
883
+
884
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_requests" (
885
+ "id" uuid PRIMARY KEY,
886
+ "approval_request_id" uuid NOT NULL UNIQUE,
887
+ "request_json" jsonb NOT NULL,
888
+ "revision" integer NOT NULL,
889
+ "status" text NOT NULL,
890
+ "updated_at" timestamptz NOT NULL DEFAULT now()
891
+ );
892
+
893
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_holds" (
894
+ "hold_id" text PRIMARY KEY,
895
+ "scope_ref" text NOT NULL,
896
+ "category_id" text NOT NULL,
897
+ "hold_json" jsonb NOT NULL,
898
+ "status" text NOT NULL,
899
+ "expires_at" timestamptz NOT NULL,
900
+ "review_at" timestamptz NOT NULL
901
+ );
902
+
903
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_outbox" (
904
+ "idempotency_key" text PRIMARY KEY,
905
+ "event_json" jsonb NOT NULL,
906
+ "published_at" timestamptz,
907
+ "attempts" integer NOT NULL DEFAULT 0,
908
+ "last_error_code" text,
909
+ "expires_at" timestamptz NOT NULL,
910
+ "created_at" timestamptz NOT NULL DEFAULT now()
911
+ );
912
+
913
+ CREATE TABLE IF NOT EXISTS "performance_load_runs" (
914
+ "plan_digest" text PRIMARY KEY,
915
+ "run_id" text NOT NULL,
916
+ "adapter_id" text NOT NULL,
917
+ "cleanup_started_at" timestamptz,
918
+ "scenario_id" text NOT NULL,
919
+ "stage" text NOT NULL,
920
+ "source_commit" text NOT NULL,
921
+ "release_material_digest" text NOT NULL,
922
+ "maximum_requests" integer NOT NULL,
923
+ "created_at" timestamptz NOT NULL,
924
+ "expires_at" timestamptz NOT NULL
925
+ );
926
+ CREATE INDEX IF NOT EXISTS "performance_load_runs_expires_at_idx"
927
+ ON "performance_load_runs" ("expires_at");
928
+
929
+ CREATE TABLE IF NOT EXISTS "performance_load_requests" (
930
+ "plan_digest" text NOT NULL,
931
+ "request_ordinal" integer NOT NULL,
932
+ "effect_id" text,
933
+ "claimed_at" timestamptz NOT NULL DEFAULT now(),
934
+ PRIMARY KEY ("plan_digest", "request_ordinal")
935
+ );
936
+
937
+ CREATE TABLE IF NOT EXISTS "performance_load_async_effects" (
938
+ "effect_id" text PRIMARY KEY,
939
+ "plan_digest" text NOT NULL,
940
+ "run_id" text NOT NULL,
941
+ "processed_at" timestamptz,
942
+ "expires_at" timestamptz NOT NULL,
943
+ "created_at" timestamptz NOT NULL DEFAULT now()
944
+ );
945
+ CREATE INDEX IF NOT EXISTS "performance_load_async_effects_expires_at_idx"
946
+ ON "performance_load_async_effects" USING btree ("expires_at");
947
+ CREATE INDEX "performance_load_async_effects_pending_idx"
948
+ ON "performance_load_async_effects" USING btree
949
+ ("processed_at", "expires_at");
950
+ CREATE INDEX IF NOT EXISTS "performance_load_async_effects_run_idx"
951
+ ON "performance_load_async_effects" USING btree
952
+ ("plan_digest", "run_id");
953
+
954
+ CREATE TABLE IF NOT EXISTS "ebk_inbox" (
955
+ "handler_id" text NOT NULL,
956
+ "handler_version" text NOT NULL,
957
+ "message_id" text NOT NULL,
958
+ "payload_digest" text NOT NULL,
959
+ "status" text NOT NULL,
960
+ "attempts" integer NOT NULL DEFAULT 0,
961
+ "result_reference" text,
962
+ "first_seen_at" timestamptz NOT NULL DEFAULT now(),
963
+ "last_attempt_at" timestamptz NOT NULL,
964
+ "completed_at" timestamptz,
965
+ "expires_at" timestamptz NOT NULL,
966
+ PRIMARY KEY ("handler_id", "message_id")
967
+ );
968
+ CREATE INDEX "ebk_inbox_expires_at_idx"
969
+ ON "ebk_inbox" USING btree ("expires_at");
970
+
971
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_retention_runs" (
972
+ "id" uuid PRIMARY KEY,
973
+ "approval_request_id" uuid UNIQUE,
974
+ "as_of" timestamptz NOT NULL,
975
+ "checkpoint_json" jsonb NOT NULL,
976
+ "completed_at" timestamptz,
977
+ "counts_json" jsonb NOT NULL,
978
+ "expires_at" timestamptz NOT NULL,
979
+ "plan_json" jsonb NOT NULL,
980
+ "policy_version" text NOT NULL,
981
+ "revision" integer NOT NULL,
982
+ "status" text NOT NULL,
983
+ "updated_at" timestamptz NOT NULL DEFAULT now()
984
+ );
985
+
986
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_retention_candidates" (
987
+ "run_id" uuid NOT NULL,
988
+ "candidate_order" text NOT NULL,
989
+ "record_id" uuid NOT NULL,
990
+ "record_ref" text NOT NULL,
991
+ "due_at" timestamptz NOT NULL,
992
+ PRIMARY KEY ("run_id", "candidate_order")
993
+ );
994
+
995
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_receipts" (
996
+ "source_slice" text NOT NULL,
997
+ "pseudonymous_key" text NOT NULL,
998
+ "action" text NOT NULL,
999
+ "request_ref" text NOT NULL,
1000
+ "policy_version" text NOT NULL,
1001
+ "occurred_at" timestamptz NOT NULL,
1002
+ "received_at" timestamptz NOT NULL DEFAULT now(),
1003
+ PRIMARY KEY ("source_slice", "pseudonymous_key", "action", "request_ref")
1004
+ );
1005
+
1006
+ CREATE TABLE IF NOT EXISTS "data_lifecycle_downstream_copies" (
1007
+ "source_slice" text NOT NULL,
1008
+ "pseudonymous_key" text NOT NULL,
1009
+ "copy_id" text NOT NULL,
1010
+ "recipient" text NOT NULL,
1011
+ "purpose" text NOT NULL,
1012
+ "expires_at" timestamptz NOT NULL,
1013
+ "action" text NOT NULL,
1014
+ "hold_refs" jsonb NOT NULL,
1015
+ "status" text NOT NULL,
1016
+ "updated_at" timestamptz NOT NULL DEFAULT now(),
1017
+ PRIMARY KEY ("source_slice", "pseudonymous_key", "copy_id")
1018
+ );
1019
+ `,
1020
+ 'database/migrations/meta/_journal.json': (0, built_in_plan_shared_js_1.json)({
1021
+ dialect: 'postgresql',
1022
+ entries: [
1023
+ {
1024
+ idx: 0,
1025
+ tag: '0000_initial',
1026
+ version: '7',
1027
+ when: 0,
1028
+ breakpoints: true,
1029
+ },
1030
+ ],
1031
+ version: '7',
1032
+ }),
1033
+ 'database/migrations/meta/0000_snapshot.json': (0, built_in_plan_shared_js_1.json)({
1034
+ id: 'fdcf5ce3-ada5-44bf-bd9e-e01f2abe3bc4',
1035
+ prevId: '00000000-0000-0000-0000-000000000000',
1036
+ version: '7',
1037
+ dialect: 'postgresql',
1038
+ tables: {
1039
+ 'public.approval_requests': snapshotTable('approval_requests', {
1040
+ author_reference: snapshotColumn('author_reference', 'text'),
1041
+ created_at: snapshotColumn('created_at', 'timestamp with time zone', {
1042
+ default: 'now()',
1043
+ }),
1044
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1045
+ id: snapshotColumn('id', 'uuid', { primaryKey: true }),
1046
+ policy_version: snapshotColumn('policy_version', 'text'),
1047
+ request_digest: snapshotColumn('request_digest', 'text'),
1048
+ request_json: snapshotColumn('request_json', 'jsonb'),
1049
+ revision: snapshotColumn('revision', 'integer'),
1050
+ status: snapshotColumn('status', 'text'),
1051
+ }),
1052
+ 'public.authorization_audit': snapshotTable('authorization_audit', {
1053
+ action: snapshotColumn('action', 'text'),
1054
+ approval_reference: snapshotColumn('approval_reference', 'text', {
1055
+ notNull: false,
1056
+ }),
1057
+ authority_mode: snapshotColumn('authority_mode', 'text'),
1058
+ correlation_id: snapshotColumn('correlation_id', 'text'),
1059
+ created_at: snapshotColumn('created_at', 'timestamp with time zone', {
1060
+ default: 'now()',
1061
+ }),
1062
+ decision: snapshotColumn('decision', 'text'),
1063
+ id: snapshotColumn('id', 'uuid', {
1064
+ default: 'gen_random_uuid()',
1065
+ primaryKey: true,
1066
+ }),
1067
+ policy_version: snapshotColumn('policy_version', 'text'),
1068
+ principal_kind: snapshotColumn('principal_kind', 'text'),
1069
+ pseudonymous_subject_id: snapshotColumn('pseudonymous_subject_id', 'text'),
1070
+ reason_category: snapshotColumn('reason_category', 'text'),
1071
+ delegation_reference: snapshotColumn('delegation_reference', 'text', {
1072
+ notNull: false,
1073
+ }),
1074
+ resource_reference: snapshotColumn('resource_reference', 'text', {
1075
+ notNull: false,
1076
+ }),
1077
+ resource_type: snapshotColumn('resource_type', 'text'),
1078
+ slice: snapshotColumn('slice', 'text'),
1079
+ stage: snapshotColumn('stage', 'text'),
1080
+ subject_type: snapshotColumn('subject_type', 'text'),
1081
+ }),
1082
+ 'public.data_lifecycle_audit': snapshotTable('data_lifecycle_audit', {
1083
+ action: snapshotColumn('action', 'text'),
1084
+ actor_ref: snapshotColumn('actor_ref', 'text'),
1085
+ approval_reference: snapshotColumn('approval_reference', 'text', {
1086
+ notNull: false,
1087
+ }),
1088
+ audit_json: snapshotColumn('audit_json', 'jsonb'),
1089
+ authority_code: snapshotColumn('authority_code', 'text'),
1090
+ correlation_ref: snapshotColumn('correlation_ref', 'text'),
1091
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1092
+ id: snapshotColumn('id', 'uuid', {
1093
+ default: 'gen_random_uuid()',
1094
+ primaryKey: true,
1095
+ }),
1096
+ occurred_at: snapshotColumn('occurred_at', 'timestamp with time zone'),
1097
+ outcome: snapshotColumn('outcome', 'text'),
1098
+ policy_version: snapshotColumn('policy_version', 'text'),
1099
+ principal_kind: snapshotColumn('principal_kind', 'text'),
1100
+ purpose_code: snapshotColumn('purpose_code', 'text'),
1101
+ resource_reference: snapshotColumn('resource_reference', 'text', {
1102
+ notNull: false,
1103
+ }),
1104
+ slice: snapshotColumn('slice', 'text'),
1105
+ stage: snapshotColumn('stage', 'text'),
1106
+ subject_type: snapshotColumn('subject_type', 'text'),
1107
+ target_category_id: snapshotColumn('target_category_id', 'text'),
1108
+ }, {}, {}, {
1109
+ data_lifecycle_audit_expires_at_idx: snapshotIndex('data_lifecycle_audit_expires_at_idx', [{ expression: 'expires_at', opclass: 'timestamptz_ops' }]),
1110
+ }),
1111
+ 'public.data_lifecycle_export_artifacts': snapshotTable('data_lifecycle_export_artifacts', {
1112
+ approval_request_id: snapshotColumn('approval_request_id', 'uuid', {
1113
+ primaryKey: true,
1114
+ }),
1115
+ artifact_ref: snapshotColumn('artifact_ref', 'text', {
1116
+ notNull: false,
1117
+ }),
1118
+ cleanup_deadline_at: snapshotColumn('cleanup_deadline_at', 'timestamp with time zone', { notNull: false }),
1119
+ cleanup_state: snapshotColumn('cleanup_state', 'text'),
1120
+ created_at: snapshotColumn('created_at', 'timestamp with time zone', { default: 'now()' }),
1121
+ current_version_id: snapshotColumn('current_version_id', 'text', {
1122
+ notNull: false,
1123
+ }),
1124
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone', { notNull: false }),
1125
+ last_error_code: snapshotColumn('last_error_code', 'text', {
1126
+ notNull: false,
1127
+ }),
1128
+ object_key: snapshotColumn('object_key', 'text'),
1129
+ record_ref: snapshotColumn('record_ref', 'text'),
1130
+ subject_ref: snapshotColumn('subject_ref', 'text'),
1131
+ updated_at: snapshotColumn('updated_at', 'timestamp with time zone', { default: 'now()' }),
1132
+ upload_started_at: snapshotColumn('upload_started_at', 'timestamp with time zone', { notNull: false }),
1133
+ }, {}, {}, {
1134
+ data_lifecycle_export_artifacts_cleanup_deadline_idx: snapshotIndex('data_lifecycle_export_artifacts_cleanup_deadline_idx', [
1135
+ { expression: 'cleanup_state', opclass: 'text_ops' },
1136
+ {
1137
+ expression: 'cleanup_deadline_at',
1138
+ opclass: 'timestamptz_ops',
1139
+ },
1140
+ ]),
1141
+ data_lifecycle_export_artifacts_cleanup_expiry_idx: snapshotIndex('data_lifecycle_export_artifacts_cleanup_expiry_idx', [
1142
+ { expression: 'cleanup_state', opclass: 'text_ops' },
1143
+ { expression: 'expires_at', opclass: 'timestamptz_ops' },
1144
+ ]),
1145
+ data_lifecycle_export_artifacts_subject_created_idx: snapshotIndex('data_lifecycle_export_artifacts_subject_created_idx', [
1146
+ { expression: 'subject_ref', opclass: 'text_ops' },
1147
+ { expression: 'created_at', opclass: 'timestamptz_ops' },
1148
+ ]),
1149
+ }, {
1150
+ data_lifecycle_export_artifacts_approval_request_id_approval_requests_id_fk: {
1151
+ columnsFrom: ['approval_request_id'],
1152
+ columnsTo: ['id'],
1153
+ name: 'data_lifecycle_export_artifacts_approval_request_id_approval_requests_id_fk',
1154
+ onDelete: 'cascade',
1155
+ onUpdate: 'no action',
1156
+ tableFrom: 'data_lifecycle_export_artifacts',
1157
+ tableTo: 'approval_requests',
1158
+ },
1159
+ }),
1160
+ 'public.cleanup_deadline_report_capacity': snapshotTable('cleanup_deadline_report_capacity', {
1161
+ feature: snapshotColumn('feature', 'text', { primaryKey: true }),
1162
+ maximum_pending: snapshotColumn('maximum_pending', 'integer'),
1163
+ }),
1164
+ 'public.cleanup_deadline_reports': snapshotTable('cleanup_deadline_reports', {
1165
+ deadline_at: snapshotColumn('deadline_at', 'timestamp with time zone'),
1166
+ feature: snapshotColumn('feature', 'text'),
1167
+ observed_at: snapshotColumn('observed_at', 'timestamp with time zone', { default: 'now()' }),
1168
+ resource_ref: snapshotColumn('resource_ref', 'text'),
1169
+ }, {}, {
1170
+ cleanup_deadline_reports_feature_resource_ref_pk: {
1171
+ columns: ['feature', 'resource_ref'],
1172
+ name: 'cleanup_deadline_reports_feature_resource_ref_pk',
1173
+ },
1174
+ }, {
1175
+ cleanup_deadline_reports_feature_observed_idx: snapshotIndex('cleanup_deadline_reports_feature_observed_idx', [
1176
+ { expression: 'feature', opclass: 'text_ops' },
1177
+ {
1178
+ expression: 'observed_at',
1179
+ opclass: 'timestamptz_ops',
1180
+ },
1181
+ ]),
1182
+ }),
1183
+ 'public.data_lifecycle_export_versions': snapshotTable('data_lifecycle_export_versions', {
1184
+ approval_request_id: snapshotColumn('approval_request_id', 'uuid'),
1185
+ deleted_at: snapshotColumn('deleted_at', 'timestamp with time zone', { notNull: false }),
1186
+ is_delete_marker: snapshotColumn('is_delete_marker', 'boolean'),
1187
+ object_key: snapshotColumn('object_key', 'text'),
1188
+ status: snapshotColumn('status', 'text'),
1189
+ version_id: snapshotColumn('version_id', 'text'),
1190
+ }, {}, {
1191
+ data_lifecycle_export_versions_approval_request_id_version_id_pk: {
1192
+ columns: ['approval_request_id', 'version_id'],
1193
+ name: 'data_lifecycle_export_versions_approval_request_id_version_id_pk',
1194
+ },
1195
+ }, {
1196
+ data_lifecycle_export_versions_status_idx: snapshotIndex('data_lifecycle_export_versions_status_idx', [{ expression: 'status', opclass: 'text_ops' }]),
1197
+ }, {
1198
+ data_lifecycle_export_versions_approval_request_id_approval_requests_id_fk: {
1199
+ columnsFrom: ['approval_request_id'],
1200
+ columnsTo: ['id'],
1201
+ name: 'data_lifecycle_export_versions_approval_request_id_approval_requests_id_fk',
1202
+ onDelete: 'cascade',
1203
+ onUpdate: 'no action',
1204
+ tableFrom: 'data_lifecycle_export_versions',
1205
+ tableTo: 'approval_requests',
1206
+ },
1207
+ }),
1208
+ 'public.data_lifecycle_ledger': snapshotTable('data_lifecycle_ledger', {
1209
+ action: snapshotColumn('action', 'text'),
1210
+ category_id: snapshotColumn('category_id', 'text'),
1211
+ created_at: snapshotColumn('created_at', 'timestamp with time zone', { default: 'now()' }),
1212
+ effective_at: snapshotColumn('effective_at', 'timestamp with time zone'),
1213
+ entry_id: snapshotColumn('entry_id', 'text', {
1214
+ primaryKey: true,
1215
+ }),
1216
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1217
+ idempotency_key: snapshotColumn('idempotency_key', 'text'),
1218
+ policy_version: snapshotColumn('policy_version', 'text'),
1219
+ pseudonymous_key: snapshotColumn('pseudonymous_key', 'text'),
1220
+ }, {
1221
+ data_lifecycle_ledger_idempotency_key_unique: {
1222
+ columns: ['idempotency_key'],
1223
+ name: 'data_lifecycle_ledger_idempotency_key_unique',
1224
+ nullsNotDistinct: false,
1225
+ },
1226
+ }),
1227
+ 'public.data_lifecycle_downstream_copies': snapshotTable('data_lifecycle_downstream_copies', {
1228
+ action: snapshotColumn('action', 'text'),
1229
+ copy_id: snapshotColumn('copy_id', 'text'),
1230
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1231
+ hold_refs: snapshotColumn('hold_refs', 'jsonb'),
1232
+ pseudonymous_key: snapshotColumn('pseudonymous_key', 'text'),
1233
+ purpose: snapshotColumn('purpose', 'text'),
1234
+ recipient: snapshotColumn('recipient', 'text'),
1235
+ source_slice: snapshotColumn('source_slice', 'text'),
1236
+ status: snapshotColumn('status', 'text'),
1237
+ updated_at: snapshotColumn('updated_at', 'timestamp with time zone', { default: 'now()' }),
1238
+ }, {}, {
1239
+ data_lifecycle_downstream_copies_source_slice_pseudonymous_key_copy_id_pk: {
1240
+ columns: ['source_slice', 'pseudonymous_key', 'copy_id'],
1241
+ name: 'data_lifecycle_downstream_copies_source_slice_pseudonymous_key_copy_id_pk',
1242
+ },
1243
+ }),
1244
+ 'public.data_lifecycle_holds': snapshotTable('data_lifecycle_holds', {
1245
+ category_id: snapshotColumn('category_id', 'text'),
1246
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1247
+ hold_id: snapshotColumn('hold_id', 'text', { primaryKey: true }),
1248
+ hold_json: snapshotColumn('hold_json', 'jsonb'),
1249
+ review_at: snapshotColumn('review_at', 'timestamp with time zone'),
1250
+ scope_ref: snapshotColumn('scope_ref', 'text'),
1251
+ status: snapshotColumn('status', 'text'),
1252
+ }),
1253
+ 'public.data_lifecycle_outbox': snapshotTable('data_lifecycle_outbox', {
1254
+ attempts: snapshotColumn('attempts', 'integer', { default: '0' }),
1255
+ created_at: snapshotColumn('created_at', 'timestamp with time zone', {
1256
+ default: 'now()',
1257
+ }),
1258
+ event_json: snapshotColumn('event_json', 'jsonb'),
1259
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1260
+ idempotency_key: snapshotColumn('idempotency_key', 'text', {
1261
+ primaryKey: true,
1262
+ }),
1263
+ last_error_code: snapshotColumn('last_error_code', 'text', {
1264
+ notNull: false,
1265
+ }),
1266
+ published_at: snapshotColumn('published_at', 'timestamp with time zone', { notNull: false }),
1267
+ }),
1268
+ 'public.performance_load_runs': snapshotTable('performance_load_runs', {
1269
+ adapter_id: snapshotColumn('adapter_id', 'text'),
1270
+ cleanup_started_at: snapshotColumn('cleanup_started_at', 'timestamp with time zone', { notNull: false }),
1271
+ created_at: snapshotColumn('created_at', 'timestamp with time zone'),
1272
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1273
+ maximum_requests: snapshotColumn('maximum_requests', 'integer'),
1274
+ plan_digest: snapshotColumn('plan_digest', 'text', {
1275
+ primaryKey: true,
1276
+ }),
1277
+ release_material_digest: snapshotColumn('release_material_digest', 'text'),
1278
+ run_id: snapshotColumn('run_id', 'text'),
1279
+ scenario_id: snapshotColumn('scenario_id', 'text'),
1280
+ source_commit: snapshotColumn('source_commit', 'text'),
1281
+ stage: snapshotColumn('stage', 'text'),
1282
+ }, {}, {}, {
1283
+ performance_load_runs_expires_at_idx: snapshotIndex('performance_load_runs_expires_at_idx', [
1284
+ {
1285
+ expression: 'expires_at',
1286
+ opclass: 'timestamptz_ops',
1287
+ },
1288
+ ]),
1289
+ }),
1290
+ 'public.performance_load_requests': snapshotTable('performance_load_requests', {
1291
+ claimed_at: snapshotColumn('claimed_at', 'timestamp with time zone', { default: 'now()' }),
1292
+ effect_id: snapshotColumn('effect_id', 'text', {
1293
+ notNull: false,
1294
+ }),
1295
+ plan_digest: snapshotColumn('plan_digest', 'text'),
1296
+ request_ordinal: snapshotColumn('request_ordinal', 'integer'),
1297
+ }, {}, {
1298
+ performance_load_requests_plan_digest_request_ordinal_pk: {
1299
+ columns: ['plan_digest', 'request_ordinal'],
1300
+ name: 'performance_load_requests_plan_digest_request_ordinal_pk',
1301
+ },
1302
+ }),
1303
+ 'public.performance_load_async_effects': snapshotTable('performance_load_async_effects', {
1304
+ created_at: snapshotColumn('created_at', 'timestamp with time zone', { default: 'now()' }),
1305
+ effect_id: snapshotColumn('effect_id', 'text', {
1306
+ primaryKey: true,
1307
+ }),
1308
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1309
+ plan_digest: snapshotColumn('plan_digest', 'text'),
1310
+ processed_at: snapshotColumn('processed_at', 'timestamp with time zone', { notNull: false }),
1311
+ run_id: snapshotColumn('run_id', 'text'),
1312
+ }, {}, {}, {
1313
+ performance_load_async_effects_expires_at_idx: snapshotIndex('performance_load_async_effects_expires_at_idx', [
1314
+ {
1315
+ expression: 'expires_at',
1316
+ opclass: 'timestamptz_ops',
1317
+ },
1318
+ ]),
1319
+ performance_load_async_effects_pending_idx: snapshotIndex('performance_load_async_effects_pending_idx', [
1320
+ {
1321
+ expression: 'processed_at',
1322
+ opclass: 'timestamptz_ops',
1323
+ },
1324
+ {
1325
+ expression: 'expires_at',
1326
+ opclass: 'timestamptz_ops',
1327
+ },
1328
+ ]),
1329
+ performance_load_async_effects_run_idx: snapshotIndex('performance_load_async_effects_run_idx', [
1330
+ {
1331
+ expression: 'plan_digest',
1332
+ opclass: 'text_ops',
1333
+ },
1334
+ {
1335
+ expression: 'run_id',
1336
+ opclass: 'text_ops',
1337
+ },
1338
+ ]),
1339
+ }),
1340
+ 'public.ebk_inbox': snapshotTable('ebk_inbox', {
1341
+ attempts: snapshotColumn('attempts', 'integer', { default: '0' }),
1342
+ completed_at: snapshotColumn('completed_at', 'timestamp with time zone', { notNull: false }),
1343
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1344
+ first_seen_at: snapshotColumn('first_seen_at', 'timestamp with time zone', { default: 'now()' }),
1345
+ handler_id: snapshotColumn('handler_id', 'text'),
1346
+ handler_version: snapshotColumn('handler_version', 'text'),
1347
+ last_attempt_at: snapshotColumn('last_attempt_at', 'timestamp with time zone'),
1348
+ message_id: snapshotColumn('message_id', 'text'),
1349
+ payload_digest: snapshotColumn('payload_digest', 'text'),
1350
+ result_reference: snapshotColumn('result_reference', 'text', {
1351
+ notNull: false,
1352
+ }),
1353
+ status: snapshotColumn('status', 'text'),
1354
+ }, {}, {
1355
+ ebk_inbox_handler_id_message_id_pk: {
1356
+ columns: ['handler_id', 'message_id'],
1357
+ name: 'ebk_inbox_handler_id_message_id_pk',
1358
+ },
1359
+ }, {
1360
+ ebk_inbox_expires_at_idx: snapshotIndex('ebk_inbox_expires_at_idx', [
1361
+ {
1362
+ expression: 'expires_at',
1363
+ opclass: 'timestamptz_ops',
1364
+ },
1365
+ ]),
1366
+ }),
1367
+ 'public.data_lifecycle_requests': snapshotTable('data_lifecycle_requests', {
1368
+ approval_request_id: snapshotColumn('approval_request_id', 'uuid'),
1369
+ id: snapshotColumn('id', 'uuid', { primaryKey: true }),
1370
+ request_json: snapshotColumn('request_json', 'jsonb'),
1371
+ revision: snapshotColumn('revision', 'integer'),
1372
+ status: snapshotColumn('status', 'text'),
1373
+ updated_at: snapshotColumn('updated_at', 'timestamp with time zone', { default: 'now()' }),
1374
+ }, {
1375
+ data_lifecycle_requests_approval_request_id_unique: {
1376
+ columns: ['approval_request_id'],
1377
+ name: 'data_lifecycle_requests_approval_request_id_unique',
1378
+ nullsNotDistinct: false,
1379
+ },
1380
+ }),
1381
+ 'public.data_lifecycle_receipts': snapshotTable('data_lifecycle_receipts', {
1382
+ action: snapshotColumn('action', 'text'),
1383
+ occurred_at: snapshotColumn('occurred_at', 'timestamp with time zone'),
1384
+ policy_version: snapshotColumn('policy_version', 'text'),
1385
+ pseudonymous_key: snapshotColumn('pseudonymous_key', 'text'),
1386
+ received_at: snapshotColumn('received_at', 'timestamp with time zone', { default: 'now()' }),
1387
+ request_ref: snapshotColumn('request_ref', 'text'),
1388
+ source_slice: snapshotColumn('source_slice', 'text'),
1389
+ }, {}, {
1390
+ data_lifecycle_receipts_source_slice_pseudonymous_key_action_request_ref_pk: {
1391
+ columns: [
1392
+ 'source_slice',
1393
+ 'pseudonymous_key',
1394
+ 'action',
1395
+ 'request_ref',
1396
+ ],
1397
+ name: 'data_lifecycle_receipts_source_slice_pseudonymous_key_action_request_ref_pk',
1398
+ },
1399
+ }),
1400
+ 'public.data_lifecycle_retention_runs': snapshotTable('data_lifecycle_retention_runs', {
1401
+ approval_request_id: snapshotColumn('approval_request_id', 'uuid', {
1402
+ notNull: false,
1403
+ }),
1404
+ as_of: snapshotColumn('as_of', 'timestamp with time zone'),
1405
+ checkpoint_json: snapshotColumn('checkpoint_json', 'jsonb'),
1406
+ completed_at: snapshotColumn('completed_at', 'timestamp with time zone', { notNull: false }),
1407
+ counts_json: snapshotColumn('counts_json', 'jsonb'),
1408
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1409
+ id: snapshotColumn('id', 'uuid', { primaryKey: true }),
1410
+ plan_json: snapshotColumn('plan_json', 'jsonb'),
1411
+ policy_version: snapshotColumn('policy_version', 'text'),
1412
+ revision: snapshotColumn('revision', 'integer'),
1413
+ status: snapshotColumn('status', 'text'),
1414
+ updated_at: snapshotColumn('updated_at', 'timestamp with time zone', { default: 'now()' }),
1415
+ }, {
1416
+ data_lifecycle_retention_runs_approval_request_id_unique: {
1417
+ columns: ['approval_request_id'],
1418
+ name: 'data_lifecycle_retention_runs_approval_request_id_unique',
1419
+ nullsNotDistinct: false,
1420
+ },
1421
+ }),
1422
+ 'public.data_lifecycle_retention_candidates': snapshotTable('data_lifecycle_retention_candidates', {
1423
+ candidate_order: snapshotColumn('candidate_order', 'text'),
1424
+ due_at: snapshotColumn('due_at', 'timestamp with time zone'),
1425
+ record_id: snapshotColumn('record_id', 'uuid'),
1426
+ record_ref: snapshotColumn('record_ref', 'text'),
1427
+ run_id: snapshotColumn('run_id', 'uuid'),
1428
+ }, {}, {
1429
+ data_lifecycle_retention_candidates_run_id_candidate_order_pk: {
1430
+ columns: ['run_id', 'candidate_order'],
1431
+ name: 'data_lifecycle_retention_candidates_run_id_candidate_order_pk',
1432
+ },
1433
+ }),
1434
+ 'public.delegation_grants': snapshotTable('delegation_grants', {
1435
+ capability_digest: snapshotColumn('capability_digest', 'text'),
1436
+ created_at: snapshotColumn('created_at', 'timestamp with time zone', {
1437
+ default: 'now()',
1438
+ }),
1439
+ expires_at: snapshotColumn('expires_at', 'timestamp with time zone'),
1440
+ grant_json: snapshotColumn('grant_json', 'jsonb'),
1441
+ id: snapshotColumn('id', 'uuid', { primaryKey: true }),
1442
+ issued_at: snapshotColumn('issued_at', 'timestamp with time zone'),
1443
+ policy_version: snapshotColumn('policy_version', 'text'),
1444
+ revision: snapshotColumn('revision', 'integer'),
1445
+ status: snapshotColumn('status', 'text'),
1446
+ }),
1447
+ 'public.records': snapshotTable('records', {
1448
+ created_at: snapshotColumn('created_at', 'timestamp with time zone', {
1449
+ default: 'now()',
1450
+ }),
1451
+ id: snapshotColumn('id', 'uuid', {
1452
+ default: 'gen_random_uuid()',
1453
+ primaryKey: true,
1454
+ }),
1455
+ last_activity_at: snapshotColumn('last_activity_at', 'timestamp with time zone', { default: 'now()' }),
1456
+ name: snapshotColumn('name', 'text'),
1457
+ owner_id: snapshotColumn('owner_id', 'text'),
1458
+ run_scope: snapshotColumn('run_scope', 'text'),
1459
+ test_expires_at: snapshotColumn('test_expires_at', 'timestamp with time zone', { notNull: false }),
1460
+ }, {}, {}, {
1461
+ records_performance_expiry_idx: snapshotIndex('records_performance_expiry_idx', [
1462
+ { expression: 'owner_id', opclass: 'text_ops' },
1463
+ { expression: 'name', opclass: 'text_ops' },
1464
+ {
1465
+ expression: 'test_expires_at',
1466
+ opclass: 'timestamptz_ops',
1467
+ },
1468
+ ]),
1469
+ records_performance_run_scope_idx: snapshotIndex('records_performance_run_scope_idx', [
1470
+ { expression: 'owner_id', opclass: 'text_ops' },
1471
+ { expression: 'name', opclass: 'text_ops' },
1472
+ { expression: 'run_scope', opclass: 'text_ops' },
1473
+ ]),
1474
+ }),
1475
+ },
1476
+ enums: {},
1477
+ schemas: {},
1478
+ sequences: {},
1479
+ roles: {},
1480
+ policies: {},
1481
+ views: {},
1482
+ _meta: { columns: {}, schemas: {}, tables: {} },
1483
+ }),
1484
+ 'database/drizzle.config.ts': `import { createDatabaseBindingPlan, resolveLocalDatabaseContract } from '@empire-builder-kit/nx/foundation';
1485
+ import { defineConfig } from 'drizzle-kit';
1486
+ import databaseBindings from './bindings.json';
1487
+
1488
+ const plan = createDatabaseBindingPlan(databaseBindings, {
1489
+ slice: '${name}',
1490
+ stage: 'development',
1491
+ });
1492
+ const activeDatabase = plan.active.primary;
1493
+ if (!activeDatabase) throw new Error('Database binding "primary" is required.');
1494
+ const localDatabase = resolveLocalDatabaseContract({
1495
+ database: activeDatabase,
1496
+ slice: '${name}',
1497
+ });
1498
+
1499
+ export default defineConfig({
1500
+ dbCredentials: {
1501
+ url: process.env.DATABASE_URL ?? \`postgresql://\${localDatabase.username}:\${localDatabase.password}@\${localDatabase.host}:\${localDatabase.port}/\${localDatabase.database}\`,
1502
+ },
1503
+ dialect: 'postgresql',
1504
+ out: './database/migrations',
1505
+ schema: './database/schema.ts',
1506
+ });
1507
+ `,
1508
+ 'database/docker-compose.yml': `services:
1509
+ database:
1510
+ image: postgres:17-alpine
1511
+ environment:
1512
+ POSTGRES_DB: \${EBK_LOCAL_DATABASE}
1513
+ POSTGRES_PASSWORD: \${EBK_LOCAL_DATABASE_PASSWORD}
1514
+ POSTGRES_USER: \${EBK_LOCAL_DATABASE_USERNAME}
1515
+ healthcheck:
1516
+ test: [CMD-SHELL, "pg_isready -U \${EBK_LOCAL_DATABASE_USERNAME} -d \${EBK_LOCAL_DATABASE}"]
1517
+ interval: 2s
1518
+ timeout: 3s
1519
+ retries: 15
1520
+ ports:
1521
+ - '\${EBK_LOCAL_DATABASE_PORT}:5432'
1522
+ volumes:
1523
+ - database-data:/var/lib/postgresql/data
1524
+
1525
+ volumes:
1526
+ database-data:
1527
+ `,
1528
+ };
1529
+ }
1530
+ //# sourceMappingURL=built-in-plan-data-files.js.map