Stella Ops Module Documentation Index

This is the entry point for the architecture documentation of every Stella Ops module. Use it to find the dossier for a given module, understand how the source tree maps to docs, and track which historical modules have been consolidated into a parent.

Conventions


How to use this index


Module Categories

Core Platform

ModulePathDescription
Authoritysrc/Authority/Authentication, authorization, OAuth/OIDC, DPoP. Includes IssuerDirectory.
Routersrc/Router/Transport-agnostic messaging (TCP/TLS/UDP/RabbitMQ/Valkey). Also contains StellaOps.Gateway.WebService for HTTP ingress and binary protocol bridging.
Platformsrc/Platform/Platform architecture and Platform Service aggregation APIs

Data Ingestion

ModulePathDescription
Conceliersrc/Concelier/Vulnerability advisory ingestion and merge engine. Includes Feedser and Excititor.
VexLens(source deleted)RETIRED 2026-08-05 — consensus folded to the hub; noise gating has no successor
VexHub(source deleted)RETIRED 2026-08-05 — superseded by the vulnerability hub
Mirror(source folded)RETIRED 2026-09-12 — absorbed by OfflineKit; src/Mirror/ no longer exists

Scanning & Analysis

ModulePathDescription
Scannersrc/Scanner/Container scanning with SBOM generation. Includes Cartographer.
Binary analysissrc/BinaryIndex/; workflow in src/Vulnerabilities/Shared analysis and closed artifact contracts; retired hosts are frozen.
AdvisoryAIsrc/AdvisoryAI/AI-assisted advisory analysis. Includes OpsMemory.
ReachGraphsrc/Graph/Reachability subgraph CAS. Merged into the Graph service at 023 GRA-10 (2026-09-08); the dossier stays because the reachability model, schemas and guides are still current.

Artifacts & Evidence

ModulePathDescription
Attestorsrc/Attestor/in-toto/DSSE attestation generation. Includes Signer and Provenance.
SbomServicesrc/SbomService/SBOM storage, versioning, and lineage ledger
EvidenceLockersrc/EvidenceLocker/Sealed evidence storage and export
ExportCenter(source folded)RETIRED 2026-09-12 — absorbed by OfflineKit; hosts frozen at src/__Obsoleted/ExportCenter/
OfflineKitsrc/OfflineKit/Offline exchange: the export plane, carrier custody and mirror bundles. Absorbed ExportCenter and Mirror, and AirGap’s posture hosts, at SPRINT_20260722_025 OK-10
Provcachesrc/__Libraries/StellaOps.Provcache.*Production provenance cache shared library family (no standalone dossier)

Policy & Risk

ModulePathDescription
Policysrc/Policy/Policy engine with K4 lattice logic
Unknownssrc/Unknowns/Unknown component tracking registry (boundary preserved)
Findingssrc/Findings/Centralized findings aggregation and evidence graphs. One consolidated family (findings-web + findings-worker) on its own stellaops_findings database; absorbs the risk-scoring capability and the merged VulnExplorer endpoints, plus the VulnCorrelation ingestion lane that owns the analytics.* schema.

Release & Orchestration

ModulePathDescription
ReleaseOrchestratorsrc/ReleaseOrchestrator/Central release control plane (active development)
JobEnginesrc/JobEngine/Workflow orchestration, job scheduling, task execution, and pack registry. Includes Scheduler, TaskRunner, and PacksRegistry; renamed from Orchestrator.
Workflowsrc/Workflow/General-purpose workflow engine (definitions, instances, signal-driven tasks). Source retained, service dormant since 2026-07-06 — not deployed by any compose stack; /api/v1/workflows belongs to ReleaseOrchestrator, not this engine.
Remediationsrc/Remediation/Fix template marketplace for CVE remediation

Operations & Observability

ModulePathDescription
Doctorsrc/Doctor/Diagnostic framework for system health validation
Notifysrc/Notify/Notifications Studio: the toolkit (Email, Slack, Teams, Webhooks, regulatory connectors) plus the notify-web and notify-worker deployables.
Timelinesrc/Timeline/Timeline query, event indexing, and replay. Includes TimelineIndexer.
Replaysrc/Replay/Deterministic replay engine

Integration & Clients

ModulePathDescription
CLIsrc/Cli/Command-line interface (Native AOT)
Zastavasrc/Zastava/Container registry webhook observer
Web/UIsrc/Web/Angular 21 frontend SPA
APIsrc/Api/OpenAPI contracts and governance
Registrysrc/Registry/Container registry integration
Integrationssrc/Integrations/Integration hub for external systems (SCM, CI, registries, secrets). Includes IDE extensions (VS Code, JetBrains) under __Extensions/.

