The thing that would be hard to translate to CUE w...
# spicedb
v
The thing that would be hard to translate to CUE would be Spice's algebra
Copy code
cue
schema: {
  user: {}

  // would be great to use CUE's disjunction operator "|", which seems like a union, but in a different context?
  // arrows and hashtags would break things, there are other ways to index in CUE though
  _gmember: ["user", "group#owner", "group->member"]
  group: {
    relations: {
      owner: _gmember
      direct: _gmember
    }

    permissions: {
      member = "owner + direct"  // this is probably a disjunction as well?
      write = "owner"
      read = "member + write"
    }
  }

  post: {
    relations: {
      owner: _gmember
      editor: _gmember
      reviewer: _gmember
      commenter: _gmember
      reader: _gmember
    }

    permissions: {
      admin = "owner"
      write = "owner + editor"
      read_draft = "write + reviewer"
      feedback = "read_draft"
      comment = "commenter + read_draft"
      read = "reader + comment"
    }
  }
}
2 Views