@kungfu-tech/buildchain 2.12.4 → 2.12.5-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/bin/buildchain.mjs +3 -0
  2. package/dist/site/agent-index.json +1 -0
  3. package/dist/site/artifact-schemas.json +1 -0
  4. package/dist/site/buildchain-contract.json +2008 -12
  5. package/dist/site/buildchain-site.json +74 -11
  6. package/dist/site/capability-registry.json +4 -3
  7. package/dist/site/controller-registry.json +1626 -0
  8. package/dist/site/kfd-claims.json +88 -74
  9. package/dist/site/kfd-upstream-aggregate.json +1 -1
  10. package/dist/site/manual-registry.json +18 -2
  11. package/dist/site/node-api-registry.json +20 -7
  12. package/dist/site/page-registry.json +58 -5
  13. package/dist/site/public-surface-audit.json +572 -102
  14. package/dist/site/publication-registry.json +4 -4
  15. package/dist/site/release-provenance.json +2 -0
  16. package/dist/site/site-manifest.json +15 -6
  17. package/dist/site/workflow-registry.json +534 -68
  18. package/docs/MAP.md +2 -1
  19. package/docs/controller-evidence.md +113 -0
  20. package/docs/release-passport.md +6 -0
  21. package/package.json +3 -1
  22. package/packages/core/buildchain-contract.js +62 -1
  23. package/packages/core/buildchain-kfd-claims.js +3 -0
  24. package/packages/core/controller-evidence.js +505 -0
  25. package/packages/core/index.js +17 -0
  26. package/packages/core/public-surface-audit.js +40 -3
  27. package/packages/core/release-candidate.js +26 -0
  28. package/packages/core/release-passport.js +19 -0
  29. package/scripts/check-inventory.mjs +4 -1
  30. package/scripts/controller-evidence.mjs +170 -0
  31. package/scripts/generate-channel-build-workflow.mjs +141 -2
  32. package/scripts/generate-release-candidate-passport.mjs +4 -0
  33. package/scripts/generate-site-bundle.mjs +11 -1
