Skip to content

Security hardening

Beyond the defaults, two endpoints are worth an explicit rate-limit rule in production because they’re meaningfully more expensive than an ordinary record read: POST /api/sql (the dashboard SQL console — superuser-only already, but a single query can hold a connection for seconds) and POST /api/llm/chat (spends the operator’s own provider quota per call). See Rate limiting for the exact rule shape. Beyond that: the audit log covers schema/settings/superuser changes, superuser roles separate owner from admin, and rotating AUTH_SECRET invalidates every session at once if a secret is ever suspected compromised.