"""Middleware configuration for the NLProxy server. Author: IntelliDeep Labs Team License: BSL 1.1 """ from __future__ import annotations import uuid from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.gzip import GZipMiddleware def configure_middlewares(app: FastAPI) -> None: """Register standard server middleware.""" app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], expose_headers=["*"], max_age=3600, ) app.add_middleware( GZipMiddleware, minimum_size=1000, compresslevel=6, ) def configure_request_id(app: FastAPI) -> None: """Attach a request id to each incoming request.""" @app.middleware("http") async def add_request_id(request: Request, call_next): request.state.request_id = str(uuid.uuid4()) response = await call_next(request) response.headers["X-Request-ID"] = request.state.request_id return response