Data and privacy
Epure stores exception events you send. On self-host you control the Postgres volume, backups, and network. On Cloud, Epure runs the same binary. This page is the data and security reference. Replay, tracing, profiling, and application logs stay outside the product: Envelope. Default product behavior follows. This is not legal advice.
What lands in Postgres
| Data | Source | Notes |
|---|---|---|
| Exception type, message, stack | SDK event payload | JS/TS frames demangled when maps exist |
| Breadcrumbs | SDK | HTTP, console, navigation context |
Tags (environment, release, …) | SDK | Header filters in UI |
Optional user.id / user.email | SDK | Used for unique-user counts |
| Request headers / extras | SDK | Scrubbed at ingest (below) |
| Issue aggregates | Derived | Survive raw event TTL |
Epure stores crash context: exception type, message, stack, breadcrumbs, tags. It does not store arbitrary application logs.
Retention and deletion
Per-project retention_days: 14, 30 (default), or 90. Raw events live in monthly partitions; TTL drops old partitions. Issue rows and counts remain for triage history.
Configure in Project settings or PATCH /api/v1/projects/{id}: Projects.
Ingest scrubbing (secrets and patterns)
Before persist, the worker runs regex scrubbing on headers, breadcrumbs, and extra fields. Examples of patterns redacted to [REDACTED]:
- Bearer tokens and common
api_key/secret/passwordshapes - Credit-card-like number runs
- AWS
AKIA…access keys - Stripe
sk_live_/sk_test_keys
Sensitive header names (authorization, cookie, etc.) are replaced wholesale. User feedback email fields use the same rules: Ingest.
You still own instrumentation
Scrubbing reduces accidental secret leakage; it does not audit your SDK beforeSend hooks. Do not attach full PII blobs in extra if your policy forbids it.
Tenancy isolation
Dashboard queries use PostgreSQL RLS with app.current_org_id from the session. Ingest authenticates by DSN and writes only for that project’s org. Three database roles (migrate, ingest, app) — Settings, Configuration.
Operator checklist (compliance-friendly)
- Pick retention per project (minimize raw event age)
- Restrict dashboard access via RBAC
- Use HTTPS and secure session cookies in production
- Encrypt Postgres volumes and backups at rest (your platform)
- Document subprocessors: you operate the stack on self-host (managed hosting: Epure Cloud)
- Rotate leaked DSN keys from the UI
FAQ
Can I disable scrubbing?
Scrubbing is built into the ingest worker for all events. There is no per-project off switch. Adjust SDK payloads if you need fields preserved intentionally.
Does Epure sell or share my exception data?
On self-host, no — data stays on your infrastructure except what you forward (webhooks, exports). For managed workspaces, see Epure Cloud.
Where is the DPA?
Legal pages live on epure.sh (privacy / terms). Self-host operators typically act as their own controller for stack traces on their VPS.