36 lines
1.3 KiB
Python
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(),
|
|
)
|