Managing access control and permissions in Thena Platform
{ "resource": "ticket", "permissions": [ "view", "create", "update", "delete", "assign", "comment" ] }
{ "role": "team_lead", "description": "Team leader with management capabilities", "permissions": [ { "resource": "team", "actions": ["view", "manage_members", "configure"], "scope": "assigned_teams" }, { "resource": "ticket", "actions": ["view", "create", "update", "delete", "assign"], "scope": "team_tickets" } ] }
{ "name": "approve_high_priority", "description": "Can approve high-priority tickets", "conditions": { "ticket.priority": "high", "user.level": "senior" } }
POST /v1/roles { "name": "support_specialist", "description": "Specialized support role", "permissions": [ { "resource": "ticket", "actions": ["view", "update", "comment"], "conditions": { "category": "technical" } } ] }
{ "name": "ticket_access_policy", "description": "Controls ticket access across teams", "rules": [ { "effect": "allow", "actions": ["view", "comment"], "resources": ["ticket"], "conditions": { "team_id": "${user.team_id}" } }, { "effect": "allow", "actions": ["assign", "update"], "resources": ["ticket"], "conditions": { "team_id": "${user.team_id}", "user.role": ["team_lead", "senior_agent"] } } ] }
{ "pattern": "team_based_access", "implementation": { "base_role": "team_member", "inheritance": true, "scope": "team_resources", "escalation": { "conditions": ["sla_breach", "priority_high"], "escalate_to": "team_lead" } } }
{ "pattern": "progressive_access", "implementation": { "levels": [ { "name": "trainee", "permissions": ["view", "comment"], "duration": "2_weeks" }, { "name": "junior_agent", "permissions": ["view", "comment", "update"], "requirements": ["training_complete"] }, { "name": "senior_agent", "permissions": ["view", "comment", "update", "assign"], "requirements": ["performance_metrics", "tenure"] } ] } }