Summary
There is no per-request timeout layer; a slow client can hold a connection/handler open.
Location
src/api/mod.rs:46-93 (layers: cors/trace/body-limit/rate-limit, no timeout)
Details & impact
Slow-loris-style clients can tie up server resources, especially combined with the unbounded limiter map.
Suggested fix
Add tower_http::timeout::TimeoutLayer (and consider header/read timeouts at the server).
Acceptance criteria
- Requests exceeding a configured timeout are aborted.
Summary
There is no per-request timeout layer; a slow client can hold a connection/handler open.
Location
src/api/mod.rs:46-93(layers: cors/trace/body-limit/rate-limit, no timeout)Details & impact
Slow-loris-style clients can tie up server resources, especially combined with the unbounded limiter map.
Suggested fix
Add
tower_http::timeout::TimeoutLayer(and consider header/read timeouts at the server).Acceptance criteria