Download safety
Is your download really Kiln?
You can check — in one command, in about ten seconds. Every Kiln release is stamped by the machine that built it, so you can confirm what you installed is the genuine article and not something swapped or tampered with on the way to you.
It came from our code
Each release is tied to one specific commit in our public repository — the exact code you can go and read.
Nobody touched it afterwards
The signature covers the file itself. Change a single byte and it stops matching. That includes us.
We can’t quietly rewrite it
The proof is filed in a public record that can only be added to, never edited. If we changed our story later, it would show.
Check it yourself
You don’t have to take our word for any of it. Download a release and ask GitHub to confirm it built the file — about ten seconds:
# One-time: GitHub's free command-line tool brew install gh # Download a release, then check it gh release download v1.2.0 -R codeofaxel/Kiln \ -p "kiln3d-1.2.0-py3-none-any.whl" gh attestation verify kiln3d-1.2.0-py3-none-any.whl \ --owner codeofaxel
A pass means GitHub itself confirms our build system produced that exact file, and tells you which commit it came from.
See everything inside it
Kiln is built on open-source libraries, and every release publishes the full list of them — names and exact versions. That list is what a security team feeds to a scanner to confirm nothing in the stack carries a known vulnerability. It ships in the two standard formats, so it drops into whatever tooling you already run:
# CycloneDX and SPDX, attached to every release gh release download v1.2.0 -R codeofaxel/Kiln \ -p "sbom.cdx.json" -p "sbom.spdx.json"
Both are produced by the same workflow that builds the release, and they list what actually ships when you install Kiln — not our development tooling — so what you scan is what you run.
Doing a formal security review?
The check above trusts GitHub’s API to do the lookup. To verify the signature independently — against the Sigstore transparency log, with the signing identity pinned — use cosign:
cosign verify-blob \
--bundle kiln3d-1.2.0-py3-none-any.whl.sigstore.json \
--new-bundle-format \
--certificate-identity-regexp \
'https://github\.com/codeofaxel/Kiln/\.github/workflows/publish\.yml@.*' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
kiln3d-1.2.0-py3-none-any.whlDownload the .sigstore.json bundle alongside the wheel. A pass prints Verified OK.
Releases are signed with short-lived certificates issued to the build workflow while it runs — Kiln holds no long-lived release-signing key, so there is none to steal or rotate. Build provenance is recorded as a SLSA v1.0 attestation; add --format json to the verify command to read the source repository, commit SHA, and workflow path, each checkable against the public repo.
Together these defeat a forged package published under our name (no certificate for our workflow’s identity), tampering after build (the signature covers the bytes), a build from modified source (the commit won’t match), and re-shipping an old vulnerable build under a new version (provenance carries the original commit).
The workflow that builds and signs each release lives in the same public repository, so this process is itself auditable.
Need the full evidence package? Under NDA we share our SOC 2 readiness assessment (in progress, not yet certified), completed CAIQ and SIG Lite questionnaires, and the on-prem deployment architecture. Email adam@kiln3d.com— or report a supply-chain concern to the same address.