@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
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "2.12.4",
7
+ "version": "2.12.5-alpha.2",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v2",
@@ -50,7 +50,7 @@
50
50
  "retryable GitHub fallback fetches use a bounded attempt budget before exact source SHA and tree verification"
51
51
  ],
52
52
  "breakingDigest": "sha256:a6a35370d6b0d0f46e1b2712dcc01961fe53c2febde95409a27a485c10a36650",
53
- "auditDigest": "sha256:62745b34c90d223578b7e6d4121cd0c7d16f4d43f44318ee71e111a52d2139a0"
53
+ "auditDigest": "sha256:055310235f5bdb9a7c3fd44d27083d055687025fdd1bcb851d3de3bd4b2f6805"
54
54
  },
55
55
  {
56
56
  "contractVersion": 1,
@@ -89,7 +89,7 @@
89
89
  "alpha and stable channel selections use separate consumer contract locks by default"
90
90
  ],
91
91
  "breakingDigest": "sha256:c4597dfa89e1a58f1023905092b849644f5c080abf150aeba9c7e1cd5ed43962",
92
- "auditDigest": "sha256:8ad1e931c901428daa8aa20d15ed66c58976666c646a88171f37be550788878f"
92
+ "auditDigest": "sha256:00f575bb160b851361927a998b4dab66f7eade003f80d1fa5bc72bb68328835c"
93
93
  },
94
94
  {
95
95
  "contractVersion": 1,
@@ -159,7 +159,7 @@
159
159
  "GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
160
160
  ],
161
161
  "breakingDigest": "sha256:6dbae32ce3d7aab3be6957065105af574794581847b7637314dad45f5349c919",
162
- "auditDigest": "sha256:4de3e10012429d18f066e453a49a470ae889612143bca56327649d6cacd546cf"
162
+ "auditDigest": "sha256:692807dec7da9232686143bc2ea01c10ddc3770d3c70b56c0f34042882e141a5"
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:0bf34cb451ac3274e5cab5dc239643e3311e686b4cdc6ad628fcb7e8e89b4773"
206
+ "auditDigest": "sha256:4ead2855fba29e007ae3add5a773a511fb2ddf5cb9b895243b351e2ecef02869"
207
207
  },
208
208
  {
209
209
  "contractVersion": 1,
@@ -328,7 +328,7 @@
328
328
  "release-state SHA is recorded as a durable audit entrance"
329
329
  ],
330
330
  "breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
331
- "auditDigest": "sha256:54c23c984ab1e63f8fa5310f0106927ea63c6b069219970b9145c31558c47db0"
331
+ "auditDigest": "sha256:32fd54ceb8e1a0219918e7744797e3a1bf3f614bb8498028209275b98304ac5b"
332
332
  },
333
333
  {
334
334
  "contractVersion": 1,
@@ -377,7 +377,7 @@
377
377
  "prose-only public claims downgrade the release trust passport audit"
378
378
  ],
379
379
  "breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
380
- "auditDigest": "sha256:54c23c984ab1e63f8fa5310f0106927ea63c6b069219970b9145c31558c47db0"
380
+ "auditDigest": "sha256:32fd54ceb8e1a0219918e7744797e3a1bf3f614bb8498028209275b98304ac5b"
381
381
  },
382
382
  {
383
383
  "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:6f93795854b6d1048d88ca03ec050745e2e1899251dd68a0f625a63c7db1ac83"
440
+ "auditDigest": "sha256:46b22f2970d23ce444c5ae4ecedc2d3d99e65aab8a78af671ab40b847d7e956c"
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:a4d5ae2cf51f16cc1c1ab9d344ea044e881e3a7653ca4ae4aff1f3e95d556cf9"
530
+ "auditDigest": "sha256:89cf8c7d2a1134e747e4456c59c8089132ff4b2be81c6c4de7e485db4427e953"
531
531
  },
532
532
  {
533
533
  "contractVersion": 1,
@@ -549,9 +549,2005 @@
549
549
  "agents can discover supported Node APIs without importing internal file paths"
550
550
  ],
551
551
  "breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
