Skip to content

Security: systemic-engineering/StageFreight

Security

docs/Security.md

StageFreight — Security Scanning Configuration

How StageFreight scans images for vulnerabilities, generates SBOMs, and embeds security information in release notes.

Reference docs:Config Reference — security · CLI Reference — security


Configuration

security:
enabled: truescanners:
trivy: true # run Trivy image scan (default: true)grype: true # run Grype image scan (default: true)sbom: true # generate SBOM via Syft (default: true)fail_on_critical: false # exit non-zero on critical vulnsoutput_dir: ".stagefreight/security"release_detail: counts # default detail leveloverwhelm_message: ["…maybe start here:"]overwhelm_link: ""# URL for overwhelm message

Scanners

Two vulnerability scanners are supported:

ScannerDefaultDescription
TrivyenabledContainer image vulnerability scanning
GrypeenabledContainer image vulnerability scanning (Anchore)

Both default to enabled. Scanners still require their binary in PATH. Toggle individually:

scanners:
trivy: truegrype: false # disable Grype

Detail Levels

Controls how much security information is embedded in release notes.

LevelDescription
noneNo security info in release notes
countsVulnerability count summary (e.g., "0 critical, 2 high")
detailedCount summary with affected package list
fullFull vulnerability table with CVE IDs, severity, and descriptions

Conditional Detail Rules

Override detail level based on tag/branch patterns. Evaluated top-down, first match wins.

release_detail_rules:
- tag: "^v\\d+\\.\\d+\\.\\d+$"# stable releases → full detaildetail: "full"
- branch: "^main$"# main branch → detaileddetail: "detailed"
- detail: "counts"# catch-all

Precedence: CLI --security-detail flag > first matching rule > release_detail default.


Condition Primitive

The universal conditional rule used across StageFreight for tag/branch matching.

tag: "^v\\d+\\.\\d+\\.\\d+$"# regex match (default)branch: "!^feature/.*"# negated regex (! prefix)
  • Multiple fields set: AND — all must match.
  • No fields set: catch-all (always matches).
  • Rules evaluated top-down, first match wins.

Scan Artifacts

After a scan, the output directory contains:

FileFormatDescription
results.jsonTrivy JSONRaw vulnerability scan results
results.sarifSARIFFor GitLab/GitHub security dashboard integration
sbom.jsonCycloneDXSoftware Bill of Materials (when sbom: true)
summary.mdMarkdownHuman-readable summary at configured detail level

CLI Commands

See CLI Reference for full flag documentation.

stagefreight security scan --image "myorg/myapp:latest" --output .stagefreight/security/

There aren't any published security advisories