Security
Enterprise-grade security is built into the platform, not bolted on.
Authentication & sessions
- •Argon2id password hashing (OWASP-recommended parameters)
- •Opaque session tokens — only SHA-256 hashes are stored, so a database leak can't steal sessions
- •Optional TOTP two-factor authentication with recovery codes
- •Password changes and resets revoke every other session instantly
- •Email verification and Google OAuth with PKCE
Rate limiting & abuse protection
Every sensitive endpoint is rate-limited (per IP and per resource) via a distributed limiter backed by Redis when configured — brute-force and inbox-flooding attempts are throttled before they reach the database.
Audit trail
Every meaningful action — logins, failed logins, password changes, moderation decisions, admin actions — is written to an immutable audit log with actor, resource, IP and timestamp, so you can always see what happened and who did it.
Data protection
- •Strict row-level scoping — journal and notification queries are always user-filtered (IDOR-proof)
- •RBAC with user < support < admin roles enforced at the API
- •Content moderation: deterministic filters plus AI-assisted review with human decisions
- •TLS everywhere; HSTS with preload in production
- •Security headers: CSP, X-Frame-Options DENY, nosniff, strict referrer policy
Resilience
Provider-gated architecture means a disconnected provider never breaks core flows. The status page reports real service health, and rate limiting gracefully falls back to in-process storage if the cache layer is unavailable.
Responsible disclosure
Found a vulnerability? Report it privately via the contact form — we'll acknowledge it promptly and fix it before disclosure.