Skip to main content

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)

Source distribution for atherdlp-server 0.1.1
File Size Uploaded Provenance
atherdlp_server-0.1.1.tar.gz 266.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for atherdlp-server 0.1.1
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page