Hi everyone,
# spicedb
a
Hi everyone, I wanted understand which schema is more performant for lookUpResource,lookUpSubjects and permissionCheck queries. scheam 1: definition user {} definition platform { relation administrator: user permission super_admin = administrator } definition organization { relation org_administrator: platform | user permission org_admin = org_administrator + org_administrator->super_admin } definition partner { relation admin: user | organization relation manager: user relation staff: user permission view_ledger = admin + admin->org_admin + manager + staff permission edit_ledger = admin + admin->org_admin + manager } schema 2: definition user {} definition platform { relation administrator: user } definition organization { relation platform_admins: platform#administrator | user relation org_members : user } definition partner { relation admin: organisaton#platform_admins | user relation manager: user relation staff: user relation viewer : organization#org_member | user permission view_ledger = admin + manager + staff + viewer permission edit_ledger = admin + manager }
y
these relationships aren't meaningfully different enough from a performance perspective for me to make a decision based on that
i'd ask which models your domain better
i will say that one potential pitfall with using a
platform
object is that if a user gains access to the entire world through some sort of
superuser
relation on the platform, it can make
LookupResources
less useful if they would get every resource in your system back as a result