Identity and access
Signing in, the four roles and what each may do, and the row-level security that enforces them a second time.
Signing in
Email and password against your own Supabase project, a session in an HTTP-only cookie, and a Studio auth provider instead of a hosted login.
Four roles, one table
administrator, editor, viewer and pending — with the permission table transcribed once in code and everything else a projection of it.
Row-level security
Requests do not connect as the service role. Each transaction sets the acting identity, so Postgres policies apply and an API bug cannot become data loss.
