OpenFGA language preview
1. A document-sharing model
owners, editors, and viewers, with owner implying access
horizon-dark
model
schema 1.1
type user
type document
relations
define owner: [user]
define editor: [user] or owner
define viewer: [user] or editor
atom-one-dark
model
schema 1.1
type user
type document
relations
define owner: [user]
define editor: [user] or owner
define viewer: [user] or editor
github-dark
model
schema 1.1
type user
type document
relations
define owner: [user]
define editor: [user] or owner
define viewer: [user] or editor
dracula
model
schema 1.1
type user
type document
relations
define owner: [user]
define editor: [user] or owner
define viewer: [user] or editor
nord
model
schema 1.1
type user
type document
relations
define owner: [user]
define editor: [user] or owner
define viewer: [user] or editor
github
model
schema 1.1
type user
type document
relations
define owner: [user]
define editor: [user] or owner
define viewer: [user] or editor
2. An organization with team-based access
relations resolved through a related object with from
horizon-dark
model
schema 1.1
type user
type team
relations
define member: [user]
type project
relations
define team: [team]
define viewer: [user] or member from team
atom-one-dark
model
schema 1.1
type user
type team
relations
define member: [user]
type project
relations
define team: [team]
define viewer: [user] or member from team
github-dark
model
schema 1.1
type user
type team
relations
define member: [user]
type project
relations
define team: [team]
define viewer: [user] or member from team
dracula
model
schema 1.1
type user
type team
relations
define member: [user]
type project
relations
define team: [team]
define viewer: [user] or member from team
nord
model
schema 1.1
type user
type team
relations
define member: [user]
type project
relations
define team: [team]
define viewer: [user] or member from team
github
model
schema 1.1
type user
type team
relations
define member: [user]
type project
relations
define team: [team]
define viewer: [user] or member from team
3. Typed wildcards and an exclusion rule
a public viewer relation with an explicit blocked list
horizon-dark
model
schema 1.1
type user
type document
relations
define blocked: [user]
define viewer: [user, user:*] but not blocked
atom-one-dark
model
schema 1.1
type user
type document
relations
define blocked: [user]
define viewer: [user, user:*] but not blocked
github-dark
model
schema 1.1
type user
type document
relations
define blocked: [user]
define viewer: [user, user:*] but not blocked
dracula
model
schema 1.1
type user
type document
relations
define blocked: [user]
define viewer: [user, user:*] but not blocked
nord
model
schema 1.1
type user
type document
relations
define blocked: [user]
define viewer: [user, user:*] but not blocked
github
model
schema 1.1
type user
type document
relations
define blocked: [user]
define viewer: [user, user:*] but not blocked