Access policy security and limits
An authenticated caller is not necessarily authorized. Server enforcement evaluates the caller, site and app, resource, action, and conditions for each request. Never reuse a previous ALLOW as a durable grant.
How Database access is enforced
- A cloud user can bypass App Role and row-policy checks for a DataTable. Treat cloud-user status as privileged platform access, not an application role.
- Allowed external system tables require cloud permission. A normal site user cannot gain system-table access through an App Role or resource policy.
- A site user with no real App Role for the app is denied before Database row filters are applied. Fallback identity roles do not satisfy this requirement.
- An explicit denied plan or a thrown service or conversion error is denied by the Database middleware. A denied list read returns a forbidden response; it is not represented as a successful empty result.
- If a conditional rule can't be turned into a row filter — for example, a rule without a condition — the Database list can come back unfiltered. After adding a conditional rule, check both Live Testing and an actual Database list. If the rows aren't narrowed, stop the release and contact TaruviBase support.
- When
_allowed_actionsis requested, an evaluation or provider failure keeps the affected action out of the row and can leave an empty action list. The hint supportsupdateanddeleteonly; every mutation is authorized again.
Policy-based row filtering works for flat-table storage. JSONB storage doesn't support the same filtering. Use Database storage compatibility and the Database policy-filter guide before depending on row-level conditions.
Console and client checks
Policy management is Console-only. Save replaces the complete definition, so review the full diff and run both an ALLOW and a DENY check. Restrict Console access to the people who should change policies.
UI checks, including explicit Refine access checks, never replace server enforcement. Runtime permission checks from code are currently supported in the Python SDK. The JavaScript SDK's policy calls and the Refine access-control provider don't work with the current API yet.
Limits
There is no published limit on the number of roles, policies, rules, or decision checks. If a request is rejected for size, split it into smaller requests, or contact TaruviBase support.
Use Troubleshooting when a decision or synchronized policy doesn't behave as described here.