Architecture Overview (High-Level)

This document is the 10-minute tour of Stella Ops Suite: what the components are, how they fit together, and what “release control plane + security gates + evidence-linked decisions” means in practice.

Audience: anyone forming a first mental model of the platform — operators, integrators, and engineers. For the full reference map (services, boundaries, detailed flows), see ARCHITECTURE_REFERENCE.md.

What Stella Ops Suite Is

Stella Ops Suite is a centralized, auditable release control plane for non-Kubernetes container estates.

It sits between your CI and your runtime targets, governs promotion across environments, enforces security and policy gates, and produces verifiable evidence for every release decision.

CI Build → Registry → Stella (Scan + Release + Promote + Gate + Deploy) → Targets → Evidence

Guiding Principles

Tenancy Model

Stella Ops supports multiple logical tenants inside one operator’s trust boundary. Tenants are environments, business units, or logical scopes that share the same operator, security team, and incident-response authority. The current architecture does not support unrelated, mutually adversarial tenants on one shared SaaS deployment. See ADR-005; token-selection mechanics inside this posture are covered by ADR-002.

System Map

Release-Centric Flow

Build → Scan → Create Release → Request Promotion → Gate Evaluation → Deploy → Evidence
        ↑                              ↓
        └── Re-evaluate on CVE Updates ┘

Platform Themes

Stella Ops Suite organizes capabilities into themes (functional areas):

Analysis & Evidence Themes (Operational)

ThemePurposeKey Modules
INGESTAdvisory ingestion and unified search retrievalConcelier, Advisory-AI, Unified Search
VEXOPSVEX document handlingExcititor, VEX Lens, VEX Hub
REASONPolicy and decisioningPolicy Engine, OPA Runtime
SCANENGScanning and SBOMScanner, SBOM Service, Reachability
EVIDENCEEvidence and attestationEvidence Locker, Attestor, Export Center
RUNTIMERuntime signalsSignals, Graph, Zastava
JOBCTRLJob orchestrationJobEngine (includes Scheduler, TaskRunner, PacksRegistry)
OBSERVEObservabilityNotifier, Telemetry
REPLAYDeterministic replayReplay Engine
DEVEXPDeveloper experienceCLI, Web UI, Tools (includes SDK)

Release Orchestration Themes (Operational — residual gaps noted per theme)

Theme names and “Key Modules” are capability labels, not src/ project names (verified against src/ 2026-07-28). The release-control capability shipped in src/ReleaseOrchestrator/— the release-orchestrator and agent-core services in the default compose stack (devops/compose/docker-compose.stella-services.yml) — with the connector hub in src/Integrations/(integrations-web service) and plugin infrastructure in src/Plugin/. The code lives in StellaOps.ReleaseOrchestrator.* libraries and StellaOps.Agent.* agent projects, not under the label names below. docs/modules/README.md is the authoritative module inventory; residual runtime gaps are tracked in docs/modules/release-orchestrator/promotion-runtime-gap-closure-plan.md.

ThemePurposeStatus (verified against src/, 2026-07-28)
INTHUBIntegration hubShipped — StellaOps.Integrations.WebService plus signed connector plugins (Gitea, GitHub App, GitLab, Jenkins, Harbor, Nexus, Docker Registry, Vault, Consul) loaded by the default stack
ENVMGREnvironment managementShipped — persisted environment/target CRUD, health, freeze windows, and agent assignment (StellaOps.ReleaseOrchestrator.Environment)
RELMANRelease managementShipped — release truth create/ready/update, component version registry and registry-driven version sync (StellaOps.ReleaseOrchestrator.Release)
WORKFLWorkflow enginePartial — workflow surfaces are live under ReleaseOrchestrator (/api/v1/workflows); the general-purpose standalone engine (src/Workflow/) is dormant and not deployed
PROMOTPromotion and approvalShipped — promote/deploy fail closed on release truth, approval quorum, and persisted gate results; DB-backed approval policies with UI editor. A dedicated /api/v1/promotions controller is still planned; promotion runs via /api/v1/release-orchestrator/releases/{id}/promote
DEPLOYDeployment executionShipped — target executor, generated artifacts, and rollback (StellaOps.ReleaseOrchestrator.Deployment); Docker/Compose/SSH/WinRM targets live-verified (VM deployment gate 20/20, 2026-05-09)
AGENTSDeployment agentsShipped — StellaOps.Agent.* with built-in docker, compose, ssh, winrm, ecs, and nomad capabilities in ExecutionPluginCatalog, plus Ansible playbook execution (StellaOps.Agent.Ansible)
PROGDLProgressive deliveryPartial — all-at-once, rolling, canary, and A/B strategies are test- and live-VM-proven; real router/load-balancer traffic data-plane integration is not claimed
RELEVIRelease evidenceShipped — signed deployment decision records (StellaOps.ReleaseOrchestrator.DecisionArtifact), evidence threads, version stickers for drift detection
PLUGINPlugin infrastructureShipped — src/Plugin/: registry, host/loader, sandbox (including gRPC plugin bridge), SDK, and manifest + signature verification

