All services expose interactive API documentation via Swagger/OpenAPI when running locally.
| Service | Base URL | Docs URL | Protocol |
|---|---|---|---|
| UDC Classifier | http://localhost:8080 |
Swagger UI | REST + gRPC (:50051) |
| UDC MetaCatalog | http://localhost:8001 |
FastAPI Docs | REST + gRPC (:50052) |
| UDC ContextVault | http://localhost:8002 |
FastAPI Docs | REST + gRPC (:50053) |
| UDC VisionLens | http://localhost:8003 |
FastAPI Docs | REST + gRPC (:50054) |
| UDC DesktopAgent | http://localhost:8004 |
FastAPI Docs | REST + WebSocket + gRPC (:50055) |
| UDC PolicyGuard | http://localhost:8005 |
FastAPI Docs | REST + gRPC (:50056) |
| UDC Orchestrator | http://localhost:8006 |
FastAPI Docs | REST + SSE |
| UDC Portal | http://localhost:5173 |
— | Web UI |
| Nginx Gateway | http://localhost:80 |
— | Reverse Proxy |
All API requests require one of:
- API Key:
X-API-Keyheader with valid key from theapi_keystable - Bearer Token:
Authorization: Bearer <JWT>with Azure AD Service Principal token
Public paths excluded from authentication:
GET /healthGET /docsGET /openapi.json
{
"data": { ... },
"meta": {
"request_id": "uuid",
"timestamp": "2024-01-01T00:00:00Z",
"duration_ms": 42
}
}POST /api/classify— Classify a single data assetPOST /api/classify/batch— Batch classificationPOST /api/pipeline/document— Document a pipeline (UC-2)POST /api/dashboard/generate— Generate dashboard spec (UC-4)POST /api/quality/validate— Run quality gate
GET /api/meta/assets— List data assets (paginated)POST /api/meta/assets— Register a new assetGET /api/meta/assets/{id}— Get asset detailsGET /api/meta/lineage/{asset_id}— Get lineage graphGET /api/meta/glossary— List glossary termsPOST /api/meta/glossary— Create glossary termGET /api/meta/quality/{asset_id}— Get latest quality reportGET /api/meta/search?q={query}— Full-text search
POST /api/context/store— Store a documentGET /api/context/retrieve?query={q}— Semantic retrievalGET /api/context/session/{id}— Get session contextPOST /api/context/session— Create new session
POST /api/vision/analyze— Analyze screenshot (multipart)POST /api/vision/ground— Ground text to coordinates
POST /api/desktop/task— Execute a desktop taskGET /api/desktop/task/{id}— Get task statusWS /api/desktop/stream— Real-time desktop feed
POST /api/policy/evaluate— Evaluate action against policiesGET /api/policy/audit— Get audit trailGET /api/policy/trust/{entity}— Get trust score
POST /api/workflow— Execute a workflowGET /api/workflow/{id}— Get workflow statusPOST /api/chat— Chat with Copilot (SSE streaming)
Proto definitions in shared/proto/. Each service listens on its gRPC port:
classifier.proto → :50051 — ClassifierService
metadata.proto → :50052 — MetadataService
context.proto → :50053 — ContextService
vision.proto → :50054 — VisionService
desktop.proto → :50055 — DesktopService
policy.proto → :50056 — PolicyService
python scripts/generate_openapi.pyExports JSON specs to docs/openapi/{service}.json.