segrep-sbom scanner
Opt-in local SBOM scanner with optional Syft parity shadow
Opt-in SBOM scanner for Segrep that prioritizes local lockfile parsing and can optionally run a parity shadow comparison against external Syft.
segrep-sbom is designed for controlled rollout of local SBOM generation without changing default syft behavior.
Why use segrep-sbom
- Keeps syft unchanged for teams that need Anchore Syft output path by default.
- Enables local lockfile SBOM generation for fast, dependency-focused scans.
- Supports shadow parity against external Syft so drift can be measured in CI.
Scanner behavior
segrep-sbom runs as an opt-in scanner.
pnpm segrep scan . --scanners segrep-sbom --format jsonIt writes SBOM artifacts to:
.segrep/sbom.cyclonedx.json
When parity shadow is enabled, it also writes:
.segrep/segrep-sbom-parity.json
Modes
Configure execution mode with SEGREP_SBOM_MODE:
auto(default): local lockfile SBOM first, external Syft fallbacklocal: require local lockfile path; fail if unsupported lockfiles are absentexternal: force external Syft path only
SEGREP_SBOM_MODE=auto pnpm segrep scan . --scanners segrep-sbomParity shadow mode
Enable parity shadow to compare local and external component sets:
SEGREP_SBOM_PARITY_SHADOW=true pnpm segrep scan . --scanners segrep-sbom --format jsonParity report fields include:
status(comparedorskipped)summary.localComponentCountsummary.externalComponentCountsummary.localOnlyCountsummary.externalOnlyCount- sample component IDs from both delta sets
If external Syft is unavailable, parity status is skipped and the scan still succeeds in best-effort mode.
CI parity gate
Use the parity verifier script to enforce drift thresholds:
node scripts/ci-verify-sbom-parity.js \
apps/cli/fixtures/vulnerable-repo/.segrep/segrep-sbom-parity.json \
--max-local-only 0 \
--max-external-only 0Optional flag:
--allow-skippedfor environments where external Syft parity is not always available
Docker usage
docker run --rm -v "$(pwd):/repo" \
-e SEGREP_SBOM_PARITY_SHADOW=true \
security-scanner:local \
scan /repo --scanners segrep-sbom --format jsonRelationship to syft scanner
syftscanner: external Syft wrapper (local binary or Docker image)segrep-sbomscanner: local SBOM implementation with optional parity shadow
Use both when validating migration:
pnpm segrep scan . --scanners syft,segrep-sbom --format jsonRelated docs
- Product scan guide
- Docker image reference
- Add a scanner
- segrep-license — license compliance for dependencies
- segrep-secrets — native secret detection