@empire-builder-kit/nx 1.0.0-rc.31 → 1.0.0-rc.32
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/package.json +7 -3
- package/src/aws/identity.js +1 -1
- package/src/aws/identity.js.map +1 -1
- package/src/aws-authority/stage-authority.d.ts +2 -0
- package/src/aws-authority/stage-authority.js +152 -20
- package/src/aws-authority/stage-authority.js.map +1 -1
- package/src/cli/main.d.ts +2 -0
- package/src/cli/main.js +11 -0
- package/src/cli/main.js.map +1 -1
- package/src/developer-agent/workspace-inspection.js +11 -2
- package/src/developer-agent/workspace-inspection.js.map +1 -1
- 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 +7 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +2 -0
- package/src/executors/infrastructure-plan/infrastructure-plan.js +18 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.js.map +1 -1
- package/src/executors/local-deploy/local-deploy.d.ts +2 -0
- package/src/executors/local-deploy/local-deploy.js +17 -0
- package/src/executors/local-deploy/local-deploy.js.map +1 -1
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +2 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +2 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js.map +1 -1
- package/src/executors/secret-initialize/secret-initialize.d.ts +2 -0
- package/src/executors/secret-initialize/secret-initialize.js +14 -0
- package/src/executors/secret-initialize/secret-initialize.js.map +1 -1
- package/src/executors/secret-metadata/secret-metadata.d.ts +2 -0
- package/src/executors/secret-metadata/secret-metadata.js +14 -0
- package/src/executors/secret-metadata/secret-metadata.js.map +1 -1
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +2 -0
- package/src/executors/sst-lifecycle/run-sst-command.js +17 -2
- package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
- package/src/foundation/provision-logical-database.js +2 -0
- package/src/foundation/provision-logical-database.js.map +1 -1
- package/src/generators/preset/generator.js +6 -1
- package/src/generators/preset/generator.js.map +1 -1
- package/src/generators/preset/schema.d.ts +3 -0
- package/src/generators/preset/schema.json +5 -5
- package/src/generators/preset/workspace-files-performance-load.js +21 -12
- package/src/generators/preset/workspace-files-performance-load.js.map +1 -1
- package/src/generators/preset/workspace-files-stage-authority.d.ts +2 -0
- package/src/generators/preset/workspace-files-stage-authority.js +264 -60
- package/src/generators/preset/workspace-files-stage-authority.js.map +1 -1
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +6 -1
- package/src/generators/preset/workspace-files-thin-deploy.js +102 -36
- package/src/generators/preset/workspace-files-thin-deploy.js.map +1 -1
- package/src/generators/preset/workspace-files-thin-docs.js +26 -10
- package/src/generators/preset/workspace-files-thin-docs.js.map +1 -1
- package/src/generators/preset/workspace-files.d.ts +1 -0
- package/src/generators/preset/workspace-files.js +111 -493
- package/src/generators/preset/workspace-files.js.map +1 -1
- package/src/generators/repository-policy/repository-policy.js +149 -19
- package/src/generators/repository-policy/repository-policy.js.map +1 -1
- package/src/generators/repository-policy/schema.d.ts +2 -0
- package/src/generators/repository-policy/schema.json +11 -1
- package/src/generators/repository-policy/tree-policy.d.ts +3 -0
- package/src/generators/repository-policy/tree-policy.js +25 -0
- package/src/generators/repository-policy/tree-policy.js.map +1 -0
- package/src/generators/slice/built-in-plan-async-work-files.js +41 -0
- package/src/generators/slice/built-in-plan-async-work-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +2 -0
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +19 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +21 -3
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +20 -1
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-operations-files.js +22 -2
- package/src/generators/slice/built-in-plan-operations-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-performance-files.js +60 -0
- package/src/generators/slice/built-in-plan-performance-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-secret-runtime-files.js +13 -0
- package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-testing-files.js +20 -0
- package/src/generators/slice/built-in-plan-testing-files.js.map +1 -1
- package/src/generators/slice/slice.js +3 -3
- package/src/generators/slice/slice.js.map +1 -1
- package/src/generators/upgrade/upgrade.js +25 -28
- package/src/generators/upgrade/upgrade.js.map +1 -1
- package/src/generators/workload/performance-registration.js +4 -8
- package/src/generators/workload/performance-registration.js.map +1 -1
- package/src/git-policy/github-bootstrap.d.ts +10 -2
- package/src/git-policy/github-bootstrap.js +109 -13
- package/src/git-policy/github-bootstrap.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/local-dev/tls.js +5 -1
- package/src/local-dev/tls.js.map +1 -1
- package/src/repository-policy/policy.d.ts +16 -1
- package/src/repository-policy/policy.js +226 -12
- package/src/repository-policy/policy.js.map +1 -1
- package/src/schemas/repository-policy-v1.json +46 -2
- package/src/secrets/adapters.d.ts +2 -1
- package/src/secrets/adapters.js +12 -2
- package/src/secrets/adapters.js.map +1 -1
- package/src/supply-chain/generated-container-release-command.js +41 -18
- package/src/supply-chain/generated-container-release-command.js.map +1 -1
- package/src/workspace-deployment/identity.d.ts +3 -0
- package/src/workspace-deployment/identity.js +22 -0
- package/src/workspace-deployment/identity.js.map +1 -0
- package/src/workspace-deployment/index.d.ts +3 -0
- package/src/workspace-deployment/index.js +7 -0
- package/src/workspace-deployment/index.js.map +1 -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-evidence.js.map +1 -0
- package/src/workspace-deployment/migration.d.ts +27 -0
- package/src/workspace-deployment/migration.js +109 -0
- package/src/workspace-deployment/migration.js.map +1 -0
- package/src/workspace-deployment/ownership.d.ts +81 -0
- package/src/workspace-deployment/ownership.js +381 -0
- package/src/workspace-deployment/ownership.js.map +1 -0
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.THIN_DEPLOY_WORKFLOW_PATH = void 0;
|
|
4
4
|
exports.renderThinDeployVerifyCaller = renderThinDeployVerifyCaller;
|
|
5
|
+
exports.exactStageDeployerGuardScript = exactStageDeployerGuardScript;
|
|
6
|
+
exports.canonicalStageAuthorityDerivationScript = canonicalStageAuthorityDerivationScript;
|
|
7
|
+
exports.exactStagingPromotionPullGuardScript = exactStagingPromotionPullGuardScript;
|
|
5
8
|
exports.stagingPromotionReceiptValidationScript = stagingPromotionReceiptValidationScript;
|
|
6
9
|
exports.restoredCandidateValidationScript = restoredCandidateValidationScript;
|
|
7
10
|
exports.stagingPromotionSealScript = stagingPromotionSealScript;
|
|
@@ -51,9 +54,7 @@ function workflowCallTrigger(profile) {
|
|
|
51
54
|
function renderThinDeployVerifyCaller(profile) {
|
|
52
55
|
if (profile === 'starter')
|
|
53
56
|
return '';
|
|
54
|
-
const protectedBranchCondition =
|
|
55
|
-
? "github.ref == 'refs/heads/main'"
|
|
56
|
-
: "(github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main')";
|
|
57
|
+
const protectedBranchCondition = "(github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main')";
|
|
57
58
|
return `
|
|
58
59
|
|
|
59
60
|
deploy:
|
|
@@ -86,6 +87,73 @@ function indentedScript(source, spaces) {
|
|
|
86
87
|
.map((line) => `${prefix}${line}`)
|
|
87
88
|
.join('\n');
|
|
88
89
|
}
|
|
90
|
+
/** @internal Exported for executable source-contract tests. */
|
|
91
|
+
function exactStageDeployerGuardScript(operation, accountVariable) {
|
|
92
|
+
return `read -r caller_account caller_arn <<< "$(aws sts get-caller-identity --query '[Account,Arn]' --output text)"
|
|
93
|
+
[ "$caller_account" = "${accountVariable}" ] || {
|
|
94
|
+
echo '${operation} caller account differs from committed policy'; exit 1;
|
|
95
|
+
}
|
|
96
|
+
caller_partition="\${caller_arn#arn:}"
|
|
97
|
+
caller_partition="\${caller_partition%%:*}"
|
|
98
|
+
[ "$caller_partition" = "$AWS_PARTITION" ] || {
|
|
99
|
+
echo '${operation} caller partition differs from committed policy'; exit 1;
|
|
100
|
+
}
|
|
101
|
+
expected_role_arn="arn:$AWS_PARTITION:iam::${accountVariable}:role/ebk/$EBK_STAGE/deployment/ebk-$EBK_STAGE-deploy"
|
|
102
|
+
[ "$AWS_DEPLOY_ROLE_ARN" = "$expected_role_arn" ] || {
|
|
103
|
+
echo '${operation} configured role is not the canonical stage deployer'; exit 1;
|
|
104
|
+
}
|
|
105
|
+
expected_caller_prefix="arn:$AWS_PARTITION:sts::${accountVariable}:assumed-role/ebk-$EBK_STAGE-deploy/"
|
|
106
|
+
case "$caller_arn" in
|
|
107
|
+
"$expected_caller_prefix"?*) ;;
|
|
108
|
+
*) echo '${operation} caller is not the exact stage deployer'; exit 1 ;;
|
|
109
|
+
esac`;
|
|
110
|
+
}
|
|
111
|
+
/** @internal Shared verbatim by every generated protected workflow. */
|
|
112
|
+
function canonicalStageAuthorityDerivationScript() {
|
|
113
|
+
return `case "$EBK_STAGE" in
|
|
114
|
+
development) account_id="$EBK_DEVELOPMENT_ACCOUNT" ;;
|
|
115
|
+
staging) account_id="$EBK_STAGING_ACCOUNT" ;;
|
|
116
|
+
production) account_id="$EBK_PRODUCTION_ACCOUNT" ;;
|
|
117
|
+
*) exit 1 ;;
|
|
118
|
+
esac
|
|
119
|
+
case "$account_id" in *[!0-9]*|'') exit 1 ;; esac
|
|
120
|
+
[ "\${#account_id}" -eq 12 ]
|
|
121
|
+
case "$EBK_REGION" in
|
|
122
|
+
cn-*) partition=aws-cn; audience=sts.amazonaws.com.cn ;;
|
|
123
|
+
us-gov-*) partition=aws-us-gov; audience=sts.amazonaws.com ;;
|
|
124
|
+
us-iso-*|us-isob-*|eu-isoe-*|us-isof-*)
|
|
125
|
+
echo 'The committed Region belongs to an unsupported AWS partition.' >&2
|
|
126
|
+
exit 1
|
|
127
|
+
;;
|
|
128
|
+
*) partition=aws; audience=sts.amazonaws.com ;;
|
|
129
|
+
esac
|
|
130
|
+
role_arn="arn:$partition:iam::$account_id:role/ebk/$EBK_STAGE/deployment/ebk-$EBK_STAGE-deploy"
|
|
131
|
+
echo "account_id=$account_id" >> "$GITHUB_OUTPUT"
|
|
132
|
+
echo "audience=$audience" >> "$GITHUB_OUTPUT"
|
|
133
|
+
echo "partition=$partition" >> "$GITHUB_OUTPUT"
|
|
134
|
+
echo "role_arn=$role_arn" >> "$GITHUB_OUTPUT"`;
|
|
135
|
+
}
|
|
136
|
+
/** @internal Exported for executable source-contract tests. */
|
|
137
|
+
function exactStagingPromotionPullGuardScript() {
|
|
138
|
+
return `read -r caller_account caller_arn <<< "$(aws sts get-caller-identity --query '[Account,Arn]' --output text)"
|
|
139
|
+
[ "$caller_account" = "$EBK_STAGING_ACCOUNT_ID" ] || {
|
|
140
|
+
echo 'Staging registry caller account differs from committed policy'; exit 1;
|
|
141
|
+
}
|
|
142
|
+
caller_partition="\${caller_arn#arn:}"
|
|
143
|
+
caller_partition="\${caller_partition%%:*}"
|
|
144
|
+
[ "$caller_partition" = "$AWS_PARTITION" ] || {
|
|
145
|
+
echo 'Staging registry caller partition differs from committed policy'; exit 1;
|
|
146
|
+
}
|
|
147
|
+
expected_role_arn="arn:$AWS_PARTITION:iam::$EBK_STAGING_ACCOUNT_ID:role/ebk/promotion/ebk-staging-promotion-pull"
|
|
148
|
+
[ "$AWS_STAGING_PROMOTION_PULL_ROLE_ARN" = "$expected_role_arn" ] || {
|
|
149
|
+
echo 'Staging registry configured role is not the canonical promotion pull role'; exit 1;
|
|
150
|
+
}
|
|
151
|
+
expected_caller_prefix="arn:$AWS_PARTITION:sts::$EBK_STAGING_ACCOUNT_ID:assumed-role/ebk-staging-promotion-pull/"
|
|
152
|
+
case "$caller_arn" in
|
|
153
|
+
"$expected_caller_prefix"?*) ;;
|
|
154
|
+
*) echo 'Staging registry caller is not the exact promotion pull role'; exit 1 ;;
|
|
155
|
+
esac`;
|
|
156
|
+
}
|
|
89
157
|
/** @internal Shared verbatim with the generated workflow and executable tests. */
|
|
90
158
|
function stagingPromotionReceiptValidationScript() {
|
|
91
159
|
return `import { createHash } from 'node:crypto';
|
|
@@ -395,12 +463,15 @@ jobs:
|
|
|
395
463
|
account_id: \${{ steps.account.outputs.account_id }}
|
|
396
464
|
has_slices: \${{ steps.policy.outputs.has_slices }}
|
|
397
465
|
ordered_projects: \${{ steps.policy.outputs.ordered_projects }}
|
|
466
|
+
oidc_audience: \${{ steps.account.outputs.audience }}
|
|
467
|
+
partition: \${{ steps.account.outputs.partition }}
|
|
398
468
|
profile: \${{ steps.policy.outputs.deployment_profile }}
|
|
399
469
|
project: \${{ steps.route.outputs.project }}
|
|
400
470
|
region: \${{ steps.policy.outputs.deployment_region }}
|
|
401
471
|
slice_projects: \${{ steps.policy.outputs.slice_projects }}
|
|
402
472
|
staging_account_id: \${{ steps.policy.outputs.staging_account_id }}
|
|
403
473
|
stage: \${{ steps.route.outputs.stage }}
|
|
474
|
+
stage_deploy_role_arn: \${{ steps.account.outputs.role_arn }}
|
|
404
475
|
steps:
|
|
405
476
|
- name: Verify exact protected branch tip before setup
|
|
406
477
|
env:
|
|
@@ -453,8 +524,6 @@ jobs:
|
|
|
453
524
|
persist-credentials: false
|
|
454
525
|
ref: \${{ env.EBK_DEPLOYMENT_SOURCE_COMMIT }}
|
|
455
526
|
- uses: ${actionPins.pnpmSetup}
|
|
456
|
-
with:
|
|
457
|
-
version: ${toolVersions.pnpm}
|
|
458
527
|
- uses: ${actionPins.setupNode}
|
|
459
528
|
with:
|
|
460
529
|
node-version: ${toolVersions.node}
|
|
@@ -516,23 +585,15 @@ jobs:
|
|
|
516
585
|
EBK_REPOSITORY_PROFILE: \${{ steps.policy.outputs.deployment_profile }}
|
|
517
586
|
run: test "$EBK_RENDERED_PROFILE" = "$EBK_REPOSITORY_PROFILE"
|
|
518
587
|
- id: account
|
|
519
|
-
name:
|
|
588
|
+
name: Derive canonical committed stage authority
|
|
520
589
|
env:
|
|
521
590
|
EBK_DEVELOPMENT_ACCOUNT: \${{ steps.policy.outputs.development_account_id }}
|
|
522
591
|
EBK_PRODUCTION_ACCOUNT: \${{ steps.policy.outputs.production_account_id }}
|
|
592
|
+
EBK_REGION: \${{ steps.policy.outputs.deployment_region }}
|
|
523
593
|
EBK_STAGE: \${{ steps.route.outputs.stage }}
|
|
524
594
|
EBK_STAGING_ACCOUNT: \${{ steps.policy.outputs.staging_account_id }}
|
|
525
595
|
run: |
|
|
526
|
-
|
|
527
|
-
case "$EBK_STAGE" in
|
|
528
|
-
development) account_id="$EBK_DEVELOPMENT_ACCOUNT" ;;
|
|
529
|
-
staging) account_id="$EBK_STAGING_ACCOUNT" ;;
|
|
530
|
-
production) account_id="$EBK_PRODUCTION_ACCOUNT" ;;
|
|
531
|
-
*) exit 1 ;;
|
|
532
|
-
esac
|
|
533
|
-
case "$account_id" in *[!0-9]*|'') exit 1 ;; esac
|
|
534
|
-
[ "\${#account_id}" -eq 12 ]
|
|
535
|
-
echo "account_id=$account_id" >> "$GITHUB_OUTPUT"
|
|
596
|
+
${indentedScript(`set -euo pipefail\n${canonicalStageAuthorityDerivationScript()}`, 10)}
|
|
536
597
|
|
|
537
598
|
immutable-artifacts:
|
|
538
599
|
name: prepare exact immutable release artifacts
|
|
@@ -739,15 +800,16 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
739
800
|
contents: read
|
|
740
801
|
id-token: write
|
|
741
802
|
env:
|
|
742
|
-
AWS_DEPLOY_ROLE_ARN: \${{
|
|
803
|
+
AWS_DEPLOY_ROLE_ARN: \${{ needs.prepare.outputs.stage_deploy_role_arn }}
|
|
743
804
|
AWS_EXPECTED_ACCOUNT_ID: \${{ vars.AWS_EXPECTED_ACCOUNT_ID }}
|
|
805
|
+
AWS_PARTITION: \${{ needs.prepare.outputs.partition }}
|
|
744
806
|
AWS_REGION: \${{ vars.AWS_REGION }}
|
|
745
807
|
EBK_ACTION: deploy
|
|
746
808
|
EBK_DEPLOYMENT_PROFILE: \${{ needs.prepare.outputs.profile }}
|
|
747
809
|
EBK_POLICY_ACCOUNT_ID: \${{ needs.prepare.outputs.account_id }}
|
|
748
810
|
EBK_POLICY_REGION: \${{ needs.prepare.outputs.region }}
|
|
749
811
|
EBK_RELEASE_SOURCE_COMMIT: \${{ needs.immutable-artifacts.outputs.source_commit }}
|
|
750
|
-
EBK_SOURCE_COMMIT: \${{
|
|
812
|
+
EBK_SOURCE_COMMIT: \${{ inputs.source_commit || github.sha }}
|
|
751
813
|
EBK_STAGE: \${{ needs.prepare.outputs.stage }}
|
|
752
814
|
EBK_SLICE_PROJECTS: \${{ needs.prepare.outputs.slice_projects }}
|
|
753
815
|
steps:
|
|
@@ -764,8 +826,6 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
764
826
|
env:
|
|
765
827
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
766
828
|
ACTIONS_ID_TOKEN_REQUEST_URL: ''
|
|
767
|
-
with:
|
|
768
|
-
version: ${toolVersions.pnpm}
|
|
769
829
|
- uses: ${actionPins.setupNode}
|
|
770
830
|
env:
|
|
771
831
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
@@ -812,6 +872,7 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
812
872
|
- name: Assume the current stage deployment role for container build
|
|
813
873
|
uses: ${actionPins.configureAwsCredentials}
|
|
814
874
|
with:
|
|
875
|
+
audience: \${{ needs.prepare.outputs.oidc_audience }}
|
|
815
876
|
aws-region: \${{ vars.AWS_REGION }}
|
|
816
877
|
role-session-name: ebk-container-\${{ matrix.architecture }}-\${{ github.run_id }}-\${{ github.run_attempt }}
|
|
817
878
|
role-to-assume: \${{ env.AWS_DEPLOY_ROLE_ARN }}
|
|
@@ -824,6 +885,7 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
824
885
|
- name: Build and run exact native OCI artifacts
|
|
825
886
|
run: |
|
|
826
887
|
set -euo pipefail
|
|
888
|
+
${indentedScript(exactStageDeployerGuardScript('Container build', '$EBK_POLICY_ACCOUNT_ID'), 10)}
|
|
827
889
|
IFS=',' read -r -a projects <<< "$EBK_SLICE_PROJECTS"
|
|
828
890
|
for project in "\${projects[@]}"; do
|
|
829
891
|
test -n "$project" || continue
|
|
@@ -858,15 +920,16 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
858
920
|
artifact_digest: \${{ steps.retain.outputs.artifact-digest }}
|
|
859
921
|
artifact_id: \${{ steps.retain.outputs.artifact-id }}
|
|
860
922
|
env:
|
|
861
|
-
AWS_DEPLOY_ROLE_ARN: \${{
|
|
923
|
+
AWS_DEPLOY_ROLE_ARN: \${{ needs.prepare.outputs.stage_deploy_role_arn }}
|
|
862
924
|
AWS_EXPECTED_ACCOUNT_ID: \${{ vars.AWS_EXPECTED_ACCOUNT_ID }}
|
|
925
|
+
AWS_PARTITION: \${{ needs.prepare.outputs.partition }}
|
|
863
926
|
AWS_REGION: \${{ vars.AWS_REGION }}
|
|
864
927
|
EBK_ACTION: deploy
|
|
865
928
|
EBK_DEPLOYMENT_PROFILE: \${{ needs.prepare.outputs.profile }}
|
|
866
929
|
EBK_POLICY_ACCOUNT_ID: \${{ needs.prepare.outputs.account_id }}
|
|
867
930
|
EBK_POLICY_REGION: \${{ needs.prepare.outputs.region }}
|
|
868
931
|
EBK_RELEASE_SOURCE_COMMIT: \${{ needs.immutable-artifacts.outputs.source_commit }}
|
|
869
|
-
EBK_SOURCE_COMMIT: \${{
|
|
932
|
+
EBK_SOURCE_COMMIT: \${{ inputs.source_commit || github.sha }}
|
|
870
933
|
EBK_STAGE: \${{ needs.prepare.outputs.stage }}
|
|
871
934
|
EBK_SLICE_PROJECTS: \${{ needs.prepare.outputs.slice_projects }}
|
|
872
935
|
steps:
|
|
@@ -883,8 +946,6 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
883
946
|
env:
|
|
884
947
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
885
948
|
ACTIONS_ID_TOKEN_REQUEST_URL: ''
|
|
886
|
-
with:
|
|
887
|
-
version: ${toolVersions.pnpm}
|
|
888
949
|
- uses: ${actionPins.setupNode}
|
|
889
950
|
env:
|
|
890
951
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
@@ -940,6 +1001,7 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
940
1001
|
- name: Assume the current stage deployment role for container assembly
|
|
941
1002
|
uses: ${actionPins.configureAwsCredentials}
|
|
942
1003
|
with:
|
|
1004
|
+
audience: \${{ needs.prepare.outputs.oidc_audience }}
|
|
943
1005
|
aws-region: \${{ vars.AWS_REGION }}
|
|
944
1006
|
role-session-name: ebk-container-assemble-\${{ github.run_id }}-\${{ github.run_attempt }}
|
|
945
1007
|
role-to-assume: \${{ env.AWS_DEPLOY_ROLE_ARN }}
|
|
@@ -952,6 +1014,7 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
952
1014
|
- name: Assemble exact dual-architecture indexes
|
|
953
1015
|
run: |
|
|
954
1016
|
set -euo pipefail
|
|
1017
|
+
${indentedScript(exactStageDeployerGuardScript('Container assembly', '$EBK_POLICY_ACCOUNT_ID'), 10)}
|
|
955
1018
|
IFS=',' read -r -a projects <<< "$EBK_SLICE_PROJECTS"
|
|
956
1019
|
for project in "\${projects[@]}"; do
|
|
957
1020
|
test -n "$project" || continue
|
|
@@ -993,8 +1056,9 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
993
1056
|
artifact_digest: \${{ steps.retain.outputs.artifact-digest }}
|
|
994
1057
|
artifact_id: \${{ steps.retain.outputs.artifact-id }}
|
|
995
1058
|
env:
|
|
996
|
-
AWS_DEPLOY_ROLE_ARN: \${{
|
|
1059
|
+
AWS_DEPLOY_ROLE_ARN: \${{ needs.prepare.outputs.stage_deploy_role_arn }}
|
|
997
1060
|
AWS_EXPECTED_ACCOUNT_ID: \${{ vars.AWS_EXPECTED_ACCOUNT_ID }}
|
|
1061
|
+
AWS_PARTITION: \${{ needs.prepare.outputs.partition }}
|
|
998
1062
|
AWS_REGION: \${{ vars.AWS_REGION }}
|
|
999
1063
|
EBK_ACTION: deploy
|
|
1000
1064
|
EBK_DEPLOYMENT_PROFILE: \${{ needs.prepare.outputs.profile }}
|
|
@@ -1002,7 +1066,7 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
1002
1066
|
EBK_POLICY_REGION: \${{ needs.prepare.outputs.region }}
|
|
1003
1067
|
EBK_POLICY_STAGING_ACCOUNT_ID: \${{ needs.prepare.outputs.staging_account_id }}
|
|
1004
1068
|
EBK_RELEASE_SOURCE_COMMIT: \${{ needs.immutable-artifacts.outputs.source_commit }}
|
|
1005
|
-
EBK_SOURCE_COMMIT: \${{
|
|
1069
|
+
EBK_SOURCE_COMMIT: \${{ inputs.source_commit || github.sha }}
|
|
1006
1070
|
EBK_STAGE: production
|
|
1007
1071
|
EBK_SLICE_PROJECTS: \${{ needs.prepare.outputs.slice_projects }}
|
|
1008
1072
|
steps:
|
|
@@ -1019,8 +1083,6 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
1019
1083
|
env:
|
|
1020
1084
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
1021
1085
|
ACTIONS_ID_TOKEN_REQUEST_URL: ''
|
|
1022
|
-
with:
|
|
1023
|
-
version: ${toolVersions.pnpm}
|
|
1024
1086
|
- uses: ${actionPins.setupNode}
|
|
1025
1087
|
env:
|
|
1026
1088
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
@@ -1077,17 +1139,20 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
1077
1139
|
- name: Assume exact staging registry pull role
|
|
1078
1140
|
uses: ${actionPins.configureAwsCredentials}
|
|
1079
1141
|
with:
|
|
1142
|
+
audience: \${{ needs.prepare.outputs.oidc_audience }}
|
|
1080
1143
|
aws-region: \${{ vars.AWS_STAGING_PROMOTION_REGION }}
|
|
1081
1144
|
role-session-name: ebk-staging-container-pull-\${{ github.run_id }}-\${{ github.run_attempt }}
|
|
1082
1145
|
role-to-assume: \${{ secrets.AWS_STAGING_PROMOTION_PULL_ROLE_ARN }}
|
|
1083
1146
|
- name: Authenticate exact staging source registry
|
|
1084
1147
|
env:
|
|
1148
|
+
AWS_STAGING_PROMOTION_PULL_ROLE_ARN: \${{ secrets.AWS_STAGING_PROMOTION_PULL_ROLE_ARN }}
|
|
1085
1149
|
EBK_STAGING_ACCOUNT_ID: \${{ vars.AWS_STAGING_PROMOTION_EXPECTED_ACCOUNT_ID }}
|
|
1086
1150
|
EBK_STAGING_REGION: \${{ vars.AWS_STAGING_PROMOTION_REGION }}
|
|
1087
1151
|
run: |
|
|
1088
1152
|
set -euo pipefail
|
|
1089
1153
|
[ "$EBK_STAGING_ACCOUNT_ID" = "$EBK_POLICY_STAGING_ACCOUNT_ID" ]
|
|
1090
|
-
[ "$
|
|
1154
|
+
[ "$EBK_STAGING_REGION" = "$EBK_POLICY_REGION" ]
|
|
1155
|
+
${indentedScript(exactStagingPromotionPullGuardScript(), 10)}
|
|
1091
1156
|
[ "$EBK_STAGING_ACCOUNT_ID" != "$AWS_EXPECTED_ACCOUNT_ID" ]
|
|
1092
1157
|
registry_suffix=.com
|
|
1093
1158
|
case "$EBK_STAGING_REGION" in cn-*) registry_suffix=.com.cn ;; esac
|
|
@@ -1114,6 +1179,7 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
1114
1179
|
- name: Assume the production deployment role for container promotion
|
|
1115
1180
|
uses: ${actionPins.configureAwsCredentials}
|
|
1116
1181
|
with:
|
|
1182
|
+
audience: \${{ needs.prepare.outputs.oidc_audience }}
|
|
1117
1183
|
aws-region: \${{ vars.AWS_REGION }}
|
|
1118
1184
|
role-session-name: ebk-production-container-push-\${{ github.run_id }}-\${{ github.run_attempt }}
|
|
1119
1185
|
role-to-assume: \${{ env.AWS_DEPLOY_ROLE_ARN }}
|
|
@@ -1125,7 +1191,7 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
1125
1191
|
set -euo pipefail
|
|
1126
1192
|
[ "$AWS_EXPECTED_ACCOUNT_ID" = "$EBK_POLICY_PRODUCTION_ACCOUNT_ID" ]
|
|
1127
1193
|
[ "$AWS_REGION" = "$EBK_POLICY_REGION" ]
|
|
1128
|
-
|
|
1194
|
+
${indentedScript(exactStageDeployerGuardScript('Container promotion', '$AWS_EXPECTED_ACCOUNT_ID'), 10)}
|
|
1129
1195
|
IFS=',' read -r -a projects <<< "$EBK_SLICE_PROJECTS"
|
|
1130
1196
|
for project in "\${projects[@]}"; do
|
|
1131
1197
|
test -n "$project" || continue
|
|
@@ -1181,8 +1247,9 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
1181
1247
|
contents: read
|
|
1182
1248
|
id-token: write
|
|
1183
1249
|
env:
|
|
1184
|
-
AWS_DEPLOY_ROLE_ARN: \${{
|
|
1250
|
+
AWS_DEPLOY_ROLE_ARN: \${{ needs.prepare.outputs.stage_deploy_role_arn }}
|
|
1185
1251
|
AWS_EXPECTED_ACCOUNT_ID: \${{ vars.AWS_EXPECTED_ACCOUNT_ID }}
|
|
1252
|
+
AWS_PARTITION: \${{ needs.prepare.outputs.partition }}
|
|
1186
1253
|
AWS_REGION: \${{ vars.AWS_REGION }}
|
|
1187
1254
|
EBK_ACTION: \${{ needs.prepare.outputs.action }}
|
|
1188
1255
|
EBK_ALLOW_PRODUCTION_REMOVE: \${{ vars.EBK_ALLOW_PRODUCTION_REMOVE }}
|
|
@@ -1195,9 +1262,9 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
1195
1262
|
EBK_ORDERED_PROJECTS: \${{ needs.prepare.outputs.ordered_projects }}
|
|
1196
1263
|
EBK_POLICY_ACCOUNT_ID: \${{ needs.prepare.outputs.account_id }}
|
|
1197
1264
|
EBK_POLICY_REGION: \${{ needs.prepare.outputs.region }}
|
|
1198
|
-
EBK_RELEASE_SOURCE_COMMIT: \${{ needs.immutable-artifacts.outputs.source_commit ||
|
|
1265
|
+
EBK_RELEASE_SOURCE_COMMIT: \${{ needs.immutable-artifacts.outputs.source_commit || inputs.source_commit || github.sha }}
|
|
1199
1266
|
EBK_SLICE_PROJECTS: \${{ needs.prepare.outputs.slice_projects }}
|
|
1200
|
-
EBK_SOURCE_COMMIT: \${{
|
|
1267
|
+
EBK_SOURCE_COMMIT: \${{ inputs.source_commit || github.sha }}
|
|
1201
1268
|
EBK_STAGE: \${{ needs.prepare.outputs.stage }}
|
|
1202
1269
|
steps:
|
|
1203
1270
|
- name: Check out immutable deployment source
|
|
@@ -1213,8 +1280,6 @@ ${indentedScript(stagingPromotionReceiptValidationScript(), 10)}
|
|
|
1213
1280
|
env:
|
|
1214
1281
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
1215
1282
|
ACTIONS_ID_TOKEN_REQUEST_URL: ''
|
|
1216
|
-
with:
|
|
1217
|
-
version: ${toolVersions.pnpm}
|
|
1218
1283
|
- uses: ${actionPins.setupNode}
|
|
1219
1284
|
env:
|
|
1220
1285
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
@@ -1355,6 +1420,7 @@ ${indentedScript(restoredCandidateValidationScript(), 10)}
|
|
|
1355
1420
|
- name: Assume the one stage deployment role
|
|
1356
1421
|
uses: ${actionPins.configureAwsCredentials}
|
|
1357
1422
|
with:
|
|
1423
|
+
audience: \${{ needs.prepare.outputs.oidc_audience }}
|
|
1358
1424
|
aws-region: \${{ vars.AWS_REGION }}
|
|
1359
1425
|
role-session-name: ebk-native-\${{ github.run_id }}-\${{ github.run_attempt }}
|
|
1360
1426
|
role-to-assume: \${{ env.AWS_DEPLOY_ROLE_ARN }}
|
|
@@ -1363,7 +1429,7 @@ ${indentedScript(restoredCandidateValidationScript(), 10)}
|
|
|
1363
1429
|
set -euo pipefail
|
|
1364
1430
|
[ "$AWS_EXPECTED_ACCOUNT_ID" = "$EBK_POLICY_ACCOUNT_ID" ]
|
|
1365
1431
|
[ "$AWS_REGION" = "$EBK_POLICY_REGION" ]
|
|
1366
|
-
|
|
1432
|
+
${indentedScript(exactStageDeployerGuardScript('Native lifecycle', '$EBK_POLICY_ACCOUNT_ID'), 10)}
|
|
1367
1433
|
- name: Run ordered native lifecycle targets
|
|
1368
1434
|
env:
|
|
1369
1435
|
ACTIONS_ID_TOKEN_REQUEST_TOKEN: ''
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-files-thin-deploy.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-thin-deploy.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"workspace-files-thin-deploy.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-thin-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,9 +28,11 @@ generated branch rules, CODEOWNER review, resolved-conversation requirement,
|
|
|
28
28
|
merge-only history, and read-only default workflow permissions.
|
|
29
29
|
|
|
30
30
|
The managed \`Deploy\` workflow is the single protected infrastructure path.
|
|
31
|
-
It
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
It derives the canonical stage deployment-role ARN from committed account,
|
|
32
|
+
stage, Region-partition, and naming policy; the GitHub environment supplies no
|
|
33
|
+
deployment-role secret. It invokes the same root Nx lifecycle used locally,
|
|
34
|
+
runs migrations and Slice smoke checks after each successful native SST
|
|
35
|
+
deployment, and retains one bounded deployment receipt.
|
|
34
36
|
For isolated profiles, the protected-branch \`Verify\` run calls the reusable
|
|
35
37
|
\`Deploy\` workflow only after acceptance and its immutable candidate succeed.
|
|
36
38
|
The call binds the exact source commit, branch ref, run, and attempt, consumes
|
|
@@ -48,12 +50,25 @@ candidate recorded by the successful staging deployment.
|
|
|
48
50
|
When \`starter\` uses its optional manual workflow, \`develop\` routes to
|
|
49
51
|
development and \`main\` routes to production; starter has no automatic caller.
|
|
50
52
|
Every protected job checks out an immutable commit, validates managed source,
|
|
51
|
-
and assumes the
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
and assumes the derived stage role through the matching GitHub environment.
|
|
54
|
+
The reusable Verify caller delegates job-scoped \`id-token: write\`; each
|
|
55
|
+
credential-bearing job proves both the configured canonical ARN and terminal
|
|
56
|
+
STS assumed-role caller immediately before OCI or lifecycle mutation.
|
|
57
|
+
|
|
58
|
+
Run GitHub bootstrap in report mode first to obtain the repository's canonical
|
|
59
|
+
slug and immutable owner/repository IDs. It configures repository and environment
|
|
60
|
+
policy but never creates AWS credentials, secrets, or roles. For an existing
|
|
61
|
+
repository, keep its current OIDC subject active while you render and apply the
|
|
62
|
+
stage AWS trust for the reported immutable subject, then read back and simulate
|
|
63
|
+
that effective trust. Only after AWS accepts the immutable subject should you
|
|
64
|
+
rerun GitHub bootstrap with \`--apply\` and the exact
|
|
65
|
+
\`--immutableOidcTrustAcknowledgement=aws-trust-ready:<repositoryIdentity.subjectPrefix>\`
|
|
66
|
+
reported by the same inspection. A missing, wrong, or stale acknowledgement
|
|
67
|
+
blocks the subject cutover before any GitHub setting is changed.
|
|
68
|
+
This AWS-trust-first order prevents protected deployment from being stranded.
|
|
69
|
+
Place the exact account and Region in their protected stage environment.
|
|
70
|
+
Isolated production additionally keeps its exact staging promotion-pull role
|
|
71
|
+
secret; do not add repository-scope fallbacks.
|
|
57
72
|
`,
|
|
58
73
|
'docs/repository-operating-policy.md': `# Repository Operating Policy
|
|
59
74
|
|
|
@@ -91,7 +106,8 @@ and the exact TTY acknowledgement
|
|
|
91
106
|
commit, a real TTY, and
|
|
92
107
|
\`deploy:production:<account>:<region>:<source-commit>\`.
|
|
93
108
|
|
|
94
|
-
GitHub deploys immutable commits through one
|
|
109
|
+
GitHub deploys immutable commits through one canonical stage-scoped OIDC role
|
|
110
|
+
whose ARN is derived from committed policy. The
|
|
95
111
|
starter workflow is optional; isolated profiles require GitHub for the stages
|
|
96
112
|
declared by their profile. Direct user SST invocation is outside the supported
|
|
97
113
|
paved road.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-files-thin-docs.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-thin-docs.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"workspace-files-thin-docs.js","sourceRoot":"","sources":["../../../../../../packages/nx/src/generators/preset/workspace-files-thin-docs.ts"],"names":[],"mappings":";;AAMA,4EA6OC;AAnPD,+DAI0C;AAE1C,SAAgB,gCAAgC,CAAC,OAGhD;IACC,MAAM,MAAM,GAAG,IAAA,iCAAsB,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,IAAA,mCAAwB,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3E,OAAO;QACL,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI;;;;;;;kBAOhB,OAAO,CAAC,iBAAiB,yBAAyB,SAAS;;;;;CAK5E;QACG,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiD3B;QACG,qCAAqC,EAAE;;;IAGvC,OAAO,CAAC,iBAAiB;EAC3B,SAAS;;;;;aAKE,OAAO,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DxB;QACG,+BAA+B,EAAE;;;;yBAIZ,OAAO,CAAC,iBAAiB;EAChD,SAAS;;;;;;;;;;eAUI,cAAc;;CAE5B;QACG,sCAAsC,EAAE;;;;;;;gBAO5B,OAAO,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;yCA0Ba,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CtD;KACE,CAAC;AACJ,CAAC"}
|
|
@@ -6,6 +6,7 @@ export interface WorkspaceFileOptions {
|
|
|
6
6
|
deploymentRegion?: string | null;
|
|
7
7
|
frameworkVersion: string;
|
|
8
8
|
name: string;
|
|
9
|
+
workspaceDeploymentId?: string;
|
|
9
10
|
}
|
|
10
11
|
export declare const BLUEPRINT_TRUST_AUTHORITY_PATH: "tools/blueprint-trust-check.mjs";
|
|
11
12
|
export declare function isRawWorkspaceAuthorityPath(path: string): boolean;
|