Security
Draft: 23 October 2026.
Template – to be reviewed by a lawyer before launch. This text is a draft for Stafeta's launch; the double-bracketed parts wait to be filled in, the rest waits for legal review. Not legal advice.
What we build on
A small company's whole operation runs on Stafeta, so security is a principle, not a setting: our rule book is public in the repository (SECURITY.md, docs/THREAT-MODEL.md) and every change follows it. The list below describes what exists today – and, separately, what does not yet.
Sign-in
- Two-step sign-in for everyone, not an option: a password (or Google/Apple) and an authenticator app code. No SMS codes.
- Passwords: 12–128 characters, checked against lists of leaked passwords, stored only as salted hashes. No forced password changes.
- Sensitive actions (roles, policy, export, connections, billing, deletion) need a fresh code ("step-up").
- Single-use recovery codes; lockout after 10 failed attempts; bot protection on the sign-in pages.
- Sessions last 7 days and expire after 24 hours of inactivity; a sign-in from a new device sends an e-mail with a "this was not me" link.
Data
- Database, files and backups in the EU (Supabase, Frankfurt); the file store is private, with short-lived signed links.
- Row-level security (RLS) by workspace on every table, plus a rule that releases nothing without the second step. An automatic check: no table without RLS.
- Encrypted connections everywhere (HSTS); a content security policy (CSP) on every page.
- Secrets only on the server, rotated every 90 days; the browser receives no key at all. A secret-leak check on every commit.
The limits on the AI
- The agent has no send, delete or pay tool. It only proposes; execution is a separate step with a person's approval, and the approval is bound to the exact content.
- Inbound content (e-mail, messages, transcripts) reaches the model as data only; an instruction inside it is not a command; a screen and a canary secret watch for manipulation.
- A run queries with the customer's own rights and never sees another company or a key. No connector follows redirects; we never connect to internal addresses.
- A cost brake: a budget per workspace, a warning at 80%, a stop at the cap, a kill switch.
Traceability
Sign-in events, approvals, a decision log with dissent, guest activity on the portal, kiosk events – all logged and readable by the owner. An approval is bound to the content's hash and usable once.
Checks
An automated red-team suite runs on every change (a prompt-injection corpus in three languages, a simulated hijacked model, SSRF rules, tenant isolation). Packages are taken only from releases older than 7 days.
What is not there yet – honestly
- No external penetration test and no independent certification (ISO 27001, SOC 2) yet. planned date of the external test.
- Envelope encryption of sensitive fields (a key per tenant) comes in the next phase.
- No service-level commitment (SLA); the backup-restore drill is on the launch checklist.
Reporting a vulnerability
If you find a security issue, write to security@stafeta.ai – address to be set up (or hello@stafeta.ai). We answer within 3 working days, keep you informed about the fix, and take no action against good-faith research. Please do not access other people's data, do not run denial-of-service tests and do not use social engineering. There is no bug bounty programme yet.
Our incident runbook: rotate the key at once, lock the affected workspace, collect the logs, notify the customer and – for personal data – the authority within 72 hours.