@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.
- package/NOTICE +6 -0
- package/README.md +113 -3
- package/executors.json +30 -0
- package/package.json +84 -6
- package/src/api-contract/baseline-update.d.ts +82 -0
- package/src/api-contract/baseline-update.js +225 -0
- package/src/api-contract/baseline-update.js.map +1 -0
- package/src/api-contract/compatibility.d.ts +30 -0
- package/src/api-contract/compatibility.js +643 -0
- package/src/api-contract/compatibility.js.map +1 -0
- package/src/api-contract/contract-graph.d.ts +35 -0
- package/src/api-contract/contract-graph.js +141 -0
- package/src/api-contract/contract-graph.js.map +1 -0
- package/src/api-contract/evidence.d.ts +23 -0
- package/src/api-contract/evidence.js +87 -0
- package/src/api-contract/evidence.js.map +1 -0
- package/src/api-contract/index.d.ts +6 -0
- package/src/api-contract/index.js +10 -0
- package/src/api-contract/index.js.map +1 -0
- package/src/api-contract/model.d.ts +144 -0
- package/src/api-contract/model.fixtures.d.ts +2 -0
- package/src/api-contract/model.fixtures.js +81 -0
- package/src/api-contract/model.fixtures.js.map +1 -0
- package/src/api-contract/model.js +993 -0
- package/src/api-contract/model.js.map +1 -0
- package/src/api-contract/rollout.d.ts +32 -0
- package/src/api-contract/rollout.js +88 -0
- package/src/api-contract/rollout.js.map +1 -0
- package/src/authorization/compatibility.d.ts +62 -0
- package/src/authorization/compatibility.js +175 -0
- package/src/authorization/compatibility.js.map +1 -0
- package/src/authorization/index.d.ts +1 -0
- package/src/authorization/index.js +5 -0
- package/src/authorization/index.js.map +1 -0
- package/src/blueprints/execution.d.ts +25 -1
- package/src/blueprints/execution.js +246 -83
- package/src/blueprints/execution.js.map +1 -1
- package/src/blueprints/external-sandbox.d.ts +53 -0
- package/src/blueprints/external-sandbox.js +1182 -0
- package/src/blueprints/external-sandbox.js.map +1 -0
- package/src/blueprints/manifest.d.ts +42 -2
- package/src/blueprints/manifest.js +82 -27
- package/src/blueprints/manifest.js.map +1 -1
- package/src/blueprints/resolver.d.ts +14 -5
- package/src/blueprints/resolver.js +228 -68
- package/src/blueprints/resolver.js.map +1 -1
- package/src/cli/agent-command.d.ts +30 -0
- package/src/cli/agent-command.js +204 -0
- package/src/cli/agent-command.js.map +1 -0
- package/src/cli/agent-runtime.d.ts +25 -0
- package/src/cli/agent-runtime.js +488 -0
- package/src/cli/agent-runtime.js.map +1 -0
- package/src/cli/blueprint-authority.d.ts +9 -0
- package/src/cli/blueprint-authority.js +43 -0
- package/src/cli/blueprint-authority.js.map +1 -0
- package/src/cli/blueprint-command.d.ts +24 -0
- package/src/cli/blueprint-command.js +63 -0
- package/src/cli/blueprint-command.js.map +1 -0
- package/src/cli/bootstrap.d.ts +31 -0
- package/src/cli/bootstrap.js +165 -0
- package/src/cli/bootstrap.js.map +1 -0
- package/src/cli/dev-command.d.ts +92 -0
- package/src/cli/dev-command.js +561 -0
- package/src/cli/dev-command.js.map +1 -0
- package/src/cli/main.d.ts +131 -0
- package/src/cli/main.js +1199 -0
- package/src/cli/main.js.map +1 -0
- package/src/cli/output.d.ts +19 -0
- package/src/cli/output.js +51 -0
- package/src/cli/output.js.map +1 -0
- package/src/cli/personal-secret-runtime.d.ts +81 -0
- package/src/cli/personal-secret-runtime.js +567 -0
- package/src/cli/personal-secret-runtime.js.map +1 -0
- package/src/cli/secret-terminal.d.ts +12 -0
- package/src/cli/secret-terminal.js +128 -0
- package/src/cli/secret-terminal.js.map +1 -0
- package/src/container-images.d.ts +1 -0
- package/src/container-images.js +5 -0
- package/src/container-images.js.map +1 -0
- package/src/data-lifecycle/index.d.ts +3 -0
- package/src/data-lifecycle/index.js +7 -0
- package/src/data-lifecycle/index.js.map +1 -0
- package/src/data-lifecycle/model.d.ts +172 -0
- package/src/data-lifecycle/model.fixtures.d.ts +2 -0
- package/src/data-lifecycle/model.fixtures.js +244 -0
- package/src/data-lifecycle/model.fixtures.js.map +1 -0
- package/src/data-lifecycle/model.js +95 -0
- package/src/data-lifecycle/model.js.map +1 -0
- package/src/data-lifecycle/sensitive-artifacts.d.ts +28 -0
- package/src/data-lifecycle/sensitive-artifacts.js +146 -0
- package/src/data-lifecycle/sensitive-artifacts.js.map +1 -0
- package/src/data-lifecycle/validation.d.ts +32 -0
- package/src/data-lifecycle/validation.js +837 -0
- package/src/data-lifecycle/validation.js.map +1 -0
- package/src/database-retirement/contract.d.ts +68 -0
- package/src/database-retirement/contract.js +166 -0
- package/src/database-retirement/contract.js.map +1 -0
- package/src/database-retirement/index.d.ts +1 -0
- package/src/database-retirement/index.js +5 -0
- package/src/database-retirement/index.js.map +1 -0
- package/src/deterministic-order.d.ts +2 -0
- package/src/deterministic-order.js +7 -0
- package/src/deterministic-order.js.map +1 -0
- package/src/developer-agent/context.d.ts +27 -0
- package/src/developer-agent/context.js +497 -0
- package/src/developer-agent/context.js.map +1 -0
- package/src/developer-agent/generator-planning.d.ts +34 -0
- package/src/developer-agent/generator-planning.js +645 -0
- package/src/developer-agent/generator-planning.js.map +1 -0
- package/src/developer-agent/generator-preview.d.ts +8 -0
- package/src/developer-agent/generator-preview.js +650 -0
- package/src/developer-agent/generator-preview.js.map +1 -0
- package/src/developer-agent/git-inspection.d.ts +108 -0
- package/src/developer-agent/git-inspection.js +815 -0
- package/src/developer-agent/git-inspection.js.map +1 -0
- package/src/developer-agent/handoff.d.ts +43 -0
- package/src/developer-agent/handoff.js +698 -0
- package/src/developer-agent/handoff.js.map +1 -0
- package/src/developer-agent/index.d.ts +10 -0
- package/src/developer-agent/index.js +14 -0
- package/src/developer-agent/index.js.map +1 -0
- package/src/developer-agent/model.d.ts +481 -0
- package/src/developer-agent/model.js +143 -0
- package/src/developer-agent/model.js.map +1 -0
- package/src/developer-agent/operation-registry.d.ts +45 -0
- package/src/developer-agent/operation-registry.js +1255 -0
- package/src/developer-agent/operation-registry.js.map +1 -0
- package/src/developer-agent/ordering.d.ts +9 -0
- package/src/developer-agent/ordering.js +15 -0
- package/src/developer-agent/ordering.js.map +1 -0
- package/src/developer-agent/planning.d.ts +18 -0
- package/src/developer-agent/planning.js +447 -0
- package/src/developer-agent/planning.js.map +1 -0
- package/src/developer-agent/preview-changes.d.ts +26 -0
- package/src/developer-agent/preview-changes.js +203 -0
- package/src/developer-agent/preview-changes.js.map +1 -0
- package/src/developer-agent/preview-source.d.ts +2 -0
- package/src/developer-agent/preview-source.js +16 -0
- package/src/developer-agent/preview-source.js.map +1 -0
- package/src/developer-agent/validation.d.ts +18 -0
- package/src/developer-agent/validation.js +2617 -0
- package/src/developer-agent/validation.js.map +1 -0
- package/src/developer-agent/workspace-inspection.d.ts +20 -0
- package/src/developer-agent/workspace-inspection.js +1134 -0
- package/src/developer-agent/workspace-inspection.js.map +1 -0
- package/src/developer-agent/workspace-path.d.ts +6 -0
- package/src/developer-agent/workspace-path.js +22 -0
- package/src/developer-agent/workspace-path.js.map +1 -0
- package/src/executors/blueprint-trust/blueprint-trust.d.ts +29 -0
- package/src/executors/blueprint-trust/blueprint-trust.js +115 -0
- package/src/executors/blueprint-trust/blueprint-trust.js.map +1 -0
- package/src/executors/blueprint-trust/schema.json +27 -0
- package/src/executors/blueprint-verification/blueprint-verification.d.ts +13 -0
- package/src/executors/blueprint-verification/blueprint-verification.js +110 -0
- package/src/executors/blueprint-verification/blueprint-verification.js.map +1 -0
- package/src/executors/blueprint-verification/schema.json +44 -0
- package/src/executors/deployment-plan/deployment-plan.js +1 -0
- package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
- package/src/executors/dev-doctor/dev-doctor.d.ts +19 -5
- package/src/executors/dev-doctor/dev-doctor.js +186 -32
- package/src/executors/dev-doctor/dev-doctor.js.map +1 -1
- package/src/executors/dev-doctor/schema.json +1 -6
- package/src/executors/dev-setup/dev-setup.d.ts +7 -1
- package/src/executors/dev-setup/dev-setup.js +14 -3
- package/src/executors/dev-setup/dev-setup.js.map +1 -1
- package/src/executors/developer-context/developer-context.d.ts +38 -0
- package/src/executors/developer-context/developer-context.js +78 -0
- package/src/executors/developer-context/developer-context.js.map +1 -0
- package/src/executors/developer-context/schema.json +87 -0
- package/src/executors/fleet/fleet.d.ts +12 -43
- package/src/executors/fleet/fleet.js +120 -500
- package/src/executors/fleet/fleet.js.map +1 -1
- package/src/executors/fleet/schema.json +64 -14
- package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
- package/src/executors/github-bootstrap/schema.json +5 -0
- package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +144 -0
- package/src/executors/infrastructure-plan/infrastructure-plan.js +3320 -0
- package/src/executors/infrastructure-plan/infrastructure-plan.js.map +1 -0
- package/src/executors/infrastructure-plan/schema.json +78 -0
- package/src/executors/secret-guardrails/schema.json +6 -0
- package/src/executors/secret-guardrails/secret-guardrails.d.ts +3 -0
- package/src/executors/secret-guardrails/secret-guardrails.js +44 -0
- package/src/executors/secret-guardrails/secret-guardrails.js.map +1 -0
- package/src/executors/secret-metadata/schema.json +31 -0
- package/src/executors/secret-metadata/secret-metadata.d.ts +32 -0
- package/src/executors/secret-metadata/secret-metadata.js +131 -0
- package/src/executors/secret-metadata/secret-metadata.js.map +1 -0
- package/src/executors/sst-lifecycle/logging-preflight.d.ts +17 -0
- package/src/executors/sst-lifecycle/logging-preflight.js +196 -0
- package/src/executors/sst-lifecycle/logging-preflight.js.map +1 -0
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +23 -3
- package/src/executors/sst-lifecycle/run-sst-command.js +113 -10
- package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
- package/src/executors/sst-lifecycle/schema.json +9 -5
- package/src/executors/sst-lifecycle/secret-preflight.d.ts +25 -0
- package/src/executors/sst-lifecycle/secret-preflight.js +119 -0
- package/src/executors/sst-lifecycle/secret-preflight.js.map +1 -0
- package/src/foundation/discovery.d.ts +17 -1
- package/src/foundation/discovery.js +16 -1
- package/src/foundation/discovery.js.map +1 -1
- package/src/foundation/index.d.ts +3 -0
- package/src/foundation/index.js +3 -0
- package/src/foundation/index.js.map +1 -1
- package/src/foundation/local-database-contract.d.ts +1 -0
- package/src/foundation/local-database-contract.js +3 -0
- package/src/foundation/local-database-contract.js.map +1 -1
- package/src/foundation/logging-preflight.d.ts +30 -0
- package/src/foundation/logging-preflight.js +138 -0
- package/src/foundation/logging-preflight.js.map +1 -0
- package/src/foundation/logging.d.ts +70 -0
- package/src/foundation/logging.js +133 -0
- package/src/foundation/logging.js.map +1 -0
- package/src/foundation/preflight.d.ts +9 -0
- package/src/foundation/preflight.js +58 -2
- package/src/foundation/preflight.js.map +1 -1
- package/src/foundation/provision-database-bindings.d.ts +9 -1
- package/src/foundation/provision-database-bindings.js +25 -5
- package/src/foundation/provision-database-bindings.js.map +1 -1
- package/src/foundation/provision-logical-database.d.ts +10 -2
- package/src/foundation/provision-logical-database.js +68 -113
- package/src/foundation/provision-logical-database.js.map +1 -1
- package/src/foundation/router-origin-proof.d.ts +2 -0
- package/src/foundation/router-origin-proof.js +25 -0
- package/src/foundation/router-origin-proof.js.map +1 -0
- package/src/foundation/stages.d.ts +1 -0
- package/src/foundation/stages.js +9 -1
- package/src/foundation/stages.js.map +1 -1
- package/src/frontend-security/index.d.ts +1 -0
- package/src/frontend-security/index.js +5 -0
- package/src/frontend-security/index.js.map +1 -0
- package/src/frontend-security/security-headers.d.ts +50 -0
- package/src/frontend-security/security-headers.js +418 -0
- package/src/frontend-security/security-headers.js.map +1 -0
- package/src/generators/feature-registry.d.ts +13 -0
- package/src/generators/feature-registry.js +73 -0
- package/src/generators/feature-registry.js.map +1 -0
- package/src/generators/function/function.d.ts +1 -1
- package/src/generators/function/function.js +51 -6
- package/src/generators/function/function.js.map +1 -1
- package/src/generators/function/schema.d.ts +1 -0
- package/src/generators/function/schema.json +6 -1
- package/src/generators/logging-registry.d.ts +13 -0
- package/src/generators/logging-registry.js +62 -0
- package/src/generators/logging-registry.js.map +1 -0
- package/src/generators/post-generation-install.d.ts +67 -0
- package/src/generators/post-generation-install.js +3308 -0
- package/src/generators/post-generation-install.js.map +1 -0
- package/src/generators/preset/generator.js +3 -0
- package/src/generators/preset/generator.js.map +1 -1
- package/src/generators/preset/tool-versions.d.ts +18 -0
- package/src/generators/preset/tool-versions.js +22 -0
- package/src/generators/preset/tool-versions.js.map +1 -0
- package/src/generators/preset/workspace-files-developer-agent.d.ts +14 -0
- package/src/generators/preset/workspace-files-developer-agent.js +511 -0
- package/src/generators/preset/workspace-files-developer-agent.js.map +1 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.d.ts +6 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.js +406 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +1 -0
- package/src/generators/preset/workspace-files-performance-cost.d.ts +66 -0
- package/src/generators/preset/workspace-files-performance-cost.js +866 -0
- package/src/generators/preset/workspace-files-performance-cost.js.map +1 -0
- package/src/generators/preset/workspace-files-performance-load.d.ts +73 -0
- package/src/generators/preset/workspace-files-performance-load.js +801 -0
- package/src/generators/preset/workspace-files-performance-load.js.map +1 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.d.ts +9 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.js +1102 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.js.map +1 -0
- package/src/generators/preset/workspace-files.d.ts +14 -1
- package/src/generators/preset/workspace-files.js +8189 -245
- package/src/generators/preset/workspace-files.js.map +1 -1
- package/src/generators/repository-policy/repository-policy.js +3 -47
- package/src/generators/repository-policy/repository-policy.js.map +1 -1
- package/src/generators/slice/built-in-plan-api-contract-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-api-contract-files.js +2656 -0
- package/src/generators/slice/built-in-plan-api-contract-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-api-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-api-files.js +1186 -0
- package/src/generators/slice/built-in-plan-api-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-async-work-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-async-work-files.js +7903 -0
- package/src/generators/slice/built-in-plan-async-work-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-authorization-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-authorization-files.js +2314 -0
- package/src/generators/slice/built-in-plan-authorization-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +559 -0
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.js +1101 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +249 -0
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-files.js +1530 -0
- package/src/generators/slice/built-in-plan-data-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js +750 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +828 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-retention-job-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-retention-job-files.js +2604 -0
- package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +144 -0
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-rights-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-rights-files.js +4628 -0
- package/src/generators/slice/built-in-plan-data-rights-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-database-lifecycle-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js +1901 -0
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +485 -0
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-foundation-files.js +184 -0
- package/src/generators/slice/built-in-plan-foundation-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-frontend-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-frontend-files.js +2233 -0
- package/src/generators/slice/built-in-plan-frontend-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-infrastructure-files.js +3038 -0
- package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +312 -0
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-metadata-files.d.ts +3 -0
- package/src/generators/slice/built-in-plan-metadata-files.js +219 -0
- package/src/generators/slice/built-in-plan-metadata-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-operations-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-operations-files.js +630 -0
- package/src/generators/slice/built-in-plan-operations-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-performance-files.d.ts +3 -0
- package/src/generators/slice/built-in-plan-performance-files.js +3293 -0
- package/src/generators/slice/built-in-plan-performance-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-project-files.d.ts +3 -0
- package/src/generators/slice/built-in-plan-project-files.js +979 -0
- package/src/generators/slice/built-in-plan-project-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-release-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-release-files.js +6387 -0
- package/src/generators/slice/built-in-plan-release-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-reliability-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-reliability-files.js +4499 -0
- package/src/generators/slice/built-in-plan-reliability-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-secret-runtime-files.js +1004 -0
- package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-shared.d.ts +53 -0
- package/src/generators/slice/built-in-plan-shared.js +113 -0
- package/src/generators/slice/built-in-plan-shared.js.map +1 -0
- package/src/generators/slice/built-in-plan-testing-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-testing-files.js +2356 -0
- package/src/generators/slice/built-in-plan-testing-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-verification-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-verification-files.js +358 -0
- package/src/generators/slice/built-in-plan-verification-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-web-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-web-files.js +430 -0
- package/src/generators/slice/built-in-plan-web-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-workload-role-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-workload-role-files.js +2356 -0
- package/src/generators/slice/built-in-plan-workload-role-files.js.map +1 -0
- package/src/generators/slice/built-in-plan.d.ts +8 -0
- package/src/generators/slice/built-in-plan.js +264 -0
- package/src/generators/slice/built-in-plan.js.map +1 -0
- package/src/generators/slice/schema.json +1 -1
- package/src/generators/slice/slice.d.ts +1 -22
- package/src/generators/slice/slice.js +185 -1510
- package/src/generators/slice/slice.js.map +1 -1
- package/src/generators/upgrade/schema.d.ts +2 -0
- package/src/generators/upgrade/schema.json +11 -1
- package/src/generators/upgrade/upgrade.d.ts +51 -1
- package/src/generators/upgrade/upgrade.js +820 -82
- package/src/generators/upgrade/upgrade.js.map +1 -1
- package/src/generators/workload/frozen-container.d.ts +8 -0
- package/src/generators/workload/frozen-container.js +36 -0
- package/src/generators/workload/frozen-container.js.map +1 -0
- package/src/generators/workload/performance-registration.d.ts +32 -0
- package/src/generators/workload/performance-registration.js +226 -0
- package/src/generators/workload/performance-registration.js.map +1 -0
- package/src/generators/workload/reliability-registration.d.ts +16 -0
- package/src/generators/workload/reliability-registration.js +150 -0
- package/src/generators/workload/reliability-registration.js.map +1 -0
- package/src/generators/workload/schema.d.ts +1 -0
- package/src/generators/workload/schema.json +6 -1
- package/src/generators/workload/service-performance-files.d.ts +4 -0
- package/src/generators/workload/service-performance-files.js +1846 -0
- package/src/generators/workload/service-performance-files.js.map +1 -0
- package/src/generators/workload/workload.d.ts +3 -2
- package/src/generators/workload/workload.js +1083 -18
- package/src/generators/workload/workload.js.map +1 -1
- package/src/git-policy/action-pins.d.ts +10 -0
- package/src/git-policy/action-pins.js +10 -0
- package/src/git-policy/action-pins.js.map +1 -1
- package/src/git-policy/github-bootstrap.d.ts +14 -1
- package/src/git-policy/github-bootstrap.js +274 -46
- package/src/git-policy/github-bootstrap.js.map +1 -1
- package/src/index.d.ts +2 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -1
- package/src/infrastructure-change/convergence.d.ts +13 -0
- package/src/infrastructure-change/convergence.js +85 -0
- package/src/infrastructure-change/convergence.js.map +1 -0
- package/src/infrastructure-change/drift.d.ts +13 -0
- package/src/infrastructure-change/drift.js +112 -0
- package/src/infrastructure-change/drift.js.map +1 -0
- package/src/infrastructure-change/index.d.ts +7 -0
- package/src/infrastructure-change/index.js +11 -0
- package/src/infrastructure-change/index.js.map +1 -0
- package/src/infrastructure-change/model.d.ts +253 -0
- package/src/infrastructure-change/model.js +28 -0
- package/src/infrastructure-change/model.js.map +1 -0
- package/src/infrastructure-change/normalize.d.ts +12 -0
- package/src/infrastructure-change/normalize.js +245 -0
- package/src/infrastructure-change/normalize.js.map +1 -0
- package/src/infrastructure-change/plan.d.ts +40 -0
- package/src/infrastructure-change/plan.js +361 -0
- package/src/infrastructure-change/plan.js.map +1 -0
- package/src/infrastructure-change/risk.d.ts +7 -0
- package/src/infrastructure-change/risk.js +269 -0
- package/src/infrastructure-change/risk.js.map +1 -0
- package/src/infrastructure-change/summary.d.ts +20 -0
- package/src/infrastructure-change/summary.js +130 -0
- package/src/infrastructure-change/summary.js.map +1 -0
- package/src/local-dev/context-discovery.d.ts +2 -0
- package/src/local-dev/context-discovery.js +59 -0
- package/src/local-dev/context-discovery.js.map +1 -0
- package/src/local-dev/contract-validation.d.ts +15 -0
- package/src/local-dev/contract-validation.js +84 -0
- package/src/local-dev/contract-validation.js.map +1 -0
- package/src/local-dev/contracts.d.ts +10 -1
- package/src/local-dev/contracts.js +57 -5
- package/src/local-dev/contracts.js.map +1 -1
- package/src/local-dev/control-contract.d.ts +67 -0
- package/src/local-dev/control-contract.js +180 -0
- package/src/local-dev/control-contract.js.map +1 -0
- package/src/local-dev/dev-command-core.d.ts +60 -0
- package/src/local-dev/dev-command-core.js +89 -0
- package/src/local-dev/dev-command-core.js.map +1 -0
- package/src/local-dev/effects.d.ts +16 -0
- package/src/local-dev/effects.js +63 -0
- package/src/local-dev/effects.js.map +1 -0
- package/src/local-dev/environment-inspector.d.ts +125 -0
- package/src/local-dev/environment-inspector.js +687 -0
- package/src/local-dev/environment-inspector.js.map +1 -0
- package/src/local-dev/environment-state.d.ts +113 -0
- package/src/local-dev/environment-state.js +463 -0
- package/src/local-dev/environment-state.js.map +1 -0
- package/src/local-dev/errors.d.ts +6 -0
- package/src/local-dev/errors.js +41 -0
- package/src/local-dev/errors.js.map +1 -0
- package/src/local-dev/fleet-client.d.ts +33 -0
- package/src/local-dev/fleet-client.js +156 -0
- package/src/local-dev/fleet-client.js.map +1 -0
- package/src/local-dev/fleet-configuration.d.ts +13 -0
- package/src/local-dev/fleet-configuration.js +71 -0
- package/src/local-dev/fleet-configuration.js.map +1 -0
- package/src/local-dev/fleet-inventory.d.ts +56 -0
- package/src/local-dev/fleet-inventory.js +469 -0
- package/src/local-dev/fleet-inventory.js.map +1 -0
- package/src/local-dev/fleet-ipc.d.ts +28 -0
- package/src/local-dev/fleet-ipc.js +267 -0
- package/src/local-dev/fleet-ipc.js.map +1 -0
- package/src/local-dev/fleet-launcher.d.ts +53 -0
- package/src/local-dev/fleet-launcher.js +379 -0
- package/src/local-dev/fleet-launcher.js.map +1 -0
- package/src/local-dev/fleet-lock.d.ts +41 -0
- package/src/local-dev/fleet-lock.js +135 -0
- package/src/local-dev/fleet-lock.js.map +1 -0
- package/src/local-dev/fleet-logs.d.ts +66 -0
- package/src/local-dev/fleet-logs.js +542 -0
- package/src/local-dev/fleet-logs.js.map +1 -0
- package/src/local-dev/fleet-process.d.ts +50 -0
- package/src/local-dev/fleet-process.js +289 -0
- package/src/local-dev/fleet-process.js.map +1 -0
- package/src/local-dev/fleet-runtime.d.ts +22 -0
- package/src/local-dev/fleet-runtime.js +368 -0
- package/src/local-dev/fleet-runtime.js.map +1 -0
- package/src/local-dev/fleet-session.d.ts +70 -0
- package/src/local-dev/fleet-session.js +301 -0
- package/src/local-dev/fleet-session.js.map +1 -0
- package/src/local-dev/fleet-slice-runner-daemon.d.ts +1 -0
- package/src/local-dev/fleet-slice-runner-daemon.js +21 -0
- package/src/local-dev/fleet-slice-runner-daemon.js.map +1 -0
- package/src/local-dev/fleet-startup.d.ts +22 -0
- package/src/local-dev/fleet-startup.js +114 -0
- package/src/local-dev/fleet-startup.js.map +1 -0
- package/src/local-dev/fleet-state.d.ts +62 -0
- package/src/local-dev/fleet-state.js +297 -0
- package/src/local-dev/fleet-state.js.map +1 -0
- package/src/local-dev/fleet-supervisor-daemon.d.ts +1 -0
- package/src/local-dev/fleet-supervisor-daemon.js +41 -0
- package/src/local-dev/fleet-supervisor-daemon.js.map +1 -0
- package/src/local-dev/fleet-supervisor.d.ts +52 -0
- package/src/local-dev/fleet-supervisor.js +384 -0
- package/src/local-dev/fleet-supervisor.js.map +1 -0
- package/src/local-dev/gateway.js +1 -1
- package/src/local-dev/gateway.js.map +1 -1
- package/src/local-dev/identity.js +4 -6
- package/src/local-dev/identity.js.map +1 -1
- package/src/local-dev/index.d.ts +1 -0
- package/src/local-dev/index.js +1 -0
- package/src/local-dev/index.js.map +1 -1
- package/src/local-dev/local-context.d.ts +62 -0
- package/src/local-dev/local-context.js +299 -0
- package/src/local-dev/local-context.js.map +1 -0
- package/src/local-dev/nx-workspace.d.ts +45 -0
- package/src/local-dev/nx-workspace.js +228 -0
- package/src/local-dev/nx-workspace.js.map +1 -0
- package/src/local-dev/personal-secret-ledger.d.ts +75 -0
- package/src/local-dev/personal-secret-ledger.js +391 -0
- package/src/local-dev/personal-secret-ledger.js.map +1 -0
- package/src/local-dev/personal-stage.d.ts +18 -0
- package/src/local-dev/personal-stage.js +129 -0
- package/src/local-dev/personal-stage.js.map +1 -0
- package/src/local-dev/private-state.d.ts +17 -0
- package/src/local-dev/private-state.js +254 -0
- package/src/local-dev/private-state.js.map +1 -0
- package/src/local-dev/process-identity.d.ts +9 -0
- package/src/local-dev/process-identity.js +79 -0
- package/src/local-dev/process-identity.js.map +1 -0
- package/src/local-dev/runtime-paths.d.ts +17 -0
- package/src/local-dev/runtime-paths.js +33 -0
- package/src/local-dev/runtime-paths.js.map +1 -0
- package/src/local-dev/secret-slice-claim.d.ts +17 -0
- package/src/local-dev/secret-slice-claim.js +75 -0
- package/src/local-dev/secret-slice-claim.js.map +1 -0
- package/src/local-dev/slice-claim.d.ts +36 -0
- package/src/local-dev/slice-claim.js +199 -0
- package/src/local-dev/slice-claim.js.map +1 -0
- package/src/local-dev/slice-runner.d.ts +121 -0
- package/src/local-dev/slice-runner.js +715 -0
- package/src/local-dev/slice-runner.js.map +1 -0
- package/src/local-dev/tls.js +51 -17
- package/src/local-dev/tls.js.map +1 -1
- package/src/ownership/composition.d.ts +5 -2
- package/src/ownership/composition.js +26 -3
- package/src/ownership/composition.js.map +1 -1
- package/src/ownership/hash.d.ts +1 -1
- package/src/ownership/hash.js +3 -1
- package/src/ownership/hash.js.map +1 -1
- package/src/ownership/record.d.ts +32 -1
- package/src/ownership/record.js +139 -2
- package/src/ownership/record.js.map +1 -1
- package/src/performance/cost-collection.d.ts +225 -0
- package/src/performance/cost-collection.js +825 -0
- package/src/performance/cost-collection.js.map +1 -0
- package/src/performance/cost-controls.d.ts +131 -0
- package/src/performance/cost-controls.js +336 -0
- package/src/performance/cost-controls.js.map +1 -0
- package/src/performance/evidence.d.ts +140 -0
- package/src/performance/evidence.js +599 -0
- package/src/performance/evidence.js.map +1 -0
- package/src/performance/index.d.ts +10 -0
- package/src/performance/index.js +14 -0
- package/src/performance/index.js.map +1 -0
- package/src/performance/load-safety.d.ts +84 -0
- package/src/performance/load-safety.js +346 -0
- package/src/performance/load-safety.js.map +1 -0
- package/src/performance/model.d.ts +129 -0
- package/src/performance/model.js +452 -0
- package/src/performance/model.js.map +1 -0
- package/src/performance/pr-artifact-budget.d.ts +42 -0
- package/src/performance/pr-artifact-budget.js +151 -0
- package/src/performance/pr-artifact-budget.js.map +1 -0
- package/src/performance/runner.d.ts +75 -0
- package/src/performance/runner.js +227 -0
- package/src/performance/runner.js.map +1 -0
- package/src/performance/scenario-endpoint.d.ts +1 -0
- package/src/performance/scenario-endpoint.js +5 -0
- package/src/performance/scenario-endpoint.js.map +1 -0
- package/src/performance/scenario.d.ts +193 -0
- package/src/performance/scenario.js +736 -0
- package/src/performance/scenario.js.map +1 -0
- package/src/performance/test-fixtures.d.ts +7 -0
- package/src/performance/test-fixtures.js +169 -0
- package/src/performance/test-fixtures.js.map +1 -0
- package/src/performance/unit-cost.d.ts +105 -0
- package/src/performance/unit-cost.js +364 -0
- package/src/performance/unit-cost.js.map +1 -0
- package/src/release/index.d.ts +4 -0
- package/src/release/index.js +8 -0
- package/src/release/index.js.map +1 -0
- package/src/release/lifecycle.d.ts +132 -0
- package/src/release/lifecycle.js +411 -0
- package/src/release/lifecycle.js.map +1 -0
- package/src/release/manifest.d.ts +148 -0
- package/src/release/manifest.js +503 -0
- package/src/release/manifest.js.map +1 -0
- package/src/release/rollout.d.ts +170 -0
- package/src/release/rollout.js +578 -0
- package/src/release/rollout.js.map +1 -0
- package/src/release/source-authority.d.ts +19 -0
- package/src/release/source-authority.js +195 -0
- package/src/release/source-authority.js.map +1 -0
- package/src/repository-policy/deployment-plan.d.ts +2 -1
- package/src/repository-policy/deployment-plan.js +2 -0
- package/src/repository-policy/deployment-plan.js.map +1 -1
- package/src/repository-policy/policy.d.ts +1 -1
- package/src/repository-policy/policy.js +29 -25
- package/src/repository-policy/policy.js.map +1 -1
- package/src/schemas/aggregate-count-evidence-v1.json +135 -0
- package/src/schemas/api-contract-baseline-v1.json +674 -0
- package/src/schemas/api-contract-compatibility-report-v1.json +126 -0
- package/src/schemas/aws-billing-actual-evidence-v1.json +407 -0
- package/src/schemas/blueprint-v1.json +18 -1
- package/src/schemas/data-lifecycle-policy-v1.json +517 -0
- package/src/schemas/generated-ownership-v2.json +22 -0
- package/src/schemas/performance-policy-v1.json +335 -0
- package/src/schemas/repository-policy-v1.json +1 -0
- package/src/schemas/testing-evidence-quarantine-v1.json +168 -0
- package/src/schemas/testing-evidence-result-v1.json +319 -0
- package/src/secrets/adapters.d.ts +49 -0
- package/src/secrets/adapters.js +184 -0
- package/src/secrets/adapters.js.map +1 -0
- package/src/secrets/aws-control-plane.d.ts +20 -0
- package/src/secrets/aws-control-plane.js +255 -0
- package/src/secrets/aws-control-plane.js.map +1 -0
- package/src/secrets/declaration-verification.d.ts +11 -0
- package/src/secrets/declaration-verification.js +68 -0
- package/src/secrets/declaration-verification.js.map +1 -0
- package/src/secrets/guardrails.d.ts +26 -0
- package/src/secrets/guardrails.js +328 -0
- package/src/secrets/guardrails.js.map +1 -0
- package/src/secrets/index.d.ts +12 -0
- package/src/secrets/index.js +16 -0
- package/src/secrets/index.js.map +1 -0
- package/src/secrets/metadata.d.ts +48 -0
- package/src/secrets/metadata.js +171 -0
- package/src/secrets/metadata.js.map +1 -0
- package/src/secrets/model.d.ts +49 -0
- package/src/secrets/model.js +125 -0
- package/src/secrets/model.js.map +1 -0
- package/src/secrets/operator.d.ts +101 -0
- package/src/secrets/operator.js +229 -0
- package/src/secrets/operator.js.map +1 -0
- package/src/secrets/permissions.d.ts +34 -0
- package/src/secrets/permissions.js +86 -0
- package/src/secrets/permissions.js.map +1 -0
- package/src/secrets/personal-command.d.ts +83 -0
- package/src/secrets/personal-command.js +197 -0
- package/src/secrets/personal-command.js.map +1 -0
- package/src/secrets/personal-ledger.d.ts +21 -0
- package/src/secrets/personal-ledger.js +135 -0
- package/src/secrets/personal-ledger.js.map +1 -0
- package/src/secrets/registry.d.ts +9 -0
- package/src/secrets/registry.js +86 -0
- package/src/secrets/registry.js.map +1 -0
- package/src/secrets/verification.d.ts +18 -0
- package/src/secrets/verification.js +139 -0
- package/src/secrets/verification.js.map +1 -0
- package/src/secrets/workload-access.d.ts +46 -0
- package/src/secrets/workload-access.js +163 -0
- package/src/secrets/workload-access.js.map +1 -0
- package/src/supply-chain/action-pins.d.ts +26 -0
- package/src/supply-chain/action-pins.js +208 -0
- package/src/supply-chain/action-pins.js.map +1 -0
- package/src/supply-chain/blueprint-trust-git.d.ts +130 -0
- package/src/supply-chain/blueprint-trust-git.js +1581 -0
- package/src/supply-chain/blueprint-trust-git.js.map +1 -0
- package/src/supply-chain/blueprint-trust-process.d.ts +4 -0
- package/src/supply-chain/blueprint-trust-process.js +88 -0
- package/src/supply-chain/blueprint-trust-process.js.map +1 -0
- package/src/supply-chain/blueprint-trust.d.ts +354 -0
- package/src/supply-chain/blueprint-trust.js +1558 -0
- package/src/supply-chain/blueprint-trust.js.map +1 -0
- package/src/supply-chain/blueprint-verification-authority.d.ts +62 -0
- package/src/supply-chain/blueprint-verification-authority.js +588 -0
- package/src/supply-chain/blueprint-verification-authority.js.map +1 -0
- package/src/supply-chain/blueprint-verification-execution.d.ts +68 -0
- package/src/supply-chain/blueprint-verification-execution.js +624 -0
- package/src/supply-chain/blueprint-verification-execution.js.map +1 -0
- package/src/supply-chain/build-output.d.ts +35 -0
- package/src/supply-chain/build-output.js +398 -0
- package/src/supply-chain/build-output.js.map +1 -0
- package/src/supply-chain/common.d.ts +21 -0
- package/src/supply-chain/common.js +107 -0
- package/src/supply-chain/common.js.map +1 -0
- package/src/supply-chain/container-artifact-contract.d.ts +23 -0
- package/src/supply-chain/container-artifact-contract.js +208 -0
- package/src/supply-chain/container-artifact-contract.js.map +1 -0
- package/src/supply-chain/container-release.d.ts +119 -0
- package/src/supply-chain/container-release.js +496 -0
- package/src/supply-chain/container-release.js.map +1 -0
- package/src/supply-chain/ecr-applicability.d.ts +19 -0
- package/src/supply-chain/ecr-applicability.js +103 -0
- package/src/supply-chain/ecr-applicability.js.map +1 -0
- package/src/supply-chain/ecr-scanning.d.ts +83 -0
- package/src/supply-chain/ecr-scanning.js +321 -0
- package/src/supply-chain/ecr-scanning.js.map +1 -0
- package/src/supply-chain/ecs-deployed-image.d.ts +85 -0
- package/src/supply-chain/ecs-deployed-image.js +300 -0
- package/src/supply-chain/ecs-deployed-image.js.map +1 -0
- package/src/supply-chain/errors.d.ts +6 -0
- package/src/supply-chain/errors.js +15 -0
- package/src/supply-chain/errors.js.map +1 -0
- package/src/supply-chain/generated-blueprint-trust-command.d.ts +4 -0
- package/src/supply-chain/generated-blueprint-trust-command.js +1362 -0
- package/src/supply-chain/generated-blueprint-trust-command.js.map +1 -0
- package/src/supply-chain/generated-command.d.ts +1 -0
- package/src/supply-chain/generated-command.js +687 -0
- package/src/supply-chain/generated-command.js.map +1 -0
- package/src/supply-chain/generated-container-release-command.d.ts +16 -0
- package/src/supply-chain/generated-container-release-command.js +2087 -0
- package/src/supply-chain/generated-container-release-command.js.map +1 -0
- package/src/supply-chain/generated-ecr-collector-command.d.ts +21 -0
- package/src/supply-chain/generated-ecr-collector-command.js +1338 -0
- package/src/supply-chain/generated-ecr-collector-command.js.map +1 -0
- package/src/supply-chain/generated-files.d.ts +13 -0
- package/src/supply-chain/generated-files.js +401 -0
- package/src/supply-chain/generated-files.js.map +1 -0
- package/src/supply-chain/generated-scanner-command.d.ts +1 -0
- package/src/supply-chain/generated-scanner-command.js +718 -0
- package/src/supply-chain/generated-scanner-command.js.map +1 -0
- package/src/supply-chain/index.d.ts +28 -0
- package/src/supply-chain/index.js +35 -0
- package/src/supply-chain/index.js.map +1 -0
- package/src/supply-chain/inventory.d.ts +79 -0
- package/src/supply-chain/inventory.js +717 -0
- package/src/supply-chain/inventory.js.map +1 -0
- package/src/supply-chain/license-expression.d.ts +7 -0
- package/src/supply-chain/license-expression.js +128 -0
- package/src/supply-chain/license-expression.js.map +1 -0
- package/src/supply-chain/pnpm-toolchain-authority.d.ts +31 -0
- package/src/supply-chain/pnpm-toolchain-authority.js +316 -0
- package/src/supply-chain/pnpm-toolchain-authority.js.map +1 -0
- package/src/supply-chain/policy.d.ts +105 -0
- package/src/supply-chain/policy.js +301 -0
- package/src/supply-chain/policy.js.map +1 -0
- package/src/supply-chain/publication.d.ts +48 -0
- package/src/supply-chain/publication.js +85 -0
- package/src/supply-chain/publication.js.map +1 -0
- package/src/supply-chain/sbom.d.ts +228 -0
- package/src/supply-chain/sbom.js +826 -0
- package/src/supply-chain/sbom.js.map +1 -0
- package/src/supply-chain/scanner.d.ts +77 -0
- package/src/supply-chain/scanner.js +502 -0
- package/src/supply-chain/scanner.js.map +1 -0
- package/src/supply-chain/vendored-source.d.ts +95 -0
- package/src/supply-chain/vendored-source.js +315 -0
- package/src/supply-chain/vendored-source.js.map +1 -0
- package/src/testing-evidence/fixture-scope.d.ts +52 -0
- package/src/testing-evidence/fixture-scope.js +140 -0
- package/src/testing-evidence/fixture-scope.js.map +1 -0
- package/src/testing-evidence/index.d.ts +5 -0
- package/src/testing-evidence/index.js +9 -0
- package/src/testing-evidence/index.js.map +1 -0
- package/src/testing-evidence/quarantine.d.ts +48 -0
- package/src/testing-evidence/quarantine.js +253 -0
- package/src/testing-evidence/quarantine.js.map +1 -0
- package/src/testing-evidence/result.d.ts +108 -0
- package/src/testing-evidence/result.js +571 -0
- package/src/testing-evidence/result.js.map +1 -0
- package/src/testing-evidence/runner-adapter.d.ts +51 -0
- package/src/testing-evidence/runner-adapter.js +288 -0
- package/src/testing-evidence/runner-adapter.js.map +1 -0
- package/src/testing-evidence/sensitive-artifacts.d.ts +13 -0
- package/src/testing-evidence/sensitive-artifacts.js +93 -0
- package/src/testing-evidence/sensitive-artifacts.js.map +1 -0
- package/src/work-markers/work-markers.js +4 -3
- package/src/work-markers/work-markers.js.map +1 -1
- package/src/workload-roles/account-baseline.d.ts +132 -0
- package/src/workload-roles/account-baseline.js +743 -0
- package/src/workload-roles/account-baseline.js.map +1 -0
- package/src/workload-roles/authority.d.ts +38 -0
- package/src/workload-roles/authority.js +156 -0
- package/src/workload-roles/authority.js.map +1 -0
- package/src/workload-roles/aws-adapter.d.ts +99 -0
- package/src/workload-roles/aws-adapter.js +416 -0
- package/src/workload-roles/aws-adapter.js.map +1 -0
- package/src/workload-roles/aws-internal-handler.d.ts +27 -0
- package/src/workload-roles/aws-internal-handler.js +58 -0
- package/src/workload-roles/aws-internal-handler.js.map +1 -0
- package/src/workload-roles/aws-s3-state.d.ts +52 -0
- package/src/workload-roles/aws-s3-state.js +164 -0
- package/src/workload-roles/aws-s3-state.js.map +1 -0
- package/src/workload-roles/aws-sdk-control-plane.d.ts +12 -0
- package/src/workload-roles/aws-sdk-control-plane.js +291 -0
- package/src/workload-roles/aws-sdk-control-plane.js.map +1 -0
- package/src/workload-roles/boundary.d.ts +33 -0
- package/src/workload-roles/boundary.js +130 -0
- package/src/workload-roles/boundary.js.map +1 -0
- package/src/workload-roles/convergence.d.ts +66 -0
- package/src/workload-roles/convergence.js +186 -0
- package/src/workload-roles/convergence.js.map +1 -0
- package/src/workload-roles/effective-policy.d.ts +51 -0
- package/src/workload-roles/effective-policy.js +183 -0
- package/src/workload-roles/effective-policy.js.map +1 -0
- package/src/workload-roles/handler.d.ts +43 -0
- package/src/workload-roles/handler.js +130 -0
- package/src/workload-roles/handler.js.map +1 -0
- package/src/workload-roles/history.d.ts +47 -0
- package/src/workload-roles/history.js +324 -0
- package/src/workload-roles/history.js.map +1 -0
- package/src/workload-roles/index.d.ts +17 -0
- package/src/workload-roles/index.js +21 -0
- package/src/workload-roles/index.js.map +1 -0
- package/src/workload-roles/injection.d.ts +119 -0
- package/src/workload-roles/injection.js +495 -0
- package/src/workload-roles/injection.js.map +1 -0
- package/src/workload-roles/manifest.d.ts +54 -0
- package/src/workload-roles/manifest.js +343 -0
- package/src/workload-roles/manifest.js.map +1 -0
- package/src/workload-roles/provisioner.d.ts +70 -0
- package/src/workload-roles/provisioner.js +231 -0
- package/src/workload-roles/provisioner.js.map +1 -0
- package/src/workload-roles/registration.d.ts +101 -0
- package/src/workload-roles/registration.js +457 -0
- package/src/workload-roles/registration.js.map +1 -0
- package/src/workload-roles/stage-boundary.d.ts +31 -0
- package/src/workload-roles/stage-boundary.js +208 -0
- package/src/workload-roles/stage-boundary.js.map +1 -0
- package/src/workload-roles/standard-slice.d.ts +54 -0
- package/src/workload-roles/standard-slice.js +252 -0
- package/src/workload-roles/standard-slice.js.map +1 -0
- package/migrations/standard-pre-v1-to-v1.md +0 -11
- package/src/foundation/aurora-logical-database.d.ts +0 -76
- package/src/foundation/aurora-logical-database.js +0 -419
- package/src/foundation/aurora-logical-database.js.map +0 -1
|
@@ -2,55 +2,38 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.defaultDatabaseLinkableName = defaultDatabaseLinkableName;
|
|
4
4
|
exports.provisionLogicalDatabase = provisionLogicalDatabase;
|
|
5
|
-
const aurora_logical_database_js_1 = require("./aurora-logical-database.js");
|
|
6
5
|
const local_database_contract_js_1 = require("./local-database-contract.js");
|
|
6
|
+
const stages_js_1 = require("./stages.js");
|
|
7
7
|
function classNameForDatabaseComponent(value) {
|
|
8
|
-
// 'example-primary' -> 'ExamplePrimary'. Simple normalizer; the db
|
|
9
|
-
// generator always passes already-kebab-cased segments.
|
|
10
8
|
return value
|
|
11
9
|
.split(/[-_]/)
|
|
12
10
|
.filter(Boolean)
|
|
13
|
-
.map((
|
|
11
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
14
12
|
.join('');
|
|
15
13
|
}
|
|
16
14
|
function defaultDatabaseLinkableName(slice, database) {
|
|
17
15
|
return `${classNameForDatabaseComponent(slice)}${classNameForDatabaseComponent(database)}Database`;
|
|
18
16
|
}
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
// * `<app>_<database>` logical Postgres database on the shared cluster
|
|
22
|
-
// * `<app>_readwrite` role (full DML + DDL) + `<app>_readonly` role (SELECT only)
|
|
23
|
-
// * AWS Secrets Manager secrets for each role at
|
|
24
|
-
// `ebk/<stage>/<app>/db/<role>` with JSON `{ host, port, database, username, password }`
|
|
25
|
-
// * An `sst.Linkable` exposing the readwrite credentials — consumers link
|
|
26
|
-
// this into their Nextjs / Service / Function stacks so runtime code sees
|
|
27
|
-
// `Resource.<Linkable>.host/port/database/username/password` unchanged
|
|
17
|
+
// Declares a Slice-scoped logical database contract without executing SQL or
|
|
18
|
+
// materializing a database password during infrastructure deployment.
|
|
28
19
|
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
// runbook in this package's README).
|
|
34
|
-
//
|
|
35
|
-
// DO NOT pass `core.db.cluster` (the raw Aurora handle) into
|
|
36
|
-
// `new sst.aws.Nextjs({ link })` — that leaks the master password. This
|
|
37
|
-
// helper is the sanctioned consumer path.
|
|
20
|
+
// In deployed stages this creates two empty Secrets Manager containers and a
|
|
21
|
+
// Linkable carrying only connection metadata plus the read/write secret ARN.
|
|
22
|
+
// The generated AWS-internal bootstrap task converges the actual database,
|
|
23
|
+
// roles, and secret versions before the migration task runs.
|
|
38
24
|
function provisionLogicalDatabase(foundation, options) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
25
|
+
const consumerStage = (0, stages_js_1.requireStage)($app.stage, 'Consumer stage');
|
|
26
|
+
if (options.rotationToken !== undefined &&
|
|
27
|
+
options.rotationToken.trim() === '') {
|
|
28
|
+
throw new Error('Logical database rotationToken must be a non-empty string when supplied.');
|
|
29
|
+
}
|
|
43
30
|
const identifiers = (0, local_database_contract_js_1.resolveLogicalDatabaseIdentifiers)({
|
|
44
31
|
database: options.database,
|
|
45
32
|
slice: options.slice,
|
|
46
|
-
stage:
|
|
33
|
+
stage: consumerStage,
|
|
47
34
|
});
|
|
48
|
-
const
|
|
35
|
+
const resourceName = options.linkableName ??
|
|
49
36
|
defaultDatabaseLinkableName(options.slice, options.database);
|
|
50
|
-
// Local live mode needs only the workload-facing Linkable. Return before
|
|
51
|
-
// constructing the Pulumi dynamic resource or either Secrets Manager secret
|
|
52
|
-
// so `sst dev` does not provision unused AWS database resources merely to
|
|
53
|
-
// point the application at Docker Postgres.
|
|
54
37
|
if ($dev && (options.localDev ?? true)) {
|
|
55
38
|
const localDatabase = (0, local_database_contract_js_1.resolveLocalDatabaseContract)({
|
|
56
39
|
database: options.database,
|
|
@@ -59,104 +42,76 @@ function provisionLogicalDatabase(foundation, options) {
|
|
|
59
42
|
slice: options.slice,
|
|
60
43
|
});
|
|
61
44
|
return {
|
|
62
|
-
db: new sst.Linkable(
|
|
63
|
-
properties:
|
|
45
|
+
db: new sst.Linkable(resourceName, {
|
|
46
|
+
properties: {
|
|
47
|
+
provider: 'local',
|
|
48
|
+
...localDatabase,
|
|
49
|
+
},
|
|
64
50
|
}),
|
|
51
|
+
databaseName: localDatabase.database,
|
|
52
|
+
migratorRole: identifiers.migratorRole,
|
|
53
|
+
readonlyRole: identifiers.readonlyRole,
|
|
54
|
+
readwriteRole: identifiers.readwriteRole,
|
|
55
|
+
resourceName,
|
|
65
56
|
};
|
|
66
57
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
// Callers can override explicitly via `options.removalPolicy`.
|
|
84
|
-
const canonicalStages = new Set(['development', 'staging', 'production']);
|
|
85
|
-
const defaultRemovalPolicy = canonicalStages.has($app.stage)
|
|
86
|
-
? 'retain'
|
|
87
|
-
: 'destroy';
|
|
88
|
-
const logicalDb = (0, aurora_logical_database_js_1.createAuroraLogicalDbResource)({
|
|
89
|
-
name: linkableName,
|
|
90
|
-
args: {
|
|
91
|
-
clusterArn: foundation.database.clusterArn,
|
|
92
|
-
masterSecretArn: foundation.database.masterSecretArn,
|
|
93
|
-
database: databaseIdentifier,
|
|
94
|
-
readwriteRole,
|
|
95
|
-
readonlyRole,
|
|
96
|
-
removalPolicy: options.removalPolicy ?? defaultRemovalPolicy,
|
|
97
|
-
// Only include the rotation trigger when the caller set one — keeping
|
|
98
|
-
// the key out of the inputs entirely when unset avoids a spurious
|
|
99
|
-
// `undefined` diff against resources created before this option existed.
|
|
100
|
-
...(options.rotationToken !== undefined
|
|
101
|
-
? { rotationToken: options.rotationToken }
|
|
102
|
-
: {}),
|
|
103
|
-
},
|
|
104
|
-
});
|
|
105
|
-
// `core.db.cluster.host` auto-resolves to the proxy endpoint when proxy is
|
|
106
|
-
// enabled (production) or the cluster writer endpoint otherwise.
|
|
107
|
-
// `core.db.cluster.port` similarly resolves to either the proxy port or the
|
|
108
|
-
// cluster port.
|
|
109
|
-
const host = foundation.database.cluster.host;
|
|
110
|
-
const port = foundation.database.cluster.port;
|
|
111
|
-
// Outputs from the dynamic resource — Pulumi unwraps them on link.
|
|
112
|
-
const readwritePassword = logicalDb.readwritePassword;
|
|
113
|
-
const readonlyPassword = logicalDb.readonlyPassword;
|
|
114
|
-
const secretJsonFor = (role, password) => $interpolate `{"host":"${host}","port":${port},"database":"${databaseIdentifier}","username":"${role}","password":"${password}"}`;
|
|
115
|
-
// Secret paths are keyed by the CONSUMER's stage, not core's. Two stages
|
|
116
|
-
// pointing at the same core via `EBK_CORE_STAGE` (e.g. `pr-123` → `development`)
|
|
117
|
-
// would otherwise collide on `ebk/development/<app>/db/<db>/...`. Keying by
|
|
118
|
-
// `$app.stage` isolates each consumer's secret namespace while the actual
|
|
119
|
-
// cluster remains shared.
|
|
120
|
-
const secretBasePath = `ebk/${$app.stage}/${options.slice}/database/${options.database}`;
|
|
121
|
-
// `recoveryWindowInDays: 0` skips the default 7-day soft-delete window.
|
|
122
|
-
// Destroy frees the secret name immediately so a subsequent create (or a
|
|
123
|
-
// redeploy after `sst remove`) doesn't hit `InvalidRequestException:
|
|
124
|
-
// ...already scheduled for deletion`. App-scoped DB role credentials are
|
|
125
|
-
// regenerated on every create() anyway — a recovery window serves no
|
|
126
|
-
// purpose here.
|
|
127
|
-
const readwriteSecret = new aws.secretsmanager.Secret(`${linkableName}ReadwriteSecret`, {
|
|
58
|
+
if (options.removalPolicy === 'destroy') {
|
|
59
|
+
throw new Error('Logical database removalPolicy "destroy" requires a reviewed AWS-internal retirement workflow and is not supported by the v1 protected bootstrap.');
|
|
60
|
+
}
|
|
61
|
+
const host = foundation.database.host;
|
|
62
|
+
const port = foundation.database.port;
|
|
63
|
+
const secretBasePath = `ebk/${consumerStage}/${options.slice}/database/${options.database}`;
|
|
64
|
+
const tags = {
|
|
65
|
+
'ebk:database': options.database,
|
|
66
|
+
'ebk:management': 'generated-database-credential',
|
|
67
|
+
'ebk:slice': options.slice,
|
|
68
|
+
'sst:stage': consumerStage,
|
|
69
|
+
};
|
|
70
|
+
// Secret containers deliberately have no SecretVersion resources. Their
|
|
71
|
+
// values are generated inside AWS and written by the exact bootstrap task.
|
|
72
|
+
const readwriteSecret = new aws.secretsmanager.Secret(`${resourceName}ReadwriteSecret`, {
|
|
73
|
+
description: `EBK generated read/write credential for ${options.slice}/${options.database}`,
|
|
128
74
|
name: `${secretBasePath}/readwrite`,
|
|
129
75
|
recoveryWindowInDays: 0,
|
|
130
|
-
|
|
131
|
-
const readwriteSecretVersion = new aws.secretsmanager.SecretVersion(`${linkableName}ReadwriteSecretVersion`, {
|
|
132
|
-
secretId: readwriteSecret.id,
|
|
133
|
-
secretString: secretJsonFor(readwriteRole, readwritePassword),
|
|
76
|
+
tags,
|
|
134
77
|
});
|
|
135
|
-
const readonlySecret = new aws.secretsmanager.Secret(`${
|
|
78
|
+
const readonlySecret = new aws.secretsmanager.Secret(`${resourceName}ReadonlySecret`, {
|
|
79
|
+
description: `EBK generated read-only credential for ${options.slice}/${options.database}`,
|
|
136
80
|
name: `${secretBasePath}/readonly`,
|
|
137
81
|
recoveryWindowInDays: 0,
|
|
138
|
-
|
|
139
|
-
const readonlySecretVersion = new aws.secretsmanager.SecretVersion(`${linkableName}ReadonlySecretVersion`, {
|
|
140
|
-
secretId: readonlySecret.id,
|
|
141
|
-
secretString: secretJsonFor(readonlyRole, readonlyPassword),
|
|
82
|
+
tags,
|
|
142
83
|
});
|
|
143
|
-
const linkable = new sst.Linkable(
|
|
84
|
+
const linkable = new sst.Linkable(resourceName, {
|
|
144
85
|
properties: {
|
|
86
|
+
database: identifiers.database,
|
|
145
87
|
host,
|
|
88
|
+
logicalName: `${resourceName}Credential`,
|
|
146
89
|
port,
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
90
|
+
provider: 'aws-secrets-manager',
|
|
91
|
+
secretArn: readwriteSecret.arn,
|
|
92
|
+
username: identifiers.readwriteRole,
|
|
150
93
|
},
|
|
94
|
+
include: [
|
|
95
|
+
sst.aws.permission({
|
|
96
|
+
actions: ['secretsmanager:GetSecretValue'],
|
|
97
|
+
resources: [readwriteSecret.arn],
|
|
98
|
+
}),
|
|
99
|
+
],
|
|
151
100
|
});
|
|
152
|
-
// Touch the version refs so Pulumi tracks them + keep them alive in GC.
|
|
153
|
-
void readwriteSecretVersion;
|
|
154
|
-
void readonlySecretVersion;
|
|
155
101
|
return {
|
|
102
|
+
databaseName: identifiers.database,
|
|
156
103
|
db: linkable,
|
|
157
|
-
|
|
158
|
-
|
|
104
|
+
migratorRole: identifiers.migratorRole,
|
|
105
|
+
readonlyRole: identifiers.readonlyRole,
|
|
159
106
|
readonlySecretArn: readonlySecret.arn,
|
|
107
|
+
readwriteRole: identifiers.readwriteRole,
|
|
108
|
+
readwriteSecretArn: readwriteSecret.arn,
|
|
109
|
+
resourceName,
|
|
110
|
+
// The cutover token forces one rotation for credentials that may still be
|
|
111
|
+
// present in historical pre-bootstrap Pulumi state. The token is stored
|
|
112
|
+
// only as non-secret metadata inside the new runtime secret version, so
|
|
113
|
+
// later bootstrap executions converge without rotating again.
|
|
114
|
+
rotationToken: options.rotationToken ?? 'aws-bootstrap-v1',
|
|
160
115
|
};
|
|
161
116
|
}
|
|
162
117
|
//# sourceMappingURL=provision-logical-database.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision-logical-database.js","sourceRoot":"","sources":["../../../../../packages/nx/src/foundation/provision-logical-database.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"provision-logical-database.js","sourceRoot":"","sources":["../../../../../packages/nx/src/foundation/provision-logical-database.ts"],"names":[],"mappings":";;AA8EA,kEAKC;AASD,4DAmHC;AA/MD,6EAGsC;AACtC,2CAA2C;AAkE3C,SAAS,6BAA6B,CAAC,KAAa;IAClD,OAAO,KAAK;SACT,KAAK,CAAC,MAAM,CAAC;SACb,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAgB,2BAA2B,CACzC,KAAa,EACb,QAAgB;IAEhB,OAAO,GAAG,6BAA6B,CAAC,KAAK,CAAC,GAAG,6BAA6B,CAAC,QAAQ,CAAC,UAAU,CAAC;AACrG,CAAC;AAED,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,6DAA6D;AAC7D,SAAgB,wBAAwB,CACtC,UAAoC,EACpC,OAAwC;IAExC,MAAM,aAAa,GAAG,IAAA,wBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACjE,IACE,OAAO,CAAC,aAAa,KAAK,SAAS;QACnC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,IAAA,8DAAiC,EAAC;QACpD,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;IACH,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY;QACpB,2BAA2B,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,IAAA,yDAA4B,EAAC;YACjD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,gBAAgB;YAClC,IAAI,EAAE,OAAO,CAAC,YAAY;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;gBACjC,UAAU,EAAE;oBACV,QAAQ,EAAE,OAAO;oBACjB,GAAG,aAAa;iBACjB;aACF,CAAC;YACF,YAAY,EAAE,aAAa,CAAC,QAAQ;YACpC,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,YAAY;SACb,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,mJAAmJ,CACpJ,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,MAAM,cAAc,GAAG,OAAO,aAAa,IAAI,OAAO,CAAC,KAAK,aAAa,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5F,MAAM,IAAI,GAAG;QACX,cAAc,EAAE,OAAO,CAAC,QAAQ;QAChC,gBAAgB,EAAE,+BAA+B;QACjD,WAAW,EAAE,OAAO,CAAC,KAAK;QAC1B,WAAW,EAAE,aAAa;KAC3B,CAAC;IAEF,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CACnD,GAAG,YAAY,iBAAiB,EAChC;QACE,WAAW,EAAE,2CAA2C,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC3F,IAAI,EAAE,GAAG,cAAc,YAAY;QACnC,oBAAoB,EAAE,CAAC;QACvB,IAAI;KACL,CACF,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAClD,GAAG,YAAY,gBAAgB,EAC/B;QACE,WAAW,EAAE,0CAA0C,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC1F,IAAI,EAAE,GAAG,cAAc,WAAW;QAClC,oBAAoB,EAAE,CAAC;QACvB,IAAI;KACL,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;QAC9C,UAAU,EAAE;YACV,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,IAAI;YACJ,WAAW,EAAE,GAAG,YAAY,YAAY;YACxC,IAAI;YACJ,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,eAAe,CAAC,GAAG;YAC9B,QAAQ,EAAE,WAAW,CAAC,aAAa;SACpC;QACD,OAAO,EAAE;YACP,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;gBACjB,OAAO,EAAE,CAAC,+BAA+B,CAAC;gBAC1C,SAAS,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;aACjC,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,WAAW,CAAC,QAAQ;QAClC,EAAE,EAAE,QAAQ;QACZ,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,iBAAiB,EAAE,cAAc,CAAC,GAAG;QACrC,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,kBAAkB,EAAE,eAAe,CAAC,GAAG;QACvC,YAAY;QACZ,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,8DAA8D;QAC9D,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,kBAAkB;KAC3D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ROUTER_ORIGIN_PROOF_HEADER = void 0;
|
|
4
|
+
exports.createRouterOriginProofInjection = createRouterOriginProofInjection;
|
|
5
|
+
exports.ROUTER_ORIGIN_PROOF_HEADER = 'x-ebk-router-origin-proof';
|
|
6
|
+
const ROUTER_ORIGIN_PROOF = /^[A-Za-z0-9]{43}$/;
|
|
7
|
+
const SLICE = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
|
|
8
|
+
function createRouterOriginProofInjection(slice, proof) {
|
|
9
|
+
if (!SLICE.test(slice)) {
|
|
10
|
+
throw new Error('Performance Router origin proof requires one exact Slice.');
|
|
11
|
+
}
|
|
12
|
+
if (!ROUTER_ORIGIN_PROOF.test(proof)) {
|
|
13
|
+
throw new Error('Performance Router origin proof must be a 43-character alphanumeric secret.');
|
|
14
|
+
}
|
|
15
|
+
const executePath = `/${slice}/__ebk/performance/service`;
|
|
16
|
+
const cleanupPath = `${executePath}/cleanup`;
|
|
17
|
+
return [
|
|
18
|
+
`if (event.request.uri === ${JSON.stringify(executePath)} || event.request.uri === ${JSON.stringify(cleanupPath)}) {`,
|
|
19
|
+
` event.request.headers[${JSON.stringify(exports.ROUTER_ORIGIN_PROOF_HEADER)}] = { value: ${JSON.stringify(proof)} };`,
|
|
20
|
+
'} else {',
|
|
21
|
+
` delete event.request.headers[${JSON.stringify(exports.ROUTER_ORIGIN_PROOF_HEADER)}];`,
|
|
22
|
+
'}',
|
|
23
|
+
].join('\n');
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=router-origin-proof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router-origin-proof.js","sourceRoot":"","sources":["../../../../../packages/nx/src/foundation/router-origin-proof.ts"],"names":[],"mappings":";;;AAKA,4EAuBC;AA5BY,QAAA,0BAA0B,GAAG,2BAAoC,CAAC;AAE/E,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,KAAK,GAAG,iCAAiC,CAAC;AAEhD,SAAgB,gCAAgC,CAC9C,KAAa,EACb,KAAa;IAEb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,KAAK,4BAA4B,CAAC;IAC1D,MAAM,WAAW,GAAG,GAAG,WAAW,UAAU,CAAC;IAC7C,OAAO;QACL,6BAA6B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK;QACrH,2BAA2B,IAAI,CAAC,SAAS,CAAC,kCAA0B,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;QAC/G,UAAU;QACV,kCAAkC,IAAI,CAAC,SAAS,CAAC,kCAA0B,CAAC,IAAI;QAChF,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -7,6 +7,7 @@ export interface FoundationStageResolution {
|
|
|
7
7
|
}
|
|
8
8
|
export declare function requireStage(value: string, label?: string): string;
|
|
9
9
|
export declare function isFoundationStage(stage: string): stage is FoundationStage;
|
|
10
|
+
export declare function isPersonalStage(stage: string): boolean;
|
|
10
11
|
export declare function requireFoundationStage(stage: string): FoundationStage;
|
|
11
12
|
export declare function resolveFoundationStages(options: {
|
|
12
13
|
consumerStage: string;
|
package/src/foundation/stages.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FOUNDATION_STAGES = void 0;
|
|
4
4
|
exports.requireStage = requireStage;
|
|
5
5
|
exports.isFoundationStage = isFoundationStage;
|
|
6
|
+
exports.isPersonalStage = isPersonalStage;
|
|
6
7
|
exports.requireFoundationStage = requireFoundationStage;
|
|
7
8
|
exports.resolveFoundationStages = resolveFoundationStages;
|
|
8
9
|
exports.FOUNDATION_STAGES = [
|
|
@@ -11,6 +12,7 @@ exports.FOUNDATION_STAGES = [
|
|
|
11
12
|
'production',
|
|
12
13
|
];
|
|
13
14
|
const FOUNDATION_STAGE_SET = new Set(exports.FOUNDATION_STAGES);
|
|
15
|
+
const PERSONAL_STAGE_PATTERN = /^personal-[a-z0-9](?:[a-z0-9-]{0,25}[a-z0-9])?$/;
|
|
14
16
|
function requireStage(value, label = 'Stage') {
|
|
15
17
|
const normalized = value.trim();
|
|
16
18
|
if (!/^[a-z0-9][a-z0-9-]*$/.test(normalized)) {
|
|
@@ -21,6 +23,9 @@ function requireStage(value, label = 'Stage') {
|
|
|
21
23
|
function isFoundationStage(stage) {
|
|
22
24
|
return FOUNDATION_STAGE_SET.has(stage);
|
|
23
25
|
}
|
|
26
|
+
function isPersonalStage(stage) {
|
|
27
|
+
return PERSONAL_STAGE_PATTERN.test(stage);
|
|
28
|
+
}
|
|
24
29
|
function requireFoundationStage(stage) {
|
|
25
30
|
const normalized = requireStage(stage, 'Foundation stage');
|
|
26
31
|
if (!isFoundationStage(normalized)) {
|
|
@@ -30,6 +35,9 @@ function requireFoundationStage(stage) {
|
|
|
30
35
|
}
|
|
31
36
|
function resolveFoundationStages(options) {
|
|
32
37
|
const consumerStage = requireStage(options.consumerStage, 'Consumer stage');
|
|
38
|
+
if (!isFoundationStage(consumerStage) && !isPersonalStage(consumerStage)) {
|
|
39
|
+
throw new Error(`Consumer stage ${consumerStage} is neither canonical nor a framework-derived personal stage.`);
|
|
40
|
+
}
|
|
33
41
|
const expectedFoundationStage = isFoundationStage(consumerStage)
|
|
34
42
|
? consumerStage
|
|
35
43
|
: 'development';
|
|
@@ -40,7 +48,7 @@ function resolveFoundationStages(options) {
|
|
|
40
48
|
if (isFoundationStage(consumerStage)) {
|
|
41
49
|
throw new Error(`Consumer stage ${consumerStage} must use Foundation stage ${consumerStage}.`);
|
|
42
50
|
}
|
|
43
|
-
throw new Error(`Personal
|
|
51
|
+
throw new Error(`Personal consumer stage ${consumerStage} may use only the development Foundation.`);
|
|
44
52
|
}
|
|
45
53
|
return {
|
|
46
54
|
consumerStage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stages.js","sourceRoot":"","sources":["../../../../../packages/nx/src/foundation/stages.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"stages.js","sourceRoot":"","sources":["../../../../../packages/nx/src/foundation/stages.ts"],"names":[],"mappings":";;;AAkBA,oCAQC;AAED,8CAEC;AAED,0CAEC;AAED,wDAQC;AAED,0DAiCC;AA/EY,QAAA,iBAAiB,GAAG;IAC/B,aAAa;IACb,SAAS;IACT,YAAY;CACJ,CAAC;AAUX,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,yBAAiB,CAAC,CAAC;AAChE,MAAM,sBAAsB,GAC1B,iDAAiD,CAAC;AAEpD,SAAgB,YAAY,CAAC,KAAa,EAAE,KAAK,GAAG,OAAO;IACzD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,oDAAoD,CAC7D,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAa;IAClD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC3D,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,oBAAoB,UAAU,6DAA6D,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,uBAAuB,CAAC,OAGvC;IACC,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC5E,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CACb,kBAAkB,aAAa,+DAA+D,CAC/F,CAAC;IACJ,CAAC;IACD,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,aAAa,CAAC;QAC9D,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAC;IAClB,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;QACrD,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,eAAe,CAAC;QACjD,CAAC,CAAC,uBAAuB,CAAC;IAE5B,IAAI,eAAe,KAAK,uBAAuB,EAAE,CAAC;QAChD,IAAI,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,kBAAkB,aAAa,8BAA8B,aAAa,GAAG,CAC9E,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2BAA2B,aAAa,2CAA2C,CACpF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa;QACb,eAAe;QACf,MAAM,EAAE,aAAa,KAAK,eAAe;KAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './security-headers.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/nx/src/frontend-security/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export declare const FRONTEND_SECURITY_HEADER_POLICY_KIND: "ebk-frontend-security-header-policy";
|
|
2
|
+
export declare const FRONTEND_SECURITY_HEADER_POLICY_SCHEMA_VERSION: 1;
|
|
3
|
+
export declare const FRONTEND_CSP_NONCE_PLACEHOLDER: "{{EBK_NONCE}}";
|
|
4
|
+
export type FrontendSecurityHeaderProfile = 'deployed-https' | 'local-development';
|
|
5
|
+
export interface FrontendSecurityHeader {
|
|
6
|
+
name: string;
|
|
7
|
+
value: string;
|
|
8
|
+
}
|
|
9
|
+
export interface FrontendSecurityHeaderPolicy {
|
|
10
|
+
kind: typeof FRONTEND_SECURITY_HEADER_POLICY_KIND;
|
|
11
|
+
owner: 'foundation' | 'slice';
|
|
12
|
+
profiles: Readonly<Record<FrontendSecurityHeaderProfile, {
|
|
13
|
+
headers: readonly FrontendSecurityHeader[];
|
|
14
|
+
transport: 'https' | 'loopback-http';
|
|
15
|
+
}>>;
|
|
16
|
+
schemaVersion: typeof FRONTEND_SECURITY_HEADER_POLICY_SCHEMA_VERSION;
|
|
17
|
+
slice?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ComposedFrontendSecurityHeader extends FrontendSecurityHeader {
|
|
20
|
+
owner: 'foundation' | 'slice';
|
|
21
|
+
}
|
|
22
|
+
export interface FrontendSecurityHeaderInspection {
|
|
23
|
+
findings: string[];
|
|
24
|
+
kind: 'ebk-frontend-security-header-result';
|
|
25
|
+
mode: 'absent' | 'enforced' | 'enforced-with-report-only-measurement' | 'report-only';
|
|
26
|
+
outcome: 'failed' | 'passed';
|
|
27
|
+
profile: FrontendSecurityHeaderProfile;
|
|
28
|
+
schemaVersion: 1;
|
|
29
|
+
slice: string;
|
|
30
|
+
}
|
|
31
|
+
export declare function validateFrontendSecurityHeaderPolicy(value: unknown, expectedOwner: 'foundation' | 'slice', expectedSlice?: string): FrontendSecurityHeaderPolicy;
|
|
32
|
+
export declare function composeFrontendSecurityHeaders(input: {
|
|
33
|
+
foundation: unknown;
|
|
34
|
+
nonce?: string;
|
|
35
|
+
profile: FrontendSecurityHeaderProfile;
|
|
36
|
+
slice: unknown;
|
|
37
|
+
sliceName: string;
|
|
38
|
+
}): ComposedFrontendSecurityHeader[];
|
|
39
|
+
export declare function foundationFrontendSecurityHeaderPolicy(): FrontendSecurityHeaderPolicy;
|
|
40
|
+
export declare function sliceFrontendSecurityHeaderPolicy(slice: string): FrontendSecurityHeaderPolicy;
|
|
41
|
+
export declare function resolveFrontendSecurityHeaderProfile(environment?: Readonly<Record<string, string | undefined>>): FrontendSecurityHeaderProfile;
|
|
42
|
+
export declare function inspectFrontendSecurityHeaders(input: {
|
|
43
|
+
actual: Headers | Readonly<Record<string, string>>;
|
|
44
|
+
allowLoopbackTransportProof?: boolean;
|
|
45
|
+
foundation: unknown;
|
|
46
|
+
https: boolean;
|
|
47
|
+
profile: FrontendSecurityHeaderProfile;
|
|
48
|
+
slice: unknown;
|
|
49
|
+
sliceName: string;
|
|
50
|
+
}): FrontendSecurityHeaderInspection;
|