Roles & Permissions
Role-based access control with four levels: viewer, member, admin, and owner. Deny-by-default enforcement on all API routes.
Deny by default
403 Forbidden response. There is no anonymous passthrough.Role Hierarchy
Ingate uses a linear role hierarchy. Each role is assigned a numeric level, and higher roles automatically inherit all permissions of lower roles.
| Role | Level | Description |
|---|---|---|
viewer | 0 | Read access to logs, metrics, evals, prompts, usage |
member | 1 | Viewer + create/update prompts, evals, apps. Proxy access. |
admin | 2 | Member + manage teams, keys, budgets, webhooks, providers, org settings |
owner | 3 | Admin + transfer/delete org, manage billing |
A user with role level N can perform any action that requires level N or below. For example, an admin (level 2) can do everything a member (level 1) and viewer (level 0) can do.
Permissions by Resource
The table below shows the minimum role required for read and write access to each resource. A dash means that operation is not applicable to the resource.
| Resource | Read | Write |
|---|---|---|
| Proxy (LLM requests) | n/a | member |
| Providers | viewer | admin |
| Logs | viewer | n/a |
| Metrics | viewer | n/a |
| Usage analytics | viewer | n/a |
| Sessions & users | viewer | n/a |
| Prompts | viewer | member |
| Prompt render | viewer | n/a |
| Evals | viewer | member |
| Apps | viewer | member |
| API keys | n/a | member |
| Key rotation | n/a | admin |
| Teams | viewer | admin |
| Budgets | admin | admin |
| Webhooks | admin | admin |
| Audit log | viewer | n/a |
| Org settings | n/a | admin |
| Ingestion API | n/a | member |
| OTel trace export | n/a | member |
| Playground | n/a | member |
| Datasets | viewer | member |
| BYOS storage | n/a | admin (enterprise) |
Error Responses
When a request lacks valid authentication or the authenticated user does not have the required role, the API returns 403 Forbidden:
{
"error": "authentication required",
"error_code": "forbidden"
}{
"error": "insufficient permissions",
"error_code": "forbidden",
"required_role": "admin"
}Enforcement scope