haiku.rag/haiku_rag_slim/haiku/rag/ingester/api/routes/config.py
2026-06-09 12:11:33 +03:00

17 lines
710 B
Python

import yaml
from fastapi import APIRouter, Depends
from haiku.rag.config import redact_secrets
from haiku.rag.ingester.api.schemas import ConfigResponse
from haiku.rag.ingester.api.server import APIState, get_state
router = APIRouter(tags=["config"])
@router.get("/config", response_model=ConfigResponse)
async def config(state: APIState = Depends(get_state)) -> ConfigResponse:
"""The full effective configuration (defaults filled in, not the on-disk
file) as YAML, with secret-bearing values redacted."""
data = redact_secrets(state.config.model_dump(mode="json", exclude_none=False))
text = yaml.dump(data, sort_keys=False, default_flow_style=False)
return ConfigResponse(yaml=text)