Permission Checker
API Contract
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"
}