Skip to content

Quickstart

Three ways to get a first result. All of them use the built-in mock provider and synthetic data. No credentials are needed.

Option A: GitHub Codespaces

Open the repository on GitHub, choose Code, then Codespaces, then create a codespace on main. The dev container installs uv, the project with every extra and the opa binary, then verifies the OPA checksum. When the terminal appears:

uv run soclab compare --out runs/demo

Details are in .devcontainer/README.md in the repository.

Option B: Local install

Requires Python 3.12, uv and the opa binary (version 1.20.2 is what CI uses) on PATH or in tools/.

git clone https://github.com/prasenjitsingh5/soc-agent-assurance-lab.git
cd soc-agent-assurance-lab
uv sync --extra dev --extra security
uv run soclab compare --out runs/demo

Open runs/demo/executive.html. Then check that the evidence chain is intact:

uv run soclab verify-chain

Option C: Docker Compose

Starts the API, OPA, PostgreSQL and Redis as a local profile.

cp infrastructure/docker/postgres_password.example infrastructure/docker/postgres_password.local
make up
curl http://127.0.0.1:8000/api/v1/scenarios
make down

What you should see

With the mock provider the comparison is deterministic:

Baseline Protected
Attacks that succeed 9 of 12 0 of 12
Canary secret reaches evidence yes no
Recommended authority L1 Observe L4 Act with approval

The demo script explains each step, including how to tamper with the evidence store and watch verification fail.

Bring your own model

Set the provider's environment variable and pick it on the command line:

export OPENAI_API_KEY=...
uv run soclab investigate --provider openai --mode protected

The registry refuses providers that are not configured or not approved. Provider compatibility lists what each adapter supports. Custom provider shows how to add one.

Development checks

make verify     # ruff, mypy strict, pytest, opa test
make security   # bandit, pip-audit

The engineering standards describe what every change must satisfy.