Doctor API Reference
| Field | Value |
|---|---|
| Source spec | doctor/openapi/v1.json |
| OpenAPI version | 3.1.1 |
| API version | 1.0.0 |
| Operations | 20 |
| Path filter | All paths |
Operations
GET /api/v1/buildinfo
API alias for /buildinfo.json (same payload).
| Property | Value |
|---|---|
| Operation ID | StellaOpsBuildInfoApi |
| Tags | StellaOps.Doctor.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/doctor/checks
List available doctor checks
Returns all health checks available in the Doctor engine, optionally filtered by category or plugin. Each check includes its ID, name, category, and description. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | ListDoctorChecks |
| Tags | Doctor |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
category | query | no | |
plugin | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
POST /api/v1/doctor/diagnosis
Generate AdvisoryAI diagnosis for a Doctor run
Generates an AI-powered diagnosis and remediation recommendations for a completed Doctor run. Returns structured findings with severity, root cause analysis, and suggested actions. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | CreateDoctorDiagnosis |
| Tags | Doctor |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
400 | Bad Request | application/json |
404 | Not Found | - |
GET /api/v1/doctor/plugins
List available doctor plugins
Returns all registered Doctor plugins with their names, versions, and available check categories. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | ListDoctorPlugins |
| Tags | Doctor |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/reports
List historical doctor reports
Returns paginated historical Doctor run reports with summary metadata including run date, mode, overall health status, and check counts. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | ListDoctorReports |
| Tags | Doctor |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
limit | query | no | |
offset | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/reports/{reportId}
Get a specific doctor report
Returns the full stored Doctor report for a specific report ID including all check results and diagnosis if available. Returns 404 if the report is not found. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetDoctorReport |
| Tags | Doctor |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
reportId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
404 | Not Found | - |
DELETE /api/v1/doctor/reports/{reportId}
Delete a doctor report
Permanently removes a stored Doctor report. Returns 204 No Content on success or 404 if not found. Requires doctor:admin authorization.
| Property | Value |
|---|---|
| Operation ID | DeleteDoctorReport |
| Tags | Doctor |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
reportId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
204 | No Content | - |
404 | Not Found | - |
POST /api/v1/doctor/run
Start a new doctor run
Initiates a new Doctor health check run with the specified mode, categories, and plugins. Returns 202 Accepted with the run ID. Results are retrieved via GetDoctorRunResult or streamed via StreamDoctorRunProgress. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | StartDoctorRun |
| Tags | Doctor |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/run/{runId}
Get doctor run result
Returns the full result of a completed Doctor run including per-check outcomes, overall health status, and failure summary. Returns 404 if the run is not found. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetDoctorRunResult |
| Tags | Doctor |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
runId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
404 | Not Found | - |
GET /api/v1/doctor/run/{runId}/stream
Stream doctor run progress via SSE
Streams real-time progress events for an active Doctor run using Server-Sent Events (text/event-stream). Each event contains the check ID, status, and message. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | StreamDoctorRunProgress |
| Tags | Doctor |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
runId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/timestamping/certificates
Get TSA certificate expiry and chain status
Returns expiry and chain status for TSA signing certificates and trust anchor certificates, including days until expiry and health status. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetCertificateHealth |
| Tags | Doctor, Timestamping |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/timestamping/dashboard
Get aggregated timestamping health data for dashboard display
Returns a single aggregated response combining overall status, TSA health, certificate health, evidence status, eIDAS compliance, and time sync data for rendering a complete timestamping dashboard. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetTimestampingDashboard |
| Tags | Doctor, Timestamping |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/timestamping/eidas
Get EU Trust List and QTS qualification status
Returns the EU Trust List freshness status and the qualification state of all configured Qualified Trust Service (QTS) providers including country code and last status change. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetEidasStatus |
| Tags | Doctor, Timestamping |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/timestamping/evidence
Get timestamp evidence staleness and re-timestamping needs
Returns counts of timestamp tokens that use deprecated algorithms, are approaching signing cert expiry, are pending re-timestamping, or are missing OCSP/CRL stapling. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetEvidenceStatus |
| Tags | Doctor, Timestamping |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/timestamping/status
Get overall timestamping infrastructure status
Returns a summary of the overall timestamping infrastructure health including healthy and unhealthy TSA provider counts, expiring certificate counts, and pending re-timestamp counts. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetTimestampingStatus |
| Tags | Doctor, Timestamping |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/timestamping/timesync
Get system clock and TSA time synchronization status
Returns the system clock NTP synchronization status, system clock skew, and per-TSA time skew measurements to detect time drift that could affect timestamp validity. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetTimeSyncStatus |
| Tags | Doctor, Timestamping |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /api/v1/doctor/timestamping/tsa
Get TSA endpoint availability and response times
Returns per-TSA endpoint health details including status, average response time, last successful response, and last error. Also includes the number of failover TSAs available. Requires doctor:run authorization.
| Property | Value |
|---|---|
| Operation ID | GetTsaHealth |
| Tags | Doctor, Timestamping |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
GET /buildinfo.json
Image build provenance (module, gitSha, gitCommitTime, imageBuiltAt, branch) for drift detection.
| Property | Value |
|---|---|
| Operation ID | StellaOpsBuildInfoFile |
| Tags | StellaOps.Doctor.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /healthz
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Health |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /readyz
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Health |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
