Image
catalog:latest
ghcr.io/northcutted/clearcutt-showcase/apps/catalog
Catalog service (Python 3.14, stack python:1)
Verified. Meets every requirement in the policy.
Identity
- Digest
sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdf- Tags
latest- Created
- 2026-10-16 00:00 UTC
- Built by
clearcutt-factory(clearcutt-factory recipe)- Source
- https://github.com/northcutted/clearcutt-showcase-catalog at
52f7db821a38db1ca04ba0d5efe57845138d897eFrom provenance. Read from build provenance that verified. - clearcutt-factory
- App catalog; built with v0.2.0; pins 0 packages, 0 tools, 5 images; files clamped to 2026-10-16
- Stack
pythonfrom the registry stackghcr.io/northcutted/clearcutt-showcase/stacks/python:1, pinned atsha256:27b0653b10d1.Version: Current. Pinned to the version the stack's tag names now. · Signature: Verified. Found, and checked against a trusted signer in the policy. · Every version of this stack
Base
- Built on
ghcr.io/northcutted/clearcutt-showcase/platform/run-python:3.14(run-python:3.14)sha256:daf68a5f8a3b218366e3ce847d9e4caedaaf4eb2566e4da08e0168a695a8f68a- How it's known
- Proven. The image starts with the base's exact layer digests. This compares content, so it holds whatever the image says about itself. by layer digests, comparing the linux/amd64 images. The image starts with the base's exact layer digests. This compares content, so it holds whatever the image says about itself.
- Currency
- Current. On the newest version of its base observed in this run.Newest observed:
ghcr.io/northcutted/clearcutt-showcase/platform/run-python:3.14sha256:daf68a5f8a3bMeasured against the newest version observed in this run, not against upstream.
Evidence
| Evidence | Status | Signed by | Found as | When | Detail |
|---|---|---|---|---|---|
| Signature | Verified. Found, and checked against a trusted signer in the policy. | https://github.com/northcutted/clearcutt-factory/.github/workflows/images.yml@refs/tags/v0.2.0issuer https://token.actions.githubusercontent.com run in https://github.com/northcutted/clearcutt-showcase-catalog | cosign signature | 2026-10-17 12:14 UTC | ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:d4767eb9effe34e6759a0b6458813c47d595c0a0341992b9c72dc855d24933f5 |
| SBOM | Verified. Found, and checked against a trusted signer in the policy. | https://github.com/northcutted/clearcutt-factory/.github/workflows/images.yml@refs/tags/v0.2.0issuer https://token.actions.githubusercontent.com run in https://github.com/northcutted/clearcutt-showcase-catalog | cosign attestation | 2026-10-17 12:14 UTC |
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:a375620caab2d3f30b31d54eabf62f09048622935dfeeb15cfb9628ccd634e14 |
| Vulnerability report | Verified. Found, and checked against a trusted signer in the policy. | https://github.com/northcutted/clearcutt-factory/.github/workflows/images.yml@refs/tags/v0.2.0issuer https://token.actions.githubusercontent.com run in https://github.com/northcutted/clearcutt-showcase-catalog | cosign attestation | 2026-10-17 12:14 UTC |
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:43667050cbb33aa5ab45ddf3f387bea9e80c769e23431c698ce9374afea98d2a |
| SLSA provenance | Verified. Found, and checked against a trusted signer in the policy. | https://github.com/northcutted/clearcutt-factory/.github/workflows/images.yml@refs/tags/v0.2.0issuer https://token.actions.githubusercontent.com run in https://github.com/northcutted/clearcutt-showcase-catalog | GitHub attestation | 2026-10-17 12:15 UTC | ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:8ab676e3b9fbd6269d961de644e1d00293043e2d27f9492941ab32488f0d5ff8 |
| Recipe | Verified. Found, and checked against a trusted signer in the policy. | https://github.com/northcutted/clearcutt-factory/.github/workflows/images.yml@refs/tags/v0.2.0issuer https://token.actions.githubusercontent.com run in https://github.com/northcutted/clearcutt-showcase-catalog | cosign attestation | 2026-10-17 12:14 UTC | ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:e81a1dac27b6fc18a77f772f540872e329c0a5f0f1d4bfe136df2337f317970d |
| Rebase record | Not applicable. Doesn't apply to this image. | — | — | — | No rebase record: the image was built, not rebased. |
| Tests | Declared in recipe. The image's verified recipe declares a smoke test, which clearcutt-factory runs on every platform before it pushes, and it pushes nothing that fails. Nothing attests that the test ran, so it is a claim, not proof. | — | declared in the recipe | — | The verified recipe declares a smoke test (GET :8080/healthz) that clearcutt-factory runs on every platform before it pushes; the result isn't separately attested. |
Check it yourself
Commands that check what this page says without trusting this site or the report: each signature and attestation the report says verified, against the signer the policy trusts, a rebuild, and the verdict. They name the image by its digest, ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdf, never by a tag that could move. Every value comes from the report and is quoted for a POSIX shell (sh, bash, zsh).
cosign verify \
--certificate-identity-regexp='^https://github\.com/northcutted/clearcutt-factory/\.github/workflows/(images|fleet)\.yml@refs/tags/v\d+\.\d+\.\d+$' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository=northcutted/clearcutt-showcase-catalog \
--certificate-github-workflow-ref=refs/heads/main \
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdfcosign verify-attestation \
--type=https://cyclonedx.org/bom \
--certificate-identity-regexp='^https://github\.com/northcutted/clearcutt-factory/\.github/workflows/(images|fleet)\.yml@refs/tags/v\d+\.\d+\.\d+$' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository=northcutted/clearcutt-showcase-catalog \
--certificate-github-workflow-ref=refs/heads/main \
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:f496f972939c87601e3b18c592deb925a84145ae53ebbbfa37f6106c89ca8d98cosign verify-attestation \
--type=https://cyclonedx.org/bom \
--certificate-identity-regexp='^https://github\.com/northcutted/clearcutt-factory/\.github/workflows/(images|fleet)\.yml@refs/tags/v\d+\.\d+\.\d+$' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository=northcutted/clearcutt-showcase-catalog \
--certificate-github-workflow-ref=refs/heads/main \
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:59a07ba95e20a18ed123d2826d2ca55bf6a99ed3a57024c6ea852d36f8d37444cosign verify-attestation \
--type=https://cosign.sigstore.dev/attestation/vuln/v1 \
--certificate-identity-regexp='^https://github\.com/northcutted/clearcutt-factory/\.github/workflows/(images|fleet)\.yml@refs/tags/v\d+\.\d+\.\d+$' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository=northcutted/clearcutt-showcase-catalog \
--certificate-github-workflow-ref=refs/heads/main \
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:f496f972939c87601e3b18c592deb925a84145ae53ebbbfa37f6106c89ca8d98cosign verify-attestation \
--type=https://cosign.sigstore.dev/attestation/vuln/v1 \
--certificate-identity-regexp='^https://github\.com/northcutted/clearcutt-factory/\.github/workflows/(images|fleet)\.yml@refs/tags/v\d+\.\d+\.\d+$' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository=northcutted/clearcutt-showcase-catalog \
--certificate-github-workflow-ref=refs/heads/main \
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:59a07ba95e20a18ed123d2826d2ca55bf6a99ed3a57024c6ea852d36f8d37444cosign verify-attestation \
--type=https://slsa.dev/provenance/v1 \
--certificate-identity-regexp='^https://github\.com/northcutted/clearcutt-factory/\.github/workflows/(images|fleet)\.yml@refs/tags/v\d+\.\d+\.\d+$' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository=northcutted/clearcutt-showcase-catalog \
--certificate-github-workflow-ref=refs/heads/main \
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdfcosign verify-attestation \
--type=https://github.com/northcutted/clearcutt-factory/recipe/v1 \
--certificate-identity-regexp='^https://github\.com/northcutted/clearcutt-factory/\.github/workflows/(images|fleet)\.yml@refs/tags/v\d+\.\d+\.\d+$' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository=northcutted/clearcutt-showcase-catalog \
--certificate-github-workflow-ref=refs/heads/main \
ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdfgh attestation verify \
oci://ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdf \
--bundle-from-oci \
--repo=northcutted/clearcutt-showcase-catalog \
--signer-workflow=github.com/northcutted/clearcutt-factory/.github/workflows/images.yml \
--source-ref=refs/heads/mainclearcutt-factory verify \
--image=ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdf \
--certificate-identity-regexp='^https://github\.com/northcutted/clearcutt-factory/\.github/workflows/(images|fleet)\.yml@refs/tags/v\d+\.\d+\.\d+$' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository=northcutted/clearcutt-showcase-catalogcd "$(mktemp -d)"
printf '%s\n' ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdf > refs.txt
printf '%s\n' '{"apiVersion":"clearcutt.dev/v1","kind":"VerificationPolicy","required":["signature","sbom","vulnerabilityScan","provenance","recipe"],"trustedSigners":[{"identityRegexp":"^https://github\\.com/northcutted/clearcutt-factory/\\.github/workflows/(images|fleet)\\.yml@refs/tags/v\\d+\\.\\d+\\.\\d+$","issuer":"https://token.actions.githubusercontent.com","sourceRepository":"https://github.com/northcutted/clearcutt-showcase-platform","sourceRef":"refs/heads/main","sourceMatchesImage":true},{"identityRegexp":"^https://github\\.com/northcutted/clearcutt-factory/\\.github/workflows/(images|fleet)\\.yml@refs/tags/v\\d+\\.\\d+\\.\\d+$","issuer":"https://token.actions.githubusercontent.com","sourceRepository":"https://github.com/northcutted/clearcutt-showcase-checkout","sourceRef":"refs/heads/main","sourceMatchesImage":true},{"identityRegexp":"^https://github\\.com/northcutted/clearcutt-factory/\\.github/workflows/(images|fleet)\\.yml@refs/tags/v\\d+\\.\\d+\\.\\d+$","issuer":"https://token.actions.githubusercontent.com","sourceRepository":"https://github.com/northcutted/clearcutt-showcase-catalog","sourceRef":"refs/heads/main","sourceMatchesImage":true},{"identityRegexp":"^https://github\\.com/northcutted/clearcutt-factory/\\.github/workflows/(images|fleet)\\.yml@refs/tags/v\\d+\\.\\d+\\.\\d+$","issuer":"https://token.actions.githubusercontent.com","sourceRepository":"https://github.com/northcutted/clearcutt-showcase-storefront","sourceRef":"refs/heads/main","sourceMatchesImage":true}],"failOn":"critical","onlyFixed":true,"maxDaysBehind":7,"stackSigners":[{"identity":"https://github.com/northcutted/clearcutt-showcase-platform/.github/workflows/stacks.yml@refs/heads/main","issuer":"https://token.actions.githubusercontent.com"}]}' > policy.json
clearcutt-verify estate verify \
--refs=refs.txt \
--policy=policy.json \
--platforms=linux/amd64,linux/arm64 \
--out=estateNo command for Tests: it isn't verified, so there is no trusted signer to check it against.
Needs cosign, gh attestation, clearcutt-factory, clearcutt-verify, as of clearcutt-verify v0.16.0, which wrote this report.
Vulnerabilities
From the publisher's signed report (grype 0.118.0), made 2026-10-17 12:14 UTC, 1 day before this report. The findings describe that day. The report itself is Verified. Found, and checked against a trusted signer in the policy..
| critical | high | medium | low | negligible | unknown | |
|---|---|---|---|---|---|---|
| Findings | 0 | 0 | 1 | 0 | 0 | 0 |
| With a fix | 0 | 0 | 0 | 0 | 0 | 0 |
1 findings
| ID | Package | Version | Severity | Fixed in | Platforms |
|---|---|---|---|---|---|
| CVE-2025-15367 | python-3.14 | 3.14.8_git20261014-r0 | medium | no fix known | linux/amd64, linux/arm64 |
Tests and rebuilds
- Tests
- Declared in recipe. The image's verified recipe declares a smoke test, which clearcutt-factory runs on every platform before it pushes, and it pushes nothing that fails. Nothing attests that the test ran, so it is a claim, not proof. The verified recipe declares a smoke test (GET :8080/healthz) that clearcutt-factory runs on every platform before it pushes; the result isn't separately attested.
- Rebuild
- Reproduced. Rebuilt, and the rebuild has the same digest. rebuilt from the signed recipe, 2026-10-17 12:16 UTCRebuild gave
sha256:53c76ac7c0e9fd5eee41d8423b3d7801c11abdb7a2604d8f884e637b59be9cdf, the same digest as the image.Reproduced from the recipe verified on this image by clearcutt-factory v0.2.0 on https://github.com/northcutted/clearcutt-showcase-catalog/actions/runs/39031596076/attempts/1, as its verified reproduction attestation says; this run didn't rebuild it.Checked by a clearcutt-factory reproduction attestation, verified against a trusted signer; this run didn't rebuild it.Attestation signed byhttps://github.com/northcutted/clearcutt-factory/.github/workflows/images.yml@refs/tags/v0.2.0(issuer https://token.actions.githubusercontent.com)ghcr.io/northcutted/clearcutt-showcase/apps/catalog@sha256:aa7568e12ad405bfe8dfcf75d837780f0df3ae885cc5774e6d1bf052b21aef13Where it was reproduced, as the attestation says:- Run: https://github.com/northcutted/clearcutt-showcase-catalog/actions/runs/39031596076/attempts/1
- Workflow
northcutted/clearcutt-showcase-catalog/.github/workflows/factory.yml@refs/heads/main, jobreproduce - Machine: github-hosted, linux/amd64
- clearcutt-factory
v0.2.0 - BuildKit
moby/buildkit:v0.33.1@sha256:cec9f139f45e93c5c69c60f8b07cfad9f43f4ef6b6a6cd917527fea5ff2e3dea
Rebase history
Not applicable. Doesn't apply to this image. No rebase record: the image was built, not rebased.
This image over time
This image in each run that recorded per-image rows, newest first, and how it changed since the run before: rebuilt or rebased (a new digest), or its base moved (the same image, its base more or less current). Compare two runs for every image at once.
| Run | Digest | Verdict | Base | Critical | High |
|---|---|---|---|---|---|
| 2026-10-19 07:41 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-19 01:05 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-19 01:02 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-19 00:27 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-19 00:20 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-18 14:29 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-18 14:11 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-18 14:10 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-18 07:25 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-17 14:43 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-17 14:38 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-17 14:06 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-17 14:03 UTC | sha256:53c76ac7c0e9 | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-17 12:20 UTC | sha256:53c76ac7c0e9rebuilt on a new base | Verified | Proven, currentsha256:daf68a5f8a3b | 0 | 0 |
| 2026-10-17 07:25 UTC | sha256:b5944261ebe6 | Verified | Proven, currentsha256:4844ef0efd83 | 4 | 22 |
| 2026-10-17 03:58 UTC | sha256:b5944261ebe6rebuilt on a new base | Verified | Proven, currentsha256:4844ef0efd83 | 4 | 22 |
| 2026-10-17 01:19 UTC | sha256:15bf287835f1 | Verified | Proven, currentsha256:db399d4a7592 | 0 | 0 |
? means unknown: the run had no vulnerability data for this image.
Platforms
| Platform | Digest | Layers | Compressed size |
|---|---|---|---|
| linux/amd64 | sha256:f496f972939c87601e3b18c592deb925a84145ae53ebbbfa37f6106c89ca8d98 | 14 | 33 MB |
| linux/arm64 | sha256:59a07ba95e20a18ed123d2826d2ca55bf6a99ed3a57024c6ea852d36f8d37444 | 14 | 31 MB |
Packages
Read from its SBOM, which is Verified. Found, and checked against a trusted signer in the policy.; the union of the linux/amd64, linux/arm64 images' lists.
47 package versions
| Package | Version | Type |
|---|---|---|
| anyio | 4.15.1 | pypi |
| apk-tools | 2.14.10-r17 | apk |
| busybox | 1.38.0-r3 | apk |
| ca-certificates-bundle | 20260909-r2 | apk |
| catalog | 1.0.0 | pypi |
| click | 8.5.0 | pypi |
| gdbm | 1.26-r7 | apk |
| glibc-2.44 | 2.44-r8 | apk |
| glibc-2.44-locale-posix | 2.44-r8 | apk |
| h11 | 0.16.0 | pypi |
| idna | 3.20 | pypi |
| ld-linux-2.44 | 2.44-r8 | apk |
| libbrotlicommon1 | 1.2.0-r6 | apk |
| libbrotlidec1 | 1.2.0-r6 | apk |
| libbrotlienc1 | 1.2.0-r6 | apk |
| libbz2-1 | 1.0.8-r25 | apk |
| libcrypt1-2.44 | 2.44-r8 | apk |
| libcrypto3 | 3.6.5-r2 | apk |
| libexpat1 | 2.9.0-r0 | apk |
| libffi | 3.8.0-r2 | apk |
| libgcc | 16.2.0-r1 | apk |
| libssl3 | 3.6.5-r2 | apk |
| libstdc++ | 16.2.0-r1 | apk |
| libuuid | 2.42.4-r0 | apk |
| libxcrypt | 4.5.2-r6 | apk |
| libxml2-16 | 2.15.4-r1 | apk |
| libzstd1 | 1.5.7-r10 | apk |
| mpdecimal | 4.0.1-r4 | apk |
| ncurses | 6.6.20261010-r0 | apk |
| ncurses-terminfo-base | 6.6.20261010-r0 | apk |
| openssl-4.0-libcrypto | 4.0.3-r7 | apk |
| openssl-4.0-libssl | 4.0.3-r7 | apk |
| openssl-provider-legacy-allowed | 4.0.3-r1 | apk |
| py3-pip-wheel | 26.2.1-r4 | apk |
| python-3.14 | 3.14.8_git20261014-r0 | apk |
| python-3.14-base | 3.14.8_git20261014-r0 | apk |
| readline | 8.3-r3 | apk |
| sqlite-libs | 3.54.1-r0 | apk |
| starlette | 1.8.0 | pypi |
| typing-extensions | 4.16.0 | pypi |
| tzdata | 2026e-r0 | apk |
| uvicorn | 0.54.0 | pypi |
| wolfi-base | 1-r7 | apk |
| wolfi-baselayout | 20230201-r30 | apk |
| wolfi-keys | 1-r13 | apk |
| xz | 5.8.4-r0 | apk |
| zlib | 1.3.2.1_rc20260921-r0 | apk |