@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.
Files changed (111) hide show
  1. package/package.json +3 -3
  2. package/src/aws-authority/stage-authority.js +4 -0
  3. package/src/aws-authority/stage-authority.js.map +1 -1
  4. package/src/developer-agent/model.d.ts +1 -1
  5. package/src/developer-agent/operation-registry.js +25 -3
  6. package/src/developer-agent/operation-registry.js.map +1 -1
  7. package/src/developer-agent/planning.js +9 -4
  8. package/src/developer-agent/planning.js.map +1 -1
  9. package/src/developer-agent/validation.js +5 -1
  10. package/src/developer-agent/validation.js.map +1 -1
  11. package/src/executors/deployment-plan/deployment-plan.js +3 -0
  12. package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
  13. package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +1 -0
  14. package/src/executors/foundation-profile-preflight/production-database-safeguard.js +4 -2
  15. package/src/executors/foundation-profile-preflight/production-database-safeguard.js.map +1 -1
  16. package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
  17. package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
  18. package/src/executors/local-deploy/local-deploy.d.ts +21 -3
  19. package/src/executors/local-deploy/local-deploy.js +201 -1
  20. package/src/executors/local-deploy/local-deploy.js.map +1 -1
  21. package/src/executors/local-deploy/schema.json +21 -0
  22. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +13 -0
  23. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +323 -137
  24. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js.map +1 -1
  25. package/src/executors/router-waf-rehearsal/schema.json +5 -0
  26. package/src/executors/secret-initialize/secret-initialize.d.ts +2 -0
  27. package/src/executors/secret-initialize/secret-initialize.js +57 -3
  28. package/src/executors/secret-initialize/secret-initialize.js.map +1 -1
  29. package/src/executors/sst-lifecycle/run-sst-command.d.ts +2 -0
  30. package/src/executors/sst-lifecycle/run-sst-command.js +4 -0
  31. package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
  32. package/src/foundation/index.d.ts +1 -0
  33. package/src/foundation/index.js +8 -0
  34. package/src/foundation/index.js.map +1 -1
  35. package/src/foundation/private-smoke-access.d.ts +23 -0
  36. package/src/foundation/private-smoke-access.js +127 -0
  37. package/src/foundation/private-smoke-access.js.map +1 -0
  38. package/src/foundation/private-smoke-admission.d.ts +43 -0
  39. package/src/foundation/private-smoke-admission.js +158 -0
  40. package/src/foundation/private-smoke-admission.js.map +1 -0
  41. package/src/foundation/private-smoke-control-plane.d.ts +18 -0
  42. package/src/foundation/private-smoke-control-plane.js +173 -0
  43. package/src/foundation/private-smoke-control-plane.js.map +1 -0
  44. package/src/generators/preset/dependency-overrides.d.ts +8 -0
  45. package/src/generators/preset/dependency-overrides.js +55 -0
  46. package/src/generators/preset/dependency-overrides.js.map +1 -0
  47. package/src/generators/preset/tool-versions.d.ts +2 -0
  48. package/src/generators/preset/tool-versions.js +3 -1
  49. package/src/generators/preset/tool-versions.js.map +1 -1
  50. package/src/generators/preset/workspace-files-developer-agent.js +19 -6
  51. package/src/generators/preset/workspace-files-developer-agent.js.map +1 -1
  52. package/src/generators/preset/workspace-files-thin-deploy.d.ts +16 -1
  53. package/src/generators/preset/workspace-files-thin-deploy.js +946 -26
  54. package/src/generators/preset/workspace-files-thin-deploy.js.map +1 -1
  55. package/src/generators/preset/workspace-files-thin-docs.d.ts +2 -0
  56. package/src/generators/preset/workspace-files-thin-docs.js +66 -6
  57. package/src/generators/preset/workspace-files-thin-docs.js.map +1 -1
  58. package/src/generators/preset/workspace-files.d.ts +8 -1
  59. package/src/generators/preset/workspace-files.js +97 -21
  60. package/src/generators/preset/workspace-files.js.map +1 -1
  61. package/src/generators/repository-policy/repository-policy.js +1 -0
  62. package/src/generators/repository-policy/repository-policy.js.map +1 -1
  63. package/src/generators/repository-policy/schema.d.ts +2 -0
  64. package/src/generators/repository-policy/schema.json +27 -7
  65. package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
  66. package/src/generators/slice/built-in-plan-background-work-files.js +89 -0
  67. package/src/generators/slice/built-in-plan-background-work-files.js.map +1 -0
  68. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +20 -4
  69. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +1 -1
  70. package/src/generators/slice/built-in-plan-infrastructure-files.js +22 -9
  71. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -1
  72. package/src/generators/slice/built-in-plan-operations-files.js +8 -10
  73. package/src/generators/slice/built-in-plan-operations-files.js.map +1 -1
  74. package/src/generators/slice/built-in-plan.js +3 -0
  75. package/src/generators/slice/built-in-plan.js.map +1 -1
  76. package/src/generators/upgrade/upgrade.d.ts +12 -0
  77. package/src/generators/upgrade/upgrade.js +84 -9
  78. package/src/generators/upgrade/upgrade.js.map +1 -1
  79. package/src/generators/workload/workload.js +1 -1
  80. package/src/git-policy/action-pins.d.ts +5 -0
  81. package/src/git-policy/action-pins.js +5 -0
  82. package/src/git-policy/action-pins.js.map +1 -1
  83. package/src/git-policy/github-bootstrap.d.ts +10 -2
  84. package/src/git-policy/github-bootstrap.js +129 -34
  85. package/src/git-policy/github-bootstrap.js.map +1 -1
  86. package/src/git-policy/routing.d.ts +5 -1
  87. package/src/git-policy/routing.js +50 -0
  88. package/src/git-policy/routing.js.map +1 -1
  89. package/src/performance/model.d.ts +1 -1
  90. package/src/repository-policy/capacity-migration.d.ts +3 -0
  91. package/src/repository-policy/capacity-migration.js +21 -0
  92. package/src/repository-policy/capacity-migration.js.map +1 -0
  93. package/src/repository-policy/foundation-profile.js +10 -0
  94. package/src/repository-policy/foundation-profile.js.map +1 -1
  95. package/src/repository-policy/policy.d.ts +13 -2
  96. package/src/repository-policy/policy.js +47 -2
  97. package/src/repository-policy/policy.js.map +1 -1
  98. package/src/schemas/repository-policy-v1.json +56 -17
  99. package/src/supply-chain/generated-container-release-command.js +281 -74
  100. package/src/supply-chain/generated-container-release-command.js.map +1 -1
  101. package/src/supply-chain/generated-files.js +21 -11
  102. package/src/supply-chain/generated-files.js.map +1 -1
  103. package/src/supply-chain/generated-scanner-command.js +1 -1
  104. package/src/supply-chain/scanner.js +3 -0
  105. package/src/supply-chain/scanner.js.map +1 -1
  106. package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
  107. package/src/workspace-deployment/affected-lifecycle.js +84 -0
  108. package/src/workspace-deployment/affected-lifecycle.js.map +1 -0
  109. package/src/workspace-deployment/index.d.ts +1 -0
  110. package/src/workspace-deployment/index.js +1 -0
  111. package/src/workspace-deployment/index.js.map +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EBK_CODE_OWNER_PLACEHOLDER = exports.EBK_PROTECTED_ENVIRONMENT_VARIABLES = exports.EBK_PROTECTED_ENVIRONMENT_SECRETS = exports.EBK_STAGING_PROMOTION_PULL_ROLE_SECRET = exports.EBK_PERFORMANCE_ORIGINS_VARIABLE = exports.EBK_PERFORMANCE_LOAD_ROLE_SECRET = exports.EBK_PERFORMANCE_COST_ROLE_SECRET = exports.EBK_PERFORMANCE_AGGREGATE_ROLE_SECRET = exports.EBK_ASYNC_RECOVERY_ROLE_SECRET = exports.EBK_ECR_INSPECTOR_EVIDENCE_ROLE_SECRET = exports.EBK_RETIRED_DEPLOYMENT_ROLE_SECRET = exports.EBK_REQUIRED_CHECKS = exports.EBK_PROTECTED_BRANCH_RULESET_NAME = void 0;
