LetsBeBiz-Redesign/letsbe-orchestrator/app/routes/meta.py

36 lines
1.3 KiB
Python

"""Meta/instance endpoints for diagnostics and identification."""
from fastapi import APIRouter
from app.config import settings
from app.schemas.common import InstanceMetaResponse
from app.services.local_bootstrap import LocalBootstrapService
router = APIRouter(prefix="/meta", tags=["Meta"])
@router.get("/instance", response_model=InstanceMetaResponse)
async def get_instance_meta() -> InstanceMetaResponse:
"""
Get instance metadata.
This endpoint is stable and works even before tenant bootstrap completes.
Use it for diagnostics, health checks, and instance identification.
Returns:
- instance_id: Unique instance identifier (from Hub activation)
- local_mode: Whether running in single-tenant local mode
- version: Application version
- tenant_id: Local tenant ID (null if not bootstrapped or in multi-tenant mode)
- bootstrap_status: Detailed bootstrap status for debugging
"""
tenant_id = LocalBootstrapService.get_local_tenant_id()
return InstanceMetaResponse(
instance_id=settings.INSTANCE_ID,
local_mode=settings.LOCAL_MODE,
version=settings.APP_VERSION,
tenant_id=str(tenant_id) if tenant_id else None,
bootstrap_status=LocalBootstrapService.get_bootstrap_status(),
)