552
- "auditDigest": "sha256:0b025f14bab42fd92705ce4e63e3b1881a70f43ee903eaa4e0d853b23e46ade3"
552
+ "auditDigest": "sha256:3bcfa43a81ab6b7cab1a82deee789d412978df48496f8cc73b6edef71a38569a"
553
+ },
554
+ {
555
+ "contractVersion": 1,
556
+ "stability": "stable",
557
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
558
+ "id": "controller:source-check",
559
+ "kind": "controller",
560
+ "path": ".github/workflows/check.yml",
561
+ "requiredInputs": [],
562
+ "requiredOutputs": [
563
+ "controller-plan-json",
564
+ "controller-plan-digest",
565
+ "controller-receipt-json",
566
+ "controller-receipt-digest",
567
+ "controller-receipt-status"
568
+ ],
569
+ "breakingDefaults": {
570
+ "evidenceContract": "buildchain.controller-evidence/v1",
571
+ "descriptorVersion": 1,
572
+ "workflowPath": ".github/workflows/check.yml",
573
+ "requiredStages": [
574
+ "resolve-runtime",
575
+ "checkout-source",
576
+ "install",
577
+ "check",
578
+ "aggregate"
579
+ ],
580
+ "capabilities": [
581
+ "source-acceptance",
582
+ "lifecycle-check"
583
+ ],
584
+ "evidenceRequirements": [
585
+ "lifecycle-manifest",
586
+ "lifecycle-summary",
587
+ "controller-receipt"
588
+ ],
589
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
590
+ },
591
+ "optionalInputs": [
592
+ "buildchain-ref",
593
+ "buildchain-repository",
594
+ "mode",
595
+ "node-version",
596
+ "require-version-state",
597
+ "upload-artifacts",
598
+ "working-directory"
599
+ ],
600
+ "controllerDescriptor": {
601
+ "contract": "buildchain.controller-descriptor/v1",
602
+ "digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48",
603
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
604
+ "inputClassifications": {
605
+ "buildchain-ref": {
606
+ "classification": "included",
607
+ "source": "workflow-call-input"
608
+ },
609
+ "buildchain-repository": {
610
+ "classification": "included",
611
+ "source": "workflow-call-input"
612
+ },
613
+ "mode": {
614
+ "classification": "included",
615
+ "source": "workflow-call-input"
616
+ },
617
+ "node-version": {
618
+ "classification": "included",
619
+ "source": "workflow-call-input"
620
+ },
621
+ "require-version-state": {
622
+ "classification": "included",
623
+ "source": "workflow-call-input"
624
+ },
625
+ "upload-artifacts": {
626
+ "classification": "included",
627
+ "source": "workflow-call-input"
628
+ },
629
+ "working-directory": {
630
+ "classification": "digest-only",
631
+ "source": "workflow-call-input"
632
+ }
633
+ }
634
+ },
635
+ "guarantees": [
636
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
637
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
638
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
639
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
640
+ ],
641
+ "breakingDigest": "sha256:d4bd0f2a1921bfed71a4d9104d45934555bde74a5c189f93ad79f37074c02b87",
642
+ "auditDigest": "sha256:f6d0e94a57d637247b271a9f3c084d679234f442806a8ec6de86065f1fc6f9d2"
643
+ },
644
+ {
645
+ "contractVersion": 1,
646
+ "stability": "stable",
647
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
648
+ "id": "controller:build-lifecycle",
649
+ "kind": "controller",
650
+ "path": ".github/workflows/.build.yml",
651
+ "requiredInputs": [],
652
+ "requiredOutputs": [
653
+ "controller-plan-json",
654
+ "controller-plan-digest",
655
+ "controller-receipt-json",
656
+ "controller-receipt-digest",
657
+ "controller-receipt-status"
658
+ ],
659
+ "breakingDefaults": {
660
+ "evidenceContract": "buildchain.controller-evidence/v1",
661
+ "descriptorVersion": 1,
662
+ "workflowPath": ".github/workflows/.build.yml",
663
+ "requiredStages": [
664
+ "resolve-runtime",
665
+ "resolve-source",
666
+ "build",
667
+ "verify",
668
+ "aggregate"
669
+ ],
670
+ "capabilities": [
671
+ "source-lock",
672
+ "lifecycle-build",
673
+ "lifecycle-verify",
674
+ "artifact-admission"
675
+ ],
676
+ "evidenceRequirements": [
677
+ "platform-manifests",
678
+ "build-summary",
679
+ "controller-receipt"
680
+ ],
681
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
682
+ },
683
+ "optionalInputs": [
684
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
685
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
686
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN",
687
+ "artifact-name",
688
+ "artifact-name-template",
689
+ "artifact-paths",
690
+ "artifact-relay-s3-bucket",
691
+ "artifact-relay-s3-download-role-arn",
692
+ "artifact-relay-s3-oidc-audience",
693
+ "artifact-relay-s3-prefix",
694
+ "artifact-relay-s3-region",
695
+ "artifact-relay-s3-role-arn",
696
+ "artifact-relay-s3-upload-role-arn",
697
+ "artifact-retention-days",
698
+ "artifact-transfer-mode",
699
+ "build-command",
700
+ "buildchain-contract-compatibility-policy",
701
+ "buildchain-contract-drift-issue-mode",
702
+ "buildchain-contract-lock-path",
703
+ "buildchain-ref",
704
+ "buildchain-repository",
705
+ "cargo-registry-index",
706
+ "checkout-cache-fallback",
707
+ "checkout-cache-fetch-attempts",
708
+ "checkout-cache-github-timeout-seconds",
709
+ "checkout-cache-mirror-url-template",
710
+ "checkout-cache-mode",
711
+ "checkout-cache-reference-repository-template",
712
+ "checkout-cache-timeout-seconds",
713
+ "expected-artifacts-json",
714
+ "gate-profile-aggregate-json",
715
+ "install-command",
716
+ "linux-container-image",
717
+ "linux-container-preset",
718
+ "node-version",
719
+ "platforms-json",
720
+ "process-sample-interval-ms",
721
+ "process-summary-path",
722
+ "publish-anchor-request-json",
723
+ "publish-channel",
724
+ "publish-refs-json",
725
+ "publish-registry",
726
+ "publish-source-ref",
727
+ "release-candidate",
728
+ "requested-parallelism",
729
+ "require-build",
730
+ "require-install",
731
+ "require-trusted-event",
732
+ "require-verify",
733
+ "runner-preset",
734
+ "rust-toolchain",
735
+ "rustup-dist-server",
736
+ "rustup-update-root",
737
+ "sample-process-tree",
738
+ "setup-node",
739
+ "setup-rust",
740
+ "shifu-cache-profile-digest",
741
+ "shifu-cache-profile-ref",
742
+ "untrusted-policy",
743
+ "verify-command",
744
+ "working-directory"
745
+ ],
746
+ "controllerDescriptor": {
747
+ "contract": "buildchain.controller-descriptor/v1",
748
+ "digest": "sha256:ce2ada5daf86cbe6e58327c190fdfe07510952cc8820cf445eb4342daae4da18",
749
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
750
+ "inputClassifications": {
751
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
752
+ "classification": "redacted",
753
+ "source": "workflow-call-secret"
754
+ },
755
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN": {
756
+ "classification": "redacted",
757
+ "source": "workflow-call-secret"
758
+ },
759
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN": {
760
+ "classification": "redacted",
761
+ "source": "workflow-call-secret"
762
+ },
763
+ "artifact-name": {
764
+ "classification": "included",
765
+ "source": "workflow-call-input"
766
+ },
767
+ "artifact-name-template": {
768
+ "classification": "included",
769
+ "source": "workflow-call-input"
770
+ },
771
+ "artifact-paths": {
772
+ "classification": "digest-only",
773
+ "source": "workflow-call-input"
774
+ },
775
+ "artifact-relay-s3-bucket": {
776
+ "classification": "digest-only",
777
+ "source": "workflow-call-input"
778
+ },
779
+ "artifact-relay-s3-download-role-arn": {
780
+ "classification": "digest-only",
781
+ "source": "workflow-call-input"
782
+ },
783
+ "artifact-relay-s3-oidc-audience": {
784
+ "classification": "included",
785
+ "source": "workflow-call-input"
786
+ },
787
+ "artifact-relay-s3-prefix": {
788
+ "classification": "digest-only",
789
+ "source": "workflow-call-input"
790
+ },
791
+ "artifact-relay-s3-region": {
792
+ "classification": "digest-only",
793
+ "source": "workflow-call-input"
794
+ },
795
+ "artifact-relay-s3-role-arn": {
796
+ "classification": "digest-only",
797
+ "source": "workflow-call-input"
798
+ },
799
+ "artifact-relay-s3-upload-role-arn": {
800
+ "classification": "digest-only",
801
+ "source": "workflow-call-input"
802
+ },
803
+ "artifact-retention-days": {
804
+ "classification": "included",
805
+ "source": "workflow-call-input"
806
+ },
807
+ "artifact-transfer-mode": {
808
+ "classification": "included",
809
+ "source": "workflow-call-input"
810
+ },
811
+ "build-command": {
812
+ "classification": "digest-only",
813
+ "source": "workflow-call-input"
814
+ },
815
+ "buildchain-contract-compatibility-policy": {
816
+ "classification": "included",
817
+ "source": "workflow-call-input"
818
+ },
819
+ "buildchain-contract-drift-issue-mode": {
820
+ "classification": "included",
821
+ "source": "workflow-call-input"
822
+ },
823
+ "buildchain-contract-lock-path": {
824
+ "classification": "digest-only",
825
+ "source": "workflow-call-input"
826
+ },
827
+ "buildchain-ref": {
828
+ "classification": "included",
829
+ "source": "workflow-call-input"
830
+ },
831
+ "buildchain-repository": {
832
+ "classification": "included",
833
+ "source": "workflow-call-input"
834
+ },
835
+ "cargo-registry-index": {
836
+ "classification": "digest-only",
837
+ "source": "workflow-call-input"
838
+ },
839
+ "checkout-cache-fallback": {
840
+ "classification": "digest-only",
841
+ "source": "workflow-call-input"
842
+ },
843
+ "checkout-cache-fetch-attempts": {
844
+ "classification": "digest-only",
845
+ "source": "workflow-call-input"
846
+ },
847
+ "checkout-cache-github-timeout-seconds": {
848
+ "classification": "digest-only",
849
+ "source": "workflow-call-input"
850
+ },
851
+ "checkout-cache-mirror-url-template": {
852
+ "classification": "digest-only",
853
+ "source": "workflow-call-input"
854
+ },
855
+ "checkout-cache-mode": {
856
+ "classification": "digest-only",
857
+ "source": "workflow-call-input"
858
+ },
859
+ "checkout-cache-reference-repository-template": {
860
+ "classification": "digest-only",
861
+ "source": "workflow-call-input"
862
+ },
863
+ "checkout-cache-timeout-seconds": {
864
+ "classification": "digest-only",
865
+ "source": "workflow-call-input"
866
+ },
867
+ "expected-artifacts-json": {
868
+ "classification": "digest-only",
869
+ "source": "workflow-call-input"
870
+ },
871
+ "gate-profile-aggregate-json": {
872
+ "classification": "digest-only",
873
+ "source": "workflow-call-input"
874
+ },
875
+ "install-command": {
876
+ "classification": "digest-only",
877
+ "source": "workflow-call-input"
878
+ },
879
+ "linux-container-image": {
880
+ "classification": "digest-only",
881
+ "source": "workflow-call-input"
882
+ },
883
+ "linux-container-preset": {
884
+ "classification": "included",
885
+ "source": "workflow-call-input"
886
+ },
887
+ "node-version": {
888
+ "classification": "included",
889
+ "source": "workflow-call-input"
890
+ },
891
+ "platforms-json": {
892
+ "classification": "digest-only",
893
+ "source": "workflow-call-input"
894
+ },
895
+ "process-sample-interval-ms": {
896
+ "classification": "included",
897
+ "source": "workflow-call-input"
898
+ },
899
+ "process-summary-path": {
900
+ "classification": "digest-only",
901
+ "source": "workflow-call-input"
902
+ },
903
+ "publish-anchor-request-json": {
904
+ "classification": "digest-only",
905
+ "source": "workflow-call-input"
906
+ },
907
+ "publish-channel": {
908
+ "classification": "included",
909
+ "source": "workflow-call-input"
910
+ },
911
+ "publish-refs-json": {
912
+ "classification": "digest-only",
913
+ "source": "workflow-call-input"
914
+ },
915
+ "publish-registry": {
916
+ "classification": "included",
917
+ "source": "workflow-call-input"
918
+ },
919
+ "publish-source-ref": {
920
+ "classification": "included",
921
+ "source": "workflow-call-input"
922
+ },
923
+ "release-candidate": {
924
+ "classification": "included",
925
+ "source": "workflow-call-input"
926
+ },
927
+ "requested-parallelism": {
928
+ "classification": "included",
929
+ "source": "workflow-call-input"
930
+ },
931
+ "require-build": {
932
+ "classification": "included",
933
+ "source": "workflow-call-input"
934
+ },
935
+ "require-install": {
936
+ "classification": "included",
937
+ "source": "workflow-call-input"
938
+ },
939
+ "require-trusted-event": {
940
+ "classification": "included",
941
+ "source": "workflow-call-input"
942
+ },
943
+ "require-verify": {
944
+ "classification": "included",
945
+ "source": "workflow-call-input"
946
+ },
947
+ "runner-preset": {
948
+ "classification": "digest-only",
949
+ "source": "workflow-call-input"
950
+ },
951
+ "rust-toolchain": {
952
+ "classification": "included",
953
+ "source": "workflow-call-input"
954
+ },
955
+ "rustup-dist-server": {
956
+ "classification": "included",
957
+ "source": "workflow-call-input"
958
+ },
959
+ "rustup-update-root": {
960
+ "classification": "included",
961
+ "source": "workflow-call-input"
962
+ },
963
+ "sample-process-tree": {
964
+ "classification": "included",
965
+ "source": "workflow-call-input"
966
+ },
967
+ "setup-node": {
968
+ "classification": "included",
969
+ "source": "workflow-call-input"
970
+ },
971
+ "setup-rust": {
972
+ "classification": "included",
973
+ "source": "workflow-call-input"
974
+ },
975
+ "shifu-cache-profile-digest": {
976
+ "classification": "included",
977
+ "source": "workflow-call-input"
978
+ },
979
+ "shifu-cache-profile-ref": {
980
+ "classification": "included",
981
+ "source": "workflow-call-input"
982
+ },
983
+ "untrusted-policy": {
984
+ "classification": "included",
985
+ "source": "workflow-call-input"
986
+ },
987
+ "verify-command": {
988
+ "classification": "digest-only",
989
+ "source": "workflow-call-input"
990
+ },
991
+ "working-directory": {
992
+ "classification": "digest-only",
993
+ "source": "workflow-call-input"
994
+ }
995
+ }
996
+ },
997
+ "guarantees": [
998
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
999
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
1000
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1001
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
1002
+ ],
1003
+ "breakingDigest": "sha256:e264a79f9f399038c2fcfd21e4168c68c2e1485ee5c651c02242a02b622ac2be",
1004
+ "auditDigest": "sha256:055310235f5bdb9a7c3fd44d27083d055687025fdd1bcb851d3de3bd4b2f6805"
1005
+ },
1006
+ {
1007
+ "contractVersion": 1,
1008
+ "stability": "stable",
1009
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1010
+ "id": "controller:build-channel-router",
1011
+ "kind": "controller",
1012
+ "path": ".github/workflows/build.yml",
1013
+ "requiredInputs": [],
1014
+ "requiredOutputs": [
1015
+ "controller-plan-json",
1016
+ "controller-plan-digest",
1017
+ "controller-receipt-json",
1018
+ "controller-receipt-digest",
1019
+ "controller-receipt-status"
1020
+ ],
1021
+ "breakingDefaults": {
1022
+ "evidenceContract": "buildchain.controller-evidence/v1",
1023
+ "descriptorVersion": 1,
1024
+ "workflowPath": ".github/workflows/build.yml",
1025
+ "requiredStages": [
1026
+ "resolve-channel",
1027
+ "build",
1028
+ "aggregate"
1029
+ ],
1030
+ "capabilities": [
1031
+ "channel-selection",
1032
+ "runtime-selection",
1033
+ "build-delegation"
1034
+ ],
1035
+ "evidenceRequirements": [
1036
+ "nested-controller-receipt",
1037
+ "controller-receipt"
1038
+ ],
1039
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
1040
+ },
1041
+ "optionalInputs": [
1042
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
1043
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
1044
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN",
1045
+ "artifact-name",
1046
+ "artifact-name-template",
1047
+ "artifact-paths",
1048
+ "artifact-relay-s3-bucket",
1049
+ "artifact-relay-s3-download-role-arn",
1050
+ "artifact-relay-s3-oidc-audience",
1051
+ "artifact-relay-s3-prefix",
1052
+ "artifact-relay-s3-region",
1053
+ "artifact-relay-s3-role-arn",
1054
+ "artifact-relay-s3-upload-role-arn",
1055
+ "artifact-retention-days",
1056
+ "artifact-transfer-mode",
1057
+ "build-command",
1058
+ "buildchain-alpha-contract-lock-path",
1059
+ "buildchain-channel",
1060
+ "buildchain-contract-compatibility-policy",
1061
+ "buildchain-contract-drift-issue-mode",
1062
+ "buildchain-contract-lock-path",
1063
+ "buildchain-ref",
1064
+ "buildchain-repository",
1065
+ "buildchain-stable-contract-lock-path",
1066
+ "cargo-registry-index",
1067
+ "checkout-cache-fallback",
1068
+ "checkout-cache-fetch-attempts",
1069
+ "checkout-cache-github-timeout-seconds",
1070
+ "checkout-cache-mirror-url-template",
1071
+ "checkout-cache-mode",
1072
+ "checkout-cache-reference-repository-template",
1073
+ "checkout-cache-timeout-seconds",
1074
+ "expected-artifacts-json",
1075
+ "gate-profile-aggregate-json",
1076
+ "install-command",
1077
+ "linux-container-image",
1078
+ "linux-container-preset",
1079
+ "node-version",
1080
+ "platforms-json",
1081
+ "process-sample-interval-ms",
1082
+ "process-summary-path",
1083
+ "publish-anchor-request-json",
1084
+ "publish-channel",
1085
+ "publish-refs-json",
1086
+ "publish-registry",
1087
+ "publish-source-ref",
1088
+ "release-candidate",
1089
+ "requested-parallelism",
1090
+ "require-build",
1091
+ "require-install",
1092
+ "require-trusted-event",
1093
+ "require-verify",
1094
+ "runner-preset",
1095
+ "rust-toolchain",
1096
+ "rustup-dist-server",
1097
+ "rustup-update-root",
1098
+ "sample-process-tree",
1099
+ "setup-node",
1100
+ "setup-rust",
1101
+ "shifu-cache-profile-digest",
1102
+ "shifu-cache-profile-ref",
1103
+ "untrusted-policy",
1104
+ "verify-command",
1105
+ "working-directory"
1106
+ ],
1107
+ "controllerDescriptor": {
1108
+ "contract": "buildchain.controller-descriptor/v1",
1109
+ "digest": "sha256:0ed17d03e410ca1b7726422716522a5e9096eee7badb197401291d53198518ea",
1110
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
1111
+ "inputClassifications": {
1112
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
1113
+ "classification": "redacted",
1114
+ "source": "workflow-call-secret"
1115
+ },
1116
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN": {
1117
+ "classification": "redacted",
1118
+ "source": "workflow-call-secret"
1119
+ },
1120
+ "BUILDCHAIN_ARTIFACT_RELAY_S3_UPLOAD_ROLE_ARN": {
1121
+ "classification": "redacted",
1122
+ "source": "workflow-call-secret"
1123
+ },
1124
+ "artifact-name": {
1125
+ "classification": "included",
1126
+ "source": "workflow-call-input"
1127
+ },
1128
+ "artifact-name-template": {
1129
+ "classification": "included",
1130
+ "source": "workflow-call-input"
1131
+ },
1132
+ "artifact-paths": {
1133
+ "classification": "digest-only",
1134
+ "source": "workflow-call-input"
1135
+ },
1136
+ "artifact-relay-s3-bucket": {
1137
+ "classification": "digest-only",
1138
+ "source": "workflow-call-input"
1139
+ },
1140
+ "artifact-relay-s3-download-role-arn": {
1141
+ "classification": "digest-only",
1142
+ "source": "workflow-call-input"
1143
+ },
1144
+ "artifact-relay-s3-oidc-audience": {
1145
+ "classification": "included",
1146
+ "source": "workflow-call-input"
1147
+ },
1148
+ "artifact-relay-s3-prefix": {
1149
+ "classification": "digest-only",
1150
+ "source": "workflow-call-input"
1151
+ },
1152
+ "artifact-relay-s3-region": {
1153
+ "classification": "digest-only",
1154
+ "source": "workflow-call-input"
1155
+ },
1156
+ "artifact-relay-s3-role-arn": {
1157
+ "classification": "digest-only",
1158
+ "source": "workflow-call-input"
1159
+ },
1160
+ "artifact-relay-s3-upload-role-arn": {
1161
+ "classification": "digest-only",
1162
+ "source": "workflow-call-input"
1163
+ },
1164
+ "artifact-retention-days": {
1165
+ "classification": "included",
1166
+ "source": "workflow-call-input"
1167
+ },
1168
+ "artifact-transfer-mode": {
1169
+ "classification": "included",
1170
+ "source": "workflow-call-input"
1171
+ },
1172
+ "build-command": {
1173
+ "classification": "digest-only",
1174
+ "source": "workflow-call-input"
1175
+ },
1176
+ "buildchain-alpha-contract-lock-path": {
1177
+ "classification": "digest-only",
1178
+ "source": "workflow-call-input"
1179
+ },
1180
+ "buildchain-channel": {
1181
+ "classification": "included",
1182
+ "source": "workflow-call-input"
1183
+ },
1184
+ "buildchain-contract-compatibility-policy": {
1185
+ "classification": "included",
1186
+ "source": "workflow-call-input"
1187
+ },
1188
+ "buildchain-contract-drift-issue-mode": {
1189
+ "classification": "included",
1190
+ "source": "workflow-call-input"
1191
+ },
1192
+ "buildchain-contract-lock-path": {
1193
+ "classification": "digest-only",
1194
+ "source": "workflow-call-input"
1195
+ },
1196
+ "buildchain-ref": {
1197
+ "classification": "included",
1198
+ "source": "workflow-call-input"
1199
+ },
1200
+ "buildchain-repository": {
1201
+ "classification": "included",
1202
+ "source": "workflow-call-input"
1203
+ },
1204
+ "buildchain-stable-contract-lock-path": {
1205
+ "classification": "digest-only",
1206
+ "source": "workflow-call-input"
1207
+ },
1208
+ "cargo-registry-index": {
1209
+ "classification": "digest-only",
1210
+ "source": "workflow-call-input"
1211
+ },
1212
+ "checkout-cache-fallback": {
1213
+ "classification": "digest-only",
1214
+ "source": "workflow-call-input"
1215
+ },
1216
+ "checkout-cache-fetch-attempts": {
1217
+ "classification": "digest-only",
1218
+ "source": "workflow-call-input"
1219
+ },
1220
+ "checkout-cache-github-timeout-seconds": {
1221
+ "classification": "digest-only",
1222
+ "source": "workflow-call-input"
1223
+ },
1224
+ "checkout-cache-mirror-url-template": {
1225
+ "classification": "digest-only",
1226
+ "source": "workflow-call-input"
1227
+ },
1228
+ "checkout-cache-mode": {
1229
+ "classification": "digest-only",
1230
+ "source": "workflow-call-input"
1231
+ },
1232
+ "checkout-cache-reference-repository-template": {
1233
+ "classification": "digest-only",
1234
+ "source": "workflow-call-input"
1235
+ },
1236
+ "checkout-cache-timeout-seconds": {
1237
+ "classification": "digest-only",
1238
+ "source": "workflow-call-input"
1239
+ },
1240
+ "expected-artifacts-json": {
1241
+ "classification": "digest-only",
1242
+ "source": "workflow-call-input"
1243
+ },
1244
+ "gate-profile-aggregate-json": {
1245
+ "classification": "digest-only",
1246
+ "source": "workflow-call-input"
1247
+ },
1248
+ "install-command": {
1249
+ "classification": "digest-only",
1250
+ "source": "workflow-call-input"
1251
+ },
1252
+ "linux-container-image": {
1253
+ "classification": "digest-only",
1254
+ "source": "workflow-call-input"
1255
+ },
1256
+ "linux-container-preset": {
1257
+ "classification": "included",
1258
+ "source": "workflow-call-input"
1259
+ },
1260
+ "node-version": {
1261
+ "classification": "included",
1262
+ "source": "workflow-call-input"
1263
+ },
1264
+ "platforms-json": {
1265
+ "classification": "digest-only",
1266
+ "source": "workflow-call-input"
1267
+ },
1268
+ "process-sample-interval-ms": {
1269
+ "classification": "included",
1270
+ "source": "workflow-call-input"
1271
+ },
1272
+ "process-summary-path": {
1273
+ "classification": "digest-only",
1274
+ "source": "workflow-call-input"
1275
+ },
1276
+ "publish-anchor-request-json": {
1277
+ "classification": "digest-only",
1278
+ "source": "workflow-call-input"
1279
+ },
1280
+ "publish-channel": {
1281
+ "classification": "included",
1282
+ "source": "workflow-call-input"
1283
+ },
1284
+ "publish-refs-json": {
1285
+ "classification": "digest-only",
1286
+ "source": "workflow-call-input"
1287
+ },
1288
+ "publish-registry": {
1289
+ "classification": "included",
1290
+ "source": "workflow-call-input"
1291
+ },
1292
+ "publish-source-ref": {
1293
+ "classification": "included",
1294
+ "source": "workflow-call-input"
1295
+ },
1296
+ "release-candidate": {
1297
+ "classification": "included",
1298
+ "source": "workflow-call-input"
1299
+ },
1300
+ "requested-parallelism": {
1301
+ "classification": "included",
1302
+ "source": "workflow-call-input"
1303
+ },
1304
+ "require-build": {
1305
+ "classification": "included",
1306
+ "source": "workflow-call-input"
1307
+ },
1308
+ "require-install": {
1309
+ "classification": "included",
1310
+ "source": "workflow-call-input"
1311
+ },
1312
+ "require-trusted-event": {
1313
+ "classification": "included",
1314
+ "source": "workflow-call-input"
1315
+ },
1316
+ "require-verify": {
1317
+ "classification": "included",
1318
+ "source": "workflow-call-input"
1319
+ },
1320
+ "runner-preset": {
1321
+ "classification": "digest-only",
1322
+ "source": "workflow-call-input"
1323
+ },
1324
+ "rust-toolchain": {
1325
+ "classification": "included",
1326
+ "source": "workflow-call-input"
1327
+ },
1328
+ "rustup-dist-server": {
1329
+ "classification": "included",
1330
+ "source": "workflow-call-input"
1331
+ },
1332
+ "rustup-update-root": {
1333
+ "classification": "included",
1334
+ "source": "workflow-call-input"
1335
+ },
1336
+ "sample-process-tree": {
1337
+ "classification": "included",
1338
+ "source": "workflow-call-input"
1339
+ },
1340
+ "setup-node": {
1341
+ "classification": "included",
1342
+ "source": "workflow-call-input"
1343
+ },
1344
+ "setup-rust": {
1345
+ "classification": "included",
1346
+ "source": "workflow-call-input"
1347
+ },
1348
+ "shifu-cache-profile-digest": {
1349
+ "classification": "included",
1350
+ "source": "workflow-call-input"
1351
+ },
1352
+ "shifu-cache-profile-ref": {
1353
+ "classification": "included",
1354
+ "source": "workflow-call-input"
1355
+ },
1356
+ "untrusted-policy": {
1357
+ "classification": "included",
1358
+ "source": "workflow-call-input"
1359
+ },
1360
+ "verify-command": {
1361
+ "classification": "digest-only",
1362
+ "source": "workflow-call-input"
1363
+ },
1364
+ "working-directory": {
1365
+ "classification": "digest-only",
1366
+ "source": "workflow-call-input"
1367
+ }
1368
+ }
1369
+ },
1370
+ "guarantees": [
1371
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
1372
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
1373
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1374
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
1375
+ ],
1376
+ "breakingDigest": "sha256:d40dd05d7e07473d4b2dc1b62fbb0ed6f06449b4d3a7c44a2e8014313e3c0273",
1377
+ "auditDigest": "sha256:00f575bb160b851361927a998b4dab66f7eade003f80d1fa5bc72bb68328835c"
1378
+ },
1379
+ {
1380
+ "contractVersion": 1,
1381
+ "stability": "stable",
1382
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1383
+ "id": "controller:shifu-gate-profile-envelope",
1384
+ "kind": "controller",
1385
+ "path": ".github/workflows/.gate-profile.yml",
1386
+ "requiredInputs": [],
1387
+ "requiredOutputs": [
1388
+ "controller-plan-json",
1389
+ "controller-plan-digest",
1390
+ "controller-receipt-json",
1391
+ "controller-receipt-digest",
1392
+ "controller-receipt-status"
1393
+ ],
1394
+ "breakingDefaults": {
1395
+ "evidenceContract": "buildchain.controller-evidence/v1",
1396
+ "descriptorVersion": 1,
1397
+ "workflowPath": ".github/workflows/.gate-profile.yml",
1398
+ "requiredStages": [
1399
+ "plan",
1400
+ "execute",
1401
+ "aggregate"
1402
+ ],
1403
+ "capabilities": [
1404
+ "shifu-gate-profile-delegation"
1405
+ ],
1406
+ "evidenceRequirements": [
1407
+ "shifu-gate-aggregate",
1408
+ "controller-receipt"
1409
+ ],
1410
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
1411
+ },
1412
+ "optionalInputs": [
1413
+ "artifact-name",
1414
+ "artifact-retention-days",
1415
+ "buildchain-ref",
1416
+ "buildchain-repository",
1417
+ "gate-command-json",
1418
+ "gate-environment-json",
1419
+ "gate-plan-command-json",
1420
+ "gate-profile",
1421
+ "gate-registry",
1422
+ "include-advisory",
1423
+ "node-version",
1424
+ "platforms-json",
1425
+ "require-trusted-event",
1426
+ "runner-preset",
1427
+ "shifu-cache-profile-digest",
1428
+ "shifu-cache-profile-ref",
1429
+ "source-ref",
1430
+ "untrusted-policy",
1431
+ "working-directory"
1432
+ ],
1433
+ "controllerDescriptor": {
1434
+ "contract": "buildchain.controller-descriptor/v1",
1435
+ "digest": "sha256:29569f4b754595792a16742d1c4c63838b54601674a2cb6c96261a72c962dece",
1436
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
1437
+ "inputClassifications": {
1438
+ "artifact-name": {
1439
+ "classification": "included",
1440
+ "source": "workflow-call-input"
1441
+ },
1442
+ "artifact-retention-days": {
1443
+ "classification": "included",
1444
+ "source": "workflow-call-input"
1445
+ },
1446
+ "buildchain-ref": {
1447
+ "classification": "included",
1448
+ "source": "workflow-call-input"
1449
+ },
1450
+ "buildchain-repository": {
1451
+ "classification": "included",
1452
+ "source": "workflow-call-input"
1453
+ },
1454
+ "gate-command-json": {
1455
+ "classification": "digest-only",
1456
+ "source": "workflow-call-input"
1457
+ },
1458
+ "gate-environment-json": {
1459
+ "classification": "digest-only",
1460
+ "source": "workflow-call-input"
1461
+ },
1462
+ "gate-plan-command-json": {
1463
+ "classification": "digest-only",
1464
+ "source": "workflow-call-input"
1465
+ },
1466
+ "gate-profile": {
1467
+ "classification": "included",
1468
+ "source": "workflow-call-input"
1469
+ },
1470
+ "gate-registry": {
1471
+ "classification": "included",
1472
+ "source": "workflow-call-input"
1473
+ },
1474
+ "include-advisory": {
1475
+ "classification": "included",
1476
+ "source": "workflow-call-input"
1477
+ },
1478
+ "node-version": {
1479
+ "classification": "included",
1480
+ "source": "workflow-call-input"
1481
+ },
1482
+ "platforms-json": {
1483
+ "classification": "digest-only",
1484
+ "source": "workflow-call-input"
1485
+ },
1486
+ "require-trusted-event": {
1487
+ "classification": "included",
1488
+ "source": "workflow-call-input"
1489
+ },
1490
+ "runner-preset": {
1491
+ "classification": "digest-only",
1492
+ "source": "workflow-call-input"
1493
+ },
1494
+ "shifu-cache-profile-digest": {
1495
+ "classification": "included",
1496
+ "source": "workflow-call-input"
1497
+ },
1498
+ "shifu-cache-profile-ref": {
1499
+ "classification": "included",
1500
+ "source": "workflow-call-input"
1501
+ },
1502
+ "source-ref": {
1503
+ "classification": "included",
1504
+ "source": "workflow-call-input"
1505
+ },
1506
+ "untrusted-policy": {
1507
+ "classification": "included",
1508
+ "source": "workflow-call-input"
1509
+ },
1510
+ "working-directory": {
1511
+ "classification": "digest-only",
1512
+ "source": "workflow-call-input"
1513
+ }
1514
+ }
1515
+ },
1516
+ "guarantees": [
1517
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
1518
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
1519
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1520
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
1521
+ ],
1522
+ "breakingDigest": "sha256:5f1868478b7ccd9fb79aea76bc771289d2ca6bd2dccd1abf57575426f1eae5fb",
1523
+ "auditDigest": "sha256:1ea73c7bb01bfdc8387fd0706c32e5cbfae6d4130bfcd8a8d2cd82d578deeafa"
1524
+ },
1525
+ {
1526
+ "contractVersion": 1,
1527
+ "stability": "stable",
1528
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1529
+ "id": "controller:web-surface",
1530
+ "kind": "controller",
1531
+ "path": ".github/workflows/.web-surface.yml",
1532
+ "requiredInputs": [],
1533
+ "requiredOutputs": [
1534
+ "controller-plan-json",
1535
+ "controller-plan-digest",
1536
+ "controller-receipt-json",
1537
+ "controller-receipt-digest",
1538
+ "controller-receipt-status"
1539
+ ],
1540
+ "breakingDefaults": {
1541
+ "evidenceContract": "buildchain.controller-evidence/v1",
1542
+ "descriptorVersion": 1,
1543
+ "workflowPath": ".github/workflows/.web-surface.yml",
1544
+ "requiredStages": [
1545
+ "resolve-runtime",
1546
+ "plan",
1547
+ "aggregate"
1548
+ ],
1549
+ "capabilities": [
1550
+ "web-build",
1551
+ "web-verify",
1552
+ "deployment-plan",
1553
+ "deployment-apply"
1554
+ ],
1555
+ "evidenceRequirements": [
1556
+ "web-surface-plan",
1557
+ "controller-receipt"
1558
+ ],
1559
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
1560
+ },
1561
+ "optionalInputs": [
1562
+ "artifact-path",
1563
+ "aws-region",
1564
+ "build-command",
1565
+ "buildchain-contract-compatibility-policy",
1566
+ "buildchain-contract-drift-issue-mode",
1567
+ "buildchain-contract-lock-path",
1568
+ "buildchain-ref",
1569
+ "buildchain-repository",
1570
+ "fail-on-release-pr-error",
1571
+ "node-version",
1572
+ "preview-apply",
1573
+ "preview-aws-role-arn",
1574
+ "preview-cleanup-apply",
1575
+ "preview-comment",
1576
+ "preview-environment",
1577
+ "production-apply",
1578
+ "production-approved",
1579
+ "production-aws-role-arn",
1580
+ "production-environment",
1581
+ "production-release-app-client-id",
1582
+ "production-release-app-id",
1583
+ "production-release-app-private-key",
1584
+ "production-release-branch-channel",
1585
+ "production-release-head-prefix",
1586
+ "production-release-label",
1587
+ "production-release-on-main",
1588
+ "production-release-pr-mode",
1589
+ "production-release-pr-token",
1590
+ "release-feedback-actor-privacy",
1591
+ "staging-apply",
1592
+ "staging-aws-role-arn",
1593
+ "staging-environment",
1594
+ "verify-command",
1595
+ "working-directory"
1596
+ ],
1597
+ "controllerDescriptor": {
1598
+ "contract": "buildchain.controller-descriptor/v1",
1599
+ "digest": "sha256:09b4d98c400fb12a87b701eedaaefbf4af2fd0c1fb19b8b44c6219c596430e80",
1600
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
1601
+ "inputClassifications": {
1602
+ "artifact-path": {
1603
+ "classification": "digest-only",
1604
+ "source": "workflow-call-input"
1605
+ },
1606
+ "aws-region": {
1607
+ "classification": "included",
1608
+ "source": "workflow-call-input"
1609
+ },
1610
+ "build-command": {
1611
+ "classification": "digest-only",
1612
+ "source": "workflow-call-input"
1613
+ },
1614
+ "buildchain-contract-compatibility-policy": {
1615
+ "classification": "included",
1616
+ "source": "workflow-call-input"
1617
+ },
1618
+ "buildchain-contract-drift-issue-mode": {
1619
+ "classification": "included",
1620
+ "source": "workflow-call-input"
1621
+ },
1622
+ "buildchain-contract-lock-path": {
1623
+ "classification": "digest-only",
1624
+ "source": "workflow-call-input"
1625
+ },
1626
+ "buildchain-ref": {
1627
+ "classification": "included",
1628
+ "source": "workflow-call-input"
1629
+ },
1630
+ "buildchain-repository": {
1631
+ "classification": "included",
1632
+ "source": "workflow-call-input"
1633
+ },
1634
+ "fail-on-release-pr-error": {
1635
+ "classification": "included",
1636
+ "source": "workflow-call-input"
1637
+ },
1638
+ "node-version": {
1639
+ "classification": "included",
1640
+ "source": "workflow-call-input"
1641
+ },
1642
+ "preview-apply": {
1643
+ "classification": "included",
1644
+ "source": "workflow-call-input"
1645
+ },
1646
+ "preview-aws-role-arn": {
1647
+ "classification": "digest-only",
1648
+ "source": "workflow-call-input"
1649
+ },
1650
+ "preview-cleanup-apply": {
1651
+ "classification": "included",
1652
+ "source": "workflow-call-input"
1653
+ },
1654
+ "preview-comment": {
1655
+ "classification": "included",
1656
+ "source": "workflow-call-input"
1657
+ },
1658
+ "preview-environment": {
1659
+ "classification": "digest-only",
1660
+ "source": "workflow-call-input"
1661
+ },
1662
+ "production-apply": {
1663
+ "classification": "included",
1664
+ "source": "workflow-call-input"
1665
+ },
1666
+ "production-approved": {
1667
+ "classification": "included",
1668
+ "source": "workflow-call-input"
1669
+ },
1670
+ "production-aws-role-arn": {
1671
+ "classification": "digest-only",
1672
+ "source": "workflow-call-input"
1673
+ },
1674
+ "production-environment": {
1675
+ "classification": "digest-only",
1676
+ "source": "workflow-call-input"
1677
+ },
1678
+ "production-release-app-client-id": {
1679
+ "classification": "included",
1680
+ "source": "workflow-call-input"
1681
+ },
1682
+ "production-release-app-id": {
1683
+ "classification": "included",
1684
+ "source": "workflow-call-input"
1685
+ },
1686
+ "production-release-app-private-key": {
1687
+ "classification": "redacted",
1688
+ "source": "workflow-call-secret"
1689
+ },
1690
+ "production-release-branch-channel": {
1691
+ "classification": "included",
1692
+ "source": "workflow-call-input"
1693
+ },
1694
+ "production-release-head-prefix": {
1695
+ "classification": "included",
1696
+ "source": "workflow-call-input"
1697
+ },
1698
+ "production-release-label": {
1699
+ "classification": "included",
1700
+ "source": "workflow-call-input"
1701
+ },
1702
+ "production-release-on-main": {
1703
+ "classification": "included",
1704
+ "source": "workflow-call-input"
1705
+ },
1706
+ "production-release-pr-mode": {
1707
+ "classification": "included",
1708
+ "source": "workflow-call-input"
1709
+ },
1710
+ "production-release-pr-token": {
1711
+ "classification": "redacted",
1712
+ "source": "workflow-call-input"
1713
+ },
1714
+ "release-feedback-actor-privacy": {
1715
+ "classification": "included",
1716
+ "source": "workflow-call-input"
1717
+ },
1718
+ "staging-apply": {
1719
+ "classification": "included",
1720
+ "source": "workflow-call-input"
1721
+ },
1722
+ "staging-aws-role-arn": {
1723
+ "classification": "digest-only",
1724
+ "source": "workflow-call-input"
1725
+ },
1726
+ "staging-environment": {
1727
+ "classification": "digest-only",
1728
+ "source": "workflow-call-input"
1729
+ },
1730
+ "verify-command": {
1731
+ "classification": "digest-only",
1732
+ "source": "workflow-call-input"
1733
+ },
1734
+ "working-directory": {
1735
+ "classification": "digest-only",
1736
+ "source": "workflow-call-input"
1737
+ }
1738
+ }
1739
+ },
1740
+ "guarantees": [
1741
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
1742
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
1743
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1744
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
1745
+ ],
1746
+ "breakingDigest": "sha256:b48566da2325d9a6a603fbd444a8cc7deb8abed3e6c70a984259208fb0ed513c",
1747
+ "auditDigest": "sha256:4ead2855fba29e007ae3add5a773a511fb2ddf5cb9b895243b351e2ecef02869"
1748
+ },
1749
+ {
1750
+ "contractVersion": 1,
1751
+ "stability": "stable",
1752
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1753
+ "id": "controller:publication-artifact",
1754
+ "kind": "controller",
1755
+ "path": ".github/workflows/publication-artifact.yml",
1756
+ "requiredInputs": [],
1757
+ "requiredOutputs": [
1758
+ "controller-plan-json",
1759
+ "controller-plan-digest",
1760
+ "controller-receipt-json",
1761
+ "controller-receipt-digest",
1762
+ "controller-receipt-status"
1763
+ ],
1764
+ "breakingDefaults": {
1765
+ "evidenceContract": "buildchain.controller-evidence/v1",
1766
+ "descriptorVersion": 1,
1767
+ "workflowPath": ".github/workflows/publication-artifact.yml",
1768
+ "requiredStages": [
1769
+ "resolve-runtime",
1770
+ "build",
1771
+ "collect",
1772
+ "aggregate"
1773
+ ],
1774
+ "capabilities": [
1775
+ "publication-build",
1776
+ "publication-verify",
1777
+ "artifact-admission"
1778
+ ],
1779
+ "evidenceRequirements": [
1780
+ "publication-manifest",
1781
+ "publication-passport",
1782
+ "controller-receipt"
1783
+ ],
1784
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
1785
+ },
1786
+ "optionalInputs": [
1787
+ "artifact-name",
1788
+ "artifact-paths",
1789
+ "artifact-retention-days",
1790
+ "build-command",
1791
+ "buildchain-contract-compatibility-policy",
1792
+ "buildchain-contract-drift-issue-mode",
1793
+ "buildchain-contract-lock-path",
1794
+ "buildchain-ref",
1795
+ "buildchain-repository",
1796
+ "node-version",
1797
+ "setup-node",
1798
+ "toolchain-command",
1799
+ "toolchain-digest",
1800
+ "toolchain-image",
1801
+ "toolchain-type",
1802
+ "verify-command",
1803
+ "working-directory"
1804
+ ],
1805
+ "controllerDescriptor": {
1806
+ "contract": "buildchain.controller-descriptor/v1",
1807
+ "digest": "sha256:d09d8f4081e7b5b9296487337206111591eeca6f8d7667e90012ac911c1b71cf",
1808
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
1809
+ "inputClassifications": {
1810
+ "artifact-name": {
1811
+ "classification": "included",
1812
+ "source": "workflow-call-input"
1813
+ },
1814
+ "artifact-paths": {
1815
+ "classification": "digest-only",
1816
+ "source": "workflow-call-input"
1817
+ },
1818
+ "artifact-retention-days": {
1819
+ "classification": "included",
1820
+ "source": "workflow-call-input"
1821
+ },
1822
+ "build-command": {
1823
+ "classification": "digest-only",
1824
+ "source": "workflow-call-input"
1825
+ },
1826
+ "buildchain-contract-compatibility-policy": {
1827
+ "classification": "included",
1828
+ "source": "workflow-call-input"
1829
+ },
1830
+ "buildchain-contract-drift-issue-mode": {
1831
+ "classification": "included",
1832
+ "source": "workflow-call-input"
1833
+ },
1834
+ "buildchain-contract-lock-path": {
1835
+ "classification": "digest-only",
1836
+ "source": "workflow-call-input"
1837
+ },
1838
+ "buildchain-ref": {
1839
+ "classification": "included",
1840
+ "source": "workflow-call-input"
1841
+ },
1842
+ "buildchain-repository": {
1843
+ "classification": "included",
1844
+ "source": "workflow-call-input"
1845
+ },
1846
+ "node-version": {
1847
+ "classification": "included",
1848
+ "source": "workflow-call-input"
1849
+ },
1850
+ "setup-node": {
1851
+ "classification": "included",
1852
+ "source": "workflow-call-input"
1853
+ },
1854
+ "toolchain-command": {
1855
+ "classification": "digest-only",
1856
+ "source": "workflow-call-input"
1857
+ },
1858
+ "toolchain-digest": {
1859
+ "classification": "included",
1860
+ "source": "workflow-call-input"
1861
+ },
1862
+ "toolchain-image": {
1863
+ "classification": "included",
1864
+ "source": "workflow-call-input"
1865
+ },
1866
+ "toolchain-type": {
1867
+ "classification": "included",
1868
+ "source": "workflow-call-input"
1869
+ },
1870
+ "verify-command": {
1871
+ "classification": "digest-only",
1872
+ "source": "workflow-call-input"
1873
+ },
1874
+ "working-directory": {
1875
+ "classification": "digest-only",
1876
+ "source": "workflow-call-input"
1877
+ }
1878
+ }
1879
+ },
1880
+ "guarantees": [
1881
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
1882
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
1883
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
1884
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
1885
+ ],
1886
+ "breakingDigest": "sha256:3f76502666069c2727d23efcfdb08fb80f89ced1955a69e29f11525ae88aca1d",
1887
+ "auditDigest": "sha256:68d65091eb9f9ff7331eb372499412c9f065d0c683bdc97a4510896c8d1e5296"
1888
+ },
1889
+ {
1890
+ "contractVersion": 1,
1891
+ "stability": "stable",
1892
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1893
+ "id": "controller:paper-release",
1894
+ "kind": "controller",
1895
+ "path": ".github/workflows/paper-release.yml",
1896
+ "requiredInputs": [],
1897
+ "requiredOutputs": [
1898
+ "controller-plan-json",
1899
+ "controller-plan-digest",
1900
+ "controller-receipt-json",
1901
+ "controller-receipt-digest",
1902
+ "controller-receipt-status"
1903
+ ],
1904
+ "breakingDefaults": {
1905
+ "evidenceContract": "buildchain.controller-evidence/v1",
1906
+ "descriptorVersion": 1,
1907
+ "workflowPath": ".github/workflows/paper-release.yml",
1908
+ "requiredStages": [
1909
+ "resolve-runtime",
1910
+ "build",
1911
+ "collect",
1912
+ "publish",
1913
+ "passport",
1914
+ "aggregate"
1915
+ ],
1916
+ "capabilities": [
1917
+ "publication-build",
1918
+ "artifact-admission",
1919
+ "release-publish",
1920
+ "release-passport"
1921
+ ],
1922
+ "evidenceRequirements": [
1923
+ "publication-manifest",
1924
+ "release-passport",
1925
+ "controller-receipt"
1926
+ ],
1927
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
1928
+ },
1929
+ "optionalInputs": [
1930
+ "BUILDCHAIN_PROMOTION_TOKEN",
1931
+ "artifact-name",
1932
+ "artifact-retention-days",
1933
+ "branch-protection-bypass-apps",
1934
+ "branch-protection-bypass-teams",
1935
+ "branch-protection-bypass-users",
1936
+ "build-command",
1937
+ "buildchain-contract-compatibility-policy",
1938
+ "buildchain-contract-drift-issue-mode",
1939
+ "buildchain-contract-lock-path",
1940
+ "buildchain-ref",
1941
+ "buildchain-repository",
1942
+ "dry-run",
1943
+ "github-release",
1944
+ "github-release-notes",
1945
+ "github-release-title",
1946
+ "node-version",
1947
+ "package-name",
1948
+ "publish-dist-tag",
1949
+ "publish-package-set-order",
1950
+ "release-passport-impact-json",
1951
+ "release-passport-output-dir",
1952
+ "release-passport-product-name",
1953
+ "required-status-check",
1954
+ "setup-node",
1955
+ "target-ref",
1956
+ "target-sha",
1957
+ "toolchain-command",
1958
+ "toolchain-digest",
1959
+ "toolchain-image",
1960
+ "toolchain-type",
1961
+ "verify-command",
1962
+ "working-directory"
1963
+ ],
1964
+ "controllerDescriptor": {
1965
+ "contract": "buildchain.controller-descriptor/v1",
1966
+ "digest": "sha256:726e94ed5353240289700df7f436e9aa4041783738757dfbdef1a6825acb6bfb",
1967
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
1968
+ "inputClassifications": {
1969
+ "BUILDCHAIN_PROMOTION_TOKEN": {
1970
+ "classification": "redacted",
1971
+ "source": "workflow-call-secret"
1972
+ },
1973
+ "artifact-name": {
1974
+ "classification": "included",
1975
+ "source": "workflow-call-input"
1976
+ },
1977
+ "artifact-retention-days": {
1978
+ "classification": "included",
1979
+ "source": "workflow-call-input"
1980
+ },
1981
+ "branch-protection-bypass-apps": {
1982
+ "classification": "included",
1983
+ "source": "workflow-call-input"
1984
+ },
1985
+ "branch-protection-bypass-teams": {
1986
+ "classification": "included",
1987
+ "source": "workflow-call-input"
1988
+ },
1989
+ "branch-protection-bypass-users": {
1990
+ "classification": "included",
1991
+ "source": "workflow-call-input"
1992
+ },
1993
+ "build-command": {
1994
+ "classification": "digest-only",
1995
+ "source": "workflow-call-input"
1996
+ },
1997
+ "buildchain-contract-compatibility-policy": {
1998
+ "classification": "included",
1999
+ "source": "workflow-call-input"
2000
+ },
2001
+ "buildchain-contract-drift-issue-mode": {
2002
+ "classification": "included",
2003
+ "source": "workflow-call-input"
2004
+ },
2005
+ "buildchain-contract-lock-path": {
2006
+ "classification": "digest-only",
2007
+ "source": "workflow-call-input"
2008
+ },
2009
+ "buildchain-ref": {
2010
+ "classification": "included",
2011
+ "source": "workflow-call-input"
2012
+ },
2013
+ "buildchain-repository": {
2014
+ "classification": "included",
2015
+ "source": "workflow-call-input"
2016
+ },
2017
+ "dry-run": {
2018
+ "classification": "included",
2019
+ "source": "workflow-call-input"
2020
+ },
2021
+ "github-release": {
2022
+ "classification": "included",
2023
+ "source": "workflow-call-input"
2024
+ },
2025
+ "github-release-notes": {
2026
+ "classification": "digest-only",
2027
+ "source": "workflow-call-input"
2028
+ },
2029
+ "github-release-title": {
2030
+ "classification": "included",
2031
+ "source": "workflow-call-input"
2032
+ },
2033
+ "node-version": {
2034
+ "classification": "included",
2035
+ "source": "workflow-call-input"
2036
+ },
2037
+ "package-name": {
2038
+ "classification": "included",
2039
+ "source": "workflow-call-input"
2040
+ },
2041
+ "publish-dist-tag": {
2042
+ "classification": "included",
2043
+ "source": "workflow-call-input"
2044
+ },
2045
+ "publish-package-set-order": {
2046
+ "classification": "included",
2047
+ "source": "workflow-call-input"
2048
+ },
2049
+ "release-passport-impact-json": {
2050
+ "classification": "digest-only",
2051
+ "source": "workflow-call-input"
2052
+ },
2053
+ "release-passport-output-dir": {
2054
+ "classification": "included",
2055
+ "source": "workflow-call-input"
2056
+ },
2057
+ "release-passport-product-name": {
2058
+ "classification": "included",
2059
+ "source": "workflow-call-input"
2060
+ },
2061
+ "required-status-check": {
2062
+ "classification": "included",
2063
+ "source": "workflow-call-input"
2064
+ },
2065
+ "setup-node": {
2066
+ "classification": "included",
2067
+ "source": "workflow-call-input"
2068
+ },
2069
+ "target-ref": {
2070
+ "classification": "included",
2071
+ "source": "workflow-call-input"
2072
+ },
2073
+ "target-sha": {
2074
+ "classification": "included",
2075
+ "source": "workflow-call-input"
2076
+ },
2077
+ "toolchain-command": {
2078
+ "classification": "digest-only",
2079
+ "source": "workflow-call-input"
2080
+ },
2081
+ "toolchain-digest": {
2082
+ "classification": "included",
2083
+ "source": "workflow-call-input"
2084
+ },
2085
+ "toolchain-image": {
2086
+ "classification": "included",
2087
+ "source": "workflow-call-input"
2088
+ },
2089
+ "toolchain-type": {
2090
+ "classification": "included",
2091
+ "source": "workflow-call-input"
2092
+ },
2093
+ "verify-command": {
2094
+ "classification": "digest-only",
2095
+ "source": "workflow-call-input"
2096
+ },
2097
+ "working-directory": {
2098
+ "classification": "digest-only",
2099
+ "source": "workflow-call-input"
2100
+ }
2101
+ }
2102
+ },
2103
+ "guarantees": [
2104
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
2105
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
2106
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
2107
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
2108
+ ],
2109
+ "breakingDigest": "sha256:18ed432e8f3dd55a80c7e94dadacc09ab0508f6226a882029ce582d590ac214b",
2110
+ "auditDigest": "sha256:cd143ece816a159bcefe1a01312d5bdb25243048ef733fb4f7d228b4bcf8bec4"
2111
+ },
2112
+ {
2113
+ "contractVersion": 1,
2114
+ "stability": "stable",
2115
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
2116
+ "id": "controller:release-candidate-promotion",
2117
+ "kind": "controller",
2118
+ "path": ".github/workflows/release-candidate-promote.yml",
2119
+ "requiredInputs": [],
2120
+ "requiredOutputs": [
2121
+ "controller-plan-json",
2122
+ "controller-plan-digest",
2123
+ "controller-receipt-json",
2124
+ "controller-receipt-digest",
2125
+ "controller-receipt-status"
2126
+ ],
2127
+ "breakingDefaults": {
2128
+ "evidenceContract": "buildchain.controller-evidence/v1",
2129
+ "descriptorVersion": 1,
2130
+ "workflowPath": ".github/workflows/release-candidate-promote.yml",
2131
+ "requiredStages": [
2132
+ "preflight",
2133
+ "admit-release-candidate",
2134
+ "publish",
2135
+ "passport",
2136
+ "aggregate"
2137
+ ],
2138
+ "capabilities": [
2139
+ "promotion-preflight",
2140
+ "artifact-admission",
2141
+ "publish-transaction",
2142
+ "release-passport"
2143
+ ],
2144
+ "evidenceRequirements": [
2145
+ "release-candidate-passport",
2146
+ "publish-evidence",
2147
+ "release-passport",
2148
+ "controller-receipt"
2149
+ ],
2150
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
2151
+ },
2152
+ "optionalInputs": [
2153
+ "BUILDCHAIN_ISSUE_APP_ID",
2154
+ "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
2155
+ "BUILDCHAIN_ISSUE_TOKEN",
2156
+ "BUILDCHAIN_PROMOTION_TOKEN",
2157
+ "allow-repository",
2158
+ "artifact-name",
2159
+ "artifact-patterns",
2160
+ "branch-protection-bypass-apps",
2161
+ "branch-protection-bypass-teams",
2162
+ "branch-protection-bypass-users",
2163
+ "buildchain-contract-compatibility-policy",
2164
+ "buildchain-contract-drift-issue-mode",
2165
+ "buildchain-contract-lock-path",
2166
+ "buildchain-issue-app-id",
2167
+ "buildchain-issue-app-private-key",
2168
+ "buildchain-issue-token",
2169
+ "buildchain-ref",
2170
+ "buildchain-repository",
2171
+ "channel",
2172
+ "dry-run",
2173
+ "github-release",
2174
+ "github-release-notes",
2175
+ "github-release-title",
2176
+ "package-manager",
2177
+ "publish-artifact-kind",
2178
+ "publish-command",
2179
+ "publish-dist-tag",
2180
+ "publish-mode",
2181
+ "publish-package-main",
2182
+ "publish-package-set-order",
2183
+ "publish-required-artifacts-json",
2184
+ "publish-target",
2185
+ "release-candidate-workflow-file",
2186
+ "release-candidate-workflow-name",
2187
+ "release-passport",
2188
+ "release-passport-buildchain-self-kfd",
2189
+ "release-passport-impact-json",
2190
+ "release-passport-kfd-1-witness-jsons",
2191
+ "release-passport-kfd-2-claim-jsons",
2192
+ "release-passport-kfd-3-artifact-verify-command",
2193
+ "release-passport-kfd-3-artifact-witness-jsons",
2194
+ "release-passport-kfd-3-prebuild-witness-jsons",
2195
+ "release-passport-output-dir",
2196
+ "release-passport-platform-manifest-paths",
2197
+ "release-passport-product-name",
2198
+ "required-artifact-count",
2199
+ "required-status-check",
2200
+ "runner-preset",
2201
+ "target-ref",
2202
+ "target-sha",
2203
+ "trusted-publishing"
2204
+ ],
2205
+ "controllerDescriptor": {
2206
+ "contract": "buildchain.controller-descriptor/v1",
2207
+ "digest": "sha256:f5a295b2d3e8f20ba46c611acaed71ee7ab5cd1ecaa6e7504b4344493271a803",
2208
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
2209
+ "inputClassifications": {
2210
+ "BUILDCHAIN_ISSUE_APP_ID": {
2211
+ "classification": "redacted",
2212
+ "source": "workflow-call-secret"
2213
+ },
2214
+ "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY": {
2215
+ "classification": "redacted",
2216
+ "source": "workflow-call-secret"
2217
+ },
2218
+ "BUILDCHAIN_ISSUE_TOKEN": {
2219
+ "classification": "redacted",
2220
+ "source": "workflow-call-secret"
2221
+ },
2222
+ "BUILDCHAIN_PROMOTION_TOKEN": {
2223
+ "classification": "redacted",
2224
+ "source": "workflow-call-secret"
2225
+ },
2226
+ "allow-repository": {
2227
+ "classification": "included",
2228
+ "source": "workflow-call-input"
2229
+ },
2230
+ "artifact-name": {
2231
+ "classification": "included",
2232
+ "source": "workflow-call-input"
2233
+ },
2234
+ "artifact-patterns": {
2235
+ "classification": "included",
2236
+ "source": "workflow-call-input"
2237
+ },
2238
+ "branch-protection-bypass-apps": {
2239
+ "classification": "included",
2240
+ "source": "workflow-call-input"
2241
+ },
2242
+ "branch-protection-bypass-teams": {
2243
+ "classification": "included",
2244
+ "source": "workflow-call-input"
2245
+ },
2246
+ "branch-protection-bypass-users": {
2247
+ "classification": "included",
2248
+ "source": "workflow-call-input"
2249
+ },
2250
+ "buildchain-contract-compatibility-policy": {
2251
+ "classification": "included",
2252
+ "source": "workflow-call-input"
2253
+ },
2254
+ "buildchain-contract-drift-issue-mode": {
2255
+ "classification": "included",
2256
+ "source": "workflow-call-input"
2257
+ },
2258
+ "buildchain-contract-lock-path": {
2259
+ "classification": "digest-only",
2260
+ "source": "workflow-call-input"
2261
+ },
2262
+ "buildchain-issue-app-id": {
2263
+ "classification": "redacted",
2264
+ "source": "workflow-call-secret"
2265
+ },
2266
+ "buildchain-issue-app-private-key": {
2267
+ "classification": "redacted",
2268
+ "source": "workflow-call-secret"
2269
+ },
2270
+ "buildchain-issue-token": {
2271
+ "classification": "redacted",
2272
+ "source": "workflow-call-secret"
2273
+ },
2274
+ "buildchain-ref": {
2275
+ "classification": "included",
2276
+ "source": "workflow-call-input"
2277
+ },
2278
+ "buildchain-repository": {
2279
+ "classification": "included",
2280
+ "source": "workflow-call-input"
2281
+ },
2282
+ "channel": {
2283
+ "classification": "included",
2284
+ "source": "workflow-call-input"
2285
+ },
2286
+ "dry-run": {
2287
+ "classification": "included",
2288
+ "source": "workflow-call-input"
2289
+ },
2290
+ "github-release": {
2291
+ "classification": "included",
2292
+ "source": "workflow-call-input"
2293
+ },
2294
+ "github-release-notes": {
2295
+ "classification": "digest-only",
2296
+ "source": "workflow-call-input"
2297
+ },
2298
+ "github-release-title": {
2299
+ "classification": "included",
2300
+ "source": "workflow-call-input"
2301
+ },
2302
+ "package-manager": {
2303
+ "classification": "included",
2304
+ "source": "workflow-call-input"
2305
+ },
2306
+ "publish-artifact-kind": {
2307
+ "classification": "included",
2308
+ "source": "workflow-call-input"
2309
+ },
2310
+ "publish-command": {
2311
+ "classification": "digest-only",
2312
+ "source": "workflow-call-input"
2313
+ },
2314
+ "publish-dist-tag": {
2315
+ "classification": "included",
2316
+ "source": "workflow-call-input"
2317
+ },
2318
+ "publish-mode": {
2319
+ "classification": "included",
2320
+ "source": "workflow-call-input"
2321
+ },
2322
+ "publish-package-main": {
2323
+ "classification": "included",
2324
+ "source": "workflow-call-input"
2325
+ },
2326
+ "publish-package-set-order": {
2327
+ "classification": "included",
2328
+ "source": "workflow-call-input"
2329
+ },
2330
+ "publish-required-artifacts-json": {
2331
+ "classification": "digest-only",
2332
+ "source": "workflow-call-input"
2333
+ },
2334
+ "publish-target": {
2335
+ "classification": "included",
2336
+ "source": "workflow-call-input"
2337
+ },
2338
+ "release-candidate-workflow-file": {
2339
+ "classification": "included",
2340
+ "source": "workflow-call-input"
2341
+ },
2342
+ "release-candidate-workflow-name": {
2343
+ "classification": "included",
2344
+ "source": "workflow-call-input"
2345
+ },
2346
+ "release-passport": {
2347
+ "classification": "included",
2348
+ "source": "workflow-call-input"
2349
+ },
2350
+ "release-passport-buildchain-self-kfd": {
2351
+ "classification": "included",
2352
+ "source": "workflow-call-input"
2353
+ },
2354
+ "release-passport-impact-json": {
2355
+ "classification": "digest-only",
2356
+ "source": "workflow-call-input"
2357
+ },
2358
+ "release-passport-kfd-1-witness-jsons": {
2359
+ "classification": "digest-only",
2360
+ "source": "workflow-call-input"
2361
+ },
2362
+ "release-passport-kfd-2-claim-jsons": {
2363
+ "classification": "digest-only",
2364
+ "source": "workflow-call-input"
2365
+ },
2366
+ "release-passport-kfd-3-artifact-verify-command": {
2367
+ "classification": "digest-only",
2368
+ "source": "workflow-call-input"
2369
+ },
2370
+ "release-passport-kfd-3-artifact-witness-jsons": {
2371
+ "classification": "digest-only",
2372
+ "source": "workflow-call-input"
2373
+ },
2374
+ "release-passport-kfd-3-prebuild-witness-jsons": {
2375
+ "classification": "digest-only",
2376
+ "source": "workflow-call-input"
2377
+ },
2378
+ "release-passport-output-dir": {
2379
+ "classification": "included",
2380
+ "source": "workflow-call-input"
2381
+ },
2382
+ "release-passport-platform-manifest-paths": {
2383
+ "classification": "digest-only",
2384
+ "source": "workflow-call-input"
2385
+ },
2386
+ "release-passport-product-name": {
2387
+ "classification": "included",
2388
+ "source": "workflow-call-input"
2389
+ },
2390
+ "required-artifact-count": {
2391
+ "classification": "included",
2392
+ "source": "workflow-call-input"
2393
+ },
2394
+ "required-status-check": {
2395
+ "classification": "included",
2396
+ "source": "workflow-call-input"
2397
+ },
2398
+ "runner-preset": {
2399
+ "classification": "digest-only",
2400
+ "source": "workflow-call-input"
2401
+ },
2402
+ "target-ref": {
2403
+ "classification": "included",
2404
+ "source": "workflow-call-input"
2405
+ },
2406
+ "target-sha": {
2407
+ "classification": "included",
2408
+ "source": "workflow-call-input"
2409
+ },
2410
+ "trusted-publishing": {
2411
+ "classification": "included",
2412
+ "source": "workflow-call-input"
2413
+ }
2414
+ }
2415
+ },
2416
+ "guarantees": [
2417
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
2418
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
2419
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
2420
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
2421
+ ],
2422
+ "breakingDigest": "sha256:63e4340f090bce35f5ab64f38fe16767725a39819498ed4d24c5c16de4083c23",
2423
+ "auditDigest": "sha256:692807dec7da9232686143bc2ea01c10ddc3770d3c70b56c0f34042882e141a5"
2424
+ },
2425
+ {
2426
+ "contractVersion": 1,
2427
+ "stability": "stable",
2428
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
2429
+ "id": "controller:release-propagation",
2430
+ "kind": "controller",
2431
+ "path": ".github/workflows/release-propagation.yml",
2432
+ "requiredInputs": [],
2433
+ "requiredOutputs": [
2434
+ "controller-plan-json",
2435
+ "controller-plan-digest",
2436
+ "controller-receipt-json",
2437
+ "controller-receipt-digest",
2438
+ "controller-receipt-status"
2439
+ ],
2440
+ "breakingDefaults": {
2441
+ "evidenceContract": "buildchain.controller-evidence/v1",
2442
+ "descriptorVersion": 1,
2443
+ "workflowPath": ".github/workflows/release-propagation.yml",
2444
+ "requiredStages": [
2445
+ "resolve-runtime",
2446
+ "plan",
2447
+ "write-lock",
2448
+ "aggregate"
2449
+ ],
2450
+ "capabilities": [
2451
+ "release-propagation-plan",
2452
+ "downstream-lock",
2453
+ "pull-request-handoff"
2454
+ ],
2455
+ "evidenceRequirements": [
2456
+ "propagation-plan",
2457
+ "propagation-lock",
2458
+ "controller-receipt"
2459
+ ],
2460
+ "inputClassificationPolicy": "buildchain-controller-input-policy/v1"
2461
+ },
2462
+ "optionalInputs": [
2463
+ "buildchain-ref",
2464
+ "buildchain-repository",
2465
+ "downstream-base-ref",
2466
+ "downstream-branch",
2467
+ "downstream-repository",
2468
+ "downstream-target",
2469
+ "dry-run",
2470
+ "graph-json",
2471
+ "lock-path",
2472
+ "pr-body",
2473
+ "pr-title",
2474
+ "propagation-token",
2475
+ "source-node",
2476
+ "upstream-release-json"
2477
+ ],
2478
+ "controllerDescriptor": {
2479
+ "contract": "buildchain.controller-descriptor/v1",
2480
+ "digest": "sha256:9b9f9a2320c4349903d72ee46e329211b5538ed5ebebaa93559df4eafb835997",
2481
+ "registryDigest": "sha256:0bd2214618cfa1fb7cdc052b3dcb64fa1ab8b815416bc00bbd27c0c666923363",
2482
+ "inputClassifications": {
2483
+ "buildchain-ref": {
2484
+ "classification": "included",
2485
+ "source": "workflow-call-input"
2486
+ },
2487
+ "buildchain-repository": {
2488
+ "classification": "included",
2489
+ "source": "workflow-call-input"
2490
+ },
2491
+ "downstream-base-ref": {
2492
+ "classification": "included",
2493
+ "source": "workflow-call-input"
2494
+ },
2495
+ "downstream-branch": {
2496
+ "classification": "included",
2497
+ "source": "workflow-call-input"
2498
+ },
2499
+ "downstream-repository": {
2500
+ "classification": "included",
2501
+ "source": "workflow-call-input"
2502
+ },
2503
+ "downstream-target": {
2504
+ "classification": "included",
2505
+ "source": "workflow-call-input"
2506
+ },
2507
+ "dry-run": {
2508
+ "classification": "included",
2509
+ "source": "workflow-call-input"
2510
+ },
2511
+ "graph-json": {
2512
+ "classification": "digest-only",
2513
+ "source": "workflow-call-input"
2514
+ },
2515
+ "lock-path": {
2516
+ "classification": "digest-only",
2517
+ "source": "workflow-call-input"
2518
+ },
2519
+ "pr-body": {
2520
+ "classification": "digest-only",
2521
+ "source": "workflow-call-input"
2522
+ },
2523
+ "pr-title": {
2524
+ "classification": "included",
2525
+ "source": "workflow-call-input"
2526
+ },
2527
+ "propagation-token": {
2528
+ "classification": "redacted",
2529
+ "source": "workflow-call-secret"
2530
+ },
2531
+ "source-node": {
2532
+ "classification": "included",
2533
+ "source": "workflow-call-input"
2534
+ },
2535
+ "upstream-release-json": {
2536
+ "classification": "digest-only",
2537
+ "source": "workflow-call-input"
2538
+ }
2539
+ }
2540
+ },
2541
+ "guarantees": [
2542
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
2543
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
2544
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
2545
+ "missing receipts are non-qualifying and must not be represented as a successful controller run"
2546
+ ],
2547
+ "breakingDigest": "sha256:d7a1f15990ce8bd13149474888232c7d4451dd2a49bebf4d4ce1336695da430e",
2548
+ "auditDigest": "sha256:c8cb3170c94e9a0249aa7bae044070bfd012dfc99dd094bd51cd4db163c61518"
553
2549
  }
554
2550
  ],
555
- "compatibilityDigest": "sha256:2090784977bc7d54fc647215ef73532b9db26147a0b40ec3f56c31d611d806cc",
556
- "contractDigest": "sha256:ef9eb9323b4e14b9d02d51c9b974b27d8c38daf6754c1249783c0eaa7510a645"
2551
+ "compatibilityDigest": "sha256:2520207c5d6d6a737dd32251a42be9c5299644d9aebf690a8402ead1724ed495",
2552
+ "contractDigest": "sha256:297bf3fb92da8a668f0bcbe9cf4d87fc544dd24b241a1047404eaf64fdfba420"
557
2553
  }