DACquiri
A compile-time enforced authorization framework for Rust applications.
Authorization
In typical applications, authorization checks are performed in seemingly random locations. This leads to implicit assumptions on what kinds of permissions or checks have been enforced at various parts of the codebase. For example:
// makes no assumptions on a user's permissions or access, initially
// Implicitly depends on user having the "SimplePermissions" permission or role.
DACquiri does things differently.
With DACquiri, you explicitly declare your authorization requirements in the function definition. DACquiri will, at compile-time, enforce all code-paths invoking your function will have checked the appropriate authorization requirements beforehand.
With DACquiri, you:
- Know all of your authorization requirements based on your function's definition
- Know that all authorization requirements are enforced in all codepaths
- Know that authorization violations cannot be introduced accidentally
Missing an authorization check? That's a compile-time error.
Missing DACquiri? That's your error.