Role Repository
API Contract
REST
/api/v1/roles
5 endpoints
GET
/api/v1/roles/api/v1/roles
List all role definitions
Public
Response Example
{
"data": [
{
"role_id": "role_coord_001",
"role_name": "coordinator",
"display_name": "Program Coordinator",
"description": "Manages program activities and participants",
"is_system_role": true,
"cache_ttl_seconds": 300,
"created_at": "2026-01-10T00:00:00Z",
"updated_at": "2026-03-01T00:00:00Z"
},
{
"role_id": "role_mentor_002",
"role_name": "mentor",
"display_name": "Mentor",
"description": "Guides and supports program participants",
"is_system_role": true,
"cache_ttl_seconds": 300,
"created_at": "2026-01-10T00:00:00Z",
"updated_at": "2026-03-01T00:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 5
}
}
GET
/api/v1/roles/api/v1/roles/:roleId
Get a role definition by ID
Public
Response Example
{
"role_id": "role_coord_001",
"role_name": "coordinator",
"display_name": "Program Coordinator",
"description": "Manages program activities and participants",
"is_system_role": true,
"cache_ttl_seconds": 300,
"created_at": "2026-01-10T00:00:00Z",
"updated_at": "2026-03-01T00:00:00Z"
}
POST
/api/v1/roles/api/v1/roles
Create a new role definition
Public
Request Example
{
"role_name": "supervisor",
"display_name": "Program Supervisor",
"description": "Oversees multiple coordinators and their programs",
"is_system_role": false,
"cache_ttl_seconds": 600
}
Response Example
{
"role_id": "role_super_006",
"role_name": "supervisor",
"display_name": "Program Supervisor",
"description": "Oversees multiple coordinators and their programs",
"is_system_role": false,
"cache_ttl_seconds": 600,
"created_at": "2026-03-26T10:20:00Z",
"updated_at": "2026-03-26T10:20:00Z"
}
PUT
/api/v1/roles/api/v1/roles/:roleId
Update a role definition
Public
Request Example
{
"display_name": "Senior Program Supervisor",
"description": "Senior oversight of multiple program coordinators",
"cache_ttl_seconds": 900
}
Response Example
{
"role_id": "role_super_006",
"role_name": "supervisor",
"display_name": "Senior Program Supervisor",
"description": "Senior oversight of multiple program coordinators",
"is_system_role": false,
"cache_ttl_seconds": 900,
"created_at": "2026-03-26T10:20:00Z",
"updated_at": "2026-03-26T10:30:00Z"
}
DELETE
/api/v1/roles/api/v1/roles/:roleId
Delete a role definition and invalidate its cache
Public
Response Example
{
"deleted": true,
"role_id": "role_super_006",
"cache_invalidated": true
}