3
+ exports.EBK_CODE_OWNER_PLACEHOLDER = exports.EBK_PROTECTED_ENVIRONMENT_VARIABLES = exports.EBK_PROTECTED_ENVIRONMENT_SECRETS = exports.EBK_STAGING_PROMOTION_PULL_ROLE_SECRET = exports.EBK_PROTECTED_MAIN_RULESET_NAME = exports.EBK_RECORD_MAIN_TOKEN_SECRET = exports.EBK_PERFORMANCE_ORIGINS_VARIABLE = exports.EBK_PERFORMANCE_LOAD_ROLE_SECRET = exports.EBK_PERFORMANCE_COST_ROLE_SECRET = exports.EBK_PERFORMANCE_AGGREGATE_ROLE_SECRET = exports.EBK_ASYNC_RECOVERY_ROLE_SECRET = exports.EBK_ECR_INSPECTOR_EVIDENCE_ROLE_SECRET = exports.EBK_RETIRED_DEPLOYMENT_ROLE_SECRET = exports.EBK_REQUIRED_CHECKS = exports.EBK_PROTECTED_BRANCH_RULESET_NAME = void 0;
4
4
  exports.githubEnvironmentTopology = githubEnvironmentTopology;
5
5
  exports.runGitHubBootstrap = runGitHubBootstrap;
