I thoroughly enjoyed this read. As it states at the beginning: rbac is necessary, yet not sexy. I don't use infiscal, yet this post was quite a good insight. Thanks for sharing it!
I love reading posts like this because it shows that authorization isn't as niche as it once was. I also empathize with avoiding dependencies when you ship enterprise software for running on-prem; we abused Postgres a lot while serving enterprise customers for Quay before we founded AuthZed/SpiceDB.
As an engineer it's your job to decide when is the right time to use a dedicated system or continue to invest in your own. I can't help but see the similarities in their design to concepts from Zanzibar/SpiceDB, and that's great! It also means if they ever do encounter a situation where the existing system is no longer viable (engineers leave or a new design constraint requires rethinking), they _can_ migrate to a dedicated solution easily.
One trade-off I didn't see acknowledged in this post is the sacrifice in terms of tooling. Dedicated solutions have toolchains for debugging and proving correctness that you can integrate into CI/CD and homegrown solutions can't typically spare the time to also build themselves a nice toolchain.
If you are seriously considering SpiceDB and our approach to telemetry bothers you, please do us a favor and open a GitHub issue with your perspective (or find an existing one if someone beats you to it). We want to be respectful while also maintaining a feedback loop to be able to improve what people use. We do a lot more than I've seen others do to communicate when/when/how/why we collect and how to re-configure (off or collect it yourself) so those who wish to opt-out can immediately. If this is not the right balance or our solution is just entirely wrong, it's important for us to understand why and improve rather than alienating folks.
With opt-in on an open-source project I get to choose to help contributing something back (telemetry data) to help the project.
Opt-out telemetry is not compatible with respect. It also adds an obstacle when I try to advocate the software to friends and coworkers. I have to warn them about it in advance, which is often where it ends because we’ve been burned in the past with other software adding extra things to their telemetry that weren’t there before, or changing the name of the environment variable that disables telemetry, or someone on the team does something that accidentally causes data to be transmitted unintentionally.
Maybe it's because I'm not an RBAC expert, but I had a hard time understanding the data model for folders. Are they a subject? And then there's a layered CASL where layers overwrite each other? And the user is an actor?
From what I have seen this subject needs a lot more attention than what it receives which translates in the reality that in almost majority of the places the access rules are pretty open from inside. This is one area where centralization (using some solution like AuthZed) and decentralization (skipping the checks based on business domain locally) present this healthy tension which requires some one who has expertise on the business domain to make it work efficiently
>The best case is no complaints and that the system is correct. It can never excel. There's no 10x RBAC system people rave about on Twitter. Access controls are a box a product checks, but not a killer feature.
This reminded me of the tine i said something similar to teammate whom asked why our work always felt so bad. They Lost thier mind went off on some 20m rant and refused to talk to me for weeks and we were never on good terms again. I broke something in them i guess. They ultimately left thr tech industry.
It was the first of a number of incidents in my life that I learned that there really are a certian set of people that cannot be told the truth.
not really relevant but whatever it was a weird incident maybe that will entertain someobe
18 comments
[ 3.2 ms ] story [ 41.1 ms ] threadedit: fixed now
As an engineer it's your job to decide when is the right time to use a dedicated system or continue to invest in your own. I can't help but see the similarities in their design to concepts from Zanzibar/SpiceDB, and that's great! It also means if they ever do encounter a situation where the existing system is no longer viable (engineers leave or a new design constraint requires rethinking), they _can_ migrate to a dedicated solution easily.
One trade-off I didn't see acknowledged in this post is the sacrifice in terms of tooling. Dedicated solutions have toolchains for debugging and proving correctness that you can integrate into CI/CD and homegrown solutions can't typically spare the time to also build themselves a nice toolchain.
Make telemetry strictly opt-in then, that's really the only respectful way to do it.
Everything else is sophistry.
With opt-in on an open-source project I get to choose to help contributing something back (telemetry data) to help the project.
Opt-out telemetry is not compatible with respect. It also adds an obstacle when I try to advocate the software to friends and coworkers. I have to warn them about it in advance, which is often where it ends because we’ve been burned in the past with other software adding extra things to their telemetry that weren’t there before, or changing the name of the environment variable that disables telemetry, or someone on the team does something that accidentally causes data to be transmitted unintentionally.
[0]: https://www.osohq.com/
This reminded me of the tine i said something similar to teammate whom asked why our work always felt so bad. They Lost thier mind went off on some 20m rant and refused to talk to me for weeks and we were never on good terms again. I broke something in them i guess. They ultimately left thr tech industry.
It was the first of a number of incidents in my life that I learned that there really are a certian set of people that cannot be told the truth.
not really relevant but whatever it was a weird incident maybe that will entertain someobe