@empire-builder-kit/nx 1.0.0-rc.29 → 1.0.0-rc.31

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 (261) hide show
  1. package/executors.json +8 -3
  2. package/package.json +10 -7
  3. package/src/aws/child-environment.d.ts +10 -0
  4. package/src/aws/child-environment.js +77 -0
  5. package/src/aws/child-environment.js.map +1 -0
  6. package/src/aws/identity.d.ts +13 -0
  7. package/src/aws/identity.js +41 -0
  8. package/src/aws/identity.js.map +1 -0
  9. package/src/aws-authority/index.d.ts +1 -0
  10. package/src/aws-authority/index.js +5 -0
  11. package/src/aws-authority/index.js.map +1 -0
  12. package/src/aws-authority/stage-authority.d.ts +238 -0
  13. package/src/aws-authority/stage-authority.js +2836 -0
  14. package/src/aws-authority/stage-authority.js.map +1 -0
  15. package/src/developer-agent/generator-planning.js +4 -4
  16. package/src/developer-agent/generator-planning.js.map +1 -1
  17. package/src/developer-agent/operation-registry.js +14 -6
  18. package/src/developer-agent/operation-registry.js.map +1 -1
  19. package/src/executors/deployment-plan/deployment-plan.js +1 -1
  20. package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
  21. package/src/executors/foundation-preflight/foundation-preflight.d.ts +0 -1
  22. package/src/executors/foundation-preflight/foundation-preflight.js.map +1 -1
  23. package/src/executors/foundation-preflight/schema.json +0 -5
  24. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +12 -3
  25. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -32
  26. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +1 -1
  27. package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +64 -0
  28. package/src/executors/foundation-profile-preflight/production-database-safeguard.js +221 -0
  29. package/src/executors/foundation-profile-preflight/production-database-safeguard.js.map +1 -0
  30. package/src/executors/foundation-profile-preflight/schema.json +1 -6
  31. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
  32. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +44 -21
  33. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +1 -1
  34. package/src/executors/foundation-remove-preflight/schema.json +6 -1
  35. package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +25 -369
  36. package/src/executors/infrastructure-plan/infrastructure-plan.js +222 -5463
  37. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +1 -1
  38. package/src/executors/infrastructure-plan/schema.json +8 -64
  39. package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
  40. package/src/executors/local-deploy/federated-credential-transport.js +252 -0
  41. package/src/executors/local-deploy/federated-credential-transport.js.map +1 -0
  42. package/src/executors/local-deploy/local-approval.d.ts +4 -9
  43. package/src/executors/local-deploy/local-approval.js +3 -7
  44. package/src/executors/local-deploy/local-approval.js.map +1 -1
  45. package/src/executors/local-deploy/local-deploy.d.ts +58 -43
  46. package/src/executors/local-deploy/local-deploy.js +938 -804
  47. package/src/executors/local-deploy/local-deploy.js.map +1 -1
  48. package/src/executors/local-deploy/schema.json +3 -20
  49. package/src/executors/refresh/refresh.js +2 -2
  50. package/src/executors/refresh/refresh.js.map +1 -1
  51. package/src/executors/remove/remove.js +2 -2
  52. package/src/executors/remove/remove.js.map +1 -1
  53. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +25 -1
  54. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +905 -22
  55. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js.map +1 -1
  56. package/src/executors/router-waf-rehearsal/schema.json +17 -2
  57. package/src/executors/secret-initialize/schema.json +42 -0
  58. package/src/executors/secret-initialize/secret-initialize.d.ts +30 -0
  59. package/src/executors/secret-initialize/secret-initialize.js +229 -0
  60. package/src/executors/secret-initialize/secret-initialize.js.map +1 -0
  61. package/src/executors/secret-metadata/secret-metadata.d.ts +2 -1
  62. package/src/executors/secret-metadata/secret-metadata.js +62 -29
  63. package/src/executors/secret-metadata/secret-metadata.js.map +1 -1
  64. package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
  65. package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
  66. package/src/executors/sst-lifecycle/generated-secret-retirement.js.map +1 -0
  67. package/src/executors/sst-lifecycle/governed-native-operation.d.ts +46 -0
  68. package/src/executors/sst-lifecycle/governed-native-operation.js +153 -0
  69. package/src/executors/sst-lifecycle/governed-native-operation.js.map +1 -0
  70. package/src/executors/sst-lifecycle/run-sst-command.d.ts +25 -7
  71. package/src/executors/sst-lifecycle/run-sst-command.js +459 -89
  72. package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
  73. package/src/executors/sst-lifecycle/schema.json +0 -5
  74. package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
  75. package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
  76. package/src/executors/sst-lifecycle/secret-preflight.js.map +1 -1
  77. package/src/executors/unlock/unlock.js +2 -2
  78. package/src/executors/unlock/unlock.js.map +1 -1
  79. package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
  80. package/src/foundation/router-waf-rate-rehearsal.js +210 -0
  81. package/src/foundation/router-waf-rate-rehearsal.js.map +1 -0
  82. package/src/foundation/router-waf.d.ts +59 -9
  83. package/src/foundation/router-waf.js +427 -32
  84. package/src/foundation/router-waf.js.map +1 -1
  85. package/src/foundation/stages.d.ts +1 -0
  86. package/src/foundation/stages.js +11 -0
  87. package/src/foundation/stages.js.map +1 -1
  88. package/src/generators/formatting.d.ts +8 -0
  89. package/src/generators/formatting.js +118 -0
  90. package/src/generators/formatting.js.map +1 -0
  91. package/src/generators/function/function.js +37 -17
  92. package/src/generators/function/function.js.map +1 -1
  93. package/src/generators/post-generation-install.js +2 -2
  94. package/src/generators/post-generation-install.js.map +1 -1
  95. package/src/generators/preset/generator.js +22 -7
  96. package/src/generators/preset/generator.js.map +1 -1
  97. package/src/generators/preset/workspace-files-developer-agent.js +15 -7
  98. package/src/generators/preset/workspace-files-developer-agent.js.map +1 -1
  99. package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
  100. package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
  101. package/src/generators/preset/workspace-files-ecr-inspector.js.map +1 -0
  102. package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
  103. package/src/generators/preset/workspace-files-performance-cost.js +8 -8
  104. package/src/generators/preset/workspace-files-performance-cost.js.map +1 -1
  105. package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
  106. package/src/generators/preset/workspace-files-performance-load.js +8 -12
  107. package/src/generators/preset/workspace-files-performance-load.js.map +1 -1
  108. package/src/generators/preset/workspace-files-stage-authority.d.ts +4 -0
  109. package/src/generators/preset/workspace-files-stage-authority.js +275 -0
  110. package/src/generators/preset/workspace-files-stage-authority.js.map +1 -0
  111. package/src/generators/preset/workspace-files-thin-deploy.d.ts +35 -0
  112. package/src/generators/preset/workspace-files-thin-deploy.js +1434 -0
  113. package/src/generators/preset/workspace-files-thin-deploy.js.map +1 -0
  114. package/src/generators/preset/workspace-files-thin-docs.d.ts +5 -0
  115. package/src/generators/preset/workspace-files-thin-docs.js +224 -0
  116. package/src/generators/preset/workspace-files-thin-docs.js.map +1 -0
  117. package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
  118. package/src/generators/preset/workspace-files-thin-release.js +26 -0
  119. package/src/generators/preset/workspace-files-thin-release.js.map +1 -0
  120. package/src/generators/preset/workspace-files.d.ts +1 -1
  121. package/src/generators/preset/workspace-files.js +373 -223
  122. package/src/generators/preset/workspace-files.js.map +1 -1
  123. package/src/generators/slice/built-in-plan-api-files.js +1 -0
  124. package/src/generators/slice/built-in-plan-api-files.js.map +1 -1
  125. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +4 -0
  126. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +1 -1
  127. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
  128. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +1 -1
  129. package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
  130. package/src/generators/slice/built-in-plan-data-files.js +89 -30
  131. package/src/generators/slice/built-in-plan-data-files.js.map +1 -1
  132. package/src/generators/slice/built-in-plan-foundation-files.js +3 -5
  133. package/src/generators/slice/built-in-plan-foundation-files.js.map +1 -1
  134. package/src/generators/slice/built-in-plan-frontend-files.js +5 -1
  135. package/src/generators/slice/built-in-plan-frontend-files.js.map +1 -1
  136. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
  137. package/src/generators/slice/built-in-plan-infrastructure-files.js +199 -188
  138. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -1
  139. package/src/generators/slice/built-in-plan-metadata-files.js +13 -0
  140. package/src/generators/slice/built-in-plan-metadata-files.js.map +1 -1
  141. package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
  142. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +307 -0
  143. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js.map +1 -0
  144. package/src/generators/slice/built-in-plan-operations-files.js +43 -49
  145. package/src/generators/slice/built-in-plan-operations-files.js.map +1 -1
  146. package/src/generators/slice/built-in-plan-performance-files.js +37 -19
  147. package/src/generators/slice/built-in-plan-performance-files.js.map +1 -1
  148. package/src/generators/slice/built-in-plan-project-files.js +9 -68
  149. package/src/generators/slice/built-in-plan-project-files.js.map +1 -1
  150. package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
  151. package/src/generators/slice/built-in-plan-secret-runtime-files.js +74 -76
  152. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +1 -1
  153. package/src/generators/slice/built-in-plan-testing-files.js +74 -47
  154. package/src/generators/slice/built-in-plan-testing-files.js.map +1 -1
  155. package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
  156. package/src/generators/slice/built-in-plan-thin-release-files.js +129 -0
  157. package/src/generators/slice/built-in-plan-thin-release-files.js.map +1 -0
  158. package/src/generators/slice/built-in-plan-verification-files.js +6 -2
  159. package/src/generators/slice/built-in-plan-verification-files.js.map +1 -1
  160. package/src/generators/slice/built-in-plan-web-files.js +4 -2
  161. package/src/generators/slice/built-in-plan-web-files.js.map +1 -1
  162. package/src/generators/slice/built-in-plan-workload-role-files.js +26 -4
  163. package/src/generators/slice/built-in-plan-workload-role-files.js.map +1 -1
  164. package/src/generators/slice/built-in-plan.d.ts +1 -0
  165. package/src/generators/slice/built-in-plan.js +28 -11
  166. package/src/generators/slice/built-in-plan.js.map +1 -1
  167. package/src/generators/slice/slice.js +27 -29
  168. package/src/generators/slice/slice.js.map +1 -1
  169. package/src/generators/upgrade/upgrade.d.ts +1 -1
  170. package/src/generators/upgrade/upgrade.js +224 -69
  171. package/src/generators/upgrade/upgrade.js.map +1 -1
  172. package/src/generators/workload/performance-registration.d.ts +1 -0
  173. package/src/generators/workload/performance-registration.js +6 -4
  174. package/src/generators/workload/performance-registration.js.map +1 -1
  175. package/src/generators/workload/service-performance-files.d.ts +1 -0
  176. package/src/generators/workload/service-performance-files.js +27 -7
  177. package/src/generators/workload/service-performance-files.js.map +1 -1
  178. package/src/generators/workload/workload.d.ts +1 -1
  179. package/src/generators/workload/workload.js +55 -28
  180. package/src/generators/workload/workload.js.map +1 -1
  181. package/src/git-policy/github-bootstrap.d.ts +19 -6
  182. package/src/git-policy/github-bootstrap.js +103 -157
  183. package/src/git-policy/github-bootstrap.js.map +1 -1
  184. package/src/local-dev/private-state.d.ts +3 -0
  185. package/src/local-dev/private-state.js +17 -5
  186. package/src/local-dev/private-state.js.map +1 -1
  187. package/src/performance/cost-collection.d.ts +1 -1
  188. package/src/performance/cost-collection.js +4 -2
  189. package/src/performance/cost-collection.js.map +1 -1
  190. package/src/performance/cost-controls.d.ts +3 -1
  191. package/src/performance/cost-controls.js +9 -4
  192. package/src/performance/cost-controls.js.map +1 -1
  193. package/src/performance/evidence.d.ts +1 -1
  194. package/src/performance/evidence.js +5 -3
  195. package/src/performance/evidence.js.map +1 -1
  196. package/src/performance/load-safety.js +5 -3
  197. package/src/performance/load-safety.js.map +1 -1
  198. package/src/performance/model.d.ts +2 -2
  199. package/src/performance/model.js +4 -3
  200. package/src/performance/model.js.map +1 -1
  201. package/src/release/index.d.ts +0 -2
  202. package/src/release/index.js +0 -2
  203. package/src/release/index.js.map +1 -1
  204. package/src/release/source-authority.d.ts +4 -5
  205. package/src/release/source-authority.js +13 -123
  206. package/src/release/source-authority.js.map +1 -1
  207. package/src/repository-policy/aurora-preflight.d.ts +1 -1
  208. package/src/repository-policy/aurora-preflight.js +4 -1
  209. package/src/repository-policy/aurora-preflight.js.map +1 -1
  210. package/src/repository-policy/policy.d.ts +5 -1
  211. package/src/repository-policy/policy.js +64 -13
  212. package/src/repository-policy/policy.js.map +1 -1
  213. package/src/schemas/performance-policy-v1.json +3 -1
  214. package/src/secrets/adapters.d.ts +5 -1
  215. package/src/secrets/adapters.js +22 -1
  216. package/src/secrets/adapters.js.map +1 -1
  217. package/src/secrets/aws-control-plane.d.ts +10 -1
  218. package/src/secrets/aws-control-plane.js +67 -0
  219. package/src/secrets/aws-control-plane.js.map +1 -1
  220. package/src/secrets/generated-aws-control-plane.d.ts +23 -0
  221. package/src/secrets/generated-aws-control-plane.js +259 -0
  222. package/src/secrets/generated-aws-control-plane.js.map +1 -0
  223. package/src/secrets/metadata.js +38 -10
  224. package/src/secrets/metadata.js.map +1 -1
  225. package/src/secrets/model.d.ts +8 -1
  226. package/src/secrets/model.js +24 -3
  227. package/src/secrets/model.js.map +1 -1
  228. package/src/secrets/operator.d.ts +89 -3
  229. package/src/secrets/operator.js +422 -9
  230. package/src/secrets/operator.js.map +1 -1
  231. package/src/secrets/registry.d.ts +2 -1
  232. package/src/secrets/registry.js +18 -1
  233. package/src/secrets/registry.js.map +1 -1
  234. package/src/secrets/workload-access.js +10 -2
  235. package/src/secrets/workload-access.js.map +1 -1
  236. package/src/supply-chain/action-pins.js +61 -7
  237. package/src/supply-chain/action-pins.js.map +1 -1
  238. package/src/supply-chain/build-output-bounds.d.ts +2 -0
  239. package/src/supply-chain/build-output-bounds.js +12 -0
  240. package/src/supply-chain/build-output-bounds.js.map +1 -0
  241. package/src/supply-chain/build-output.js +2 -4
  242. package/src/supply-chain/build-output.js.map +1 -1
  243. package/src/supply-chain/ecr-scanning.d.ts +5 -3
  244. package/src/supply-chain/ecr-scanning.js +11 -7
  245. package/src/supply-chain/ecr-scanning.js.map +1 -1
  246. package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
  247. package/src/supply-chain/ecs-deployed-image.js +6 -4
  248. package/src/supply-chain/ecs-deployed-image.js.map +1 -1
  249. package/src/supply-chain/generated-container-release-command.js +816 -34
  250. package/src/supply-chain/generated-container-release-command.js.map +1 -1
  251. package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
  252. package/src/supply-chain/generated-ecr-collector-command.js +188 -91
  253. package/src/supply-chain/generated-ecr-collector-command.js.map +1 -1
  254. package/src/supply-chain/generated-files.js +4 -3
  255. package/src/supply-chain/generated-files.js.map +1 -1
  256. package/src/supply-chain/index.d.ts +1 -1
  257. package/src/supply-chain/index.js +2 -1
  258. package/src/supply-chain/index.js.map +1 -1
  259. package/src/workload-roles/index.d.ts +10 -17
  260. package/src/workload-roles/index.js +5 -18
  261. package/src/workload-roles/index.js.map +1 -1
