Skip to content

Understanding Results

When you run fleet scan --output json, you get a structured report with these top-level keys:

KeyContents
scanTimestamp, duration, commit SHA, CI provider
catalogCatalog version and total requirement count
projectLanguages, file counts
summaryPass/fail/review counts
findingsArray of individual requirement assessments
evidenceArray of evidence records (one per finding)
sbomCycloneDX 1.6 Software Bill of Materials
cbomCycloneDX 1.6 Cryptographic Bill of Materials
cbom_summaryCrypto primitive counts by compliance status

Each finding represents a single requirement assessment:

{
"requirement_id": "CRYPTO-01-R1",
"risk_id": "CRYPTO-01",
"status": "fail",
"confidence": 0.85,
"detector": "crypto",
"message": "Weak cryptographic algorithm MD5 detected...",
"source_locations": [
{ "file": "src/utils/hash.py", "line": 12, "snippet": "hashlib.md5(data)" }
]
}
StatusMeaningAction
passRequirement satisfiedNone — this is evidence of compliance
failRequirement violatedFix the code, or override as false-positive/accepted-risk
needs_reviewPattern detected, judgment neededReview manually or enable LLM review
not_applicableRequirement doesn’t applyAutomatically set (e.g., no AI usage = AI-* is N/A)
RangeInterpretation
0.85 - 1.0High confidence — clear pattern match
0.65 - 0.84Good — strong match, likely correct
0.50 - 0.64Moderate — review recommended
Below 0.50Low — likely needs human judgment

Each finding produces an evidence record:

{
"requirement_id": "CRYPTO-01-R1",
"evidence_type": "auto",
"source": "scanner",
"content": "Requirement CRYPTO-01-R1 assessed as fail (confidence: 85%): Weak cryptographic algorithm MD5 detected...",
"content_hash": "sha256:a1b2c3d4...",
"commit_sha": "abc12345",
"status": "draft"
}

Evidence records are immutable — once created, they’re never modified. This is by design for the CRA 10-year retention obligation.

The SBOM lists every dependency in CycloneDX 1.6 format:

{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"components": [
{
"type": "library",
"name": "express",
"version": "4.18.2",
"purl": "pkg:npm/express@4.18.2"
}
]
}

Fleet parses lockfiles from 9 ecosystems: Rust, npm, Yarn, Python (Poetry/Pipenv), Go, PHP, .NET, Ruby.

The CBOM inventories every cryptographic primitive found in the source:

{
"type": "cryptographic-asset",
"name": "AES-256-GCM",
"properties": [
{ "name": "category", "value": "symmetric-cipher" },
{ "name": "compliance", "value": "approved" },
{ "name": "key-length", "value": "256" },
{ "name": "source-file", "value": "src/crypto.rs" },
{ "name": "source-line", "value": "42" }
]
}

Each crypto primitive is classified as approved, deprecated, or prohibited.

When results are uploaded to the Fleet API, the dashboard provides:

  • Compliance score: Percentage of requirements with evidence
  • Coverage bar: Visual breakdown by status
  • Gap analysis: Prioritized list of missing/failing requirements
  • Evidence vault: Searchable, filterable evidence record viewer
  • Catalog explorer: Browse the full catalog tree with per-requirement status