Configure what counts as PII once — built-in recognizers, your own patterns, the NER model — and Veil enforces it across nine surfaces with the same vault, the same receipts and the same evidence trail.
POST text, get it back redacted — with detections, a risk profile and optionally a signed receipt. Upload PDFs, scans, spreadsheets and docs: Veil redacts in the original format (true black-box PDFs, image boxes, cell-level XLSX/CSV), lets reviewers keep or redact each item, and returns a same-format download plus receipt.
curl -X POST https://veil.example/api/policies/1/redact?receipt=true \
-H 'X-Veil-Api-Key: vk_…' -H 'Content-Type: application/json' \
-d '{"text":"Priya Sharma, priya@example.com, card 4111 1111 1111 1111"}'
{ "redacted": "<PERSON>, <EMAIL>, card <CREDIT_CARD>",
"detections": [{"type":"PERSON","start":0,"end":12,"score":0.93}, …],
"receipt": { "id":"rcpt_…", "alg":"Ed25519", "manifest": { … } } }Flow: payslips → HR system
source SFTP /incoming (or S3, IMAP, Drive, Dropbox, OneDrive, HTTP, portal)
classify teachable type "Payslip" (pack) · confidence ≥ 0.8
LOOKUP employee by ID → HR API / JDBC / reference table
CONSENT_CHECK purpose=hr_administration → ALLOW / REDACT / TOKENIZE / REVIEW / DROP
REDACT policy "hipaa-safe-harbor" (same-format artifact)
EXTRACT → Kafka topic + webhook, payload.receipt attached
residency EU · ENFORCEAnnotate a handful of examples, train and benchmark (leave-one-out), publish with rollback. Flows pull from storage, mail, drives and SaaS, extract fields, enrich and look up context from your systems, decide on consent, redact, and deliver — with review queues, retention, legal hold, SLA alerts, near-duplicate detection, AI-assisted auditing and reconciliation rules.
Discover and classify PII columns, then mask DB-to-DB with FPE and synthetic strategies that keep referential integrity, or cut a consistent subset across foreign keys. Every export can carry a re-identification risk gate: if k-anonymity over your quasi-identifiers falls below the floor, the job fails and the output is withdrawn.
k-min, k-avg, unique rows, rows in classes < 5, l-diversity, a 0–100 score and verdict — on any table or record set, and as a gate on masking and subset jobs. Because "masked" is not the same as "safe".
Consume, redact every message with a policy, produce clean. Declare a purpose and a JSONPath to the data subject and Veil checks consent per message — drop, divert to a denied topic, or forward. Counters and a receipt per run.
Stream redaction for Kafka / Redpanda clusters and bucket jobs for S3 / MinIO (CSV, NDJSON, text — line by line, checkpointed, resumable). Same policies, same vault, same metering.
Point your collector at Veil's OTLP logs endpoint or Splunk HEC; bodies and attributes are redacted and forwarded to Datadog, Loki, Splunk or any OTLP backend via forwarding profiles. Per-surface metrics land in Prometheus / Grafana.
exporters:
otlphttp:
endpoint: https://veil.example/v1/logs # Veil redacts → forwards
headers: { X-Veil-Api-Key: vk_… }from openai import OpenAI
client = OpenAI(base_url="https://veil.example/ai/support-bot/v1", api_key="vgw_…")
# prompts: PII → vault tokens · blocked types → 403 · consent for the route purpose checked per call
# answers: detokenized for the caller's audience (X-Veil-Audience) · receipt in X-Veil-Receipt
# agents: POST /ai/support-bot/mcp — tool args & results get the same DLP, indirect injection blocked
# RAG: POST /ai/support-bot/v1/ingest — documents cleaned + chunked before embeddingWire-compatible with OpenAI and Anthropic SDKs. Redact or tokenize prompts, block listed types, rate-limit, flag or block prompt injection, enforce residency and consent per call, and return real values only to the audience that may see them. Agents get the same guarantees on every tool call; ingestion pipelines get redact-before-embed with a signed batch receipt.
Turn a Veil policy and your classification into native masking policies — Snowflake, Databricks, BigQuery, Redshift, SQL Server, Oracle, Postgres (anonymizer) — generated, reviewed, applied.
Deterministic tokens (same value → same token) across tables, streams and LLM hops. Reveal levels — full, partial, synthetic, none — per role and per audience; every reveal is audited. Consent-denied documents can be tokenized instead of dropped.
A purpose taxonomy with legal basis; Veil-managed consent records (CSV import) or CMP presets (Ketch, OneTrust, Transcend); purpose-based reports showing what ran under which purpose — and what ran with none.
Auditor-ready evidence per framework and month: coverage, activity, discovery register, purpose limitation, audit-chain integrity, governance configuration.
Orgs, teams, grants; OIDC SSO (Keycloak, Okta, Entra); SCIM 2.0 provisioning; API keys with roles; per-org entitlements and quotas; Stripe metered billing.
Version registry with rollback, FP/FN feedback loop, benchmarks per type and language, gold-set upload, accuracy floors, printable model card.
Per-surface Micrometer metrics, Grafana dashboards, a live metrics console, tamper-evident audit chain with verification.
Regions on every connection, residency per flow/route (warn / enforce → 451), network egress allow-list, all attested in receipts.