korzhik
02/26/2025, 7:59 PMlookup-subjects
and lookup-resources
with a simple schema from tutorials:
zed schema read
definition user {}
definition post {
relation reader: user
relation writer: user
permission read = reader + writer
permission write = writer
}
I have only one user and one post:
zed relationship read post writer
post:1 writer user:emilia
When I run lookup-subjects, I can successfully find `emilia`:
zed permission lookup-subjects post:"1" read user
user:emilia
However, when I try using a wildcard *
, which seems to be allowed based on the request format "^(([a-zA-Z0-9/_|\-=+]{1,})|\*)$"
, I get nothing:
zed permission lookup-subjects post:"*" read user
For lookup-resources
looks like it doesn’t seem to support this type of query:
zed permission lookup-resources post reader user:"*"
rpc error: code = InvalidArgument desc = invalid argument: cannot perform lookup resources on wildcard
Is there a way to achieve what I’m trying to do, or are these queries not supported? Any guidance would be greatly appreciated!
Thanks!yetitwo
02/26/2025, 8:49 PMyetitwo
02/26/2025, 8:50 PMyetitwo
02/26/2025, 8:50 PMuser:*
as a subject and then do LookupResources on ityetitwo
02/26/2025, 8:50 PMyetitwo
02/26/2025, 8:51 PMkorzhik
02/26/2025, 10:21 PMdefinition user {}
definition group {
relation members: user
}
caveat only_owner_allowed(allower_user_id string, user_id string) {
allower_user_id == user_id
}
definition account {
relation money_sender: user with only_owner_allowed
relation owner: user
relation admin: user | group#members
relation viewer: user | group#members
permission view_stats = viewer
permission block = admin
permission can_withdraw = money_sender
}
My goal is to understand the correct way to grant a user permission to send money. One approach I’m considering is creating a money_sender
group and checking if the user belongs to it group:money_sender#in@user:123
. However, I feel this might not align well with a proper ReBAC approach.yetitwo
02/26/2025, 11:04 PMyetitwo
02/26/2025, 11:05 PMyetitwo
02/26/2025, 11:06 PMyetitwo
02/26/2025, 11:06 PMpermission can_withdraw = owner
would be sufficientyetitwo
02/26/2025, 11:06 PMkorzhik
02/26/2025, 11:21 PMyetitwo
02/27/2025, 1:41 AMyetitwo
02/27/2025, 1:41 AMrelation owner: user
relation admin: user
relation viewer: user
and then phrase permissions in terms of those different kinds of relationskorzhik
02/28/2025, 1:33 PM