@@ -13,7 +13,7 @@ function writeGithubOutputs(plan) {
13
13
  `deployment_profile=${plan.deploymentProfile}`,
14
14
  `deployment_region=${plan.deploymentRegion}`,
15
15
  `development_account_id=${plan.deploymentAccounts.development}`,
16
- `staging_account_id=${plan.deploymentAccounts.staging}`,
16
+ `staging_account_id=${plan.deploymentAccounts.staging ?? ''}`,
17
17
  `production_account_id=${plan.deploymentAccounts.production}`,
18
18
  `foundation_profile=${plan.effectiveProductionProfile ?? ''}`,
19
19
  `has_slices=${plan.sliceProjects.length > 0 ? 'true' : 'false'}`,
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-plan.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/deployment-plan/deployment-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment-plan.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/deployment-plan/deployment-plan.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,6 @@ interface FoundationPreflightOptions {
8
8
  expectedRoleArn?: string;
9
9
  foundationProject?: string;
10
10
  foundationStage?: string;
11
- localProductionConfirmation?: string;
12
11
  profile?: string;
13
12
  region?: string;
14
13
  stage: string;
@@ -1 +1 @@
1
- {"version":3,"file":"foundation-preflight.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/foundation-preflight/foundation-preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foundation-preflight.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/foundation-preflight/foundation-preflight.ts"],"names":[],"mappings":"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"}
@@ -22,11 +22,6 @@
22
22
  "pattern": "^arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role/[A-Za-z0-9+=,.@_/-]{1,512}$",
23
23
  "description": "Exact temporary-session IAM role expected for local governed deployment. This is verified against STS before mutation."
24
24
  },
