Architecture: Session 124: What is the definitive user type hierarchy for ...
Documentation for Sessions
🏗️ Architecture: Session 124: What is the definitive user type hierarchy for ...
Date: 2026-02-19
Time: 21:36:21 UTC
Session: gspace1-125.127
Agent: backend
Confidence: 95%
Status: ✅ Documented
📋 Decision Context
Question:
Session 124: What is the definitive user type hierarchy for the GoGrab platform?
Task: Not specified
🎯 Decision Made
Chosen:
6-level hierarchy: developer(L0) > admin(L0) > space_builder(L1) > space_admin(L1) > space_user(L2) > platform_user(L3). Stored in UserHierarchyType union in user-hierarchy.schema.ts. SystemRoles (auth-core.constants.ts) maps to backend roles: developer->['developer'], admin->['admin'], space_builder->['user'], space_admin->['manager'], space_user->['user'], platform_user->['viewer'].
Options Considered:
- No alternatives documented
💭 Reasoning
Previous naming was inconsistent: platform_admin and platform_user were ambiguous. Renamed platform_admin to space_admin (manages a SPACE, not the platform). Added space_user (L2 employee/team member). platform_user now exclusively means end customer (L3, lowest perms). developer and admin are L0 internal-only types. This creates clear semantic separation: space_* = people working IN a space, platform_user = customer OF a space's product.
📁 Files Involved
libs/libs-api/backend-core/src/lib/schemas/user-hierarchy.schema.tslibs/libs-api/auth-core/src/lib/auth-core.constants.tsapis/backend-api/src/app/backend-auth/backend-auth.service.tslibs/libs-ui/auth-ui/src/lib/models/auth.types.ts
🔗 Related
- Decision ID:
dev_1771536981003_8beqrpq - Session: 125
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation