Opsgenie shuts down April 2027. Faultline replaces paging and adds the detection layer Opsgenie never had. Migration guide →
Skip to content
Docs

Security and data handling

How your data is separated from other customers, who can sign in, what reaches the AI model, and how long anything is kept.

By · Published · Updated

How is my data kept separate from other customers?

Faultline keeps each customer's data separate in the application layer: every workspace is a tenant, and every record it owns, from check results to runbooks and API keys, carries its tenant ID. Each API request resolves the tenant from the verified session token or API key, never from the request body, and a tenant-scoped data layer adds that ID to every database read and write. All workspaces share one PostgreSQL database, so isolation depends on that layer rather than on separate databases or row-level security. Background workers act only on records named in internal queue messages that the tenant-scoped API creates. API keys are stored only as SHA-256 hashes, Slack bot tokens are encrypted with AES-256-GCM, and heartbeat URLs carry 192-bit random tokens. For AWS, each workspace gets its own server-generated ExternalId, so another Faultline customer cannot assume your IAM role even if they learn its ARN.

Data flow diagram: your request carries a session token or API key, the tenant is resolved from that verified credential, and a tenant-scoped data layer adds your tenant ID to every read and write on the shared PostgreSQL database. AI features send only what each feature needs to the Anthropic Claude API, never keys, tokens, or passwords, and resolved incidents are embedded with Voyage AI.
Where tenant scoping happens, and which data leaves Faultline for AI features.

The details:

  • Each workspace is a tenant. Every record a workspace owns (services, check results, incidents, runbooks, API keys, audit log, and so on) carries its tenant ID.
  • Every API request resolves your tenant from your verified session or API key, never from anything in the request body. Database access goes through a tenant-scoped layer that adds your tenant to every read and write automatically.
  • Background workers (checks, runbooks, escalation, notifications) never take work directly from a request. They act only on records named in Faultline's internal queue messages, which the tenant-scoped API creates.
  • All workspaces share one PostgreSQL database. Isolation is enforced in the application layer described above, not by separate databases or database row-level security.
  • AWS access is per workspace: each workspace gets its own server-generated ExternalId, so no other customer can use your role (AWS's defense against the confused deputy problem). See AWS IAM role setup.
  • Remediation agents on your own hosts only call out to Faultline. Faultline never opens a connection to your machines and holds no SSH keys.

Who can sign in, and what can each role do?

  • Sign-in is handled by Clerk. Faultline never sees or stores your password. With Sign in with Google, Faultline receives only your name, email address, and profile picture.
  • Every dashboard request carries a signed session token that is verified before anything else runs.
  • Roles are Owner, Admin, Member, and Viewer. Running a runbook, approving AI actions, creating API keys, and changing alert routing need Admin or above.
  • API keys (flt_...) are shown once and stored only as a SHA-256 hash. You can revoke a key at any time and see when it was last used.
  • Heartbeat ping URLs use 192-bit random tokens. Slack bot tokens are encrypted with AES-256-GCM and never leave the API. Outgoing webhooks can be HMAC-signed.

What incident data goes to the AI model?

Only what each feature needs. AI features use Anthropic's Claude API, under Anthropic's commercial terms, and Faultline never sends your Faultline API keys, AWS credentials, Slack tokens, or passwords.

FeatureWhen it runsWhat is sent
Incident summaryAutomatically when an incident opens, or on requestIncident title, severity, and timeline; the service's recent check results (status codes, latency, error text); the status of your other services
Post-mortem draftOn requestThe incident, its timeline, response timings, and runbook results
Recommended fix (incl. MCP diagnose)On requestThe incident, recent checks, other services' status, your runbooks' titles and step types, and similar past incidents
Runbook draftOn requestThe service's name, type, and monitor configuration (which includes any request headers or TLS settings you entered), and its last 10 resolved incidents with timelines and runbook results
Monitor from descriptionOn requestThe text you type
Copilot console and Slack botWhen you askYour messages and the service, incident, and on-call details the assistant looks up to answer
  • Model provider retention: [TBC: Anthropic's retention period and training terms under Faultline's agreement]
  • Incident memory: when an incident resolves, a text summary of it (title, service, root cause, AI summary, post-mortem, error samples, and the runbook that fixed it) is sent to Voyage AI to create a search embedding. The embedding is stored in Faultline's database and only ever compared with your own workspace's incidents.
  • CLI: faultline ask runs on your machine with your own Anthropic API key, under your own terms with Anthropic.
  • AI output is advisory. It cannot change anything without approval; see Runbooks and approvals.

AI token caps

PlanAI tokens per month
Free100,000
Pro2,000,000
Growth5,000,000
EnterpriseUnlimited
  • A token is any input or output token the model processes for your workspace, including cached input. Automatic incident summaries count.
  • Usage resets on the 1st of each month (UTC). The check happens before each AI request, so the request already in progress when you reach the cap can finish slightly over it.
  • At the cap, AI features return a limit message until the reset or an upgrade. Monitoring, alerting, escalation, and runbooks are not affected.
  • faultline ask uses your own key and does not count.

Where is data stored, and for how long?

  • Location: [TBC: hosting provider and region for the API, workers, and database]
  • In transit: all traffic to Faultline uses TLS.
  • At rest: [TBC: database encryption at rest, e.g. RDS storage encryption]
DataKept for
Individual check results7 days (Free), 90 days (Pro), 180 days (Growth), 365 days (Enterprise)
Hourly uptime rollups1 year
Daily uptime rollups (status page history)While your account is active
Incidents, timelines, runbook runs, audit logWhile your account is active
Account dataWhile your account is active and a reasonable period afterward, unless the law requires longer

Old check results are deleted by a daily job. See the privacy policy for sub-processors and your rights, or email hello@fltln.io with security questions.

More docs

Try it on a real service.

5 monitors free, no card required.