Data Loss Prevention, rewritten for a world where the biggest egress channel is the prompt box on your screen.
Audience: Everyone AI OpSec Foundations
Classic Data Loss Prevention is a set of controls that watch the ways data can leave your organization — email, uploads, USB, chat — and block or flag anything sensitive.
AI adds a new egress channel that most classic DLP tools do not see: the prompt box. Every time you paste into a chat window, an IDE assistant, or a browser extension, you are performing an egress event.
DLP while using AI = preventing sensitive data from entering a prompt in the first place.
| Class | Examples |
|---|---|
| Never | Secrets, credentials, API keys, PII of real customers |
| Enterprise tier only | Source code, internal docs, infra diagrams, ticket contents with internal names |
| With redaction | Stack traces, SQL, log snippets, configs |
| Free | Public docs, open-source, generic questions |
If the answer is no, do not paste it into a prompt.
Traceback (most recent call last):
File "/srv/acme/orders/api.py", line 142, in checkout
user = db.get_user("jane.smith@acme.corp")
ConnectionError: could not connect to
db-prod-3.internal.acme.corp:5432
Traceback (most recent call last):
File "<app>/orders/api.py", line 142, in checkout
user = db.get_user("<user@example.com>")
ConnectionError: could not connect to
<db-host>:5432
Keep the shape, mask the values. The model can still diagnose the error.
SELECT order_id, total, status
FROM orders_prod_2026
WHERE customer_id = 'cust_84312'
AND created_at >= '2026-01-01'
AND created_at < '2026-02-01';
SELECT order_id, total, status
FROM orders_table
WHERE customer_id = '<customer_id>'
AND created_at >= '2026-01-01'
AND created_at < '2026-02-01';
Dates alone are low-risk. Real table names and real customer IDs are not.
If it can reach the model, it is a prompt. Treat it like one.
It changes what the provider promises to keep on disk by default. It does not change physics, law, or operational reality.
User alice@acme.corp reports that
POST /api/v2/sessions/refresh returns
401 even though her cookie
SESSION=abc123xyz789qrs456tuv
is still inside its TTL.
cc @platform-core @identity-team
A user reports that
POST /sessions/refresh returns 401
even though the session cookie
appears to still be inside its TTL.
What are common causes?
Describe the bug. Never paste a live cookie "to illustrate the shape."
<placeholder>, keep the structure intact.