[WIP] SaaS DSL
This is me Mulling over rule engines and DSLs.
Usually in a complex SAAS (Software as a Service) project, you need to let some power users be able to turn some knobs and essentially program the product to their needs.
Examples include things like JQL for Atlassian's JIRA, various drag-and-drop flow programming systems that let you hook actions on top of events happening etc. This empowers the users to cater the product to their needs without the devs being involved. When done right, this can save a lot of product development time.
Some SAAS products actually embed a programming language and expose it to the users. For example, the now deprecated Auth0 rules lets you write javascript functions.
While you want to empower the users, and give them powerful tools to do their jobs, you want to make sure that the power is still limited. Of course, plugin systems are not a new thing. But in the context of a SAAS, we're talking about executing untrusted code.
Further Links to read
[WIP] Roles and permissions
Some interesting DSLs to manage permissions
Prolog
Zanzibar
- Why Google Zanzibar shines at building authorization
- Zanzibar paper by Google
- Auth0 FGA
- Zanzibar Academy