ShotGrid API and Permission Group Interoperability
0 reputation · 17 Sept 2022, 07:07 UTC
0 reputation · 17 Sept 2022, 07:07 UTC
ShotGrid manages data access through a group-based permission system where read, write, and delete rights are assigned per entity. When integrating external tools via the API, the system must reconcile permissions assigned to the authenticated user's primary group with any inherited or override permissions applied to specific entities.
There is uncertainty regarding the precedence logic when a user belongs to multiple groups with conflicting permission levels for the same entity, specifically when an override is applied at the individual entity level versus a broad group-level restriction.
The ShotGrid API enforces the same group-based access control as the web UI. An API request succeeds only if the authenticated user has the required read, write or delete right for the entity type in the project via at least one of their groups.
When a user belongs to multiple groups, permissions are additive. If any group grants a permission for an entity type/project, the user effectively has it. Evaluation is most permissive wins, not most restrictive. Primary group is not a hard limit; all groups the user belongs to are evaluated.
ShotGrid does not provide a native per-entity ACL override layer that can deny access on a single entity instance. What is often described as an entity-specific override is in practice project-level entity type permissions, custom script filtering, or access rules. The API does not apply a separate per-entity deny that supersedes group grants.
Observed differences between UI and API or between entities are usually explained by:
Custom scripts can alter effective access, so observed API results may diverge from the documented core model.
One diagnostic detail that changes the recommendation: ShotGrid/Flow Production Tracking version and whether custom permission scripts or access rules are installed on the instance. That determines whether core additive logic applies or custom logic overrides it.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.