Quickstart¶
Requirements¶
| Need | For |
|---|---|
| Python 3.12+ | Everything |
| uv | Dependencies and running commands |
| Docker daemon | make demo only |
Install¶
uv sync installs the package, its console scripts and the dev dependency group from uv.lock.
Offline checks¶
| Target | Runs |
|---|---|
make lint |
ruff check, ruff format --check ., mypy (strict) |
make test |
pytest -q |
make check |
lint then test |
Offline tests need no SPIRE. They use LocalSvidIssuer, a local ES256 key that stands in for SPIRE and mints JWT-SVIDs. mcp-svid-authz --static-jwks accepts a JWKS file for the same purpose.
Optional anonymization check: put one term per line in tests/denylist.txt (git-ignored). tests/test_no_identifiers.py then fails on any match in the tree or history.
SPIRE demo¶
make demo runs deploy/demo.sh, which:
- Starts the SPIRE server (1.15.3, pinned by digest) and exports its bundle.
- Generates a join token and starts the SPIRE agent.
- Registers five workloads by container label (
deploy/register.sh). - Builds and starts
authz,notes-aandnotes-b. - Runs the four demo scenarios and prints the audit lines.
make down removes the compose stack and its volumes.
Build these docs¶
The site is written to site/ (git-ignored).