@xemahq/xema 0.27.0 → 0.28.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"env-defaults.d.ts","sourceRoot":"","sources":["../../src/dev/env-defaults.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAYrF,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmDpD,CAAC;AAwBH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa5D,CAAC;AAuCL,MAAM,WAAW,gBAAgB;IAE/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAMtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAMtE,CAAC;AAML,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQvE,CAAC;AAeJ,wBAAgB,0BAA0B,IAAI,0BAA0B,EAAE,CAazE;AAoBD,eAAO,MAAM,0BAA0B,QAEtC,CAAC;AAiBF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAW3D,CAAC;AAkBL,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4I3D,CAAC;AAOL,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,CAAC,MAAM,CAAC,CAoEvB"}
1
+ {"version":3,"file":"env-defaults.d.ts","sourceRoot":"","sources":["../../src/dev/env-defaults.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAYrF,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmDpD,CAAC;AAwBH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa5D,CAAC;AAuCL,MAAM,WAAW,gBAAgB;IAE/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAMtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAMtE,CAAC;AAML,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQvE,CAAC;AAeJ,wBAAgB,0BAA0B,IAAI,0BAA0B,EAAE,CAazE;AAoBD,eAAO,MAAM,0BAA0B,QAEtC,CAAC;AAiBF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAW3D,CAAC;AAkBL,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwI3D,CAAC;AAOL,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,CAAC,MAAM,CAAC,CAoEvB"}
@@ -136,7 +136,6 @@ exports.MISC_ENV_DEFAULTS = Object.freeze({
136
136
  GITHUB_APP_FRONTEND_ALLOWLIST: 'http://127.0.0.1:3000',
137
137
  SCM_WEBHOOK_SECRET: 'dev-scm-webhook-secret',
138
138
  K8S_ALLOWED_IMAGE_REGISTRIES: 'ghcr.io,docker.io,registry.k8s.io,quay.io,127.0.0.1:5000',
139
- MAILOPS_OAUTH_REDIRECT_URI: 'http://127.0.0.1:3000/mailops/oauth/callback',
140
139
  LLM_GATEWAY_API_URL: backingUrl('llm-gateway-api'),
141
140
  });
142
141
  function applyDevEnvDefaults(env = process.env) {
@@ -1 +1 @@
1
- {"version":3,"file":"env-defaults.js","sourceRoot":"","sources":["../../src/dev/env-defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env-defaults.js","sourceRoot":"","sources":["../../src/dev/env-defaults.ts"],"names":[],"mappings":"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"}
@@ -51116,8 +51116,15 @@ var edition_contract_default = {
51116
51116
  repositoryPrefix: "xema-edition-",
51117
51117
  descriptorFile: "xema-edition.json",
51118
51118
  descriptorSchema: "xema.edition/v1",
51119
- locks: ["distribution.lock.json", "images.lock.json", "authorization.lock.json", "chart-set.lock.json"],
51120
- offeringLayers: { catalogue: "catalogue.json" },
51119
+ locks: [
51120
+ "distribution.lock.json",
51121
+ "images.lock.json",
51122
+ "authorization.lock.json",
51123
+ "chart-set.lock.json"
51124
+ ],
51125
+ offeringLayers: {
51126
+ catalogue: "catalogue.json"
51127
+ },
51121
51128
  provenancePins: {
51122
51129
  catalogue: "the sha256 digest (sha256:<64 hex>) of the offering artifact a customer edition was resolved against; every other pin is a 40-hex commit"
51123
51130
  },
@@ -51125,11 +51132,11 @@ var edition_contract_default = {
51125
51132
  evidenceTrust: {
51126
51133
  states: {
51127
51134
  armed: "the data root declares an evidence trust policy that is pinned and ARMED on the channel of the edition",
51128
- "not-armed": "a release edition: exactly, the data root's evidenceTrustPolicy.required is false and it has no policy armed on the release channel; a develop edition: its policy is not armed on the develop channel, whatever required says"
51135
+ "not-armed": "a develop edition only: its data root declares no policy, or one that is not armed on the develop channel. A release edition never records not-armed"
51129
51136
  },
51130
51137
  refusal: {
51131
51138
  code: "EVIDENCE_TRUST_REQUIRED_UNARMED",
51132
- when: "evidenceTrustPolicy.required is true while the policy is not armed on the release channel (none declared, or declared but UNARMED or PARTIALLY ARMED there): `xema edition check` fails, no release edition is sealed and no release artifact is written, so a release descriptor never records not-armed for a required data root. Arming is judged per channel: a develop edition admits not-armed"
51139
+ when: "a release edition is written while the data root's evidence trust policy is not armed on the release channel (none declared, or declared but UNARMED or PARTIALLY ARMED there): no release descriptor or artifact is written, and no configuration key admits one. Arming is judged per channel: a develop edition admits not-armed"
51133
51140
  }
51134
51141
  }
51135
51142
  };
@@ -51726,35 +51733,35 @@ function requirePublishers(config) {
51726
51733
  })
51727
51734
  );
51728
51735
  }
51729
- var EVIDENCE_TRUST_POLICY_KEYS = Object.freeze(["pin", "policy", "required"]);
51736
+ var EVIDENCE_TRUST_POLICY_KEYS = Object.freeze(["pin", "policy"]);
51730
51737
  function isDataRootRelativePath(value) {
51731
51738
  return typeof value === "string" && DATA_ROOT_RELATIVE_PATH.test(value) && value.split("/").every((segment) => segment !== "." && segment !== "..");
51732
51739
  }
51733
51740
  function requireEvidenceTrustPolicy(config) {
51734
51741
  if (!Object.hasOwn(config, "evidenceTrustPolicy")) {
51735
51742
  throw new EditionWorkspaceConfigError(
51736
- `${EDITION_WORKSPACE_CONFIG_FILE}: "evidenceTrustPolicy" is required: {"required": true, "policy": ..., "pin": ...} or {"required": false} (no default: say whether this data root's editions must be evidence-gated)`
51743
+ `${EDITION_WORKSPACE_CONFIG_FILE}: "evidenceTrustPolicy" is required: {"policy": ..., "pin": ...}, or null to state that this data root declares no policy (no release edition can then be sealed from it)`
51737
51744
  );
51738
51745
  }
51739
51746
  const value = config.evidenceTrustPolicy;
51740
- const shapeError = () => new EditionWorkspaceConfigError(
51741
- `${EDITION_WORKSPACE_CONFIG_FILE}: "evidenceTrustPolicy" is exactly {required: boolean} or {required, policy, pin} with both paths data-root-relative`
51747
+ if (value === null) {
51748
+ return Object.freeze({ policy: null, pin: null });
51749
+ }
51750
+ const shapeError = (detail) => new EditionWorkspaceConfigError(
51751
+ `${EDITION_WORKSPACE_CONFIG_FILE}: "evidenceTrustPolicy" is exactly null or {policy, pin} with both paths data-root-relative${detail}`
51742
51752
  );
51743
- if (value === null || typeof value !== "object" || Array.isArray(value)) {
51744
- throw shapeError();
51753
+ if (typeof value !== "object" || Array.isArray(value)) {
51754
+ throw shapeError("");
51745
51755
  }
51746
51756
  const keys = Object.keys(value).sort();
51747
- if (!keys.every((key) => EVIDENCE_TRUST_POLICY_KEYS.includes(key)) || typeof value.required !== "boolean") {
51748
- throw shapeError();
51757
+ const unknown = keys.filter((key) => !EVIDENCE_TRUST_POLICY_KEYS.includes(key));
51758
+ if (unknown.length > 0) {
51759
+ throw shapeError(`; unknown key ${unknown.map((key) => `"${key}"`).join(", ")}`);
51749
51760
  }
51750
- const declared = keys.length > 1;
51751
- if (declared && keys.join() !== EVIDENCE_TRUST_POLICY_KEYS.join()) {
51752
- throw shapeError();
51761
+ if (keys.join() !== EVIDENCE_TRUST_POLICY_KEYS.join()) {
51762
+ throw shapeError("");
51753
51763
  }
51754
- if (!declared) {
51755
- return Object.freeze({ required: value.required, policy: null, pin: null });
51756
- }
51757
- for (const key of ["policy", "pin"]) {
51764
+ for (const key of EVIDENCE_TRUST_POLICY_KEYS) {
51758
51765
  if (!isDataRootRelativePath(value[key])) {
51759
51766
  throw new EditionWorkspaceConfigError(
51760
51767
  `${EDITION_WORKSPACE_CONFIG_FILE}: "evidenceTrustPolicy.${key}" must be a data-root-relative POSIX path without "." or ".." segments; got ${JSON.stringify(value[key])}`
@@ -51764,7 +51771,7 @@ function requireEvidenceTrustPolicy(config) {
51764
51771
  if (value.policy === value.pin) {
51765
51772
  throw new EditionWorkspaceConfigError(`${EDITION_WORKSPACE_CONFIG_FILE}: "evidenceTrustPolicy.policy" and ".pin" must be different files`);
51766
51773
  }
51767
- return Object.freeze({ required: value.required, policy: value.policy, pin: value.pin });
51774
+ return Object.freeze({ policy: value.policy, pin: value.pin });
51768
51775
  }
51769
51776
  function parseEditionWorkspaceConfig(document) {
51770
51777
  if (document === null || typeof document !== "object" || Array.isArray(document)) {
@@ -52015,6 +52022,11 @@ function parseEditionDescriptor(value) {
52015
52022
  if (!Object.values(EvidenceTrustState).includes(value.evidenceTrustPolicy)) {
52016
52023
  throw new Error(`${EDITION_DESCRIPTOR_FILE}: evidenceTrustPolicy must be one of ${Object.values(EvidenceTrustState).join(" | ")}`);
52017
52024
  }
52025
+ if (value.provenance.channel === EditionChannel.Release && value.evidenceTrustPolicy !== EvidenceTrustState.Armed) {
52026
+ throw new Error(
52027
+ `${EDITION_DESCRIPTOR_FILE}: a release edition requires an armed evidence trust policy; "${value.distributionId}" records ${JSON.stringify(value.evidenceTrustPolicy)}`
52028
+ );
52029
+ }
52018
52030
  exactKeys(value.engine, ["image"], `${EDITION_DESCRIPTOR_FILE} engine`);
52019
52031
  assertEngineImage(value.engine.image);
52020
52032
  return value;
@@ -52453,6 +52465,21 @@ function gradeTrustedCheckouts({ grades, trustedGit, expected }) {
52453
52465
  group.requirements.push({ root: canonicalRoot, label, requiredPaths });
52454
52466
  byRepository.set(location.repositoryRoot, group);
52455
52467
  }
52468
+ if (expected !== void 0) {
52469
+ const regraded = new Set(
52470
+ [...byRepository.values()].flatMap((group) => group.requirements.map(({ root: root2 }) => root2))
52471
+ );
52472
+ for (const root2 of regraded) {
52473
+ if (typeof expected.get(root2)?.commit !== "string") {
52474
+ throw new Error(`${root2} was not graded first, so its HEAD cannot be held unchanged`);
52475
+ }
52476
+ }
52477
+ for (const root2 of expected.keys()) {
52478
+ if (!regraded.has(root2)) {
52479
+ throw new Error(`${root2} was graded first and is missing from the re-grade`);
52480
+ }
52481
+ }
52482
+ }
52456
52483
  const result = /* @__PURE__ */ new Map();
52457
52484
  for (const [repositoryRoot, group] of byRepository) {
52458
52485
  assertTrustedCheckoutLocation(group.location, group.labels.join(" + "));
@@ -52460,9 +52487,12 @@ function gradeTrustedCheckouts({ grades, trustedGit, expected }) {
52460
52487
  repositoryRoot,
52461
52488
  requirements: group.requirements,
52462
52489
  trustedGit,
52463
- expectedCommit: expected?.get(group.requirements[0].root)?.commit
52490
+ expectedCommit: expected?.get(group.requirements[0].root).commit
52464
52491
  });
52465
52492
  for (const { root: root2 } of group.requirements) {
52493
+ if (expected !== void 0 && expected.get(root2).commit !== graded.commit) {
52494
+ throw new Error(`${repositoryRoot} HEAD changed during verification`);
52495
+ }
52466
52496
  result.set(root2, graded);
52467
52497
  }
52468
52498
  }
@@ -53553,6 +53583,59 @@ function assertPinnedVerifier({ pin, actual }) {
53553
53583
  }
53554
53584
  }
53555
53585
 
53586
+ // edition/image-delivery-entitlement-descriptor.mjs
53587
+ import { dirname as dirname4, join as join6 } from "node:path";
53588
+ var ENTITLEMENT_DESCRIPTOR_FILE = "entitlement.json";
53589
+ var ENTITLEMENT_DESCRIPTOR_SCHEMA_VERSION = 2;
53590
+ var ENTITLEMENT_DESCRIPTOR_KEYS = Object.freeze([
53591
+ "schemaVersion",
53592
+ "distributionId",
53593
+ "customerId",
53594
+ "mode",
53595
+ "targetRegistry",
53596
+ "idempotencyKey",
53597
+ "distributionStatementDigest",
53598
+ "evidence"
53599
+ ]);
53600
+ function parseEntitlementDescriptorDocument(raw, schemas2) {
53601
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
53602
+ throw new Error(`${ENTITLEMENT_DESCRIPTOR_FILE} must be a JSON object`);
53603
+ }
53604
+ if (raw.schemaVersion !== ENTITLEMENT_DESCRIPTOR_SCHEMA_VERSION) {
53605
+ throw new Error(
53606
+ `${ENTITLEMENT_DESCRIPTOR_FILE} has schemaVersion ${JSON.stringify(raw.schemaVersion)}; this verifier reads schemaVersion ${ENTITLEMENT_DESCRIPTOR_SCHEMA_VERSION} only (accept the entitlement again with this CLI)`
53607
+ );
53608
+ }
53609
+ const keys = Object.keys(raw).sort();
53610
+ const expected = [...ENTITLEMENT_DESCRIPTOR_KEYS].sort();
53611
+ if (keys.length !== expected.length || keys.some((key, index) => key !== expected[index])) {
53612
+ throw new Error(
53613
+ `${ENTITLEMENT_DESCRIPTOR_FILE} must hold exactly the keys ${ENTITLEMENT_DESCRIPTOR_KEYS.join(", ")}; it holds ${keys.join(", ")}`
53614
+ );
53615
+ }
53616
+ for (const key of ["distributionId", "customerId", "mode", "idempotencyKey", "distributionStatementDigest"]) {
53617
+ if (typeof raw[key] !== "string" || raw[key] === "") {
53618
+ throw new Error(`${ENTITLEMENT_DESCRIPTOR_FILE} "${key}" must be a non-empty string`);
53619
+ }
53620
+ }
53621
+ if (raw.targetRegistry !== null && (typeof raw.targetRegistry !== "string" || raw.targetRegistry === "")) {
53622
+ throw new Error(`${ENTITLEMENT_DESCRIPTOR_FILE} "targetRegistry" must be null or a non-empty string`);
53623
+ }
53624
+ return { ...raw, evidence: schemas2.SigstoreEvidenceDescriptorSchema.parse(raw.evidence) };
53625
+ }
53626
+ function assertEntitlementDescriptorStates(document, expected) {
53627
+ for (const key of ["distributionId", "customerId", "mode", "targetRegistry", "distributionStatementDigest"]) {
53628
+ if (document[key] !== expected[key]) {
53629
+ throw new Error(
53630
+ `${ENTITLEMENT_DESCRIPTOR_FILE} states ${key} ${JSON.stringify(document[key])}, not the ${JSON.stringify(expected[key])} this verification was asked for`
53631
+ );
53632
+ }
53633
+ }
53634
+ }
53635
+ function entitlementEvidenceRoot(evidenceRoot, entitlementDescriptorPath) {
53636
+ return dirname4(join6(evidenceRoot, entitlementDescriptorPath));
53637
+ }
53638
+
53556
53639
  // edition/image-evidence-replay-state.mjs
53557
53640
  import { randomUUID } from "node:crypto";
53558
53641
  import {
@@ -53567,7 +53650,7 @@ import {
53567
53650
  unlinkSync,
53568
53651
  writeFileSync as writeFileSync3
53569
53652
  } from "node:fs";
53570
- import { basename as basename3, dirname as dirname4, isAbsolute as isAbsolute5, join as join6 } from "node:path";
53653
+ import { basename as basename3, dirname as dirname5, isAbsolute as isAbsolute5, join as join7 } from "node:path";
53571
53654
  var MAX_REPLAY_STATE_BYTES = 64 * 1024;
53572
53655
  function openRegularFileNoFollow(path) {
53573
53656
  const descriptor = openSync3(
@@ -53614,8 +53697,8 @@ function assertTrustedStateDirectory(path) {
53614
53697
  }
53615
53698
  }
53616
53699
  function writeDurableReplacement(path, value) {
53617
- const directory = realpathSync5(dirname4(path));
53618
- const temporaryPath = join6(
53700
+ const directory = realpathSync5(dirname5(path));
53701
+ const temporaryPath = join7(
53619
53702
  directory,
53620
53703
  `.${basename3(path)}.${randomUUID()}.tmp`
53621
53704
  );
@@ -53663,12 +53746,12 @@ async function verifyAndAdvanceReplayState({
53663
53746
  if (!isAbsolute5(statePath)) {
53664
53747
  throw new Error("replay state path must be absolute");
53665
53748
  }
53666
- const stateDirectory = realpathSync5(dirname4(statePath));
53667
- if (stateDirectory !== dirname4(statePath)) {
53749
+ const stateDirectory = realpathSync5(dirname5(statePath));
53750
+ if (stateDirectory !== dirname5(statePath)) {
53668
53751
  throw new Error("replay state parent path must be canonical");
53669
53752
  }
53670
53753
  assertTrustedStateDirectory(stateDirectory);
53671
- const canonicalStatePath = join6(stateDirectory, basename3(statePath));
53754
+ const canonicalStatePath = join7(stateDirectory, basename3(statePath));
53672
53755
  const lockPath = `${canonicalStatePath}.lock`;
53673
53756
  let lockDescriptor;
53674
53757
  try {
@@ -53772,7 +53855,7 @@ async function verifyAndAdvanceReplayState({
53772
53855
 
53773
53856
  // edition/verifier-binding.mjs
53774
53857
  import { readFileSync as readFileSync5, realpathSync as realpathSync6 } from "node:fs";
53775
- import { dirname as dirname5, join as join7 } from "node:path";
53858
+ import { dirname as dirname6, join as join8 } from "node:path";
53776
53859
 
53777
53860
  // edition/verifier-files.mjs
53778
53861
  var VERIFIER_PROVENANCE_FILE = "verify-image-evidence.bundle.provenance.json";
@@ -53823,7 +53906,7 @@ function readRunningVerifier(bundlePath) {
53823
53906
  assertProtectedPathAncestry(realBundle, "the evidence verifier install");
53824
53907
  const bundleBytes = readFileSync5(realBundle);
53825
53908
  const provenanceBytes = readFileSync5(
53826
- join7(dirname5(realBundle), VERIFIER_PROVENANCE_FILE)
53909
+ join8(dirname6(realBundle), VERIFIER_PROVENANCE_FILE)
53827
53910
  );
53828
53911
  parseVerifierProvenance({ provenanceBytes, bundleBytes });
53829
53912
  return { bundleBytes, provenanceBytes };
@@ -53841,11 +53924,12 @@ async function loadVerifierKernelSchemas() {
53841
53924
  }
53842
53925
 
53843
53926
  // edition/verify-image-evidence.mjs
53844
- var USAGE = "usage: verify-image-evidence <distributionId> --evidence-root <dir> --descriptor <absolute-path> --state <absolute-path> --cosign <absolute-path> --git <absolute-path> [--evidence-set <relative-path>] [--json] [--entitlement <relative-path> --customer <id> --mode <mode> [--target-registry <registry>]] --data-root <dir> --editions-root <dir> --kernel <dir>";
53927
+ var USAGE = "usage: verify-image-evidence <distributionId> --evidence-root <dir> --descriptor <absolute-path> --state <absolute-path> --cosign <absolute-path> --git <absolute-path> [--evidence-set <relative-path>] [--json] [--entitlement <relative-path> --entitlement-workflow-sha <40-hex git sha> --customer <id> --mode <mode> [--target-registry <registry>]] --data-root <dir> --editions-root <dir> --kernel <dir>";
53845
53928
  var EVIDENCE_CHANNEL_OF_EDITION_CHANNEL = Object.freeze({
53846
53929
  [EditionChannel.Release]: "release",
53847
53930
  [EditionChannel.Develop]: "develop"
53848
53931
  });
53932
+ var GIT_COMMIT_SHA = /^[a-f0-9]{40}$/;
53849
53933
  var DATA_ROOT_FILES = Object.freeze(["edition-workspace.json", "runtime-image-source-index.json"]);
53850
53934
  function requireOptionValue(args, index, flag) {
53851
53935
  const value = args[index + 1];
@@ -53876,6 +53960,7 @@ function parseArgs(args) {
53876
53960
  cosignBinary: null,
53877
53961
  gitBinary: null,
53878
53962
  entitlementDescriptorPath: null,
53963
+ entitlementWorkflowSha: null,
53879
53964
  customerId: null,
53880
53965
  mode: null,
53881
53966
  targetRegistry: null
@@ -53902,6 +53987,8 @@ function parseArgs(args) {
53902
53987
  options.gitBinary = value;
53903
53988
  } else if (flag === "--entitlement") {
53904
53989
  options.entitlementDescriptorPath = value;
53990
+ } else if (flag === "--entitlement-workflow-sha") {
53991
+ options.entitlementWorkflowSha = value;
53905
53992
  } else if (flag === "--customer") {
53906
53993
  options.customerId = value;
53907
53994
  } else if (flag === "--mode") {
@@ -53927,6 +54014,7 @@ function parseArgs(args) {
53927
54014
  }
53928
54015
  const entitlementFlags = [
53929
54016
  ["--entitlement", options.entitlementDescriptorPath],
54017
+ ["--entitlement-workflow-sha", options.entitlementWorkflowSha],
53930
54018
  ["--customer", options.customerId],
53931
54019
  ["--mode", options.mode]
53932
54020
  ];
@@ -53937,7 +54025,10 @@ function parseArgs(args) {
53937
54025
  );
53938
54026
  }
53939
54027
  if (stated.length === 0 && options.targetRegistry !== null) {
53940
- throw new Error("--target-registry needs --entitlement, --customer and --mode");
54028
+ throw new Error("--target-registry needs --entitlement, --entitlement-workflow-sha, --customer and --mode");
54029
+ }
54030
+ if (options.entitlementWorkflowSha !== null && !GIT_COMMIT_SHA.test(options.entitlementWorkflowSha)) {
54031
+ throw new Error("--entitlement-workflow-sha must be a 40-character lowercase hexadecimal git commit SHA");
53941
54032
  }
53942
54033
  if (options.entitlementDescriptorPath !== null && isAbsolute6(options.entitlementDescriptorPath)) {
53943
54034
  throw new Error("--entitlement must be an evidence-root-relative path");
@@ -54105,13 +54196,26 @@ async function verifyEvidence({ argv, env, bundlePath }) {
54105
54196
  cosignBinary: options.cosignBinary,
54106
54197
  schemas: schemas2
54107
54198
  });
54108
- const entitlementDescriptor = options.entitlementDescriptorPath === null ? null : readCanonicalJsonFromRoot(
54109
- evidenceRoot,
54110
- options.entitlementDescriptorPath,
54111
- "delivery entitlement evidence descriptor"
54199
+ const entitlement = options.entitlementDescriptorPath === null ? null : parseEntitlementDescriptorDocument(
54200
+ readCanonicalJsonFromRoot(
54201
+ evidenceRoot,
54202
+ options.entitlementDescriptorPath,
54203
+ "delivery entitlement descriptor"
54204
+ ),
54205
+ schemas2
54112
54206
  );
54207
+ if (entitlement !== null) {
54208
+ assertEntitlementDescriptorStates(entitlement, {
54209
+ distributionId: options.distributionId,
54210
+ customerId: options.customerId,
54211
+ mode: options.mode,
54212
+ targetRegistry: options.targetRegistry,
54213
+ distributionStatementDigest: result.completenessStatementDigest
54214
+ });
54215
+ }
54216
+ const entitlementDescriptor = entitlement === null ? null : entitlement.evidence;
54113
54217
  const entitlementStatement = entitlementDescriptor === null ? null : await verifyImageDeliveryEntitlement({
54114
- evidenceRoot,
54218
+ evidenceRoot: entitlementEvidenceRoot(evidenceRoot, options.entitlementDescriptorPath),
54115
54219
  descriptor: entitlementDescriptor,
54116
54220
  policy: anchors.policy,
54117
54221
  policyRoot: dataRoot(),
@@ -54122,9 +54226,9 @@ async function verifyEvidence({ argv, env, bundlePath }) {
54122
54226
  mode: options.mode,
54123
54227
  targetRegistry: options.targetRegistry,
54124
54228
  now: /* @__PURE__ */ new Date(),
54125
- // The entitlement predicate carries no producer run, so there
54126
- // is no workflow SHA to demand and none is invented.
54127
- expectedWorkflowSha: void 0,
54229
+ // The entitlement predicate carries no producer run: the commit
54230
+ // its certificate is held to is the caller's statement.
54231
+ expectedWorkflowSha: options.entitlementWorkflowSha,
54128
54232
  // A nonce spent by a producer or completeness statement of
54129
54233
  // this release cannot be reused by its entitlement.
54130
54234
  consumedNonces: result.verifiedNonces,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "artifactSha256": "sha256:669f555ec2e2a0c260e2cd6523a95464888db2a0beb1ba52941c7b4d43d4b88f",
3
+ "artifactSha256": "sha256:a50fae555a6b55791afbec256bf41745d0dc849eb9d964369a41e8a0d4f58a8b",
4
4
  "esbuild": {
5
5
  "version": "0.28.2"
6
6
  },
@@ -2119,181 +2119,187 @@
2119
2119
  },
2120
2120
  {
2121
2121
  "package": "@xemahq/xema",
2122
- "version": "0.27.0",
2122
+ "version": "0.28.0",
2123
2123
  "path": "edition/authorization-base.mjs",
2124
2124
  "sha256": "sha256:7ded47eadc194ebf11583f77c695bf1708e502c654420564d55be3b599ff770f"
2125
2125
  },
2126
2126
  {
2127
2127
  "package": "@xemahq/xema",
2128
- "version": "0.27.0",
2128
+ "version": "0.28.0",
2129
2129
  "path": "edition/connector-source-authority.mjs",
2130
2130
  "sha256": "sha256:ea94475f4324737673accd7de1303c44db1cbc4dac61a865a06cd83abe310164"
2131
2131
  },
2132
2132
  {
2133
2133
  "package": "@xemahq/xema",
2134
- "version": "0.27.0",
2134
+ "version": "0.28.0",
2135
2135
  "path": "edition/distribution-paths.mjs",
2136
2136
  "sha256": "sha256:d78a5c8405bc6c25d36fcec61b0030e1fdacac7d528e698adb96f906f4b70279"
2137
2137
  },
2138
2138
  {
2139
2139
  "package": "@xemahq/xema",
2140
- "version": "0.27.0",
2140
+ "version": "0.28.0",
2141
2141
  "path": "edition/edition-artifact.mjs",
2142
- "sha256": "sha256:e2aa610e41d4e0f83a0e6983e1ed986899e77ba850d67030c49c9dd2f88c05fe"
2142
+ "sha256": "sha256:b27a039f3e93c0caadc6562d89fd7b1843140da291e183137ec4eb6966cdf468"
2143
2143
  },
2144
2144
  {
2145
2145
  "package": "@xemahq/xema",
2146
- "version": "0.27.0",
2146
+ "version": "0.28.0",
2147
2147
  "path": "edition/edition-channel.mjs",
2148
2148
  "sha256": "sha256:9dcd7b09d4fee8c4d43338e4e418619aa3003a612823455310cad6f6c48a19c0"
2149
2149
  },
2150
2150
  {
2151
2151
  "package": "@xemahq/xema",
2152
- "version": "0.27.0",
2152
+ "version": "0.28.0",
2153
2153
  "path": "edition/edition-chart-set.mjs",
2154
2154
  "sha256": "sha256:382e4eb4dbcf9fe88a01a4bf52480ebf6594a35e6abe235db637892c3cba595c"
2155
2155
  },
2156
2156
  {
2157
2157
  "package": "@xemahq/xema",
2158
- "version": "0.27.0",
2158
+ "version": "0.28.0",
2159
2159
  "path": "edition/edition-config.mjs",
2160
- "sha256": "sha256:7728d4d1eaf9b85521d207509ee8647a47e3eb830192abfe4a1995042a444e47"
2160
+ "sha256": "sha256:5a9019079b04ffa4394405e05fc18e870171fa9da7405f37e1e608f1456bd43e"
2161
2161
  },
2162
2162
  {
2163
2163
  "package": "@xemahq/xema",
2164
- "version": "0.27.0",
2164
+ "version": "0.28.0",
2165
2165
  "path": "edition/edition-constants.mjs",
2166
2166
  "sha256": "sha256:e923fac9753d3203b3e27c708f9a9a4f3b2ce1337b2eda03be415ee27796f479"
2167
2167
  },
2168
2168
  {
2169
2169
  "package": "@xemahq/xema",
2170
- "version": "0.27.0",
2170
+ "version": "0.28.0",
2171
2171
  "path": "edition/edition-contract.json",
2172
- "sha256": "sha256:b10e60fe6af58aa8d1792270ff5c3761f1e3a76ce35493eb8568e4fb9bb51e84"
2172
+ "sha256": "sha256:83e0b986a9a8a2f8d5c1fe06dea852f7893ee1188b51fe75816f2e58cfe8bb15"
2173
2173
  },
2174
2174
  {
2175
2175
  "package": "@xemahq/xema",
2176
- "version": "0.27.0",
2176
+ "version": "0.28.0",
2177
2177
  "path": "edition/edition-protocol.mjs",
2178
2178
  "sha256": "sha256:3a0d53d18718790ac32c92164e373f7f038675a3e9410e5ef3c139affcf42892"
2179
2179
  },
2180
2180
  {
2181
2181
  "package": "@xemahq/xema",
2182
- "version": "0.27.0",
2182
+ "version": "0.28.0",
2183
2183
  "path": "edition/edition-workspace.mjs",
2184
- "sha256": "sha256:6b48769858287162afcb07bd8d9ab0a39bf8c40749a7144d022b37cb44a102ea"
2184
+ "sha256": "sha256:fdd681e8f7b8da5da53664c45173cd042606d3dfc36567398909fd8d24a10eea"
2185
2185
  },
2186
2186
  {
2187
2187
  "package": "@xemahq/xema",
2188
- "version": "0.27.0",
2188
+ "version": "0.28.0",
2189
2189
  "path": "edition/evidence-checkout.mjs",
2190
- "sha256": "sha256:06c8d95d8f771434fb8ec5556fe00aa4ed6c9152ec9e6f3a4177ac09928e54ae"
2190
+ "sha256": "sha256:31fb669769b31de4c6f2b2501bb96959548172ef166e7568edbbfed7f5079a11"
2191
2191
  },
2192
2192
  {
2193
2193
  "package": "@xemahq/xema",
2194
- "version": "0.27.0",
2194
+ "version": "0.28.0",
2195
2195
  "path": "edition/evidence-grammars.mjs",
2196
2196
  "sha256": "sha256:4dae22b61ade99219a482b971c9780d68a3d37d021e39cdfe860b245364b8b9f"
2197
2197
  },
2198
2198
  {
2199
2199
  "package": "@xemahq/xema",
2200
- "version": "0.27.0",
2200
+ "version": "0.28.0",
2201
2201
  "path": "edition/evidence-trust-pin.mjs",
2202
2202
  "sha256": "sha256:b9dd5c01903394436530783614efb0cd357d982ed2befd844a39328479773cbc"
2203
2203
  },
2204
2204
  {
2205
2205
  "package": "@xemahq/xema",
2206
- "version": "0.27.0",
2206
+ "version": "0.28.0",
2207
+ "path": "edition/image-delivery-entitlement-descriptor.mjs",
2208
+ "sha256": "sha256:4726b66116f01bf2523fafe2b7a356591eca8fb5ca6bd8b154dd4821873e921b"
2209
+ },
2210
+ {
2211
+ "package": "@xemahq/xema",
2212
+ "version": "0.28.0",
2207
2213
  "path": "edition/image-evidence-replay-state.mjs",
2208
2214
  "sha256": "sha256:eba0cf1d38af0ab2f00c5099fa8bc2edc543136ce92f895544d4d284b3d6af0f"
2209
2215
  },
2210
2216
  {
2211
2217
  "package": "@xemahq/xema",
2212
- "version": "0.27.0",
2218
+ "version": "0.28.0",
2213
2219
  "path": "edition/image-evidence.mjs",
2214
- "sha256": "sha256:8d3749138d610b355c4d54120589c2aa3d6985e3a94e904bc2658bcc19a12926"
2220
+ "sha256": "sha256:342e8209c5c0ead5dbfbea573afdfab9e53bbf181eb7918b85d2982fb4942992"
2215
2221
  },
2216
2222
  {
2217
2223
  "package": "@xemahq/xema",
2218
- "version": "0.27.0",
2224
+ "version": "0.28.0",
2219
2225
  "path": "edition/kernel-contract-authority.mjs",
2220
2226
  "sha256": "sha256:d486db676ff029706d5e53d07c76c2e61d1010b8a45a39d75cd10aaa8c429855"
2221
2227
  },
2222
2228
  {
2223
2229
  "package": "@xemahq/xema",
2224
- "version": "0.27.0",
2230
+ "version": "0.28.0",
2225
2231
  "path": "edition/lib.mjs",
2226
- "sha256": "sha256:b0c94e6cbf20848923940eae0ac5cffa4ce4097608ac0ca737b7be353bafbe5e"
2232
+ "sha256": "sha256:5b668b4495f31cb884b25dd5edad6a1205bb7f0ff4155bd4a708815fa60bef97"
2227
2233
  },
2228
2234
  {
2229
2235
  "package": "@xemahq/xema",
2230
- "version": "0.27.0",
2236
+ "version": "0.28.0",
2231
2237
  "path": "edition/no-follow-file.mjs",
2232
2238
  "sha256": "sha256:c17bdf5e441f3c079aa06d4b48bbed05cad087855b9ad2a5e6dc43d5ee2b17c3"
2233
2239
  },
2234
2240
  {
2235
2241
  "package": "@xemahq/xema",
2236
- "version": "0.27.0",
2242
+ "version": "0.28.0",
2237
2243
  "path": "edition/pin-source.mjs",
2238
2244
  "sha256": "sha256:f55b290fd45a8c2612d9dcbc02244d8db3142af0345459df015de194d45611d8"
2239
2245
  },
2240
2246
  {
2241
2247
  "package": "@xemahq/xema",
2242
- "version": "0.27.0",
2248
+ "version": "0.28.0",
2243
2249
  "path": "edition/source-authority.mjs",
2244
2250
  "sha256": "sha256:2351d47a32ee865720a675f1ecd336b00cdce4aa34713219a1aa23920ac7b60f"
2245
2251
  },
2246
2252
  {
2247
2253
  "package": "@xemahq/xema",
2248
- "version": "0.27.0",
2254
+ "version": "0.28.0",
2249
2255
  "path": "edition/strict-json.mjs",
2250
2256
  "sha256": "sha256:f95778396df7f38b086f55d2ec4f3b6644a8aeff2b32282a62829145fb544562"
2251
2257
  },
2252
2258
  {
2253
2259
  "package": "@xemahq/xema",
2254
- "version": "0.27.0",
2260
+ "version": "0.28.0",
2255
2261
  "path": "edition/string-order.mjs",
2256
2262
  "sha256": "sha256:b3210cd273e4b2e01fb8b1a91e28734cd211d4010c080d0ce95f5e5ff631cffb"
2257
2263
  },
2258
2264
  {
2259
2265
  "package": "@xemahq/xema",
2260
- "version": "0.27.0",
2266
+ "version": "0.28.0",
2261
2267
  "path": "edition/trusted-executable.mjs",
2262
2268
  "sha256": "sha256:37d46cdbc999ddd55d4ea8aeed4850ddd1efde89ed7b532f5a2ddec87105d796"
2263
2269
  },
2264
2270
  {
2265
2271
  "package": "@xemahq/xema",
2266
- "version": "0.27.0",
2272
+ "version": "0.28.0",
2267
2273
  "path": "edition/verifier-binding.mjs",
2268
2274
  "sha256": "sha256:80732658617f5255258c538eeb2383331ec8553b44b58d552b567845a7b916aa"
2269
2275
  },
2270
2276
  {
2271
2277
  "package": "@xemahq/xema",
2272
- "version": "0.27.0",
2278
+ "version": "0.28.0",
2273
2279
  "path": "edition/verifier-files.mjs",
2274
2280
  "sha256": "sha256:cdd14a20a63f0f194a8abb55680a5a7e3ced1f09f8b210a90d349e655f6de0c0"
2275
2281
  },
2276
2282
  {
2277
2283
  "package": "@xemahq/xema",
2278
- "version": "0.27.0",
2284
+ "version": "0.28.0",
2279
2285
  "path": "edition/verifier-provenance.mjs",
2280
2286
  "sha256": "sha256:3e2fb8e07cf1f66b8ad6c7ac2555fe3af64ec7abeb07cecbaf1939a18c2b3663"
2281
2287
  },
2282
2288
  {
2283
2289
  "package": "@xemahq/xema",
2284
- "version": "0.27.0",
2290
+ "version": "0.28.0",
2285
2291
  "path": "edition/verify-image-evidence.mjs",
2286
- "sha256": "sha256:a716751a40d038c879338d6056a45b79424c75574214f442cbb6e7ded871b6c2"
2292
+ "sha256": "sha256:b7412ea4609c32cecf8992a4d2db4bf27fbad95b2d26ab1eee10ddbf044d1a0e"
2287
2293
  },
2288
2294
  {
2289
2295
  "package": "@xemahq/xema",
2290
- "version": "0.27.0",
2296
+ "version": "0.28.0",
2291
2297
  "path": "edition/workspace-sections.mjs",
2292
2298
  "sha256": "sha256:058c849767434e9ba911d9310092bede42e3ef959c75bbd35ff8879dc21ce3ff"
2293
2299
  },
2294
2300
  {
2295
2301
  "package": "@xemahq/xema",
2296
- "version": "0.27.0",
2302
+ "version": "0.28.0",
2297
2303
  "path": "scripts/build-evidence-verifier.mjs",
2298
2304
  "sha256": "sha256:decfa7ca6c340e51ddc06f4d30caac8e8e3c060c843c211586efc313dd9ace8e"
2299
2305
  },