mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-04 13:22:41 +02:00
Merge pull request #809 from MODSetter/dev
hotpatch: update SlowAPI middleware to fix chat
This commit is contained in:
commit
a76575b1da
1 changed files with 6 additions and 4 deletions
|
|
@ -10,7 +10,7 @@ from fastapi.middleware.cors import CORSMiddleware
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
from slowapi import Limiter
|
from slowapi import Limiter
|
||||||
from slowapi.errors import RateLimitExceeded
|
from slowapi.errors import RateLimitExceeded
|
||||||
from slowapi.middleware import SlowAPIASGIMiddleware
|
from slowapi.middleware import SlowAPIMiddleware
|
||||||
from slowapi.util import get_remote_address
|
from slowapi.util import get_remote_address
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware
|
from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware
|
||||||
|
|
@ -200,9 +200,11 @@ app = FastAPI(lifespan=lifespan)
|
||||||
app.state.limiter = limiter
|
app.state.limiter = limiter
|
||||||
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)
|
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)
|
||||||
|
|
||||||
# Add SlowAPI ASGI middleware for automatic rate limiting
|
# Add SlowAPI middleware for automatic rate limiting
|
||||||
# This applies default_limits to all routes and enables per-route overrides
|
# Uses Starlette BaseHTTPMiddleware (not the raw ASGI variant) to avoid
|
||||||
app.add_middleware(SlowAPIASGIMiddleware)
|
# corrupting StreamingResponse — SlowAPIASGIMiddleware re-sends
|
||||||
|
# http.response.start on every body chunk, breaking SSE/streaming endpoints.
|
||||||
|
app.add_middleware(SlowAPIMiddleware)
|
||||||
|
|
||||||
# Add ProxyHeaders middleware FIRST to trust proxy headers (e.g., from Cloudflare)
|
# Add ProxyHeaders middleware FIRST to trust proxy headers (e.g., from Cloudflare)
|
||||||
# This ensures FastAPI uses HTTPS in redirects when behind a proxy
|
# This ensures FastAPI uses HTTPS in redirects when behind a proxy
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue