- Add
RbacConfigandRbacParamsconfiguration structs for RBAC/OPA authorization - Add
tenant_idcolumn toobjectstable (schema migration for SQLite/PostgreSQL/MySQL) - Add startup cross-validation: RBAC mode requires IdP auth, bundle path/URL, and non-empty claim paths
- Implement Policy Bundle Manager: load, validate (strict Regorus compilation), and hash
.regobundles - Implement Policy Evaluator:
ArcSwap-backed Regorus engine with atomic hot-reload and fail-closed semantics - Implement Policy Input Builder:
PolicyInputstruct matching OPA input contract - Implement RBAC Audit Logger: structured
tracing::info!events with typed fields - Ship default policy bundles: algorithm-only (non-RBAC) and full RBAC (super-admin/admin/operator/auditor)
- Wire
PolicyEvaluatorinto theKMSstruct with automatic initialization at startup - Add
ckms server migrate-tenantsCLI command for tenant_id backfill before RBAC enablement - Add
regorus,arc-swap,notifyworkspace dependencies - Implement three-tier RBAC enforcement:
- Tier 1:
dispatch.rspre-dispatch hook for non-object operations - Tier 2:
retrieve_object_utils.rsobject-level authorization via policy - Tier 3:
/access/grantand/access/revokeinline enforcement
- Tier 1:
- Extend JWT
UserClaimwith dynamic claim extraction (dot-notation paths for roles/tenant) - Bypass legacy
algorithm_policy.rswhen Rego evaluator is active - Implement hot-reload file watcher (notify crate, cross-platform)
- Implement remote bundle polling with JSON manifest support
- Add
POST /admin/migrate-tenantsserver-side REST endpoint - Add RBAC step to interactive configuration wizard
- Update
CONTEXT.mdwith 16 resolved design decisions from grilling session - Add ADR 0003: Always-Rego algorithm enforcement
- Add ADR 0004: Super-admin role for cross-tenant access
- Add
documentation/docs/configuration/rbac.mdRBAC documentation page - Register RBAC page in
documentation/mkdocs.yml - Add
test_data/vectors/rbac/README.mddocumenting planned integration test vectors