Merge branch 'worktree-agent-a503735a'
# Conflicts: # devops/compose/docker-compose.stella-ops.yml # devops/docker/services-matrix.env # src/JobEngine/StellaOps.Scheduler.WebService/Bootstrap/SystemScheduleBootstrap.cs # src/JobEngine/StellaOps.Scheduler.WebService/Program.cs # src/JobEngine/StellaOps.Scheduler.WebService/Schedules/ScheduleEndpoints.cs # src/JobEngine/StellaOps.Scheduler.WebService/StellaOps.Scheduler.WebService.csproj # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Models/Schedule.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/IRunProgressReporter.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/ISchedulerJobPlugin.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/ISchedulerPluginRegistry.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/JobConfigValidationResult.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/JobExecutionContext.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/JobPlan.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/JobPlanContext.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/SchedulerPluginRegistry.cs # src/JobEngine/StellaOps.Scheduler.__Libraries/StellaOps.Scheduler.Plugin.Abstractions/StellaOps.Scheduler.Plugin.Abstractions.csproj
This commit is contained in:
@@ -14,19 +14,30 @@ Doctor provides a plugin-based diagnostic system that enables:
|
||||
- **Capability probing** for feature compatibility
|
||||
- **Evidence collection** for troubleshooting and compliance
|
||||
|
||||
### Scheduler Runtime Surface (run-002 remediation)
|
||||
### Scheduler Integration (Sprint 20260408-003)
|
||||
|
||||
Doctor Scheduler now exposes an HTTP management and trend surface at:
|
||||
- `GET/POST /api/v1/doctor/scheduler/schedules`
|
||||
- `GET/PUT/DELETE /api/v1/doctor/scheduler/schedules/{scheduleId}`
|
||||
- `GET /api/v1/doctor/scheduler/schedules/{scheduleId}/executions`
|
||||
- `POST /api/v1/doctor/scheduler/schedules/{scheduleId}/execute`
|
||||
- `GET /api/v1/doctor/scheduler/trends`
|
||||
- `GET /api/v1/doctor/scheduler/trends/checks/{checkId}`
|
||||
- `GET /api/v1/doctor/scheduler/trends/categories/{category}`
|
||||
- `GET /api/v1/doctor/scheduler/trends/degrading`
|
||||
> **The standalone Doctor Scheduler service is deprecated.**
|
||||
> Doctor health check scheduling is now handled by the Scheduler service's `DoctorJobPlugin`.
|
||||
|
||||
The default local runtime uses deterministic in-memory repositories with stable ordering for schedule lists, execution history, and trend summaries.
|
||||
Doctor schedules are managed via the Scheduler API with `jobKind="doctor"` and plugin-specific
|
||||
configuration in `pluginConfig`. Trend data is stored in `scheduler.doctor_trends` (PostgreSQL).
|
||||
|
||||
**Scheduler-hosted Doctor endpoints:**
|
||||
- `GET /api/v1/scheduler/doctor/trends` -- aggregated trend summaries
|
||||
- `GET /api/v1/scheduler/doctor/trends/checks/{checkId}` -- per-check trend data
|
||||
- `GET /api/v1/scheduler/doctor/trends/categories/{category}` -- per-category trend data
|
||||
- `GET /api/v1/scheduler/doctor/trends/degrading` -- checks with degrading health
|
||||
|
||||
**Schedule management** uses the standard Scheduler API at `/api/v1/scheduler/schedules`
|
||||
with `jobKind="doctor"` and `pluginConfig` containing Doctor-specific options (mode, categories, alerts).
|
||||
|
||||
Three default Doctor schedules are seeded by `SystemScheduleBootstrap`:
|
||||
- `doctor-full-daily` (0 4 * * *) -- Full health check
|
||||
- `doctor-quick-hourly` (0 * * * *) -- Quick health check
|
||||
- `doctor-compliance-weekly` (0 5 * * 0) -- Compliance category audit
|
||||
|
||||
The Doctor WebService (`src/Doctor/StellaOps.Doctor.WebService/`) remains the execution engine.
|
||||
The plugin communicates with it via HTTP POST to `/api/v1/doctor/run`.
|
||||
|
||||
### AdvisoryAI Diagnosis Surface (run-003 remediation)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user