Four roles, precise scope
Owner manages billing and the org itself. Admin handles all CRUD without billing. Member uses keys and reads everything. Viewer is read-only. Roles are enforced on every API call, not the UI.
- Role checks live in middleware — never trust the client
- Last-owner guard prevents accidental org lock-out
- Promote/demote any member from the Team page
- Audit trail captures every role change with actor + IP