Onboarding & Teams
New users are auto-provisioned as viewer with no name or team. The onboarding flow collects their identity and optional team membership.
Onboarding Flow
Section titled “Onboarding Flow”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
Team Request Workflow
Section titled “Team Request Workflow”| Action | Endpoint | Who |
|---|---|---|
| Request team access | POST /api/onboarding with team_id | Any user |
| View pending requests | GET /api/access?action=team-requests | Admin |
| Approve request | POST /api/access approve-team-request | Admin |
| Deny request | POST /api/access deny-team-request | Admin |
Database Tables
Section titled “Database Tables”access_users — added columns:
| Column | Type | Description |
|---|---|---|
first_name | TEXT | User’s first name |
last_name | TEXT | User’s last name |
onboarded | INTEGER | 0 = not yet onboarded, 1 = completed |
team_requests
| Column | Type | Description |
|---|---|---|
id | INTEGER PK | Auto-increment |
email | TEXT | Requesting user’s email |
team_id | TEXT | Target team ID |
status | TEXT | pending / approved / denied |
reviewed_by | TEXT | Admin who reviewed |
reviewed_at | DATETIME | Review timestamp |
created_at | DATETIME | Request timestamp |