Data exposure
- Supabase Row Level Security: off, permissive, or missing on a table
- Secrets in the client bundle, `VITE_`/`NEXT_PUBLIC_` variables, or the git history
- Authorisation enforced only in the UI, with the server trusting the caller
- Server Actions, edge functions and API routes without a session check
- Input validation and rate limits on anything that costs money or sends mail