Skip to main content

openkind_api/middleware/
mod.rs

1//! Cross-cutting middleware for the HTTP layer:
2//! - `request_id_layer` — emits an `x-typesafe-request-id` header on
3//!   every response (UUIDv4, generated server-side; the SDK reads this).
4//! - `auth_layer` — optional `Authorization: Bearer *** gate.
5//! - `rate_limit_layer` — fixed-window client-IP rate limiter.
6
7mod auth;
8mod rate_limit;
9mod request_id;
10
11#[cfg(test)]
12mod tests;
13
14pub use auth::{auth_layer, auth_layer_for, secure_token_eq, AuthConfig, AUTH_HEADER};
15#[doc(hidden)]
16pub use rate_limit::RateLimitContext;
17pub use rate_limit::{rate_limit_layer, RateLimitConfig, RateLimiter};
18pub use request_id::{
19    is_safe_request_id, request_id_layer, RequestId, MAX_REQUEST_ID_LEN, REQUEST_ID_HEADER,
20};