Security
Authorization
Authorization is what happens after authentication confirms who you are — it decides what you're actually allowed to do. NNIPA combines two layers: a role that governs the kinds of actions you can take, and dataset-level permissions that govern which specific data you can take them on.
The model
- 1
Every request carries an identity
Once you're signed in, every action you take — in the app or through the API — is tied to your user and your tenant.
- 2
Your role decides what kind of thing you can do
owner, admin, analyst, viewer, member, or a custom role — each grants a specific set of permissions across resources like Analyses, Datasets, and Workflows.
- 3
Dataset-level permissions narrow it to specific data
A role that can query data still only reaches the datasets it has been explicitly granted, or that are open to everyone by default.
- 4
The check happens on every request, not just once
Authorization is re-evaluated for each action, so a role change or a revoked dataset grant takes effect immediately — not the next time you sign in.
See Roles and Permissions for the role side, and Manage Data → Permissions for the dataset side.
- Both layers are also what keep one tenant's data from ever being reachable by another's, regardless of role — see Tenant Isolation.
- A 403 response from the API almost always means one of these two layers, not a bug — check the role's permission matrix first, then the dataset's access setting.