60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
# TaskRunner
|
|
|
|
**Status:** Implemented
|
|
**Source:** `src/TaskRunner/`
|
|
**Owner:** Platform Team
|
|
|
|
## Purpose
|
|
|
|
TaskRunner executes Task Packs deterministically with approvals, sealed-mode enforcement, and evidence capture. Provides orchestration for automated workflows with plan-hash binding, offline operation, and complete provenance generation (DSSE attestation + evidence bundle).
|
|
|
|
## Components
|
|
|
|
**Services:**
|
|
- `StellaOps.TaskRunner.WebService` - HTTP API with plan hash validation and SSE log streaming
|
|
- `StellaOps.TaskRunner.Worker` - Run orchestration with retries, artifact capture, and attestation
|
|
|
|
**Libraries:**
|
|
- `StellaOps.TaskRunner.Core` - Execution graph builder, simulation engine, step state machine
|
|
- `StellaOps.TaskRunner.Infrastructure` - Storage adapters (PostgreSQL, file), artifact/object store clients
|
|
|
|
## Configuration
|
|
|
|
See `etc/task-runner.yaml.sample` for configuration options.
|
|
|
|
Key settings:
|
|
- PostgreSQL connection (schemas: `pack_runs`, `pack_run_logs`, `pack_artifacts`)
|
|
- Authority integration (issuer, audiences, client credentials)
|
|
- Telemetry and OTLP endpoint
|
|
- Artifact storage paths
|
|
- Approval timeout and retry policies
|
|
- Sealed-mode network allowlists
|
|
|
|
## API Surface
|
|
|
|
- `POST /api/runs` - Submit pack run (requires manifest, inputs, tenant context)
|
|
- `GET /api/runs/{runId}` - Retrieve run status and graph
|
|
- `GET /api/runs/{runId}/logs` - SSE stream of ordered log events
|
|
- `GET /api/runs/{runId}/artifacts` - List captured artifacts with digests
|
|
- `POST /api/runs/{runId}/approve` - Record approval gate decision
|
|
- `POST /api/runs/{runId}/cancel` - Cancel active run
|
|
|
|
## Dependencies
|
|
|
|
- PostgreSQL (schemas: `pack_runs`, `pack_run_logs`, `pack_artifacts`)
|
|
- Authority (authentication and approval token claims)
|
|
- Attestor (DSSE attestation generation)
|
|
- PacksRegistry (task pack manifests and modules)
|
|
- Scheduler (optional, for scheduled runs)
|
|
|
|
## Related Documentation
|
|
|
|
- Architecture: `./architecture.md`
|
|
- Task Packs Spec: `../../task-packs/` (if exists)
|
|
- Orchestrator: `../orchestrator/`
|
|
- Attestor: `../attestor/`
|
|
|
|
## Current Status
|
|
|
|
Implemented with plan-hash binding and deterministic execution. Supports parallel/map steps, approval gates, policy gates, and the built-in `bundle.ingest` helper. Produces DSSE attestations for all completed runs.
|