Get the SBOM for your release
The release page of every supported Putki release carries a CycloneDX software bill of materials (SBOM) for each artifact your edition receives: one per container image and one per plugins archive. For the 2026.03 and 2026.06 lines, that is their latest patch release. Each lists the packages and libraries inside that artifact, with their versions and package URLs, so your security, compliance and procurement teams can inventory what you run without scanning it themselves.
| File | Describes |
|---|---|
sbom-<image>-<release>.cdx.json | One image, for example sbom-putki-web-2026.09.02.cdx.json for forge.putki.io/putki/putki-web:2026.09.02 |
sbom-plugins-<release>-<edition>.cdx.json | The plugins archive plugins-<release>-<edition>.zip |
sbom-plugins-<release>.cdx.json | 2026.03 and 2026.06: the one plugins archive plugins-<release>.zip |
The SBOMs are made with Trivy, the scanner behind our vulnerability scans and the VEX file, so all three name packages the same way. An SBOM lists what is in the artifact; it does not list vulnerabilities, because those change every day. For our assessment of those, use the VEX file.
Before you start
- A forge.putki.io account with access to your edition's downloads, and an access token with repository: Read (see Install Putki plugins).
curlandjq.
1. Download the SBOMs
Set your edition (basic, professional or enterprise) and the release you run. From 2026.09,
each edition has its own release repository, putki/putki-dist-<edition>. The 2026.03 and
2026.06 lines were released before the editions, on putki/putki-dist:
EDITION=professional
RELEASE=2026.09.02
REPO=putki-dist-${EDITION} # 2026.03 and 2026.06: REPO=putki-dist
curl -sS -u "<forgejo-username>:<token>" \
"https://forge.putki.io/api/v1/repos/putki/${REPO}/releases/tags/v${RELEASE}" \
| jq -r '.assets[] | select(.name|startswith("sbom-")) | .browser_download_url' \
| while read -r url; do curl -sS -L -O -u "<forgejo-username>:<token>" "$url"; done
You can also download them by hand from your edition's release page on forge.putki.io.
2. Check that an SBOM matches what you run
An image SBOM names the image it describes and its digest. Compare it with the image you pulled:
jq -r '.metadata.component.name, (.metadata.component.properties[]?
| select(.name=="aquasecurity:trivy:RepoDigest") | .value)' sbom-putki-web-2026.09.02.cdx.json
docker image inspect --format '{{index .RepoDigests 0}}' forge.putki.io/putki/putki-web:2026.09.02
The two digests are the same when you run the image the SBOM describes.
3. Use it
- Inventory and licences: load the files into your SBOM tool (Dependency-Track, for
example), or list the components directly:
jq -r '.components[] | [.name, .version, .purl] | @tsv' sbom-putki-web-2026.09.02.cdx.json. - Vulnerabilities: scan the SBOM instead of the image, with our assessments applied:
trivy sbom --vex vex.json sbom-putki-web-2026.09.02.cdx.json, orgrype sbom:sbom-putki-web-2026.09.02.cdx.json --vex vex.json. See Use the VEX file with your scanner for the VEX file.
If something is missing
- No SBOM for an image. Older releases shipped fewer images than today; there is an SBOM for every image the release has.
- The digests differ. You pulled the tag at another time, or from another release. Pull the release named in the file, or download the SBOMs of the release you run.