@kungfu-tech/buildchain 2.12.6 → 2.12.7-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 +7 -3
- package/bin/buildchain.mjs +78 -0
- package/dist/site/agent-index.json +1 -0
- package/dist/site/artifact-schemas.json +1 -0
- package/dist/site/buildchain-contract.json +137 -37
- package/dist/site/buildchain-site.json +68 -12
- package/dist/site/capability-registry.json +6 -5
- package/dist/site/cli-registry.json +36 -0
- package/dist/site/controller-registry.json +104 -13
- package/dist/site/kfd-claims.json +251 -15
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +15 -1
- package/dist/site/node-api-registry.json +43 -4
- package/dist/site/page-registry.json +54 -7
- package/dist/site/public-surface-audit.json +150 -17
- package/dist/site/publication-authority-registry.json +754 -0
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +4 -0
- package/dist/site/site-manifest.json +14 -5
- package/dist/site/workflow-registry.json +108 -10
- package/docs/MAP.md +2 -1
- package/docs/publication-artifacts.md +12 -10
- package/docs/publication-authority.md +204 -0
- package/package.json +5 -1
- package/packages/core/buildchain-kfd-claims.js +5 -0
- package/packages/core/buildchain-publication-authority.js +79 -0
- package/packages/core/controller-evidence.js +7 -7
- package/packages/core/index.js +28 -0
- package/packages/core/publication-authority.js +725 -0
- package/packages/core/publication-control-plane-audit.js +133 -0
- package/scripts/assemble-self-publication-admission.mjs +182 -0
- package/scripts/audit-publication-control-plane.mjs +406 -0
- package/scripts/check-inventory.mjs +20 -2
- package/scripts/generate-site-bundle.mjs +16 -0
|
@@ -341,9 +341,13 @@ set for a controlled repair.
|
|
|
341
341
|
In strict buildchain promotion, ref movement is also gated by the old ABV
|
|
342
342
|
governance semantics:
|
|
343
343
|
|
|
344
|
-
-
|
|
345
|
-
protection for administrators
|
|
346
|
-
|
|
344
|
+
- when detailed target branch protection is readable, it must enforce
|
|
345
|
+
protection for administrators and require approving PR review plus the strict
|
|
346
|
+
`check` job from the `Verify` workflow; when GitHub withholds that
|
|
347
|
+
administration endpoint from the workflow token, the exact transaction must
|
|
348
|
+
instead prove a protected current head, same-repository merged PR,
|
|
349
|
+
independent approval, and the required successful `check` from its configured
|
|
350
|
+
GitHub App;
|
|
347
351
|
- alpha promotion must come from a merged same-repository PR
|
|
348
352
|
`dev/vN/vN.M -> alpha/vN/vN.M`, or from a strict same-line
|
|
349
353
|
`publish-gate/alpha/vN/vN.M/<version> -> alpha/vN/vN.M` source-lock PR;
|
package/bin/buildchain.mjs
CHANGED
|
@@ -32,6 +32,11 @@ import {
|
|
|
32
32
|
explainReleasePassport,
|
|
33
33
|
verifyReleasePassport,
|
|
34
34
|
} from "../packages/core/release-passport.js";
|
|
35
|
+
import {
|
|
36
|
+
createPublicationAdmission,
|
|
37
|
+
createRunnerProvenance,
|
|
38
|
+
verifyPublicationAdmission,
|
|
39
|
+
} from "../packages/core/publication-authority.js";
|
|
35
40
|
import {
|
|
36
41
|
explainArtifactPassport,
|
|
37
42
|
verifyArtifactPassport,
|
|
@@ -138,7 +143,22 @@ function usage() {
|
|
|
138
143
|
[--base-passport-json <json-or-path>] [--require-base-kfd]
|
|
139
144
|
[--release-extra-json <json-or-path>]
|
|
140
145
|
[--publish-json <json-or-path>] [--output-dir <dir>] [--json]
|
|
146
|
+
buildchain create publication-admission --input-json <file-or-json> [--output <file>] [--json]
|
|
147
|
+
buildchain create runner-provenance --input-json <file-or-json> [--output <file>] [--json]
|
|
141
148
|
buildchain verify release-passport <file-or-url> [--json]
|
|
149
|
+
buildchain verify publication-admission <file-or-json>
|
|
150
|
+
--registry-json <file-or-json>
|
|
151
|
+
--runner-json <file-or-json>
|
|
152
|
+
--control-plane-audit-json <file-or-json>
|
|
153
|
+
--publication-evidence-json <file-or-json>
|
|
154
|
+
[--expected-json <file-or-json>] [--used-nonce <nonce>]... [--json]
|
|
155
|
+
buildchain audit publication-control-plane --repository <owner/repo> --branch <protected-branch>
|
|
156
|
+
[--source-sha <merged-branch-sha>] [--workflow-repository <owner/repo>]
|
|
157
|
+
[--workflow <path>] [--workflow-ref <sha-or-ref>]
|
|
158
|
+
[--job <id>] [--environment <name>] [--package <name>]
|
|
159
|
+
[--publisher-mode npm-trusted-publisher|github-token|oidc-role]
|
|
160
|
+
[--npm-trust-json <file-or-json>]
|
|
161
|
+
[--provider-audit-json <file>] [--output <file>] [--allow-nonqualifying]
|
|
142
162
|
buildchain verify artifact <file|dir|url|npm:...|oci:...|github-release:...>
|
|
143
163
|
[--passport <file-or-url>] [--locator-config <json>]
|
|
144
164
|
[--repository <owner/repo>] [--tag <tag>]
|
|
@@ -231,7 +251,11 @@ Examples:
|
|
|
231
251
|
buildchain release line open --major 2 --minor 10 --source-ref release/v2/v2.9 --json
|
|
232
252
|
buildchain span --event native.build -- cmake --build build
|
|
233
253
|
buildchain collect github-release --tag v2.2.0 --assets-dir dist --output-dir .buildchain/release-passport
|
|
254
|
+
buildchain create publication-admission --input-json admission-input.json --output admission.json
|
|
255
|
+
buildchain create runner-provenance --input-json runner-input.json --output runner.json
|
|
234
256
|
buildchain verify release-passport .buildchain/release-passport/buildchain.release.json
|
|
257
|
+
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
|
+
buildchain audit publication-control-plane --repository kungfu-systems/buildchain --branch release/v2/v2.12
|
|
235
259
|
buildchain verify artifact ./dist/buildchain-x86_64-unknown-linux-gnu.tar.gz --passport .buildchain/release-passport/buildchain.release.json
|
|
236
260
|
buildchain verify infra-contract-evidence-bundle .buildchain/infra-contract-evidence-bundle.json
|
|
237
261
|
buildchain verify observability-log .buildchain/logs/events.jsonl --min-events 4 --require-phase build
|
|
@@ -1595,6 +1619,23 @@ async function main(argv = process.argv.slice(2)) {
|
|
|
1595
1619
|
return;
|
|
1596
1620
|
}
|
|
1597
1621
|
|
|
1622
|
+
if (command === "create") {
|
|
1623
|
+
const [subcommand = "", ...createArgs] = args;
|
|
1624
|
+
const inputValue = readFlag(createArgs, "input-json", "");
|
|
1625
|
+
if (!inputValue || !["publication-admission", "runner-provenance"].includes(subcommand)) {
|
|
1626
|
+
throw new Error("usage: buildchain create <publication-admission|runner-provenance> --input-json <file-or-json> [--output <file>]");
|
|
1627
|
+
}
|
|
1628
|
+
const input = readJsonInput(inputValue, { label: "input-json" });
|
|
1629
|
+
const value = subcommand === "publication-admission"
|
|
1630
|
+
? createPublicationAdmission(input)
|
|
1631
|
+
: createRunnerProvenance(input);
|
|
1632
|
+
const output = readFlag(createArgs, "output", "");
|
|
1633
|
+
if (output) writeJsonFile(path.resolve(output), value);
|
|
1634
|
+
if (!output || readBooleanFlag(createArgs, "json")) printJson(value);
|
|
1635
|
+
else process.stdout.write(`${subcommand}: ${output}\n`);
|
|
1636
|
+
return;
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1598
1639
|
if (command === "collect") {
|
|
1599
1640
|
const [subcommand = "", ...collectArgs] = args;
|
|
1600
1641
|
if (subcommand !== "github-release") {
|
|
@@ -1657,6 +1698,34 @@ async function main(argv = process.argv.slice(2)) {
|
|
|
1657
1698
|
|
|
1658
1699
|
if (command === "verify") {
|
|
1659
1700
|
const [subcommand = "", location = "", ...verifyArgs] = args;
|
|
1701
|
+
if (subcommand === "publication-admission") {
|
|
1702
|
+
if (!location) {
|
|
1703
|
+
throw new Error("usage: buildchain verify publication-admission <file-or-json> --registry-json <file-or-json> --runner-json <file-or-json> --control-plane-audit-json <file-or-json> --publication-evidence-json <file-or-json>");
|
|
1704
|
+
}
|
|
1705
|
+
const requiredInput = (name) => {
|
|
1706
|
+
const value = readFlag(verifyArgs, name, "");
|
|
1707
|
+
if (!value) throw new Error(`buildchain verify publication-admission requires --${name} <file-or-json>`);
|
|
1708
|
+
return readJsonInput(value, { label: name });
|
|
1709
|
+
};
|
|
1710
|
+
const expectedInput = readFlag(verifyArgs, "expected-json", "");
|
|
1711
|
+
const capability = verifyPublicationAdmission({
|
|
1712
|
+
admission: readJsonInput(location, { label: "publication admission" }),
|
|
1713
|
+
registry: requiredInput("registry-json"),
|
|
1714
|
+
runnerProvenance: requiredInput("runner-json"),
|
|
1715
|
+
controlPlaneAudit: requiredInput("control-plane-audit-json"),
|
|
1716
|
+
publicationEvidence: requiredInput("publication-evidence-json"),
|
|
1717
|
+
expected: expectedInput ? readJsonInput(expectedInput, { label: "expected-json" }) : {},
|
|
1718
|
+
usedNonces: readRepeatedFlag(verifyArgs, "used-nonce"),
|
|
1719
|
+
});
|
|
1720
|
+
if (readBooleanFlag(verifyArgs, "json")) {
|
|
1721
|
+
printJson(capability);
|
|
1722
|
+
} else {
|
|
1723
|
+
process.stdout.write(`publication admission: ${capability.decision}\n`);
|
|
1724
|
+
process.stdout.write(`capability digest: ${capability.capabilityDigest}\n`);
|
|
1725
|
+
process.stdout.write(`expires at: ${capability.expiresAt}\n`);
|
|
1726
|
+
}
|
|
1727
|
+
return;
|
|
1728
|
+
}
|
|
1660
1729
|
if (subcommand === "artifact") {
|
|
1661
1730
|
if (!location) {
|
|
1662
1731
|
throw new Error("usage: buildchain verify artifact <subject>");
|
|
@@ -1745,6 +1814,15 @@ async function main(argv = process.argv.slice(2)) {
|
|
|
1745
1814
|
return;
|
|
1746
1815
|
}
|
|
1747
1816
|
|
|
1817
|
+
if (command === "audit") {
|
|
1818
|
+
const [subcommand = "", ...auditArgs] = args;
|
|
1819
|
+
if (subcommand !== "publication-control-plane") {
|
|
1820
|
+
throw new Error("usage: buildchain audit publication-control-plane --repository <owner/repo> --branch <protected-branch>");
|
|
1821
|
+
}
|
|
1822
|
+
runScript("audit-publication-control-plane.mjs", auditArgs);
|
|
1823
|
+
return;
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1748
1826
|
if (command === "explain") {
|
|
1749
1827
|
const [subcommand = "", ...explainArgs] = args;
|
|
1750
1828
|
if (subcommand === "artifact") {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "2.12.
|
|
7
|
+
"version": "2.12.7-alpha.1",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v2",
|
|
@@ -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:d9f9367790d4a4608d3b1a1bdc21237dfdb8831a59253bedc0923e565aad852d"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"contractVersion": 1,
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
"channel-aware artifact host facts are checked against the deploy plan before adapter side effects"
|
|
204
204
|
],
|
|
205
205
|
"breakingDigest": "sha256:da569f90374e878948e3d5160ed9929338ce0572473ca8ee54867b0fe1aaeace",
|
|
206
|
-
"auditDigest": "sha256:
|
|
206
|
+
"auditDigest": "sha256:a849c35accf5a7e756a3782cc3540f13376f3d52ae30efcb4329a65ddb875ab5"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"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:6b388928ae928d679c36bfac7b45987ee7b6761b8ac141b72e4f60155a7110ec"
|
|
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:7ead4cbc1ead68dad820a31dcaa5d664a54c09a8943cf240e597b5c5bf538c0c"
|
|
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:cd51cdc232d3c96ebfc9176ff99dc6ddaae1c93822d7f50be055973355b20dc4"
|
|
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:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
604
604
|
"inputClassifications": {
|
|
605
605
|
"buildchain-ref": {
|
|
606
606
|
"classification": "included",
|
|
@@ -746,7 +746,7 @@
|
|
|
746
746
|
"controllerDescriptor": {
|
|
747
747
|
"contract": "buildchain.controller-descriptor/v1",
|
|
748
748
|
"digest": "sha256:ce2ada5daf86cbe6e58327c190fdfe07510952cc8820cf445eb4342daae4da18",
|
|
749
|
-
"registryDigest": "sha256:
|
|
749
|
+
"registryDigest": "sha256:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
750
750
|
"inputClassifications": {
|
|
751
751
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
|
|
752
752
|
"classification": "redacted",
|
|
@@ -1107,7 +1107,7 @@
|
|
|
1107
1107
|
"controllerDescriptor": {
|
|
1108
1108
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1109
1109
|
"digest": "sha256:0ed17d03e410ca1b7726422716522a5e9096eee7badb197401291d53198518ea",
|
|
1110
|
-
"registryDigest": "sha256:
|
|
1110
|
+
"registryDigest": "sha256:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
1111
1111
|
"inputClassifications": {
|
|
1112
1112
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
|
|
1113
1113
|
"classification": "redacted",
|
|
@@ -1433,7 +1433,7 @@
|
|
|
1433
1433
|
"controllerDescriptor": {
|
|
1434
1434
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1435
1435
|
"digest": "sha256:29569f4b754595792a16742d1c4c63838b54601674a2cb6c96261a72c962dece",
|
|
1436
|
-
"registryDigest": "sha256:
|
|
1436
|
+
"registryDigest": "sha256:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
1437
1437
|
"inputClassifications": {
|
|
1438
1438
|
"artifact-name": {
|
|
1439
1439
|
"classification": "included",
|
|
@@ -1550,7 +1550,8 @@
|
|
|
1550
1550
|
"web-build",
|
|
1551
1551
|
"web-verify",
|
|
1552
1552
|
"deployment-plan",
|
|
1553
|
-
"deployment-apply"
|
|
1553
|
+
"deployment-apply",
|
|
1554
|
+
"publication-authority"
|
|
1554
1555
|
],
|
|
1555
1556
|
"evidenceRequirements": [
|
|
1556
1557
|
"web-surface-plan",
|
|
@@ -1587,6 +1588,11 @@
|
|
|
1587
1588
|
"production-release-on-main",
|
|
1588
1589
|
"production-release-pr-mode",
|
|
1589
1590
|
"production-release-pr-token",
|
|
1591
|
+
"publication-admission-json",
|
|
1592
|
+
"publication-control-plane-audit-json",
|
|
1593
|
+
"publication-expected-json",
|
|
1594
|
+
"publication-runner-provenance-json",
|
|
1595
|
+
"publication-used-nonces-json",
|
|
1590
1596
|
"release-feedback-actor-privacy",
|
|
1591
1597
|
"staging-apply",
|
|
1592
1598
|
"staging-aws-role-arn",
|
|
@@ -1596,8 +1602,8 @@
|
|
|
1596
1602
|
],
|
|
1597
1603
|
"controllerDescriptor": {
|
|
1598
1604
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1599
|
-
"digest": "sha256:
|
|
1600
|
-
"registryDigest": "sha256:
|
|
1605
|
+
"digest": "sha256:f08c4970f33c059f8e0b43110f0063172fb1015ac914bdb0c8e9646692fb9f06",
|
|
1606
|
+
"registryDigest": "sha256:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
1601
1607
|
"inputClassifications": {
|
|
1602
1608
|
"artifact-path": {
|
|
1603
1609
|
"classification": "digest-only",
|
|
@@ -1711,6 +1717,26 @@
|
|
|
1711
1717
|
"classification": "redacted",
|
|
1712
1718
|
"source": "workflow-call-input"
|
|
1713
1719
|
},
|
|
1720
|
+
"publication-admission-json": {
|
|
1721
|
+
"classification": "digest-only",
|
|
1722
|
+
"source": "workflow-call-input"
|
|
1723
|
+
},
|
|
1724
|
+
"publication-control-plane-audit-json": {
|
|
1725
|
+
"classification": "digest-only",
|
|
1726
|
+
"source": "workflow-call-input"
|
|
1727
|
+
},
|
|
1728
|
+
"publication-expected-json": {
|
|
1729
|
+
"classification": "digest-only",
|
|
1730
|
+
"source": "workflow-call-input"
|
|
1731
|
+
},
|
|
1732
|
+
"publication-runner-provenance-json": {
|
|
1733
|
+
"classification": "digest-only",
|
|
1734
|
+
"source": "workflow-call-input"
|
|
1735
|
+
},
|
|
1736
|
+
"publication-used-nonces-json": {
|
|
1737
|
+
"classification": "digest-only",
|
|
1738
|
+
"source": "workflow-call-input"
|
|
1739
|
+
},
|
|
1714
1740
|
"release-feedback-actor-privacy": {
|
|
1715
1741
|
"classification": "included",
|
|
1716
1742
|
"source": "workflow-call-input"
|
|
@@ -1743,8 +1769,8 @@
|
|
|
1743
1769
|
"redacted input values are never serialized and digest-only input values are never emitted in plaintext",
|
|
1744
1770
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
1745
1771
|
],
|
|
1746
|
-
"breakingDigest": "sha256:
|
|
1747
|
-
"auditDigest": "sha256:
|
|
1772
|
+
"breakingDigest": "sha256:f14825324a16b51c2e9ed708ebe64e1932e05b6d5e0866f83aea8439decb4a27",
|
|
1773
|
+
"auditDigest": "sha256:a849c35accf5a7e756a3782cc3540f13376f3d52ae30efcb4329a65ddb875ab5"
|
|
1748
1774
|
},
|
|
1749
1775
|
{
|
|
1750
1776
|
"contractVersion": 1,
|
|
@@ -1805,7 +1831,7 @@
|
|
|
1805
1831
|
"controllerDescriptor": {
|
|
1806
1832
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1807
1833
|
"digest": "sha256:d09d8f4081e7b5b9296487337206111591eeca6f8d7667e90012ac911c1b71cf",
|
|
1808
|
-
"registryDigest": "sha256:
|
|
1834
|
+
"registryDigest": "sha256:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
1809
1835
|
"inputClassifications": {
|
|
1810
1836
|
"artifact-name": {
|
|
1811
1837
|
"classification": "included",
|
|
@@ -1909,6 +1935,7 @@
|
|
|
1909
1935
|
"resolve-runtime",
|
|
1910
1936
|
"build",
|
|
1911
1937
|
"collect",
|
|
1938
|
+
"publication-authority",
|
|
1912
1939
|
"publish",
|
|
1913
1940
|
"passport",
|
|
1914
1941
|
"aggregate"
|
|
@@ -1916,6 +1943,7 @@
|
|
|
1916
1943
|
"capabilities": [
|
|
1917
1944
|
"publication-build",
|
|
1918
1945
|
"artifact-admission",
|
|
1946
|
+
"publication-authority",
|
|
1919
1947
|
"release-publish",
|
|
1920
1948
|
"release-passport"
|
|
1921
1949
|
],
|
|
@@ -1927,7 +1955,6 @@
|
|
|
1927
1955
|
"inputClassificationPolicy": "buildchain-controller-input-policy/v1"
|
|
1928
1956
|
},
|
|
1929
1957
|
"optionalInputs": [
|
|
1930
|
-
"BUILDCHAIN_PROMOTION_TOKEN",
|
|
1931
1958
|
"artifact-name",
|
|
1932
1959
|
"artifact-retention-days",
|
|
1933
1960
|
"branch-protection-bypass-apps",
|
|
@@ -1945,6 +1972,11 @@
|
|
|
1945
1972
|
"github-release-title",
|
|
1946
1973
|
"node-version",
|
|
1947
1974
|
"package-name",
|
|
1975
|
+
"publication-admission-json",
|
|
1976
|
+
"publication-control-plane-audit-json",
|
|
1977
|
+
"publication-expected-json",
|
|
1978
|
+
"publication-runner-provenance-json",
|
|
1979
|
+
"publication-used-nonces-json",
|
|
1948
1980
|
"publish-dist-tag",
|
|
1949
1981
|
"publish-package-set-order",
|
|
1950
1982
|
"release-passport-impact-json",
|
|
@@ -1963,13 +1995,9 @@
|
|
|
1963
1995
|
],
|
|
1964
1996
|
"controllerDescriptor": {
|
|
1965
1997
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1966
|
-
"digest": "sha256:
|
|
1967
|
-
"registryDigest": "sha256:
|
|
1998
|
+
"digest": "sha256:0613ea545fe2d630f34e665c8e6fe99df3f5333d75051a7176e9cf991e494f59",
|
|
1999
|
+
"registryDigest": "sha256:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
1968
2000
|
"inputClassifications": {
|
|
1969
|
-
"BUILDCHAIN_PROMOTION_TOKEN": {
|
|
1970
|
-
"classification": "redacted",
|
|
1971
|
-
"source": "workflow-call-secret"
|
|
1972
|
-
},
|
|
1973
2001
|
"artifact-name": {
|
|
1974
2002
|
"classification": "included",
|
|
1975
2003
|
"source": "workflow-call-input"
|
|
@@ -2038,6 +2066,26 @@
|
|
|
2038
2066
|
"classification": "included",
|
|
2039
2067
|
"source": "workflow-call-input"
|
|
2040
2068
|
},
|
|
2069
|
+
"publication-admission-json": {
|
|
2070
|
+
"classification": "digest-only",
|
|
2071
|
+
"source": "workflow-call-input"
|
|
2072
|
+
},
|
|
2073
|
+
"publication-control-plane-audit-json": {
|
|
2074
|
+
"classification": "digest-only",
|
|
2075
|
+
"source": "workflow-call-input"
|
|
2076
|
+
},
|
|
2077
|
+
"publication-expected-json": {
|
|
2078
|
+
"classification": "digest-only",
|
|
2079
|
+
"source": "workflow-call-input"
|
|
2080
|
+
},
|
|
2081
|
+
"publication-runner-provenance-json": {
|
|
2082
|
+
"classification": "digest-only",
|
|
2083
|
+
"source": "workflow-call-input"
|
|
2084
|
+
},
|
|
2085
|
+
"publication-used-nonces-json": {
|
|
2086
|
+
"classification": "digest-only",
|
|
2087
|
+
"source": "workflow-call-input"
|
|
2088
|
+
},
|
|
2041
2089
|
"publish-dist-tag": {
|
|
2042
2090
|
"classification": "included",
|
|
2043
2091
|
"source": "workflow-call-input"
|
|
@@ -2106,8 +2154,8 @@
|
|
|
2106
2154
|
"redacted input values are never serialized and digest-only input values are never emitted in plaintext",
|
|
2107
2155
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
2108
2156
|
],
|
|
2109
|
-
"breakingDigest": "sha256:
|
|
2110
|
-
"auditDigest": "sha256:
|
|
2157
|
+
"breakingDigest": "sha256:0eb318df455ef9cb737a7c2515a2411b685d34ed0bde7b5f5b173a7a42513114",
|
|
2158
|
+
"auditDigest": "sha256:4dfb8623c947f6b8ab339a11e31de132401997c6bb5ea0cfe70e45e3b4aa9429"
|
|
2111
2159
|
},
|
|
2112
2160
|
{
|
|
2113
2161
|
"contractVersion": 1,
|
|
@@ -2131,6 +2179,7 @@
|
|
|
2131
2179
|
"requiredStages": [
|
|
2132
2180
|
"preflight",
|
|
2133
2181
|
"admit-release-candidate",
|
|
2182
|
+
"publication-authority",
|
|
2134
2183
|
"publish",
|
|
2135
2184
|
"passport",
|
|
2136
2185
|
"aggregate"
|
|
@@ -2138,6 +2187,7 @@
|
|
|
2138
2187
|
"capabilities": [
|
|
2139
2188
|
"promotion-preflight",
|
|
2140
2189
|
"artifact-admission",
|
|
2190
|
+
"publication-authority",
|
|
2141
2191
|
"publish-transaction",
|
|
2142
2192
|
"release-passport"
|
|
2143
2193
|
],
|
|
@@ -2153,7 +2203,6 @@
|
|
|
2153
2203
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
2154
2204
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
2155
2205
|
"BUILDCHAIN_ISSUE_TOKEN",
|
|
2156
|
-
"BUILDCHAIN_PROMOTION_TOKEN",
|
|
2157
2206
|
"allow-repository",
|
|
2158
2207
|
"artifact-name",
|
|
2159
2208
|
"artifact-patterns",
|
|
@@ -2174,6 +2223,17 @@
|
|
|
2174
2223
|
"github-release-notes",
|
|
2175
2224
|
"github-release-title",
|
|
2176
2225
|
"package-manager",
|
|
2226
|
+
"publication-admission-json",
|
|
2227
|
+
"publication-auto-admission",
|
|
2228
|
+
"publication-control-plane-audit-json",
|
|
2229
|
+
"publication-expected-json",
|
|
2230
|
+
"publication-gate-aggregate-json",
|
|
2231
|
+
"publication-package-name",
|
|
2232
|
+
"publication-product",
|
|
2233
|
+
"publication-publisher-workflow-path",
|
|
2234
|
+
"publication-runner-provenance-json",
|
|
2235
|
+
"publication-target",
|
|
2236
|
+
"publication-used-nonces-json",
|
|
2177
2237
|
"publish-artifact-kind",
|
|
2178
2238
|
"publish-command",
|
|
2179
2239
|
"publish-dist-tag",
|
|
@@ -2204,8 +2264,8 @@
|
|
|
2204
2264
|
],
|
|
2205
2265
|
"controllerDescriptor": {
|
|
2206
2266
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2207
|
-
"digest": "sha256:
|
|
2208
|
-
"registryDigest": "sha256:
|
|
2267
|
+
"digest": "sha256:380a550c76a7a0c884d0519b5e6e605ad3e04e86f637ba846c20b546faec4a0f",
|
|
2268
|
+
"registryDigest": "sha256:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
2209
2269
|
"inputClassifications": {
|
|
2210
2270
|
"BUILDCHAIN_ISSUE_APP_ID": {
|
|
2211
2271
|
"classification": "redacted",
|
|
@@ -2219,10 +2279,6 @@
|
|
|
2219
2279
|
"classification": "redacted",
|
|
2220
2280
|
"source": "workflow-call-secret"
|
|
2221
2281
|
},
|
|
2222
|
-
"BUILDCHAIN_PROMOTION_TOKEN": {
|
|
2223
|
-
"classification": "redacted",
|
|
2224
|
-
"source": "workflow-call-secret"
|
|
2225
|
-
},
|
|
2226
2282
|
"allow-repository": {
|
|
2227
2283
|
"classification": "included",
|
|
2228
2284
|
"source": "workflow-call-input"
|
|
@@ -2303,6 +2359,50 @@
|
|
|
2303
2359
|
"classification": "included",
|
|
2304
2360
|
"source": "workflow-call-input"
|
|
2305
2361
|
},
|
|
2362
|
+
"publication-admission-json": {
|
|
2363
|
+
"classification": "digest-only",
|
|
2364
|
+
"source": "workflow-call-input"
|
|
2365
|
+
},
|
|
2366
|
+
"publication-auto-admission": {
|
|
2367
|
+
"classification": "included",
|
|
2368
|
+
"source": "workflow-call-input"
|
|
2369
|
+
},
|
|
2370
|
+
"publication-control-plane-audit-json": {
|
|
2371
|
+
"classification": "digest-only",
|
|
2372
|
+
"source": "workflow-call-input"
|
|
2373
|
+
},
|
|
2374
|
+
"publication-expected-json": {
|
|
2375
|
+
"classification": "digest-only",
|
|
2376
|
+
"source": "workflow-call-input"
|
|
2377
|
+
},
|
|
2378
|
+
"publication-gate-aggregate-json": {
|
|
2379
|
+
"classification": "digest-only",
|
|
2380
|
+
"source": "workflow-call-input"
|
|
2381
|
+
},
|
|
2382
|
+
"publication-package-name": {
|
|
2383
|
+
"classification": "included",
|
|
2384
|
+
"source": "workflow-call-input"
|
|
2385
|
+
},
|
|
2386
|
+
"publication-product": {
|
|
2387
|
+
"classification": "included",
|
|
2388
|
+
"source": "workflow-call-input"
|
|
2389
|
+
},
|
|
2390
|
+
"publication-publisher-workflow-path": {
|
|
2391
|
+
"classification": "digest-only",
|
|
2392
|
+
"source": "workflow-call-input"
|
|
2393
|
+
},
|
|
2394
|
+
"publication-runner-provenance-json": {
|
|
2395
|
+
"classification": "digest-only",
|
|
2396
|
+
"source": "workflow-call-input"
|
|
2397
|
+
},
|
|
2398
|
+
"publication-target": {
|
|
2399
|
+
"classification": "included",
|
|
2400
|
+
"source": "workflow-call-input"
|
|
2401
|
+
},
|
|
2402
|
+
"publication-used-nonces-json": {
|
|
2403
|
+
"classification": "digest-only",
|
|
2404
|
+
"source": "workflow-call-input"
|
|
2405
|
+
},
|
|
2306
2406
|
"publish-artifact-kind": {
|
|
2307
2407
|
"classification": "included",
|
|
2308
2408
|
"source": "workflow-call-input"
|
|
@@ -2419,8 +2519,8 @@
|
|
|
2419
2519
|
"redacted input values are never serialized and digest-only input values are never emitted in plaintext",
|
|
2420
2520
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
2421
2521
|
],
|
|
2422
|
-
"breakingDigest": "sha256:
|
|
2423
|
-
"auditDigest": "sha256:
|
|
2522
|
+
"breakingDigest": "sha256:46238f8fc3c20924decc57ecad142a462fc4739c6bc21409d5cd2457fc1c3cdd",
|
|
2523
|
+
"auditDigest": "sha256:d9f9367790d4a4608d3b1a1bdc21237dfdb8831a59253bedc0923e565aad852d"
|
|
2424
2524
|
},
|
|
2425
2525
|
{
|
|
2426
2526
|
"contractVersion": 1,
|
|
@@ -2478,7 +2578,7 @@
|
|
|
2478
2578
|
"controllerDescriptor": {
|
|
2479
2579
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2480
2580
|
"digest": "sha256:9b9f9a2320c4349903d72ee46e329211b5538ed5ebebaa93559df4eafb835997",
|
|
2481
|
-
"registryDigest": "sha256:
|
|
2581
|
+
"registryDigest": "sha256:f4ea94c3590360ef21ade53056129f0183356de3d1997e43c49a0494d0acd34a",
|
|
2482
2582
|
"inputClassifications": {
|
|
2483
2583
|
"buildchain-ref": {
|
|
2484
2584
|
"classification": "included",
|
|
@@ -2548,6 +2648,6 @@
|
|
|
2548
2648
|
"auditDigest": "sha256:e7d0cc13b9d6f19e7cd77b650693f0d615b919796d075041d74876e6ca58716f"
|
|
2549
2649
|
}
|
|
2550
2650
|
],
|
|
2551
|
-
"compatibilityDigest": "sha256:
|
|
2552
|
-
"contractDigest": "sha256:
|
|
2651
|
+
"compatibilityDigest": "sha256:af162b86ab4506e9b5f1d3c59b41f3fd57fbad79ff4d749a7f12ff16460517f8",
|
|
2652
|
+
"contractDigest": "sha256:6b01efab04525f9c5ab82d1c835a6aabc3d7d806c9f4c89c70502c88f74a159a"
|
|
2553
2653
|
}
|