Permissions map to a Consistent CRUD Verb Pattern
Problem to solve
Customers today have to look through our permissions list that has various levels of verbs to performance an action on a resource.
Proposal
Provide a predictable verb pattern for resources in GitLab.
Options
-
Create, Read, Update, Delete: These operate independently and do not depend on each other. May not be suitable for UI driven views but for the API.
-
Manage, Write, View, Delete: These depend on each other. Manage can CRUD, Write can Create/update, Delete can view. May be suitable for UI driven views given the View requirement on resources.
Permission Description Notes Manage CRUD on resource PLUS control settings of resource This will handle any sensitive operations on the resource.
If you select "Manage", you assume Write/View/Delete.
Write This is to create and update the resource Determine if this needs to be broken out to Create/Update. This verb may vary based on resource. If you select "Write", you assume view. View View a resource such as lists or object Delete Delete a resource If you select "Delete", you assume view. In GitLab terms, Manage = Maintainer/Owner, Write = Developer, View = Reporter/Guest
-
Create, Delete, Get, List: Opinionated to an API reference and are independent of each other
Open Questions
- How to treat resources that are missing a permission such as view or delete?
- How to treat common verbs on a resource such as
pullfor code?