76 lines
1.8 KiB
Markdown
76 lines
1.8 KiB
Markdown
# API contract summary
|
|
|
|
The machine-readable baseline is `contracts/openapi.yaml`.
|
|
|
|
## Authentication
|
|
|
|
The demo may use signed server-issued sessions or short-lived JWTs. Demo-role buttons create an authenticated session; they do not bypass authorization middleware.
|
|
|
|
## Required routes
|
|
|
|
### System and demo
|
|
|
|
- `GET /health`
|
|
- `GET /api/v1/system/status`
|
|
- `POST /api/v1/demo/login`
|
|
- `POST /api/v1/demo/reset` — Operations Manager only
|
|
|
|
### Dashboard
|
|
|
|
- `GET /api/v1/dashboard`
|
|
|
|
### Vehicles
|
|
|
|
- `GET /api/v1/vehicles`
|
|
- `GET /api/v1/vehicles/{public_ref}`
|
|
|
|
### Bookings and return
|
|
|
|
- `GET /api/v1/bookings`
|
|
- `GET /api/v1/bookings/{public_ref}`
|
|
- `POST /api/v1/bookings/{public_ref}/return`
|
|
|
|
Return commands require an `Idempotency-Key` header and optimistic version where relevant.
|
|
|
|
### Data quality
|
|
|
|
- `GET /api/v1/data-quality/issues`
|
|
- `GET /api/v1/data-quality/issues/{public_ref}`
|
|
- `POST /api/v1/data-quality/issues/{public_ref}/defer`
|
|
- `POST /api/v1/data-quality/issues/{public_ref}/reject`
|
|
- `POST /api/v1/data-quality/issues/{public_ref}/merge-customers`
|
|
|
|
### Knowledge
|
|
|
|
- `POST /api/v1/knowledge/questions`
|
|
- `GET /api/v1/knowledge/status`
|
|
|
|
### Automation and audit
|
|
|
|
- `GET /api/v1/workflows`
|
|
- `POST /api/v1/workflows/{event_id}/retry`
|
|
- `GET /api/v1/audit`
|
|
|
|
### MCP-provider endpoints
|
|
|
|
Service-token protected:
|
|
|
|
- `GET /api/v1/integrations/mcp/operations-summary`
|
|
- `GET /api/v1/integrations/mcp/attention-vehicles`
|
|
- `GET /api/v1/integrations/mcp/vehicles/{public_ref}`
|
|
|
|
Knowledge search may be routed by the Hub directly to RAGcore or through a narrowly scoped MobilityOps façade. Use the contract chosen in `docs/10-mcp-hub-integration.md`.
|
|
|
|
## Error shape
|
|
|
|
```json
|
|
{
|
|
"error": {
|
|
"code": "ODOMETER_REGRESSION",
|
|
"message": "The submitted reading is below the current canonical odometer.",
|
|
"correlation_id": "...",
|
|
"details": {}
|
|
}
|
|
}
|
|
```
|