Infrastructure & Libraries

ModulePathDescription
Cryptographysrc/Cryptography/Crypto plugins (FIPS, eIDAS, GOST, SM, PQ)
SmRemotesrc/SmRemote/Remote SM2/SM3/SM4 cryptographic operations
Telemetrysrc/Telemetry/OpenTelemetry traces, metrics, logging
Graphsrc/Graph/Call graph and reachability data structures
Signalssrc/Signals/Runtime signal collection and correlation
AirGapsrc/OfflineKit/__Libraries/StellaOps.AirGap.{Bundle,Importer,Sync} + src/__Libraries/StellaOps.AirGap.Policy (root src/AirGap/ retired at OK-14, 2026-09-14)Air-gapped deployment libraries: Bundle, Importer, Policy, Sync. The Controller and Time hosts retired at OK-5 (frozen at src/__Obsoleted/AirGap/); posture is served by OfflineKit
AOCsrc/Aoc/Append-Only Contract enforcement
Pluginsrc/Plugin/Plugin SDK, registry, sandbox, and host framework
RuntimeInstrumentationsrc/RuntimeInstrumentation/Tetragon-based eBPF runtime instrumentation
FacetLibraryProduction cross-module faceting library shared by Scanner and Policy (no standalone dossier)

Testing & Benchmarks

