"""
Shared dependencies for the REST API.
"""
import secrets
from fastapi import Depends, Header, HTTPException, status
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
from app.core.config import settings
_bearer_scheme = HTTPBearer()
async def verify_token(credentials: HTTPAuthorizationCredentials = Depends(_bearer_scheme)) -> None:
"""Validate Bearer token against APP_AUTH_KEY."""
if not secrets.compare_digest(credentials.credentials, settings.APP_AUTH_KEY):
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid authentication token")
def get_namespace(x_namespace: str = Header(default="default")) -> str:
"""Extract namespace from X-Namespace header."""
return x_namespace