Epure

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

DataSourceNotes
Exception type, message, stackSDK event payloadJS/TS frames demangled when maps exist
BreadcrumbsSDKHTTP, console, navigation context
Tags (environment, release, …)SDKHeader filters in UI
Optional user.id / user.emailSDKUsed for unique-user counts
Request headers / extrasSDKScrubbed at ingest (below)
Issue aggregatesDerivedSurvive 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 / password shapes
  • 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
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.