hataa
1300c6d36b
feat(authz): add pluggable AuthorizationProvider protocol and config scaffolding (Phase 0, #4063) (#4127)
Phase 0 of the RFC in #4063: scaffolding only, zero behavior change.
New deerflow/authz/ package (sibling to deerflow/guardrails/):
- AuthorizationProvider Protocol: authorize() + aauthorize() + filter_resources()
- Principal/AuthzRequest/AuthzDecision/AuthzReason dataclasses
- GuardrailAuthorizationAdapter: bridges AuthorizationProvider → GuardrailProvider
so existing GuardrailMiddleware can enforce authz decisions without a new middleware
New authorization config section (default enabled: false):
- AuthorizationConfig wired into AppConfig alongside guardrails
- Singleton load/reset mirrors GuardrailsConfig pattern
- config.example.yaml documents the RBAC provider schema
29 tests covering protocol conformance, dataclass construction, adapter
request/decision mapping, and config singleton behavior.
Per RFC #4063 Phase 0 (foundations). Layer 1/2 wiring and Principal builder
in services.py deferred to Phase 1.
2026-07-15 10:03:33 +08:00
..
2026-07-14 08:58:06 +08:00
2026-03-27 20:03:30 +08:00
2026-04-14 00:03:38 +08:00
2026-07-13 21:13:33 +08:00
2026-07-15 10:03:33 +08:00
2026-06-21 15:47:53 +08:00
2026-07-15 10:03:33 +08:00
2026-06-16 23:04:39 +08:00
2026-06-08 08:38:36 +08:00
2026-04-26 11:09:55 +08:00
2026-07-09 16:26:31 +08:00
2026-03-23 18:07:33 +08:00
2026-07-08 17:10:27 +08:00
2026-05-07 16:15:15 +08:00
2026-07-11 15:28:16 +08:00
2026-06-07 17:47:11 +08:00
2026-07-04 13:54:04 +08:00
2026-07-03 17:21:04 +08:00
2026-07-11 16:05:30 +08:00
2026-04-26 11:05:47 +08:00
2026-07-11 16:05:30 +08:00
2026-05-01 22:19:50 +08:00
2026-05-22 21:20:28 +08:00
2026-07-14 07:51:59 +08:00
2026-07-04 21:51:57 +08:00
2026-04-06 22:07:11 +08:00
2026-07-07 21:44:28 +08:00
2026-07-04 23:09:29 +08:00
2026-07-04 16:07:42 +08:00
2026-07-13 19:26:07 +08:00
2026-06-15 17:59:25 +08:00
2026-07-04 11:27:19 +08:00
2026-06-30 18:58:02 +08:00
2026-06-21 22:25:15 +08:00
2026-05-10 22:00:57 +08:00
2026-03-14 22:55:52 +08:00
2026-05-29 22:59:26 +08:00
2026-07-06 20:57:41 +08:00
2026-07-10 07:54:36 +08:00
2026-07-14 08:58:06 +08:00