WIP: Claude Code rate-limit checkpoint (20dd5562)

This commit is contained in:
Claude Code 2026-08-18 15:25:17 +02:00
parent 3de72fe6f5
commit 150b1f55fb
8 changed files with 230 additions and 15 deletions

View file

@ -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