Service Tiers

TierServicesKey Responsibilities
Edge / IdentityStellaOps.AuthorityIssues short-lived tokens (DPoP + mTLS), exposes OIDC flows, rotates JWKS
Release ControlStellaOps.ReleaseOrchestrator.* (live as the release-orchestrator service; the historical ReleaseManager/PromotionManager/WorkflowEngine names never shipped as projects), StellaOps.Workflow.WebService (dormant)Release bundles, promotion workflows, gate evaluation
Integration HubStellaOps.Integrations.WebService + StellaOps.Integrations.Plugin.* (live as the integrations-web service)SCM/CI/Registry/Vault/Consul connectors as signed plugins, loaded by the default stack
Scan & AttestStellaOps.Scanner, StellaOps.Attestor (includes Signer)Accept SBOMs/images, produce DSSE bundles, transparency logging
Evidence GraphStellaOps.Concelier, StellaOps.Excititor, StellaOps.Policy.EngineAdvisories/VEX, linksets, lattice policy
DeploymentStellaOps.ReleaseOrchestrator.Deployment + StellaOps.Agent.* (live as the agent-core service; there is no StellaOps.DeployOrchestrator project)Deployment execution — Docker/Compose/SSH/WinRM live-verified; ECS and Nomad ship as built-in agent capabilities
ExperienceStellaOps.Web, StellaOps.Cli, StellaOps.Notify, StellaOps.ExportCenterOperator UX, automation, notifications
Data PlanePostgreSQL, Valkey, RustFS/object storageCanonical store, queues, artifact storage

Ownership Clarifications

See:

Infrastructure (What Is Required)

Required

Optional (deployment-dependent)

End-to-End Flows

Current: Vulnerability Scanning Flow

  1. Evidence enters via Concelier and Excititor connectors (Aggregation-Only Contract).
  2. SBOM arrives from CLI/CI; Scanner deduplicates layers and enqueues work.
  3. Analyzer bundle runs inside the Worker and stores evidence in content-addressed caches.
  4. Policy Engine merges advisories, VEX, and inventory/usage facts; emits explain traces and stable dispositions.
  5. Signer + Attestor wrap outputs into DSSE bundles and (optionally) anchor them in a Rekor mirror.
  6. Console/CLI/Export surface findings and package verifiable evidence; Notify emits digests/incidents.

Current: Release Orchestration Flow

  1. CI pushes image to registry by digest; triggers webhook to Stella.
  2. Stella scans the new digest and stores the verdict.
  3. Release created bundling component digests with semantic version.
  4. Promotion requested to move release from Dev → Stage → Prod; the promote and deploy paths fail closed when release truth, approvals, or gate results are missing.
  5. Gate evaluation checks: security verdict, approval count, freeze windows, custom policies.
  6. Decision record produced with evidence refs and signed.
  7. Deployment executed via agent to target (Docker, Compose, SSH/WinRM; ECS and Nomad as built-in agent capabilities).
  8. Version sticker written to target for drift detection.
  9. Evidence packet sealed and stored.

Extension Points

Current Extension Points

Three-Surface Plugin Model (Shipped)

Plugins contribute through three surfaces (all implemented in src/Plugin/ and consumed by the modules above):

  1. Manifest (static declaration): what the plugin provides (integrations, steps, agents, gates), signed and signature-verified before load (StellaOps.Plugin.Abstractions)
  2. Sandboxed runtime (dynamic execution): plugins run in a process sandbox with a gRPC plugin bridge (StellaOps.Plugin.Sandbox)
  3. Execution plugin (execution contract): IExecutionPlugin capabilities registered through the agent’s ExecutionPluginCatalog for workflow/deployment steps

Plugin types:

Offline & Sovereign Notes

Key Architectural Decisions

DecisionRationale
Digest-first release identityTags are mutable; digests provide immutable release identity for audit
3-surface plugin modelEnables extensibility without core code changes
Compiled C# scripts + sandboxed bashC# for complex orchestration; bash for simple hooks
Agent + agentless executionAgent-based preferred for reliability; agentless for adoption
Evidence packets for every decisionEnables deterministic replay and audit-grade compliance

References