API Surfaces
The backend is API-first. Chatbot UI, dashboards, batch-upload tools, external integrations, and operational tools use FastAPI endpoints or the same service layer. There is no privileged side path for ingestion or querying.
Current public surfaces
| Surface | Endpoint | Purpose |
|---|---|---|
| Health | GET /healthz | App readiness for validation and deployment checks |
| Inline text ingest | POST /documents/txt | Small born-digital text ingestion |
| Multipart upload | POST /documents | Manual/batch frontend uploads |
| Batch ingestion | POST /ingestion/batch | Prefix or manifest ingestion from object storage |
| Job status | GET /ingestion/jobs/{id} | Poll async ingestion status |
| Document status | GET /documents/{id} and filtered listing | Inspect uploaded/ingested document state |
| Search | POST /search | Return ranked chunks without synthesis |
| Query | POST /query | Return grounded answer with citations |
Security boundary
Upload, status, query, and related endpoints require the configured API key header. Production access is fronted by Huawei APIG, with RBAC and ABAC enforcement for user role, department, and document classification.
Frontend scope
Chatbot UI and dashboard applications are separate clients. They consume these APIs rather than embedding document-processing or retrieval logic directly.