Files
bxh/app/project_context.py

29 lines
821 B
Python

from __future__ import annotations
from dataclasses import dataclass
from fastapi import Header
from app.config import settings
@dataclass(frozen=True)
class ProjectContext:
tenant_id: str
project_id: str
graph_name: str
def get_project_context(
x_kg_tenant_id: str | None = Header(default=None, alias="X-KG-Tenant-Id"),
x_kg_project_id: str | None = Header(default=None, alias="X-KG-Project-Id"),
x_kg_graph_name: str | None = Header(default=None, alias="X-KG-Graph-Name"),
) -> ProjectContext:
project_id = (x_kg_project_id or settings.default_project).strip()
return ProjectContext(
tenant_id=(x_kg_tenant_id or settings.default_tenant).strip(),
project_id=project_id,
graph_name=(x_kg_graph_name or project_id or settings.falkordb_graph).strip(),
)