Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build an API serving multiple tenants from one database: strict tenant isolation on every query (no row leaks across tenants), per-tenant and per-key rate limiting, an append-only audit log of sensitive actions, and a load test demonstrating the limiter holds under burst. Prove isolation with a test that tries to read another tenant's data and fails.
Every query scoped to the tenant; a cross-tenant read attempt is tested and denied.
Per-tenant/per-key limits enforced; burst load tested; limits return correct 429s with retry hints.
Append-only log of sensitive actions; tamper-evident enough to reconstruct who did what.
Limits and tenants configurable without a redeploy; sane defaults.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# Multi-tenant API with rate limiting and audit logs ## Goal Build an API serving multiple tenants from one database: strict tenant isolation on every query (no row leaks across tenants), per-tenant and per-key rate limiting, an append-only audit log of sensitive actions, and a load test demonstrating the limiter holds under burst. Prove isolation with a test that tries to read another tenant's data and fails. ## Acceptance criteria - [ ] Tenant isolation: Every query scoped to the tenant; a cross-tenant read attempt is tested and denied. - [ ] Rate limiting: Per-tenant/per-key limits enforced; burst load tested; limits return correct 429s with retry hints. - [ ] Auditability: Append-only log of sensitive actions; tamper-evident enough to reconstruct who did what. - [ ] Operability: Limits and tenants configurable without a redeploy; sane defaults. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.