@empire-builder-kit/nx 1.0.0-rc.4 → 1.0.0-rc.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -10
- package/executors.json +21 -1
- package/generators.json +10 -0
- package/package.json +31 -7
- package/src/aws/child-environment.d.ts +10 -0
- package/src/aws/child-environment.js +77 -0
- package/src/aws/identity.d.ts +13 -0
- package/src/aws/identity.js +41 -0
- package/src/aws-authority/index.d.ts +2 -0
- package/src/aws-authority/index.js +6 -0
- package/src/aws-authority/lambda-policy-ordering.d.ts +38 -0
- package/src/aws-authority/lambda-policy-ordering.js +56 -0
- package/src/aws-authority/stage-authority.d.ts +248 -0
- package/src/aws-authority/stage-authority.js +3558 -0
- package/src/blueprints/external-sandbox.d.ts +1 -1
- package/src/blueprints/external-sandbox.js +21 -9
- package/src/blueprints/manifest.d.ts +1 -1
- package/src/blueprints/resolver.js +28 -15
- package/src/cli/bootstrap.d.ts +1 -1
- package/src/cli/deploy-runtime.d.ts +30 -0
- package/src/cli/deploy-runtime.js +174 -0
- package/src/cli/dev-command.d.ts +18 -4
- package/src/cli/dev-command.js +71 -0
- package/src/cli/main.d.ts +9 -1
- package/src/cli/main.js +157 -24
- package/src/cli/output.d.ts +1 -1
- package/src/cli/output.js +1 -1
- package/src/cli/personal-secret-runtime.d.ts +12 -0
- package/src/cli/personal-secret-runtime.js +18 -3
- package/src/cli/secret-terminal.js +1 -1
- package/src/container-images.d.ts +1 -1
- package/src/container-images.js +1 -1
- package/src/developer-agent/context.js +41 -9
- package/src/developer-agent/generator-planning.js +20 -6
- package/src/developer-agent/git-inspection.d.ts +6 -2
- package/src/developer-agent/git-inspection.js +78 -6
- package/src/developer-agent/model.d.ts +5 -3
- package/src/developer-agent/model.js +4 -4
- package/src/developer-agent/operation-registry.d.ts +15 -0
- package/src/developer-agent/operation-registry.js +342 -49
- package/src/developer-agent/planning.d.ts +8 -1
- package/src/developer-agent/planning.js +39 -16
- package/src/developer-agent/preview-changes.d.ts +2 -0
- package/src/developer-agent/preview-changes.js +14 -2
- package/src/developer-agent/preview-source.js +3 -0
- package/src/developer-agent/validation.js +25 -9
- package/src/developer-agent/workspace-inspection.js +60 -5
- package/src/executors/blueprint-trust/blueprint-trust.js +6 -0
- package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
- package/src/executors/deployment-plan/deployment-plan.js +57 -2
- package/src/executors/dev-doctor/dev-doctor.js +13 -6
- package/src/executors/dev-task-cleanup/dev-task-cleanup.d.ts +23 -0
- package/src/executors/dev-task-cleanup/dev-task-cleanup.js +145 -0
- package/src/executors/dev-task-cleanup/schema.json +9 -0
- package/src/executors/dev-task-cleanup/task-stack-absence.d.ts +27 -0
- package/src/executors/dev-task-cleanup/task-stack-absence.js +281 -0
- package/src/executors/dev-task-cleanup/task-stack-checkpoint.d.ts +12 -0
- package/src/executors/dev-task-cleanup/task-stack-checkpoint.js +92 -0
- package/src/executors/fleet/fleet.js +1 -1
- package/src/executors/foundation-preflight/foundation-preflight.d.ts +1 -0
- package/src/executors/foundation-preflight/foundation-preflight.js +6 -2
- package/src/executors/foundation-preflight/schema.json +5 -0
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +13 -2
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -31
- package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +65 -0
- package/src/executors/foundation-profile-preflight/production-database-safeguard.js +223 -0
- package/src/executors/foundation-profile-preflight/schema.json +15 -4
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +70 -20
- package/src/executors/foundation-remove-preflight/schema.json +6 -1
- package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js +3 -0
- package/src/executors/github-bootstrap/schema.json +7 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +29 -136
- package/src/executors/infrastructure-plan/infrastructure-plan.js +230 -3282
- package/src/executors/infrastructure-plan/schema.json +12 -52
- package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
- package/src/executors/local-deploy/federated-credential-transport.js +252 -0
- package/src/executors/local-deploy/local-approval.d.ts +18 -0
- package/src/executors/local-deploy/local-approval.js +39 -0
- package/src/executors/local-deploy/local-deploy.d.ts +112 -0
- package/src/executors/local-deploy/local-deploy.js +1404 -0
- package/src/executors/local-deploy/schema.json +70 -0
- package/src/executors/refresh/refresh.js +2 -2
- package/src/executors/remove/remove.js +2 -2
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +42 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +1229 -0
- package/src/executors/router-waf-rehearsal/schema.json +29 -0
- package/src/executors/secret-initialize/schema.json +42 -0
- package/src/executors/secret-initialize/secret-initialize.d.ts +34 -0
- package/src/executors/secret-initialize/secret-initialize.js +297 -0
- package/src/executors/secret-metadata/schema.json +5 -0
- package/src/executors/secret-metadata/secret-metadata.d.ts +16 -2
- package/src/executors/secret-metadata/secret-metadata.js +129 -30
- package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
- package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
- package/src/executors/sst-lifecycle/governed-native-operation.d.ts +48 -0
- package/src/executors/sst-lifecycle/governed-native-operation.js +163 -0
- package/src/executors/sst-lifecycle/logging-preflight.d.ts +5 -0
- package/src/executors/sst-lifecycle/logging-preflight.js +23 -13
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +46 -6
- package/src/executors/sst-lifecycle/run-sst-command.js +750 -71
- package/src/executors/sst-lifecycle/schema.json +8 -1
- package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
- package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
- package/src/executors/sst-lifecycle/sst-environment-source.d.ts +33 -0
- package/src/executors/sst-lifecycle/sst-environment-source.js +267 -0
- package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
- package/src/executors/sst-lifecycle/task-unlock.js +126 -0
- package/src/executors/unlock/unlock.js +2 -2
- package/src/foundation/capability-plan.d.ts +43 -0
- package/src/foundation/capability-plan.js +168 -0
- package/src/foundation/cost-estimate.d.ts +170 -0
- package/src/foundation/cost-estimate.js +683 -0
- package/src/foundation/discovery.d.ts +14 -11
- package/src/foundation/discovery.js +32 -6
- package/src/foundation/index.d.ts +4 -0
- package/src/foundation/index.js +11 -0
- package/src/foundation/local-database-contract.d.ts +20 -0
- package/src/foundation/local-database-contract.js +262 -13
- package/src/foundation/local-private-smoke-access.d.ts +20 -0
- package/src/foundation/local-private-smoke-access.js +197 -0
- package/src/foundation/logging-preflight.js +1 -1
- package/src/foundation/logging.d.ts +3 -1
- package/src/foundation/logging.js +1 -1
- package/src/foundation/partial-state.d.ts +10 -0
- package/src/foundation/partial-state.js +21 -0
- package/src/foundation/preflight.js +37 -18
- package/src/foundation/private-smoke-access.d.ts +25 -0
- package/src/foundation/private-smoke-access.js +135 -0
- package/src/foundation/private-smoke-admission.d.ts +45 -0
- package/src/foundation/private-smoke-admission.js +180 -0
- package/src/foundation/private-smoke-control-plane.d.ts +18 -0
- package/src/foundation/private-smoke-control-plane.js +184 -0
- package/src/foundation/provision-database-bindings.d.ts +5 -0
- package/src/foundation/provision-database-bindings.js +41 -8
- package/src/foundation/provision-logical-database.js +15 -8
- package/src/foundation/requirements.d.ts +3 -3
- package/src/foundation/requirements.js +24 -12
- package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
- package/src/foundation/router-waf-rate-rehearsal.js +210 -0
- package/src/foundation/router-waf.d.ts +149 -0
- package/src/foundation/router-waf.js +809 -0
- package/src/foundation/stages.d.ts +1 -0
- package/src/foundation/stages.js +11 -0
- package/src/generators/blueprint/blueprint.d.ts +5 -0
- package/src/generators/blueprint/blueprint.js +102 -0
- package/src/generators/blueprint/files.d.ts +6 -0
- package/src/generators/blueprint/files.js +217 -0
- package/src/generators/blueprint/schema.d.ts +4 -0
- package/src/generators/blueprint/schema.json +18 -0
- package/src/generators/formatting.d.ts +8 -0
- package/src/generators/formatting.js +141 -0
- package/src/generators/function/function.js +38 -17
- package/src/generators/logging-registry.d.ts +2 -0
- package/src/generators/logging-registry.js +22 -0
- package/src/generators/post-generation-install.js +2 -2
- package/src/generators/preset/dependency-overrides.d.ts +8 -0
- package/src/generators/preset/dependency-overrides.js +55 -0
- package/src/generators/preset/generator.js +43 -3
- package/src/generators/preset/schema.d.ts +10 -0
- package/src/generators/preset/schema.json +47 -0
- package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
- package/src/generators/preset/workspace-files-adopter-skills.js +324 -0
- package/src/generators/preset/workspace-files-ci-acceptance.d.ts +1 -0
- package/src/generators/preset/workspace-files-ci-acceptance.js +791 -0
- package/src/generators/preset/workspace-files-ci-install.d.ts +2 -0
- package/src/generators/preset/workspace-files-ci-install.js +196 -0
- package/src/generators/preset/workspace-files-developer-agent.d.ts +2 -0
- package/src/generators/preset/workspace-files-developer-agent.js +162 -44
- package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
- package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.js +5 -2
- package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
- package/src/generators/preset/workspace-files-performance-cost.js +8 -8
- package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
- package/src/generators/preset/workspace-files-performance-load.js +39 -25
- package/src/generators/preset/workspace-files-shared-operation-claims.d.ts +10 -0
- package/src/generators/preset/workspace-files-shared-operation-claims.js +59 -0
- package/src/generators/preset/workspace-files-stage-authority.d.ts +6 -0
- package/src/generators/preset/workspace-files-stage-authority.js +529 -0
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +65 -0
- package/src/generators/preset/workspace-files-thin-deploy.js +2507 -0
- package/src/generators/preset/workspace-files-thin-docs.d.ts +7 -0
- package/src/generators/preset/workspace-files-thin-docs.js +370 -0
- package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
- package/src/generators/preset/workspace-files-thin-release.js +26 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.js +254 -42
- package/src/generators/preset/workspace-files.d.ts +18 -2
- package/src/generators/preset/workspace-files.js +1525 -609
- package/src/generators/repository-policy/repository-policy.js +235 -5
- package/src/generators/repository-policy/schema.d.ts +10 -0
- package/src/generators/repository-policy/schema.json +80 -4
- package/src/generators/repository-policy/tree-policy.d.ts +3 -0
- package/src/generators/repository-policy/tree-policy.js +25 -0
- package/src/generators/slice/built-in-plan-api-contract-files.js +49 -11
- package/src/generators/slice/built-in-plan-api-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-api-files.js +130 -414
- package/src/generators/slice/built-in-plan-async-work-files.js +166 -1969
- package/src/generators/slice/built-in-plan-authorization-files.js +102 -334
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +975 -233
- package/src/generators/slice/built-in-plan-authorization-storage.d.ts +3 -0
- package/src/generators/slice/built-in-plan-authorization-storage.js +119 -0
- package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-background-work-files.js +99 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
- package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-data-files.js +176 -1200
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js +53 -28
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +37 -2
- package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2443
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +50 -8
- package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js +44 -25
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +25 -2
- package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
- package/src/generators/slice/built-in-plan-foundation-files.js +39 -18
- package/src/generators/slice/built-in-plan-frontend-files.js +14 -3
- package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js +933 -730
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +75 -14
- package/src/generators/slice/built-in-plan-key-value-cleanup.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-cleanup.js +100 -0
- package/src/generators/slice/built-in-plan-key-value-consumer.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-consumer.js +151 -0
- package/src/generators/slice/built-in-plan-key-value-deletion.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-deletion.js +377 -0
- package/src/generators/slice/built-in-plan-key-value-delivery.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-delivery.js +137 -0
- package/src/generators/slice/built-in-plan-key-value-export.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-export.js +595 -0
- package/src/generators/slice/built-in-plan-key-value-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-files.js +31 -0
- package/src/generators/slice/built-in-plan-key-value-holds.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-holds.js +189 -0
- package/src/generators/slice/built-in-plan-key-value-infrastructure.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-infrastructure.js +102 -0
- package/src/generators/slice/built-in-plan-key-value-performance.d.ts +5 -0
- package/src/generators/slice/built-in-plan-key-value-performance.js +530 -0
- package/src/generators/slice/built-in-plan-key-value-provider.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-provider.js +366 -0
- package/src/generators/slice/built-in-plan-key-value-records.d.ts +3 -0
- package/src/generators/slice/built-in-plan-key-value-records.js +232 -0
- package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.js +103 -0
- package/src/generators/slice/built-in-plan-key-value-retention-job-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-job-files.js +160 -0
- package/src/generators/slice/built-in-plan-key-value-retention-maintenance.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-maintenance.js +329 -0
- package/src/generators/slice/built-in-plan-key-value-retention-worker.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-worker.js +477 -0
- package/src/generators/slice/built-in-plan-key-value-retention.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention.js +184 -0
- package/src/generators/slice/built-in-plan-metadata-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-metadata-files.js +159 -29
- package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +324 -0
- package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-operations-files.js +585 -97
- package/src/generators/slice/built-in-plan-performance-files.d.ts +2 -1
- package/src/generators/slice/built-in-plan-performance-files.js +220 -1074
- package/src/generators/slice/built-in-plan-project-files.js +141 -135
- package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-release-files.js +310 -70
- package/src/generators/slice/built-in-plan-reliability-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-reliability-files.js +283 -44
- package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-secret-runtime-files.js +87 -76
- package/src/generators/slice/built-in-plan-shared.d.ts +4 -2
- package/src/generators/slice/built-in-plan-shared.js +41 -19
- package/src/generators/slice/built-in-plan-sql-events.d.ts +2 -0
- package/src/generators/slice/built-in-plan-sql-events.js +276 -0
- package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-testing-files.js +304 -172
- package/src/generators/slice/built-in-plan-testing-persistence-event-files.d.ts +7 -0
- package/src/generators/slice/built-in-plan-testing-persistence-event-files.js +487 -0
- package/src/generators/slice/built-in-plan-testing-persistence-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-testing-persistence-files.js +180 -0
- package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
- package/src/generators/slice/built-in-plan-thin-release-files.js +162 -0
- package/src/generators/slice/built-in-plan-verification-files.js +76 -2
- package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-web-files.js +223 -16
- package/src/generators/slice/built-in-plan-workload-role-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-workload-role-files.js +143 -279
- package/src/generators/slice/built-in-plan.d.ts +11 -1
- package/src/generators/slice/built-in-plan.js +83 -30
- package/src/generators/slice/data-policy-review-seed.d.ts +2 -0
- package/src/generators/slice/data-policy-review-seed.js +22 -0
- package/src/generators/slice/deployed-smoke-readiness.d.ts +2 -0
- package/src/generators/slice/deployed-smoke-readiness.js +214 -0
- package/src/generators/slice/local-source-identity.d.ts +2 -0
- package/src/generators/slice/local-source-identity.js +31 -0
- package/src/generators/slice/persistence-contract.d.ts +14 -0
- package/src/generators/slice/persistence-contract.js +32 -0
- package/src/generators/slice/slice.js +61 -50
- package/src/generators/sql/schema.d.ts +7 -0
- package/src/generators/sql/schema.json +38 -0
- package/src/generators/sql/sql.d.ts +6 -0
- package/src/generators/sql/sql.js +53 -0
- package/src/generators/upgrade/sql-seeded-reconciliation.d.ts +2 -0
- package/src/generators/upgrade/sql-seeded-reconciliation.js +170 -0
- package/src/generators/upgrade/upgrade.d.ts +15 -1
- package/src/generators/upgrade/upgrade.js +435 -44
- package/src/generators/workload/frozen-container.d.ts +1 -1
- package/src/generators/workload/performance-registration.d.ts +1 -0
- package/src/generators/workload/performance-registration.js +9 -11
- package/src/generators/workload/service-performance-files.d.ts +1 -0
- package/src/generators/workload/service-performance-files.js +27 -7
- package/src/generators/workload/workload.d.ts +1 -1
- package/src/generators/workload/workload.js +105 -29
- package/src/git-policy/action-pins.d.ts +5 -0
- package/src/git-policy/action-pins.js +5 -0
- package/src/git-policy/github-bootstrap.d.ts +48 -8
- package/src/git-policy/github-bootstrap.js +344 -176
- package/src/git-policy/routing.d.ts +7 -1
- package/src/git-policy/routing.js +62 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/infrastructure-change/local-capability.d.ts +73 -0
- package/src/infrastructure-change/local-capability.js +114 -0
- package/src/infrastructure-change/model.d.ts +25 -4
- package/src/infrastructure-change/model.js +1 -0
- package/src/infrastructure-change/normalize.d.ts +4 -0
- package/src/infrastructure-change/normalize.js +47 -7
- package/src/infrastructure-change/plan.d.ts +30 -3
- package/src/infrastructure-change/plan.js +323 -13
- package/src/infrastructure-change/risk.d.ts +3 -1
- package/src/infrastructure-change/risk.js +96 -16
- package/src/local-dev/browser-verification.d.ts +37 -0
- package/src/local-dev/browser-verification.js +281 -0
- package/src/local-dev/contracts.d.ts +10 -1
- package/src/local-dev/contracts.js +114 -13
- package/src/local-dev/dev-command-core.js +24 -5
- package/src/local-dev/docker-credential-health.d.ts +14 -0
- package/src/local-dev/docker-credential-health.js +94 -0
- package/src/local-dev/environment-inspector.d.ts +7 -0
- package/src/local-dev/environment-inspector.js +42 -15
- package/src/local-dev/environment-state.js +2 -2
- package/src/local-dev/errors.d.ts +1 -1
- package/src/local-dev/errors.js +2 -0
- package/src/local-dev/fleet-client.js +2 -2
- package/src/local-dev/fleet-configuration.js +57 -25
- package/src/local-dev/fleet-inventory.js +58 -22
- package/src/local-dev/fleet-ipc.d.ts +7 -0
- package/src/local-dev/fleet-ipc.js +14 -2
- package/src/local-dev/fleet-launcher.d.ts +6 -0
- package/src/local-dev/fleet-launcher.js +16 -4
- package/src/local-dev/fleet-logs.js +50 -22
- package/src/local-dev/fleet-process.d.ts +20 -1
- package/src/local-dev/fleet-process.js +197 -41
- package/src/local-dev/fleet-runner-evidence.d.ts +5 -0
- package/src/local-dev/fleet-runner-evidence.js +56 -0
- package/src/local-dev/fleet-runtime.js +268 -229
- package/src/local-dev/fleet-session.d.ts +2 -0
- package/src/local-dev/fleet-session.js +28 -11
- package/src/local-dev/fleet-slice-runner-daemon.js +4 -0
- package/src/local-dev/fleet-state.d.ts +5 -2
- package/src/local-dev/fleet-state.js +25 -4
- package/src/local-dev/fleet-supervisor.d.ts +3 -0
- package/src/local-dev/fleet-supervisor.js +66 -11
- package/src/local-dev/fleet-web-start.d.ts +12 -0
- package/src/local-dev/fleet-web-start.js +48 -0
- package/src/local-dev/identity.js +3 -14
- package/src/local-dev/index.d.ts +1 -0
- package/src/local-dev/index.js +1 -0
- package/src/local-dev/native-completion.d.ts +9 -0
- package/src/local-dev/native-completion.js +130 -0
- package/src/local-dev/nx-workspace.d.ts +4 -2
- package/src/local-dev/nx-workspace.js +11 -6
- package/src/local-dev/personal-stage.d.ts +4 -5
- package/src/local-dev/personal-stage.js +6 -54
- package/src/local-dev/port-claims.d.ts +13 -0
- package/src/local-dev/port-claims.js +46 -0
- package/src/local-dev/ports.d.ts +14 -2
- package/src/local-dev/ports.js +78 -3
- package/src/local-dev/private-state.d.ts +11 -0
- package/src/local-dev/private-state.js +146 -40
- package/src/local-dev/process-group.d.ts +4 -0
- package/src/local-dev/process-group.js +29 -0
- package/src/local-dev/process-identity.d.ts +8 -0
- package/src/local-dev/process-identity.js +31 -1
- package/src/local-dev/proxy.js +11 -12
- package/src/local-dev/runtime-paths.js +1 -1
- package/src/local-dev/slice-claim.js +1 -1
- package/src/local-dev/slice-runner.d.ts +15 -6
- package/src/local-dev/slice-runner.js +189 -54
- package/src/local-dev/task-attachment.d.ts +17 -0
- package/src/local-dev/task-attachment.js +73 -0
- package/src/local-dev/task-authority.d.ts +10 -0
- package/src/local-dev/task-authority.js +27 -0
- package/src/local-dev/task-identity.d.ts +33 -0
- package/src/local-dev/task-identity.js +418 -0
- package/src/local-dev/task-native-writer.d.ts +18 -0
- package/src/local-dev/task-native-writer.js +329 -0
- package/src/local-dev/tls.js +8 -2
- package/src/local-dev/web-launch.d.ts +9 -0
- package/src/local-dev/web-launch.js +130 -0
- package/src/ownership/composition.d.ts +2 -1
- package/src/ownership/composition.js +1 -0
- package/src/performance/cost-collection.d.ts +1 -1
- package/src/performance/cost-collection.js +4 -2
- package/src/performance/cost-controls.d.ts +8 -4
- package/src/performance/cost-controls.js +39 -28
- package/src/performance/evidence.d.ts +1 -1
- package/src/performance/evidence.js +5 -3
- package/src/performance/load-safety.js +5 -3
- package/src/performance/model.d.ts +4 -4
- package/src/performance/model.js +4 -5
- package/src/performance/scenario.d.ts +22 -0
- package/src/performance/scenario.js +100 -92
- package/src/release/index.d.ts +0 -2
- package/src/release/index.js +0 -2
- package/src/release/source-authority.d.ts +5 -5
- package/src/release/source-authority.js +141 -124
- package/src/repository-policy/aurora-preflight.d.ts +1 -1
- package/src/repository-policy/aurora-preflight.js +4 -1
- package/src/repository-policy/capacity-migration.d.ts +3 -0
- package/src/repository-policy/capacity-migration.js +21 -0
- package/src/repository-policy/deployment-plan.d.ts +4 -1
- package/src/repository-policy/deployment-plan.js +9 -0
- package/src/repository-policy/foundation-profile.js +10 -1
- package/src/repository-policy/policy.d.ts +57 -3
- package/src/repository-policy/policy.js +497 -11
- package/src/schemas/blueprint-v1.json +5 -4
- package/src/schemas/foundation-requirement-v1.json +5 -4
- package/src/schemas/performance-policy-v1.json +3 -3
- package/src/schemas/repository-policy-v1.json +130 -6
- package/src/schemas/testing-evidence-result-v1.json +1 -1
- package/src/secrets/adapters.d.ts +7 -2
- package/src/secrets/adapters.js +34 -3
- package/src/secrets/aws-control-plane.d.ts +10 -1
- package/src/secrets/aws-control-plane.js +67 -0
- package/src/secrets/generated-aws-control-plane.d.ts +23 -0
- package/src/secrets/generated-aws-control-plane.js +259 -0
- package/src/secrets/metadata.js +38 -10
- package/src/secrets/model.d.ts +8 -1
- package/src/secrets/model.js +24 -3
- package/src/secrets/operator.d.ts +91 -3
- package/src/secrets/operator.js +463 -13
- package/src/secrets/personal-command.d.ts +18 -2
- package/src/secrets/personal-command.js +66 -12
- package/src/secrets/registry.d.ts +2 -1
- package/src/secrets/registry.js +18 -1
- package/src/secrets/verification.js +15 -2
- package/src/secrets/workload-access.js +10 -2
- package/src/sst-environment-source-format.d.ts +6 -0
- package/src/sst-environment-source-format.js +199 -0
- package/src/supply-chain/action-pins.js +61 -7
- package/src/supply-chain/blueprint-trust-git.js +85 -24
- package/src/supply-chain/blueprint-verification-authority.js +55 -3
- package/src/supply-chain/build-output-bounds.d.ts +2 -0
- package/src/supply-chain/build-output-bounds.js +12 -0
- package/src/supply-chain/build-output.d.ts +7 -1
- package/src/supply-chain/build-output.js +177 -24
- package/src/supply-chain/ecr-scanning.d.ts +5 -3
- package/src/supply-chain/ecr-scanning.js +11 -7
- package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
- package/src/supply-chain/ecs-deployed-image.js +6 -4
- package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
- package/src/supply-chain/generated-command.js +1 -0
- package/src/supply-chain/generated-container-release-command.js +1285 -124
- package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
- package/src/supply-chain/generated-ecr-collector-command.js +200 -93
- package/src/supply-chain/generated-files.js +25 -14
- package/src/supply-chain/generated-scanner-command.js +2 -1
- package/src/supply-chain/index.d.ts +1 -1
- package/src/supply-chain/index.js +2 -1
- package/src/supply-chain/sbom.d.ts +1 -1
- package/src/supply-chain/sbom.js +30 -5
- package/src/supply-chain/scanner.js +3 -0
- package/src/testing-evidence/fixture-scope.d.ts +2 -1
- package/src/testing-evidence/fixture-scope.js +4 -2
- package/src/testing-evidence/result.d.ts +2 -1
- package/src/testing-evidence/result.js +18 -4
- package/src/workload-roles/account-baseline.d.ts +11 -0
- package/src/workload-roles/account-baseline.js +253 -16
- package/src/workload-roles/authority.d.ts +3 -1
- package/src/workload-roles/authority.js +48 -2
- package/src/workload-roles/aws-s3-state.js +27 -0
- package/src/workload-roles/boundary.d.ts +2 -1
- package/src/workload-roles/boundary.js +9 -2
- package/src/workload-roles/handler.js +52 -24
- package/src/workload-roles/index.d.ts +10 -17
- package/src/workload-roles/index.js +5 -18
- package/src/workload-roles/injection.js +1 -1
- package/src/workload-roles/provisioner.js +12 -4
- package/src/workload-roles/registration.d.ts +1 -0
- package/src/workload-roles/registration.js +5 -0
- package/src/workload-roles/stage-boundary.js +1 -1
- package/src/workload-roles/standard-slice.js +3 -3
- package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
- package/src/workspace-deployment/affected-lifecycle.js +84 -0
- package/src/workspace-deployment/identity.d.ts +3 -0
- package/src/workspace-deployment/identity.js +22 -0
- package/src/workspace-deployment/index.d.ts +4 -0
- package/src/workspace-deployment/index.js +8 -0
- package/src/workspace-deployment/migration-evidence.d.ts +29 -0
- package/src/workspace-deployment/migration-evidence.js +83 -0
- package/src/workspace-deployment/migration.d.ts +27 -0
- package/src/workspace-deployment/migration.js +109 -0
- package/src/workspace-deployment/ownership.d.ts +81 -0
- package/src/workspace-deployment/ownership.js +381 -0
- package/src/api-contract/baseline-update.js.map +0 -1
- package/src/api-contract/compatibility.js.map +0 -1
- package/src/api-contract/contract-graph.js.map +0 -1
- package/src/api-contract/evidence.js.map +0 -1
- package/src/api-contract/index.js.map +0 -1
- package/src/api-contract/model.fixtures.d.ts +0 -2
- package/src/api-contract/model.fixtures.js +0 -81
- package/src/api-contract/model.fixtures.js.map +0 -1
- package/src/api-contract/model.js.map +0 -1
- package/src/api-contract/rollout.js.map +0 -1
- package/src/authorization/compatibility.js.map +0 -1
- package/src/authorization/index.js.map +0 -1
- package/src/blueprints/execution.js.map +0 -1
- package/src/blueprints/external-sandbox.js.map +0 -1
- package/src/blueprints/index.js.map +0 -1
- package/src/blueprints/inputs.js.map +0 -1
- package/src/blueprints/manifest.js.map +0 -1
- package/src/blueprints/resolver.js.map +0 -1
- package/src/blueprints/transitions.js.map +0 -1
- package/src/cli/agent-command.js.map +0 -1
- package/src/cli/agent-runtime.js.map +0 -1
- package/src/cli/blueprint-authority.js.map +0 -1
- package/src/cli/blueprint-command.js.map +0 -1
- package/src/cli/bootstrap.js.map +0 -1
- package/src/cli/dev-command.js.map +0 -1
- package/src/cli/main.js.map +0 -1
- package/src/cli/output.js.map +0 -1
- package/src/cli/personal-secret-runtime.js.map +0 -1
- package/src/cli/secret-terminal.js.map +0 -1
- package/src/container-images.js.map +0 -1
- package/src/data-lifecycle/index.js.map +0 -1
- package/src/data-lifecycle/model.fixtures.d.ts +0 -2
- package/src/data-lifecycle/model.fixtures.js +0 -244
- package/src/data-lifecycle/model.fixtures.js.map +0 -1
- package/src/data-lifecycle/model.js.map +0 -1
- package/src/data-lifecycle/sensitive-artifacts.js.map +0 -1
- package/src/data-lifecycle/validation.js.map +0 -1
- package/src/database-retirement/contract.js.map +0 -1
- package/src/database-retirement/index.js.map +0 -1
- package/src/deterministic-order.js.map +0 -1
- package/src/developer-agent/context.js.map +0 -1
- package/src/developer-agent/generator-planning.js.map +0 -1
- package/src/developer-agent/generator-preview.js.map +0 -1
- package/src/developer-agent/git-inspection.js.map +0 -1
- package/src/developer-agent/handoff.js.map +0 -1
- package/src/developer-agent/index.js.map +0 -1
- package/src/developer-agent/model.js.map +0 -1
- package/src/developer-agent/operation-registry.js.map +0 -1
- package/src/developer-agent/ordering.js.map +0 -1
- package/src/developer-agent/planning.js.map +0 -1
- package/src/developer-agent/preview-changes.js.map +0 -1
- package/src/developer-agent/preview-source.js.map +0 -1
- package/src/developer-agent/validation.js.map +0 -1
- package/src/developer-agent/workspace-inspection.js.map +0 -1
- package/src/developer-agent/workspace-path.js.map +0 -1
- package/src/executors/blueprint-trust/blueprint-trust.js.map +0 -1
- package/src/executors/blueprint-verification/blueprint-verification.js.map +0 -1
- package/src/executors/deploy/deploy.js.map +0 -1
- package/src/executors/deployment-plan/deployment-plan.js.map +0 -1
- package/src/executors/dev/dev.js.map +0 -1
- package/src/executors/dev-doctor/dev-doctor.js.map +0 -1
- package/src/executors/dev-setup/dev-setup.js.map +0 -1
- package/src/executors/developer-context/developer-context.js.map +0 -1
- package/src/executors/fleet/fleet.js.map +0 -1
- package/src/executors/foundation-preflight/foundation-preflight.js.map +0 -1
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +0 -1
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +0 -1
- package/src/executors/github-bootstrap/github-bootstrap.js.map +0 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.js.map +0 -1
- package/src/executors/refresh/refresh.js.map +0 -1
- package/src/executors/remove/remove.js.map +0 -1
- package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
- package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
- package/src/executors/sst-lifecycle/logging-preflight.js.map +0 -1
- package/src/executors/sst-lifecycle/run-sst-command.js.map +0 -1
- package/src/executors/sst-lifecycle/secret-preflight.js.map +0 -1
- package/src/executors/unlock/unlock.js.map +0 -1
- package/src/executors/work-markers/work-markers.js.map +0 -1
- package/src/foundation/discovery.js.map +0 -1
- package/src/foundation/index.js.map +0 -1
- package/src/foundation/local-database-contract.js.map +0 -1
- package/src/foundation/logging-preflight.js.map +0 -1
- package/src/foundation/logging.js.map +0 -1
- package/src/foundation/preflight.js.map +0 -1
- package/src/foundation/provision-database-bindings.js.map +0 -1
- package/src/foundation/provision-logical-database.js.map +0 -1
- package/src/foundation/requirements.js.map +0 -1
- package/src/foundation/router-origin-proof.js.map +0 -1
- package/src/foundation/stages.js.map +0 -1
- package/src/frontend-security/index.js.map +0 -1
- package/src/frontend-security/security-headers.js.map +0 -1
- package/src/generators/feature-registry.js.map +0 -1
- package/src/generators/function/function.js.map +0 -1
- package/src/generators/job/job.js.map +0 -1
- package/src/generators/logging-registry.js.map +0 -1
- package/src/generators/post-generation-install.js.map +0 -1
- package/src/generators/preset/generator.js.map +0 -1
- package/src/generators/preset/tool-versions.js.map +0 -1
- package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
- package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +0 -1
- package/src/generators/preset/workspace-files-performance-cost.js.map +0 -1
- package/src/generators/preset/workspace-files-performance-load.js.map +0 -1
- package/src/generators/preset/workspace-files-workload-role-baseline.js.map +0 -1
- package/src/generators/preset/workspace-files.js.map +0 -1
- package/src/generators/repository-policy/repository-policy.js.map +0 -1
- package/src/generators/service/service.js.map +0 -1
- package/src/generators/slice/built-in-plan-api-contract-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-api-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-async-work-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-authorization-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-deletion-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-rights-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-foundation-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-frontend-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-metadata-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-operations-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-performance-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-project-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-release-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-reliability-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-shared.js.map +0 -1
- package/src/generators/slice/built-in-plan-testing-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-verification-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-web-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-workload-role-files.js.map +0 -1
- package/src/generators/slice/built-in-plan.js.map +0 -1
- package/src/generators/slice/slice.js.map +0 -1
- package/src/generators/upgrade/upgrade.js.map +0 -1
- package/src/generators/workload/frozen-container.js.map +0 -1
- package/src/generators/workload/performance-registration.js.map +0 -1
- package/src/generators/workload/reliability-registration.js.map +0 -1
- package/src/generators/workload/service-performance-files.js.map +0 -1
- package/src/generators/workload/workload.js.map +0 -1
- package/src/git-policy/action-pins.js.map +0 -1
- package/src/git-policy/github-bootstrap.js.map +0 -1
- package/src/git-policy/index.js.map +0 -1
- package/src/git-policy/routing.js.map +0 -1
- package/src/index.js.map +0 -1
- package/src/infrastructure-change/convergence.js.map +0 -1
- package/src/infrastructure-change/drift.js.map +0 -1
- package/src/infrastructure-change/index.js.map +0 -1
- package/src/infrastructure-change/model.js.map +0 -1
- package/src/infrastructure-change/normalize.js.map +0 -1
- package/src/infrastructure-change/plan.js.map +0 -1
- package/src/infrastructure-change/risk.js.map +0 -1
- package/src/infrastructure-change/summary.js.map +0 -1
- package/src/local-dev/context-discovery.js.map +0 -1
- package/src/local-dev/contract-validation.js.map +0 -1
- package/src/local-dev/contracts.js.map +0 -1
- package/src/local-dev/control-contract.js.map +0 -1
- package/src/local-dev/dev-command-core.js.map +0 -1
- package/src/local-dev/effects.js.map +0 -1
- package/src/local-dev/environment-inspector.js.map +0 -1
- package/src/local-dev/environment-state.js.map +0 -1
- package/src/local-dev/errors.js.map +0 -1
- package/src/local-dev/fleet-client.js.map +0 -1
- package/src/local-dev/fleet-configuration.js.map +0 -1
- package/src/local-dev/fleet-inventory.js.map +0 -1
- package/src/local-dev/fleet-ipc.js.map +0 -1
- package/src/local-dev/fleet-launcher.js.map +0 -1
- package/src/local-dev/fleet-lock.js.map +0 -1
- package/src/local-dev/fleet-logs.js.map +0 -1
- package/src/local-dev/fleet-process.js.map +0 -1
- package/src/local-dev/fleet-runtime.js.map +0 -1
- package/src/local-dev/fleet-session.js.map +0 -1
- package/src/local-dev/fleet-slice-runner-daemon.js.map +0 -1
- package/src/local-dev/fleet-startup.js.map +0 -1
- package/src/local-dev/fleet-state.js.map +0 -1
- package/src/local-dev/fleet-supervisor-daemon.js.map +0 -1
- package/src/local-dev/fleet-supervisor.js.map +0 -1
- package/src/local-dev/gateway-daemon.js.map +0 -1
- package/src/local-dev/gateway.js.map +0 -1
- package/src/local-dev/identity.js.map +0 -1
- package/src/local-dev/index.js.map +0 -1
- package/src/local-dev/local-context.js.map +0 -1
- package/src/local-dev/nx-workspace.js.map +0 -1
- package/src/local-dev/personal-secret-ledger.js.map +0 -1
- package/src/local-dev/personal-stage.js.map +0 -1
- package/src/local-dev/portless.js.map +0 -1
- package/src/local-dev/ports.js.map +0 -1
- package/src/local-dev/private-state.js.map +0 -1
- package/src/local-dev/process-identity.js.map +0 -1
- package/src/local-dev/proxy.js.map +0 -1
- package/src/local-dev/runtime-paths.js.map +0 -1
- package/src/local-dev/secret-slice-claim.js.map +0 -1
- package/src/local-dev/slice-claim.js.map +0 -1
- package/src/local-dev/slice-runner.js.map +0 -1
- package/src/local-dev/tls.js.map +0 -1
- package/src/ownership/composition.js.map +0 -1
- package/src/ownership/foundation-record.js.map +0 -1
- package/src/ownership/hash.js.map +0 -1
- package/src/ownership/index.js.map +0 -1
- package/src/ownership/json-ownership.js.map +0 -1
- package/src/ownership/record.js.map +0 -1
- package/src/ownership/workspace-record.js.map +0 -1
- package/src/performance/cost-collection.js.map +0 -1
- package/src/performance/cost-controls.js.map +0 -1
- package/src/performance/evidence.js.map +0 -1
- package/src/performance/index.js.map +0 -1
- package/src/performance/load-safety.js.map +0 -1
- package/src/performance/model.js.map +0 -1
- package/src/performance/pr-artifact-budget.js.map +0 -1
- package/src/performance/runner.js.map +0 -1
- package/src/performance/scenario-endpoint.js.map +0 -1
- package/src/performance/scenario.js.map +0 -1
- package/src/performance/test-fixtures.d.ts +0 -7
- package/src/performance/test-fixtures.js +0 -169
- package/src/performance/test-fixtures.js.map +0 -1
- package/src/performance/unit-cost.js.map +0 -1
- package/src/release/index.js.map +0 -1
- package/src/release/lifecycle.js.map +0 -1
- package/src/release/manifest.js.map +0 -1
- package/src/release/rollout.js.map +0 -1
- package/src/release/source-authority.js.map +0 -1
- package/src/repository-policy/aurora-preflight.js.map +0 -1
- package/src/repository-policy/deployment-plan.js.map +0 -1
- package/src/repository-policy/foundation-profile.js.map +0 -1
- package/src/repository-policy/index.js.map +0 -1
- package/src/repository-policy/policy.js.map +0 -1
- package/src/secrets/adapters.js.map +0 -1
- package/src/secrets/aws-control-plane.js.map +0 -1
- package/src/secrets/declaration-verification.js.map +0 -1
- package/src/secrets/guardrails.js.map +0 -1
- package/src/secrets/index.js.map +0 -1
- package/src/secrets/metadata.js.map +0 -1
- package/src/secrets/model.js.map +0 -1
- package/src/secrets/operator.js.map +0 -1
- package/src/secrets/permissions.js.map +0 -1
- package/src/secrets/personal-command.js.map +0 -1
- package/src/secrets/personal-ledger.js.map +0 -1
- package/src/secrets/registry.js.map +0 -1
- package/src/secrets/verification.js.map +0 -1
- package/src/secrets/workload-access.js.map +0 -1
- package/src/supply-chain/action-pins.js.map +0 -1
- package/src/supply-chain/blueprint-trust-git.js.map +0 -1
- package/src/supply-chain/blueprint-trust-process.js.map +0 -1
- package/src/supply-chain/blueprint-trust.js.map +0 -1
- package/src/supply-chain/blueprint-verification-authority.js.map +0 -1
- package/src/supply-chain/blueprint-verification-execution.js.map +0 -1
- package/src/supply-chain/build-output.js.map +0 -1
- package/src/supply-chain/common.js.map +0 -1
- package/src/supply-chain/container-artifact-contract.js.map +0 -1
- package/src/supply-chain/container-release.js.map +0 -1
- package/src/supply-chain/ecr-applicability.js.map +0 -1
- package/src/supply-chain/ecr-scanning.js.map +0 -1
- package/src/supply-chain/ecs-deployed-image.js.map +0 -1
- package/src/supply-chain/errors.js.map +0 -1
- package/src/supply-chain/generated-blueprint-trust-command.js.map +0 -1
- package/src/supply-chain/generated-command.js.map +0 -1
- package/src/supply-chain/generated-container-release-command.js.map +0 -1
- package/src/supply-chain/generated-ecr-collector-command.js.map +0 -1
- package/src/supply-chain/generated-files.js.map +0 -1
- package/src/supply-chain/generated-scanner-command.js.map +0 -1
- package/src/supply-chain/index.js.map +0 -1
- package/src/supply-chain/inventory.js.map +0 -1
- package/src/supply-chain/license-expression.js.map +0 -1
- package/src/supply-chain/pnpm-toolchain-authority.js.map +0 -1
- package/src/supply-chain/policy.js.map +0 -1
- package/src/supply-chain/publication.js.map +0 -1
- package/src/supply-chain/sbom.js.map +0 -1
- package/src/supply-chain/scanner.js.map +0 -1
- package/src/supply-chain/vendored-source.js.map +0 -1
- package/src/testing-evidence/fixture-scope.js.map +0 -1
- package/src/testing-evidence/index.js.map +0 -1
- package/src/testing-evidence/quarantine.js.map +0 -1
- package/src/testing-evidence/result.js.map +0 -1
- package/src/testing-evidence/runner-adapter.js.map +0 -1
- package/src/testing-evidence/sensitive-artifacts.js.map +0 -1
- package/src/validation.js.map +0 -1
- package/src/work-markers/index.js.map +0 -1
- package/src/work-markers/work-markers.js.map +0 -1
- package/src/workload-roles/account-baseline.js.map +0 -1
- package/src/workload-roles/authority.js.map +0 -1
- package/src/workload-roles/aws-adapter.js.map +0 -1
- package/src/workload-roles/aws-internal-handler.js.map +0 -1
- package/src/workload-roles/aws-s3-state.js.map +0 -1
- package/src/workload-roles/aws-sdk-control-plane.js.map +0 -1
- package/src/workload-roles/boundary.js.map +0 -1
- package/src/workload-roles/convergence.js.map +0 -1
- package/src/workload-roles/effective-policy.js.map +0 -1
- package/src/workload-roles/handler.js.map +0 -1
- package/src/workload-roles/history.js.map +0 -1
- package/src/workload-roles/index.js.map +0 -1
- package/src/workload-roles/injection.js.map +0 -1
- package/src/workload-roles/manifest.js.map +0 -1
- package/src/workload-roles/provisioner.js.map +0 -1
- package/src/workload-roles/registration.js.map +0 -1
- package/src/workload-roles/stage-boundary.js.map +0 -1
- package/src/workload-roles/standard-slice.js.map +0 -1
|
@@ -14,7 +14,7 @@ function configurationSeedDates(seed) {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
/** @internal */
|
|
17
|
-
function renderProductReleaseFiles(name, configurationSeed) {
|
|
17
|
+
function renderProductReleaseFiles(name, configurationSeed, sql = true) {
|
|
18
18
|
const configurationDates = configurationSeedDates(configurationSeed);
|
|
19
19
|
return {
|
|
20
20
|
'infra/container-images.ts': `import {
|
|
@@ -79,6 +79,35 @@ function readJson(root: string, candidate: string, label: string): unknown {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
+
function localContainerImage(local: { context: string; dockerfile: string }) {
|
|
83
|
+
const registry = process.env.EBK_CONTAINER_PACKAGE_REGISTRY?.trim() ?? '';
|
|
84
|
+
if (registry === '') return local;
|
|
85
|
+
if (registry.length > 2_048) {
|
|
86
|
+
throw new Error('Container package registry authority is invalid.');
|
|
87
|
+
}
|
|
88
|
+
let parsed: URL;
|
|
89
|
+
try {
|
|
90
|
+
parsed = new URL(registry);
|
|
91
|
+
} catch {
|
|
92
|
+
throw new Error('Container package registry authority is invalid.');
|
|
93
|
+
}
|
|
94
|
+
const normalized = parsed.href;
|
|
95
|
+
const localPlaintext = parsed.protocol === 'http:' &&
|
|
96
|
+
['127.0.0.1', 'localhost', 'host.docker.internal', '[::1]'].includes(parsed.hostname);
|
|
97
|
+
if (
|
|
98
|
+
(registry !== normalized && registry + '/' !== normalized) ||
|
|
99
|
+
(parsed.protocol !== 'https:' && !localPlaintext) ||
|
|
100
|
+
parsed.username !== '' || parsed.password !== '' ||
|
|
101
|
+
parsed.search !== '' || parsed.hash !== ''
|
|
102
|
+
) {
|
|
103
|
+
throw new Error('Container package registry authority is invalid.');
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
...local,
|
|
107
|
+
args: { NPM_CONFIG_REGISTRY: normalized.endsWith('/') ? normalized.slice(0, -1) : normalized },
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
82
111
|
export function resolveStandardContainerImage(input: {
|
|
83
112
|
artifactId: string;
|
|
84
113
|
exactDevelopment?: boolean;
|
|
@@ -87,7 +116,7 @@ export function resolveStandardContainerImage(input: {
|
|
|
87
116
|
stage: string;
|
|
88
117
|
}): {
|
|
89
118
|
environment: Record<string, string>;
|
|
90
|
-
image: string | { context: string; dockerfile: string };
|
|
119
|
+
image: string | { context: string; dockerfile: string; args?: Record<string, string> };
|
|
91
120
|
} {
|
|
92
121
|
const lifecycleAction = process.env.EBK_ACTION?.trim();
|
|
93
122
|
if (
|
|
@@ -113,6 +142,9 @@ export function resolveStandardContainerImage(input: {
|
|
|
113
142
|
(!protectedStage && !exactDevelopment) ||
|
|
114
143
|
(lifecycleAction !== undefined && lifecycleAction !== 'deploy')
|
|
115
144
|
) {
|
|
145
|
+
if (!protectedStage && !exactDevelopment) {
|
|
146
|
+
return { environment: {}, image: localContainerImage(input.local) };
|
|
147
|
+
}
|
|
116
148
|
return { environment: {}, image: input.local };
|
|
117
149
|
}
|
|
118
150
|
if (!COMMIT.test(input.sourceCommit)) {
|
|
@@ -133,6 +165,7 @@ export function resolveStandardContainerImage(input: {
|
|
|
133
165
|
process.env.EBK_SOURCE_COMMIT?.trim() ?? input.sourceCommit,
|
|
134
166
|
releaseSourceCommit: input.sourceCommit,
|
|
135
167
|
repositoryRoot,
|
|
168
|
+
sstEnvironmentProjectRoot: resolve(repositoryRoot, 'packages/${name}'),
|
|
136
169
|
});
|
|
137
170
|
const controls = readJson(
|
|
138
171
|
repositoryRoot,
|
|
@@ -1202,7 +1235,8 @@ describe('generated rollout host bindings', () => {
|
|
|
1202
1235
|
});
|
|
1203
1236
|
});
|
|
1204
1237
|
`,
|
|
1205
|
-
'web/src/lib/provider-delivery.ts': `import {
|
|
1238
|
+
'web/src/lib/provider-delivery.ts': `import { NextResponse } from 'next/server';
|
|
1239
|
+
import {
|
|
1206
1240
|
createSliceAwsConfigurationProvider,
|
|
1207
1241
|
createSliceLocalConfigurationProvider,
|
|
1208
1242
|
} from '../../../configuration/provider';
|
|
@@ -1259,9 +1293,6 @@ export function nextServerProviderDeliveryForSubject(
|
|
|
1259
1293
|
),
|
|
1260
1294
|
);
|
|
1261
1295
|
}
|
|
1262
|
-
`,
|
|
1263
|
-
'web/src/app/api/provider-delivery/route.ts': `import { NextResponse } from 'next/server';
|
|
1264
|
-
import { nextServerProviderDeliveryForSubject } from '../../../lib/provider-delivery';
|
|
1265
1296
|
|
|
1266
1297
|
export interface ProviderDeliveryRouteDependencies {
|
|
1267
1298
|
resolveAuthenticatedSubjectId(request: Request): Promise<string>;
|
|
@@ -1290,6 +1321,8 @@ export function createProviderDeliveryRoute(
|
|
|
1290
1321
|
});
|
|
1291
1322
|
};
|
|
1292
1323
|
}
|
|
1324
|
+
`,
|
|
1325
|
+
'web/src/app/api/provider-delivery/route.ts': `import { NextResponse } from 'next/server';
|
|
1293
1326
|
|
|
1294
1327
|
export async function GET() {
|
|
1295
1328
|
return NextResponse.json(
|
|
@@ -1661,11 +1694,20 @@ import {
|
|
|
1661
1694
|
lstatSync,
|
|
1662
1695
|
mkdirSync,
|
|
1663
1696
|
readFileSync,
|
|
1697
|
+
readlinkSync,
|
|
1664
1698
|
readdirSync,
|
|
1665
1699
|
realpathSync,
|
|
1666
1700
|
writeFileSync,
|
|
1667
1701
|
} from 'node:fs';
|
|
1668
|
-
import {
|
|
1702
|
+
import {
|
|
1703
|
+
basename,
|
|
1704
|
+
dirname,
|
|
1705
|
+
isAbsolute,
|
|
1706
|
+
join,
|
|
1707
|
+
relative,
|
|
1708
|
+
resolve,
|
|
1709
|
+
sep,
|
|
1710
|
+
} from 'node:path';
|
|
1669
1711
|
import {
|
|
1670
1712
|
createNextJsBuildOutputInventory,
|
|
1671
1713
|
validateContainerArtifactIdentity,
|
|
@@ -1680,12 +1722,41 @@ const sourceCommit =
|
|
|
1680
1722
|
if (!sourceCommit || !/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(sourceCommit)) {
|
|
1681
1723
|
throw new Error('EBK_SOURCE_COMMIT must be one exact Git object ID.');
|
|
1682
1724
|
}
|
|
1683
|
-
const repositoryRoot =
|
|
1684
|
-
'git',
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
)
|
|
1688
|
-
const repositoryRootReal =
|
|
1725
|
+
const repositoryRoot = realpathSync(
|
|
1726
|
+
execFileSync('git', ['rev-parse', '--show-toplevel'], {
|
|
1727
|
+
encoding: 'utf8',
|
|
1728
|
+
}).trim(),
|
|
1729
|
+
);
|
|
1730
|
+
const repositoryRootReal = repositoryRoot;
|
|
1731
|
+
const repositoryRootIdentity = lstatSync(repositoryRootReal, {
|
|
1732
|
+
bigint: true,
|
|
1733
|
+
});
|
|
1734
|
+
if (
|
|
1735
|
+
!repositoryRootIdentity.isDirectory() ||
|
|
1736
|
+
repositoryRootIdentity.ino === 0n
|
|
1737
|
+
) {
|
|
1738
|
+
throw new Error('Artifact capture cannot bind the repository identity.');
|
|
1739
|
+
}
|
|
1740
|
+
const repositoryRelativeRealPath = (absolute, pointer) => {
|
|
1741
|
+
const segments = [];
|
|
1742
|
+
let current = absolute;
|
|
1743
|
+
for (let depth = 0; depth <= 1024; depth += 1) {
|
|
1744
|
+
const identity = lstatSync(current, { bigint: true });
|
|
1745
|
+
if (
|
|
1746
|
+
identity.dev === repositoryRootIdentity.dev &&
|
|
1747
|
+
identity.ino === repositoryRootIdentity.ino
|
|
1748
|
+
) {
|
|
1749
|
+
return segments.reverse().join(sep);
|
|
1750
|
+
}
|
|
1751
|
+
const parent = dirname(current);
|
|
1752
|
+
if (parent === current) break;
|
|
1753
|
+
const segment = basename(current);
|
|
1754
|
+
if (!segment || segment === '.' || segment === '..') break;
|
|
1755
|
+
segments.push(segment);
|
|
1756
|
+
current = parent;
|
|
1757
|
+
}
|
|
1758
|
+
throw new Error(pointer + ' resolves outside the repository.');
|
|
1759
|
+
};
|
|
1689
1760
|
const requireCleanTree = () => {
|
|
1690
1761
|
const status = execFileSync(
|
|
1691
1762
|
'git',
|
|
@@ -1896,12 +1967,18 @@ if (
|
|
|
1896
1967
|
) {
|
|
1897
1968
|
throw new Error('Generated artifact inventory names must be unique.');
|
|
1898
1969
|
}
|
|
1899
|
-
const safeFiles = (paths, pointer) => {
|
|
1970
|
+
const safeFiles = (paths, pointer, { allowSymbolicLinks = false, nextJsBuildOutput = false } = {}) => {
|
|
1900
1971
|
if (!Array.isArray(paths) || paths.length === 0) {
|
|
1901
1972
|
throw new Error(pointer + ' must name at least one artifact path.');
|
|
1902
1973
|
}
|
|
1903
1974
|
const files = [];
|
|
1904
1975
|
const seen = new Set();
|
|
1976
|
+
const compilerCacheDirectories = new Set(
|
|
1977
|
+
nextJsBuildOutput
|
|
1978
|
+
? paths.filter((path) => typeof path === 'string' && path.split('/').at(-1) === '.next')
|
|
1979
|
+
.map((path) => resolve(repositoryRoot, path, 'cache'))
|
|
1980
|
+
: [],
|
|
1981
|
+
);
|
|
1905
1982
|
const visit = (candidate) => {
|
|
1906
1983
|
if (isAbsolute(candidate)) {
|
|
1907
1984
|
throw new Error(pointer + ' contains an absolute artifact path.');
|
|
@@ -1916,33 +1993,67 @@ const safeFiles = (paths, pointer) => {
|
|
|
1916
1993
|
throw new Error(pointer + ' contains a path outside the repository.');
|
|
1917
1994
|
}
|
|
1918
1995
|
let walked = repositoryRootReal;
|
|
1919
|
-
|
|
1996
|
+
const segments = pathFromRoot.split(sep);
|
|
1997
|
+
for (const [index, segment] of segments.entries()) {
|
|
1920
1998
|
walked = resolve(walked, segment);
|
|
1921
|
-
if (
|
|
1999
|
+
if (
|
|
2000
|
+
lstatSync(walked).isSymbolicLink() &&
|
|
2001
|
+
(!allowSymbolicLinks || index !== segments.length - 1)
|
|
2002
|
+
) {
|
|
1922
2003
|
throw new Error(pointer + ' may not traverse symbolic links.');
|
|
1923
2004
|
}
|
|
1924
2005
|
}
|
|
1925
2006
|
const real = realpathSync(absolute);
|
|
1926
|
-
const realFromRoot =
|
|
1927
|
-
if (
|
|
1928
|
-
realFromRoot === '..' ||
|
|
1929
|
-
realFromRoot.startsWith('..' + sep) ||
|
|
1930
|
-
isAbsolute(realFromRoot)
|
|
1931
|
-
) {
|
|
1932
|
-
throw new Error(pointer + ' resolves outside the repository.');
|
|
1933
|
-
}
|
|
2007
|
+
const realFromRoot = repositoryRelativeRealPath(real, pointer);
|
|
1934
2008
|
const stat = lstatSync(absolute);
|
|
1935
|
-
|
|
2009
|
+
const normalized = pathFromRoot.split(sep).join('/');
|
|
2010
|
+
if (compilerCacheDirectories.has(absolute)) {
|
|
2011
|
+
if (!stat.isDirectory() || stat.isSymbolicLink()) {
|
|
2012
|
+
throw new Error(pointer + ': Next.js compiler cache must be a real directory.');
|
|
2013
|
+
}
|
|
2014
|
+
return;
|
|
2015
|
+
}
|
|
2016
|
+
if (stat.isSymbolicLink()) {
|
|
2017
|
+
const targetText = readlinkSync(absolute, 'utf8');
|
|
2018
|
+
const target = realFromRoot.split(sep).join('/');
|
|
2019
|
+
const targetStat = lstatSync(real);
|
|
2020
|
+
const targetKind = targetStat.isDirectory()
|
|
2021
|
+
? 'directory'
|
|
2022
|
+
: targetStat.isFile()
|
|
2023
|
+
? 'file'
|
|
2024
|
+
: undefined;
|
|
2025
|
+
if (
|
|
2026
|
+
!allowSymbolicLinks ||
|
|
2027
|
+
Buffer.byteLength(targetText, 'utf8') > 4096 ||
|
|
2028
|
+
!targetKind
|
|
2029
|
+
) {
|
|
2030
|
+
throw new Error(
|
|
2031
|
+
pointer + ' contains an unsupported symbolic link.',
|
|
2032
|
+
);
|
|
2033
|
+
}
|
|
2034
|
+
if (seen.has(normalized)) {
|
|
2035
|
+
throw new Error(pointer + ' contains overlapping artifact paths.');
|
|
2036
|
+
}
|
|
2037
|
+
seen.add(normalized);
|
|
2038
|
+
files.push({
|
|
2039
|
+
kind: 'link',
|
|
2040
|
+
path: normalized,
|
|
2041
|
+
target,
|
|
2042
|
+
targetKind,
|
|
2043
|
+
targetTextSha256: createHash('sha256')
|
|
2044
|
+
.update(targetText, 'utf8')
|
|
2045
|
+
.digest('hex'),
|
|
2046
|
+
});
|
|
2047
|
+
} else if (stat.isDirectory()) {
|
|
1936
2048
|
for (const child of readdirSync(absolute).sort()) {
|
|
1937
2049
|
visit(join(pathFromRoot, child));
|
|
1938
2050
|
}
|
|
1939
2051
|
} else if (stat.isFile()) {
|
|
1940
|
-
const normalized = pathFromRoot.split(sep).join('/');
|
|
1941
2052
|
if (seen.has(normalized)) {
|
|
1942
2053
|
throw new Error(pointer + ' contains overlapping artifact paths.');
|
|
1943
2054
|
}
|
|
1944
2055
|
seen.add(normalized);
|
|
1945
|
-
files.push(
|
|
2056
|
+
files.push({ absolute: real, kind: 'file', path: normalized });
|
|
1946
2057
|
} else {
|
|
1947
2058
|
throw new Error(pointer + ' may contain only regular files.');
|
|
1948
2059
|
}
|
|
@@ -1957,16 +2068,29 @@ const safeFiles = (paths, pointer) => {
|
|
|
1957
2068
|
}
|
|
1958
2069
|
visit(candidate);
|
|
1959
2070
|
}
|
|
1960
|
-
return files.sort((
|
|
2071
|
+
return files.sort(({ path: left }, { path: right }) =>
|
|
1961
2072
|
left < right ? -1 : left > right ? 1 : 0,
|
|
1962
2073
|
);
|
|
1963
2074
|
};
|
|
1964
|
-
const digestPaths = (paths, pointer) => {
|
|
2075
|
+
const digestPaths = (paths, pointer, options) => {
|
|
1965
2076
|
const hash = createHash('sha256');
|
|
1966
|
-
for (const
|
|
1967
|
-
const
|
|
2077
|
+
for (const entry of safeFiles(paths, pointer, options)) {
|
|
2078
|
+
const { path } = entry;
|
|
1968
2079
|
hash.update(path, 'utf8');
|
|
1969
2080
|
hash.update('\\0');
|
|
2081
|
+
if (entry.kind === 'link') {
|
|
2082
|
+
hash.update(entry.kind, 'utf8');
|
|
2083
|
+
hash.update('\\0');
|
|
2084
|
+
hash.update(entry.target, 'utf8');
|
|
2085
|
+
hash.update('\\0');
|
|
2086
|
+
hash.update(entry.targetKind, 'utf8');
|
|
2087
|
+
hash.update('\\0');
|
|
2088
|
+
hash.update(entry.targetTextSha256, 'utf8');
|
|
2089
|
+
hash.update('\\0');
|
|
2090
|
+
continue;
|
|
2091
|
+
}
|
|
2092
|
+
const { absolute } = entry;
|
|
2093
|
+
const content = readFileSync(absolute);
|
|
1970
2094
|
hash.update(String(content.byteLength), 'utf8');
|
|
1971
2095
|
hash.update('\\0');
|
|
1972
2096
|
hash.update(content);
|
|
@@ -2019,6 +2143,11 @@ const artifacts = inventory.map((artifact, index) => {
|
|
|
2019
2143
|
pointer + ' does not match the generated candidate recipe.',
|
|
2020
2144
|
);
|
|
2021
2145
|
}
|
|
2146
|
+
const materialDigestOptions =
|
|
2147
|
+
artifact.buildArtifact?.support === 'supported' &&
|
|
2148
|
+
artifact.buildArtifact.family === 'nextjs-build-output'
|
|
2149
|
+
? { allowSymbolicLinks: true, nextJsBuildOutput: true }
|
|
2150
|
+
: undefined;
|
|
2022
2151
|
const common = {
|
|
2023
2152
|
buildRecipeDigest: digestPaths(
|
|
2024
2153
|
binding.recipePaths,
|
|
@@ -2038,6 +2167,7 @@ const artifacts = inventory.map((artifact, index) => {
|
|
|
2038
2167
|
digest: digestPaths(
|
|
2039
2168
|
binding.materialPaths,
|
|
2040
2169
|
pointer + '.materialPaths',
|
|
2170
|
+
materialDigestOptions,
|
|
2041
2171
|
),
|
|
2042
2172
|
stages: ['production', 'staging'],
|
|
2043
2173
|
};
|
|
@@ -2048,6 +2178,7 @@ const artifacts = inventory.map((artifact, index) => {
|
|
|
2048
2178
|
candidateDigest: digestPaths(
|
|
2049
2179
|
binding.materialPaths,
|
|
2050
2180
|
pointer + '.materialPaths',
|
|
2181
|
+
materialDigestOptions,
|
|
2051
2182
|
),
|
|
2052
2183
|
classification: 'stage-specific',
|
|
2053
2184
|
providerEvidence: artifact.providerEvidence,
|
|
@@ -2080,20 +2211,53 @@ const buildOutputs = inventory.flatMap((declared, index) => {
|
|
|
2080
2211
|
];
|
|
2081
2212
|
});
|
|
2082
2213
|
requireCleanTree();
|
|
2083
|
-
const
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2214
|
+
const localFederated =
|
|
2215
|
+
process.env.GITHUB_ACTIONS !== 'true' &&
|
|
2216
|
+
process.env.EBK_LOCAL_DEPLOYMENT_MODE === 'federated';
|
|
2217
|
+
const localStage = process.env.EBK_STAGE?.trim() ?? '';
|
|
2218
|
+
const localAccount = process.env.AWS_EXPECTED_ACCOUNT_ID?.trim() ?? '';
|
|
2219
|
+
const localRegion = process.env.AWS_REGION?.trim() ?? '';
|
|
2220
|
+
if (localFederated) {
|
|
2221
|
+
const policy = JSON.parse(
|
|
2222
|
+
readFileSync(join(repositoryRoot, 'ebk.repository-policy.json'), 'utf8'),
|
|
2223
|
+
);
|
|
2224
|
+
if (
|
|
2225
|
+
policy.deploymentProfile !== 'starter' ||
|
|
2226
|
+
!['development', 'staging'].includes(localStage) ||
|
|
2227
|
+
policy.deploymentAccounts?.[localStage] !== localAccount ||
|
|
2228
|
+
policy.deploymentRegion !== localRegion
|
|
2229
|
+
) {
|
|
2230
|
+
throw new Error(
|
|
2231
|
+
'Local release artifact capture requires a locally admitted exact starter deployment target; production requires protected GitHub authority.',
|
|
2232
|
+
);
|
|
2233
|
+
}
|
|
2234
|
+
}
|
|
2235
|
+
const provenance = localFederated
|
|
2236
|
+
? {
|
|
2237
|
+
runAttempt: '1',
|
|
2238
|
+
runId: (BigInt('0x' + sourceCommit.slice(0, 15)) + 1n).toString(),
|
|
2239
|
+
workflow:
|
|
2240
|
+
'local-federated/' +
|
|
2241
|
+
localStage +
|
|
2242
|
+
'/' +
|
|
2243
|
+
localAccount +
|
|
2244
|
+
'/' +
|
|
2245
|
+
localRegion,
|
|
2246
|
+
}
|
|
2247
|
+
: {
|
|
2248
|
+
runAttempt: process.env.GITHUB_RUN_ATTEMPT?.trim(),
|
|
2249
|
+
runId: process.env.GITHUB_RUN_ID?.trim(),
|
|
2250
|
+
workflow: process.env.GITHUB_WORKFLOW_REF?.trim(),
|
|
2251
|
+
};
|
|
2088
2252
|
if (
|
|
2089
|
-
process.env.GITHUB_ACTIONS
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2253
|
+
(!localFederated && process.env.GITHUB_ACTIONS !== 'true') ||
|
|
2254
|
+
!/^[1-9][0-9]*$/.test(provenance.runAttempt ?? '') ||
|
|
2255
|
+
!/^[1-9][0-9]*$/.test(provenance.runId ?? '') ||
|
|
2256
|
+
!provenance.workflow ||
|
|
2257
|
+
provenance.workflow.length > 512
|
|
2094
2258
|
) {
|
|
2095
2259
|
throw new Error(
|
|
2096
|
-
'
|
|
2260
|
+
'Release artifact capture requires exact GitHub or local-federated provenance.',
|
|
2097
2261
|
);
|
|
2098
2262
|
}
|
|
2099
2263
|
const evidence = {
|
|
@@ -2141,19 +2305,9 @@ import { isBoundedSafeReference } from '@empire-builder-kit/runtime/safe-referen
|
|
|
2141
2305
|
import ts from 'typescript';
|
|
2142
2306
|
|
|
2143
2307
|
const sourceCommit = process.env.EBK_SOURCE_COMMIT?.trim();
|
|
2144
|
-
|
|
2145
|
-
const runAttempt = process.env.GITHUB_RUN_ATTEMPT?.trim();
|
|
2146
|
-
const workflow = process.env.GITHUB_WORKFLOW_REF?.trim();
|
|
2147
|
-
if (
|
|
2148
|
-
process.env.GITHUB_ACTIONS !== 'true' ||
|
|
2149
|
-
!sourceCommit ||
|
|
2150
|
-
!/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(sourceCommit) ||
|
|
2151
|
-
!/^[1-9][0-9]*$/.test(runId ?? '') ||
|
|
2152
|
-
!/^[1-9][0-9]*$/.test(runAttempt ?? '') ||
|
|
2153
|
-
!isBoundedSafeReference(workflow, 'repository-evidence')
|
|
2154
|
-
) {
|
|
2308
|
+
if (!sourceCommit || !/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(sourceCommit)) {
|
|
2155
2309
|
throw new Error(
|
|
2156
|
-
'Release candidates require exact
|
|
2310
|
+
'Release candidates require one exact source commit.',
|
|
2157
2311
|
);
|
|
2158
2312
|
}
|
|
2159
2313
|
const git = (...args) =>
|
|
@@ -2166,7 +2320,64 @@ if (
|
|
|
2166
2320
|
'Release candidates require the exact clean source commit.',
|
|
2167
2321
|
);
|
|
2168
2322
|
}
|
|
2169
|
-
const repository =
|
|
2323
|
+
const repository =
|
|
2324
|
+
process.env.GITHUB_ACTIONS === 'true'
|
|
2325
|
+
? process.env.GITHUB_REPOSITORY?.trim()
|
|
2326
|
+
: git('remote', 'get-url', 'origin');
|
|
2327
|
+
if (
|
|
2328
|
+
!repository ||
|
|
2329
|
+
(process.env.GITHUB_ACTIONS === 'true' &&
|
|
2330
|
+
!/^[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+$/.test(repository))
|
|
2331
|
+
) {
|
|
2332
|
+
throw new Error(
|
|
2333
|
+
'Protected GitHub release candidates require the exact repository slug.',
|
|
2334
|
+
);
|
|
2335
|
+
}
|
|
2336
|
+
const localFederated =
|
|
2337
|
+
process.env.GITHUB_ACTIONS !== 'true' &&
|
|
2338
|
+
process.env.EBK_LOCAL_DEPLOYMENT_MODE === 'federated';
|
|
2339
|
+
const localStage = process.env.EBK_STAGE?.trim() ?? '';
|
|
2340
|
+
const localAccount = process.env.AWS_EXPECTED_ACCOUNT_ID?.trim() ?? '';
|
|
2341
|
+
const localRegion = process.env.AWS_REGION?.trim() ?? '';
|
|
2342
|
+
if (localFederated) {
|
|
2343
|
+
const policy = JSON.parse(
|
|
2344
|
+
readFileSync(new URL('../../../ebk.repository-policy.json', import.meta.url), 'utf8'),
|
|
2345
|
+
);
|
|
2346
|
+
if (
|
|
2347
|
+
policy.deploymentProfile !== 'starter' ||
|
|
2348
|
+
!['development', 'staging'].includes(localStage) ||
|
|
2349
|
+
policy.deploymentAccounts?.[localStage] !== localAccount ||
|
|
2350
|
+
policy.deploymentRegion !== localRegion
|
|
2351
|
+
) {
|
|
2352
|
+
throw new Error(
|
|
2353
|
+
'Local release candidates require a locally admitted exact starter deployment target; production requires protected GitHub authority.',
|
|
2354
|
+
);
|
|
2355
|
+
}
|
|
2356
|
+
}
|
|
2357
|
+
const runId = localFederated
|
|
2358
|
+
? (BigInt('0x' + sourceCommit.slice(0, 15)) + 1n).toString()
|
|
2359
|
+
: process.env.GITHUB_RUN_ID?.trim();
|
|
2360
|
+
const runAttempt = localFederated
|
|
2361
|
+
? '1'
|
|
2362
|
+
: process.env.GITHUB_RUN_ATTEMPT?.trim();
|
|
2363
|
+
const workflow = localFederated
|
|
2364
|
+
? 'local-federated/' +
|
|
2365
|
+
localStage +
|
|
2366
|
+
'/' +
|
|
2367
|
+
localAccount +
|
|
2368
|
+
'/' +
|
|
2369
|
+
localRegion
|
|
2370
|
+
: process.env.GITHUB_WORKFLOW_REF?.trim();
|
|
2371
|
+
if (
|
|
2372
|
+
(!localFederated && process.env.GITHUB_ACTIONS !== 'true') ||
|
|
2373
|
+
!/^[1-9][0-9]*$/.test(runId ?? '') ||
|
|
2374
|
+
!/^[1-9][0-9]*$/.test(runAttempt ?? '') ||
|
|
2375
|
+
!isBoundedSafeReference(workflow, 'repository-evidence')
|
|
2376
|
+
) {
|
|
2377
|
+
throw new Error(
|
|
2378
|
+
'Release candidates require exact GitHub or local-federated provenance.',
|
|
2379
|
+
);
|
|
2380
|
+
}
|
|
2170
2381
|
const builtAt = new Date(
|
|
2171
2382
|
git('show', '-s', '--format=%cI', sourceCommit),
|
|
2172
2383
|
).toISOString();
|
|
@@ -2312,10 +2523,14 @@ const contract = treeEvidence(
|
|
|
2312
2523
|
'contracts',
|
|
2313
2524
|
'ebk-release-contract-source',
|
|
2314
2525
|
);
|
|
2315
|
-
const
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2526
|
+
const sqlDeclared = ${sql};
|
|
2527
|
+
const migration = {
|
|
2528
|
+
...treeEvidence(
|
|
2529
|
+
sqlDeclared ? 'database/migrations' : 'data/persistence.json',
|
|
2530
|
+
'ebk-release-migration-source',
|
|
2531
|
+
),
|
|
2532
|
+
applicability: sqlDeclared ? 'declared-sql' : 'not-applicable',
|
|
2533
|
+
};
|
|
2319
2534
|
const testEvidence = JSON.parse(
|
|
2320
2535
|
readFileSync(
|
|
2321
2536
|
new URL('../.ebk/evidence/test-integration.json', import.meta.url),
|
|
@@ -2356,10 +2571,10 @@ if (
|
|
|
2356
2571
|
}
|
|
2357
2572
|
const migrationJournalPath =
|
|
2358
2573
|
'packages/${name}/database/migrations/meta/_journal.json';
|
|
2359
|
-
const migrationJournalContent = readFileSync(
|
|
2574
|
+
const migrationJournalContent = sqlDeclared ? readFileSync(
|
|
2360
2575
|
new URL('../database/migrations/meta/_journal.json', import.meta.url),
|
|
2361
2576
|
'utf8',
|
|
2362
|
-
);
|
|
2577
|
+
) : JSON.stringify({ entries: [] });
|
|
2363
2578
|
const migrationJournal = JSON.parse(migrationJournalContent);
|
|
2364
2579
|
const baselineMigrationJournalContent = trackedAt(
|
|
2365
2580
|
baselineCommit,
|
|
@@ -2403,7 +2618,8 @@ const databaseCompatibilityReport = {
|
|
|
2403
2618
|
baselineDigest: digest(baselineMigrationJournalContent ?? ''),
|
|
2404
2619
|
candidateDigest: digest(migrationJournalContent),
|
|
2405
2620
|
classification:
|
|
2406
|
-
preservedMigrations && !destructiveMigration
|
|
2621
|
+
preservedMigrations && !destructiveMigration &&
|
|
2622
|
+
(sqlDeclared || baselineMigrationJournalContent === undefined)
|
|
2407
2623
|
? 'compatible'
|
|
2408
2624
|
: 'incompatible',
|
|
2409
2625
|
kind: 'database-migration-compatibility',
|
|
@@ -3987,7 +4203,7 @@ const requireSupplyChainManifest = (path) => {
|
|
|
3987
4203
|
).value;
|
|
3988
4204
|
if (
|
|
3989
4205
|
finalSbom?.bomFormat !== 'CycloneDX' ||
|
|
3990
|
-
finalSbom.specVersion !== '1.
|
|
4206
|
+
finalSbom.specVersion !== '1.7' ||
|
|
3991
4207
|
finalSbom.version !== 1 ||
|
|
3992
4208
|
finalSbom.serialNumber?.toLowerCase() !== reference.serialNumber ||
|
|
3993
4209
|
!Array.isArray(finalSbom.components) ||
|
|
@@ -3997,7 +4213,7 @@ const requireSupplyChainManifest = (path) => {
|
|
|
3997
4213
|
typeof finalSbom.metadata !== 'object' ||
|
|
3998
4214
|
!Array.isArray(finalSbom.metadata.properties)
|
|
3999
4215
|
) {
|
|
4000
|
-
throw new Error('Final OCI SBOM is not complete CycloneDX 1.
|
|
4216
|
+
throw new Error('Final OCI SBOM is not complete CycloneDX 1.7 evidence.');
|
|
4001
4217
|
}
|
|
4002
4218
|
const properties = new Map();
|
|
4003
4219
|
for (const property of finalSbom.metadata.properties) {
|
|
@@ -4097,7 +4313,7 @@ const requireSupplyChainManifest = (path) => {
|
|
|
4097
4313
|
).value;
|
|
4098
4314
|
if (
|
|
4099
4315
|
platformSbom?.bomFormat !== 'CycloneDX' ||
|
|
4100
|
-
platformSbom.specVersion !== '1.
|
|
4316
|
+
platformSbom.specVersion !== '1.7' ||
|
|
4101
4317
|
platformSbom.version !== 1 ||
|
|
4102
4318
|
platformSbom.serialNumber?.toLowerCase() !==
|
|
4103
4319
|
platform.sbom.serialNumber ||
|
|
@@ -4112,7 +4328,7 @@ const requireSupplyChainManifest = (path) => {
|
|
|
4112
4328
|
name: component?.name,
|
|
4113
4329
|
purl: component?.purl ?? '',
|
|
4114
4330
|
type: component?.type,
|
|
4115
|
-
version: component?.version,
|
|
4331
|
+
version: component?.version ?? '',
|
|
4116
4332
|
}))
|
|
4117
4333
|
.sort((left, right) =>
|
|
4118
4334
|
JSON.stringify(left) < JSON.stringify(right)
|
|
@@ -4122,11 +4338,31 @@ const requireSupplyChainManifest = (path) => {
|
|
|
4122
4338
|
: 0,
|
|
4123
4339
|
);
|
|
4124
4340
|
if (
|
|
4125
|
-
|
|
4341
|
+
platformSbom.components.some(
|
|
4126
4342
|
(component) =>
|
|
4127
|
-
typeof component
|
|
4343
|
+
typeof component?.name !== 'string' ||
|
|
4344
|
+
component.name.length === 0 ||
|
|
4128
4345
|
typeof component.type !== 'string' ||
|
|
4129
|
-
|
|
4346
|
+
component.type.length === 0 ||
|
|
4347
|
+
!(
|
|
4348
|
+
(typeof component.version === 'string' &&
|
|
4349
|
+
component.version.length > 0) ||
|
|
4350
|
+
(component.type === 'file' &&
|
|
4351
|
+
component.version === undefined &&
|
|
4352
|
+
component.purl === undefined &&
|
|
4353
|
+
component.name.startsWith('/') &&
|
|
4354
|
+
component.name.length <= 4_096 &&
|
|
4355
|
+
Array.isArray(component.hashes) &&
|
|
4356
|
+
component.hashes.length === 2 &&
|
|
4357
|
+
component.hashes[0]?.alg === 'SHA-1' &&
|
|
4358
|
+
/^[a-f0-9]{40}$/.test(
|
|
4359
|
+
component.hashes[0]?.content ?? '',
|
|
4360
|
+
) &&
|
|
4361
|
+
component.hashes[1]?.alg === 'SHA-256' &&
|
|
4362
|
+
/^[a-f0-9]{64}$/.test(
|
|
4363
|
+
component.hashes[1]?.content ?? '',
|
|
4364
|
+
))
|
|
4365
|
+
),
|
|
4130
4366
|
) ||
|
|
4131
4367
|
supplyChainDigest(componentSet) !== platform.sbom.componentSetDigest
|
|
4132
4368
|
) {
|
|
@@ -6165,7 +6401,11 @@ if (['stopped', 'recovering'].includes(result.rollout.phase)) {
|
|
|
6165
6401
|
sourceInputPaths: [
|
|
6166
6402
|
`packages/${name}/configuration`,
|
|
6167
6403
|
`packages/${name}/infra`,
|
|
6168
|
-
`packages/${name}/web`,
|
|
6404
|
+
`packages/${name}/web/next-env.d.ts`,
|
|
6405
|
+
`packages/${name}/web/next.config.ts`,
|
|
6406
|
+
`packages/${name}/web/open-next.config.ts`,
|
|
6407
|
+
`packages/${name}/web/src`,
|
|
6408
|
+
`packages/${name}/web/tsconfig.json`,
|
|
6169
6409
|
],
|
|
6170
6410
|
},
|
|
6171
6411
|
buildArtifact: {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** @internal */
|
|
2
|
-
export declare function renderProductReliabilityFiles(name: string, pascalName: string, reviewedAt: string): Readonly<Record<string, string>>;
|
|
2
|
+
export declare function renderProductReliabilityFiles(name: string, pascalName: string, reviewedAt: string, sql?: boolean): Readonly<Record<string, string>>;
|