Skip to main content

Supply Chain Security

Diagram

Build once, verify, then promote

Promotion is gated by trust evidence, not by rebuilding the same subject a second time during publish.

Decision matrix

Channel coverage

Channel coverage.
ChannelPrimary workflow pathBlocking trust gatesPublished output
CI.github/workflows/ci.ymlValidation only. No publish path.PR and branch confidence, but no public artifacts.
Edge.github/workflows/publish-edge.yml plus reusable hardeningProvenance verification and byte reproducibility before publish.GitHub Pages edge manifests, checksums, and provenance index.
Nightly.github/workflows/publish-nightly.yml plus reusable hardeningProvenance verification and byte reproducibility before publish.GitHub Pages nightly manifests, checksums, and provenance index.
Prerelease.github/workflows/release.ymlProvenance, reproducibility, signing, and release evidence gates.GitHub Release assets, OCI images, chart artifacts, release notes, and docs deployment through /docs/next.

Decision matrix

Control families

Control families.
Control familyWhat it protectsPrimary implementation surface
GovernanceBranch, tag, and change-management expectations for release-critical paths.Repository rulesets, signed semver tags, CODEOWNERS, PR checks, and pinned GitHub Actions usage.
Build inputsDeterministic dependency resolution and low-drift toolchains.Vendored Go modules, pinned base-image digests, pinned tool versions, and workflow-defined build parameters.
ReproducibilityConfidence that an independent rebuild matches expected bytes before publication.hack/ci/verify-byte-reproducibility.sh, deterministic SPDX normalization, and release/channel hardening gates.
Release evidenceRetained proof that a release met the hardening contract at publish time.Workflow run metadata, verification output, artifact listings, and provenance indexes.

Inspect

Inspect hardening entry points

bash

rg -n "verify-image-attestations|verify-byte-reproducibility|provenance-index" \
.github/workflows hack/ci

sed -n '1,220p' .github/workflows/release.yml
sed -n '1,220p' .github/workflows/reusable-channel-hardening.yml

Use this when you need to trace where a trust gate is implemented before changing the workflow or the scripts that back it.

Single-maintainer operating constraint

Human two-person approval controls are still limited by the current single-maintainer operating model. The project compensates with stronger automation, pinned workflow identity checks, and explicit release evidence requirements, but this does not create true multi-person release separation on its own.

Decision matrix

Common failure classes

Common failure classes.
FailureLikely causeWhere to look first
Attestation verification failsWorkflow identity, signer identity, or source ref does not match the expected constraint.Release workflow inputs and hack/ci/verify-image-attestations.sh.
Byte reproducibility failsA build input or emitted artifact changed nondeterministically between rebuilds.hack/ci/verify-byte-reproducibility.sh, normalized SPDX output, and build metadata sources.
Checksums or chart subject verification failsA signed or attested subject was regenerated after evidence was captured.hack/ci/verify-release-artifact-attestations.sh and the release job ordering.

Turn policy into release work

Next release documentation

You are reading the unreleased main docs. Use the version menu for the newest published release, or check the release notes for what is already out.

Was this page helpful?

Use Needs work to open a structured GitHub issue for this page. The Yes button only acknowledges the signal locally.