REST /api/v1/permissions 5 endpoints
GET /api/v1/permissions/api/v1/permissions

List all permissions for all roles

Public

Response Example

{
  "data": [
    {
      "permission_id": "perm_a1b2c3d4",
      "role": "coordinator",
      "resource": "activities",
      "allowed_actions": [
        "read",
        "create",
        "update"
      ],
      "denied_actions": [
        "delete"
      ],
      "created_at": "2026-01-15T00:00:00Z"
    },
    {
      "permission_id": "perm_e5f6a7b8",
      "role": "mentor",
      "resource": "participants",
      "allowed_actions": [
        "read"
      ],
      "denied_actions": [
        "create",
        "update",
        "delete"
      ],
      "created_at": "2026-01-15T00:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 37
  }
}
GET /api/v1/permissions/api/v1/permissions/:permissionId

Get permissions for a specific role-resource pair

Public

Response Example

{
  "permission_id": "perm_a1b2c3d4",
  "role": "coordinator",
  "resource": "activities",
  "allowed_actions": [
    "read",
    "create",
    "update"
  ],
  "denied_actions": [
    "delete"
  ],
  "created_at": "2026-01-15T00:00:00Z"
}
POST /api/v1/permissions/api/v1/permissions

Create a role-resource permission rule

Public

Request Example

{
  "role": "coordinator",
  "resource": "reports",
  "allowed_actions": [
    "read",
    "create"
  ],
  "denied_actions": [
    "delete"
  ]
}

Response Example

{
  "permission_id": "perm_z9y8x7w6",
  "role": "coordinator",
  "resource": "reports",
  "allowed_actions": [
    "read",
    "create"
  ],
  "denied_actions": [
    "delete"
  ],
  "created_at": "2026-03-26T10:20:00Z"
}
PUT /api/v1/permissions/api/v1/permissions/:permissionId

Update allowed/denied actions for a permission rule

Public

Request Example

{
  "allowed_actions": [
    "read",
    "create",
    "update",
    "delete"
  ],
  "denied_actions": []
}

Response Example

{
  "permission_id": "perm_a1b2c3d4",
  "role": "coordinator",
  "resource": "activities",
  "allowed_actions": [
    "read",
    "create",
    "update",
    "delete"
  ],
  "denied_actions": [],
  "created_at": "2026-01-15T00:00:00Z"
}
DELETE /api/v1/permissions/api/v1/permissions/:permissionId

Remove a permission rule

Public

Response Example

{
  "deleted": true,
  "permission_id": "perm_a1b2c3d4"
}

Additional Metadata

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