- All active services now use their own persistence (release-orchestrator, scheduler, packsregistry) - Zero remaining references from any active csproj - Clean solution files (4 projects + 48 build configs removed from StellaOps.sln) - Update README and AGENTS.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
JobEngine
Container(s): stellaops-scheduler-web, stellaops-scheduler-worker, stellaops-packsregistry-web, stellaops-packsregistry-worker Slot: 19 (scheduler), 34 (packsregistry) | Port: 8080 | Consumer Group: scheduler, packsregistry Resource Tier: medium (scheduler), light (packsregistry)
Purpose
The JobEngine module provides scheduled scan orchestration and pack registry management. The Scheduler manages scan schedules (CRON-based), graph jobs, policy simulation runs, vulnerability resolver jobs, and failure signatures. The PacksRegistry stores and serves versioned task pack bundles.
Note: TaskRunner (Slot 18) was removed. The
task_runner_idDB columns remain as nullable legacy fields.Note: The legacy
StellaOps.JobEngine.Core,StellaOps.JobEngine.Infrastructure,StellaOps.JobEngine.Worker, andStellaOps.JobEngine.Testslibraries were removed (April 2026). Release-orchestrator now uses its ownStellaOps.ReleaseOrchestrator.Persistencelibrary. No active service depended on the old JobEngine libraries.
Module Structure
StellaOps.Scheduler.WebService/-- Scheduler HTTP API serviceStellaOps.Scheduler.Worker.Host/-- Scheduler background workerStellaOps.Scheduler.__Libraries/-- Scheduler shared libraries (persistence, etc.)StellaOps.Scheduler.__Tests/-- Scheduler testsStellaOps.PacksRegistry/-- PacksRegistry core and infrastructureStellaOps.PacksRegistry.__Libraries/-- PacksRegistry shared librariesStellaOps.PacksRegistry.__Tests/-- PacksRegistry testsStellaOps.JobEngine.WorkerSdk.Go/-- Go worker SDKStellaOps.JobEngine.WorkerSdk.Python/-- Python worker SDKplugins/-- Job engine plugins
API Surface
scheduler(via Router) -- schedule CRUD, run history, graph jobs, policy runs, policy simulations, failure signatures, event webhooks, scripts endpointpacksregistry(via Router) -- pack upload, download, version listing, approval workflow
Storage
PostgreSQL schema scheduler (Scheduler); PostgreSQL for PacksRegistry; Valkey queue for job dispatch; seed-fs object store for artifacts
Background Workers
- Scheduler:
SchedulerWorkerHostedService-- picks up scheduled jobs from Valkey and dispatches scan runs - PacksRegistry: worker process for background pack processing