DBL Gateway
Project description
dbl-gateway
Records what was allowed before anything runs.
dbl-gateway puts a deterministic decision layer in front of non-deterministic execution.
Every request is recorded as:
INTENT → DECISION → PROOF → EXECUTION
DECISION happens first.
Execution stays non-normative.
The full chain is replayable.
1.0.0 marks the core boundary-to-decision contract as stable.
For the architecture entry point, see deterministic-boundary-layer.
Run it in 1 minute with Docker, or install the package and connect your own provider.
No API keys required:
docker compose --profile demo up demo
Open http://localhost:8010/ui and click Start Demo.
The demo runs scripted scenarios through the full governance pipeline. Use Manual Intent in the observer to submit your own requests — the gateway is a working runtime, not just a demo harness.
How it works
Every request passes through the same deterministic chain:
INTENT → DECISION → PROOF → EXECUTION
INTENT records what was asked. DECISION records what policy allowed — the only normative event. PROOF records what will be sent to the provider. EXECUTION records what happened.
Execution output never feeds back into policy.
Part of the Deterministic Boundary Layer architecture.
Use your own provider
cp .env.example .env # add one API key (OpenAI, Anthropic, or Ollama)
docker compose up
One active provider is enough. See .env.example for all options.
The default runtime boundary profile is operator:
/ingress/intent,/capabilities,/snapshot,/tail,/status,/surfaces, and/intent-templatestay available/ui/*is not exposed
For the boundary contract in detail, see env_contract.md, wire_contract.md, and CAPABILITIES.md.
Install
pip install dbl-gateway
Or from source:
pip install -e .
For a minimal Python helper over the raw HTTP surfaces, use
dbl_gateway.client.GatewayClient.
Reference implementation
dbl-gateway is the DBL runtime reference implementation.
INTENT → DECISION → PROOF → EXECUTION
DECISION is normative.
Execution is observational.
Replay is deterministic under fixed inputs and policy.
Observer UI
Open /ui only when the active boundary profile is demo.
The built-in observer includes the event stream, decision replay, chain verification, a policy inspector for DECISION events, manual intent submission, and the integrated demo controller.
Documentation
- QUICKSTART.md — first request, reading events, UI verification
- ARCHITECTURE.md — surfaces, component ownership, invariants
- CONTRACT_BOUNDARY.md — stable core contract vs evolving surface
- FIRST_INTEGRATION.md — start gateway, send one request, read decision, verify replay
- INTEGRATION_SLICE.md — raw send, decision inspection, and replay path
- OIDC_INTEGRATION.md — OIDC token mapping and concrete Entra example
- EMPIRICAL_VALIDATION.md — optional replay bench and policy-diff notes
- wire_contract.md — envelope format, tool gating, budget, refs
- env_contract.md — all environment variables
- observer.md — UI layout and verification routes
- demo.md — demo modes and scenario definition
- Full manifest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dbl_gateway-1.0.1.tar.gz.
File metadata
- Download URL: dbl_gateway-1.0.1.tar.gz
- Upload date:
- Size: 142.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0c9d2e0f93845d898c864698bc28a5ad9e25cd30e384cae119ebd6ca75c00d2
|
|
| MD5 |
563aa37407901157ee6e9c7325a5c82e
|
|
| BLAKE2b-256 |
9714a8f7be45b0d0398a6328c35a1b9773639454111f7fd6e68f4f1952a79eab
|
File details
Details for the file dbl_gateway-1.0.1-py3-none-any.whl.
File metadata
- Download URL: dbl_gateway-1.0.1-py3-none-any.whl
- Upload date:
- Size: 114.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a1aee79847df261c2dcab07734b29456fa7db4b7d93dd1fd00c5a4b48987996
|
|
| MD5 |
43896b30f9949558495b0158548bb7f7
|
|
| BLAKE2b-256 |
26241e0393cbb3ac7ef705e7558aef7a6e90947d449f64d36df97d54616b1539
|