# 23 · FAQ Matrix — Stella Ops

# FAQ & Support Matrix

A living list of the questions we get every day, plus a compact matrix of what is Supported Now, In Preview, and On the Roadmap (TODO).


## 0 Quick Legend

Mark Meaning
Fully supported in the current release
🅿️ Preview / opt‑in behind a feature flag
🛠 Planned in the ≤ 6 month roadmap (Feature Matrix “TODO”)
🚧 Longer‑term; 9‑12 month horizon or beyond

## 1 General

# Question Short Answer Status
G‑1 Why launch another DevSecOps product? Existing scanners are either SaaS‑only, slow, or lack offline & Russian language feeds. Stella Ops focuses on speed (<5 s), modularity, air‑gap friendliness, and an AGPL code‑base that enterprises can extend in‑house.
G‑2 What tech stack? Backend .NET 9 + Redis; runners are OCI images (Trivy, Syft, Grype). UI Angular 17.
G‑3 License? AGPL v3 for all core repos; plugins inherit if linked.
G‑4 Where do I report bugs? Open an issue in git.stella-ops.ru/stella/core or ping #stella-ops on Matrix.

## 2 Installation & Upgrades

# Question Answer Status
I‑1 How do I pull agent images now? All official images are in the anonymous read‑only registry registry.git.stella-ops.ru. No auth token required for pull. (new)
I‑2 Can I still use GHCR? Images remain mirrored for convenience but are not signed; internal registry is the source of truth.
I‑3 How to upgrade from ≤ v0.8? Re‑generate docker‑compose.yml with the bootstrap script; volumes remain intact. Import legacy mute‑rules via /policy/import.
I‑4 Helm charts? K8s Helm chart is under deploy/helm; undefaulted (requires values.yaml). 🅿️

## 3 SBOM & Scanning

# Question Short Answer Status
--- ---------- ------------- --------
S‑1 Why exactly 333 scans? Covers p95 workload of SMBs (~290 builds/day) while keeping infra costs <$5/mo per user and nudging larger orgs toward Plus/Pro.
S‑2 How is the limit technically enforced? Each /scan request carries a Client‑JWT. The Quota plug‑in atomically increments quota:<token>:<date> in Redis. Soft (5 s) and hard (60 s) wait‑walls ensure fair use.
S‑3 What if my site is fully offline? Every OUK tarball contains a fresh Client‑JWT valid 30 days. Uploading the OUK refreshes the token automatically; no Internet required.
S‑4 Can I pool multiple tokens? Yes, but each token has its own 333/day budget. Use distinct tokens per CI line if you need more throughput.
S‑5 Does quota enforcement affect performance? No. Legitimate scans still complete in < 5 s; blocked scans incur only their specified wait‑wall.
S‑6 Which SBOM formats does Stella emit? Built‑in: trivy-json-v2, spdx-json, cyclonedx-json.
S‑7 What is Δ‑SBOM and how fast is it? Uploads only new layers; P95 ≤ 1 s on cached bases.
S‑8 Windows container scanning? Runner binaries compile on Windows, but layer‑unpack path is unoptimised; full support 🚧. 🚧

## 4 Policy‑as‑Code

# Question Answer Status
P‑1 How are mutes & blocks stored now? Default: YAML (scan-policy.yaml) in Mongo (versioned). Import / export via /policy/{import,export} or Settings → Policies.
P‑2 Why YAML over OPA? YAML lowers entry barrier; advanced users may embed Rego snippets. First‑class Rego evaluation is 🛠. 🛠
P‑3 CLI enforcement? Pass --policy-file path plus --enforce to fail builds on violations. Exit‑code reflects policy gate.
P‑4 Audit history? Every policy change writes an immutable record (audit_policies collection) and appears in UI History tab.

## 5 Registry & Offline Use

# Question Answer Status
R‑1 Is the internal registry mandatory? No, but recommended for sovereignty & signature verification (cosign verify).
R‑2 How to mirror for OUK? oras pull registry.git.stella-ops.ru/library/* --output ./ouk-bundle → import on the target via ctr images import.
R‑3 Does the backend fetch external feeds? Only when --feeds.auto=1; OUK installs run fully offline with NVD packed in the tarball.

## 6 Performance

# Scenario Target Achieved (July 2025)
Local SBOM scan (alpine) ≤ 5 s 4.2 s P95
Δ‑SBOM warm base ≤ 1 s 0.8 s P95
Image unpack (200 MB) ≤ 10 s 8.6 s P95

Numbers measured on 4 vCPU / 8 GB Ubuntu 22.04 runner.


## 7 Security & Compliance

# Question Answer Status
C‑1 How are images signed? Cosign signatures pushed alongside each tag (*.sig). Santech verifies on pull.
C‑2 Supply‑chain attestation (SLSA)? SLSA‑gen at build time and verification in runner is 🛠 (≤ 6 months). 🛠
C‑3 Rekor transparency log? Local Rekor mirror for offline installs is 🚧 (9‑12 months). 🚧
C‑4 TLS ciphers? Default OpenSSL suites; plug‑in allows GOST/SM (via ITlsProvider).

## 8 Road‑map / Future Features

Area Feature ETA Notes
UI Modular route plug‑ins Q1‑2026 Dynamic Angular module loader
SBOM Multi‑arch Δ‑SBOM Q1‑2026 Layer digest per arch
Policy Rego native engine Q1‑2026 opa eval in‑proc
Supply chain SLSA provenance Q1‑2026 Level 3 target
Integrity Rekor mirror Q2‑2026 Air‑gap friendly
Ecosystem Community plugin market Q2‑2026 Curated index in UI
Scale Redis Cluster auto‑shard Q3‑2026 Transparent fail‑over

## 9 Troubleshooting

Symptom Likely Cause Fix
ER_BAD_SV error on scan SBOM format flag mismatch Set correct --sbom-type or let auto‑detect.
Δ‑SBOM still uploads full SBOM Cache cold or digest mismatch Check docker history shows reused layers; bump builder version.
“Policy file invalid” YAML schema error Run /policy/validate endpoint; lint with VS Code schema.
Pull fails with 401 Corporate proxy intercepts registry Mirror to on‑premise Harbor; set --registry flag.

## 10 Licensing & Community

# Question Answer
L‑1 Can I build a commercial fork? AGPL allows commercial services but derivatives must remain AGPL if distributed.
L‑2 Commercial support? Community only today; paid support partners in discussion.
L‑3 How to contribute a plugin? Fork → implement DI contract (IScannerRunner, etc.) → PR + ADR.

## 11 Change Log

Date Highlights
2025‑07‑14 Added internal registry, multi‑format SBOM, Δ‑SBOM, Policy‑as‑Code, updated roadmap (SLSA/Rekor)
2025‑06‑30 Initial public FAQ matrix

(End of FAQ Matrix v2.0)