Skip to content

Onboarding & Teams

New users are auto-provisioned as viewer with no name or team. The onboarding flow collects their identity and optional team membership.

New User Login
Auto-provisioned
Role: viewer
Redirect
/pages/onboarding.html
Enter Name
First + Last name
Team ID provided?
No Team
onboarded = 1
Dashboard
Team Requested
Request Created
Status: pending
Admin Approves
Dashboard
New user → auto-provisioned as viewer → onboarding → enter name → optional team request → Dashboard
ActionEndpointWho
Request team accessPOST /api/onboarding with team_idAny user
View pending requestsGET /api/access?action=team-requestsAdmin
Approve requestPOST /api/access approve-team-requestAdmin
Deny requestPOST /api/access deny-team-requestAdmin

access_users — added columns:

ColumnTypeDescription
first_nameTEXTUser’s first name
last_nameTEXTUser’s last name
onboardedINTEGER0 = not yet onboarded, 1 = completed

team_requests

ColumnTypeDescription
idINTEGER PKAuto-increment
emailTEXTRequesting user’s email
team_idTEXTTarget team ID
statusTEXTpending / approved / denied
reviewed_byTEXTAdmin who reviewed
reviewed_atDATETIMEReview timestamp
created_atDATETIMERequest timestamp