Frequently Asked Questions
Common questions from teams evaluating Stella Ops for container security.
Getting Started
What is Stella Ops?
Stella Ops is a container vulnerability scanner that treats SBOMs as the source of truth. It seals every reachability graph with cryptographic signatures (in-toto + DSSE), replays scans bit-for-bit from frozen advisory feeds, and supports sovereign crypto profiles (FIPS, GOST, SM2, eIDAS) for regulated environments.
Unlike SaaS-only scanners, Stella Ops works fully offline and gives you complete control over vulnerability data sources, policy decisions, and cryptographic trust anchors.
Do I need an account to try it?
No. Anonymous users get 33 scans per day. For more headroom, request a free token to unlock 333 scans/day. The token is a signed JWT that works offline—no external validation required.
What happens when I hit the quota limit?
Stella Ops uses soft limits that never block your pipeline:
- A warning appears at 90% quota usage
- Beyond the limit, requests are throttled (5s delay initially, 60s later)
- Everything resets at midnight UTC
The quota header X-Stella-Quota-Remaining tells you exactly how many scans are left.
Where is the source code?
Everything is open source under AGPL-3.0-or-later:
- Source: git.stella-ops.org
- Docs: /docs/ — every page maps to a Git tag
- Chat: Matrix
#stellaops:libera.chat
For Business & Compliance
What does Stella Ops cost?
The core scanner is free and open source (AGPL-3.0). Pre-built container images require a free token. Self-built distributions need no token at all.
| Tier | Scans/day | Cost |
|---|---|---|
| Anonymous | 33 | Free |
| Free token | 333 | Free |
| Enterprise | Unlimited | Contact us |
Optional commercial add-ons include high-availability Redis/MongoDB, custom TLS/crypto adapters, and priority support.
How mature is Stella Ops?
Current status: v0.1 alpha (2025). The roadmap:
- v0.2 beta — Q1 2026: Zastava K8s agent, Cartographer dashboards
- v0.3 beta — Q2 2026: Policy packs, SARIF/JSON exports
- v0.4 RC — Q3 2026: AI remediation, LDAP/AD SSO
- v1.0 GA — Q4 2026: SLSA L3 provenance, 24-month LTS support
Pre-GA releases receive critical and high-severity fixes only.
What compliance standards does it support?
Stella Ops is built for regulated environments:
- SBOM formats: CycloneDX 1.6, SPDX 3.0.1
- VEX standards: OpenVEX, CSAF VEX, CycloneDX VEX
- Attestations: in-toto DSSE, Sigstore Rekor transparency logs
- Crypto profiles: FIPS-140-3, GOST R 34.10, SM2/SM3 (China), eIDAS (EU), post-quantum ready
Every scan produces a Deterministic Replay Manifest (SRM) that auditors can re-run to verify findings.
Can we use it in air-gapped/sovereign environments?
Yes. The Offline Update Kit bundles everything needed for disconnected operation:
- Pre-merged vulnerability databases (NVD, OSV, GHSA + regional feeds)
- Container images for x86-64 and arm64
- Cosign signatures and SPDX SBOMs
- Time anchors to prevent clock-drift attacks
Import is atomic and takes under 7 seconds on SSD. JWT tokens verify locally with bundled public keys—no outbound network calls.
How does Stella Ops compare to competitors?
Three capabilities no competitor offers together:
- Signed reachability proofs — Graph-level DSSE with optional edge attestations
- Deterministic replay — Bit-for-bit reproducible scans from frozen feeds
- Sovereign crypto — FIPS, GOST, SM2, eIDAS profiles without code changes
See our 15-vendor comparison covering Trivy, Snyk, JFrog Xray, Docker Scout, Wiz, and others.
What data do you retain?
- Access logs: IP addresses kept 7 days, then stored as salted hashes
- Token requests: Email kept only until delivery (≤7 days), then hashed
- Quota ledger: Stores token-ID hash only—no plain email or IP
- No trackers: No cookies, analytics, or third-party telemetry in the scanner
For Developers
What languages and package managers are supported?
| Language | Package Managers | Status |
|---|---|---|
| Node.js | npm, yarn, pnpm | Full support |
| Python | pip, pipenv, poetry | Full support |
| Java | Maven, Gradle | Full support |
| .NET | NuGet, dotnet | Full support |
| Go | Go modules | Full support |
| Rust | Cargo | Full support |
| Ruby | Bundler | Planned |
OS packages: Alpine, Debian, Ubuntu, RHEL, Alma, Rocky, SUSE, Amazon Linux, Wolfi, Chainguard
What SBOM and VEX formats are supported?
SBOM ingestion:
- CycloneDX 1.6 (JSON/XML) — preferred
- SPDX 3.0.1 (JSON)
- Trivy-JSON v2
- Auto-detection on upload
VEX support:
- OpenVEX — exploitability statuses and justifications
- CSAF VEX — Common Security Advisory Framework
- CycloneDX VEX — embedded in SBOM
VEX statements from multiple sources are merged using lattice mathematics with issuer trust weighting and freshness decay.
How do I use the CLI?
stella scan IMAGE_OR_SBOM [OPTIONS]
Options:
--sbom-type {auto|cyclonedx-json|spdx-json|trivy-json-v2}
--delta # Use layer cache for faster scans
--policy-file PATH # Override with local YAML/Rego
--threshold LEVEL # low|medium|high|critical (default: critical)
--output-json PATH # Write results to file
--wait-quota # Auto-retry on 429Exit codes: 0 = pass, 1 = vulnerabilities or policy block, 2 = error
Additional tools: stella replay for deterministic replay, stellopsctl for admin tasks.
How do I integrate with CI/CD?
Stella Ops is CI/CD-ready out of the box:
- Exit codes for pass/fail gating in any pipeline
- Token auth via JWT or OAuth2 client credentials
- Policy override per environment with
--policy-file - Async scanning with SSE progress streams for large images
- JSON output for downstream processing
# GitHub Actions example
- name: Scan container
run: |
stella scan $IMAGE \
--output-json results.json \
--threshold high
env:
STELLA_JWT: $Is there an API?
Yes. Key endpoints:
POST /scan— Submit SBOM or image (target: <5s cold, <1s warm)POST /layers/missing— Check delta cache (<20ms)POST /api/v1/policy/preview— Dry-run policy changesGET /api/v1/scans/{id}/events— SSE progress streamPOST /connect/token— OAuth2/OIDC client credentials
Rate limit: 40 requests/second/token. The Retry-After header is included on 429 responses.
What makes the policy engine different?
The lattice policy engine merges evidence from multiple sources into a single signed verdict:
- SBOM data — packages, dependencies, versions
- Advisory feeds — 30+ sources including NVD, OSV, GHSA, regional CERTs
- VEX statements — from vendors, your team, or third parties
- Custom rules — YAML (simple) or Rego (advanced OPA)
Every decision ships with an explain trace showing exactly why a finding was muted, escalated, or remained open. Auditors can replay any verdict with stella replay srm.yaml.
For DevOps & Platform Teams
What are the system requirements?
| Component | Minimum | Recommended |
|---|---|---|
| OS | Ubuntu 22.04 / Alma 9 | x86-64 or arm64 |
| CPU | 2 vCPU | 8 vCPU |
| RAM | 2 GiB | 16 GiB |
| Disk | 10 GiB SSD | 50 GiB SSD |
| Docker | Engine 25+ | Compose v2 |
Databases: Redis (required) for caching and quota. MongoDB (optional) for audit history and long-term retention.
How do I deploy Stella Ops?
Docker Compose (single-node):
docker compose -f docker-compose.infrastructure.yml up -d
docker compose -f docker-compose.stella-ops.yml up -dKubernetes (Helm):
helm install stellaops ./deploy/helm/stellaops \
--values values-prod.yamlProfiles available: dev, staging, air-gapped. Horizontal scaling and HA (Redis Sentinel + MongoDB replica set) available as commercial add-on.
Does it work with Kubernetes?
Yes. Zastava is a Kubernetes-native agent that provides:
- Admission webhook — validate signatures and SBOMs before pod creation
- DaemonSet observer — collect runtime events and process metadata
- Drift detection — trigger rescans when posture changes
- Event buffering — works offline with local queue
Runtime signals (entrypoint, loaded libraries) feed into the policy engine alongside static SBOM analysis.
How do I update vulnerability feeds?
Connected mode: Feeds update automatically (weekly during alpha, daily at GA).
Offline mode: Use the Offline Update Kit:
# Download latest bundle (on connected host)
stellaops-cli offline kit pull
# Transfer to air-gapped host, then import
stellaops-cli offline kit import ./stella-ouk-2025-11.tar.gzDelta patches keep bundles under 350 MB. Import is atomic (<7s on SSD) with no service restart required.
What's the scan performance?
Benchmarked SLOs on 8-vCPU reference rig (P95):
| Operation | Target | Actual |
|---|---|---|
| SBOM-first scan | ≤5s | 4.9s |
| Delta SBOM (warm) | ≤1s | 0.83s |
| Image unpack | ≤10s | 9.2s |
| Policy evaluation | ≤50ms | 41ms |
| API latency | ≤200ms | 143ms |
System sustains 60 concurrent scans on an 8-core node without queue depth exceeding 10.
What observability is built in?
- Metrics: Prometheus endpoint at
/metricswith per-phase latency histograms - Dashboards: Grafana provisioning included
- Logging: Structured JSON logs with UTC timestamps (RFC 5424 audit events)
- Tracing: OpenTelemetry spans with activity tags for correlation
- Health:
/healthand/readyendpoints for K8s probes
How does offline/air-gap mode work?
Three isolation levels:
- Connected — Normal operation with live feed updates
- Constrained — Allow-listed egress only (feed mirrors)
- Sealed — Deny-all egress, preloaded bundles only
Sealed mode requires:
- Offline Update Kit with vulnerability databases
- Time anchors to prevent clock-drift attacks
- Bundled public keys for local JWT verification
Policy banners display mirror generation, manifest hash, and staleness status so operators know exactly what data is in use.
Still have questions?
Read the Docs Join the Community