Skip to main content Svelte Highlight v7.23.1

SpiceDB language preview

1. A document sharing schema

viewers and editors, with editors implying view access
horizon-dark
definition user {}

definition document {
  relation viewer: user | user:*
  relation editor: user

  permission view = viewer + editor
  permission edit = editor
}
atom-one-dark
definition user {}

definition document {
  relation viewer: user | user:*
  relation editor: user

  permission view = viewer + editor
  permission edit = editor
}
github-dark
definition user {}

definition document {
  relation viewer: user | user:*
  relation editor: user

  permission view = viewer + editor
  permission edit = editor
}
dracula
definition user {}

definition document {
  relation viewer: user | user:*
  relation editor: user

  permission view = viewer + editor
  permission edit = editor
}
nord
definition user {}

definition document {
  relation viewer: user | user:*
  relation editor: user

  permission view = viewer + editor
  permission edit = editor
}
github
definition user {}

definition document {
  relation viewer: user | user:*
  relation editor: user

  permission view = viewer + editor
  permission edit = editor
}

2. An organization with inherited folder permissions

a permission computed through a parent relation with ->
horizon-dark
definition user {}

definition organization {
  relation admin: user
  relation member: user
}

definition folder {
  relation org: organization
  relation viewer: user

  permission view = viewer + org->admin
}
atom-one-dark
definition user {}

definition organization {
  relation admin: user
  relation member: user
}

definition folder {
  relation org: organization
  relation viewer: user

  permission view = viewer + org->admin
}
github-dark
definition user {}

definition organization {
  relation admin: user
  relation member: user
}

definition folder {
  relation org: organization
  relation viewer: user

  permission view = viewer + org->admin
}
dracula
definition user {}

definition organization {
  relation admin: user
  relation member: user
}

definition folder {
  relation org: organization
  relation viewer: user

  permission view = viewer + org->admin
}
nord
definition user {}

definition organization {
  relation admin: user
  relation member: user
}

definition folder {
  relation org: organization
  relation viewer: user

  permission view = viewer + org->admin
}
github
definition user {}

definition organization {
  relation admin: user
  relation member: user
}

definition folder {
  relation org: organization
  relation viewer: user

  permission view = viewer + org->admin
}

3. A caveated relationship

a caveat expression that must evaluate true for the relationship to hold
horizon-dark
definition user {}

definition resource {
  relation viewer: user
  permission view = viewer
}

caveat has_valid_ip(user_ip ipaddress) {
  user_ip.in_cidr("192.168.0.0/16")
}

caveat during_business_hours(current_time timestamp) {
  current_time.getHours() >= 9 && current_time.getHours() < 17
}
atom-one-dark
definition user {}

definition resource {
  relation viewer: user
  permission view = viewer
}

caveat has_valid_ip(user_ip ipaddress) {
  user_ip.in_cidr("192.168.0.0/16")
}

caveat during_business_hours(current_time timestamp) {
  current_time.getHours() >= 9 && current_time.getHours() < 17
}
github-dark
definition user {}

definition resource {
  relation viewer: user
  permission view = viewer
}

caveat has_valid_ip(user_ip ipaddress) {
  user_ip.in_cidr("192.168.0.0/16")
}

caveat during_business_hours(current_time timestamp) {
  current_time.getHours() >= 9 && current_time.getHours() < 17
}
dracula
definition user {}

definition resource {
  relation viewer: user
  permission view = viewer
}

caveat has_valid_ip(user_ip ipaddress) {
  user_ip.in_cidr("192.168.0.0/16")
}

caveat during_business_hours(current_time timestamp) {
  current_time.getHours() >= 9 && current_time.getHours() < 17
}
nord
definition user {}

definition resource {
  relation viewer: user
  permission view = viewer
}

caveat has_valid_ip(user_ip ipaddress) {
  user_ip.in_cidr("192.168.0.0/16")
}

caveat during_business_hours(current_time timestamp) {
  current_time.getHours() >= 9 && current_time.getHours() < 17
}
github
definition user {}

definition resource {
  relation viewer: user
  permission view = viewer
}

caveat has_valid_ip(user_ip ipaddress) {
  user_ip.in_cidr("192.168.0.0/16")
}

caveat during_business_hours(current_time timestamp) {
  current_time.getHours() >= 9 && current_time.getHours() < 17
}