6
6
  const index_js_1 = require("../repository-policy/index.js");
@@ -14,6 +14,10 @@ exports.EBK_PERFORMANCE_AGGREGATE_ROLE_SECRET = 'AWS_PERFORMANCE_AGGREGATE_ROLE_
14
14
  exports.EBK_PERFORMANCE_COST_ROLE_SECRET = 'AWS_PERFORMANCE_COST_ROLE_ARN';
15
15
  exports.EBK_PERFORMANCE_LOAD_ROLE_SECRET = 'AWS_PERFORMANCE_LOAD_ROLE_ARN';
16
16
  exports.EBK_PERFORMANCE_ORIGINS_VARIABLE = 'EBK_PERFORMANCE_ORIGINS_JSON';
17
+ /** Production environment secret that lets trunk promotion fast-forward main. */
18
+ exports.EBK_RECORD_MAIN_TOKEN_SECRET = 'EBK_RECORD_MAIN_TOKEN';
19
+ /** Trunk promotion keeps main behind status checks and fast-forward pushes only. */
20
+ exports.EBK_PROTECTED_MAIN_RULESET_NAME = 'EBK protected main (trunk promotion)';
17
21
  exports.EBK_STAGING_PROMOTION_PULL_ROLE_SECRET = 'AWS_STAGING_PROMOTION_PULL_ROLE_ARN';
