Roles & permissions
Access in ObserveKit is role + source scope. There are three roles and a per-user list of sources ("scopes"). There is no separate per-feature permission grid — these two things determine everything.
The three roles
| Role | Sees | Can do |
|---|---|---|
| Admin | All sources (bypasses scopes) | Everything: create/delete sources, manage all users, rotate API keys, regenerate install links, add/remove any member |
| Manager | Only sources in their scope | View those sources; add/remove viewer members on them (see below). Cannot grant admin/manager, cannot manage other managers |
| Viewer | Only sources in their scope | Read-only. Cannot manage members or sources |
Source scope — who sees which source
For non-admins, visibility is governed by the user's scopes: a list of source IDs.
- A non-admin sees only the sources in their scopes. Empty scopes → they see nothing. (Admins ignore scopes and see all.)
- Requesting a source outside your scope returns 404, not 403 — ObserveKit doesn't reveal that a source you can't access exists.
Two ways to grant access — same underlying list
You can edit a user's source access from either direction; both write to the same scopes list:
- Users page → set a user's assigned sources directly.
- Source detail → Members → "add member" appends that source to the user's scopes.
So "members of a source" and "a user's scopes" are two views of one thing. Granting via Members is just a per-source shortcut for editing scopes.
Member management rules (who can grant what)
- Admin — add/remove any user on any source, at any role.
- Manager — on sources in their own scope, can add or remove viewer-role users only. Cannot add or grant admin/manager, cannot remove another manager, and cannot remove themselves.
- Viewer — cannot manage members (403).
- No user can edit their own scopes via the API.
SSO / OIDC role mapping
With OIDC (e.g. Azure AD), map an identity-provider group to an ObserveKit role via auth.oidc.role_mapping in the server config (group ID → admin / manager / viewer). Users signing in through SSO get the mapped role; scopes are then managed as above.
Rule of thumb
- Give operators
managerscoped to the clusters/services they own. - Give read-only stakeholders
viewerscoped to what they need to see. - Keep admin to the few who manage the platform itself.