Core Concepts
User & Team Management
User & Team Management
Permission Resolution
How we determine if a user can access a feature:
function canUserAccess(user, module) {
// 1. Check strict role
if (user.role === 'OWNER') return true;
// 2. Check Module Override
if (user.moduleOverrides[module] === true) return true;
if (user.moduleOverrides[module] === false) return false;
// 3. Fallback to Role Default
return ROLE_DEFAULTS[user.role][module];
}
Audit Schema
Every activity is logged with this JSON structure:
{
"actorId": "user_123",
"action": "UPDATE",
"resource": "BlogPost",
"resourceId": "post_789",
"metadata": {
"field": "title",
"oldValue": "Draft",
"newValue": "Final"
},
"timestamp": "2024-01-01T12:00:00Z"
}

