Skip to content

Cycle detection is over-broad and preventing some recursive tree-climbing #68

@theronic

Description

@theronic

Given schema,

definition user {}

definition account {
  relation parent: account
  relation reader: user
  permission read = reader + parent->read
}
  • get-permission-paths for permission read = reader + parent->read only returns the direct reader path, not the recursive parent->read arrow.
  • That matches the over-broad permission-eid cycle check in indexed.clj (line 111).
  • Because that arrow path is dropped, can? and lookup-subjects do not inherit read from root to child or grandchild.

Fix for over-broad cycle detection in progress, that was dropping some arrow paths at runtime.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions