@empire-builder-kit/nx 1.0.0-rc.32 → 1.0.0-rc.34
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 +3 -3
- package/src/aws-authority/stage-authority.js +4 -0
- package/src/aws-authority/stage-authority.js.map +1 -1
- package/src/developer-agent/model.d.ts +1 -1
- package/src/developer-agent/operation-registry.js +25 -3
- package/src/developer-agent/operation-registry.js.map +1 -1
- package/src/developer-agent/planning.js +9 -4
- package/src/developer-agent/planning.js.map +1 -1
- package/src/developer-agent/validation.js +5 -1
- package/src/developer-agent/validation.js.map +1 -1
- package/src/executors/deployment-plan/deployment-plan.js +3 -0
- package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
- package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +1 -0
- package/src/executors/foundation-profile-preflight/production-database-safeguard.js +4 -2
- package/src/executors/foundation-profile-preflight/production-database-safeguard.js.map +1 -1
- package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
- package/src/executors/local-deploy/local-deploy.d.ts +21 -3
- package/src/executors/local-deploy/local-deploy.js +201 -1
- package/src/executors/local-deploy/local-deploy.js.map +1 -1
- package/src/executors/local-deploy/schema.json +21 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +13 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +323 -137
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js.map +1 -1
- package/src/executors/router-waf-rehearsal/schema.json +5 -0
- package/src/executors/secret-initialize/secret-initialize.d.ts +2 -0
- package/src/executors/secret-initialize/secret-initialize.js +57 -3
- package/src/executors/secret-initialize/secret-initialize.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 +4 -0
- package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
- package/src/foundation/index.d.ts +1 -0
- package/src/foundation/index.js +8 -0
- package/src/foundation/index.js.map +1 -1
- package/src/foundation/private-smoke-access.d.ts +23 -0
- package/src/foundation/private-smoke-access.js +127 -0
- package/src/foundation/private-smoke-access.js.map +1 -0
- package/src/foundation/private-smoke-admission.d.ts +43 -0
- package/src/foundation/private-smoke-admission.js +158 -0
- package/src/foundation/private-smoke-admission.js.map +1 -0
- package/src/foundation/private-smoke-control-plane.d.ts +18 -0
- package/src/foundation/private-smoke-control-plane.js +173 -0
- package/src/foundation/private-smoke-control-plane.js.map +1 -0
- package/src/generators/preset/dependency-overrides.d.ts +8 -0
- package/src/generators/preset/dependency-overrides.js +55 -0
- package/src/generators/preset/dependency-overrides.js.map +1 -0
- package/src/generators/preset/tool-versions.d.ts +2 -0
- package/src/generators/preset/tool-versions.js +3 -1
- package/src/generators/preset/tool-versions.js.map +1 -1
- package/src/generators/preset/workspace-files-developer-agent.js +19 -6
- package/src/generators/preset/workspace-files-developer-agent.js.map +1 -1
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +16 -1
- package/src/generators/preset/workspace-files-thin-deploy.js +946 -26
- package/src/generators/preset/workspace-files-thin-deploy.js.map +1 -1
- package/src/generators/preset/workspace-files-thin-docs.d.ts +2 -0
- package/src/generators/preset/workspace-files-thin-docs.js +66 -6
- package/src/generators/preset/workspace-files-thin-docs.js.map +1 -1
- package/src/generators/preset/workspace-files.d.ts +8 -1
- package/src/generators/preset/workspace-files.js +97 -21
- package/src/generators/preset/workspace-files.js.map +1 -1
- package/src/generators/repository-policy/repository-policy.js +1 -0
- 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 +27 -7
- 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 +89 -0
- package/src/generators/slice/built-in-plan-background-work-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js +20 -4
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js +22 -9
- package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-operations-files.js +8 -10
- package/src/generators/slice/built-in-plan-operations-files.js.map +1 -1
- package/src/generators/slice/built-in-plan.js +3 -0
- package/src/generators/slice/built-in-plan.js.map +1 -1
- package/src/generators/upgrade/upgrade.d.ts +12 -0
- package/src/generators/upgrade/upgrade.js +84 -9
- package/src/generators/upgrade/upgrade.js.map +1 -1
- package/src/generators/workload/workload.js +1 -1
- package/src/git-policy/action-pins.d.ts +5 -0
- package/src/git-policy/action-pins.js +5 -0
- package/src/git-policy/action-pins.js.map +1 -1
- package/src/git-policy/github-bootstrap.d.ts +10 -2
- package/src/git-policy/github-bootstrap.js +129 -34
- package/src/git-policy/github-bootstrap.js.map +1 -1
- package/src/git-policy/routing.d.ts +5 -1
- package/src/git-policy/routing.js +50 -0
- package/src/git-policy/routing.js.map +1 -1
- package/src/performance/model.d.ts +1 -1
- package/src/repository-policy/capacity-migration.d.ts +3 -0
- package/src/repository-policy/capacity-migration.js +21 -0
- package/src/repository-policy/capacity-migration.js.map +1 -0
- package/src/repository-policy/foundation-profile.js +10 -0
- package/src/repository-policy/foundation-profile.js.map +1 -1
- package/src/repository-policy/policy.d.ts +13 -2
- package/src/repository-policy/policy.js +47 -2
- package/src/repository-policy/policy.js.map +1 -1
- package/src/schemas/repository-policy-v1.json +56 -17
- package/src/supply-chain/generated-container-release-command.js +281 -74
- package/src/supply-chain/generated-container-release-command.js.map +1 -1
- package/src/supply-chain/generated-files.js +21 -11
- package/src/supply-chain/generated-files.js.map +1 -1
- package/src/supply-chain/generated-scanner-command.js +1 -1
- package/src/supply-chain/scanner.js +3 -0
- package/src/supply-chain/scanner.js.map +1 -1
- package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
- package/src/workspace-deployment/affected-lifecycle.js +84 -0
- package/src/workspace-deployment/affected-lifecycle.js.map +1 -0
- package/src/workspace-deployment/index.d.ts +1 -0
- package/src/workspace-deployment/index.js +1 -0
- package/src/workspace-deployment/index.js.map +1 -1
|
@@ -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":";;;AAwGA,oEA2CC;AAYD,sEAcC;AAGD,sEAsBC;AAGD,0FAuBC;AAGD,oFAmBC;AAGD,0FAiFC;AAGD,8EAmCC;AAGD,gEAmFC;AAGD,gFAoEC;AAk6DD,4EAUC;AAx7ED,yDAA0D;AAE7C,QAAA,yBAAyB,GACpC,8BAAuC,CAAC;AAoC1C,iFAAiF;AACpE,QAAA,4BAA4B,GAAG,uBAAgC,CAAC;AAO7E,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,MAAM,cAAc,GAAG,2BAA2B,CAAC;AACnD,MAAM,UAAU,GACd,iEAAiE,CAAC;AAEpE,SAAS,aAAa,CAAC,OAAkC;IACvD,IACE,OAAO,CAAC,sBAAsB,KAAK,iBAAiB;QACpD,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACtC,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4CAA4C,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAA0B,EAC1B,eAA2C,gBAAgB;IAE3D,OAAO,OAAO,KAAK,SAAS,IAAI,YAAY,KAAK,OAAO;QACtD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;;;;;;;;;;;;;;;;;CAiBL,CAAC;AACF,CAAC;AAED,SAAgB,4BAA4B,CAC1C,OAA0B,EAC1B,eAA2C,gBAAgB,EAC3D,yBAA2D,cAAc;IAEzE,MAAM,KAAK,GAAG,YAAY,KAAK,OAAO,CAAC;IACvC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAC/C,+DAA+D;IAC/D,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,wBAAwB,GAAG,KAAK;QACpC,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,sBAAsB,KAAK,iBAAiB;YAC5C,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,yEAAyE,CAAC;IAChF,OAAO;;;;;;;;QAQD,wBAAwB;;;;;;;;;;;;;;;;;;;qBAmBX,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,MAAc;IACpD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM;SACV,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,mFAAmF;AACnF,SAAgB,6BAA6B;IAC3C,OAAO;;;;;;;;;;;;KAYJ,CAAC;AACN,CAAC;AAED,+DAA+D;AAC/D,SAAgB,6BAA6B,CAC3C,SAAiB,EACjB,eAAuB;IAEvB,OAAO;yBACgB,eAAe;UAC9B,SAAS;;;;;UAKT,SAAS;;6CAE0B,eAAe;;UAElD,SAAS;;kDAE+B,eAAe;;;aAGpD,SAAS;KACjB,CAAC;AACN,CAAC;AAED,uEAAuE;AACvE,SAAgB,uCAAuC;IACrD,OAAO;;;;;;;;;;;;;;;;;;;;;8CAqBqC,CAAC;AAC/C,CAAC;AAED,+DAA+D;AAC/D,SAAgB,oCAAoC;IAClD,OAAO;;;;;;;;;;;;;;;;;KAiBJ,CAAC;AACN,CAAC;AAED,kFAAkF;AAClF,SAAgB,uCAAuC;IACrD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4HA+EmH,CAAC;AAC7H,CAAC;AAED,kFAAkF;AAClF,SAAgB,iCAAiC;IAC/C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wGAiC+F,CAAC;AACzG,CAAC;AAED,kFAAkF;AAClF,SAAgB,0BAA0B;IACxC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHAiF8G,CAAC;AACxH,CAAC;AAED,kFAAkF;AAClF,SAAgB,kCAAkC;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEN,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAkC;IAClE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACtE,MAAM,cAAc,GAAG,OAAO,CAAC,sBAAsB,KAAK,iBAAiB,CAAC;IAC5E,OAAO;;;;EAIP,mBAAmB,CAAC,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAAC;;;;;;;mDAOX,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;;;;sBAK5F,iBAAiB,KAAK,SAAS;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;;;;qBAKN;;;;;;;;;;;;;;;;;;;8BAmBsB,YAAY,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;qEAsBtC,cAAc;QACZ,CAAC,CAAC;;oFAEwE;QAC1E,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA+CU,UAAU,CAAC,QAAQ;;;;;gBAKnB,UAAU,CAAC,SAAS;gBACpB,UAAU,CAAC,SAAS;;0BAEV,YAAY,CAAC,IAAI;;;;;;;;;yBASlB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2DlB,IAAI;;;kCAGM,iBAAiB;;;;;;;;;;;;EAYjD,cAAc,CAAC,sBAAsB,uCAAuC,EAAE,EAAE,EAAE,EAAE,CAAC,GACnF,cAAc;QACZ,CAAC,CAAC;;;;;;;;;;;;;EAaN,cAAc,CAAC,sBAAsB,uCAAuC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;QACnF,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAkCc,UAAU,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAqInB,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BzC,cAAc,CAAC,uCAAuC,EAAE,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA+E/C,UAAU,CAAC,QAAQ;;;;;;;;gBAQnB,UAAU,CAAC,SAAS;;;;gBAIpB,UAAU,CAAC,SAAS;;;;;0BAKV,YAAY,CAAC,IAAI;;;;;;;;;;2BAUhB,IAAI;;gBAEf,UAAU,CAAC,gBAAgB;;;;;;;;;;;gBAW3B,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA2B3B,UAAU,CAAC,uBAAuB;;;;;;;;;;;;;gBAalC,UAAU,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;EAoB9B,cAAc,CAAC,6BAA6B,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;gBAUhF,UAAU,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA+CzB,UAAU,CAAC,QAAQ;;;;;;;;gBAQnB,UAAU,CAAC,SAAS;;;;gBAIpB,UAAU,CAAC,SAAS;;;;;0BAKV,YAAY,CAAC,IAAI;;;;;;;;;;2BAUhB,IAAI;;gBAEf,UAAU,CAAC,gBAAgB;;;;;;;;;;gBAU3B,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;gBA0B3B,UAAU,CAAC,uBAAuB;;;;;;;;;;;;;;;EAehD,cAAc,CAAC,6BAA6B,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;;;gBAanF,UAAU,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA4CzB,UAAU,CAAC,QAAQ;;;;;;;;gBAQnB,UAAU,CAAC,SAAS;;;;gBAIpB,UAAU,CAAC,SAAS;;;;;0BAKV,YAAY,CAAC,IAAI;;;;;;;;;;2BAUhB,IAAI;;gBAEf,UAAU,CAAC,gBAAgB;;;;;;;;;;gBAU3B,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA2B3B,UAAU,CAAC,uBAAuB;;;;;;;;;;;;;;;EAehD,cAAc,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;gBAyB5C,UAAU,CAAC,uBAAuB;;;;;;;;;;;;;;EAchD,cAAc,CAAC,6BAA6B,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;;gBAYtF,UAAU,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAuEzB,UAAU,CAAC,QAAQ;;;;;;;;gBAQnB,UAAU,CAAC,SAAS;;;;gBAIpB,UAAU,CAAC,SAAS;;;;;0BAKV,YAAY,CAAC,IAAI;;;;;;;;;;2BAUhB,IAAI;;;gBAGf,UAAU,CAAC,gBAAgB;;;;;;;;;;;gBAW3B,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;;;gBAiB3B,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;gBAa3B,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCzC,cAAc,CAAC,iCAAiC,EAAE,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAiC9B,IAAI;;;;;;2BAMJ,IAAI;;;;;;;;2EAQ4C,uCAAoB;;;;;;;;;EAS7F,cAAc,CAAC,6BAA6B,EAAE,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;gBAmBrC,UAAU,CAAC,uBAAuB;;;;;;;;;;;EAWhD,cAAc,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;0BAsBvE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;EAyB5B,cAAc,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;0BAW3E,IAAI;;;;;;;;;;;;;EAa5B,cAAc,CAAC,0BAA0B,EAAE,EAAE,EAAE,CAAC;;;;;;;;;EAShD,cAAc,CAAC,kCAAkC,EAAE,EAAE,EAAE,CAAC;;;;gBAI1C,UAAU,CAAC,cAAc;;;;;;;;;;EAUvC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAChI,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,OAAkC;IAC3D,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACnD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA8BO,UAAU,CAAC,QAAQ;;;;;;;;gBAQnB,UAAU,CAAC,SAAS;;;;gBAIpB,UAAU,CAAC,SAAS;;;;;0BAKV,YAAY,CAAC,IAAI;;;;;;;;;;2BAUhB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA8Bf,UAAU,CAAC,uBAAuB;;;;;;;;;;;EAWhD,cAAc,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;EAuBnG,cAAc,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;0BAU3E,IAAI;;;;gBAId,UAAU,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCxC,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,OAAkC;IAClE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,kBAAkB,GAAG,CACzB,aAAqB,EACrB,EAAE,CAAC;gBACS,UAAU,CAAC,QAAQ;;;;;;;;gBAQnB,UAAU,CAAC,SAAS;;;;gBAIpB,UAAU,CAAC,SAAS;;;;;0BAKV,YAAY,CAAC,IAAI;;;;;;gBAM3B,aAAa;;;;2BAIF,IAAI,mBAAmB,CAAC;IACjD,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;YAgBZ,CAAC;IACX,MAAM,kBAAkB,GAAG;;;iDAGoB,CAAC;IAChD,OAAO;;;;;;;;;;EAUP,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BlB,kBAAkB,CAAC,+DAA+D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;gBAyBrE,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BzC,cAAc,CAAC,uCAAuC,EAAE,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;gBAmB/C,UAAU,CAAC,gBAAgB;;;;;;;;;;gBAU3B,UAAU,CAAC,gBAAgB;;;;;;;;EAQzC,aAAa;;gBAEC,UAAU,CAAC,uBAAuB;;;;;;;;;;;;;;;EAehD,cAAc,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC;;;;;;;EAO1D,aAAa;;gBAEC,UAAU,CAAC,uBAAuB;;;;;;;;;;;;;;EAchD,cAAc,CAAC,6BAA6B,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;gBAWtF,UAAU,CAAC,cAAc;;;;;;;;;;;;;;;;EAgBvC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiClB,kBAAkB,CAAC,yDAAyD,CAAC;;gBAE/D,UAAU,CAAC,gBAAgB;;;;;;;;;;gBAU3B,UAAU,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BzC,cAAc,CAAC,iCAAiC,EAAE,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;2BA0B9B,IAAI;;;;;2BAKJ,IAAI;;;;;;;2EAO4C,uCAAoB;;;;;;;;EAQ7F,cAAc,CAAC,6BAA6B,EAAE,EAAE,EAAE,CAAC;EACnD,aAAa;;gBAEC,UAAU,CAAC,uBAAuB;;;;;;;;;;;EAWhD,cAAc,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;wBAWzE,IAAI;;;;;;;;;;;;;EAa1B,cAAc,CAAC,6BAA6B,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;0BAW3E,IAAI;;;;;;;;;EAS5B,cAAc,CAAC,kCAAkC,EAAE,EAAE,EAAE,CAAC;;;;gBAI1C,UAAU,CAAC,cAAc;;;;;;;;;;;;;;;;;;EAkBvC,kBAAkB;;;;;;;;gDAQ4B,oCAA4B;;;;;;wDAMpB,oCAA4B;;;;;;;;;;;;;;;;;CAiBnF,CAAC;AACF,CAAC;AAED,SAAgB,gCAAgC,CAC9C,OAAkC;IAElC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO;QACL,KAAK,EAAE;YACL,CAAC,iCAAyB,CAAC,EAAE,wBAAwB,CAAC,OAAO,CAAC;SAC/D;QACD,YAAY,EAAE,CAAC,iCAAyB,CAAC;KAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type DeploymentProfile } from '../../repository-policy/index.js';
|
|
2
2
|
export declare function renderThinLifecycleDocumentation(options: {
|
|
3
|
+
deliveryLane?: 'protected-pair' | 'trunk';
|
|
4
|
+
productionApprovalMode?: 'promotion-pr' | 'environment-reviewer' | 'trunk-promotion';
|
|
3
5
|
deploymentProfile: DeploymentProfile;
|
|
4
6
|
name: string;
|
|
5
7
|
}): Readonly<Record<string, string>>;
|
|
@@ -22,8 +22,16 @@ development through the root \`deploy-local\` target. Do not invoke SST directly
|
|
|
22
22
|
`,
|
|
23
23
|
'docs/git-workflow.md': `# Protected Git workflow
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
${options.deliveryLane === 'trunk'
|
|
26
|
+
? `Trunk delivery lane: \`main\` is the only protected branch. Ordinary work
|
|
27
|
+
opens a pull request to \`main\` from an up-to-date branch, and every merged
|
|
28
|
+
\`main\` push is a production delivery through the generated Verify and deploy
|
|
29
|
+
workflows. There is no \`develop\` branch, promotion pull request, or sync-back.
|
|
30
|
+
Switch to the protected pair with
|
|
31
|
+
\`pnpm nx g @empire-builder-kit/nx:repository-policy --deliveryLane=protected-pair --apply\`
|
|
32
|
+
followed by the managed upgrade when the team needs a staged promotion.`
|
|
33
|
+
: `Ordinary work targets \`develop\`; production promotion is an exact reviewed
|
|
34
|
+
\`develop\` to \`main\` merge followed by the managed sync-back.`} Keep the
|
|
27
35
|
generated branch rules, CODEOWNER review, resolved-conversation requirement,
|
|
28
36
|
merge-only history, and read-only default workflow permissions.
|
|
29
37
|
|
|
@@ -47,9 +55,26 @@ local staging, but its protected production promotion requires the candidate
|
|
|
47
55
|
receipt from a successful managed GitHub staging deployment. \`fully-isolated\`
|
|
48
56
|
uses GitHub for staging and production. Isolated production restores the exact
|
|
49
57
|
candidate recorded by the successful staging deployment.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
${options.deliveryLane === 'trunk'
|
|
59
|
+
? `In the trunk lane every merged \`main\` push calls the deploy workflow for
|
|
60
|
+
production; development stays a local stage.`
|
|
61
|
+
: `When \`starter\` uses its optional manual workflow, \`develop\` routes to
|
|
62
|
+
development and \`main\` routes to production; starter has no automatic caller.`}
|
|
63
|
+
${options.productionApprovalMode === 'trunk-promotion'
|
|
64
|
+
? `Trunk promotion (\`productionApproval.mode: trunk-promotion\`): a successful
|
|
65
|
+
staging lifecycle on \`develop\` continues in the same run. \`promote-production\`
|
|
66
|
+
binds that run's staging deployment receipt and release candidate and promotes
|
|
67
|
+
the reviewed OCI indexes into production, \`execute-production\` deploys
|
|
68
|
+
production from the same candidate under the production environment, and
|
|
69
|
+
\`record-main\` fast-forwards \`main\` to the deployed commit with the production
|
|
70
|
+
environment secret \`EBK_RECORD_MAIN_TOKEN\`, refusing any non-fast-forward
|
|
71
|
+
update. \`main\` keeps deletion, non-fast-forward, and status-check rules but no
|
|
72
|
+
pull-request rule; the develop ruleset keeps CODEOWNER review. A \`main\` push
|
|
73
|
+
verifies only and there is no sync-back. Switch back with
|
|
74
|
+
\`pnpm nx g @empire-builder-kit/nx:repository-policy --productionApprovalMode=promotion-pr --apply\`
|
|
75
|
+
followed by the managed upgrade and a GitHub bootstrap apply.
|
|
76
|
+
`
|
|
77
|
+
: ''}Every protected job checks out an immutable commit, validates managed source,
|
|
53
78
|
and assumes the derived stage role through the matching GitHub environment.
|
|
54
79
|
The reusable Verify caller delegates job-scoped \`id-token: write\`; each
|
|
55
80
|
credential-bearing job proves both the configured canonical ARN and terminal
|
|
@@ -72,6 +97,24 @@ secret; do not add repository-scope fallbacks.
|
|
|
72
97
|
`,
|
|
73
98
|
'docs/repository-operating-policy.md': `# Repository Operating Policy
|
|
74
99
|
|
|
100
|
+
## Production capacity
|
|
101
|
+
|
|
102
|
+
The shared Foundation has three capacity profiles, independent of deployment topology:
|
|
103
|
+
- \`cost-optimized\`: 0–2 ACUs, five-minute idle auto-pause; new starter default.
|
|
104
|
+
- \`balanced\`: 0.5–4 ACUs, always warm.
|
|
105
|
+
- \`standard\`: 2–16 ACUs, always warm; isolated repository default.
|
|
106
|
+
|
|
107
|
+
All retain 30-day backups, deletion protection, encryption, and managed NAT.
|
|
108
|
+
Pause can delay first requests (typically 15 seconds, sometimes 30 seconds or
|
|
109
|
+
longer); open connections or polling can prevent it. Storage/NAT still cost money.
|
|
110
|
+
Validate cold-resume retries, migration timeouts, and the shared capacity ceiling.
|
|
111
|
+
|
|
112
|
+
Existing warm \`cost-optimized\` users must use the new generator to report
|
|
113
|
+
\`pnpm nx g @empire-builder-kit/nx:repository-policy --profile=balanced\`, then
|
|
114
|
+
repeat with \`--apply\` before managed upgrade or deployment. This preserves
|
|
115
|
+
0.5–4 ACUs. After upgrade, deliberately select \`--profile=cost-optimized --apply\`
|
|
116
|
+
only to accept scale-to-zero. These commands change policy, not AWS resources.
|
|
117
|
+
|
|
75
118
|
The committed \`ebk.repository-policy.json\` selects the
|
|
76
119
|
\`${options.deploymentProfile}\` deployment profile and its active stages:
|
|
77
120
|
${stageList}. Inactive stages are rejected by planning, deployment, refresh,
|
|
@@ -192,7 +235,24 @@ immediately.
|
|
|
192
235
|
|
|
193
236
|
## Router WAF rehearsal
|
|
194
237
|
|
|
195
|
-
|
|
238
|
+
${options.deploymentProfile === 'starter'
|
|
239
|
+
? ''
|
|
240
|
+
: `Isolated profiles rehearse through the managed \`Deploy\` dispatch: with both
|
|
241
|
+
\`security/router-waf-live-evidence.json\` and
|
|
242
|
+
\`security/router-waf-blocking-rehearsal.json\` at their pending seeds on
|
|
243
|
+
\`develop\`, dispatch \`Deploy\` with \`action: rehearse\` and \`probe_url\` set to
|
|
244
|
+
the staging Router health URL. The \`rehearse\` job assumes the staging
|
|
245
|
+
deployment role, performs the non-allowlisted probe before the runner is
|
|
246
|
+
admitted, performs the managed-rule probe and the rate rehearsal inside the
|
|
247
|
+
same temporary allowlist admission that private smoke uses, proves the
|
|
248
|
+
admission removed, retains the sealed files as a run artifact, and opens a
|
|
249
|
+
pull request to \`develop\` carrying them. Merging that pull request satisfies
|
|
250
|
+
the production Router WAF gate for the exact policy digest. Any policy change,
|
|
251
|
+
including an allowlist edit, changes the digest and requires a new rehearsal
|
|
252
|
+
after resetting both seeds. The manual path below remains for operators who
|
|
253
|
+
rehearse from an allowlisted address.
|
|
254
|
+
|
|
255
|
+
`}Count-mode tuning is optional. Restore ${rehearsalStage} to blocking mode,
|
|
196
256
|
record the bounded allowlist and managed-rule probe results in
|
|
197
257
|
\`security/router-waf-live-evidence.json\`, then run:
|
|
198
258
|
|
|
@@ -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,4EAoTC;AA1TD,+DAI0C;AAE1C,SAAgB,gCAAgC,CAAC,OAMhD;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;;EAG1B,OAAO,CAAC,YAAY,KAAK,OAAO;YAC9B,CAAC,CAAC;;;;;;wEAMkE;YACpE,CAAC,CAAC;iEAEN;;;;;;;;;;;;;;;;;;;;;;;;EAyBE,OAAO,CAAC,YAAY,KAAK,OAAO;YAC9B,CAAC,CAAC;6CACuC;YACzC,CAAC,CAAC;gFAEN;EAEE,OAAO,CAAC,sBAAsB,KAAK,iBAAiB;YAClD,CAAC,CAAC;;;;;;;;;;;;CAYL;YACG,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;CAoBC;QACG,qCAAqC,EAAE;;;;;;;;;;;;;;;;;;;;;IAqBvC,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;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B1B,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;;;;;;;;;;;;;;;CAgBN,0CAA0C,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CvD;KACE,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { type FoundationOwnershipRecord, type WorkspaceOwnershipRecord } from '../../ownership/index.js';
|
|
2
|
-
import { type ConfiguredDeploymentAccounts, type DeploymentProfile } from '../../repository-policy/index.js';
|
|
2
|
+
import { type DeliveryLane, type ProductionApprovalMode, type ConfiguredDeploymentAccounts, type DeploymentProfile } from '../../repository-policy/index.js';
|
|
3
3
|
export interface WorkspaceFileOptions {
|
|
4
|
+
/** trunk (starter only) protects main alone and delivers production from
|
|
5
|
+
* every merged main push; protected-pair keeps develop and main. */
|
|
6
|
+
deliveryLane?: DeliveryLane;
|
|
7
|
+
dependencyOverrides?: unknown;
|
|
4
8
|
deploymentAccounts?: ConfiguredDeploymentAccounts;
|
|
5
9
|
deploymentProfile?: DeploymentProfile;
|
|
6
10
|
deploymentRegion?: string | null;
|
|
7
11
|
frameworkVersion: string;
|
|
8
12
|
name: string;
|
|
13
|
+
/** Committed productionApproval.mode; trunk-promotion changes the generated
|
|
14
|
+
* deploy workflow and drops the sync-back workflow. */
|
|
15
|
+
productionApprovalMode?: ProductionApprovalMode;
|
|
9
16
|
workspaceDeploymentId?: string;
|
|
10
17
|
}
|
|
11
18
|
export declare const BLUEPRINT_TRUST_AUTHORITY_PATH: "tools/blueprint-trust-check.mjs";
|
|
@@ -7,6 +7,7 @@ exports.renderWorkspaceFiles = renderWorkspaceFiles;
|
|
|
7
7
|
exports.renderWorkspaceRootFilePlan = renderWorkspaceRootFilePlan;
|
|
8
8
|
exports.renderFoundationFilePlan = renderFoundationFilePlan;
|
|
9
9
|
const sensitive_patterns_1 = require("@empire-builder-kit/runtime/sensitive-patterns");
|
|
10
|
+
const dependency_overrides_js_1 = require("./dependency-overrides.js");
|
|
10
11
|
const index_js_1 = require("../../ownership/index.js");
|
|
11
12
|
const index_js_2 = require("../../frontend-security/index.js");
|
|
12
13
|
const index_js_3 = require("../../git-policy/index.js");
|
|
@@ -1050,6 +1051,7 @@ const SUPPLY_CHAIN_WORKSPACE_FILE_PLAN = (0, index_js_6.renderSupplyChainWorkspa
|
|
|
1050
1051
|
generatedAt: '1970-01-01T00:00:00.000Z',
|
|
1051
1052
|
});
|
|
1052
1053
|
const WORKSPACE_SEEDED_PATHS = new Set([
|
|
1054
|
+
dependency_overrides_js_1.DEPENDENCY_OVERRIDES_PATH,
|
|
1053
1055
|
...SUPPLY_CHAIN_WORKSPACE_FILE_PLAN.seeded,
|
|
1054
1056
|
...workspace_files_developer_agent_js_1.DEVELOPER_AGENT_WORKSPACE_SEEDED_PATHS,
|
|
1055
1057
|
'.github/CODEOWNERS',
|
|
@@ -1168,7 +1170,22 @@ function createWorkspaceOwnership(files, frameworkVersion) {
|
|
|
1168
1170
|
}
|
|
1169
1171
|
function renderWorkspaceFiles(options) {
|
|
1170
1172
|
const { frameworkVersion, name } = options;
|
|
1173
|
+
const dependencyOverrides = (0, dependency_overrides_js_1.parseDependencyOverrides)(options.dependencyOverrides === undefined
|
|
1174
|
+
? { schemaVersion: 1, overrides: {} }
|
|
1175
|
+
: options.dependencyOverrides);
|
|
1171
1176
|
const deploymentProfile = options.deploymentProfile ?? 'starter';
|
|
1177
|
+
const deliveryLane = options.deliveryLane ?? 'protected-pair';
|
|
1178
|
+
if (deliveryLane === 'trunk' && deploymentProfile !== 'starter') {
|
|
1179
|
+
throw new Error('The trunk delivery lane requires the starter deployment profile.');
|
|
1180
|
+
}
|
|
1181
|
+
const trunkLane = deliveryLane === 'trunk';
|
|
1182
|
+
const productionApprovalMode = options.productionApprovalMode ?? 'promotion-pr';
|
|
1183
|
+
if (productionApprovalMode === 'trunk-promotion' &&
|
|
1184
|
+
(deploymentProfile === 'starter' || trunkLane)) {
|
|
1185
|
+
throw new Error('trunk-promotion requires an isolated deployment profile on the protected pair.');
|
|
1186
|
+
}
|
|
1187
|
+
const trunkPromotion = productionApprovalMode === 'trunk-promotion';
|
|
1188
|
+
const protectedBranches = trunkLane ? '[main]' : '[develop, main]';
|
|
1172
1189
|
const activeStages = (0, index_js_4.activeDeploymentStages)(deploymentProfile);
|
|
1173
1190
|
const protectedWorkflowStageChoices = deploymentProfile === 'starter'
|
|
1174
1191
|
? 'development, production'
|
|
@@ -1201,9 +1218,33 @@ function renderWorkspaceFiles(options) {
|
|
|
1201
1218
|
const pnpmAction = (0, index_js_3.pinnedAction)(index_js_3.GITHUB_ACTION_PINS.pnpmSetup);
|
|
1202
1219
|
const setupNodeAction = (0, index_js_3.pinnedAction)(index_js_3.GITHUB_ACTION_PINS.setupNode);
|
|
1203
1220
|
const uploadArtifactAction = (0, index_js_3.pinnedAction)(index_js_3.GITHUB_ACTION_PINS.uploadArtifact);
|
|
1204
|
-
const
|
|
1205
|
-
const
|
|
1206
|
-
|
|
1221
|
+
const cacheAction = (0, index_js_3.pinnedAction)(index_js_3.GITHUB_ACTION_PINS.cache);
|
|
1222
|
+
const nxSetShasAction = (0, index_js_3.pinnedAction)(index_js_3.GITHUB_ACTION_PINS.nxSetShas);
|
|
1223
|
+
// GitHub scopes cache reads to the current branch and its base, so protected
|
|
1224
|
+
// pushes never restore entries written by pull-request runs.
|
|
1225
|
+
const nxCacheSteps = ` - name: Restore the Nx task cache
|
|
1226
|
+
uses: ${cacheAction}
|
|
1227
|
+
with:
|
|
1228
|
+
path: .nx/cache
|
|
1229
|
+
key: nx-\${{ runner.os }}-\${{ hashFiles('pnpm-lock.yaml') }}-\${{ github.sha }}
|
|
1230
|
+
restore-keys: |
|
|
1231
|
+
nx-\${{ runner.os }}-\${{ hashFiles('pnpm-lock.yaml') }}-`;
|
|
1232
|
+
// Isolated profiles bind the staging release candidate when promoting to
|
|
1233
|
+
// production, so a main push never needs a rebuilt candidate.
|
|
1234
|
+
const releaseCandidateBranchCondition = deploymentProfile === 'starter'
|
|
1235
|
+
? ''
|
|
1236
|
+
: " &&\n github.ref != 'refs/heads/main'";
|
|
1237
|
+
// In the trunk lane no pull request is a protected route: main is the only
|
|
1238
|
+
// protected branch and every feature pull request targets it.
|
|
1239
|
+
const protectedDevelopPromotion = trunkLane
|
|
1240
|
+
? 'false'
|
|
1241
|
+
: "github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.head.ref == 'develop' && github.event.pull_request.base.ref == 'main'";
|
|
1242
|
+
const protectedMainSync = trunkLane
|
|
1243
|
+
? 'false'
|
|
1244
|
+
: "github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.head.ref == 'main' && github.event.pull_request.base.ref == 'develop'";
|
|
1245
|
+
const protectedPush = trunkLane
|
|
1246
|
+
? "github.event_name == 'push' && github.ref == 'refs/heads/main'"
|
|
1247
|
+
: "github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop')";
|
|
1207
1248
|
const protectedDeploymentRouteJobName = 'protected deployment route';
|
|
1208
1249
|
const stagingApplyJobPrefix = 'apply staging plan ';
|
|
1209
1250
|
const files = {
|
|
@@ -1217,9 +1258,9 @@ function renderWorkspaceFiles(options) {
|
|
|
1217
1258
|
|
|
1218
1259
|
on:
|
|
1219
1260
|
pull_request:
|
|
1220
|
-
branches:
|
|
1261
|
+
branches: ${protectedBranches}
|
|
1221
1262
|
push:
|
|
1222
|
-
branches:
|
|
1263
|
+
branches: ${protectedBranches}
|
|
1223
1264
|
workflow_dispatch:
|
|
1224
1265
|
|
|
1225
1266
|
concurrency:
|
|
@@ -1326,12 +1367,16 @@ jobs:
|
|
|
1326
1367
|
node-version: ${tool_versions_js_1.WORKSPACE_NODE_VERSION}
|
|
1327
1368
|
cache: pnpm
|
|
1328
1369
|
- run: pnpm install --frozen-lockfile
|
|
1370
|
+
${nxCacheSteps}
|
|
1329
1371
|
- run: pnpm format:check
|
|
1372
|
+
- name: Resolve the affected base and head for proposed work
|
|
1373
|
+
if: github.event_name == 'pull_request' && !(${protectedDevelopPromotion} || ${protectedMainSync})
|
|
1374
|
+
uses: ${nxSetShasAction}
|
|
1330
1375
|
- name: Verify proposed workspace
|
|
1331
1376
|
if: github.event_name == 'pull_request' && !(${protectedDevelopPromotion} || ${protectedMainSync})
|
|
1332
1377
|
run: |
|
|
1333
1378
|
pnpm nx run ${name}:verify-proposed
|
|
1334
|
-
pnpm nx
|
|
1379
|
+
pnpm nx affected -t verify --exclude=${name} --parallel=3
|
|
1335
1380
|
- name: Verify protected develop promotion
|
|
1336
1381
|
if: github.event_name == 'pull_request' && ${protectedDevelopPromotion}
|
|
1337
1382
|
run: pnpm nx run-many -t verify --parallel=3
|
|
@@ -1387,7 +1432,7 @@ jobs:
|
|
|
1387
1432
|
github.event_name == 'push' &&
|
|
1388
1433
|
needs.acceptance.outputs.history_only != 'true' &&
|
|
1389
1434
|
(needs.acceptance.outputs.reused == 'true' ||
|
|
1390
|
-
(needs.policy.result == 'success' && needs.verify.result == 'success'))
|
|
1435
|
+
(needs.policy.result == 'success' && needs.verify.result == 'success'))${releaseCandidateBranchCondition}
|
|
1391
1436
|
runs-on: ubuntu-latest
|
|
1392
1437
|
steps:
|
|
1393
1438
|
- uses: ${checkoutAction}
|
|
@@ -1400,6 +1445,7 @@ jobs:
|
|
|
1400
1445
|
node-version: ${tool_versions_js_1.WORKSPACE_NODE_VERSION}
|
|
1401
1446
|
cache: pnpm
|
|
1402
1447
|
- run: pnpm install --frozen-lockfile
|
|
1448
|
+
${nxCacheSteps}
|
|
1403
1449
|
- name: Build immutable release candidates
|
|
1404
1450
|
env:
|
|
1405
1451
|
EBK_SOURCE_COMMIT: \${{ github.sha }}
|
|
@@ -1407,7 +1453,7 @@ jobs:
|
|
|
1407
1453
|
slice_projects="$(pnpm nx show projects --with-target=release-candidate --json | jq -r 'join(",")')"
|
|
1408
1454
|
test -n "$slice_projects" ||
|
|
1409
1455
|
{ echo 'At least one release-candidate target is required'; exit 1; }
|
|
1410
|
-
pnpm nx run-many -t release-candidate --projects="$slice_projects" --parallel=
|
|
1456
|
+
pnpm nx run-many -t release-candidate --projects="$slice_projects" --parallel=3
|
|
1411
1457
|
mkdir -p .ebk/evidence/release-candidate/packages
|
|
1412
1458
|
IFS=',' read -r -a projects <<< "$slice_projects"
|
|
1413
1459
|
for project in "\${projects[@]}"; do
|
|
@@ -1425,7 +1471,7 @@ jobs:
|
|
|
1425
1471
|
include-hidden-files: true
|
|
1426
1472
|
retention-days: 30
|
|
1427
1473
|
path: .ebk/evidence/release-candidate
|
|
1428
|
-
${(0, workspace_files_thin_deploy_js_1.renderThinDeployVerifyCaller)(deploymentProfile)}
|
|
1474
|
+
${(0, workspace_files_thin_deploy_js_1.renderThinDeployVerifyCaller)(deploymentProfile, deliveryLane, productionApprovalMode)}
|
|
1429
1475
|
`,
|
|
1430
1476
|
'.github/workflows/deploy.yml': `name: Deploy
|
|
1431
1477
|
|
|
@@ -7360,8 +7406,11 @@ permissions:
|
|
|
7360
7406
|
|
|
7361
7407
|
jobs:
|
|
7362
7408
|
sync-back:
|
|
7409
|
+
# The sync carries history, not deployment evidence: open it after any
|
|
7410
|
+
# completed main run so a failed production deploy cannot lock develop
|
|
7411
|
+
# behind a sync that never opens.
|
|
7363
7412
|
if: >-
|
|
7364
|
-
github.event.workflow_run.conclusion
|
|
7413
|
+
github.event.workflow_run.conclusion != 'cancelled' &&
|
|
7365
7414
|
github.event.workflow_run.event == 'push' &&
|
|
7366
7415
|
github.event.workflow_run.head_branch == 'main'
|
|
7367
7416
|
runs-on: ubuntu-latest
|
|
@@ -8055,8 +8104,15 @@ seeded decision record aligned with organization-specific budgets and alerts.
|
|
|
8055
8104
|
|
|
8056
8105
|
- Development uses EC2 NAT, a development bastion, and Aurora scale-to-zero.
|
|
8057
8106
|
${deploymentProfile === 'starter' ? '' : '- Staging uses EC2 NAT and Aurora scale-to-zero by default.\n'}- Production always uses managed NAT and retains protected data. Its explicit Repository
|
|
8058
|
-
Operating Policy profile selects
|
|
8059
|
-
|
|
8107
|
+
Operating Policy profile selects cost-optimized (0–2 ACUs, pause after five idle
|
|
8108
|
+
minutes), balanced (0.5–4 ACUs, always warm), or standard (2–16 ACUs, always warm).
|
|
8109
|
+
New starter repositories default to cost-optimized. Cold resume typically takes
|
|
8110
|
+
about 15 seconds and can exceed 30 seconds after extended inactivity; validate
|
|
8111
|
+
connection retries, request timeouts, migrations, and background polling.
|
|
8112
|
+
Capacity is shared by all Slices. Open connections can prevent pausing; storage
|
|
8113
|
+
and managed NAT remain billable while Aurora compute is paused.
|
|
8114
|
+
Existing 0.5–4 cost-optimized adopters must explicitly select balanced before
|
|
8115
|
+
upgrade, then opt into cost-optimized separately if cold starts are acceptable.
|
|
8060
8116
|
- ECS, EventBridge, Cognito, SNS, SSM, and CloudWatch are primarily usage-priced; logs,
|
|
8061
8117
|
metrics, alarms, and retained data still require active cost review.
|
|
8062
8118
|
|
|
@@ -9137,7 +9193,7 @@ if (
|
|
|
9137
9193
|
costs.aurora?.engineVersion !== '${index_js_4.FOUNDATION_AURORA_ENGINE_VERSION}' ||
|
|
9138
9194
|
costs.productionProfileSource !== 'ebk.repository-policy.json' ||
|
|
9139
9195
|
costs.productionProfiles?.standard?.aurora?.min !== '2 ACU' ||
|
|
9140
|
-
costs.productionProfiles
|
|
9196
|
+
JSON.stringify(costs.productionProfiles) !== JSON.stringify(${JSON.stringify(index_js_4.PRODUCTION_FOUNDATION_PROFILE_CONTRACTS)}) ||
|
|
9141
9197
|
!costs.stages?.development ||
|
|
9142
9198
|
JSON.stringify(Object.keys(costs.stages ?? {}).sort()) !==
|
|
9143
9199
|
JSON.stringify(${JSON.stringify([...activeStages].sort())}) ||
|
|
@@ -9230,6 +9286,7 @@ export default $config({
|
|
|
9230
9286
|
],
|
|
9231
9287
|
exclude: ['.sst', 'dist', 'node_modules'],
|
|
9232
9288
|
}),
|
|
9289
|
+
[dependency_overrides_js_1.DEPENDENCY_OVERRIDES_PATH]: json(dependencyOverrides),
|
|
9233
9290
|
'pnpm-workspace.yaml': `packages:
|
|
9234
9291
|
- 'packages/*'
|
|
9235
9292
|
- 'packages/*/apps/*'
|
|
@@ -9264,6 +9321,7 @@ supportedArchitectures:
|
|
|
9264
9321
|
strictDepBuilds: true
|
|
9265
9322
|
allowBuilds:
|
|
9266
9323
|
${index_js_6.FRAMEWORK_REVIEWED_BUILD_PACKAGES.map((packageName) => ` '${packageName}': true`).join('\n')}
|
|
9324
|
+
${(0, dependency_overrides_js_1.renderDependencyOverridesYaml)(dependencyOverrides)}
|
|
9267
9325
|
`,
|
|
9268
9326
|
'tsconfig.base.json': json({
|
|
9269
9327
|
compilerOptions: {
|
|
@@ -10086,7 +10144,9 @@ process.stdout.write(
|
|
|
10086
10144
|
);
|
|
10087
10145
|
`,
|
|
10088
10146
|
'tools/ebk-git-policy.mjs': `import { evaluateGitPolicy } from '@empire-builder-kit/nx/git-policy';
|
|
10147
|
+
import { deliveryLaneOf, readRepositoryOperatingPolicy } from '@empire-builder-kit/nx/repository-policy';
|
|
10089
10148
|
import { spawnSync } from 'node:child_process';
|
|
10149
|
+
const deliveryLane = deliveryLaneOf(readRepositoryOperatingPolicy(process.cwd()));
|
|
10090
10150
|
|
|
10091
10151
|
const git = (...args) => {
|
|
10092
10152
|
const result = spawnSync('git', args, { encoding: 'utf8', shell: false });
|
|
@@ -10106,14 +10166,14 @@ if (!['pull_request', 'push', 'workflow_dispatch'].includes(eventName)) {
|
|
|
10106
10166
|
throw new Error('Unsupported or missing GITHUB_EVENT_NAME; Git policy fails closed.');
|
|
10107
10167
|
}
|
|
10108
10168
|
|
|
10109
|
-
const request = { eventName, ref: process.env.GITHUB_REF };
|
|
10169
|
+
const request = { deliveryLane, eventName, ref: process.env.GITHUB_REF };
|
|
10110
10170
|
if (eventName === 'pull_request' || eventName === 'push') {
|
|
10111
10171
|
git(
|
|
10112
10172
|
'fetch',
|
|
10113
10173
|
'--no-tags',
|
|
10114
10174
|
'origin',
|
|
10115
10175
|
'main:refs/remotes/origin/main',
|
|
10116
|
-
'develop:refs/remotes/origin/develop',
|
|
10176
|
+
...(deliveryLane === 'trunk' ? [] : ['develop:refs/remotes/origin/develop']),
|
|
10117
10177
|
);
|
|
10118
10178
|
}
|
|
10119
10179
|
if (eventName === 'pull_request') {
|
|
@@ -10129,13 +10189,17 @@ if (eventName === 'pull_request') {
|
|
|
10129
10189
|
baseRef,
|
|
10130
10190
|
headRepository,
|
|
10131
10191
|
headRef,
|
|
10132
|
-
|
|
10133
|
-
|
|
10134
|
-
|
|
10135
|
-
|
|
10192
|
+
...(deliveryLane === 'trunk'
|
|
10193
|
+
? {}
|
|
10194
|
+
: {
|
|
10195
|
+
mainIsAncestorOfDevelop: isAncestor(
|
|
10196
|
+
'refs/remotes/origin/main',
|
|
10197
|
+
'refs/remotes/origin/develop',
|
|
10198
|
+
),
|
|
10199
|
+
}),
|
|
10136
10200
|
repository,
|
|
10137
10201
|
});
|
|
10138
|
-
} else if (eventName === 'push') {
|
|
10202
|
+
} else if (eventName === 'push' && deliveryLane !== 'trunk') {
|
|
10139
10203
|
Object.assign(request, {
|
|
10140
10204
|
baseIsAncestorOfHead: isAncestor('refs/remotes/origin/develop', 'HEAD'),
|
|
10141
10205
|
mainIsAncestorOfDevelop: isAncestor(
|
|
@@ -10248,7 +10312,10 @@ process.stdout.write('Empire Builder Kit workspace source health is green.\\n');
|
|
|
10248
10312
|
name,
|
|
10249
10313
|
nodeVersion: tool_versions_js_1.WORKSPACE_NODE_VERSION,
|
|
10250
10314
|
}), (0, workspace_files_thin_deploy_js_1.renderThinDeployWorkflowFilePlan)({
|
|
10315
|
+
deliveryLane,
|
|
10316
|
+
productionApprovalMode,
|
|
10251
10317
|
actionPins: {
|
|
10318
|
+
cache: cacheAction,
|
|
10252
10319
|
checkout: checkoutAction,
|
|
10253
10320
|
configureAwsCredentials: configureAwsAction,
|
|
10254
10321
|
downloadArtifact: downloadArtifactAction,
|
|
@@ -10262,11 +10329,20 @@ process.stdout.write('Empire Builder Kit workspace source health is green.\\n');
|
|
|
10262
10329
|
node: tool_versions_js_1.WORKSPACE_NODE_VERSION,
|
|
10263
10330
|
sst: tool_versions_js_1.WORKSPACE_SST_VERSION,
|
|
10264
10331
|
},
|
|
10265
|
-
}).files, (0, workspace_files_thin_docs_js_1.renderThinLifecycleDocumentation)({
|
|
10332
|
+
}).files, (0, workspace_files_thin_docs_js_1.renderThinLifecycleDocumentation)({
|
|
10333
|
+
deliveryLane,
|
|
10334
|
+
deploymentProfile,
|
|
10335
|
+
name,
|
|
10336
|
+
productionApprovalMode,
|
|
10337
|
+
}));
|
|
10266
10338
|
const thinReleaseWorkflowPlan = (0, workspace_files_thin_release_js_1.renderThinReleaseWorkflowPlan)();
|
|
10267
10339
|
Object.assign(files, thinReleaseWorkflowPlan.files);
|
|
10268
10340
|
for (const obsoletePath of [
|
|
10269
10341
|
...thinReleaseWorkflowPlan.obsoletePaths,
|
|
10342
|
+
// The trunk lane has no develop branch to sync main back into; trunk
|
|
10343
|
+
// promotion only ever fast-forwards main from develop, so there is
|
|
10344
|
+
// nothing to sync back either.
|
|
10345
|
+
...(trunkLane || trunkPromotion ? ['.github/workflows/sync-back.yml'] : []),
|
|
10270
10346
|
'.github/workflows/performance-aggregate-counts.yml',
|
|
10271
10347
|
'.github/workflows/performance-cost-actual.yml',
|
|
10272
10348
|
'.github/workflows/performance-load.yml',
|