Catalog PyPI
Back to packageRELEASE DETAILS

0.1.2

PyPI

agent-evidence-admission

Check that an artifact has the digest its compliance document, SBOM or attestation names.

admission-controlattestationdigestin-totosbomsupply-chain-security
Published20 Oct 2026
Direct dependencies0
Transitive dependenciesNot calculated

README

Version 0.1.2 documentation

agent-evidence-admission

Checks that an artifact has the digest its document names: a TEA artifact, a CycloneDX SBOM or VEX, or an in-toto statement.

It is for manufacturers, integrators and admission controllers that receive a compliance document for a release and need to know the document covers the bytes they actually hold.

Install

Start in a new directory with Python 3.10 or newer and uv. Install the checker in its own environment:

uv venv admission-env
uv pip install --python admission-env/bin/python agent-evidence-admission==0.1.2

Example

Create three known bytes and a synthetic in-toto statement that names their digest:

printf 'abc' > artifact.txt
cat > statement.json <<'JSON'
{
  "_type": "https://in-toto.io/Statement/v1",
  "subject": [{"name": "artifact.txt", "digest": {"sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"}}],
  "predicateType": "https://example.org/digest-demo/v1",
  "predicate": {}
}
JSON
admission-env/bin/agent-evidence-admission digest-check statement.json artifact.txt

It prints:

PASS artifact.txt has sha256:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, named in statement.json

A match binds the document to bytes. It does not verify a signature or admit a workload.

For an existing CycloneDX SBOM and JAR, provide both files in your working directory:

uvx agent-evidence-admission==0.1.2 digest-check bom.json log4j-core-2.26.1.jar

The check runs three steps: read the document (a path or an https URL), recompute the artifact's digest with every algorithm the document names, and compare. It prints one line and exits 0 when a named digest matches:

PASS log4j-core-2.26.1.jar has sha512:..., named in bom.json

It exits 1 with FAIL digest-mismatch when the bytes differ, or FAIL no-digest-named when the document names no digest at all, and 2 when the document or the artifact could not be read. Plain http URLs are refused.

Status

Version 0.1.2. The Kubernetes admission policies (Rego, Kyverno, policy-controller) live in the same repository; see the repository README.

Build packages

From the repository root, check the license copy, build both archives and check their license text and metadata:

python scripts/python-license-gate.py
python -m build python --outdir dist
python scripts/python-license-gate.py --dist dist

The repository LICENSE is the source of the existing Apache-2.0 grant. python/LICENSE is its byte-for-byte distribution copy because license-file paths must stay within the Python project. Copy the root file when it changes; the gate refuses drift. Both the wheel and source archive include that text, and the source archive can build without the repository parent.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 0

Native requirements
0 direct targetsNot calculated transitive count
No declared dependencies in this collected response

Declarations describe requirements; they are not a resolved dependency graph.

Distribution files

2 collected
agent_evidence_admission-0.1.2-py3-none-any.whl

bdist_wheel · 10.61 KB · Python py3

Source file
agent_evidence_admission-0.1.2.tar.gz

sdist · 10.86 KB · Python source

Source file

Repository

PENDING
probityai/agent-evidence

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:53 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:86fb95f0091f3fc9b0b5f6d22f69bea786fc143bb6dcdf0a4addb62fda4edb83

Other collected versions

View all collected versions →