@kungfu-tech/buildchain 2.12.6 → 2.12.7-alpha.10
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 +11 -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 +163 -38
- package/dist/site/buildchain-site.json +73 -17
- package/dist/site/capability-registry.json +6 -5
- package/dist/site/cli-registry.json +36 -0
- package/dist/site/controller-registry.json +121 -10
- package/dist/site/kfd-claims.json +305 -17
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +16 -2
- package/dist/site/node-api-registry.json +43 -4
- package/dist/site/page-registry.json +58 -11
- package/dist/site/public-surface-audit.json +212 -19
- package/dist/site/publication-authority-registry.json +778 -0
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +4 -0
- package/dist/site/site-manifest.json +15 -6
- package/dist/site/workflow-registry.json +173 -12
- package/docs/MAP.md +2 -1
- package/docs/publication-artifacts.md +25 -18
- package/docs/publication-authority.md +213 -0
- package/docs/release-governance.md +3 -1
- package/docs/shifu-gate-profiles.md +6 -0
- package/package.json +5 -1
- package/packages/core/buildchain-kfd-claims.js +5 -0
- package/packages/core/buildchain-publication-authority.js +80 -0
- package/packages/core/controller-evidence.js +8 -8
- package/packages/core/index.js +35 -0
- package/packages/core/publication-artifact-candidate.js +128 -0
- package/packages/core/publication-authority.js +764 -0
- package/packages/core/publication-control-plane-audit.js +135 -0
- package/scripts/assemble-publication-artifact-admission.mjs +190 -0
- package/scripts/assemble-self-publication-admission.mjs +183 -0
- package/scripts/audit-publication-control-plane.mjs +409 -0
- package/scripts/check-inventory.mjs +25 -2
- package/scripts/generate-site-bundle.mjs +16 -0
- package/scripts/publication-artifact-candidate.mjs +130 -0
- package/scripts/workflow-friction-report.mjs +13 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-publication-release-registry",
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"publishedAt": "2026-07-
|
|
4
|
+
"generatedAt": "2026-07-15T02:23:03.502Z",
|
|
5
|
+
"publishedAt": "2026-07-15T02:23:03.502Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "5f17ef81ba524233331ffcd0c15b1fb800b3fa82",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"package": {
|
|
34
34
|
"name": "@kungfu-tech/buildchain",
|
|
35
|
-
"version": "2.12.
|
|
35
|
+
"version": "2.12.7-alpha.10",
|
|
36
36
|
"versionSource": "package.json#version"
|
|
37
37
|
},
|
|
38
38
|
"sourceKind": "package-site-bundle",
|
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
"./logging": "./packages/core/logging.js",
|
|
27
27
|
"./publication-artifact": "./packages/core/publication-artifact.js",
|
|
28
28
|
"./publication-package": "./packages/core/publication-package.js",
|
|
29
|
+
"./publication-authority": "./packages/core/publication-authority.js",
|
|
30
|
+
"./publication-control-plane-audit": "./packages/core/publication-control-plane-audit.js",
|
|
31
|
+
"./buildchain-publication-authority": "./packages/core/buildchain-publication-authority.js",
|
|
29
32
|
"./kfd-gate": "./packages/core/kfd-gate.js",
|
|
30
33
|
"./release-candidate": "./packages/core/release-candidate.js",
|
|
31
34
|
"./stable-candidate-ledger": "./packages/core/stable-candidate-ledger.js",
|
|
@@ -44,6 +47,7 @@
|
|
|
44
47
|
"./site/kfd-claims.json": "./dist/site/kfd-claims.json",
|
|
45
48
|
"./site/workflow-registry.json": "./dist/site/workflow-registry.json",
|
|
46
49
|
"./site/controller-registry.json": "./dist/site/controller-registry.json",
|
|
50
|
+
"./site/publication-authority-registry.json": "./dist/site/publication-authority-registry.json",
|
|
47
51
|
"./site/public-surface-audit.json": "./dist/site/public-surface-audit.json",
|
|
48
52
|
"./site/kfd-upstream-aggregate.json": "./dist/site/kfd-upstream-aggregate.json",
|
|
49
53
|
"./site/release-model.json": "./dist/site/release-model.json",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-manifest",
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"publishedAt": "2026-07-
|
|
4
|
+
"generatedAt": "2026-07-15T02:23:03.502Z",
|
|
5
|
+
"publishedAt": "2026-07-15T02:23:03.502Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "5f17ef81ba524233331ffcd0c15b1fb800b3fa82",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"package": {
|
|
39
39
|
"name": "@kungfu-tech/buildchain",
|
|
40
|
-
"version": "2.12.
|
|
40
|
+
"version": "2.12.7-alpha.10",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"entrypoint": "buildchain-site.json",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"path": "docs/MAP.md",
|
|
54
54
|
"plane": "use",
|
|
55
55
|
"exists": true,
|
|
56
|
-
"digest": "sha256:
|
|
56
|
+
"digest": "sha256:91dc800bafc31bc149680c86272827936c94e0f025d547bbabc10d58fe5f128e"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"id": "install",
|
|
@@ -79,6 +79,14 @@
|
|
|
79
79
|
"exists": true,
|
|
80
80
|
"digest": "sha256:442e1b72e3977af56a8ae5e081ffd89c2f3ebcd9cfd50f07af730344bdf9fb0e"
|
|
81
81
|
},
|
|
82
|
+
{
|
|
83
|
+
"id": "publication-authority",
|
|
84
|
+
"title": "Sealed publication authority",
|
|
85
|
+
"path": "docs/publication-authority.md",
|
|
86
|
+
"plane": "verify",
|
|
87
|
+
"exists": true,
|
|
88
|
+
"digest": "sha256:06ba05f9d8a2685a0896334b6013a97c45b7d71163cf6898e5a6274baf7f0296"
|
|
89
|
+
},
|
|
82
90
|
{
|
|
83
91
|
"id": "release-candidate",
|
|
84
92
|
"title": "Release Candidate Passport",
|
|
@@ -229,7 +237,7 @@
|
|
|
229
237
|
"path": "docs/release-governance.md",
|
|
230
238
|
"plane": "why",
|
|
231
239
|
"exists": true,
|
|
232
|
-
"digest": "sha256:
|
|
240
|
+
"digest": "sha256:cce9f80add3c746fe28d8ebf5afb809348694741cb75d19154ed3057a9374c0d"
|
|
233
241
|
},
|
|
234
242
|
{
|
|
235
243
|
"id": "release-flow",
|
|
@@ -272,6 +280,7 @@
|
|
|
272
280
|
"node-api-registry.json",
|
|
273
281
|
"workflow-registry.json",
|
|
274
282
|
"controller-registry.json",
|
|
283
|
+
"publication-authority-registry.json",
|
|
275
284
|
"public-surface-audit.json",
|
|
276
285
|
"release-model.json",
|
|
277
286
|
"artifact-schemas.json",
|
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
"contract": "kungfu-buildchain-workflow-registry",
|
|
4
4
|
"workflowSource": ".github/workflows reverse input enumeration",
|
|
5
5
|
"workflows": [
|
|
6
|
+
{
|
|
7
|
+
"id": ".binary-release-assets",
|
|
8
|
+
"path": ".github/workflows/.binary-release-assets.yml",
|
|
9
|
+
"reusable": true,
|
|
10
|
+
"inputs": [
|
|
11
|
+
"buildchain-ref",
|
|
12
|
+
"buildchain-repository",
|
|
13
|
+
"evidence-run-id",
|
|
14
|
+
"publication-admission-json",
|
|
15
|
+
"publication-control-plane-audit-json",
|
|
16
|
+
"publication-expected-json",
|
|
17
|
+
"publication-runner-provenance-json",
|
|
18
|
+
"publication-used-nonces-json",
|
|
19
|
+
"release-tag"
|
|
20
|
+
],
|
|
21
|
+
"inputCount": 9,
|
|
22
|
+
"secrets": [],
|
|
23
|
+
"secretCount": 0,
|
|
24
|
+
"outputs": [],
|
|
25
|
+
"outputCount": 0,
|
|
26
|
+
"surface": "reusable-workflow",
|
|
27
|
+
"capabilityGroup": "api-cli-reference",
|
|
28
|
+
"status": "active"
|
|
29
|
+
},
|
|
6
30
|
{
|
|
7
31
|
"id": ".build",
|
|
8
32
|
"path": ".github/workflows/.build.yml",
|
|
@@ -185,6 +209,53 @@
|
|
|
185
209
|
"capabilityGroup": "api-cli-reference",
|
|
186
210
|
"status": "active"
|
|
187
211
|
},
|
|
212
|
+
{
|
|
213
|
+
"id": ".publication-authority",
|
|
214
|
+
"path": ".github/workflows/.publication-authority.yml",
|
|
215
|
+
"reusable": true,
|
|
216
|
+
"inputs": [
|
|
217
|
+
"admission-json",
|
|
218
|
+
"authority-workflow-path",
|
|
219
|
+
"auto-admission",
|
|
220
|
+
"auto-admission-kind",
|
|
221
|
+
"buildchain-ref",
|
|
222
|
+
"buildchain-repository",
|
|
223
|
+
"control-plane-audit-json",
|
|
224
|
+
"dry-run",
|
|
225
|
+
"evidence-controller-artifact",
|
|
226
|
+
"evidence-manifest-pattern",
|
|
227
|
+
"evidence-passport-artifact",
|
|
228
|
+
"evidence-payload-pattern",
|
|
229
|
+
"evidence-publication-artifact",
|
|
230
|
+
"evidence-repository",
|
|
231
|
+
"evidence-run-id",
|
|
232
|
+
"evidence-summary-artifact",
|
|
233
|
+
"expected-json",
|
|
234
|
+
"gate-aggregate-json",
|
|
235
|
+
"package-name",
|
|
236
|
+
"product",
|
|
237
|
+
"publication-target",
|
|
238
|
+
"publication-version",
|
|
239
|
+
"publisher-workflow-path",
|
|
240
|
+
"required-status-check",
|
|
241
|
+
"runner-provenance-json",
|
|
242
|
+
"source-sha",
|
|
243
|
+
"target-ref",
|
|
244
|
+
"used-nonces-json"
|
|
245
|
+
],
|
|
246
|
+
"inputCount": 28,
|
|
247
|
+
"secrets": [],
|
|
248
|
+
"secretCount": 0,
|
|
249
|
+
"outputs": [
|
|
250
|
+
"capability-artifact",
|
|
251
|
+
"capability-digest",
|
|
252
|
+
"capability-json"
|
|
253
|
+
],
|
|
254
|
+
"outputCount": 3,
|
|
255
|
+
"surface": "reusable-workflow",
|
|
256
|
+
"capabilityGroup": "api-cli-reference",
|
|
257
|
+
"status": "active"
|
|
258
|
+
},
|
|
188
259
|
{
|
|
189
260
|
"id": ".release-docker",
|
|
190
261
|
"path": ".github/workflows/.release-docker.yml",
|
|
@@ -474,6 +545,11 @@
|
|
|
474
545
|
"production-release-on-main",
|
|
475
546
|
"production-release-pr-mode",
|
|
476
547
|
"production-release-pr-token",
|
|
548
|
+
"publication-admission-json",
|
|
549
|
+
"publication-control-plane-audit-json",
|
|
550
|
+
"publication-expected-json",
|
|
551
|
+
"publication-runner-provenance-json",
|
|
552
|
+
"publication-used-nonces-json",
|
|
477
553
|
"release-feedback-actor-privacy",
|
|
478
554
|
"staging-apply",
|
|
479
555
|
"staging-aws-role-arn",
|
|
@@ -481,7 +557,7 @@
|
|
|
481
557
|
"verify-command",
|
|
482
558
|
"working-directory"
|
|
483
559
|
],
|
|
484
|
-
"inputCount":
|
|
560
|
+
"inputCount": 38,
|
|
485
561
|
"secrets": [
|
|
486
562
|
"production-release-app-private-key"
|
|
487
563
|
],
|
|
@@ -575,6 +651,20 @@
|
|
|
575
651
|
"capabilityGroup": "api-cli-reference",
|
|
576
652
|
"status": "active"
|
|
577
653
|
},
|
|
654
|
+
{
|
|
655
|
+
"id": "binary-release-assets",
|
|
656
|
+
"path": ".github/workflows/binary-release-assets.yml",
|
|
657
|
+
"reusable": false,
|
|
658
|
+
"inputs": [],
|
|
659
|
+
"inputCount": 0,
|
|
660
|
+
"secrets": [],
|
|
661
|
+
"secretCount": 0,
|
|
662
|
+
"outputs": [],
|
|
663
|
+
"outputCount": 0,
|
|
664
|
+
"surface": "repository-workflow",
|
|
665
|
+
"capabilityGroup": "api-cli-reference",
|
|
666
|
+
"status": "active"
|
|
667
|
+
},
|
|
578
668
|
{
|
|
579
669
|
"id": "build-surface-fixture",
|
|
580
670
|
"path": ".github/workflows/build-surface-fixture.yml",
|
|
@@ -940,6 +1030,52 @@
|
|
|
940
1030
|
"capabilityGroup": "api-cli-reference",
|
|
941
1031
|
"status": "active"
|
|
942
1032
|
},
|
|
1033
|
+
{
|
|
1034
|
+
"id": "paper-release-sealed",
|
|
1035
|
+
"path": ".github/workflows/paper-release-sealed.yml",
|
|
1036
|
+
"reusable": true,
|
|
1037
|
+
"inputs": [
|
|
1038
|
+
"artifact-name",
|
|
1039
|
+
"artifact-paths",
|
|
1040
|
+
"artifact-retention-days",
|
|
1041
|
+
"branch-protection-bypass-apps",
|
|
1042
|
+
"branch-protection-bypass-teams",
|
|
1043
|
+
"branch-protection-bypass-users",
|
|
1044
|
+
"buildchain-contract-lock-path",
|
|
1045
|
+
"buildchain-ref",
|
|
1046
|
+
"buildchain-repository",
|
|
1047
|
+
"dry-run",
|
|
1048
|
+
"github-release",
|
|
1049
|
+
"github-release-notes",
|
|
1050
|
+
"github-release-title",
|
|
1051
|
+
"package-name",
|
|
1052
|
+
"publish-dist-tag",
|
|
1053
|
+
"publisher-workflow-path",
|
|
1054
|
+
"release-passport-impact-json",
|
|
1055
|
+
"release-passport-output-dir",
|
|
1056
|
+
"release-passport-product-name",
|
|
1057
|
+
"required-status-check",
|
|
1058
|
+
"target-ref",
|
|
1059
|
+
"target-sha",
|
|
1060
|
+
"toolchain-type",
|
|
1061
|
+
"verify-command",
|
|
1062
|
+
"working-directory"
|
|
1063
|
+
],
|
|
1064
|
+
"inputCount": 25,
|
|
1065
|
+
"secrets": [],
|
|
1066
|
+
"secretCount": 0,
|
|
1067
|
+
"outputs": [
|
|
1068
|
+
"github-release-url",
|
|
1069
|
+
"package-name",
|
|
1070
|
+
"package-version",
|
|
1071
|
+
"public-release-tag",
|
|
1072
|
+
"release-passport-path"
|
|
1073
|
+
],
|
|
1074
|
+
"outputCount": 5,
|
|
1075
|
+
"surface": "repository-workflow",
|
|
1076
|
+
"capabilityGroup": "api-cli-reference",
|
|
1077
|
+
"status": "active"
|
|
1078
|
+
},
|
|
943
1079
|
{
|
|
944
1080
|
"id": "paper-release",
|
|
945
1081
|
"path": ".github/workflows/paper-release.yml",
|
|
@@ -962,6 +1098,11 @@
|
|
|
962
1098
|
"github-release-title",
|
|
963
1099
|
"node-version",
|
|
964
1100
|
"package-name",
|
|
1101
|
+
"publication-admission-json",
|
|
1102
|
+
"publication-control-plane-audit-json",
|
|
1103
|
+
"publication-expected-json",
|
|
1104
|
+
"publication-runner-provenance-json",
|
|
1105
|
+
"publication-used-nonces-json",
|
|
965
1106
|
"publish-dist-tag",
|
|
966
1107
|
"publish-package-set-order",
|
|
967
1108
|
"release-passport-impact-json",
|
|
@@ -978,11 +1119,9 @@
|
|
|
978
1119
|
"verify-command",
|
|
979
1120
|
"working-directory"
|
|
980
1121
|
],
|
|
981
|
-
"inputCount":
|
|
982
|
-
"secrets": [
|
|
983
|
-
|
|
984
|
-
],
|
|
985
|
-
"secretCount": 1,
|
|
1122
|
+
"inputCount": 37,
|
|
1123
|
+
"secrets": [],
|
|
1124
|
+
"secretCount": 0,
|
|
986
1125
|
"outputs": [
|
|
987
1126
|
"controller-plan-artifact",
|
|
988
1127
|
"controller-plan-digest",
|
|
@@ -1106,7 +1245,11 @@
|
|
|
1106
1245
|
"buildchain-ref",
|
|
1107
1246
|
"buildchain-repository",
|
|
1108
1247
|
"node-version",
|
|
1248
|
+
"package-name",
|
|
1249
|
+
"prepare-paper-package",
|
|
1250
|
+
"publish-dist-tag",
|
|
1109
1251
|
"setup-node",
|
|
1252
|
+
"target-ref",
|
|
1110
1253
|
"toolchain-command",
|
|
1111
1254
|
"toolchain-digest",
|
|
1112
1255
|
"toolchain-image",
|
|
@@ -1114,7 +1257,7 @@
|
|
|
1114
1257
|
"verify-command",
|
|
1115
1258
|
"working-directory"
|
|
1116
1259
|
],
|
|
1117
|
-
"inputCount":
|
|
1260
|
+
"inputCount": 21,
|
|
1118
1261
|
"secrets": [],
|
|
1119
1262
|
"secretCount": 0,
|
|
1120
1263
|
"outputs": [
|
|
@@ -1125,13 +1268,17 @@
|
|
|
1125
1268
|
"controller-receipt-digest",
|
|
1126
1269
|
"controller-receipt-json",
|
|
1127
1270
|
"controller-receipt-status",
|
|
1271
|
+
"package-name",
|
|
1272
|
+
"package-version",
|
|
1128
1273
|
"publication-artifact-name",
|
|
1129
1274
|
"publication-manifest-json",
|
|
1130
1275
|
"publication-manifest-path",
|
|
1131
1276
|
"publication-passport-path",
|
|
1132
|
-
"publication-registry-path"
|
|
1277
|
+
"publication-registry-path",
|
|
1278
|
+
"publish-dist-tag",
|
|
1279
|
+
"runtime-sha"
|
|
1133
1280
|
],
|
|
1134
|
-
"outputCount":
|
|
1281
|
+
"outputCount": 16,
|
|
1135
1282
|
"surface": "repository-workflow",
|
|
1136
1283
|
"capabilityGroup": "reusable-build",
|
|
1137
1284
|
"status": "active"
|
|
@@ -1158,6 +1305,17 @@
|
|
|
1158
1305
|
"github-release-notes",
|
|
1159
1306
|
"github-release-title",
|
|
1160
1307
|
"package-manager",
|
|
1308
|
+
"publication-admission-json",
|
|
1309
|
+
"publication-auto-admission",
|
|
1310
|
+
"publication-control-plane-audit-json",
|
|
1311
|
+
"publication-expected-json",
|
|
1312
|
+
"publication-gate-aggregate-json",
|
|
1313
|
+
"publication-package-name",
|
|
1314
|
+
"publication-product",
|
|
1315
|
+
"publication-publisher-workflow-path",
|
|
1316
|
+
"publication-runner-provenance-json",
|
|
1317
|
+
"publication-target",
|
|
1318
|
+
"publication-used-nonces-json",
|
|
1161
1319
|
"publish-artifact-kind",
|
|
1162
1320
|
"publish-command",
|
|
1163
1321
|
"publish-dist-tag",
|
|
@@ -1186,7 +1344,7 @@
|
|
|
1186
1344
|
"target-sha",
|
|
1187
1345
|
"trusted-publishing"
|
|
1188
1346
|
],
|
|
1189
|
-
"inputCount":
|
|
1347
|
+
"inputCount": 55,
|
|
1190
1348
|
"secrets": [
|
|
1191
1349
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
1192
1350
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -1207,9 +1365,10 @@
|
|
|
1207
1365
|
"controller-receipt-json",
|
|
1208
1366
|
"controller-receipt-status",
|
|
1209
1367
|
"promoted-sha",
|
|
1368
|
+
"publication-capability-digest",
|
|
1210
1369
|
"release-candidate-artifact"
|
|
1211
1370
|
],
|
|
1212
|
-
"outputCount":
|
|
1371
|
+
"outputCount": 11,
|
|
1213
1372
|
"surface": "release-governance",
|
|
1214
1373
|
"capabilityGroup": "reusable-build",
|
|
1215
1374
|
"status": "active"
|
|
@@ -1388,9 +1547,11 @@
|
|
|
1388
1547
|
"branch-protection-bypass-teams",
|
|
1389
1548
|
"branch-protection-bypass-users",
|
|
1390
1549
|
"dry-run",
|
|
1550
|
+
"expected-publication-version",
|
|
1391
1551
|
"generated-ref-update-token",
|
|
1392
1552
|
"generated-status-check-token",
|
|
1393
1553
|
"github-release",
|
|
1554
|
+
"github-release-artifact-paths",
|
|
1394
1555
|
"github-release-notes",
|
|
1395
1556
|
"github-release-title",
|
|
1396
1557
|
"promote-only-release-candidate",
|
|
@@ -1436,7 +1597,7 @@
|
|
|
1436
1597
|
"transaction-state-path",
|
|
1437
1598
|
"verification-command"
|
|
1438
1599
|
],
|
|
1439
|
-
"inputCount":
|
|
1600
|
+
"inputCount": 54,
|
|
1440
1601
|
"capabilityGroup": "release-passport-trust",
|
|
1441
1602
|
"status": "active"
|
|
1442
1603
|
},
|
package/docs/MAP.md
CHANGED
|
@@ -27,7 +27,7 @@ workflow, action, and Node API export also carries a `capabilityGroup`,
|
|
|
27
27
|
| Capability group | Primary facts | Primary manuals |
|
|
28
28
|
| --- | --- | --- |
|
|
29
29
|
| Getting Started | `capability-registry.json`, `product-mechanism.json` | [`install.md`](install.md), [`product-mechanism.md`](product-mechanism.md), [`cli.md`](cli.md) |
|
|
30
|
-
| Release Passport and Trust | `release-model.json`, `artifact-schemas.json`, `kfd-claims.json` | [`release-passport.md`](release-passport.md), [`release-candidate.md`](release-candidate.md), [`publish-transaction.md`](publish-transaction.md), [`binary-distribution.md`](binary-distribution.md) |
|
|
30
|
+
| Release Passport and Trust | `release-model.json`, `artifact-schemas.json`, `publication-authority-registry.json`, `kfd-claims.json` | [`release-passport.md`](release-passport.md), [`publication-authority.md`](publication-authority.md), [`release-candidate.md`](release-candidate.md), [`publish-transaction.md`](publish-transaction.md), [`binary-distribution.md`](binary-distribution.md) |
|
|
31
31
|
| Reusable Build and Lifecycle | `workflow-registry.json`, `controller-registry.json`, `release-model.json` | [`reusable-build-surface.md`](reusable-build-surface.md), [`controller-evidence.md`](controller-evidence.md), [`shifu-gate-profiles.md`](shifu-gate-profiles.md), [`lifecycle-protocol.md`](lifecycle-protocol.md) |
|
|
32
32
|
| KFD Trust and Surface Closure | `kfd-claims.json`, `public-surface-audit.json`, `cli-registry.json`, `node-api-registry.json` | [`kfd-support.md`](kfd-support.md), [`release-passport.md`](release-passport.md) |
|
|
33
33
|
| Site Bundle, Web Surfaces, and Propagation | `buildchain-site.json`, `site-manifest.json`, `page-registry.json`, `release-model.json` | [`site-bundle-contract.md`](site-bundle-contract.md), [`web-surface-deployments.md`](web-surface-deployments.md), [`release-propagation.md`](release-propagation.md) |
|
|
@@ -81,6 +81,7 @@ replace them.
|
|
|
81
81
|
| How does publish evidence, recovery, and finalization work? | [`publish-transaction.md`](publish-transaction.md) | verify | stable |
|
|
82
82
|
| How do I collect and verify module/product build facts from Git source, version files, and outputs? | [`build-facts.md`](build-facts.md) + [`cli.md`](cli.md) | use/verify | stable |
|
|
83
83
|
| How do I publish or verify release passport artifacts? | [`release-passport.md`](release-passport.md) | use | stable |
|
|
84
|
+
| How is product publication authority sealed to an exact workflow, runner, control plane, nonce, and artifact? | [`publication-authority.md`](publication-authority.md) | verify | preview |
|
|
84
85
|
| How do I gate release artifacts with KFD-1 contract-world witnesses? | [`release-passport.md`](release-passport.md#kfd-1-contract-world-release-gate) | verify/use | stable |
|
|
85
86
|
| How do I declare, render, and audit product KFD-2 release trust claims? | [`kfd-support.md`](kfd-support.md#kfd-2) + [`release-passport.md`](release-passport.md#kfd-2-release-trust-passport-audit) + [`cli.md`](cli.md) | verify/use | stable |
|
|
86
87
|
| How do I gate KFD-3 collaboration-interface releases? | [`release-passport.md`](release-passport.md#kfd-3-collaboration-interface-release-gate) + [`cli.md`](cli.md) | verify/use | stable |
|
|
@@ -182,38 +182,37 @@ on:
|
|
|
182
182
|
|
|
183
183
|
jobs:
|
|
184
184
|
paper-release:
|
|
185
|
-
uses: kungfu-systems/buildchain/.github/workflows/paper-release.yml@v2
|
|
185
|
+
uses: kungfu-systems/buildchain/.github/workflows/paper-release-sealed.yml@v2
|
|
186
186
|
permissions:
|
|
187
|
+
actions: read
|
|
187
188
|
checks: write
|
|
188
189
|
contents: write
|
|
189
190
|
id-token: write
|
|
190
191
|
issues: write
|
|
191
|
-
secrets:
|
|
192
|
-
BUILDCHAIN_PROMOTION_TOKEN: ${{ secrets.RELEASE_AUTHORITY_TOKEN }}
|
|
193
192
|
with:
|
|
194
193
|
buildchain-ref: ${{ inputs.buildchain-ref || '' }}
|
|
194
|
+
publisher-workflow-path: .github/workflows/paper-release.yml
|
|
195
195
|
toolchain-type: config
|
|
196
196
|
verify-command: make check
|
|
197
|
+
artifact-paths: _build/paper-name.pdf
|
|
197
198
|
buildchain-contract-lock-path: .buildchain/contract-lock.json
|
|
198
199
|
```
|
|
199
200
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
201
|
+
The sealed preset does not accept a long-lived promotion token. It builds and
|
|
202
|
+
packages the paper in a read-only job, then a credential-free authority job
|
|
203
|
+
downloads that exact candidate, audits the external control plane, and seals a
|
|
204
|
+
capability over the source tree, Buildchain runtime, controller receipt, PDF,
|
|
205
|
+
and npm package bytes. Only the final job receives write and OIDC permissions;
|
|
206
|
+
it downloads the admitted candidate, recomputes the capability binding, and
|
|
207
|
+
publishes without executing consumer build commands. npm binds the OIDC identity
|
|
208
|
+
to the consumer workflow named by `publisher-workflow-path`.
|
|
208
209
|
|
|
209
210
|
The preset:
|
|
210
211
|
|
|
211
|
-
- resolves the
|
|
212
|
-
|
|
213
|
-
- verifies that the declared promotion authority can read the protected target
|
|
214
|
-
channel before starting the publication build;
|
|
212
|
+
- resolves the floating Buildchain runtime once and binds the exact SHA into the
|
|
213
|
+
publication candidate and authority capability;
|
|
215
214
|
- builds the PDF through the declared pinned LaTeX Docker toolchain or custom
|
|
216
|
-
command;
|
|
215
|
+
command in a read-only job;
|
|
217
216
|
- verifies the paper repository;
|
|
218
217
|
- writes the publication manifest, publication passport, optional archive
|
|
219
218
|
registry, and source bundle;
|
|
@@ -224,14 +223,22 @@ The preset:
|
|
|
224
223
|
- creates a `publish-gate/<alpha|release>/.../<version>` source lock for the
|
|
225
224
|
channel commit and requires `promote-buildchain-ref` to verify that lock
|
|
226
225
|
before any publish side effect;
|
|
227
|
-
-
|
|
226
|
+
- verifies the complete candidate again after authority and publishes the
|
|
227
|
+
package through npm Trusted Publishing without rebuilding it;
|
|
228
228
|
- writes Buildchain release/passport evidence; and
|
|
229
|
-
- creates or updates the exact-version GitHub Release by default
|
|
229
|
+
- creates or updates the exact-version GitHub Release by default, uploading
|
|
230
|
+
every file declared by `publication.primary_artifact` and
|
|
231
|
+
`publication.artifact_paths` alongside the release evidence.
|
|
230
232
|
|
|
231
233
|
Consumers can opt out of the GitHub Release with `github-release: false`, but
|
|
232
234
|
the default is on so downstream release propagation can observe
|
|
233
235
|
`release.published` without hand-written `gh release` steps.
|
|
234
236
|
|
|
237
|
+
Declared publication artifacts are resolved from the generated publication
|
|
238
|
+
manifest rather than repeated in consumer workflow YAML. Publication fails
|
|
239
|
+
before upload if a declared artifact is missing or if its basename would
|
|
240
|
+
collide with another GitHub Release asset.
|
|
241
|
+
|
|
235
242
|
For npm Trusted Publishing, register the consumer workflow file that calls this
|
|
236
243
|
preset, for example `.github/workflows/paper-release.yml`, against the declared
|
|
237
244
|
package in npm. The trusted publisher is the consumer repository and workflow
|