Security & data handling

Your logs stay on your infrastructure

This page describes how Purl is built and what purlogs.com stores. It describes architecture, not certifications — see the note at the bottom for what we deliberately do not claim.

Self-hosting and data residency

Purl is a self-hosted server. The Purl backend, its ClickHouse database and the dashboard all run on infrastructure you control — your servers, your cloud account, your Kubernetes cluster. Log data is written to your ClickHouse instance and is never transmitted to purlogs.com. Data residency is therefore whatever you choose when you decide where to deploy.

Retention is controlled by you as well: the backend applies the TTL set through the PURL_RETENTION_DAYS environment variable on your own ClickHouse. We cannot see, extend or shorten it.

purlogs.com — this website — does one job: accounts, subscriptions and license keys. It is not a log ingestion endpoint and has no API that can read your logs.

How license keys work

A license key is a JSON Web Token signed with RS256. It carries the plan, the enabled feature IDs, the plan limits, an expiry, and the account email it was issued to. purlogs.com holds the private key; your Purl installation only ever needs the matching public key.

  • With the public key configured (PURL_LICENSE_PUBLIC_KEY), the self-hosted backend verifies the signature and expiry locally. Feature gating works with no network call to purlogs.com.
  • If no public key is configured, the backend falls back to calling the activation API on startup, and it retries offline verification if that call fails.
  • Activation and the periodic heartbeat send only the license key, an instance ID, the machine hostname and the Purl version. No log lines, queries, field names or metrics are sent.
  • Searching, tailing, alerting and dashboards never contact purlogs.com. If this site is unreachable, an already-verified installation keeps working.

Authentication and access

The Purl dashboard authenticates users with server-side session cookies. Log ingestion authenticates with API keys that you configure on your own server, so shippers and agents never need dashboard credentials.

Enterprise plan

SSO / SAML 2.0 and LDAP / Active Directory are Enterprise features, unlocked by an Enterprise license key ($199/mo). On other plans those gates are closed and the dashboard uses its own user accounts.

See plan details →

Audit logs

Audit logging is an Enterprise feature. Like every other gated feature, it is enabled by the feature list inside your license key and the records stay in your own ClickHouse instance.

What purlogs.com stores about you

Account data lives in Supabase (PostgreSQL) and billing data lives with Stripe. Specifically:

RecordWhat it contains
Account profileEmail address, optional name and company, current plan, and your Stripe customer ID.
SubscriptionPlan, status, billing period dates and Stripe subscription ID. Card details are held by Stripe, never by us.
License keysA SHA-256 hash of the key, a short display prefix, plan, status, activation count and expiry. The full key is shown to you when it is issued; we store the hash.
ActivationsFor each installation that activates a key: instance ID, hostname, Purl version, the IP address the activation request came from, and last-seen time.

Not stored here: your log data, your queries, your alert rules, your dashboards, your ClickHouse credentials, or your ingest API keys. Those exist only on your own deployment. For the full picture of website data handling, see the Privacy Policy.

Reporting a vulnerability

If you find a security issue in Purl or in purlogs.com, please report it privately before disclosing it publicly. We do not run a dedicated security mailbox yet, so reports go to the contact address published in our Privacy Policy: privacy@purlogs.com.

Include the affected component and version, reproduction steps, and the impact you observed. We do not operate a paid bug bounty, so we cannot promise a reward — we can promise that reports are read and answered.

What we do not claim

Purl is not SOC 2 or ISO 27001 certified, has no HIPAA BAA, and no third-party penetration test or bug bounty programme. Nothing on this page should be read as a compliance certification. What we describe above is architecture: where data lives and what crosses the network. If your procurement process requires certifications, say so before you buy — we would rather tell you no than imply a badge we do not hold.

Run it yourself and verify

Every claim above is checkable on your own deployment: install Purl, watch the network, and see what leaves the box.