Skip to main content

Release artifact provenance

This assessment uses the SLSA 1.2 Build track. It describes the current release pipeline, not an independent certification of a particular release. Verify the target release's actual subjects and attestations before relying on its evidence.

Build L1 requires build provenance. Build L2 adds authentic provenance from a hosted build platform. Build L3 adds stronger isolation and protection against forgery during the build. A signature, checksum, SBOM, or release attestation alone does not establish a SLSA Build level. Build requirements owns the full criteria.

Assessment by artifact​

ArtifactBuild assessmentEvidence and limit
application-server image indexBuild L2The reusable image workflow runs on GitHub-hosted runners and publishes native GitHub build provenance for the index digest. The release gate verifies that provenance.
webapp image indexBuild L2The same workflow and verification apply to this image's own index digest.
agent-pi image indexBuild L2The same workflow and verification apply to this image's own index digest.
postgres image indexBuild L2The same workflow and verification apply to this image's own index digest.
First-party platform manifestsNo separate Build claimThe image index binds the child manifest digests. Each platform has its own signed SBOM and scan evidence. The native build attestation names the index.
Upstream image indexes and platform manifestsNo Hephaestus Build claimThe release pins upstream digests and captures platform membership, inventories, licenses, and scans. It does not require upstream build provenance.
Helm chart package and OCI manifestNo Build claimThe release signs the chart digest and includes both subjects in a release attestation. That in-toto release/v0.1 predicate is not SLSA build provenance.
k3s bundleNo Build claimThe release signs the bundle and includes its digest in the release attestation. The bundle has no separate build provenance.
Joint release lockNo Build claimIts signature binds the selected chart, images, source commit, and release. It selects artifacts but does not describe their build process.
SBOMs, source inventories, scan reports, and policy evidenceNo Build claimSigned checksums bind the evidence files. Image SBOM attestations bind first-party platform subjects. Neither proves how those subjects were built.
Native host qualification reportsNo Build claimThe release attaches amd64 and arm64 test records after signing the evidence checksums. Those checksums do not cover the host reports.
Source archives supplied by GitHubNo Build claimGitHub creates these archives. The release pipeline does not generate or verify build provenance for them.

The upstream set comes from security/release-images.json. Reassess a new artifact or publisher when that inventory or the release workflow changes.

GitHub documents native artifact attestations as a SLSA v1.0 Build L2 mechanism. This assessment does not claim Build L3 for any artifact. GitHub also describes a reusable-workflow path to Build L3. This repository has no separate assessment that proves every Build L3 isolation requirement. Thus, this assessment stops at Build L2 for the first-party image indexes. The assessment does not extend to their base images, buildpack builder, or other dependencies.

Verification scope​

The release gate verifies each first-party image index against its full source commit, allowed build workflow, SLSA v1 predicate, and hosted-runner identity. Image build provenance gives the independent verification commands. The expected subjects and source commit come from the authenticated joint lock. Consumers verify their target release independently before relying on its provenance.

A reused image keeps the build provenance of its merge-group run. The subsequent main run signs that same digest without rebuilding it. The two statements can therefore name different workflow invocations.

Promotion preserves image digests and their build provenance. A stable promotion repackages chart metadata and signs the resulting chart digest. A valid release signature does not upgrade the Build assessment of that chart or any upstream image.

Owning implementation​

  • .github/workflows/reusable-docker-build.yml builds, signs, and attests first-party image indexes.
  • .github/workflows/release.yml promotes images and packages the chart, lock, k3s bundle, and evidence.
  • scripts/verify-release-evidence.ts verifies image provenance and the per-platform evidence contract.
  • Supply-chain evidence owns the release evidence requirements.