Modular • SDK‑Ready • Secure Load
Add scanners, enrich SBOMs or ship reports to any system without forking the core. Plug‑ins are discovered at start‑up—no hot‑load needed, no attack surface.
Why modularity matters
- Regulatory agility — ingest regional CVE feeds overnight.
- Faster innovation — prototype scoring heuristics out‑of‑tree.
- Vendor freedom — keep proprietary logic private while the core stays AGPL.
- Safe by design — no runtime DLL injection; plug‑ins load only on service restart.
Where you can plug in
Area | Interface | Language | Load mode |
---|---|---|---|
Scanner pipeline stage | IScanStage | .NET 10 LTS C# | Restart |
SBOM enricher | ISbomMutator | .NET 10 LTS C# | Restart |
Policy engine | OPA (Rego) | Rego | Restart |
Report exporter | IResultSink | .NET 10 LTS C# | Restart |
Five‑minute quick‑start (C#)
- Create a project:dotnet new classlib -n SlackNotifier cd SlackNotifier dotnet add package StellaOps.SDK
- Implement
IResultSink
to send findings to Slack. - Build & copy the DLLs into
/opt/stella/plugins/
. - Restart Stella Ops; the start‑up log shows “Plug‑in loaded”.
Full tutorial: §30 Plug‑in Guide.
Security boundaries
- Plug‑ins run under
stella‑plugin
UID with SELinux/AppArmor confinement. - CPU & RAM quotas enforced via cgroups.
- Each compiled module ships an SPDX fragment for supply‑chain audit.
Roadmap (high‑level)
- SDK α (v0.1 late 2025) – fixed interfaces, manual REST docs.
- SDK β (v0.2 Q1 2026) – NuGet helpers, typed API clients.
- Marketplace RC (v0.4 Q3 2026) – signed registry, Cosign checks.
- GA (v1.0 Q4 2026) – UI browser, search, trust policies.