Roles
- Assigned manually to workspace members (not condition-based).
All team membersis built in — every internal member has it.- Roles govern the central database only. App access is controlled by workspace membership, not roles.
Rules
Rules live inzite.permissions.json at the workspace root. Each rule grants (or denies, via
effect: "deny") a set of operations to one or more roles, with an optional rowFilter comparing a
record field to a userField (from the signed-in user) or a staticValue. See the
permissions file reference for the full schema.
How access is decided
For a user, operation, and table:- No rules → the workspace
defaultPolicy(allowby default, ordenyto lock down). - Only rules matching the operation and one of the user’s roles count; none matching → denied.
- An unscoped deny rule blocks access and beats any allow.
- Otherwise matching allow filters are OR’d (deny filters AND’d) into the visible row set.
zite.permissions.json; they’re enforced
on every database call, including the Database API.