WIP: Claude Code rate-limit checkpoint (20dd5562)
This commit is contained in:
parent
3de72fe6f5
commit
150b1f55fb
8 changed files with 230 additions and 15 deletions
|
|
@ -6,11 +6,14 @@ flex-auth protected system (`FLEX-WP-0008-T01`). Action names here match
|
|||
(`tenant_engine/src/tenant_engine/authz.py`) — coordinated between the two
|
||||
repos, not independently invented.
|
||||
|
||||
| Action | tenant-engine write endpoint | Resource type | Decision effects |
|
||||
| Action | tenant-engine endpoint | Resource type | Decision effects |
|
||||
| --- | --- | --- | --- |
|
||||
| `tenant.read` | `GET /tenants/{id}` | `tenant` | `allow`, `deny` |
|
||||
| `tenant.create` | `POST /tenants` | `tenant` | `allow`, `deny` |
|
||||
| `tenant.role.grant` | `POST /tenants/{id}/roles/grant` | `role-grant` | `allow`, `deny` |
|
||||
| `tenant.role.revoke` | `POST /tenants/{id}/roles/revoke` | `role-grant` | `allow`, `deny` |
|
||||
| `tenant.role.read` | `GET /tenants/{id}/roles` | `role-grant` | `allow`, `deny` |
|
||||
| `tenant.role.read.live` | `GET /tenants/{id}/roles/live` | `role-grant` | `allow`, `deny` |
|
||||
| `tenant.plan.assign` | `POST /tenants/{id}/plan` | `plan-assignment` | `allow`, `deny` |
|
||||
| `tenant.update` | `PATCH /tenants/{id}` | `tenant` | `allow`, `deny` |
|
||||
| `tenant.retire` | `POST /tenants/{id}/retire` | `tenant` | `allow`, `deny` |
|
||||
|
|
@ -26,12 +29,12 @@ without granting the write. That split is used today: `flex-auth` may
|
|||
may do both. Reasoning is recorded in
|
||||
`examples/tenant-engine/policy_package.md`.
|
||||
|
||||
These are the only nine actions `tenant-engine` sends to `POST /v1/check` —
|
||||
These are the only twelve actions `tenant-engine` sends to `POST /v1/check` —
|
||||
its `FlexAuthCheckClient` (`TEN-WP-0003`) never sends anything else.
|
||||
`tenant-engine`'s role reads (`/roles`, `/roles/live`) are still not gated
|
||||
through flex-auth; they remain `tenant-engine`'s own cache-read and
|
||||
live-lookup endpoints. The guardrail GET is different: it is authorized,
|
||||
because a ceiling is an input to a decision, not an unauthenticated lookup.
|
||||
Every tenant and role read is gated before the store is touched, preventing
|
||||
both unauthorized data access and tenant-existence probing. `user-engine`
|
||||
may read tenant records, `flex-auth` may perform the high-stakes live role
|
||||
lookup, and no caller receives a role-read privilege through a mutation rule.
|
||||
|
||||
## Not in scope for this vocabulary
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue