SEIF Docs

Release attestation

IMPLEMENTED in 0.4.0. Schema context-release-attestation.v1, carried as the predicate of an in-toto Statement v1 inside a DSSE envelope signed with Ed25519.

clean committed SOURCE ─▶ verify (format, tests, Release build) ─▶ package (DMG, server ×3)
  ─▶ clean install + sandboxed commercial journey (installed artifacts, native UI)
  ─▶ Linux x64 + arm64 execution ─▶ scale ─▶ audit ─▶ ATTESTATION (outside the tree) ─▶ VERIFY

scripts/prove-commercial-delivery.sh runs the whole pipeline from one clean commit. Every proof is stamped with that commit (CW_SOURCE_COMMIT); attestation is refused if the worktree is dirty, if HEAD moved, if any proof claims another commit, or if the signing key differs from the public key committed at the attested source (release/keys/release-signing.pub.pem).

Output: artifacts/release/<version>/ — assets/ (DMG, three server distributions, reference runtime bundle), proofs/ (journey, isolation, Linux x64/arm64, scale, audit, delivery, clean install, test results, verification log, screenshot digest manifest, pipeline record), attestation.json, attestation.intoto.dsse.json, SHA256SUMS. This is exactly what a release upload would publish.

The predicate binds: source repository, commit and tree; each artifact's name, kind, platform, size and SHA-256; each proof's SHA-256, result and stated source commit; the platform matrix (executed vs build-only); known unproven claims; verdict; signing key id and custody statement.

Why outside the tree. Committing a proof changes the commit it describes. The attestation is generated after the final commit and names it; it is distributed beside the artifacts, never inside the source.

Verify

node scripts/verify-attestation.mjs artifacts/release/<version> --artifacts artifacts/release/<version>/assets --expect-commit <sha>

Checks: schema; the commit exists and its tree matches; the DSSE signature against the public key read from the attested commit; the signed statement equals attestation.json and its subjects; every artifact and proof file's digest; every proof's source commit; verdict consistency. Detects tampered artifacts, wrong source coordinates, edited predicates, proof digest mismatches and foreign keys (tested).

Publishing

scripts/publish-release.sh verifies the attestation and prints the gh release create --draft command. It publishes only with both --execute and CONTEXT_RELEASE_PUBLISH=yes; no release has been published by this delivery.

Custody and limits

The release key is a local Ed25519 key (private key outside the repository, mode 0600). HSM/KMS custody, Sigstore/Rekor transparency logging and SLSA build-provenance levels are FUTURE; the in-toto/DSSE envelope keeps that path open without changing the predicate.

Historical acceptance (0.6.0)

The existing exact-source delivery pipeline additionally runs the historical native journey on a fresh example copied from the DMG, inside the commercial OS sandbox. historical-investigation.json and its screenshot digest manifest are included in the signed local attestation. The report includes separate external-application resolution, exact replay criteria, a changed-source/configuration comparison, test FAIL → correction PASS, original trace immutability and an expiration restriction. No release is published by this pipeline.