{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/rbac/refs/heads/main/json-schema/rbac-permission.json",
"title": "RBAC Permission",
"description": "A discrete authorization to perform an action on a resource within a Role-Based Access Control system.",
"type": "object",
"required": ["id", "action", "resource"],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the permission."
},
"name": {
"type": "string",
"description": "Human-readable name of the permission."
},
"description": {
"type": "string",
"description": "Description of what this permission allows."
},
"action": {
"type": "string",
"description": "The action being permitted (e.g., read, write, delete, execute)."
},
"resource": {
"type": "string",
"description": "The resource or resource type the action applies to."
},
"conditions": {
"type": "object",
"description": "Optional attribute-based conditions that must be satisfied for the permission to apply.",
"additionalProperties": true
}
}
}