nanochat/services/inference/src/middleware/internal_auth.py
2026-04-16 11:19:18 -07:00

23 lines
683 B
Python

from __future__ import annotations
from fastapi import HTTPException, Request, status
def require_internal_api_key(
request: Request,
) -> None:
settings = request.app.state.settings
expected = settings.internal_api_key
if not expected:
raise HTTPException(
status_code=status.HTTP_503_SERVICE_UNAVAILABLE,
detail="INTERNAL_API_KEY is not configured",
)
provided = request.headers.get("X-Internal-API-Key") or request.headers.get("INTERNAL_API_KEY")
if provided != expected:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid internal API key",
)