Currently, Hasura uses role based access control, where you define the entire set of permissions per-role. However, this doesn't scale well because:
It's not always possible to capture all possible states in the authorization system as separate roles.
It's not possible to reuse permissions (allowed fields, model predicate) across roles.
For complicated permissions, it's hard to verify the correctness of a model's permissions predicate at a glance.
Currently, Hasura uses role based access control, where you define the entire set of permissions per-role. However, this doesn't scale well because:
It's not always possible to capture all possible states in the authorization system as separate roles. It's not possible to reuse permissions (allowed fields, model predicate) across roles. For complicated permissions, it's hard to verify the correctness of a model's permissions predicate at a glance.
RFC on the proposal can be followed here https://github.com/hasura/graphql-engine/pull/10237
V2 Issues that can be addressed by this proposal:
3685
1919
3544