Role Map
Operator
- Activated with Envato/CodeCanyon purchase code (or demo license when
ENABLE_DEMO/ADMIN_ALLOW_DEMO_LICENSEis set). - Cookie scope:
sb-streamly-operator-auth-token. - Platform host only for admin UI (tenant hosts redirect to
NEXT_PUBLIC_PLATFORM_HOST).
Viewer
- Standard email/password (and Supabase auth callback at
/auth/callback). - Cookie scope:
sb-streamly-viewer-auth-token. - After login, Who’s Watching may force
/profilesuntil aviewer_profilesrow is selected (streamly_viewer_profilecookie).
demo@streamly.watch / demo123456 — not the operator account.
Tenant Owner
Uses the dashboard nav inlib/streamly/dashboard-nav.ts. Several items are inactive in the current UI (genres, homepage, metadata, viewer plans, viewers, reports) — do not treat those as shipped until enabled.
Platform vs Tenant Host
Permissions Model
Fine-grained checks are enforced in middleware, RLS, and API handlers. Operators use/api/operator/*; viewers and tenant clients use /api/v1/* with tenant context from the host and session.
Details: Authentication Flow, Roles & Permissions.