@@ -0,0 +1,1626 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "contract": "buildchain.controller-registry/v1",
4
+ "controllers": [
5
+ {
6
+ "schemaVersion": 1,
7
+ "contract": "buildchain.controller-descriptor/v1",
8
+ "id": "source-check",
9
+ "version": 1,
10
+ "workflow": {
11
+ "id": "check",
12
+ "path": ".github/workflows/check.yml"
13
+ },
14
+ "inputs": {
15
+ "buildchain-ref": {
16
+ "classification": "included",
17
+ "source": "workflow-call-input"
18
+ },
19
+ "buildchain-repository": {
20
+ "classification": "included",
21
+ "source": "workflow-call-input"
22
+ },
23
+ "mode": {
24
+ "classification": "included",
25
+ "source": "workflow-call-input"
26
+ },
27
+ "node-version": {
28
+ "classification": "included",
29
+ "source": "workflow-call-input"
30
+ },
31
+ "require-version-state": {
32
+ "classification": "included",
33
+ "source": "workflow-call-input"
34
+ },
35
+ "upload-artifacts": {
36
+ "classification": "included",
37
+ "source": "workflow-call-input"
38
+ },
39
+ "working-directory": {
40
+ "classification": "digest-only",
41
+ "source": "workflow-call-input"
42
+ }
43
+ },
44
+ "expected": {
45
+ "stages": [
46
+ {
47
+ "id": "resolve-runtime",
48
+ "required": true
49
+ },
50
+ {
51
+ "id": "checkout-source",
52
+ "required": true
53
+ },
54
+ {
55
+ "id": "install",
56
+ "required": true
57
+ },
58
+ {
59
+ "id": "check",
60
+ "required": true
61
+ },
62
+ {
63
+ "id": "aggregate",
64
+ "required": true
65
+ }
66
+ ],
67
+ "capabilities": [
68
+ "source-acceptance",
69
+ "lifecycle-check"
70
+ ],
71
+ "evidence": [
72
+ "lifecycle-manifest",
73
+ "lifecycle-summary",
74
+ "controller-receipt"
75
+ ]
76
+ },
77
+ "digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48"
78
+ },
79
+ {
80
+ "schemaVersion": 1,
81
+ "contract": "buildchain.controller-descriptor/v1",
82
+ "id": "build-lifecycle",
83
+ "version": 1,
84
+ "workflow": {
85
+ "id": ".build",
86
+ "path": ".github/workflows/.build.yml"
87
+ },
88
+ "inputs": {
89
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
90
+ "classification": "redacted",
91
+ "source": "workflow-call-secret"
92
+ },
93
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN": {
94
+ "classification": "redacted",
95
+ "source": "workflow-call-secret"
96
+ },
97
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN": {
98
+ "classification": "redacted",
99
+ "source": "workflow-call-secret"
100
+ },
101
+ "artifact-name": {
102
+ "classification": "included",
103
+ "source": "workflow-call-input"
104
+ },
105
+ "artifact-name-template": {
106
+ "classification": "included",
107
+ "source": "workflow-call-input"
108
+ },
109
+ "artifact-paths": {
110
+ "classification": "digest-only",
111
+ "source": "workflow-call-input"
112
+ },
113
+ "artifact-relay-s3-bucket": {
114
+ "classification": "digest-only",
115
+ "source": "workflow-call-input"
116
+ },
117
+ "artifact-relay-s3-download-role-arn": {
118
+ "classification": "digest-only",
119
+ "source": "workflow-call-input"
120
+ },
121
+ "artifact-relay-s3-oidc-audience": {
122
+ "classification": "included",
123
+ "source": "workflow-call-input"
124
+ },
125
+ "artifact-relay-s3-prefix": {
126
+ "classification": "digest-only",
127
+ "source": "workflow-call-input"
128
+ },
129
+ "artifact-relay-s3-region": {
130
+ "classification": "digest-only",
131
+ "source": "workflow-call-input"
132
+ },
133
+ "artifact-relay-s3-role-arn": {
134
+ "classification": "digest-only",
135
+ "source": "workflow-call-input"
136
+ },
137
+ "artifact-relay-s3-upload-role-arn": {
138
+ "classification": "digest-only",
139
+ "source": "workflow-call-input"
140
+ },
141
+ "artifact-retention-days": {
142
+ "classification": "included",
143
+ "source": "workflow-call-input"
144
+ },
145
+ "artifact-transfer-mode": {
146
+ "classification": "included",
147
+ "source": "workflow-call-input"
148
+ },
149
+ "build-command": {
150
+ "classification": "digest-only",
151
+ "source": "workflow-call-input"
152
+ },
153
+ "buildchain-contract-compatibility-policy": {
154
+ "classification": "included",
155
+ "source": "workflow-call-input"
156
+ },
157
+ "buildchain-contract-drift-issue-mode": {
158
+ "classification": "included",
159
+ "source": "workflow-call-input"
160
+ },
161
+ "buildchain-contract-lock-path": {
162
+ "classification": "digest-only",
163
+ "source": "workflow-call-input"
164
+ },
165
+ "buildchain-ref": {
166
+ "classification": "included",
167
+ "source": "workflow-call-input"
168
+ },
169
+ "buildchain-repository": {
170
+ "classification": "included",
171
+ "source": "workflow-call-input"
172
+ },
173
+ "cargo-registry-index": {
174
+ "classification": "digest-only",
175
+ "source": "workflow-call-input"
176
+ },
177
+ "checkout-cache-fallback": {
178
+ "classification": "digest-only",
179
+ "source": "workflow-call-input"
180
+ },
181
+ "checkout-cache-fetch-attempts": {
182
+ "classification": "digest-only",
183
+ "source": "workflow-call-input"
184
+ },
185
+ "checkout-cache-github-timeout-seconds": {
186
+ "classification": "digest-only",
187
+ "source": "workflow-call-input"
188
+ },
189
+ "checkout-cache-mirror-url-template": {
190
+ "classification": "digest-only",
191
+ "source": "workflow-call-input"
192
+ },
193
+ "checkout-cache-mode": {
194
+ "classification": "digest-only",
195
+ "source": "workflow-call-input"
196
+ },
197
+ "checkout-cache-reference-repository-template": {
198
+ "classification": "digest-only",
199
+ "source": "workflow-call-input"
200
+ },
201
+ "checkout-cache-timeout-seconds": {
202
+ "classification": "digest-only",
203
+ "source": "workflow-call-input"
204
+ },
205
+ "expected-artifacts-json": {
206
+ "classification": "digest-only",
207
+ "source": "workflow-call-input"
208
+ },
209
+ "gate-profile-aggregate-json": {
210
+ "classification": "digest-only",
211
+ "source": "workflow-call-input"
212
+ },
213
+ "install-command": {
214
+ "classification": "digest-only",
215
+ "source": "workflow-call-input"
216
+ },
217
+ "linux-container-image": {
218
+ "classification": "digest-only",
219
+ "source": "workflow-call-input"
220
+ },
221
+ "linux-container-preset": {
222
+ "classification": "included",
223
+ "source": "workflow-call-input"
224
+ },
225
+ "node-version": {
226
+ "classification": "included",
227
+ "source": "workflow-call-input"
228
+ },
229
+ "platforms-json": {
230
+ "classification": "digest-only",
231
+ "source": "workflow-call-input"
232
+ },
233
+ "process-sample-interval-ms": {
234
+ "classification": "included",
235
+ "source": "workflow-call-input"
236
+ },
237
+ "process-summary-path": {
238
+ "classification": "digest-only",
239
+ "source": "workflow-call-input"
240
+ },
241
+ "publish-anchor-request-json": {
242
+ "classification": "digest-only",
243
+ "source": "workflow-call-input"
244
+ },
245
+ "publish-channel": {
246
+ "classification": "included",
247
+ "source": "workflow-call-input"
248
+ },
249
+ "publish-refs-json": {
250
+ "classification": "digest-only",
251
+ "source": "workflow-call-input"
252
+ },
253
+ "publish-registry": {
254
+ "classification": "included",
255
+ "source": "workflow-call-input"
256
+ },
257
+ "publish-source-ref": {
258
+ "classification": "included",
259
+ "source": "workflow-call-input"
260
+ },
261
+ "release-candidate": {
262
+ "classification": "included",
263
+ "source": "workflow-call-input"
264
+ },
265
+ "requested-parallelism": {
266
+ "classification": "included",
267
+ "source": "workflow-call-input"
268
+ },
269
+ "require-build": {
270
+ "classification": "included",
271
+ "source": "workflow-call-input"
272
+ },
273
+ "require-install": {
274
+ "classification": "included",
275
+ "source": "workflow-call-input"
276
+ },
277
+ "require-trusted-event": {
278
+ "classification": "included",
279
+ "source": "workflow-call-input"
280
+ },
281
+ "require-verify": {
282
+ "classification": "included",
283
+ "source": "workflow-call-input"
284
+ },
285
+ "runner-preset": {
286
+ "classification": "digest-only",
287
+ "source": "workflow-call-input"
288
+ },
289
+ "rust-toolchain": {
290
+ "classification": "included",
291
+ "source": "workflow-call-input"
292
+ },
293
+ "rustup-dist-server": {
294
+ "classification": "included",
295
+ "source": "workflow-call-input"
296
+ },
297
+ "rustup-update-root": {
298
+ "classification": "included",
299
+ "source": "workflow-call-input"
300
+ },
301
+ "sample-process-tree": {
302
+ "classification": "included",
303
+ "source": "workflow-call-input"
304
+ },
305
+ "setup-node": {
306
+ "classification": "included",
307
+ "source": "workflow-call-input"
308
+ },
309
+ "setup-rust": {
310
+ "classification": "included",
311
+ "source": "workflow-call-input"
312
+ },
313
+ "shifu-cache-profile-digest": {
314
+ "classification": "included",
315
+ "source": "workflow-call-input"
316
+ },
317
+ "shifu-cache-profile-ref": {
318
+ "classification": "included",
319
+ "source": "workflow-call-input"
320
+ },
321
+ "untrusted-policy": {
322
+ "classification": "included",
323
+ "source": "workflow-call-input"
324
+ },
325
+ "verify-command": {
326
+ "classification": "digest-only",
327
+ "source": "workflow-call-input"
328
+ },
329
+ "working-directory": {
330
+ "classification": "digest-only",
331
+ "source": "workflow-call-input"
332
+ }
333
+ },
334
+ "expected": {
335
+ "stages": [
336
+ {
337
+ "id": "resolve-runtime",
338
+ "required": true
339
+ },
340
+ {
341
+ "id": "resolve-source",
342
+ "required": true
343
+ },
344
+ {
345
+ "id": "build",
346
+ "required": true
347
+ },
348
+ {
349
+ "id": "verify",
350
+ "required": true
351
+ },
352
+ {
353
+ "id": "aggregate",
354
+ "required": true
355
+ }
356
+ ],
357
+ "capabilities": [
358
+ "source-lock",
359
+ "lifecycle-build",
360
+ "lifecycle-verify",
361
+ "artifact-admission"
362
+ ],
363
+ "evidence": [
364
+ "platform-manifests",
365
+ "build-summary",
366
+ "controller-receipt"
367
+ ]
368
+ },
369
+ "digest": "sha256:ce2ada5daf86cbe6e58327c190fdfe07510952cc8820cf445eb4342daae4da18"
370
+ },
371
+ {
372
+ "schemaVersion": 1,
373
+ "contract": "buildchain.controller-descriptor/v1",
374
+ "id": "build-channel-router",
375
+ "version": 1,
376
+ "workflow": {
377
+ "id": "build",
378
+ "path": ".github/workflows/build.yml"
379
+ },
380
+ "inputs": {
381
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
382
+ "classification": "redacted",
383
+ "source": "workflow-call-secret"
384
+ },
385
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN": {
386
+ "classification": "redacted",
387
+ "source": "workflow-call-secret"
388
+ },
389
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN": {
390
+ "classification": "redacted",
391
+ "source": "workflow-call-secret"
392
+ },
393
+ "artifact-name": {
394
+ "classification": "included",
395
+ "source": "workflow-call-input"
396
+ },
397
+ "artifact-name-template": {
398
+ "classification": "included",
399
+ "source": "workflow-call-input"
400
+ },
401
+ "artifact-paths": {
402
+ "classification": "digest-only",
403
+ "source": "workflow-call-input"
404
+ },
405
+ "artifact-relay-s3-bucket": {
406
+ "classification": "digest-only",
407
+ "source": "workflow-call-input"
408
+ },
409
+ "artifact-relay-s3-download-role-arn": {
410
+ "classification": "digest-only",
411
+ "source": "workflow-call-input"
412
+ },
413
+ "artifact-relay-s3-oidc-audience": {
414
+ "classification": "included",
415
+ "source": "workflow-call-input"
416
+ },
417
+ "artifact-relay-s3-prefix": {
418
+ "classification": "digest-only",
419
+ "source": "workflow-call-input"
420
+ },
421
+ "artifact-relay-s3-region": {
422
+ "classification": "digest-only",
423
+ "source": "workflow-call-input"
424
+ },
425
+ "artifact-relay-s3-role-arn": {
426
+ "classification": "digest-only",
427
+ "source": "workflow-call-input"
428
+ },
429
+ "artifact-relay-s3-upload-role-arn": {
430
+ "classification": "digest-only",
431
+ "source": "workflow-call-input"
432
+ },
433
+ "artifact-retention-days": {
434
+ "classification": "included",
435
+ "source": "workflow-call-input"
436
+ },
437
+ "artifact-transfer-mode": {
438
+ "classification": "included",
439
+ "source": "workflow-call-input"
440
+ },
441
+ "build-command": {
442
+ "classification": "digest-only",
443
+ "source": "workflow-call-input"
444
+ },
445
+ "buildchain-alpha-contract-lock-path": {
446
+ "classification": "digest-only",
447
+ "source": "workflow-call-input"
448
+ },
449
+ "buildchain-channel": {
450
+ "classification": "included",
451
+ "source": "workflow-call-input"
452
+ },
453
+ "buildchain-contract-compatibility-policy": {
454
+ "classification": "included",
455
+ "source": "workflow-call-input"
456
+ },
457
+ "buildchain-contract-drift-issue-mode": {
458
+ "classification": "included",
459
+ "source": "workflow-call-input"
460
+ },
461
+ "buildchain-contract-lock-path": {
462
+ "classification": "digest-only",
463
+ "source": "workflow-call-input"
464
+ },
465
+ "buildchain-ref": {
466
+ "classification": "included",
467
+ "source": "workflow-call-input"
468
+ },
469
+ "buildchain-repository": {
470
+ "classification": "included",
471
+ "source": "workflow-call-input"
472
+ },
473
+ "buildchain-stable-contract-lock-path": {
474
+ "classification": "digest-only",
475
+ "source": "workflow-call-input"
476
+ },
477
+ "cargo-registry-index": {
478
+ "classification": "digest-only",
479
+ "source": "workflow-call-input"
480
+ },
481
+ "checkout-cache-fallback": {
482
+ "classification": "digest-only",
483
+ "source": "workflow-call-input"
484
+ },
485
+ "checkout-cache-fetch-attempts": {
486
+ "classification": "digest-only",
487
+ "source": "workflow-call-input"
488
+ },
489
+ "checkout-cache-github-timeout-seconds": {
490
+ "classification": "digest-only",
491
+ "source": "workflow-call-input"
492
+ },
493
+ "checkout-cache-mirror-url-template": {
494
+ "classification": "digest-only",
495
+ "source": "workflow-call-input"
496
+ },
497
+ "checkout-cache-mode": {
498
+ "classification": "digest-only",
499
+ "source": "workflow-call-input"
500
+ },
501
+ "checkout-cache-reference-repository-template": {
502
+ "classification": "digest-only",
503
+ "source": "workflow-call-input"
504
+ },
505
+ "checkout-cache-timeout-seconds": {
506
+ "classification": "digest-only",
507
+ "source": "workflow-call-input"
508
+ },
509
+ "expected-artifacts-json": {
510
+ "classification": "digest-only",
511
+ "source": "workflow-call-input"
512
+ },
513
+ "gate-profile-aggregate-json": {
514
+ "classification": "digest-only",
515
+ "source": "workflow-call-input"
516
+ },
517
+ "install-command": {
518
+ "classification": "digest-only",
519
+ "source": "workflow-call-input"
520
+ },
521
+ "linux-container-image": {
522
+ "classification": "digest-only",
523
+ "source": "workflow-call-input"
524
+ },
525
+ "linux-container-preset": {
526
+ "classification": "included",
527
+ "source": "workflow-call-input"
528
+ },
529
+ "node-version": {
530
+ "classification": "included",
531
+ "source": "workflow-call-input"
532
+ },
533
+ "platforms-json": {
534
+ "classification": "digest-only",
535
+ "source": "workflow-call-input"
536
+ },
537
+ "process-sample-interval-ms": {
538
+ "classification": "included",
539
+ "source": "workflow-call-input"
540
+ },
541
+ "process-summary-path": {
542
+ "classification": "digest-only",
543
+ "source": "workflow-call-input"
544
+ },
545
+ "publish-anchor-request-json": {
546
+ "classification": "digest-only",
547
+ "source": "workflow-call-input"
548
+ },
549
+ "publish-channel": {
550
+ "classification": "included",
551
+ "source": "workflow-call-input"
552
+ },
553
+ "publish-refs-json": {
554
+ "classification": "digest-only",
555
+ "source": "workflow-call-input"
556
+ },
557
+ "publish-registry": {
558
+ "classification": "included",
559
+ "source": "workflow-call-input"
560
+ },
561
+ "publish-source-ref": {
562
+ "classification": "included",
563
+ "source": "workflow-call-input"
564
+ },
565
+ "release-candidate": {
566
+ "classification": "included",
567
+ "source": "workflow-call-input"
568
+ },
569
+ "requested-parallelism": {
570
+ "classification": "included",
571
+ "source": "workflow-call-input"
572
+ },
573
+ "require-build": {
574
+ "classification": "included",
575
+ "source": "workflow-call-input"
576
+ },
577
+ "require-install": {
578
+ "classification": "included",
579
+ "source": "workflow-call-input"
580
+ },
581
+ "require-trusted-event": {
582
+ "classification": "included",
583
+ "source": "workflow-call-input"
584
+ },
585
+ "require-verify": {
586
+ "classification": "included",
587
+ "source": "workflow-call-input"
588
+ },
589
+ "runner-preset": {
590
+ "classification": "digest-only",
591
+ "source": "workflow-call-input"
592
+ },
593
+ "rust-toolchain": {
594
+ "classification": "included",
595
+ "source": "workflow-call-input"
596
+ },
597
+ "rustup-dist-server": {
598
+ "classification": "included",
599
+ "source": "workflow-call-input"
600
+ },
601
+ "rustup-update-root": {
602
+ "classification": "included",
603
+ "source": "workflow-call-input"
604
+ },
605
+ "sample-process-tree": {
606
+ "classification": "included",
607
+ "source": "workflow-call-input"
608
+ },
609
+ "setup-node": {
610
+ "classification": "included",
611
+ "source": "workflow-call-input"
612
+ },
613
+ "setup-rust": {
614
+ "classification": "included",
615
+ "source": "workflow-call-input"
616
+ },
617
+ "shifu-cache-profile-digest": {
618
+ "classification": "included",
619
+ "source": "workflow-call-input"
620
+ },
621
+ "shifu-cache-profile-ref": {
622
+ "classification": "included",
623
+ "source": "workflow-call-input"
624
+ },
625
+ "untrusted-policy": {
626
+ "classification": "included",
627
+ "source": "workflow-call-input"
628
+ },
629
+ "verify-command": {
630
+ "classification": "digest-only",
631
+ "source": "workflow-call-input"
632
+ },
633
+ "working-directory": {
634
+ "classification": "digest-only",
635
+ "source": "workflow-call-input"
636
+ }
637
+ },
638
+ "expected": {
639
+ "stages": [
640
+ {
641
+ "id": "resolve-channel",
642
+ "required": true
643
+ },
644
+ {
645
+ "id": "build",
646
+ "required": true
647
+ },
648
+ {
649
+ "id": "aggregate",
650
+ "required": true
651
+ }
652
+ ],
653
+ "capabilities": [
654
+ "channel-selection",
655
+ "runtime-selection",
656
+ "build-delegation"
657
+ ],
658
+ "evidence": [
659
+ "nested-controller-receipt",
660
+ "controller-receipt"
661
+ ]
662
+ },
663
+ "digest": "sha256:0ed17d03e410ca1b7726422716522a5e9096eee7badb197401291d53198518ea"
664
+ },
665
+ {
666
+ "schemaVersion": 1,
667
+ "contract": "buildchain.controller-descriptor/v1",
668
+ "id": "shifu-gate-profile-envelope",
669
+ "version": 1,
670
+ "workflow": {
671
+ "id": ".gate-profile",
672
+ "path": ".github/workflows/.gate-profile.yml"
673
+ },
674
+ "inputs": {
675
+ "artifact-name": {
676
+ "classification": "included",
677
+ "source": "workflow-call-input"
678
+ },
679
+ "artifact-retention-days": {
680
+ "classification": "included",
681
+ "source": "workflow-call-input"
682
+ },
683
+ "buildchain-ref": {
684
+ "classification": "included",
685
+ "source": "workflow-call-input"
686
+ },
687
+ "buildchain-repository": {
688
+ "classification": "included",
689
+ "source": "workflow-call-input"
690
+ },
691
+ "gate-command-json": {
692
+ "classification": "digest-only",
693
+ "source": "workflow-call-input"
694
+ },
695
+ "gate-environment-json": {
696
+ "classification": "digest-only",
697
+ "source": "workflow-call-input"
698
+ },
699
+ "gate-plan-command-json": {
700
+ "classification": "digest-only",
701
+ "source": "workflow-call-input"
702
+ },
703
+ "gate-profile": {
704
+ "classification": "included",
705
+ "source": "workflow-call-input"
706
+ },
707
+ "gate-registry": {
708
+ "classification": "included",
709
+ "source": "workflow-call-input"
710
+ },
711
+ "include-advisory": {
712
+ "classification": "included",
713
+ "source": "workflow-call-input"
714
+ },
715
+ "node-version": {
716
+ "classification": "included",
717
+ "source": "workflow-call-input"
718
+ },
719
+ "platforms-json": {
720
+ "classification": "digest-only",
721
+ "source": "workflow-call-input"
722
+ },
723
+ "require-trusted-event": {
724
+ "classification": "included",
725
+ "source": "workflow-call-input"
726
+ },
727
+ "runner-preset": {
728
+ "classification": "digest-only",
729
+ "source": "workflow-call-input"
730
+ },
731
+ "shifu-cache-profile-digest": {
732
+ "classification": "included",
733
+ "source": "workflow-call-input"
734
+ },
735
+ "shifu-cache-profile-ref": {
736
+ "classification": "included",
737
+ "source": "workflow-call-input"
738
+ },
739
+ "source-ref": {
740
+ "classification": "included",
741
+ "source": "workflow-call-input"
742
+ },
743
+ "untrusted-policy": {
744
+ "classification": "included",
745
+ "source": "workflow-call-input"
746
+ },
747
+ "working-directory": {
748
+ "classification": "digest-only",
749
+ "source": "workflow-call-input"
750
+ }
751
+ },
752
+ "expected": {
753
+ "stages": [
754
+ {
755
+ "id": "plan",
756
+ "required": true
757
+ },
758
+ {
759
+ "id": "execute",
760
+ "required": true
761
+ },
762
+ {
763
+ "id": "aggregate",
764
+ "required": true
765
+ }
766
+ ],
767
+ "capabilities": [
768
+ "shifu-gate-profile-delegation"
769
+ ],
770
+ "evidence": [
771
+ "shifu-gate-aggregate",
772
+ "controller-receipt"
773
+ ]
774
+ },
775
+ "semanticBoundary": "References the Shifu aggregate digest and status without copying project Gate identifiers or Gate policy.",
776
+ "digest": "sha256:29569f4b754595792a16742d1c4c63838b54601674a2cb6c96261a72c962dece"
777
+ },
778
+ {
779
+ "schemaVersion": 1,
780
+ "contract": "buildchain.controller-descriptor/v1",
781
+ "id": "web-surface",
782
+ "version": 1,
783
+ "workflow": {
784
+ "id": ".web-surface",
785
+ "path": ".github/workflows/.web-surface.yml"
786
+ },
787
+ "inputs": {
788
+ "artifact-path": {
789
+ "classification": "digest-only",
790
+ "source": "workflow-call-input"
791
+ },
792
+ "aws-region": {
793
+ "classification": "included",
794
+ "source": "workflow-call-input"
795
+ },
796
+ "build-command": {
797
+ "classification": "digest-only",
798
+ "source": "workflow-call-input"
799
+ },
800
+ "buildchain-contract-compatibility-policy": {
801
+ "classification": "included",
802
+ "source": "workflow-call-input"
803
+ },
804
+ "buildchain-contract-drift-issue-mode": {
805
+ "classification": "included",
806
+ "source": "workflow-call-input"
807
+ },
808
+ "buildchain-contract-lock-path": {
809
+ "classification": "digest-only",
810
+ "source": "workflow-call-input"
811
+ },
812
+ "buildchain-ref": {
813
+ "classification": "included",
814
+ "source": "workflow-call-input"
815
+ },
816
+ "buildchain-repository": {
817
+ "classification": "included",
818
+ "source": "workflow-call-input"
819
+ },
820
+ "fail-on-release-pr-error": {
821
+ "classification": "included",
822
+ "source": "workflow-call-input"
823
+ },
824
+ "node-version": {
825
+ "classification": "included",
826
+ "source": "workflow-call-input"
827
+ },
828
+ "preview-apply": {
829
+ "classification": "included",
830
+ "source": "workflow-call-input"
831
+ },
832
+ "preview-aws-role-arn": {
833
+ "classification": "digest-only",
834
+ "source": "workflow-call-input"
835
+ },
836
+ "preview-cleanup-apply": {
837
+ "classification": "included",
838
+ "source": "workflow-call-input"
839
+ },
840
+ "preview-comment": {
841
+ "classification": "included",
842
+ "source": "workflow-call-input"
843
+ },
844
+ "preview-environment": {
845
+ "classification": "digest-only",
846
+ "source": "workflow-call-input"
847
+ },
848
+ "production-apply": {
849
+ "classification": "included",
850
+ "source": "workflow-call-input"
851
+ },
852
+ "production-approved": {
853
+ "classification": "included",
854
+ "source": "workflow-call-input"
855
+ },
856
+ "production-aws-role-arn": {
857
+ "classification": "digest-only",
858
+ "source": "workflow-call-input"
859
+ },
860
+ "production-environment": {
861
+ "classification": "digest-only",
862
+ "source": "workflow-call-input"
863
+ },
864
+ "production-release-app-client-id": {
865
+ "classification": "included",
866
+ "source": "workflow-call-input"
867
+ },
868
+ "production-release-app-id": {
869
+ "classification": "included",
870
+ "source": "workflow-call-input"
871
+ },
872
+ "production-release-app-private-key": {
873
+ "classification": "redacted",
874
+ "source": "workflow-call-secret"
875
+ },
876
+ "production-release-branch-channel": {
877
+ "classification": "included",
878
+ "source": "workflow-call-input"
879
+ },
880
+ "production-release-head-prefix": {
881
+ "classification": "included",
882
+ "source": "workflow-call-input"
883
+ },
884
+ "production-release-label": {
885
+ "classification": "included",
886
+ "source": "workflow-call-input"
887
+ },
888
+ "production-release-on-main": {
889
+ "classification": "included",
890
+ "source": "workflow-call-input"
891
+ },
892
+ "production-release-pr-mode": {
893
+ "classification": "included",
894
+ "source": "workflow-call-input"
895
+ },
896
+ "production-release-pr-token": {
897
+ "classification": "redacted",
898
+ "source": "workflow-call-input"
899
+ },
900
+ "release-feedback-actor-privacy": {
901
+ "classification": "included",
902
+ "source": "workflow-call-input"
903
+ },
904
+ "staging-apply": {
905
+ "classification": "included",
906
+ "source": "workflow-call-input"
907
+ },
908
+ "staging-aws-role-arn": {
909
+ "classification": "digest-only",
910
+ "source": "workflow-call-input"
911
+ },
912
+ "staging-environment": {
913
+ "classification": "digest-only",
914
+ "source": "workflow-call-input"
915
+ },
916
+ "verify-command": {
917
+ "classification": "digest-only",
918
+ "source": "workflow-call-input"
919
+ },
920
+ "working-directory": {
921
+ "classification": "digest-only",
922
+ "source": "workflow-call-input"
923
+ }
924
+ },
925
+ "expected": {
926
+ "stages": [
927
+ {
928
+ "id": "resolve-runtime",
929
+ "required": true
930
+ },
931
+ {
932
+ "id": "plan",
933
+ "required": true
934
+ },
935
+ {
936
+ "id": "build",
937
+ "required": false
938
+ },
939
+ {
940
+ "id": "verify",
941
+ "required": false
942
+ },
943
+ {
944
+ "id": "apply",
945
+ "required": false
946
+ },
947
+ {
948
+ "id": "aggregate",
949
+ "required": true
950
+ }
951
+ ],
952
+ "capabilities": [
953
+ "web-build",
954
+ "web-verify",
955
+ "deployment-plan",
956
+ "deployment-apply"
957
+ ],
958
+ "evidence": [
959
+ "web-surface-plan",
960
+ "controller-receipt"
961
+ ]
962
+ },
963
+ "digest": "sha256:09b4d98c400fb12a87b701eedaaefbf4af2fd0c1fb19b8b44c6219c596430e80"
964
+ },
965
+ {
966
+ "schemaVersion": 1,
967
+ "contract": "buildchain.controller-descriptor/v1",
968
+ "id": "publication-artifact",
969
+ "version": 1,
970
+ "workflow": {
971
+ "id": "publication-artifact",
972
+ "path": ".github/workflows/publication-artifact.yml"
973
+ },
974
+ "inputs": {
975
+ "artifact-name": {
976
+ "classification": "included",
977
+ "source": "workflow-call-input"
978
+ },
979
+ "artifact-paths": {
980
+ "classification": "digest-only",
981
+ "source": "workflow-call-input"
982
+ },
983
+ "artifact-retention-days": {
984
+ "classification": "included",
985
+ "source": "workflow-call-input"
986
+ },
987
+ "build-command": {
988
+ "classification": "digest-only",
989
+ "source": "workflow-call-input"
990
+ },
991
+ "buildchain-contract-compatibility-policy": {
992
+ "classification": "included",
993
+ "source": "workflow-call-input"
994
+ },
995
+ "buildchain-contract-drift-issue-mode": {
996
+ "classification": "included",
997
+ "source": "workflow-call-input"
998
+ },
999
+ "buildchain-contract-lock-path": {
1000
+ "classification": "digest-only",
1001
+ "source": "workflow-call-input"
1002
+ },
1003
+ "buildchain-ref": {
1004
+ "classification": "included",
1005
+ "source": "workflow-call-input"
1006
+ },
1007
+ "buildchain-repository": {
1008
+ "classification": "included",
1009
+ "source": "workflow-call-input"
1010
+ },
1011
+ "node-version": {
1012
+ "classification": "included",
1013
+ "source": "workflow-call-input"
1014
+ },
1015
+ "setup-node": {
1016
+ "classification": "included",
1017
+ "source": "workflow-call-input"
1018
+ },
1019
+ "toolchain-command": {
1020
+ "classification": "digest-only",
1021
+ "source": "workflow-call-input"
1022
+ },
1023
+ "toolchain-digest": {
1024
+ "classification": "included",
1025
+ "source": "workflow-call-input"
1026
+ },
1027
+ "toolchain-image": {
1028
+ "classification": "included",
1029
+ "source": "workflow-call-input"
1030
+ },
1031
+ "toolchain-type": {
1032
+ "classification": "included",
1033
+ "source": "workflow-call-input"
1034
+ },
1035
+ "verify-command": {
1036
+ "classification": "digest-only",
1037
+ "source": "workflow-call-input"
1038
+ },
1039
+ "working-directory": {
1040
+ "classification": "digest-only",
1041
+ "source": "workflow-call-input"
1042
+ }
1043
+ },
1044
+ "expected": {
1045
+ "stages": [
1046
+ {
1047
+ "id": "resolve-runtime",
1048
+ "required": true
1049
+ },
1050
+ {
1051
+ "id": "build",
1052
+ "required": true
1053
+ },
1054
+ {
1055
+ "id": "verify",
1056
+ "required": false
1057
+ },
1058
+ {
1059
+ "id": "collect",
1060
+ "required": true
1061
+ },
1062
+ {
1063
+ "id": "aggregate",
1064
+ "required": true
1065
+ }
1066
+ ],
1067
+ "capabilities": [
1068
+ "publication-build",
1069
+ "publication-verify",
1070
+ "artifact-admission"
1071
+ ],
1072
+ "evidence": [
1073
+ "publication-manifest",
1074
+ "publication-passport",
1075
+ "controller-receipt"
1076
+ ]
1077
+ },
1078
+ "digest": "sha256:d09d8f4081e7b5b9296487337206111591eeca6f8d7667e90012ac911c1b71cf"
1079
+ },
1080
+ {
1081
+ "schemaVersion": 1,
1082
+ "contract": "buildchain.controller-descriptor/v1",
1083
+ "id": "paper-release",
1084
+ "version": 1,
1085
+ "workflow": {
1086
+ "id": "paper-release",
1087
+ "path": ".github/workflows/paper-release.yml"
1088
+ },
1089
+ "inputs": {
1090
+ "BUILDCHAIN_PROMOTION_TOKEN": {
1091
+ "classification": "redacted",
1092
+ "source": "workflow-call-secret"
1093
+ },
1094
+ "artifact-name": {
1095
+ "classification": "included",
1096
+ "source": "workflow-call-input"
1097
+ },
1098
+ "artifact-retention-days": {
1099
+ "classification": "included",
1100
+ "source": "workflow-call-input"
1101
+ },
1102
+ "branch-protection-bypass-apps": {
1103
+ "classification": "included",
1104
+ "source": "workflow-call-input"
1105
+ },
1106
+ "branch-protection-bypass-teams": {
1107
+ "classification": "included",
1108
+ "source": "workflow-call-input"
1109
+ },
1110
+ "branch-protection-bypass-users": {
1111
+ "classification": "included",
1112
+ "source": "workflow-call-input"
1113
+ },
1114
+ "build-command": {
1115
+ "classification": "digest-only",
1116
+ "source": "workflow-call-input"
1117
+ },
1118
+ "buildchain-contract-compatibility-policy": {
1119
+ "classification": "included",
1120
+ "source": "workflow-call-input"
1121
+ },
1122
+ "buildchain-contract-drift-issue-mode": {
1123
+ "classification": "included",
1124
+ "source": "workflow-call-input"
1125
+ },
1126
+ "buildchain-contract-lock-path": {
1127
+ "classification": "digest-only",
1128
+ "source": "workflow-call-input"
1129
+ },
1130
+ "buildchain-ref": {
1131
+ "classification": "included",
1132
+ "source": "workflow-call-input"
1133
+ },
1134
+ "buildchain-repository": {
1135
+ "classification": "included",
1136
+ "source": "workflow-call-input"
1137
+ },
1138
+ "dry-run": {
1139
+ "classification": "included",
1140
+ "source": "workflow-call-input"
1141
+ },
1142
+ "github-release": {
1143
+ "classification": "included",
1144
+ "source": "workflow-call-input"
1145
+ },
1146
+ "github-release-notes": {
1147
+ "classification": "digest-only",
1148
+ "source": "workflow-call-input"
1149
+ },
1150
+ "github-release-title": {
1151
+ "classification": "included",
1152
+ "source": "workflow-call-input"
1153
+ },
1154
+ "node-version": {
1155
+ "classification": "included",
1156
+ "source": "workflow-call-input"
1157
+ },
1158
+ "package-name": {
1159
+ "classification": "included",
1160
+ "source": "workflow-call-input"
1161
+ },
1162
+ "publish-dist-tag": {
1163
+ "classification": "included",
1164
+ "source": "workflow-call-input"
1165
+ },
1166
+ "publish-package-set-order": {
1167
+ "classification": "included",
1168
+ "source": "workflow-call-input"
1169
+ },
1170
+ "release-passport-impact-json": {
1171
+ "classification": "digest-only",
1172
+ "source": "workflow-call-input"
1173
+ },
1174
+ "release-passport-output-dir": {
1175
+ "classification": "included",
1176
+ "source": "workflow-call-input"
1177
+ },
1178
+ "release-passport-product-name": {
1179
+ "classification": "included",
1180
+ "source": "workflow-call-input"
1181
+ },
1182
+ "required-status-check": {
1183
+ "classification": "included",
1184
+ "source": "workflow-call-input"
1185
+ },
1186
+ "setup-node": {
1187
+ "classification": "included",
1188
+ "source": "workflow-call-input"
1189
+ },
1190
+ "target-ref": {
1191
+ "classification": "included",
1192
+ "source": "workflow-call-input"
1193
+ },
1194
+ "target-sha": {
1195
+ "classification": "included",
1196
+ "source": "workflow-call-input"
1197
+ },
1198
+ "toolchain-command": {
1199
+ "classification": "digest-only",
1200
+ "source": "workflow-call-input"
1201
+ },
1202
+ "toolchain-digest": {
1203
+ "classification": "included",
1204
+ "source": "workflow-call-input"
1205
+ },
1206
+ "toolchain-image": {
1207
+ "classification": "included",
1208
+ "source": "workflow-call-input"
1209
+ },
1210
+ "toolchain-type": {
1211
+ "classification": "included",
1212
+ "source": "workflow-call-input"
1213
+ },
1214
+ "verify-command": {
1215
+ "classification": "digest-only",
1216
+ "source": "workflow-call-input"
1217
+ },
1218
+ "working-directory": {
1219
+ "classification": "digest-only",
1220
+ "source": "workflow-call-input"
1221
+ }
1222
+ },
1223
+ "expected": {
1224
+ "stages": [
1225
+ {
1226
+ "id": "resolve-runtime",
1227
+ "required": true
1228
+ },
1229
+ {
1230
+ "id": "build",
1231
+ "required": true
1232
+ },
1233
+ {
1234
+ "id": "verify",
1235
+ "required": false
1236
+ },
1237
+ {
1238
+ "id": "collect",
1239
+ "required": true
1240
+ },
1241
+ {
1242
+ "id": "publish",
1243
+ "required": true
1244
+ },
1245
+ {
1246
+ "id": "passport",
1247
+ "required": true
1248
+ },
1249
+ {
1250
+ "id": "aggregate",
1251
+ "required": true
1252
+ }
1253
+ ],
1254
+ "capabilities": [
1255
+ "publication-build",
1256
+ "artifact-admission",
1257
+ "release-publish",
1258
+ "release-passport"
1259
+ ],
1260
+ "evidence": [
1261
+ "publication-manifest",
1262
+ "release-passport",
1263
+ "controller-receipt"
1264
+ ]
1265
+ },
1266
+ "digest": "sha256:726e94ed5353240289700df7f436e9aa4041783738757dfbdef1a6825acb6bfb"
1267
+ },
1268
+ {
1269
+ "schemaVersion": 1,
1270
+ "contract": "buildchain.controller-descriptor/v1",
1271
+ "id": "release-candidate-promotion",
1272
+ "version": 1,
1273
+ "workflow": {
1274
+ "id": "release-candidate-promote",
1275
+ "path": ".github/workflows/release-candidate-promote.yml"
1276
+ },
1277
+ "inputs": {
1278
+ "BUILDCHAIN_ISSUE_APP_ID": {
1279
+ "classification": "redacted",
1280
+ "source": "workflow-call-secret"
1281
+ },
1282
+ "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY": {
1283
+ "classification": "redacted",
1284
+ "source": "workflow-call-secret"
1285
+ },
1286
+ "BUILDCHAIN_ISSUE_TOKEN": {
1287
+ "classification": "redacted",
1288
+ "source": "workflow-call-secret"
1289
+ },
1290
+ "BUILDCHAIN_PROMOTION_TOKEN": {
1291
+ "classification": "redacted",
1292
+ "source": "workflow-call-secret"
1293
+ },
1294
+ "allow-repository": {
1295
+ "classification": "included",
1296
+ "source": "workflow-call-input"
1297
+ },
1298
+ "artifact-name": {
1299
+ "classification": "included",
1300
+ "source": "workflow-call-input"
1301
+ },
1302
+ "artifact-patterns": {
1303
+ "classification": "included",
1304
+ "source": "workflow-call-input"
1305
+ },
1306
+ "branch-protection-bypass-apps": {
1307
+ "classification": "included",
1308
+ "source": "workflow-call-input"
1309
+ },
1310
+ "branch-protection-bypass-teams": {
1311
+ "classification": "included",
1312
+ "source": "workflow-call-input"
1313
+ },
1314
+ "branch-protection-bypass-users": {
1315
+ "classification": "included",
1316
+ "source": "workflow-call-input"
1317
+ },
1318
+ "buildchain-contract-compatibility-policy": {
1319
+ "classification": "included",
1320
+ "source": "workflow-call-input"
1321
+ },
1322
+ "buildchain-contract-drift-issue-mode": {
1323
+ "classification": "included",
1324
+ "source": "workflow-call-input"
1325
+ },
1326
+ "buildchain-contract-lock-path": {
1327
+ "classification": "digest-only",
1328
+ "source": "workflow-call-input"
1329
+ },
1330
+ "buildchain-issue-app-id": {
1331
+ "classification": "redacted",
1332
+ "source": "workflow-call-secret"
1333
+ },
1334
+ "buildchain-issue-app-private-key": {
1335
+ "classification": "redacted",
1336
+ "source": "workflow-call-secret"
1337
+ },
1338
+ "buildchain-issue-token": {
1339
+ "classification": "redacted",
1340
+ "source": "workflow-call-secret"
1341
+ },
1342
+ "buildchain-ref": {
1343
+ "classification": "included",
1344
+ "source": "workflow-call-input"
1345
+ },
1346
+ "buildchain-repository": {
1347
+ "classification": "included",
1348
+ "source": "workflow-call-input"
1349
+ },
1350
+ "channel": {
1351
+ "classification": "included",
1352
+ "source": "workflow-call-input"
1353
+ },
1354
+ "dry-run": {
1355
+ "classification": "included",
1356
+ "source": "workflow-call-input"
1357
+ },
1358
+ "github-release": {
1359
+ "classification": "included",
1360
+ "source": "workflow-call-input"
1361
+ },
1362
+ "github-release-notes": {
1363
+ "classification": "digest-only",
1364
+ "source": "workflow-call-input"
1365
+ },
1366
+ "github-release-title": {
1367
+ "classification": "included",
1368
+ "source": "workflow-call-input"
1369
+ },
1370
+ "package-manager": {
1371
+ "classification": "included",
1372
+ "source": "workflow-call-input"
1373
+ },
1374
+ "publish-artifact-kind": {
1375
+ "classification": "included",
1376
+ "source": "workflow-call-input"
1377
+ },
1378
+ "publish-command": {
1379
+ "classification": "digest-only",
1380
+ "source": "workflow-call-input"
1381
+ },
1382
+ "publish-dist-tag": {
1383
+ "classification": "included",
1384
+ "source": "workflow-call-input"
1385
+ },
1386
+ "publish-mode": {
1387
+ "classification": "included",
1388
+ "source": "workflow-call-input"
1389
+ },
1390
+ "publish-package-main": {
1391
+ "classification": "included",
1392
+ "source": "workflow-call-input"
1393
+ },
1394
+ "publish-package-set-order": {
1395
+ "classification": "included",
1396
+ "source": "workflow-call-input"
1397
+ },
1398
+ "publish-required-artifacts-json": {
1399
+ "classification": "digest-only",
1400
+ "source": "workflow-call-input"
1401
+ },
1402
+ "publish-target": {
1403
+ "classification": "included",
1404
+ "source": "workflow-call-input"
1405
+ },
1406
+ "release-candidate-workflow-file": {
1407
+ "classification": "included",
1408
+ "source": "workflow-call-input"
1409
+ },
1410
+ "release-candidate-workflow-name": {
1411
+ "classification": "included",
1412
+ "source": "workflow-call-input"
1413
+ },
1414
+ "release-passport": {
1415
+ "classification": "included",
1416
+ "source": "workflow-call-input"
1417
+ },
1418
+ "release-passport-buildchain-self-kfd": {
1419
+ "classification": "included",
1420
+ "source": "workflow-call-input"
1421
+ },
1422
+ "release-passport-impact-json": {
1423
+ "classification": "digest-only",
1424
+ "source": "workflow-call-input"
1425
+ },
1426
+ "release-passport-kfd-1-witness-jsons": {
1427
+ "classification": "digest-only",
1428
+ "source": "workflow-call-input"
1429
+ },
1430
+ "release-passport-kfd-2-claim-jsons": {
1431
+ "classification": "digest-only",
1432
+ "source": "workflow-call-input"
1433
+ },
1434
+ "release-passport-kfd-3-artifact-verify-command": {
1435
+ "classification": "digest-only",
1436
+ "source": "workflow-call-input"
1437
+ },
1438
+ "release-passport-kfd-3-artifact-witness-jsons": {
1439
+ "classification": "digest-only",
1440
+ "source": "workflow-call-input"
1441
+ },
1442
+ "release-passport-kfd-3-prebuild-witness-jsons": {
1443
+ "classification": "digest-only",
1444
+ "source": "workflow-call-input"
1445
+ },
1446
+ "release-passport-output-dir": {
1447
+ "classification": "included",
1448
+ "source": "workflow-call-input"
1449
+ },
1450
+ "release-passport-platform-manifest-paths": {
1451
+ "classification": "digest-only",
1452
+ "source": "workflow-call-input"
1453
+ },
1454
+ "release-passport-product-name": {
1455
+ "classification": "included",
1456
+ "source": "workflow-call-input"
1457
+ },
1458
+ "required-artifact-count": {
1459
+ "classification": "included",
1460
+ "source": "workflow-call-input"
1461
+ },
1462
+ "required-status-check": {
1463
+ "classification": "included",
1464
+ "source": "workflow-call-input"
1465
+ },
1466
+ "runner-preset": {
1467
+ "classification": "digest-only",
1468
+ "source": "workflow-call-input"
1469
+ },
1470
+ "target-ref": {
1471
+ "classification": "included",
1472
+ "source": "workflow-call-input"
1473
+ },
1474
+ "target-sha": {
1475
+ "classification": "included",
1476
+ "source": "workflow-call-input"
1477
+ },
1478
+ "trusted-publishing": {
1479
+ "classification": "included",
1480
+ "source": "workflow-call-input"
1481
+ }
1482
+ },
1483
+ "expected": {
1484
+ "stages": [
1485
+ {
1486
+ "id": "preflight",
1487
+ "required": true
1488
+ },
1489
+ {
1490
+ "id": "admit-release-candidate",
1491
+ "required": true
1492
+ },
1493
+ {
1494
+ "id": "publish",
1495
+ "required": true
1496
+ },
1497
+ {
1498
+ "id": "passport",
1499
+ "required": true
1500
+ },
1501
+ {
1502
+ "id": "aggregate",
1503
+ "required": true
1504
+ }
1505
+ ],
1506
+ "capabilities": [
1507
+ "promotion-preflight",
1508
+ "artifact-admission",
1509
+ "publish-transaction",
1510
+ "release-passport"
1511
+ ],
1512
+ "evidence": [
1513
+ "release-candidate-passport",
1514
+ "publish-evidence",
1515
+ "release-passport",
1516
+ "controller-receipt"
1517
+ ]
1518
+ },
1519
+ "digest": "sha256:f5a295b2d3e8f20ba46c611acaed71ee7ab5cd1ecaa6e7504b4344493271a803"
1520
+ },
1521
+ {
1522
+ "schemaVersion": 1,
1523
+ "contract": "buildchain.controller-descriptor/v1",
1524
+ "id": "release-propagation",
1525
+ "version": 1,
1526
+ "workflow": {
1527
+ "id": "release-propagation",
1528
+ "path": ".github/workflows/release-propagation.yml"
1529
+ },
1530
+ "inputs": {
1531
+ "buildchain-ref": {
1532
+ "classification": "included",
1533
+ "source": "workflow-call-input"
1534
+ },
1535
+ "buildchain-repository": {
1536
+ "classification": "included",
1537
+ "source": "workflow-call-input"
1538
+ },
1539
+ "downstream-base-ref": {
1540
+ "classification": "included",
1541
+ "source": "workflow-call-input"
1542
+ },
1543
+ "downstream-branch": {
1544
+ "classification": "included",
1545
+ "source": "workflow-call-input"
1546
+ },
1547
+ "downstream-repository": {
1548
+ "classification": "included",
1549
+ "source": "workflow-call-input"
1550
+ },
1551
+ "downstream-target": {
1552
+ "classification": "included",
1553
+ "source": "workflow-call-input"
1554
+ },
1555
+ "dry-run": {
1556
+ "classification": "included",
1557
+ "source": "workflow-call-input"
1558
+ },
1559
+ "graph-json": {
1560
+ "classification": "digest-only",
1561
+ "source": "workflow-call-input"
1562
+ },
1563
+ "lock-path": {
1564
+ "classification": "digest-only",
1565
+ "source": "workflow-call-input"
1566
+ },
1567
+ "pr-body": {
1568
+ "classification": "digest-only",
1569
+ "source": "workflow-call-input"
1570
+ },
1571
+ "pr-title": {
1572
+ "classification": "included",
1573
+ "source": "workflow-call-input"
1574
+ },
1575
+ "propagation-token": {
1576
+ "classification": "redacted",
1577
+ "source": "workflow-call-secret"
1578
+ },
1579
+ "source-node": {
1580
+ "classification": "included",
1581
+ "source": "workflow-call-input"
1582
+ },
1583
+ "upstream-release-json": {
1584
+ "classification": "digest-only",
1585
+ "source": "workflow-call-input"
1586
+ }
1587
+ },
1588
+ "expected": {
1589
+ "stages": [
1590
+ {
1591
+ "id": "resolve-runtime",
1592
+ "required": true
1593
+ },
1594
+ {
1595
+ "id": "plan",
1596
+ "required": true
1597
+ },
1598
+ {
1599
+ "id": "write-lock",
1600
+ "required": true
1601
+ },
1602
+ {
1603
+ "id": "open-pr",
1604
+ "required": false
1605
+ },
1606
+ {
1607
+ "id": "aggregate",
1608
+ "required": true
1609
+ }
1610
+ ],
1611
+ "capabilities": [
1612
+ "release-propagation-plan",
1613
+ "downstream-lock",
1614
+ "pull-request-handoff"
1615
+ ],
1616
+ "evidence": [
1617
+ "propagation-plan",
1618
+ "propagation-lock",
1619
+ "controller-receipt"
1620
+ ]
1621
+ },
1622
+ "digest": "sha256:9b9f9a2320c4349903d72ee46e329211b5538ed5ebebaa93559df4eafb835997"
1623
+ }
1624
+ ],
1625
+ "digest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363"
1626
+ }