Auth and roles
Access control that holds up when someone skips the UI
Sign-in runs on Supabase Auth with cookie sessions checked on the server. New accounts start as members. Admin access comes from a roles table, and row level security checks the same permissions on every query, so a bug in a page can't hand out data the database wouldn't. Turn on TOTP two-step login with one of four policies: off, optional, required for admins, or required for everyone.
How auth and roles work