[Epic] API keys, quotas & rate limiting #21

Closed
opened 2026-07-01 00:58:05 +00:00 by manlycucumber · 1 comment
manlycucumber commented 2026-07-01 00:58:05 +00:00 (Migrated from github.com)

Issue and enforce API keys with per-tenant quotas and rate limits, backed by MySQL holding only keys, tenants, and aggregate counters. Done when keyed access is enforced and usage is metered without a row per request.

Epic — child issues are tracked as sub-issues.

Issue and enforce API keys with per-tenant quotas and rate limits, backed by MySQL holding only keys, tenants, and aggregate counters. Done when keyed access is enforced and usage is metered without a row per request. _Epic — child issues are tracked as sub-issues._
manlycucumber commented 2026-07-03 06:11:06 +00:00 (Migrated from github.com)

Epic complete — KeyStore seam (in-memory double + MySQL PdoKeyStore + sql/schema.sql), KeyIssuer (issue/rotate/revoke, hash-only storage) + bin/api-key.php, and AccessControl (auth → per-key rate limit → per-tenant monthly quota, standard X-RateLimit-* + Retry-After). Open until INTROIBO_DB_DSN is set; live MySQL is the maintainer step. #137.

Epic complete — `KeyStore` seam (in-memory double + MySQL `PdoKeyStore` + `sql/schema.sql`), `KeyIssuer` (issue/rotate/revoke, hash-only storage) + `bin/api-key.php`, and `AccessControl` (auth → per-key rate limit → per-tenant monthly quota, standard `X-RateLimit-*` + `Retry-After`). Open until `INTROIBO_DB_DSN` is set; live MySQL is the maintainer step. #137.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Directorium/Api#21
No description provided.