ModulePathDescription
Toolssrc/Tools/Developer utility tools, benchmarks, SDK generator, verifier, dev portal. Includes Bench, Verifier, Sdk, DevPortal.
Testersrc/Tester/QA fixture-injection service + the replay-and-compare determinism oracle (/api/v1/tester/*). Opt-in overlay only — must never reach a production stack: it authenticates nobody and relays credentials (devops/compose/docker-compose.tester.yml; invariants in src/Tester/AGENTS.md). Dossier: tester/architecture.md.
E2Esrc/E2E/End-to-end harnesses: analyzer coverage, notify-channel coverage, synthetic repos. Driven by devops/compose/docker-compose.e2e-*.yml. Test tooling, not a shipped service. No dossier.

Cross-Cutting Concepts

These concepts span multiple modules rather than owning a standalone service. Most are documented inside their owning module; the dedicated Reachability concept doc is the exception.

ConceptWhere it lives
AnalyticsEmbedded in Platform
AuditUnified audit emission — shared library src/__Libraries/StellaOps.Audit.Emission/, adopted by essentially every WebService. Dossier: audit/architecture.md(contract, trust boundary, guarantees); how-to: audit/AUDIT_EMISSION_GUIDE.md. Flow: service endpoint → AuditActionFilter → HttpAuditEventEmitter → Timeline POST /api/v1/audit/ingest → hash-chained timeline.unified_audit_events (the system of record — not EvidenceLocker). A separate concern from Eventing (below): audit is a durable HTTP-ingested record, not a stream envelope.
EvidenceUnified evidence model, surfaced via EvidenceLocker and Attestor
EventingEvent envelope schemas (StellaOps.Eventing), consumed by Timeline and Notify
SnapshotKnowledge snapshot and replay concepts; see Replay and AirGap
TriageVulnerability triage workflows in Findings and Scanner
DevOps / CIPipeline and CI/CD infrastructure under devops/ and .gitea/ at the repo root
ReachabilityReachability concept doc; split between ReachGraph and Scanner
SARIF ExportSARIF export format, a capability within ExportCenter

Module Catalog

AdvisoryAI

AI-powered advisory summarization and knowledge search service using LLM inference to explain vulnerability advisories, VEX evidence, and remediation guidance. Uses retrieval-augmented generation (RAG) over advisories, VEX, and platform documentation with configurable LLM backends (Claude, OpenAI, Ollama, Gemini). Includes chat audit logging, doctor-search controls, and guardrails for determinism and offline operation.

Dependencies: Concelier, VEX Lens / Excititor, Policy Engine, SBOM Service, LLM providers.


AirGap

Air-gapped deployment controller, importer, and cryptographic time anchor enabling StellaOps operation in fully disconnected environments. Handles bundle import/export, trust verification, and sealed-mode enforcement. Time service provides cryptographic time anchors using Roughtime or RFC3161.

Dependencies: Authority, Concelier / Excititor, Signer / Attestor.


Aoc

CLI tool and Roslyn analyzers enforcing the Aggregation-Only Contract (AOC) across the platform. Validates that ingestion services preserve raw upstream data without modification, maintain full provenance chains, and never merge conflicting observations.

Dependencies: None (standalone validation tool).


Api

Shared API contracts, governance rules, and OpenAPI generation libraries used across all StellaOps services. Includes StellaOps.Api (core contracts), StellaOps.Api.Governance (validators), and StellaOps.Api.OpenApi (specification generation).

Dependencies: None (consumed as a library).


Attestor

Transparency-logged attestation service that submits DSSE envelopes to Rekor v2, retrieves inclusion proofs, and exposes verification APIs. Accepts DSSE only from the Signer over mTLS and enforces chain-of-trust to Stella Ops roots. Includes predicate type registry, identity watchlist, and trust verdict storage.

Two supporting containers are infrastructure, not src/ modules. stellaops-tsa is the local RFC 3161 Timestamp Authority built in-repo from an OpenSSL base (devops/docker/tsa/, ADR-036) — it answers timestamp queries for EvidenceLocker/Attestor sealing; stellaops-rekor is the Rekor v2 transparency log. The .NET timestamping clients live in src/Attestor/__Libraries/StellaOps.Attestor.Timestamping and src/EvidenceLocker/__Libraries/StellaOps.EvidenceLocker.Timestamping.

Dependencies: Signer, Rekor v2, TSA (RFC 3161), Authority.


Authority

On-premises OIDC/OAuth2 identity service issuing short-lived, sender-constrained operational tokens (OpToks) with DPoP and mTLS binding. Supports RBAC scopes, multi-tenant claims with header-based tenant selection, deterministic validation, console admin endpoints, and LDAP/Standard client provisioning plugins.

Dependencies: Valkey (DPoP nonce store, token caching).


Bench (archived – absorbed into Tools)

Performance benchmark harnesses for critical platform subsystems including Link-Not-Merge, VEX, Notify, Policy Engine, and Scanner analyzers. Absorbed into src/Tools/.

Dependencies: None (standalone benchmarks).


Binary analysis

Shared analysis foundations remain under src/BinaryIndex/; binary and symbol workflow, metadata and persistence belong to Vulnerabilities. See the current architecture. The predecessor hosts are frozen by BIN-10. Standing-estate retirement and schema-drop authorization remain distinct from source readiness.

Cartographer (absorbed into Scanner)

Infrastructure topology discovery and service mapping for container environments. Produces SBOM snapshots and topology graphs consumed by the Graph Indexer. Environment topology and promotion lanes are now owned by the Release Orchestrator. Consolidated into Scanner.

Dependencies: Graph, Scanner.


CLI

Command-line interface for driving StellaOps workflows including scanning, policy operations, VEX/vulnerability data pulls, verification, offline kit administration, knowledge search, and migration management. Supports build-time SBOM generation via Buildx orchestration and authenticates via Authority DPoP tokens.

Dependencies: Scanner.WebService, Authority, AdvisoryAI, Policy Engine, Concelier / Excititor, Signer / Attestor, Platform.


Concelier

Advisory ingestion and Link-Not-Merge (LNM) observation pipeline producing deterministic raw observations, correlation linksets, and evidence events. Acquires authoritative vulnerability advisories from vendor PSIRTs, distros, OSS ecosystems, and CERTs, persisting them as immutable observations under AOC.

Dependencies: Policy Engine, Excititor, Graph, AirGap, Feedser.


Cryptography

Pluggable cryptographic primitives supporting regional standards (eIDAS, FIPS, GOST, SM) with algorithm-agile signing operations. Plugins include HSM integration, ECDSA, and EdDSA signing profiles. All operations are deterministic and support offline operation.

Dependencies: None (consumed as a library by Signer, Attestor, and other services).


DevPortal (archived – absorbed into Tools)

Developer portal static site providing API documentation, integration guides, SDK references, and getting-started tutorials. Absorbed into src/Tools/.

Dependencies: None (static site).


Doctor

Diagnostic framework for validating system health, configuration, integration connectivity, and OCI registry compatibility. Plugin-based architecture with binary analysis, notification validation, and observability probing. Integrates with AdvisoryAI knowledge search for diagnostic assistance.

Dependencies: All platform services (health check targets), external registries, AdvisoryAI.


E2E (test harness – no dossier)

End-to-end coverage harnesses: StellaOps.E2E.AnalyzerCoverage, StellaOps.E2E.NotifyChannelCoverage, StellaOps.E2E.SyntheticRepos, plus __Tests. Driven by dedicated compose files (docker-compose.e2e-analyzer-coverage.yml, docker-compose.e2e-notify-coverage.yml). Test tooling, not a shipped service; it has no container in the default stack.

Dependencies: the services under test (Scanner analyzers, Notify channels).


EvidenceLocker

Tamper-proof, immutable evidence storage for vulnerability scan evidence, audit logs, and compliance artifacts with cryptographic sealing. Evidence is content-addressable. Once sealed, evidence cannot be modified. Supports threads, verdicts, bundle packaging, and portable bundles for offline compliance audits.

Dependencies: Attestor, Authority, object storage.


Excititor (absorbed into Concelier)

VEX ingestion and consensus pipeline converting heterogeneous VEX statements (OpenVEX, CSAF VEX, CycloneDX VEX) into immutable observations with provenance-preserving linksets. Does not decide PASS/FAIL; supplies evidence with statuses, justifications, and provenance weights. Conflicting observations are preserved unchanged. Consolidated into Concelier; DbContext remains separate.

Dependencies: Policy Engine, Concelier, Attestor, Graph.


ExportCenter — RETIRED

Nothing was withdrawn. The application layer is src/OfflineKit/__Libraries/StellaOps.ExportCenter.Application and the worker runtime is …/StellaOps.ExportCenter.WorkerRuntime; both still declare StellaOps.ExportCenter.* namespaces on purpose, because the lift was byte-identical so that no consumer using had to change.

Dependencies: unchanged — Findings, Policy Engine, JobEngine, Authority, Evidence, object storage.


Extensions (absorbed into Integrations)

IDE extensions for JetBrains IDEs and Visual Studio Code providing inline vulnerability information, policy status, and StellaOps workflow integration directly within the developer’s editor environment. Now lives under the Integrations module.

Dependencies: Platform API, JobEngine API, Authority.


Feedser (absorbed into Concelier)

Evidence collection library for backport detection and binary fingerprinting supporting the four-tier backport proof system. Extracts patch signatures from unified diffs and binary fingerprints from compiled code. Consumed primarily by Concelier’s ProofService layer. All outputs are deterministic with canonical JSON serialization. Consolidated into Concelier.

Dependencies: None (consumed as a library by Concelier).


Findings

Centralized findings aggregation service providing backport tracking, evidence graphs, finding summaries, reachability maps, runtime timelines, scoring, and webhook notifications. Aggregates vulnerability findings from Scanner, Policy, Concelier, and Excititor into a unified query surface. Includes a LedgerReplayHarness tool for deterministic replay testing.

The analytics.* schema is derived from the Scanner (SBOM), Attestor, and Concelier advisory streams; Platform keeps the /api/analytics/* read surface plus the rollup/materialized-view maintenance lane. Its former host findings-vulncorrelation was deleted at FND-10 (2026-08-27) along with its compose overlay — it carried no API surface and all three of its background services logged disabled at startup. The StellaOps.Findings.VulnCorrelation.Application/.Persistence libraries are kept; the ingestion work folds into findings-worker and stays unwired until the X18 re-home, because its correlation SQL still targets the dropped vuln.* schema.

Dependencies: Scanner, Policy Engine, Concelier / Excititor, Attestor.


Gateway (deleted)

The standalone src/Gateway/ module was deleted. The canonical Gateway WebService (StellaOps.Gateway.WebService) now lives under src/Router/. The Router module owns HTTP ingress, binary protocol bridging, routing, and transport abstraction.

Dependencies: See Router.


Graph

SBOM dependency graph store with a rich node/edge model covering artifacts, SBOMs, components, advisories, VEX statements, and policy versions with reachability overlays. The Graph Indexer processes events from Cartographer/SBOM Service, Concelier/Excititor, and policy runs to maintain the graph.

Dependencies: Cartographer / SBOM Service, Concelier / Excititor, Policy Engine, Scanner.


Integrations

Integration hub managing connections to external systems (SCM, CI, registries, secrets vaults) with health monitoring. Stores connection profiles, manages credential references, and monitors integration health. Plugins under __Plugins provide specific connector implementations.

Dependencies: Authority, external SCM/CI/Registry/Vault systems.


IssuerDirectory (absorbed into Authority)

Centralized trusted VEX/CSAF publisher metadata registry enabling issuer identity resolution, key management, and trust weight assignment. Key lifecycle management validates Ed25519, X.509, and DSSE public keys with fingerprint deduplication. On startup, imports default CSAF publishers into the global tenant. Consolidated into Authority; DbContext remains separate for security isolation.

Dependencies: Authority.


Mirror — RETIRED

StellaOps.Mirror.Creator still assembles mirror bundles; it is composed by the OfflineKit family rather than standing alone. The mirror-profile planner that turns a kind = 5 export profile into a bundle plan is MirrorProfilePlanner, and the executor that would call it is OK-12 — so a mirror bundle is not yet producible end-to-end through the profile API.

Dependencies: Upstream vulnerability feeds (NVD, OSV, GHSA), Concelier.


Notifier (retired)

Merged into Notify. notifier-web merged into notify-web at NTF-5 and the notifier-worker deployable retired on 2026-09-04; the sources were frozen at src/__Obsoleted/Notifier/ on 2026-09-08 (SPRINT_20260722_015 NTF-10). Its documentation is now a pointer: docs/modules/notifier/. Read the Notify entry below.


Notify

Rules-driven, tenant-aware notification engine providing event consumption, operator-defined routing, channel-specific rendering, and reliable delivery with idempotency, throttling, and digests. The notify-web host serves the API and notify-worker runs delivery, both over the shared StellaOps.Notify.Delivery library. Secrets for channels are referenced, not stored raw.

Dependencies: Scanner / Scheduler / Excititor / Concelier / Attestor / Zastava (event sources), Slack/Teams/Email/Webhook, Authority.


OpsMemory (consolidated into AdvisoryAI)

Decision ledger capturing the lifecycle of security decisions with similarity-based suggestion retrieval for organizational learning. Uses similarity vectors to suggest relevant precedents for new situations. Deterministic with fixed similarity formulas, no randomness in ranking, and multi-tenant isolation. Consolidated from standalone src/OpsMemory/ module into src/AdvisoryAI/.

Dependencies: AdvisoryAI, Authority, Findings Ledger.


JobEngine (formerly Orchestrator)

Source and job orchestration service managing job lifecycle, rate-limit governance, DAG execution, circuit breakers, and worker coordination. Applies quotas and rate limits per tenant/jobType, manages leasing to workers, handles completion tracking with retry policies, and supports replay. SDK bridges exist for Go and Python workers. Renamed from Orchestrator. Now includes Scheduler, TaskRunner, and PacksRegistry.

Dependencies: Concelier / Excititor / ExportCenter / Policy (job producers), Valkey or NATS, Authority.


PacksRegistry (absorbed into JobEngine)

Centralized registry for distributable task packs, policy packs, and analyzer bundles with versioned management and integrity verification. All packs are content-addressed. Consolidated into JobEngine.

Dependencies: JobEngine, object storage, Authority.


Platform

Central platform service providing analytics, context management, environment settings, evidence threading, federation telemetry, integration health, release control, and topology read models. Migrates only its own database (PlatformMigrationModule, Startup band); the former central migration framework (MigrationModuleRegistry, MigrationModulePluginDiscovery, IMigrationModulePlugin) was deleted 2026-09-14 (SPRINT_20260722_021 PLT-4, DC-26) — MigrationModuleConsolidation survives only for the guided-setup wizard.

Dependencies: Authority, PostgreSQL (own database).


Plugin

Plugin SDK, registry, sandbox, and host framework enabling extensibility across the platform. Includes Abstractions (contracts), Sdk (development SDK), Host (lifecycle management), Registry (PostgreSQL persistence), Sandbox (isolated execution), Cli (management tool), Testing (test harness), and Samples.

Dependencies: None (framework consumed by other modules).


Policy

Deterministic policy evaluation engine and gateway service compiling stella-dsl policy packs into verdicts by joining SBOM inventory, advisories, and VEX evidence. The Engine provides extensive coverage across advisory AI knobs, attestation reports, batch evaluation, budgets, conflicts, CVSS receipts, determinization, effective policy, merge previews, risk profiles/simulations, sealed mode, verification policy, and violation tracking. The Gateway handles admission decisions, deltas, exception approvals, gates, governance, and registry webhooks.

Dependencies: Concelier, Excititor, SBOM Service, Scanner, Authority, Scheduler.


Provenance (absorbed into Attestor)

Provenance attestation library and CLI tool for generating and verifying supply-chain provenance records. Creates in-toto attestation statements linking build artifacts to source materials, build systems, and parameters. A separate provenance cache library exists at src/__Libraries/StellaOps.Provcache.Postgres/. Consolidated into Attestor.

Dependencies: Attestor.


ReachGraph

Unified reachability subgraph store providing fast, deterministic, audit-ready answers about why a dependency is reachable. Consolidates reachability data from Scanner (call graphs), Signals (runtime observations), and Attestor (PoE JSON) into content-addressed artifacts with edge-level explainability.

Dependencies: Scanner, Signals, Attestor.


Registry (Registry Token Service)

Docker registry bearer token service issuing short-lived tokens for private or mirrored registries with license/plan enforcement. Validates caller identity using Authority-issued tokens, authorizes requested registry scopes against a plan catalogue, and mints Docker-registry-compatible JWTs.

The registry itself is not Stella Ops source. The stellaops-registry container is the third-party zot OCI registry (ghcr.io/project-zot/zot-linux-amd64:v2.1.3, devops/compose/docker-compose.stella-infra.yml:126-128). This module (stellaops-registry-token) only mints the bearer tokens that registry accepts.

Dependencies: Authority.


ReleaseOrchestrator

Central release control plane for non-Kubernetes container estates governing promotion across environments (Dev, Stage, Prod), enforcing security and policy gates, and producing verifiable evidence. Contains API, agents, apps, and libraries sub-directories with 140K+ lines of production code. Owns environment topology and promotion lanes.

Dependencies: Platform, Policy Engine, Scanner, Authority.


Remediation

Developer-facing signed-PR remediation marketplace enabling discovery, application, and verification of community-contributed fix templates for known CVEs. Templates include unified diff content, version range applicability, and trust scores. Tracks PR submission lifecycle with attestation evidence.

Dependencies: Scanner, Signer / Attestor, Authority.


Replay

Deterministic replay engine ensuring vulnerability assessments can be reproduced byte-for-byte given the same inputs. Manages replay tokens (cryptographically bound to input digests), manifests, feed snapshots, and verification workflows. Stores content-addressed references, not actual data.

Dependencies: Policy Engine, Scanner, Concelier / Excititor.


RiskEngine — deployables retired, capability kept

Deterministic, explainable risk scoring by aggregating signals from EPSS, CVSS, KEV, VEX, and fix-exposure data, with audit trails and explainability payloads. It does not make PASS/FAIL decisions; it provides scores to the Policy Engine. The scoring providers and the exploit-maturity taxonomy live in StellaOps.RiskEngine.Core and are still compiled: src/Policy/__Libraries/StellaOps.Policy.Predicates references Core directly. A read API for scores will be designed on /api/findings/v1/* when a real consumer exists.

Dependencies: Concelier, Excititor, Signals, Policy Engine.


Router

Internal service transport using binary protocol (TCP/TLS/UDP) for microservice-to-gateway communication with pluggable transports. Includes a unified plugin, shared libraries, and example microservices. The StellaOps.Gateway.WebService under Router serves as both the HTTP ingress gateway and binary protocol bridge (the standalone src/Gateway/ was deleted).

Dependencies: Authority, all microservices, Valkey.


RuntimeInstrumentation

Tetragon-based runtime instrumentation library for eBPF-based process and syscall monitoring. Provides integration with Cilium Tetragon enabling observation of actual process execution, file access, and network activity at the kernel level for runtime evidence collection.

Dependencies: Tetragon (eBPF runtime), Zastava / Signals (evidence consumers).


SbomService

Canonical SBOM projection, lookup, and timeline API serving deterministic, tenant-scoped SBOM data. Does not perform scanning; consumes Scanner outputs or supplied SPDX/CycloneDX blobs. SBOMs are append-only with mutations via new versions only. Owns the SBOM lineage ledger for versioned uploads, diffs, and retention pruning.

Dependencies: Scanner, Graph, AdvisoryAI, Policy Engine.


Scanner

Deterministic SBOM generation and vulnerability scanning engine for container images and filesystems with three-way diffs, per-layer caching, and attestation hand-off. Emits Inventory and Usage views. Does not produce PASS/FAIL verdicts. Second-highest migration count covering scans, findings, call graphs, EPSS, smart diffs, unknowns, reachability, binary evidence, secret detection, runtime observations, and score history.

Dependencies: Signer, Attestor, Authority, object storage / RustFS, SBOM Service, Concelier / Excititor.


Scheduler (absorbed into JobEngine)

Re-evaluation scheduler keeping scan results current by pinpointing affected images when new advisories or VEX claims arrive. Default mode is analysis-only (no image pull). Includes event webhooks, failure signature tracking, graph jobs, policy runs/simulations, and vulnerability resolver jobs. Consolidated into JobEngine; DbContext remains separate.

Dependencies: Scanner.WebService, Policy Engine, Concelier / Excititor, Notify, JobEngine.


Sdk (archived – absorbed into Tools)

Client SDK generator and release SDK for producing typed API clients across multiple languages from OpenAPI specifications. Absorbed into src/Tools/.

Dependencies: Gateway / OpenAPI specs.


Signals

Unified evidence-weighted scoring system aggregating reachability, runtime observations, backport detection, exploit intelligence, source trust, and mitigations into a single 0-100 score. Maintains determinism, provides score decomposition with explanations, and supports SCM webhook integration for change-triggered re-scoring.

Dependencies: Scanner, Concelier / Excititor, RuntimeInstrumentation, Policy Engine.


Signer (absorbed into Attestor)

The only service permitted to produce Stella Ops-verified DSSE signatures over SBOMs and reports, enforcing entitlement (PoE), sender-constrained auth, and supply-chain integrity. Does not push to Rekor (Attestor does). Stateless for the hot path with keys in KMS/HSM or ephemeral (keyless mode). Supports multi-algorithm signing (ECDSA, EdDSA, eIDAS, FIPS, GOST, SM). Consolidated into Attestor; DbContext remains separate for security isolation.

Dependencies: Authority, Cryptography library, KMS/HSM.


SmRemote

Remote service for Chinese SM2/SM3/SM4 cryptographic operations enabling sovereign crypto compliance. Allows deployments requiring SM compliance to offload operations to a dedicated service rather than requiring SM crypto libraries on every host.

Dependencies: Cryptography Plugin.Sm.


Symbols

The hub owns global symbol source/catalog management, admitted manifests, CAS metadata and resolution. See binary analysis and symbol ownership and the Vulnerabilities API. The old Symbols.Server source and its wire documentation are frozen.

TaskRunner (absorbed into JobEngine)

Deterministic task pack execution engine with approvals, sealed-mode enforcement, evidence capture, and DSSE attestation for every completed run. Three-phase execution: Plan (build execution graph), optional Simulation (dry-run with gates), and Execution (verify plan hash, execute steps, stream logs). Operates offline/air-gapped. Consolidated into JobEngine.

Dependencies: JobEngine, Authority, Attestor, object storage.


Telemetry

Observability library providing OpenTelemetry-based metrics, traces, and logs with Roslyn analyzers ensuring telemetry best practices. Supports multiple pipeline profiles (default, forensic, airgap) with allow-listed exporters for sovereign readiness. Forensic archives produce signed bundles of raw OTLP records.

Dependencies: Prometheus, Tempo/Jaeger, Loki.


Tester (QA-only service – opt-in overlay)

Dedicated QA harness service owning the fixture-injection endpoints that would otherwise leak into production modules. It must never reach a production stack: it lives in a standalone overlay (devops/compose/docker-compose.tester.yml, labelled com.stellaops.production-safe: "false") that is deliberately excluded from docker-compose.stella-ops.yml and every include: list; it only starts when an operator explicitly passes the overlay. Networks are declared external, so it refuses to come up without the base stack. It also authenticates nobody — every route is AllowAnonymous, bearer tokens are relayed unvalidated to the downstream service, tenant comes from a caller-supplied header, and proxy-login is an unauthenticated credential relay with source-IP injection. That is the harness contract, and it is why exposure is disqualifying.

Two caveats the dossier records and does not fix: only the findings scope of replay-and-compare is backed by a run-scoped upstream read (evidence-packs returns a false identical); and the isolation goal is not yet complete — Platform/Notify/Scanner still ship their embedded fixture endpoints, with Platform’s flag default-ON in the main compose.

Dependencies: Platform, Notify, Scanner, Findings, EvidenceLocker, Concelier, ReleaseOrchestrator, Timeline, Authority (the modules it drives over public REST).


Timeline

Timeline query service providing export, replay, and timeline browsing endpoints for vulnerability history and event streams. Uses shared libraries from StellaOps.Eventing for event envelope schemas and StellaOps.Timeline.Core for core logic including critical path view.

Dependencies: All services (event sources). TimelineIndexer is now consolidated into the Timeline module (src/Timeline/).


Tools

Developer utility tools including FixtureUpdater, GoldenPairs generator, LanguageAnalyzerSmoke, NotifySmokeCheck, PolicyDslValidator, PolicySchemaExporter, PolicySimulationSmoke, RustFsMigrator, WorkflowGenerator, and a Python CERT-Bund offline snapshot tool.

Dependencies: Various (tool-specific).


Unknowns

Structured registry for tracking unresolved components, symbols, and incomplete mappings that Scanner and other analyzers cannot definitively identify. Includes a Grey Queue for lifecycle management (queueing, triage, resolution). Does not guess identities; records what cannot be determined.

Dependencies: Scanner, Signals.


Verifier (archived – absorbed into Tools)

Standalone CLI tool for verifying the integrity and authenticity of signed evidence bundles produced by the platform. Absorbed into src/Tools/.

Dependencies: None (standalone verification).


VexHub — RETIRED

Superseded by the vulnerability hub, which models VEX as facts rather than statements/ observations and serves GET /api/vulnerabilities/v1/vex/{vulnerabilityId}/{productKey}. This is a narrower successor: no observation model, no per-statement signature records, no Rekor linkage.


VexLens — RETIRED

SPRINT_20260722_022 EVL-1 decided a fold, and only half of it happened: consensus is covered by the hub’s consensus schema, but noise gating has no successor anywhere in the estate — G1 retired the surface instead of migrating it. The source is recoverable from git history.


Vulnerabilities (the live vulnerability plane)

The consolidation of Concelier (incl. Feedser + Excititor) + VexHub into one tenant-free vulnerability knowledge hub. Tenant-scoped decisions do NOT live here — they live in the control plane (policy.vuln_gate_current, Findings ledger).

Currency: LIVE since the SPRINT_20260722_008 G1 cutover (2026-08-04). The old plane’s services are stopped, its vuln/vex/vexhub/concelier schemas are dropped, and its 70 gateway routes are gone. The VexHub and VexLens entries below are retirement stubs; the Concelier and Excititor entries describe a retired service whose source tree survives only because production projects still compile against parts of it.

Dependencies: Authority (auth + issuer directory), Router/Gateway. Consumers reach it via the API, events, or the corpus artifact — the only source-referenceable projects are the closed Contracts and Consensus SDKs.


VulnExplorer

Vulnerability exploration API providing rich querying, filtering, and analysis of vulnerability findings across the platform. Aggregates data from Scanner, Concelier, Excititor, Policy, and Signals to present a unified vulnerability view with concept-based navigation and evidence links.

Dependencies: Scanner, Concelier, Excititor, Policy Engine, Signals, Findings Ledger.


Web

Angular single-page application providing the operator console with vulnerability dashboard, release management, policy studio, evidence browser, SBOM exploration, notification management, and administrative controls. Includes search client APIs for knowledge search integration, smart diff visualization, AI UX patterns, and competitive triage workflows.

Dependencies: Gateway (API proxy), all backend APIs.


Workflow (source retained – service dormant)

General-purpose workflow engine: definition deployment, instance lifecycle, signal-driven task transitions, dead-letter handling, and authorization-gated task progression. The source is retained but the service is dormant — the Workflow WebService slot was removed from the compose stack on 2026-07-06 as an unreachable dead footprint (0 instances ever ran; docker-compose.stella-services.yml:2211-2212), Router exposes no /api/workflow route, and ReleaseOrchestrator/Scheduler callers were removed. The live /api/v1/workflows route belongs to ReleaseOrchestrator, not this engine. Its workflow:view / workflow:operate / workflow:admin policies are local strings, not canonical Authority scopes; reactivation needs an explicit product decision (scopes, grants, callers, compose wiring, gateway route).

Dependencies: none live today. StellaOps.Workflow libraries were referenced by StellaOps.Platform.Database (renamed StellaOps.Platform.Persistence 2026-08-18, which no longer references them as of 2026-09-14) and the OpenAPI conformance tests; re-verify with rg -n "StellaOps.Workflow" src --glob '*.csproj'.


Zastava

Runtime posture concepts are being re-scoped into RuntimeInstrumentation host agents for non-Kubernetes container estates. The former Zastava Kubernetes admission-webhook direction is retired and must not be used for new Stella Ops deployment work.

Dependencies: Scanner.WebService, Policy Engine, Signals, Attestor, Authority.


Documentation Standards

Each module folder should contain:

FilePurpose
README.mdQuick overview, purpose, components
architecture.mdDetailed architecture specification
AGENTS.md(Optional) Claude Code agent guidance
operations/(Optional) Operational runbooks

Use the _template/ scaffold (README.md, architecture.md, AGENTS.md) as the starting point for new module docs.