Security
How we handle your clients' data
Stallguard watches data you don't own, your clients'. So the design starts from one rule: read as little as possible, store even less, and never write.
Access
Read-only by design
Stallguard never writes to a source. For Airtable we ask only for a read scope; for Google Sheets we read a sheet you've shared “anyone with the link can view”; a heartbeat is just an inbound ping you send us. There is no code path in Stallguard that edits, deletes, or adds to your data.
What we store
Measurements, not your records
To detect silence we only need to know how much data arrived and how freshit is. So we store the measurement, a row count or the latest timestamp, not your clients' record contents. Rows are counted in memory at check time and discarded.
The data we keep is: your account, your sources (with the access token encrypted, see below), your monitor settings, a history of check results (counts/timestamps and the computed status), incidents, and your alert channels.
Encryption
Encrypted in transit and at rest
All traffic runs over TLS. Source access tokens (e.g. an Airtable personal access token) are encrypted before they touch the database using AES-256-GCM, and decrypted only server-side at check time. They are never sent to the browser.
Isolation
One agency can never see another
Every row in our database is scoped to an account and protected by Postgres Row-Level Security. The database itself enforces that you can only read your own account's sources, monitors, and history. This is verified with an isolation test: a request authenticated as a different account returns zero rows.
Authentication
No passwords to leak
Sign-in is by emailed magic link. We don't store passwords. Sessions are managed with secure, http-only cookies.
Sub-processors
Who we rely on
- SupabasePostgres database & authentication
- VercelApplication hosting & scheduled checks
- ResendTransactional & alert email
- StripeSubscription billing (we never see card numbers)
Retention & deletion
Your data, on your terms
Delete a source or a monitor at any time and its history is removed with it. Close your account and we delete your data. Check history is retained while the monitor exists so you can review past incidents.
This page describes current practice and will evolve as Stallguard does. Specific data-residency regions and retention windows are finalized per plan.