Skip to content

fix(scan): upload the analyzed facts files next to the reachability report - #1653

Merged
Jeppe Fredsgaard Blaabjerg (jfblaa) merged 1 commit into
v1.xfrom
jfblaa/rea-990-keep-private-maven-libraries-in-the-stored-sbom-when-dynamic
Oct 23, 2026
Merged

Jeppe Fredsgaard Blaabjerg (jfblaa) merged 1 commit into
v1.xfrom
jfblaa/rea-990-keep-private-maven-libraries-in-the-stored-sbom-when-dynamic

Conversation

@jfblaa

@jfblaa Jeppe Fredsgaard Blaabjerg (jfblaa) commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

LLM Description written by Claude Code:claude-opus-5-5

Fixes REA-990: a --reach scan of a JVM build with Socket facts files stored no private libraries or build modules, and their dependencies had no parent. The same scan without --reach keeps them.

Cause: with --reach, socket-cli uploaded Coana's report in place of every *.socket.facts.json. In Coana's report, components with no public metadata (private libraries, build modules) carry missingMetadata, which depscan strips at scan create, so the report alone cannot carry them.

Change: upload the files Coana was given (detected facts files minus reachability reports) next to its report, as --reach-use-only-pregenerated-sboms already did. depscan merges them, so the facts files contribute the private components and their edges, and the report contributes reachability. Earlier reports (bare .socket.facts.json) stay out.

Notes:

  • Named facts files go up uncompressed, as in a scan without --reach: depscan only decodes the bare .socket.facts.json.br (REA-895).
  • Coana's input and the upload now use the same filter, but it is still written out separately in each place; computing it once in performReachabilityAnalysis is left as a follow-up.

🤖 Generated with Claude Code


Note

Medium Risk
Changes scan upload composition for all --reach runs and affects how depscan merges SBOMs; scope is limited to the reach success path with regression tests.

Overview
socket scan create --reach no longer uploads only Coana’s reachability report in place of every *.socket.facts.json. It now uploads the same inputs Coana analyzed—build facts such as pom.xml.socket.facts.json and gradle.socket.facts.json, plus other manifests—along with the fresh report, while still omitting stale bare .socket.facts.json reachability reports.

That fixes JVM reach scans where private libraries and build modules disappeared from the stored SBOM because depscan strips missingMetadata components from the report alone; merged uploads preserve those components and parent/child edges from the facts files while the report still supplies reachability.

Tests and the changelog were updated to match the new upload set (including --reach-use-only-pregenerated-sboms behavior).

Reviewed by Cursor Bugbot for commit 514229f. Configure here.

…eport

A --reach scan uploaded Coana's report in place of every facts file.
depscan drops the report's components without public metadata, so private
libraries and build modules went missing from the stored SBOM and their
dependencies lost their parent. Upload the facts files Coana analyzed,
minus earlier reports, as --reach-use-only-pregenerated-sboms already does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@jfblaa
Jeppe Fredsgaard Blaabjerg (jfblaa) merged commit b2ea6aa into v1.x Oct 23, 2026
11 checks passed
@jfblaa
Jeppe Fredsgaard Blaabjerg (jfblaa) deleted the jfblaa/rea-990-keep-private-maven-libraries-in-the-stored-sbom-when-dynamic branch October 23, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants