Request hooks
Register during init — see each page for examples.
request.interceptInspect inbound HTTP requests before handlers run.middleware.injectInner request middleware layer before handlers.Request stack diagram
HTTP request stack
Client request
│
▼
response_middleware (pass-through on request; mutates JSON on response)
│
▼
request.intercept hooks (outer — auth, rate limits, early reject)
│
▼
middleware.inject hooks (inner — tracing, header checks)
│
▼
handle_request (debug logging)
│
▼
Axum router (core routes + plugin routes)
Request hooks receive method, path, headers as JSON, and body bytes. Headers use lowercase keys. authorization is redacted.
Route patterns use prefix matching: /api/* matches /api/system, /plugins/hello matches exactly that path prefix chain.
Plugin routes register during init and merge into the same router as core API routes.