-
Notifications
You must be signed in to change notification settings - Fork 336
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design Meeting Permissions UI #4540
Comments
After scrub, making discussion. @ackernaut will take a crack at opening a new issue to supersede this one |
today, we have 5 explicit roles, which we could structure using an RBAC:
we also have a bunch of relations that augment this (ReBAC). For example:
we even have a few attribute based things (ABAC):
to make this more complex, we'll use a recursive hierarchy when we build Team of Teams. Best practice is to check for RBAC, then check ReBAC, then check ABAC. if the answer is still denied, recurse using the parent resource, if available (in this case, the parent would be a team that holds the current team resource). we could build a table that looks like Instead, I say we opt for decentralized like how it is now-- using GraphQL types or even fields. We do this today at the top of the resolve function. We could move it to a higher-order function, or as a directive to make it more expressive though. The problem we face is with mutations-- for performance, we'd like to use a dataloader to fetch the authorization resource (eg an OrganizationUser). If we share a dataloader between the resolve function & the authorization, then it's possible the enforcement will cache that resource & the resolve function wouldn't know it before it mutated the ground truth-- leaving us with a stale cache. for example, let's say a Options:
|
After reading the zanzibar paper (https://storage.googleapis.com/pub-tools-public-publication-data/pdf/41f08f03da59f5518802898f68730e247e23c331.pdf) I'm pretty confident that centralized ACLs are for google scale & not our scale. The only way for them to handle complex rules is to replicate the entire (trillion+) rules across 10+ datacenters. This makes sense for them because they have the resources operate more like a social network than a saas. we can keep rules on the objects themselves & then shard those across datacenters & thus be OK.
Totally valid! Forced semantics are great
Keep the attributes on the objects themselves & it makes it even easier. I call BS on this arg.
If we had really convoluted rules I could see this making sense, but e.g. finding a keyphrase across all Tasks for all of the Users teams is pretty easy |
See discussion #5670 |
Stale issue |
Iceboxing |
When i want to restrict visibility of my meetings, I need a UI to adjust the functionality added in #4539
AC
Estimate: 16 hours
The text was updated successfully, but these errors were encountered: