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
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}