Development environment
You need Python 3.12 or 3.13, uv, and Docker for the end-to-end stack. The docs site needs Node 24.
uv sync --locked --extra devuv run pytest tests/unit -qThe dev extra is enough for most work; tests that need an optional extra skip
themselves. Install more only for what you are changing:
| Working on | Add |
|---|---|
| Deep PII scanning | --extra pii |
| Discovery embeddings | --extra ml --extra vector |
| A connector | --extra connectors-tier1, --extra connectors-tier2 or --extra connectors-repo |
Type checking (make type) |
at least --extra ingestion |
| Everything CI runs | make install (several gigabytes) |
Running the services
Section titled “Running the services”make e2e-up && make e2e-seed runs the full seeded stack in Docker; see
Evaluate with the seeded stack. To
run a service from source against it, start only the databases and use the
module entry points, for example uv run python -m interlock.admin with the
INTERLOCK_* settings pointing at localhost:5433 and localhost:6380.
Infrastructure tools
Section titled “Infrastructure tools”make check-infra needs terraform, actionlint and helm. On Apple Silicon
use an arm64 build of terraform (terraform version reports darwin_arm64);
an x86_64 build under Rosetta makes validation appear to hang.