Express more with less
Dot-separated permissions and wildcards turn a collection of special cases into a model you can read. Explore the concepts →
01 / CHECK A PERMISSION
ability.can(
workspaces.1.read)
One subject. Three grants.
One deterministic answer.
02 / FIND THE WINNING GRANT
workspaces.1.readDIRECT · EXACTworkspaces.1.*DIRECT · WILDCARDworkspaces.*GROUP · DEVELOPERSIllustrative checks for the same subject: direct grants take priority over inherited grants.
SMALL RULES. CLEAR DECISIONS.
Users, services and groups. Explicit grants and inherited permissions. A predictable answer to one simple question: can they?
Express more with less
Dot-separated permissions and wildcards turn a collection of special cases into a model you can read. Explore the concepts →
Inherit. Override. Resolve.
Share access through groups and default parents. Resolve conflicts with deterministic precedence. Understand inheritance →
Your data, your adapter
Start in memory. Persist with SQLite, MySQL, Postgres or MongoDB. The permission engine stays the same. Choose an adapter →
One model across your stack
Authorize on the server. Use resolved snapshots for UI decisions with the same matching semantics. Find your integration →
START SMALL. BUILD FROM HERE.
bun add vperms