25
- "localProductionConfirmation": {
26
- "type": "string",
27
- "maxLength": 256,
28
- "description": "One-use local starter production confirmation: <action>:production:<account>:<region>:<source-commit>. It is never forwarded to SST."
29
- },
30
25
  "contract": { "type": "string", "default": "^1.0.0" },
31
26
  "capabilities": {
32
27
  "type": "array",
@@ -1,10 +1,19 @@
1
1
  import { type PromiseExecutor } from '@nx/devkit';
2
+ import { type ProductionDatabaseSafeguardReader } from './production-database-safeguard.js';
2
3
  interface FoundationProfilePreflightOptions {
3
4
  expectedRoleArn?: string;
4
- localProductionConfirmation?: string;
5
5
  profile?: string;
6
6
  region?: string;
7
7
  stage: string;
8
8
  }
9
- declare const executor: PromiseExecutor<FoundationProfilePreflightOptions>;
10
- export default executor;
9
+ export interface FoundationProfilePreflightDependencies {
10
+ createProductionDatabaseReader?: (options: {
11
+ profile?: string;
12
+ region: string;
13
+ stage: 'production';
14
+ }) => ProductionDatabaseSafeguardReader;
15
+ now?: () => Date;
16
+ }
17
+ export declare function createFoundationProfilePreflightExecutor(dependencies?: FoundationProfilePreflightDependencies): PromiseExecutor<FoundationProfilePreflightOptions>;
18
+ declare const _default: PromiseExecutor<FoundationProfilePreflightOptions>;
19
+ export default _default;
@@ -1,42 +1,105 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFoundationProfilePreflightExecutor = createFoundationProfilePreflightExecutor;
3
4
  const devkit_1 = require("@nx/devkit");
4
5
  const index_js_1 = require("../../repository-policy/index.js");
6
+ const identity_js_1 = require("../../aws/identity.js");
5
7
  const stages_js_1 = require("../../foundation/stages.js");
6
8
  const run_sst_command_js_1 = require("../sst-lifecycle/run-sst-command.js");
7
- const executor = async (options, context) => {
8
- try {
9
- const stage = (0, stages_js_1.requireFoundationStage)(options.stage);
10
- if (stage === 'development') {
11
- devkit_1.logger.info('[foundation-profile-preflight] development uses the generated non-production profile; no protected profile check is required.');
9
+ const production_database_safeguard_js_1 = require("./production-database-safeguard.js");
10
+ const EXACT_ROLE_ARN = /^arn:(?:aws|aws-cn|aws-us-gov):iam::(\d{12}):role\/[A-Za-z0-9+=,.@_/-]+$/u;
11
+ function createFoundationProfilePreflightExecutor(dependencies = {}) {
12
+ return async (options, context) => {
13
+ try {
14
+ const stage = (0, stages_js_1.requireFoundationStage)(options.stage);
15
+ if (stage === 'development') {
16
+ devkit_1.logger.info('[foundation-profile-preflight] development uses the generated non-production profile; no protected profile check is required.');
17
+ return { success: true };
18
+ }
19
+ const operatingPolicy = (0, index_js_1.readRepositoryOperatingPolicy)(context.root);
20
+ (0, run_sst_command_js_1.assertSstLifecyclePolicy)('deploy', stage, process.env, operatingPolicy.deploymentProfile);
21
+ (0, index_js_1.assertRepositoryPolicyRequest)(context.root, {
22
+ action: 'deploy',
23
+ projects: [{ kind: 'foundation', name: 'foundation' }],
24
+ stage,
25
+ });
26
+ const requestedRegion = options.region?.trim() ||
27
+ process.env.AWS_REGION?.trim() ||
28
+ process.env.AWS_DEFAULT_REGION?.trim();
29
+ const committedRegion = (0, index_js_1.configuredDeploymentRegion)(operatingPolicy.deploymentRegion);
30
+ if (requestedRegion && requestedRegion !== committedRegion) {
31
+ throw new Error(`Foundation profile preflight Region ${requestedRegion} differs from committed deployment Region ${committedRegion}.`);
32
+ }
33
+ const reader = (0, index_js_1.createAuroraProfileCapabilityReader)({
34
+ ...(options.profile?.trim() ? { profile: options.profile.trim() } : {}),
35
+ region: committedRegion,
36
+ });
37
+ const region = committedRegion;
38
+ const report = (0, index_js_1.evaluateAuroraProfileCapability)(await reader.read(), region);
39
+ if (!report.ok) {
40
+ throw new Error(`Aurora ${report.engine} ${report.engineVersion} is not orderable as db.serverless in ${report.region}; protected Foundation deployment is blocked before mutation.`);
41
+ }
42
+ devkit_1.logger.info(`[foundation-profile-preflight] Aurora ${report.engine} ${report.engineVersion} is orderable as db.serverless in ${report.region}.`);
43
+ if (stage === 'production') {
44
+ const expectedAccountId = (0, index_js_1.configuredDeploymentAccountForStage)(operatingPolicy.deploymentProfile, operatingPolicy.deploymentAccounts, stage);
45
+ const local = process.env.GITHUB_ACTIONS !== 'true';
46
+ const expectedRole = options.expectedRoleArn?.trim();
47
+ const roleMatch = expectedRole
48
+ ? EXACT_ROLE_ARN.exec(expectedRole)
49
+ : null;
50
+ if (local &&
51
+ (!options.profile?.trim() ||
52
+ !roleMatch ||
53
+ roleMatch[1] !== expectedAccountId)) {
54
+ throw new Error('Local production Foundation preflight requires the passed invocation-private AWS profile and an exact assumed role in the committed account.');
55
+ }
56
+ if (expectedRole &&
57
+ (!roleMatch || roleMatch[1] !== expectedAccountId)) {
58
+ throw new Error('Production Foundation expected role does not match the committed account.');
59
+ }
60
+ const productionReader = (dependencies.createProductionDatabaseReader ??
61
+ production_database_safeguard_js_1.createProductionDatabaseSafeguardReader)({
62
+ ...(options.profile?.trim()
63
+ ? { profile: options.profile.trim() }
64
+ : {}),
65
+ region,
66
+ stage,
67
+ });
68
+ try {
69
+ const caller = await productionReader.readCallerIdentity();
70
+ if (caller.accountId !== expectedAccountId ||
71
+ typeof caller.arn !== 'string' ||
72
+ (expectedRole &&
73
+ !(0, identity_js_1.matchesExpectedAssumedRoleArn)(expectedAccountId, caller.arn, expectedRole))) {
74
+ throw new Error('Production Foundation AWS caller does not match the committed account and expected deployment role.');
75
+ }
76
+ const discovery = await productionReader.readDiscovery();
77
+ if (discovery.state === 'absent') {
78
+ devkit_1.logger.info('[foundation-profile-preflight] no production Foundation database discovery exists; native SST first deployment may proceed.');
79
+ }
80
+ else {
81
+ const cluster = await productionReader.describeCluster(discovery.clusterIdentifier);
82
+ (0, production_database_safeguard_js_1.assertExistingProductionDatabaseSafeguards)({
83
+ cluster,
84
+ discovery,
85
+ expectedAccountId,
86
+ expectedRegion: region,
87
+ now: (dependencies.now ?? (() => new Date()))(),
88
+ });
89
+ devkit_1.logger.info('[foundation-profile-preflight] existing production Foundation database identity, availability, deletion protection, retention, and backup signal are intact.');
90
+ }
91
+ }
92
+ finally {
93
+ productionReader.destroy();
94
+ }
95
+ }
12
96
  return { success: true };
13
97
  }
14
- const operatingPolicy = (0, index_js_1.readRepositoryOperatingPolicy)(context.root);
15
- (0, run_sst_command_js_1.assertSstLifecyclePolicy)('deploy', stage, process.env, operatingPolicy.deploymentProfile);
16
- (0, index_js_1.assertRepositoryPolicyRequest)(context.root, {
17
- action: 'deploy',
18
- projects: [{ kind: 'foundation', name: 'foundation' }],
19
- stage,
20
- });
21
- const requestedRegion = options.region?.trim() ||
22
- process.env.AWS_REGION?.trim() ||
23
- process.env.AWS_DEFAULT_REGION?.trim();
24
- const reader = (0, index_js_1.createAuroraProfileCapabilityReader)({
25
- ...(options.profile?.trim() ? { profile: options.profile.trim() } : {}),
26
- ...(requestedRegion ? { region: requestedRegion } : {}),
27
- });
28
- const region = requestedRegion ?? (await reader.resolveRegion());
29
- const report = (0, index_js_1.evaluateAuroraProfileCapability)(await reader.read(), region);
30
- if (!report.ok) {
31
- throw new Error(`Aurora ${report.engine} ${report.engineVersion} is not orderable as db.serverless in ${report.region}; protected Foundation deployment is blocked before mutation.`);
98
+ catch (error) {
99
+ devkit_1.logger.error(error instanceof Error ? error.message : String(error));
100
+ return { success: false };
32
101
  }
33
- devkit_1.logger.info(`[foundation-profile-preflight] Aurora ${report.engine} ${report.engineVersion} is orderable as db.serverless in ${report.region}.`);
34
- return { success: true };
35
- }
36
- catch (error) {
37
- devkit_1.logger.error(error instanceof Error ? error.message : String(error));
38
- return { success: false };
39
- }
40
- };
41
- exports.default = executor;
102
+ };
103
+ }
104
+ exports.default = createFoundationProfilePreflightExecutor();
42
105
  //# sourceMappingURL=foundation-profile-preflight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundation-profile-preflight.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/foundation-profile-preflight/foundation-profile-preflight.ts"],"names":[],"mappings":";;AAAA,uCAA0D;AAC1D,+DAK0C;AAC1C,0DAAoE;AACpE,4EAA+E;AAU/E,MAAM,QAAQ,GAAuD,KAAK,EACxE,OAAO,EACP,OAAO,EACP,EAAE;IACF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,kCAAsB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;YAC5B,eAAM,CAAC,IAAI,CACT,+HAA+H,CAChI,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,eAAe,GAAG,IAAA,wCAA6B,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,IAAA,6CAAwB,EACtB,QAAQ,EACR,KAAK,EACL,OAAO,CAAC,GAAG,EACX,eAAe,CAAC,iBAAiB,CAClC,CAAC;QACF,IAAA,wCAA6B,EAAC,OAAO,CAAC,IAAI,EAAE;YAC1C,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YACtD,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,eAAe,GACnB,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAA,8CAAmC,EAAC;YACjD,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,IAAI,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAA,0CAA+B,EAAC,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,yCAAyC,MAAM,CAAC,MAAM,+DAA+D,CACrK,CAAC;QACJ,CAAC;QACD,eAAM,CAAC,IAAI,CACT,yCAAyC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,qCAAqC,MAAM,CAAC,MAAM,GAAG,CACpI,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"foundation-profile-preflight.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/foundation-profile-preflight/foundation-profile-preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ export declare const PRODUCTION_DATABASE_BACKUP_MAX_AGE_MS: number;
2
+ export declare const PRODUCTION_DATABASE_CLOCK_SKEW_MS: number;
3
+ export interface ExistingProductionDatabaseDiscovery {
4
+ clusterArn: string;
5
+ clusterIdentifier: string;
6
+ state: 'existing';
7
+ }
8
+ export type ProductionDatabaseDiscovery = {
9
+ state: 'absent';
10
+ } | ExistingProductionDatabaseDiscovery;
11
+ export interface ProductionDatabaseDescription {
12
+ backupRetentionPeriod?: number;
13
+ clusterArn?: string;
14
+ clusterIdentifier?: string;
15
+ deletionProtection?: boolean;
16
+ latestRestorableTime?: Date;
17
+ maxCapacity?: number;
18
+ minCapacity?: number;
19
+ status?: string;
20
+ }
21
+ export interface ProductionDatabaseCallerIdentity {
22
+ accountId?: string;
23
+ arn?: string;
24
+ }
25
+ export interface ProductionDatabaseSafeguardReader {
26
+ describeCluster: (clusterIdentifier: string) => Promise<ProductionDatabaseDescription | undefined>;
27
+ destroy: () => void;
28
+ readCallerIdentity: () => Promise<ProductionDatabaseCallerIdentity>;
29
+ readDiscovery: () => Promise<ProductionDatabaseDiscovery>;
30
+ }
31
+ export interface ProductionDatabaseLifecycleAttestationOptions {
32
+ configFilepath?: string;
33
+ credentialsFilepath?: string;
34
+ expectedAccountId: string;
35
+ expectedCapacity?: {
36
+ max: number;
37
+ min: number;
38
+ };
39
+ expectedRegion: string;
40
+ expectedRoleArn: string;
41
+ now: Date;
42
+ priorDiscovery?: ProductionDatabaseDiscovery;
43
+ profile?: string;
44
+ reader?: ProductionDatabaseSafeguardReader;
45
+ requireExisting: boolean;
46
+ }
47
+ export declare function createProductionDatabaseSafeguardReader(options: {
48
+ configFilepath?: string;
49
+ credentialsFilepath?: string;
50
+ profile?: string;
51
+ region: string;
52
+ stage: 'production';
53
+ }): ProductionDatabaseSafeguardReader;
54
+ export declare function assertExistingProductionDatabaseSafeguards(options: {
55
+ cluster: ProductionDatabaseDescription | undefined;
56
+ discovery: ExistingProductionDatabaseDiscovery;
57
+ expectedAccountId: string;
58
+ expectedRegion: string;
59
+ now: Date;
60
+ }): void;
61
+ /** Read-only lifecycle boundary attestation. Native SST remains the deployment
62
+ * engine; this verifies only the protected production properties that IAM
63
+ * cannot constrain from ModifyDBCluster request fields. */
64
+ export declare function attestProductionDatabaseLifecycle(options: ProductionDatabaseLifecycleAttestationOptions): Promise<ProductionDatabaseDiscovery>;
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PRODUCTION_DATABASE_CLOCK_SKEW_MS = exports.PRODUCTION_DATABASE_BACKUP_MAX_AGE_MS = void 0;
4
+ exports.createProductionDatabaseSafeguardReader = createProductionDatabaseSafeguardReader;
5
+ exports.assertExistingProductionDatabaseSafeguards = assertExistingProductionDatabaseSafeguards;
6
+ exports.attestProductionDatabaseLifecycle = attestProductionDatabaseLifecycle;
7
+ const client_rds_1 = require("@aws-sdk/client-rds");
8
+ const client_ssm_1 = require("@aws-sdk/client-ssm");
9
+ const client_sts_1 = require("@aws-sdk/client-sts");
10
+ const credential_providers_1 = require("@aws-sdk/credential-providers");
11
+ const identity_js_1 = require("../../aws/identity.js");
12
+ const discovery_js_1 = require("../../foundation/discovery.js");
13
+ exports.PRODUCTION_DATABASE_BACKUP_MAX_AGE_MS = 24 * 60 * 60 * 1_000;
14
+ exports.PRODUCTION_DATABASE_CLOCK_SKEW_MS = 5 * 60 * 1_000;
15
+ const AWS_READ_TIMEOUT_MS = 20_000;
16
+ function exactString(value) {
17
+ return typeof value === 'string' && value === value.trim() && value
18
+ ? value
19
+ : undefined;
20
+ }
21
+ function withReadTimeout(operation) {
22
+ const controller = new AbortController();
23
+ const timeout = setTimeout(() => controller.abort(), AWS_READ_TIMEOUT_MS);
24
+ timeout.unref();
25
+ return operation(controller.signal).finally(() => clearTimeout(timeout));
26
+ }
27
+ function narrowCluster(cluster) {
28
+ return {
29
+ backupRetentionPeriod: cluster.BackupRetentionPeriod,
30
+ clusterArn: cluster.DBClusterArn,
31
+ clusterIdentifier: cluster.DBClusterIdentifier,
32
+ deletionProtection: cluster.DeletionProtection,
33
+ latestRestorableTime: cluster.LatestRestorableTime,
34
+ maxCapacity: cluster.ServerlessV2ScalingConfiguration?.MaxCapacity,
35
+ minCapacity: cluster.ServerlessV2ScalingConfiguration?.MinCapacity,
36
+ status: cluster.Status,
37
+ };
38
+ }
39
+ function createProductionDatabaseSafeguardReader(options) {
40
+ const profile = options.profile?.trim();
41
+ const clientOptions = {
42
+ ...(profile
43
+ ? {
44
+ credentials: (0, credential_providers_1.fromIni)({
45
+ ...(options.configFilepath
46
+ ? { configFilepath: options.configFilepath }
47
+ : {}),
48
+ ...(options.credentialsFilepath
49
+ ? { filepath: options.credentialsFilepath }
50
+ : {}),
51
+ profile,
52
+ }),
53
+ }
54
+ : {}),
55
+ maxAttempts: 2,
56
+ region: options.region,
57
+ };
58
+ const ssm = new client_ssm_1.SSMClient({
59
+ ...clientOptions,
60
+ endpoint: (0, identity_js_1.canonicalAwsRegionalEndpoint)('ssm', options.region),
61
+ });
62
+ const rds = new client_rds_1.RDSClient({
63
+ ...clientOptions,
64
+ endpoint: (0, identity_js_1.canonicalAwsRegionalEndpoint)('rds', options.region),
65
+ });
66
+ const sts = new client_sts_1.STSClient({
67
+ ...clientOptions,
68
+ endpoint: (0, identity_js_1.canonicalStsEndpoint)(options.region),
69
+ });
70
+ const clusterIdName = (0, discovery_js_1.foundationSsmPath)(options.stage, 'databaseClusterId');
71
+ const clusterArnName = (0, discovery_js_1.foundationSsmPath)(options.stage, 'databaseClusterArn');
72
+ return {
73
+ describeCluster: async (clusterIdentifier) => {
74
+ const response = await withReadTimeout((abortSignal) => rds.send(new client_rds_1.DescribeDBClustersCommand({
75
+ DBClusterIdentifier: clusterIdentifier,
76
+ }), { abortSignal }));
77
+ const clusters = response.DBClusters ?? [];
78
+ if (clusters.length > 1) {
79
+ throw new Error('Production Foundation discovery resolved more than one Aurora cluster.');
80
+ }
81
+ return clusters[0] ? narrowCluster(clusters[0]) : undefined;
82
+ },
83
+ destroy: () => {
84
+ ssm.destroy();
85
+ rds.destroy();
86
+ sts.destroy();
87
+ },
88
+ readCallerIdentity: async () => {
89
+ const response = await withReadTimeout((abortSignal) => sts.send(new client_sts_1.GetCallerIdentityCommand({}), { abortSignal }));
90
+ return { accountId: response.Account, arn: response.Arn };
91
+ },
92
+ readDiscovery: async () => {
93
+ const response = await withReadTimeout((abortSignal) => ssm.send(new client_ssm_1.GetParametersCommand({
94
+ Names: [clusterArnName, clusterIdName],
95
+ WithDecryption: false,
96
+ }), { abortSignal }));
97
+ const values = new Map((response.Parameters ?? []).map((parameter) => [
98
+ parameter.Name ?? '',
99
+ exactString(parameter.Value),
100
+ ]));
101
+ const invalid = new Set(response.InvalidParameters ?? []);
102
+ const clusterArn = values.get(clusterArnName);
103
+ const clusterIdentifier = values.get(clusterIdName);
104
+ const arnAbsent = invalid.has(clusterArnName) && !clusterArn;
105
+ const identifierAbsent = invalid.has(clusterIdName) && !clusterIdentifier;
106
+ if (arnAbsent && identifierAbsent)
107
+ return { state: 'absent' };
108
+ if (!clusterArn || !clusterIdentifier || invalid.size > 0) {
109
+ throw new Error('Production Foundation database discovery is partial or malformed; deployment is blocked.');
110
+ }
111
+ return {
112
+ clusterArn,
113
+ clusterIdentifier,
114
+ state: 'existing',
115
+ };
116
+ },
117
+ };
118
+ }
119
+ function parseClusterArn(value) {
120
+ const match = /^arn:(?:aws|aws-cn|aws-us-gov):rds:([^:]+):(\d{12}):cluster:([A-Za-z0-9][A-Za-z0-9-]{0,62})$/u.exec(value);
121
+ return match?.[1] && match[2] && match[3]
122
+ ? {
123
+ accountId: match[2],
124
+ clusterIdentifier: match[3],
125
+ region: match[1],
126
+ }
127
+ : undefined;
128
+ }
129
+ function assertExistingProductionDatabaseSafeguards(options) {
130
+ const discoveredArn = parseClusterArn(options.discovery.clusterArn);
131
+ if (!discoveredArn ||
132
+ discoveredArn.accountId !== options.expectedAccountId ||
133
+ discoveredArn.region !== options.expectedRegion ||
134
+ discoveredArn.clusterIdentifier !== options.discovery.clusterIdentifier) {
135
+ throw new Error('Production Foundation database discovery does not match the committed account, Region, and cluster identity.');
136
+ }
137
+ const cluster = options.cluster;
138
+ if (!cluster ||
139
+ cluster.clusterArn !== options.discovery.clusterArn ||
140
+ cluster.clusterIdentifier !== options.discovery.clusterIdentifier) {
141
+ throw new Error('Production Foundation database identity does not match canonical discovery.');
142
+ }
143
+ if (cluster.status !== 'available') {
144
+ throw new Error(`Production Foundation database must be available before deployment; observed ${cluster.status ?? 'missing'}.`);
145
+ }
146
+ if (cluster.deletionProtection !== true) {
147
+ throw new Error('Production Foundation database deletion protection must remain enabled before deployment.');
148
+ }
149
+ if (!Number.isInteger(cluster.backupRetentionPeriod) ||
150
+ (cluster.backupRetentionPeriod ?? 0) < 30) {
151
+ throw new Error('Production Foundation database backup retention must remain at least 30 days before deployment.');
152
+ }
153
+ const latest = cluster.latestRestorableTime?.getTime();
154
+ const now = options.now.getTime();
155
+ if (latest === undefined ||
156
+ !Number.isFinite(latest) ||
157
+ latest > now + exports.PRODUCTION_DATABASE_CLOCK_SKEW_MS ||
158
+ now - latest > exports.PRODUCTION_DATABASE_BACKUP_MAX_AGE_MS) {
159
+ throw new Error('Production Foundation database requires a recent latest-restorable backup signal before deployment.');
160
+ }
161
+ }
162
+ function assertExactProductionDatabaseCapacity(cluster, expected) {
163
+ if (cluster.minCapacity !== expected.min ||
164
+ cluster.maxCapacity !== expected.max) {
165
+ throw new Error(`Production Foundation database Aurora capacity must equal the committed profile ${expected.min}-${expected.max} ACUs after deployment; observed ${cluster.minCapacity ?? 'missing'}-${cluster.maxCapacity ?? 'missing'}.`);
166
+ }
167
+ }
168
+ /** Read-only lifecycle boundary attestation. Native SST remains the deployment
169
+ * engine; this verifies only the protected production properties that IAM
170
+ * cannot constrain from ModifyDBCluster request fields. */
171
+ async function attestProductionDatabaseLifecycle(options) {
172
+ const reader = options.reader ??
173
+ createProductionDatabaseSafeguardReader({
174
+ ...(options.configFilepath
175
+ ? { configFilepath: options.configFilepath }
176
+ : {}),
177
+ ...(options.credentialsFilepath
178
+ ? { credentialsFilepath: options.credentialsFilepath }
179
+ : {}),
180
+ ...(options.profile ? { profile: options.profile } : {}),
181
+ region: options.expectedRegion,
182
+ stage: 'production',
183
+ });
184
+ try {
185
+ const caller = await reader.readCallerIdentity();
186
+ if (caller.accountId !== options.expectedAccountId ||
187
+ typeof caller.arn !== 'string' ||
188
+ !(0, identity_js_1.matchesExpectedAssumedRoleArn)(options.expectedAccountId, caller.arn, options.expectedRoleArn)) {
189
+ throw new Error('Production Foundation database attestation caller does not match the committed account and exact deployment role.');
190
+ }
191
+ const discovery = await reader.readDiscovery();
192
+ if (discovery.state === 'absent') {
193
+ if (options.requireExisting) {
194
+ throw new Error('Production Foundation database discovery is absent after native deployment.');
195
+ }
196
+ return discovery;
197
+ }
198
+ if (options.priorDiscovery?.state === 'existing' &&
199
+ (options.priorDiscovery.clusterArn !== discovery.clusterArn ||
200
+ options.priorDiscovery.clusterIdentifier !==
201
+ discovery.clusterIdentifier)) {
202
+ throw new Error('Production Foundation database identity changed during native deployment.');
203
+ }
204
+ const cluster = await reader.describeCluster(discovery.clusterIdentifier);
205
+ assertExistingProductionDatabaseSafeguards({
206
+ cluster,
207
+ discovery,
208
+ expectedAccountId: options.expectedAccountId,
209
+ expectedRegion: options.expectedRegion,
210
+ now: options.now,
211
+ });
212
+ if (options.expectedCapacity && cluster) {
213
+ assertExactProductionDatabaseCapacity(cluster, options.expectedCapacity);
214
+ }
215
+ return discovery;
216
+ }
217
+ finally {
218
+ reader.destroy();
219
+ }
220
+ }
221
+ //# sourceMappingURL=production-database-safeguard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-database-safeguard.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/foundation-profile-preflight/production-database-safeguard.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/schema",
3
3
  "version": 2,
4
4
  "title": "Empire Builder Kit production Foundation profile preflight",
5
- "description": "Verify the pinned Aurora Serverless engine is orderable in the selected Region before Foundation mutation.",
5
+ "description": "Verify the pinned Aurora Serverless engine is orderable and an existing production Foundation database retains its canonical identity, deletion protection, backup retention, and recent restore signal before native SST mutation.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
8
  "properties": {
@@ -22,11 +22,6 @@
22
22
  "pattern": "^arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role/[A-Za-z0-9+=,.@_/-]{1,512}$",
23
23
  "description": "Exact temporary-session IAM role expected for local governed deployment. This is verified against STS before mutation."
24
24
  },
25
- "localProductionConfirmation": {
26
- "type": "string",
27
- "maxLength": 256,
28
- "description": "One-use local starter production confirmation: <action>:production:<account>:<region>:<source-commit>. It is never forwarded to SST."
29
- },
30
25
  "region": {
31
26
  "type": "string",
32
27
  "pattern": "^[a-z]{2}(-gov)?-[a-z]+-[0-9]$",
@@ -1,5 +1,7 @@
1
+ import { DescribeParametersCommand, type DescribeParametersCommandInput, type DescribeParametersCommandOutput } from '@aws-sdk/client-ssm';
1
2
  import { type PromiseExecutor } from '@nx/devkit';
2
- interface FoundationRemovePreflightOptions {
3
+ export interface FoundationRemovePreflightOptions {
4
+ expectedRoleArn?: string;
3
5
  profile?: string;
4
6
  region?: string;
5
7
  stage: string;
@@ -9,5 +11,13 @@ export declare function evaluateFoundationRemoval(foundationStage: string, regis
9
11
  success: boolean;
10
12
  };
11
13
  export declare function productSliceRegistrationName(foundationStage: string, parameterName: string | undefined): string;
14
+ type DescribeParametersPage = Pick<DescribeParametersCommandOutput, 'NextToken' | 'Parameters'>;
15
+ export interface FoundationRemovePreflightDependencies {
16
+ sendCommand?: (command: DescribeParametersCommand) => Promise<DescribeParametersPage>;
17
+ }
18
+ export declare function inspectProductSliceRegistrations(foundationStage: string, fetchPage: (input: DescribeParametersCommandInput) => Promise<DescribeParametersPage>): Promise<string[]>;
19
+ export declare function runFoundationRemovePreflight(options: FoundationRemovePreflightOptions, dependencies?: FoundationRemovePreflightDependencies): Promise<{
20
+ success: boolean;
21
+ }>;
12
22
  declare const executor: PromiseExecutor<FoundationRemovePreflightOptions>;
13
23
  export default executor;