Documentation
The registry speaks the OCI distribution spec, so your existing tools work unchanged. These pages cover the parts that are ours.
Authentication
Robot accounts for machines, OIDC for humans. Public pulls need no credentials at all.
# machine
docker login es-mirror-01.tabserv.link -u robot$ci -p $CH_TOKEN
# human, via your identity provider
ch auth loginPushing
Standard. The only thing worth knowing is that scanning runs before the tag becomes resolvable, which adds a few seconds to a first push and nothing to subsequent ones.
Pull-through cache
ch cache create --upstream docker.io --ttl 168h \
--credentials-from-secret dockerhub
ch cache create --upstream ghcr.io --ttl 168h
# rewrite in the cluster with a mutating webhook, or just change the image referenceRetention
Rules evaluate in order; the first match wins. Always dry run — the output lists every digest that would be removed and what still references it.
Scanning
Vulnerability data from three feeds, plus secret detection and a licence inventory. Results are stored as OCI referrers, so copying an image to another registry carries them along.
ch scan result es-mirror-01.tabserv.link/acme/api:2026.8.1 --format sarif
ch sbom get es-mirror-01.tabserv.link/acme/api:2026.8.1 --format spdx-jsonSigning
cosign sign --key ch://acme-release \
es-mirror-01.tabserv.link/acme/api@sha256:c0a24f2a…
cosign verify --key ch://acme-release \
es-mirror-01.tabserv.link/acme/api:2026.8.1Admission policy
A policy document evaluated by our admission controller in your cluster. It can require signatures, block on scan severity and enforce that images come from a repository you control.
block_on: critical without a grace period will stop deployments the first time a base image gets a new CVE. Start in warn mode and read the report for a week.