CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-express-rate-limit

Express middleware for IP-based rate limiting with flexible configuration options and multiple storage backends

Overall
score

96%

Overview
Eval results
Files

rubric.jsonevals/scenario-7/

{
  "context": "Evaluates how the solution uses express-rate-limit to handle backend store failures and propagate errors through Express. Checks that pass-on-store-error behavior is configured correctly and that custom over-limit handling relies on the library rather than ad hoc logic.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Fail-open config",
      "description": "Configures the limiter with passOnStoreError enabled so store.increment rejections still allow the request to reach the route handler, while logging the store error once.",
      "max_score": 30
    },
    {
      "name": "Store error bubble",
      "description": "When fail-open is disabled, relies on the limiter's default passOnStoreError=false behavior so a store.increment failure is forwarded to Express error handling (not swallowed or custom-wrapped).",
      "max_score": 25
    },
    {
      "name": "Store option usage",
      "description": "Provides the failing store through the limiter's store option (Store/LegacyStore interface) instead of bypassing the middleware, ensuring limiter state comes from that store.",
      "max_score": 15
    },
    {
      "name": "Handler propagation",
      "description": "Implements the over-limit path via the limiter's handler option throwing Error('limit failure') and lets express-rate-limit call next(err), resulting in Express error middleware handling it.",
      "max_score": 20
    },
    {
      "name": "Limiter wiring",
      "description": "Installs the middleware produced by rateLimit on the GET route so rate limiting and its error propagation wrap the handler (no manual counter logic).",
      "max_score": 10
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/npm-express-rate-limit

tile.json