@kungfu-tech/buildchain 2.12.9-alpha.1 → 2.13.0-alpha.1
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/actions/promote-buildchain-ref/README.md +13 -0
- package/actions/run-lifecycle/README.md +5 -0
- package/bin/buildchain.mjs +62 -0
- package/dist/site/buildchain-contract.json +50 -25
- package/dist/site/buildchain-site.json +82 -41
- package/dist/site/capability-registry.json +3 -3
- package/dist/site/cli-registry.json +24 -0
- package/dist/site/controller-registry.json +24 -4
- package/dist/site/kfd-claims.json +78 -16
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +10 -10
- package/dist/site/node-api-registry.json +20 -7
- package/dist/site/page-registry.json +68 -27
- package/dist/site/public-surface-audit.json +65 -15
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +1 -0
- package/dist/site/site-manifest.json +14 -14
- package/dist/site/workflow-registry.json +25 -9
- package/docs/MAP.md +1 -0
- package/docs/artifact-verification-envelope.md +113 -0
- package/docs/cli.md +22 -0
- package/docs/install.md +1 -3
- package/docs/publication-authority.md +26 -0
- package/docs/publish-transaction.md +1 -1
- package/docs/release-candidate.md +24 -0
- package/docs/release-governance.md +12 -6
- package/docs/release-propagation.md +3 -0
- package/docs/reusable-build-surface.md +13 -0
- package/docs/versioning.md +1 -0
- package/package.json +2 -1
- package/packages/core/README.md +13 -0
- package/packages/core/artifact-passport.js +6 -1
- package/packages/core/artifact-verification-envelope.js +386 -0
- package/packages/core/buildchain-config.js +6 -2
- package/packages/core/controller-evidence.js +2 -3
- package/packages/core/index.js +16 -0
- package/packages/core/publication-authority.js +281 -12
- package/packages/core/release-line-bootstrap.js +24 -0
- package/scripts/assemble-publication-artifact-admission.mjs +10 -0
- package/scripts/assemble-self-publication-admission.mjs +10 -1
- package/scripts/check-inventory.mjs +5 -0
- package/scripts/generate-site-bundle.mjs +4 -0
- package/scripts/release-candidate-resolver.mjs +52 -29
- package/scripts/run-lifecycle-core.mjs +50 -6
|
@@ -161,6 +161,19 @@ contract:
|
|
|
161
161
|
specific package publication. Direct `alpha/*` or `release/*` channel refs are
|
|
162
162
|
not valid publish source locks when `require-publish-source-lock` is enabled,
|
|
163
163
|
and a mismatched `publish-source-sha` fails before any promotion or publish side effects begin.
|
|
164
|
+
|
|
165
|
+
Consumers that opt in to a product-owned final predicate set
|
|
166
|
+
`require-publication-qualification: "true"` and pass the exact sealed
|
|
167
|
+
`publication-capability-json`, complete `publication-gate-aggregate-json`, and
|
|
168
|
+
`publication-qualification-receipt-json`. The action validates their canonical
|
|
169
|
+
digests, predicate identity, freshness, nonce, source, version, channel, target,
|
|
170
|
+
and evidence bindings both before provider access and immediately before the
|
|
171
|
+
publish transaction. Missing or drifted receipts fail before mutation. The
|
|
172
|
+
reusable `release-candidate-promote.yml` workflow creates these values in a
|
|
173
|
+
separate credentialless consumer job; direct callers must preserve the same
|
|
174
|
+
contract and may pass previously consumed nonces through
|
|
175
|
+
`publication-used-qualification-nonces-json`.
|
|
176
|
+
|
|
164
177
|
The reusable promote workflow serializes non-dry-run promotion intents per
|
|
165
178
|
repository and re-reads `target-ref` before checkout, dependency installation,
|
|
166
179
|
release-candidate resolution, or publish-gate writes. If a queued intent asks
|
|
@@ -18,6 +18,11 @@ When `command` is provided, it overrides `buildchain.toml` for that invocation.
|
|
|
18
18
|
When `command` is empty, the action loads `buildchain.toml` and runs the named
|
|
19
19
|
stage.
|
|
20
20
|
|
|
21
|
+
`timeout-minutes` defaults to 120 and bounds either command source. A
|
|
22
|
+
stage-specific `timeout_minutes` in `buildchain.toml` takes precedence. Timeout
|
|
23
|
+
errors identify the lifecycle stage and platform so a hung self-hosted build can
|
|
24
|
+
be diagnosed after the runner is released.
|
|
25
|
+
|
|
21
26
|
The action writes both a full manifest and a compact summary. It also exposes
|
|
22
27
|
the summary as outputs for reusable workflow callers:
|
|
23
28
|
|
package/bin/buildchain.mjs
CHANGED
|
@@ -41,6 +41,10 @@ import {
|
|
|
41
41
|
explainArtifactPassport,
|
|
42
42
|
verifyArtifactPassport,
|
|
43
43
|
} from "../packages/core/artifact-passport.js";
|
|
44
|
+
import {
|
|
45
|
+
projectArtifactVerificationEnvelopeToKfx,
|
|
46
|
+
verifyArtifactVerificationEnvelope,
|
|
47
|
+
} from "../packages/core/artifact-verification-envelope.js";
|
|
44
48
|
import {
|
|
45
49
|
checkBadgeBundleBlock,
|
|
46
50
|
checkReadmeBadgeBlock,
|
|
@@ -163,6 +167,14 @@ function usage() {
|
|
|
163
167
|
[--passport <file-or-url>] [--locator-config <json>]
|
|
164
168
|
[--repository <owner/repo>] [--tag <tag>]
|
|
165
169
|
[--npm-registry <url>] [--json]
|
|
170
|
+
buildchain verify artifact-envelope <file-or-json> [--assessment-time <epoch>]
|
|
171
|
+
[--expected-root <sha256:...>] [--expected-issuer <issuer>]
|
|
172
|
+
[--expected-publisher <publisher>]
|
|
173
|
+
[--expected-contract <version>] [--json]
|
|
174
|
+
buildchain project kfx-admission <file-or-json> [--assessment-time <epoch>]
|
|
175
|
+
[--expected-root <sha256:...>] [--expected-issuer <issuer>]
|
|
176
|
+
[--expected-publisher <publisher>]
|
|
177
|
+
[--expected-contract <version>] [--json]
|
|
166
178
|
buildchain verify infra-contract-evidence-bundle <file> [--json]
|
|
167
179
|
buildchain verify observability-log <jsonl> [--min-events <n>]
|
|
168
180
|
[--require-phase <csv>]
|
|
@@ -257,6 +269,8 @@ Examples:
|
|
|
257
269
|
buildchain verify publication-admission admission.json --registry-json publication-authority-registry.json --runner-json runner.json --control-plane-audit-json control-plane.json --expected-json expected.json --json
|
|
258
270
|
buildchain audit publication-control-plane --repository kungfu-systems/buildchain --branch release/v2/v2.12
|
|
259
271
|
buildchain verify artifact ./dist/buildchain-x86_64-unknown-linux-gnu.tar.gz --passport .buildchain/release-passport/buildchain.release.json
|
|
272
|
+
buildchain verify artifact-envelope .buildchain/kfx/artifact-verification-envelope.json --json
|
|
273
|
+
buildchain project kfx-admission .buildchain/kfx/artifact-verification-envelope.json --json
|
|
260
274
|
buildchain verify infra-contract-evidence-bundle .buildchain/infra-contract-evidence-bundle.json
|
|
261
275
|
buildchain verify observability-log .buildchain/logs/events.jsonl --min-events 4 --require-phase build
|
|
262
276
|
buildchain infra-contract --mode plan --source-sha <sha>
|
|
@@ -302,6 +316,17 @@ function readRepeatedFlag(args, name) {
|
|
|
302
316
|
return values;
|
|
303
317
|
}
|
|
304
318
|
|
|
319
|
+
function artifactEnvelopeOptions(args) {
|
|
320
|
+
const assessmentTime = readFlag(args, "assessment-time", "");
|
|
321
|
+
return {
|
|
322
|
+
...(assessmentTime ? { assessmentTime: Number(assessmentTime) } : {}),
|
|
323
|
+
expectedEnvelopeRoot: readFlag(args, "expected-root", ""),
|
|
324
|
+
expectedIssuer: readFlag(args, "expected-issuer", ""),
|
|
325
|
+
expectedPublisher: readFlag(args, "expected-publisher", ""),
|
|
326
|
+
expectedContractVersion: readFlag(args, "expected-contract", ""),
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
|
|
305
330
|
function readAttributes(args) {
|
|
306
331
|
const attributes = {};
|
|
307
332
|
for (const value of readRepeatedFlag(args, "attribute")) {
|
|
@@ -1696,6 +1721,23 @@ async function main(argv = process.argv.slice(2)) {
|
|
|
1696
1721
|
return;
|
|
1697
1722
|
}
|
|
1698
1723
|
|
|
1724
|
+
if (command === "project") {
|
|
1725
|
+
const [subcommand = "", location = "", ...projectArgs] = args;
|
|
1726
|
+
if (subcommand !== "kfx-admission" || !location) {
|
|
1727
|
+
throw new Error("usage: buildchain project kfx-admission <file-or-json>");
|
|
1728
|
+
}
|
|
1729
|
+
const projection = projectArtifactVerificationEnvelopeToKfx({
|
|
1730
|
+
envelope: readJsonInput(location, { label: "artifact verification envelope" }),
|
|
1731
|
+
...artifactEnvelopeOptions(projectArgs),
|
|
1732
|
+
});
|
|
1733
|
+
if (readBooleanFlag(projectArgs, "json")) {
|
|
1734
|
+
printJson(projection);
|
|
1735
|
+
} else {
|
|
1736
|
+
process.stdout.write(`KFX admission envelope: ${projection.envelopeRoot}\n`);
|
|
1737
|
+
}
|
|
1738
|
+
return;
|
|
1739
|
+
}
|
|
1740
|
+
|
|
1699
1741
|
if (command === "verify") {
|
|
1700
1742
|
const [subcommand = "", location = "", ...verifyArgs] = args;
|
|
1701
1743
|
if (subcommand === "publication-admission") {
|
|
@@ -1755,6 +1797,26 @@ async function main(argv = process.argv.slice(2)) {
|
|
|
1755
1797
|
process.exitCode = report.ok ? 0 : 1;
|
|
1756
1798
|
return;
|
|
1757
1799
|
}
|
|
1800
|
+
if (subcommand === "artifact-envelope") {
|
|
1801
|
+
if (!location) {
|
|
1802
|
+
throw new Error("usage: buildchain verify artifact-envelope <file-or-json>");
|
|
1803
|
+
}
|
|
1804
|
+
const report = verifyArtifactVerificationEnvelope({
|
|
1805
|
+
envelope: readJsonInput(location, { label: "artifact verification envelope" }),
|
|
1806
|
+
...artifactEnvelopeOptions(verifyArgs),
|
|
1807
|
+
});
|
|
1808
|
+
if (readBooleanFlag(verifyArgs, "json")) {
|
|
1809
|
+
printJson(report);
|
|
1810
|
+
} else {
|
|
1811
|
+
process.stdout.write(`artifact verification envelope: ${report.outcome}\n`);
|
|
1812
|
+
process.stdout.write(`root: ${report.envelopeRoot || "unresolved"}\n`);
|
|
1813
|
+
for (const entry of report.issues) {
|
|
1814
|
+
process.stdout.write(`- ${entry.level}: ${entry.code}: ${entry.message}\n`);
|
|
1815
|
+
}
|
|
1816
|
+
}
|
|
1817
|
+
process.exitCode = report.ok ? 0 : 1;
|
|
1818
|
+
return;
|
|
1819
|
+
}
|
|
1758
1820
|
if (subcommand === "observability-log") {
|
|
1759
1821
|
if (!location) {
|
|
1760
1822
|
throw new Error("usage: buildchain verify observability-log <jsonl>");
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "2.
|
|
7
|
+
"version": "2.13.0-alpha.1",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v2",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"retryable GitHub fallback fetches use a bounded attempt budget before exact source SHA and tree verification"
|
|
51
51
|
],
|
|
52
52
|
"breakingDigest": "sha256:a6a35370d6b0d0f46e1b2712dcc01961fe53c2febde95409a27a485c10a36650",
|
|
53
|
-
"auditDigest": "sha256:
|
|
53
|
+
"auditDigest": "sha256:07f01d270d7f5712be067697f652b5843a07748696c0d2b8b2020639108c669d"
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
"contractVersion": 1,
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"alpha and stable channel selections use separate consumer contract locks by default"
|
|
90
90
|
],
|
|
91
91
|
"breakingDigest": "sha256:c4597dfa89e1a58f1023905092b849644f5c080abf150aeba9c7e1cd5ed43962",
|
|
92
|
-
"auditDigest": "sha256:
|
|
92
|
+
"auditDigest": "sha256:6ad0e430ea0f68ee6756cbc5a9b89f2d14738bb842488c25e888eb808a3136e1"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"contractVersion": 1,
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
|
|
160
160
|
],
|
|
161
161
|
"breakingDigest": "sha256:6dbae32ce3d7aab3be6957065105af574794581847b7637314dad45f5349c919",
|
|
162
|
-
"auditDigest": "sha256:
|
|
162
|
+
"auditDigest": "sha256:0a5691beb2469a71e22b0b7ecd3d32af539fa14dd6af6e14bf47d692a1788070"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"contractVersion": 1,
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
"semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata derived from the public release tag"
|
|
270
270
|
],
|
|
271
271
|
"breakingDigest": "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874",
|
|
272
|
-
"auditDigest": "sha256:
|
|
272
|
+
"auditDigest": "sha256:d4fd25131a275abafdbb22b91b82fa8e04ff86850fdbb80a619e6615bb4eb716"
|
|
273
273
|
},
|
|
274
274
|
{
|
|
275
275
|
"contractVersion": 1,
|
|
@@ -437,7 +437,7 @@
|
|
|
437
437
|
"README badge block checks and writes are generated from machine-readable repository facts"
|
|
438
438
|
],
|
|
439
439
|
"breakingDigest": "sha256:90a73892b2d6c214048448d5f45df75639bdf7b7e8fefd9c596e04b087407bcc",
|
|
440
|
-
"auditDigest": "sha256:
|
|
440
|
+
"auditDigest": "sha256:5bbdc589ebfe1677f0f62de0561d2c3d4cba1e35616f2b952b695f9f0e4756b3"
|
|
441
441
|
},
|
|
442
442
|
{
|
|
443
443
|
"contractVersion": 1,
|
|
@@ -527,7 +527,7 @@
|
|
|
527
527
|
"manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
|
|
528
528
|
],
|
|
529
529
|
"breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
|
|
530
|
-
"auditDigest": "sha256:
|
|
530
|
+
"auditDigest": "sha256:33efeb0f62e2aaf9d33f0763d7f3914dae78bbfd469e2a28f32b42158c58a0e8"
|
|
531
531
|
},
|
|
532
532
|
{
|
|
533
533
|
"contractVersion": 1,
|
|
@@ -549,7 +549,7 @@
|
|
|
549
549
|
"agents can discover supported Node APIs without importing internal file paths"
|
|
550
550
|
],
|
|
551
551
|
"breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
|
|
552
|
-
"auditDigest": "sha256:
|
|
552
|
+
"auditDigest": "sha256:8a00371d5676377bbcd9281e957b8c7338be6da0da08e892f2d6c2351e732f8a"
|
|
553
553
|
},
|
|
554
554
|
{
|
|
555
555
|
"contractVersion": 1,
|
|
@@ -600,7 +600,7 @@
|
|
|
600
600
|
"controllerDescriptor": {
|
|
601
601
|
"contract": "buildchain.controller-descriptor/v1",
|
|
602
602
|
"digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48",
|
|
603
|
-
"registryDigest": "sha256:
|
|
603
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
604
604
|
"inputClassifications": {
|
|
605
605
|
"buildchain-ref": {
|
|
606
606
|
"classification": "included",
|
|
@@ -713,6 +713,7 @@
|
|
|
713
713
|
"expected-artifacts-json",
|
|
714
714
|
"gate-profile-aggregate-json",
|
|
715
715
|
"install-command",
|
|
716
|
+
"lifecycle-timeout-minutes",
|
|
716
717
|
"linux-container-image",
|
|
717
718
|
"linux-container-preset",
|
|
718
719
|
"node-version",
|
|
@@ -745,8 +746,8 @@
|
|
|
745
746
|
],
|
|
746
747
|
"controllerDescriptor": {
|
|
747
748
|
"contract": "buildchain.controller-descriptor/v1",
|
|
748
|
-
"digest": "sha256:
|
|
749
|
-
"registryDigest": "sha256:
|
|
749
|
+
"digest": "sha256:367be236280f2597ffefc49680feb106b4cf9e8f5fb9420713351f075a168c4a",
|
|
750
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
750
751
|
"inputClassifications": {
|
|
751
752
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
|
|
752
753
|
"classification": "redacted",
|
|
@@ -876,6 +877,10 @@
|
|
|
876
877
|
"classification": "digest-only",
|
|
877
878
|
"source": "workflow-call-input"
|
|
878
879
|
},
|
|
880
|
+
"lifecycle-timeout-minutes": {
|
|
881
|
+
"classification": "included",
|
|
882
|
+
"source": "workflow-call-input"
|
|
883
|
+
},
|
|
879
884
|
"linux-container-image": {
|
|
880
885
|
"classification": "digest-only",
|
|
881
886
|
"source": "workflow-call-input"
|
|
@@ -1001,7 +1006,7 @@
|
|
|
1001
1006
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
1002
1007
|
],
|
|
1003
1008
|
"breakingDigest": "sha256:e264a79f9f399038c2fcfd21e4168c68c2e1485ee5c651c02242a02b622ac2be",
|
|
1004
|
-
"auditDigest": "sha256:
|
|
1009
|
+
"auditDigest": "sha256:07f01d270d7f5712be067697f652b5843a07748696c0d2b8b2020639108c669d"
|
|
1005
1010
|
},
|
|
1006
1011
|
{
|
|
1007
1012
|
"contractVersion": 1,
|
|
@@ -1074,6 +1079,7 @@
|
|
|
1074
1079
|
"expected-artifacts-json",
|
|
1075
1080
|
"gate-profile-aggregate-json",
|
|
1076
1081
|
"install-command",
|
|
1082
|
+
"lifecycle-timeout-minutes",
|
|
1077
1083
|
"linux-container-image",
|
|
1078
1084
|
"linux-container-preset",
|
|
1079
1085
|
"node-version",
|
|
@@ -1106,8 +1112,8 @@
|
|
|
1106
1112
|
],
|
|
1107
1113
|
"controllerDescriptor": {
|
|
1108
1114
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1109
|
-
"digest": "sha256:
|
|
1110
|
-
"registryDigest": "sha256:
|
|
1115
|
+
"digest": "sha256:2e113607af3cb0a17b4da64b8758652a4bee4a162656ce7256a8e06de3d4cf2f",
|
|
1116
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
1111
1117
|
"inputClassifications": {
|
|
1112
1118
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
|
|
1113
1119
|
"classification": "redacted",
|
|
@@ -1249,6 +1255,10 @@
|
|
|
1249
1255
|
"classification": "digest-only",
|
|
1250
1256
|
"source": "workflow-call-input"
|
|
1251
1257
|
},
|
|
1258
|
+
"lifecycle-timeout-minutes": {
|
|
1259
|
+
"classification": "included",
|
|
1260
|
+
"source": "workflow-call-input"
|
|
1261
|
+
},
|
|
1252
1262
|
"linux-container-image": {
|
|
1253
1263
|
"classification": "digest-only",
|
|
1254
1264
|
"source": "workflow-call-input"
|
|
@@ -1374,7 +1384,7 @@
|
|
|
1374
1384
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
1375
1385
|
],
|
|
1376
1386
|
"breakingDigest": "sha256:d40dd05d7e07473d4b2dc1b62fbb0ed6f06449b4d3a7c44a2e8014313e3c0273",
|
|
1377
|
-
"auditDigest": "sha256:
|
|
1387
|
+
"auditDigest": "sha256:6ad0e430ea0f68ee6756cbc5a9b89f2d14738bb842488c25e888eb808a3136e1"
|
|
1378
1388
|
},
|
|
1379
1389
|
{
|
|
1380
1390
|
"contractVersion": 1,
|
|
@@ -1433,7 +1443,7 @@
|
|
|
1433
1443
|
"controllerDescriptor": {
|
|
1434
1444
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1435
1445
|
"digest": "sha256:29569f4b754595792a16742d1c4c63838b54601674a2cb6c96261a72c962dece",
|
|
1436
|
-
"registryDigest": "sha256:
|
|
1446
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
1437
1447
|
"inputClassifications": {
|
|
1438
1448
|
"artifact-name": {
|
|
1439
1449
|
"classification": "included",
|
|
@@ -1603,7 +1613,7 @@
|
|
|
1603
1613
|
"controllerDescriptor": {
|
|
1604
1614
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1605
1615
|
"digest": "sha256:f08c4970f33c059f8e0b43110f0063172fb1015ac914bdb0c8e9646692fb9f06",
|
|
1606
|
-
"registryDigest": "sha256:
|
|
1616
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
1607
1617
|
"inputClassifications": {
|
|
1608
1618
|
"artifact-path": {
|
|
1609
1619
|
"classification": "digest-only",
|
|
@@ -1835,7 +1845,7 @@
|
|
|
1835
1845
|
"controllerDescriptor": {
|
|
1836
1846
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1837
1847
|
"digest": "sha256:6b132790b9798e8a5dfbe095701d8e024c160a08bc7c4bd477ee79feef7a9cfd",
|
|
1838
|
-
"registryDigest": "sha256:
|
|
1848
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
1839
1849
|
"inputClassifications": {
|
|
1840
1850
|
"artifact-name": {
|
|
1841
1851
|
"classification": "included",
|
|
@@ -2016,7 +2026,7 @@
|
|
|
2016
2026
|
"controllerDescriptor": {
|
|
2017
2027
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2018
2028
|
"digest": "sha256:0613ea545fe2d630f34e665c8e6fe99df3f5333d75051a7176e9cf991e494f59",
|
|
2019
|
-
"registryDigest": "sha256:
|
|
2029
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
2020
2030
|
"inputClassifications": {
|
|
2021
2031
|
"artifact-name": {
|
|
2022
2032
|
"classification": "included",
|
|
@@ -2247,6 +2257,8 @@
|
|
|
2247
2257
|
"publication-admission-json",
|
|
2248
2258
|
"publication-auto-admission",
|
|
2249
2259
|
"publication-auto-no-gate",
|
|
2260
|
+
"publication-consumer-predicate-id",
|
|
2261
|
+
"publication-consumer-qualification-command",
|
|
2250
2262
|
"publication-control-plane-audit-json",
|
|
2251
2263
|
"publication-expected-json",
|
|
2252
2264
|
"publication-gate-aggregate-json",
|
|
@@ -2256,6 +2268,7 @@
|
|
|
2256
2268
|
"publication-runner-provenance-json",
|
|
2257
2269
|
"publication-target",
|
|
2258
2270
|
"publication-used-nonces-json",
|
|
2271
|
+
"publication-used-qualification-nonces-json",
|
|
2259
2272
|
"publish-artifact-kind",
|
|
2260
2273
|
"publish-command",
|
|
2261
2274
|
"publish-dist-tag",
|
|
@@ -2286,8 +2299,8 @@
|
|
|
2286
2299
|
],
|
|
2287
2300
|
"controllerDescriptor": {
|
|
2288
2301
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2289
|
-
"digest": "sha256:
|
|
2290
|
-
"registryDigest": "sha256:
|
|
2302
|
+
"digest": "sha256:2507d132710f66d3ae6ffdb18f5e66172707b8e0f9ad9e888f7422fdacc99133",
|
|
2303
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
2291
2304
|
"inputClassifications": {
|
|
2292
2305
|
"BUILDCHAIN_ISSUE_APP_ID": {
|
|
2293
2306
|
"classification": "redacted",
|
|
@@ -2397,6 +2410,14 @@
|
|
|
2397
2410
|
"classification": "included",
|
|
2398
2411
|
"source": "workflow-call-input"
|
|
2399
2412
|
},
|
|
2413
|
+
"publication-consumer-predicate-id": {
|
|
2414
|
+
"classification": "included",
|
|
2415
|
+
"source": "workflow-call-input"
|
|
2416
|
+
},
|
|
2417
|
+
"publication-consumer-qualification-command": {
|
|
2418
|
+
"classification": "digest-only",
|
|
2419
|
+
"source": "workflow-call-input"
|
|
2420
|
+
},
|
|
2400
2421
|
"publication-control-plane-audit-json": {
|
|
2401
2422
|
"classification": "digest-only",
|
|
2402
2423
|
"source": "workflow-call-input"
|
|
@@ -2433,6 +2454,10 @@
|
|
|
2433
2454
|
"classification": "digest-only",
|
|
2434
2455
|
"source": "workflow-call-input"
|
|
2435
2456
|
},
|
|
2457
|
+
"publication-used-qualification-nonces-json": {
|
|
2458
|
+
"classification": "digest-only",
|
|
2459
|
+
"source": "workflow-call-input"
|
|
2460
|
+
},
|
|
2436
2461
|
"publish-artifact-kind": {
|
|
2437
2462
|
"classification": "included",
|
|
2438
2463
|
"source": "workflow-call-input"
|
|
@@ -2550,7 +2575,7 @@
|
|
|
2550
2575
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
2551
2576
|
],
|
|
2552
2577
|
"breakingDigest": "sha256:46238f8fc3c20924decc57ecad142a462fc4739c6bc21409d5cd2457fc1c3cdd",
|
|
2553
|
-
"auditDigest": "sha256:
|
|
2578
|
+
"auditDigest": "sha256:0a5691beb2469a71e22b0b7ecd3d32af539fa14dd6af6e14bf47d692a1788070"
|
|
2554
2579
|
},
|
|
2555
2580
|
{
|
|
2556
2581
|
"contractVersion": 1,
|
|
@@ -2608,7 +2633,7 @@
|
|
|
2608
2633
|
"controllerDescriptor": {
|
|
2609
2634
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2610
2635
|
"digest": "sha256:9b9f9a2320c4349903d72ee46e329211b5538ed5ebebaa93559df4eafb835997",
|
|
2611
|
-
"registryDigest": "sha256:
|
|
2636
|
+
"registryDigest": "sha256:1a8a2ace3d97dce074ccea44cfbd88d27e466e4bb8f87fb8ce129397256c2b51",
|
|
2612
2637
|
"inputClassifications": {
|
|
2613
2638
|
"buildchain-ref": {
|
|
2614
2639
|
"classification": "included",
|
|
@@ -2675,9 +2700,9 @@
|
|
|
2675
2700
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
2676
2701
|
],
|
|
2677
2702
|
"breakingDigest": "sha256:d7a1f15990ce8bd13149474888232c7d4451dd2a49bebf4d4ce1336695da430e",
|
|
2678
|
-
"auditDigest": "sha256:
|
|
2703
|
+
"auditDigest": "sha256:d94cab26784b13d57920b7cd6acc1db3b5569d0db0a8771f0932884b9b02493d"
|
|
2679
2704
|
}
|
|
2680
2705
|
],
|
|
2681
2706
|
"compatibilityDigest": "sha256:af162b86ab4506e9b5f1d3c59b41f3fd57fbad79ff4d749a7f12ff16460517f8",
|
|
2682
|
-
"contractDigest": "sha256:
|
|
2707
|
+
"contractDigest": "sha256:afa3181c15449d073112738ad5cfc1ad2581d3d2629c24bfcc952ed8df137fa6"
|
|
2683
2708
|
}
|