18
22
  exports.EBK_PROTECTED_ENVIRONMENT_SECRETS = [
19
23
  exports.EBK_ASYNC_RECOVERY_ROLE_SECRET,
@@ -39,6 +43,10 @@ const GITHUB_API_VERSION = '2026-03-10';
39
43
  const GITHUB_IMMUTABLE_OIDC_CHANGE = 'Use the default immutable GitHub OIDC repository subject.';
40
44
  const GITHUB_IMMUTABLE_OIDC_TRUST_ACKNOWLEDGEMENT_PREFIX = 'aws-trust-ready:';
41
45
  const PROTECTED_BRANCHES = ['develop', 'main'];
46
+ /** The trunk lane protects main alone; the protected pair protects both. */
47
+ function protectedBranchesFor(deliveryLane = 'protected-pair') {
48
+ return deliveryLane === 'trunk' ? ['main'] : PROTECTED_BRANCHES;
49
+ }
42
50
  const BASE_STAGE_VARIABLES = exports.EBK_PROTECTED_ENVIRONMENT_VARIABLES.filter((variable) => variable !== 'EBK_ALLOW_PRODUCTION_REMOVE' &&
43
51
  !variable.startsWith('AWS_STAGING_PROMOTION_'));
44
52
  const PRODUCTION_STAGE_VARIABLES = exports.EBK_PROTECTED_ENVIRONMENT_VARIABLES;
@@ -72,7 +80,26 @@ function stageEnvironmentTopology(stage, deploymentProfile) {
72
80
  * Starter uses development as its rehearsal stage; isolated profiles use
73
81
  * staging. Production and npm publication remain present for every profile.
74
82
  */
75
- function githubEnvironmentTopology(deploymentProfile) {
83
+ function githubEnvironmentTopology(deploymentProfile, deliveryLane = 'protected-pair', productionApprovalMode = 'promotion-pr') {
84
+ if (deliveryLane === 'trunk') {
85
+ // Trunk lane: development stays local; only production-stage
86
+ // environments exist and every one of them binds to main.
87
+ return githubEnvironmentTopology(deploymentProfile).filter(({ stage }) => stage === 'production');
88
+ }
89
+ if (productionApprovalMode === 'trunk-promotion') {
90
+ // Trunk promotion: the develop run itself promotes and deploys
91
+ // production, so every production-stage environment also admits
92
+ // develop, and the production stage holds the record-main token.
93
+ return githubEnvironmentTopology(deploymentProfile).map((entry) => entry.stage === 'production'
94
+ ? Object.freeze({
95
+ ...entry,
96
+ additionalBranches: Object.freeze(['develop']),
97
+ requiredSecrets: Object.freeze(entry.name === 'production'
98
+ ? [...entry.requiredSecrets, exports.EBK_RECORD_MAIN_TOKEN_SECRET]
99
+ : [...entry.requiredSecrets]),
100
+ })
101
+ : entry);
102
+ }
76
103
  const rehearsalStage = deploymentProfile === 'starter' ? 'development' : 'staging';
77
104
  const stages = [
78
105
  'production',
@@ -334,7 +361,7 @@ function refPatternMatches(pattern, ref) {
334
361
  .replace(/\?/g, '.');
335
362
  return new RegExp(`^${expression}$`).test(ref);
336
363
  }
337
- function rulesetTouchesProtectedBranches(ruleset) {
364
+ function rulesetTouchesProtectedBranches(ruleset, deliveryLane = 'protected-pair') {
338
365
  const conditions = typeof ruleset.conditions === 'object' && ruleset.conditions !== null
339
366
  ? ruleset.conditions
340
367
  : {};
@@ -345,7 +372,7 @@ function rulesetTouchesProtectedBranches(ruleset) {
345
372
  return true;
346
373
  const include = asStrings(refName.include);
347
374
  const exclude = asStrings(refName.exclude);
348
- return PROTECTED_BRANCHES.some((branch) => {
375
+ return protectedBranchesFor(deliveryLane).some((branch) => {
349
376
  const ref = `refs/heads/${branch}`;
350
377
  const included = include.length === 0 ||
351
378
  include.some((pattern) => refPatternMatches(pattern, ref));
@@ -353,9 +380,9 @@ function rulesetTouchesProtectedBranches(ruleset) {
353
380
  return included && !excluded;
354
381
  });
355
382
  }
356
- function conflictsWithMergeCommitContract(ruleset) {
383
+ function conflictsWithMergeCommitContract(ruleset, deliveryLane = 'protected-pair') {
357
384
  if (!activeBranchRuleset(ruleset) ||
358
- !rulesetTouchesProtectedBranches(ruleset)) {
385
+ !rulesetTouchesProtectedBranches(ruleset, deliveryLane)) {
359
386
  return [];
360
387
  }
361
388
  const conflicts = [];
@@ -417,13 +444,19 @@ function hasValidCatchAllCodeOwner(contents) {
417
444
  effectiveOwners.length > 0 &&
418
445
  effectiveOwners.every((owner) => owner.startsWith('@') && owner !== exports.EBK_CODE_OWNER_PLACEHOLDER));
419
446
  }
420
- function desiredRuleset() {
447
+ function desiredRuleset(deliveryLane = 'protected-pair', productionApprovalMode = 'promotion-pr') {
448
+ // Trunk promotion records main by fast-forward from the deploy run, so
449
+ // the pull-request rule applies to develop alone and main keeps its own
450
+ // status-check and fast-forward-only ruleset.
451
+ const branches = productionApprovalMode === 'trunk-promotion' && deliveryLane !== 'trunk'
452
+ ? ['develop']
453
+ : protectedBranchesFor(deliveryLane);
421
454
  return {
422
455
  bypass_actors: [],
423
456
  conditions: {
424
457
  ref_name: {
425
458
  exclude: [],
426
- include: PROTECTED_BRANCHES.map((branch) => `refs/heads/${branch}`),
459
+ include: branches.map((branch) => `refs/heads/${branch}`),
427
460
  },
428
461
  },
429
462
  enforcement: 'active',
@@ -455,6 +488,30 @@ function desiredRuleset() {
455
488
  target: 'branch',
456
489
  };
457
490
  }
491
+ function desiredMainRuleset() {
492
+ return {
493
+ bypass_actors: [],
494
+ conditions: {
495
+ ref_name: { exclude: [], include: ['refs/heads/main'] },
496
+ },
497
+ enforcement: 'active',
498
+ name: exports.EBK_PROTECTED_MAIN_RULESET_NAME,
499
+ rules: [
500
+ { type: 'deletion' },
501
+ { type: 'non_fast_forward' },
502
+ {
503
+ parameters: {
504
+ required_status_checks: exports.EBK_REQUIRED_CHECKS.map((context) => ({
505
+ context,
506
+ })),
507
+ strict_required_status_checks_policy: true,
508
+ },
509
+ type: 'required_status_checks',
510
+ },
511
+ ],
512
+ target: 'branch',
513
+ };
514
+ }
458
515
  async function inspectEnvironment(api, repositoryPath, name) {
459
516
  const encoded = encodeURIComponent(name);
460
517
  let environment;
@@ -514,7 +571,7 @@ async function inspectEnvironment(api, repositoryPath, name) {
514
571
  waitTimer: environmentWaitTimer(environment),
515
572
  };
516
573
  }
517
- async function inspect(api, repositoryPath, productionApprovalMode, deploymentProfile) {
574
+ async function inspect(api, repositoryPath, productionApprovalMode, deploymentProfile, deliveryLane = 'protected-pair') {
518
575
  const blockers = [];
519
576
  const repo = await api.request('GET', repositoryPath);
520
577
  const repositoryIdentity = inspectRepositoryIdentity(repo);
@@ -561,7 +618,7 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
561
618
  }
562
619
  }
563
620
  }
564
- for (const branch of PROTECTED_BRANCHES) {
621
+ for (const branch of protectedBranchesFor(deliveryLane)) {
565
622
  try {
566
623
  const codeOwners = await api.request('GET', `${repositoryPath}/contents/.github/CODEOWNERS?ref=${branch}`);
567
624
  const content = codeOwners.content;
@@ -594,7 +651,7 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
594
651
  catch (error) {
595
652
  blockers.push(`Ruleset enforcement could not be inspected: ${error instanceof Error ? error.message : String(error)}`);
596
653
  }
597
- for (const branch of PROTECTED_BRANCHES) {
654
+ for (const branch of protectedBranchesFor(deliveryLane)) {
598
655
  try {
599
656
  const branchState = await api.request('GET', `${repositoryPath}/branches/${branch}`);
600
657
  const commit = typeof branchState.commit === 'object' && branchState.commit !== null
@@ -686,7 +743,7 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
686
743
  };
687
744
  }
688
745
  };
689
- const environments = Object.fromEntries(await Promise.all(githubEnvironmentTopology(deploymentProfile).map(async ({ name }) => [name, await inspectNamedEnvironment(name)])));
746
+ const environments = Object.fromEntries(await Promise.all(githubEnvironmentTopology(deploymentProfile, deliveryLane, productionApprovalMode).map(async ({ name }) => [name, await inspectNamedEnvironment(name)])));
690
747
  return {
691
748
  blockers,
692
749
  state: {
@@ -697,6 +754,8 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
697
754
  orgVariableNames,
698
755
  oidcSubjectCustomization,
699
756
  ownerPlanName,
757
+ ownedMainRuleset: rulesets.find((ruleset) => ruleset.name === exports.EBK_PROTECTED_MAIN_RULESET_NAME &&
758
+ ruleset.source_type !== 'Organization'),
700
759
  ownedRuleset: rulesets.find((ruleset) => ruleset.name === exports.EBK_PROTECTED_BRANCH_RULESET_NAME &&
701
760
  ruleset.source_type !== 'Organization'),
702
761
  repo,
@@ -707,7 +766,7 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
707
766
  },
708
767
  };
709
768
  }
710
- function evaluate(repository, state, inspectionBlockers, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile = 'fully-isolated') {
769
+ function evaluate(repository, state, inspectionBlockers, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile = 'fully-isolated', deliveryLane = 'protected-pair') {
711
770
  const blockers = [...inspectionBlockers];
712
771
  const changes = [];
713
772
  const warnings = [];
@@ -759,7 +818,7 @@ function evaluate(repository, state, inspectionBlockers, productionApprovalMode,
759
818
  }
760
819
  }
761
820
  for (const ruleset of state.rulesets) {
762
- const conflicts = conflictsWithMergeCommitContract(ruleset);
821
+ const conflicts = conflictsWithMergeCommitContract(ruleset, deliveryLane);
763
822
  if (conflicts.length > 0) {
764
823
  blockers.push(`Active ruleset ${String(ruleset.name ?? ruleset.id ?? 'unknown')} ${conflicts.join(' and ')}.`);
765
824
  }
@@ -767,26 +826,42 @@ function evaluate(repository, state, inspectionBlockers, productionApprovalMode,
767
826
  if (!state.ownedRuleset) {
768
827
  changes.push(`Create ruleset ${exports.EBK_PROTECTED_BRANCH_RULESET_NAME}.`);
769
828
  }
770
- else if (JSON.stringify(normalizeRuleset(state.ownedRuleset)) !==
771
- JSON.stringify(normalizeRuleset(desiredRuleset()))) {
829
+ else if (!rulesetMatchesDesired(state.ownedRuleset, deliveryLane, productionApprovalMode)) {
772
830
  changes.push(`Update ruleset ${exports.EBK_PROTECTED_BRANCH_RULESET_NAME}.`);
773
831
  }
774
- for (const topology of githubEnvironmentTopology(deploymentProfile)) {
832
+ if (productionApprovalMode === 'trunk-promotion') {
833
+ if (!state.ownedMainRuleset) {
834
+ changes.push(`Create ruleset ${exports.EBK_PROTECTED_MAIN_RULESET_NAME}.`);
835
+ }
836
+ else if (JSON.stringify(normalizeRuleset(state.ownedMainRuleset)) !==
837
+ JSON.stringify(normalizeRuleset(desiredMainRuleset()))) {
838
+ changes.push(`Update ruleset ${exports.EBK_PROTECTED_MAIN_RULESET_NAME}.`);
839
+ }
840
+ warnings.push('Trunk promotion keeps main behind required status checks and fast-forward-only updates without a pull-request rule; the production environment secret EBK_RECORD_MAIN_TOKEN is the intended writer, and any other contents-write actor could push an already verified commit.');
841
+ }
842
+ else if (state.ownedMainRuleset) {
843
+ changes.push(`Delete ruleset ${exports.EBK_PROTECTED_MAIN_RULESET_NAME}.`);
844
+ }
845
+ for (const topology of githubEnvironmentTopology(deploymentProfile, deliveryLane, productionApprovalMode)) {
775
846
  const { branch, name: environment, stage } = topology;
847
+ const allowedBranches = [branch, ...(topology.additionalBranches ?? [])];
776
848
  const current = state.environments[environment];
777
849
  if (!current.exists)
778
850
  changes.push(`Create ${environment} environment.`);
779
851
  if (!current.customBranchPolicies) {
780
852
  changes.push(`Enable custom deployment branch policy for ${environment}.`);
781
853
  }
782
- const extras = current.branchPolicies.filter(({ name, type }) => name !== branch || type !== 'branch');
854
+ const extras = current.branchPolicies.filter(({ name, type }) => type !== 'branch' ||
855
+ !allowedBranches.includes(name));
783
856
  if (extras.length > 0) {
784
857
  blockers.push(`${environment} permits unexpected deployment refs: ${extras
785
858
  .map(({ name, type }) => `${type}:${name}`)
786
859
  .join(', ')}.`);
787
860
  }
788
- if (!current.branchPolicies.some(({ name, type }) => name === branch && type === 'branch')) {
789
- changes.push(`Restrict ${environment} deployment to ${branch}.`);
861
+ for (const allowed of allowedBranches) {
862
+ if (!current.branchPolicies.some(({ name, type }) => name === allowed && type === 'branch')) {
863
+ changes.push(`Restrict ${environment} deployment to ${allowed}.`);
864
+ }
790
865
  }
791
866
  const requiredSecrets = topology.requiredSecrets;
792
867
  for (const secret of requiredSecrets) {
@@ -927,11 +1002,11 @@ function normalizeRuleset(ruleset) {
927
1002
  function existingReviewerPayload(ids) {
928
1003
  return ids.map((id) => ({ id, type: 'User' }));
929
1004
  }
930
- function rulesetMatchesDesired(ruleset) {
1005
+ function rulesetMatchesDesired(ruleset, deliveryLane = 'protected-pair', productionApprovalMode = 'promotion-pr') {
931
1006
  return (JSON.stringify(normalizeRuleset(ruleset)) ===
932
- JSON.stringify(normalizeRuleset(desiredRuleset())));
1007
+ JSON.stringify(normalizeRuleset(desiredRuleset(deliveryLane, productionApprovalMode))));
933
1008
  }
934
- async function applyChanges(api, repositoryPath, state, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile) {
1009
+ async function applyChanges(api, repositoryPath, state, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile, deliveryLane = 'protected-pair') {
935
1010
  if (requiresImmutableOidcSubjectCutover(state)) {
936
1011
  await api.request('PUT', `${repositoryPath}/actions/oidc/customization/sub`, { use_default: true, use_immutable_subject: true });
937
1012
  }
@@ -944,17 +1019,34 @@ async function applyChanges(api, repositoryPath, state, productionApprovalMode,
944
1019
  allow_squash_merge: false,
945
1020
  });
946
1021
  }
947
- const desired = desiredRuleset();
1022
+ const desired = desiredRuleset(deliveryLane, productionApprovalMode);
948
1023
  if (state.ownedRuleset &&
949
1024
  typeof state.ownedRuleset.id === 'number' &&
950
- !rulesetMatchesDesired(state.ownedRuleset)) {
1025
+ !rulesetMatchesDesired(state.ownedRuleset, deliveryLane, productionApprovalMode)) {
951
1026
  await api.request('PUT', `${repositoryPath}/rulesets/${state.ownedRuleset.id}`, desired);
952
1027
  }
953
1028
  else if (!state.ownedRuleset) {
954
1029
  await api.request('POST', `${repositoryPath}/rulesets`, desired);
955
1030
  }
956
- for (const topology of githubEnvironmentTopology(deploymentProfile)) {
1031
+ if (productionApprovalMode === 'trunk-promotion') {
1032
+ const desiredMain = desiredMainRuleset();
1033
+ if (state.ownedMainRuleset &&
1034
+ typeof state.ownedMainRuleset.id === 'number' &&
1035
+ JSON.stringify(normalizeRuleset(state.ownedMainRuleset)) !==
1036
+ JSON.stringify(normalizeRuleset(desiredMain))) {
1037
+ await api.request('PUT', `${repositoryPath}/rulesets/${state.ownedMainRuleset.id}`, desiredMain);
1038
+ }
1039
+ else if (!state.ownedMainRuleset) {
1040
+ await api.request('POST', `${repositoryPath}/rulesets`, desiredMain);
1041
+ }
1042
+ }
1043
+ else if (state.ownedMainRuleset &&
1044
+ typeof state.ownedMainRuleset.id === 'number') {
1045
+ await api.request('DELETE', `${repositoryPath}/rulesets/${state.ownedMainRuleset.id}`);
1046
+ }
1047
+ for (const topology of githubEnvironmentTopology(deploymentProfile, deliveryLane, productionApprovalMode)) {
957
1048
  const { branch, name: environment, stage } = topology;
1049
+ const allowedBranches = [branch, ...(topology.additionalBranches ?? [])];
958
1050
  const current = state.environments[environment];
959
1051
  const desiredProtection = desiredEnvironmentProtection(topology, state, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds);
960
1052
  const reviewers = desiredProtection.reviewers;
@@ -986,8 +1078,10 @@ async function applyChanges(api, repositoryPath, state, productionApprovalMode,
986
1078
  : {}),
987
1079
  });
988
1080
  }
989
- if (!current.branchPolicies.some(({ name, type }) => name === branch && type === 'branch')) {
990
- await api.request('POST', `${repositoryPath}/environments/${encodeURIComponent(environment)}/deployment-branch-policies`, { name: branch, type: 'branch' });
1081
+ for (const allowed of allowedBranches) {
1082
+ if (!current.branchPolicies.some(({ name, type }) => name === allowed && type === 'branch')) {
1083
+ await api.request('POST', `${repositoryPath}/environments/${encodeURIComponent(environment)}/deployment-branch-policies`, { name: allowed, type: 'branch' });
1084
+ }
991
1085
  }
992
1086
  }
993
1087
  }
@@ -999,7 +1093,7 @@ async function runGitHubBootstrap(options) {
999
1093
  throw new Error('GH_TOKEN or GITHUB_TOKEN is required for GitHub bootstrap.');
1000
1094
  }
1001
1095
  if (!index_js_1.PRODUCTION_APPROVAL_MODES.includes(options.productionApprovalMode)) {
1002
- throw new Error('Production approval mode must be the explicit committed value promotion-pr or environment-reviewer.');
1096
+ throw new Error('Production approval mode must be the explicit committed value promotion-pr, environment-reviewer, or trunk-promotion.');
1003
1097
  }
1004
1098
  if (!index_js_1.DEPLOYMENT_PROFILES.includes(deploymentProfile)) {
1005
1099
  throw new Error('Deployment profile must be starter, production-isolated, or fully-isolated.');
@@ -1022,8 +1116,9 @@ async function runGitHubBootstrap(options) {
1022
1116
  }
1023
1117
  const api = new GitHubApi(options.apiBaseUrl?.trim() || 'https://api.github.com', options.token);
1024
1118
  const repositoryPath = `/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}`;
1025
- const initial = await inspect(api, repositoryPath, options.productionApprovalMode, deploymentProfile);
1026
- const report = evaluate(repository, initial.state, initial.blockers, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile);
1119
+ const deliveryLane = options.deliveryLane ?? 'protected-pair';
1120
+ const initial = await inspect(api, repositoryPath, options.productionApprovalMode, deploymentProfile, deliveryLane);
1121
+ const report = evaluate(repository, initial.state, initial.blockers, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile, deliveryLane);
1027
1122
  if (!options.apply)
1028
1123
  return report;
1029
1124
  if (report.blockers.length > 0) {
@@ -1039,8 +1134,8 @@ async function runGitHubBootstrap(options) {
1039
1134
  throw new Error(`GitHub bootstrap immutable OIDC subject cutover requires the exact AWS-trust readiness acknowledgement ${JSON.stringify(expectedAcknowledgement)}. Apply the matching immutable repository-subject AWS trusts, read them back, and rerun with --immutableOidcTrustAcknowledgement=${JSON.stringify(expectedAcknowledgement)}. No GitHub settings were changed.`);
1040
1135
  }
1041
1136
  }
1042
- await applyChanges(api, repositoryPath, initial.state, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile);
1043
- const completed = await inspect(api, repositoryPath, options.productionApprovalMode, deploymentProfile);
1044
- return evaluate(repository, completed.state, completed.blockers, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile);
1137
+ await applyChanges(api, repositoryPath, initial.state, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile, deliveryLane);
1138
+ const completed = await inspect(api, repositoryPath, options.productionApprovalMode, deploymentProfile, deliveryLane);
1139
+ return evaluate(repository, completed.state, completed.blockers, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile, deliveryLane);
1045
1140
  }
1046
1141
  //# sourceMappingURL=github-bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-bootstrap.js","sourceRoot":"","sources":["../../../../../packages/nx/src/git-policy/github-bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-bootstrap.js","sourceRoot":"","sources":["../../../../../packages/nx/src/git-policy/github-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  export type GitPolicyEventName = 'pull_request' | 'push' | 'workflow_dispatch';
2
+ export type GitPolicyDeliveryLane = 'protected-pair' | 'trunk';
2
3
  export interface GitPolicyRequest {
3
4
  baseIsAncestorOfHead?: boolean;
4
5
  baseRef?: string;
6
+ /** trunk protects main alone: feature pull requests target main and every
7
+ * main push is a production delivery. Defaults to the protected pair. */
8
+ deliveryLane?: GitPolicyDeliveryLane;
5
9
  eventName: GitPolicyEventName;
6
10
  headRepository?: string;
7
11
  headRef?: string;
@@ -12,6 +16,6 @@ export interface GitPolicyRequest {
12
16
  export interface GitPolicyDecision {
13
17
  allowed: boolean;
14
18
  reasons: string[];
15
- route?: 'feature-to-develop' | 'develop-to-main' | 'main-to-develop' | 'protected-push' | 'protected-verification';
19
+ route?: 'feature-to-develop' | 'feature-to-main' | 'develop-to-main' | 'main-to-develop' | 'protected-push' | 'protected-verification';
16
20
  }
17
21
  export declare function evaluateGitPolicy(request: GitPolicyRequest): GitPolicyDecision;
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.evaluateGitPolicy = evaluateGitPolicy;
4
4
  function evaluateGitPolicy(request) {
5
+ if (request.deliveryLane === 'trunk') {
6
+ return evaluateTrunkGitPolicy(request);
7
+ }
5
8
  const reasons = [];
6
9
  let route;
7
10
  if (request.eventName === 'push') {
@@ -85,4 +88,51 @@ function evaluateGitPolicy(request) {
85
88
  ...(route ? { route } : {}),
86
89
  };
87
90
  }
91
+ /** Trunk lane: main is the only protected branch. Feature pull requests
92
+ * target main from an up-to-date branch; a main push is a production
93
+ * delivery; develop is not a protected route. */
94
+ function evaluateTrunkGitPolicy(request) {
95
+ const reasons = [];
96
+ let route;
97
+ if (request.eventName === 'push') {
98
+ if (request.ref !== 'refs/heads/main') {
99
+ reasons.push('Trunk delivery pushes must target main.');
100
+ }
101
+ else {
102
+ route = 'protected-push';
103
+ }
104
+ }
105
+ else if (request.eventName === 'workflow_dispatch') {
106
+ if (request.ref !== 'refs/heads/main') {
107
+ reasons.push('Trunk delivery manual verification must run from main.');
108
+ }
109
+ else {
110
+ route = 'protected-verification';
111
+ }
112
+ }
113
+ else if (request.eventName === 'pull_request') {
114
+ const base = request.baseRef;
115
+ const head = request.headRef;
116
+ if (!base || !head) {
117
+ reasons.push('Pull-request base and head metadata are required.');
118
+ }
119
+ else if (base !== 'main') {
120
+ reasons.push('Trunk delivery pull requests must target main.');
121
+ }
122
+ else if (head === 'main') {
123
+ reasons.push('A protected branch cannot open a pull request to itself.');
124
+ }
125
+ else {
126
+ route = 'feature-to-main';
127
+ }
128
+ if (route && request.baseIsAncestorOfHead !== true) {
129
+ reasons.push(`The ${base ?? 'base'} branch is not an ancestor of the proposed ${head ?? 'head'} commit. Refresh the branch without rewriting main.`);
130
+ }
131
+ }
132
+ return {
133
+ allowed: reasons.length === 0,
134
+ reasons,
135
+ ...(route ? { route } : {}),
136
+ };
137
+ }
88
138
  //# sourceMappingURL=routing.js.map