mirror of
https://github.com/alecthomas/chroma.git
synced 2025-02-13 13:28:27 +02:00
Reference: https://docs.authzed.com/reference/schema-lang Used by project SpiceDB (https://github.com/authzed/spicedb), a database system for managing security-critical permissions checking, inspired by Google's Zanzibar paper
29 lines
864 B
Plaintext
29 lines
864 B
Plaintext
/**
|
|
* Project is a project.
|
|
*/
|
|
definition test/project {
|
|
relation issue_creator: role#member
|
|
relation issue_assigner: role#member
|
|
relation any_issue_resolver: role#member
|
|
relation assigned_issue_resolver: role#member
|
|
relation comment_creator: role#member
|
|
relation comment_deleter: role#member
|
|
relation role_manager: role#member
|
|
|
|
permission create_issue = issue_creator
|
|
permission create_role = role_manager
|
|
}
|
|
|
|
definition role {
|
|
/** project is the project */
|
|
relation project: project
|
|
relation member: user
|
|
relation built_in_role: project
|
|
|
|
permission delete = project->role_manager - built_in_role->role_manager
|
|
permission add_user = project->role_manager
|
|
permission add_permission = project->role_manager & built_in_role->role_manager
|
|
|
|
// with arrows!
|
|
permission remove_permission = project->role_manager + built_in_role->role_manager
|
|
} |