RiskEngine (pointer: the deployables are retired)
Verified against commit
0b9bdde04a(2026-10-03). Re-verify with:git grep -l "StellaOps.RiskEngine" -- "*.csproj" ":!src/__Obsoleted"andgit grep -n "riskengine" -- src/Findings/__Libraries/StellaOps.Findings.Persistence/Migrations/001_findings_consolidated_baseline.sql.
The dossier is
findings/architecture.md. RiskEngine is not a separate service. Its retained source lives undersrc/Findings/and its capability belongs to the consolidated Findings family (ADR-039 D14).
What happened
Owner ruling Q-2 (2026-08-25) chose retire-and-rehome. SPRINT_20260722_010 FND-10 executed it on 2026-08-27.
| Retired (deleted) | Retained |
|---|---|
StellaOps.RiskEngine.WebService: the /risk-scores/* route mappings | src/Findings/StellaOps.RiskEngine.Core/: providers, contracts, scoring services |
StellaOps.RiskEngine.Worker: the CVSS/KEV snapshot exporter | src/Findings/__Libraries/StellaOps.RiskEngine.Infrastructure/: PostgresRiskScoreResultStore |
StellaOps.RiskEngine.Application: the /exploit-maturity/* endpoint group | the riskengine schema and riskengine.risk_score_results, created by the Findings baseline migration in stellaops_findings |
the riskengine-web and riskengine-worker compose keys and images |
Evidence recorded for the ruling, measured on the running containers before they stopped: the HTTP surface had no gateway route in either live configuration and no caller in src/, and the worker’s hourly exporter produced no export in 16 hours of uptime because it returned early against the vuln.* schema that the G1 cutover had dropped.
Current state
- No host runs risk scoring.
findings-worker(src/Findings/StellaOps.Findings.Worker/) replaced theriskengine-workerdeployable, but itsFindingsScoringWorkeris a placeholder that logs and returns; the worker does not referenceStellaOps.RiskEngine.Core. It hosts the configuration-gated advisory-corpus, advisory-SBOM and Scanner projection passes and the NIS2 incident-ledger consumer. StellaOps.RiskEngine.Corehas no production caller. Onlysrc/Findings/__Libraries/StellaOps.RiskEngine.Infrastructure(itself without a production consumer) andsrc/Findings/__Tests/StellaOps.RiskEngine.Testsreference it, so no deployable compiles it. It is kept, not deleted in a cleanup, because owner ruling Q-2 keeps the risk-scoring capability. AProjectReferenceis not evidence of runtime use:StellaOps.Policy.Predicatesdeclared one without using any type from it, and it was removed on 2026-10-03.StellaOps.RiskEngine.Infrastructurehas no production consumer; onlysrc/Findings/__Tests/StellaOps.RiskEngine.Testsreferences it.- There is no HTTP surface. A risk-score read API would be designed under
/api/findings/v1/*when a consumer exists.
Where things went
| You were looking for | Read instead |
|---|---|
| architecture, persistence, operations | findings/architecture.md |
| the scoring provider set and the exploit-maturity taxonomy | src/Findings/StellaOps.RiskEngine.Core/ (RiskScoreProviderRegistry, ExploitMaturityLevel) |
the riskengine schema | src/Findings/__Libraries/StellaOps.Findings.Persistence/Migrations/001_findings_consolidated_baseline.sql |
| the retired host’s OpenAPI snapshot and its generated reference | docs-archive/modules/riskengine/ (openapi/v1.json, api-reference.md) |
| the pre-consolidation dossier | docs-archive/modules/risk-engine/ |
