Skip to content

Acquisition provenance: attach OCI referrer with acquisition details on mirror #140

Description

@toddysm

Summary

When an image is acquired (mirrored) from an external registry into quarantine/<image>, attach a new OCI 1.1 referrer artifact to the mirrored image that records acquisition details — where the image came from and how it was acquired.

Motivation

Today the mirror flow copies the upstream image (and optionally its referrers) into ghcr.io/<owner>/quarantine/<image>, but it does not record any first-party provenance about the acquisition itself. Once an image sits in quarantine we lose the context of:

  • the source registry / repository / tag it came from (e.g. docker.io/library/python:3.14-slim),
  • the source digest at acquisition time,
  • when it was acquired and by which workflow run,
  • whether referrers were copied, force was used, etc.

This makes it hard to answer "where did this image come from, and when did we pull it?" from the artifact itself, in a portable, registry-native way.

Design

Settled and documented in docs/architecture/acquire/acquisition-provenance.md:

  • Artifact: in-toto Statement (application/vnd.in-toto+json), predicate type https://toddysm.com/acquisition-provenance/v0.1.
  • Subjects: both the tag/index and each per-platform child manifest.
  • Scope: external → quarantine acquisition only (via _mirror-image.yml, never promotion).
  • Trigger: only when mirror-image reports copied == true.
  • Shape: new attach-acquisition-provenance composite action + record_acquisition_provenance input (default true) on _mirror-image.yml.

Work items

Metadata

Metadata

Assignees

No one assigned

    Labels

    acquireRelated to the Acquire stagefeatureNew feature or requestobservabilityRelated to Observability

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions