atherdlp-server
Local AtherDLP server: the DLP policy engine, REST API, and dashboard, served on one port with no external services.
AtherDLP detects sensitive data leaving your application. The SDK intercepts
outbound httpx requests, classifies the destination, and reports what was in
the payload. This package is the other half: it evaluates those events against
your policies and shows them in a dashboard.
Quick start
pipx install atherdlp-server
atherdlp up
That applies migrations to a SQLite database, seeds a few demo events so the dashboard is not empty on first run, and opens http://localhost:8473.
No Postgres, no Redis, no Docker, no Node toolchain — the compiled dashboard ships inside the package.
Then point your application at it:
pip install atherdlp
import atherdlp
atherdlp.configure(endpoint="http://127.0.0.1:8473/events/http")
atherdlp.install()
# your app's httpx calls happen here
atherdlp.uninstall()
configure() is required for events to reach the server. Without an
endpoint, the SDK still intercepts and classifies, but delivers nowhere and
the dashboard stays empty.
What you will see
Every intercepted request is classified by destination — calls to OpenAI,
Anthropic, Gemini, Mistral and Cohere are tagged as LLM egress, Stripe as PCI —
then matched against sensitive info types and evaluated against your policies to
an allow / alert / block decision. Activity and alerts are correlated by
trace id, so one leaked field can be followed from the call that sent it to the
alert it raised.
atherdlp up
| Flag | Default | Meaning |
|---|---|---|
--host |
127.0.0.1 |
Bind address |
--port |
8473 |
Port |
--data-dir |
~/.local/share/atherdlp |
Database and uploads |
--no-browser |
off | Do not open a browser |
--no-seed |
off | Skip demo data |
State persists between runs in --data-dir. Delete that directory for a clean
slate.
This server has no authentication yet. It binds to loopback by default, which keeps it private to your machine. Do not expose it on a public interface: the read APIs return captured payload samples, which are by definition the most sensitive data the tool handles.
Optional extras
pip install "atherdlp-server[ocr]" # image OCR — also needs the tesseract binary
pip install "atherdlp-server[postgres]" # Postgres instead of SQLite
OCR degrades gracefully: without these, image extraction is skipped rather than failing the request.
Running from source
git clone <org>/AtherDLP-backend && git clone <org>/AtherDLP-frontend
cd AtherDLP-backend
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[test]"
python scripts/build_frontend.py # builds the dashboard, needs npm
atherdlp up
Run the tests with pytest (they use an in-memory SQLite database).
To develop the dashboard with hot reload, run atherdlp up and
npm run dev in AtherDLP-frontend — the Vite dev server proxies /api to
port 8473.
Deployments beyond local mode
atherdlp up sets ATHERDLP_LOCAL_MODE=true, which runs scan tasks in-process
instead of dispatching to Celery. That is correct for a single process and wrong
for a multi-worker deployment, where inline scanning blocks the request that
triggered it. For that, leave local mode off and run Celery workers against
Redis with a Postgres ATHERDLP_DATABASE_URL.
License
Apache-2.0.
Metadata
Release files for atherdlp-server 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| atherdlp_server-0.1.1.tar.gz | 266.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| atherdlp_server-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 563.6 kB
Release files / atherdlp_server-0.1.1.tar.gz
| Download URL | atherdlp_server-0.1.1.tar.gz |
|---|---|
| Size | 266.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
10f591a2f4d5582c941743557b96829f2470e064c011b09e5e036f32cba65afc
|
|
BLAKE2b-256 checksum How to use checksums |
667cd44b1f667d5db3df1fc52a97b615da7be182be063438f81d3cf3928480b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / atherdlp_server-0.1.1-py3-none-any.whl
| Download URL | atherdlp_server-0.1.1-py3-none-any.whl |
|---|---|
| Size | 297.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f260c9790353d0a0646cd3479868a18274b8139c7d68ab55231e237d75315e2e
|
|
BLAKE2b-256 checksum How to use checksums |
c2c5a9f07f05b2869dd0a21299a2298b587eb8173444bb273c0c4abd8c7930f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Security for atherdlp-server 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.