permify icon indicating copy to clipboard operation
permify copied to clipboard

Lookup-entity filter by relations

Open Disimasa opened this issue 7 months ago • 0 comments

Is your feature request related to a problem? Please describe. I use Lookup entity to get permitted ids and pass them to sql query for data selection. It works for simple entities, however sometimes I need to pass additional filter by relation or attribure.

Describe the solution you'd like

For example I have such permify schema on my project:

entity member {}
entity team {
  relation member @member
}
entity project {
  relation team @team
  relation member @member @team#member

  action teamMember = team.member
}
entity connection {
  relation project @project
  relation owner @member @team#member

  attribute projectAccess boolean
  attribute teamAccess boolean

  action read = owner or (projectAccess and project.member) or (teamAccess and project.teamMember)
}

I'd like to get a list of connection ids which have read action in current project by current member. However in lookup entity I can pass only subjectId, so I get list of readable connections for member without filtration by projectId. It'd be greate to add a field to request body like that:

{
	entity_type: "connection",
	permission: "read",
	subject: {
	  type: "member",
	  id: "memberId"
	},
	filters: [
	  {
	    type: "project",
	    id: "projectId"
	  }
	]
}

Disimasa avatar May 27 '25 12:05 Disimasa