You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,7 @@ MVP Python implementation of an open control plane for agent tool governance. It
19
19
- Registry persistence: registry saved to `registry.json` by default (override with `OCPA_REGISTRY_PATH`), loaded on startup; create via `/registry/tools` and `/registry/agents` (validates side_effect_level and tool references). Mutations require JWT bearer token (HS256 via `OCPA_JWT_SECRET`) and roles header `X-OCPA-Roles` containing `OCPA_ADMIN_ROLE`. Server uses FastAPI lifespan hooks for startup.
20
20
- Auth: Bearer JWTs validated via HS256 shared secret (`OCPA_JWT_SECRET`) or JWKS (`OCPA_JWKS_URL`) with caching; optional audience/issuer checks; mutation RBAC enforced via required admin role. JWKS cache honors `OCPA_JWKS_CACHE_TTL` and refreshes on missing `kid` (rotation).
21
21
- Policy RBAC: Rego now checks `allowed_roles` against actor `roles`/`actor_roles` in context (with `actor_id` forwarded); read-only/low/high rules still apply and high side effects require ticket + non-prod. Registry mutations are also enforced via OPA (`policies/registry_allow.rego`).
22
+
- CLI: `scripts/ocpa_cli.py` provides `list-tools`, `list-agents`, `eval-tool-policy`, and `eval-registry-policy` using the OPA HTTP API.
22
23
23
24
## Getting Started
24
25
Requirements: Python 3.9+ and Docker (for OPA/demo stack).
0 commit comments