Security
Flowhawk holds your telemetry, and telemetry can carry secrets. This page describes how we protect it today, how to report a problem, and which parts aren't done yet. It doesn't describe plans.
Reporting a vulnerability
Email security@flowhawk.dev with what you found and how to reproduce it. We answer as soon as we can and keep you informed while we fix it. Please give us a reasonable time to fix it before you publish, don't read or change other customers' data, and don't run tests that slow the service down for others. We won't take legal action against research done in good faith within these limits. The machine-readable contact is at /.well-known/security.txt.
Where your data is
- Telemetry, accounts and backups are stored on Hetzner servers in Falkenstein, Germany. The full list of providers, and what each one receives, is on the subprocessors list.
- Telemetry is kept for 30 days, then deleted. Nightly backups are kept for 14 days.
- The AI agent sends Anthropic only the excerpts a question or investigation needs. Anthropic doesn't train on them, but may process them outside the EU.
Keeping workspaces apart
- Every row of telemetry carries its workspace. Each workspace reads ClickHouse as its own database user, and a row policy on every table shows that user only its own rows. A query can't change which workspace it runs as.
- In Postgres, every statement names its workspace, and row-level security refuses rows of any other workspace as a second line of defence.
- Every API key opens only the workspace it was created in. A request or background job without a known workspace fails instead of falling back to a default.
- Our own staff don't join customer workspaces. To help you, we need an owner of your workspace to grant support access, and every visit is in your audit log.
Sign-in and permissions
- Email and password, with verified email addresses. Passwords are stored only as salted hashes, and sign-in attempts are rate limited.
- Two-step sign-in with an authenticator app. Admins can require it for the whole workspace.
- SSO with SAML or OIDC after a DNS check that you own the domain, and SCIM provisioning.
- Roles (viewer, editor, admin, owner) apply the same way in the app, the API, MCP clients and Slack. Viewers can't change anything.
- Sensitive actions are recorded in an audit log that admins can read in Settings: sign-ins, failed sign-ins, member and role changes, config changes, keys created and revoked, and MCP tool calls.
What is collected
- The SDKs and our collector redact common secrets, such as email addresses, card numbers and authorization headers, even before any of your own rules are loaded.
- LLM prompts and completions from your app are not captured unless you turn it on for a flow.
- Session replay masks inputs and text by default.
- Browser keys are meant to be public, so they can only send what a browser sends and can't read any data or settings.
Queries and the AI agent
- SQL written by people, the agent or generated pages runs as a read-only database user with time, memory and row limits.
- The agent treats telemetry and tool output as data, not instructions. Anything it does outside Flowhawk, such as a rollback or a webhook, waits for a person to approve it.
- Requests to addresses that you or the agent supply, such as webhooks, only go to public internet addresses, never to our internal network.
Encryption and backups
- All traffic to the app, the API and ingest uses TLS. Keys never travel over plain http, except to the machine they run on.
- Backups are encrypted with our own key before they leave the servers. We test restoring them.
- Integration secrets, such as webhook URLs and PagerDuty keys, are encrypted in the database and never shown again after you save them.
Payments
Stripe handles card details. We never see or store a full card number.
Not done yet
These are the gaps a security review usually asks about, and what covers each one today. We update this page when one closes.
- No SOC 2 or ISO 27001 report. A data processing agreement under the GDPR is part of our terms (see the DPA), and we fill in security questionnaires. Email hello@flowhawk.dev for one.
- The servers' own disks aren't encrypted. The servers sit in a private network with SSH-key access only, and backups are encrypted before they leave them.
- No paid bug bounty. Reports to security@flowhawk.dev are answered and fixed as described above.
If something goes wrong
We post outages on status.flowhawk.dev. If a breach affects your data, we tell your workspace owners within 48 hours of finding it, as the DPA says.