XRAPH/Work/Authorization
Go · since 2026

Warden

RBAC, ABAC and Zanzibar-style relation tuples behind one Check call. Precedence is fixed and stated up front, explicit deny beating allow beating default deny, so you can layer a role model, attribute conditions and a relationship graph without guessing which one wins.

Language
Go
Category
Authorization
Since
2026
Stars
1
Repository
01

Anatomy

4 modules
01

RBAC

Roles and permissions for the common case.

02

ABAC

Attribute rules where roles run out.

03

ReBAC

Relationship checks for graph-shaped ownership.

04

Check

One call. The model used is an implementation detail.

02

Why it exists

Design notes

#What it is

Warden answers "are you allowed to do this?" across three authorization models behind one API: RBAC, ABAC and ReBAC.

#Three models, one Check

  • RBAC: roles, permissions, role inheritance, resource-scoped assignments.
  • ABAC: attribute-based policies with conditions: IP ranges, time windows, regex matches on resource attributes.
  • ReBAC: Zanzibar-style relation tuples with BFS graph walking, for the "editors of a document's parent folder can edit the document" class of question.

Precedence is fixed and stated up front: explicit deny beats allow beats default deny. Most systems that support more than one model leave this implicit, and the result is that nobody can predict the outcome of a conflict without reading the implementation.

#Practicalities

All data is tenant-scoped via Forge scope or standalone context helpers. There is an in-memory LRU cache with TTL and per-tenant or per-subject invalidation, plugin hooks for audit logging and metrics, and a drop-in Forge extension with DI, routes and middleware.

An authorization check is a function call. Making it a network call means every request now depends on a third service, and the cache you build to fix that will have an invalidation bug.
03

Signals

GitHub
Stars
1
Language
Go
Since
2026
Adopters
00

Shipping something on Warden? Nobody is listed here yet. Tell me what you built and you will be the first.

Get listed
04

Where it sits

Fields · papers