feat(06-02): add fixed-window limiter, Store, and ClientIP

- MemoryStore mirrors Laravel tooManyAttempts-before-hit first-hit-wins
- FixedWindowLimiter + throttle factory; success and 429 rate-limit headers
- Trusted-proxy ClientIP; remove noOpLimit; keep Limiter interface seam
This commit is contained in:
Jakub Zych
2026-09-19 19:35:53 +02:00
parent e2aba0ebf0
commit 68c6ab85c5
7 changed files with 741 additions and 10 deletions

View File

@@ -128,3 +128,5 @@ type OptionalMessage interface {
// The kernel type-asserts HasConfig (party, before Register), HasCommands
// (generated app main, after Boot), HasMigrations (lagoon migrate), and
// HasMiddleware/HasMiddlewareFactories/HasRoutes (surf assemble).
// surf.BucketProvider is type-asserted in Assemble (not a pact interface:
// pact cannot import surf without a cycle).