Skip to content

Authentication ​

Neverline uses Supabase Auth for authentication and authorization.

User Authentication ​

Staff and administrative users authenticate via Supabase's email/password flow. The dashboard client manages login processes and session state autonomously.

API Authentication ​

Protected API endpoints require a Supabase JWT token:

Authorization: Bearer <supabase-jwt-token>

Tokens are obtained through the Supabase Auth login flow and are automatically refreshed by the dashboard client.

API Keys ​

For server-to-server integrations, generate API keys in Settings → Integrations.

API keys are passed via the X-API-Key header:

X-API-Key: your-api-key

API keys are scoped to an organization and have the same permissions as an authenticated user within that organization.

Public Endpoints ​

The following endpoints are public and do not require authorization headers:

EndpointPurpose
GET /v1/queues/:idGet queue info (for customer join page)
POST /v1/sessions/joinJoin a queue
GET /v1/sessions/:tokenPoll session status
POST /v1/sessions/:token/awaySet away status
POST /v1/sessions/:token/returnReturn from away
POST /v1/sessions/:token/lateMark as running late
GET /v1/announcementsFetch active announcements (with scope params)
GET /v1/locations/:idGet location details + wayfinding overrides
POST /v1/planned-arrivalsCreate a pre-arrival signal
POST /v1/planned-arrivals/:token/convertConvert planned arrival to queue session
GET /v1/chat/:tokenGet/create chat thread
POST /v1/chat/:token/messagesSend a chat message

These endpoints use customer tokens for session identification rather than user authentication.

Notification links (SMS/push) use HMAC-SHA256 signed URLs for one-tap actions. The signature prevents tampering and includes an expiration timestamp. See Notifications for details.

Row-Level Security (RLS) ​

All database access is protected by Supabase Row-Level Security policies ensuring organization-level data isolation. Users can only access data belonging to their organization.