Skip to content

DLPX-100122 Catalog npm lock files and embedded CycloneDX documents in package SBOMs - #422

Draft
suyash-jai wants to merge 1 commit into
developfrom
dlpx/pr/suyash-jai/4c744b26-a8b4-4735-ae27-b65bb09d6a0b
Draft

suyash-jai wants to merge 1 commit into
developfrom
dlpx/pr/suyash-jai/4c744b26-a8b4-4735-ae27-b65bb09d6a0b

Conversation

@suyash-jai

@suyash-jai suyash-jai commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Is the CycloneDX SBOM more complete than the CSV? Yes. Every Virtualization component in the CSV is also in the SBOM, except 24 names, and none of those is a real gap: they don't ship, are BOM POMs with no code, are listed under another name, or (javax.inject) are left out until password-vault-manager ships as its own package. The SBOM also lists over 500 components the CSV never had: transitive jars, and the npm packages compiled into the UI bundles, which the SBOM previously missed entirely.
  • Does it include unshipped build dependencies? No. It is a scan of the .deb, so Java components are the jars the package ships. For the UIs, only package.json dependencies are listed, not devDependencies; the CSV does include devDependencies. Caveat: an npm runtime dependency is listed even if webpack leaves it out of the bundle.

What this PR changes

A package's browser UI ships as minified bundles that Syft cannot see into, so the virtualization SBOM listed no npm components. This adds catalog_npm_lockfiles(), which scans each shipped lock file's directory on its own (Syft separates runtime from dev dependencies only at the scan root) with licenses from SBOM_NPM_REGISTRY, and adds +javascript-package-cataloger,+sbom-cataloger to the main scan. Of the other 31 deep-scanned .debs of #13252, only delphix-rust-src changes (+2 components).

Jira: DLPX-100122. Sub-task of DLPX-100120 (epic CP-13455), delivered in three PRs:

Details: the full CSV comparison

Compared with the CSV from stage0 pre-push #13252 (bom-internal-qa-aws.csv, product Virtualization). Before is #13252; after is #15738 with these changes.

Before After
virtualization components 415 1,256
npm components 0 841
CSV names not in the SBOM 133 24

The 24 names:

Names Count Why
spring-boot-starter-* 7 Not shipped
Maven BOM POMs (azure-sdk, grpc, jackson, netty) 4 No shipped code
grunt-angular-templates, npm-license-crawler 2 Build tools, not shipped
knockout-test, easymock 2 Test libraries, not shipped
jackson-dataformat-toml 1 No longer shipped (came with Flyway 9; develop is on Flyway 11)
okhttp, okio, jconnect, org.jacoco.agent, knockout, highstock-custom, karma-jasmine-old 7 Listed under another name at the CSV's version
javax.inject 1 Indirect dependency of password-vault-manager; left out until that ships as its own package

"Not shipped" was checked against the file list of the .deb and of every .war in it. less.js 3.9.0 is in bom.csv but dropped from the per-variant CSVs, apparently because the Ubuntu pager is also called less; it ships in dxcore.war and is now listed. Against bom.csv the CSV-only names are the same 24.

Third-party code that ships but is in neither the CSV nor the SBOM (jqTree, jquery.smooth-scroll, jasmine-jquery, rsync, PostgreSQL xlogdump, inih, jsmn, fonts, angular-mocks, angular-i18n, Glyphicons) is left to DLPX-100126.

🤖 Generated with Claude Code

@suyash-jai
suyash-jai marked this pull request as ready for review October 29, 2026 12:23
@suyash-jai
suyash-jai force-pushed the dlpx/pr/suyash-jai/4c744b26-a8b4-4735-ae27-b65bb09d6a0b branch from f781095 to 8a74007 Compare October 29, 2026 12:23
@suyash-jai suyash-jai changed the title CP-13467 Catalog npm dependencies shipped as lock files in package SBOMs CP-13467 Evaluate Syft-on-deb sufficiency for delphix-virtualization and delphix-masking Oct 29, 2026
@suyash-jai
suyash-jai requested review from sebroy and removed request for sebroy October 29, 2026 12:24
@suyash-jai
suyash-jai marked this pull request as draft October 29, 2026 12:32
@suyash-jai
suyash-jai force-pushed the dlpx/pr/suyash-jai/4c744b26-a8b4-4735-ae27-b65bb09d6a0b branch from 8a74007 to 26a6055 Compare October 29, 2026 12:53
@suyash-jai suyash-jai changed the title CP-13467 Evaluate Syft-on-deb sufficiency for delphix-virtualization and delphix-masking CP-13872 Catalog npm lock files and embedded CycloneDX documents in package SBOMs Oct 29, 2026
@suyash-jai
suyash-jai force-pushed the dlpx/pr/suyash-jai/4c744b26-a8b4-4735-ae27-b65bb09d6a0b branch from 26a6055 to b24e6cc Compare October 30, 2026 05:51
@suyash-jai suyash-jai changed the title CP-13872 Catalog npm lock files and embedded CycloneDX documents in package SBOMs CP-13906 Catalog npm lock files and embedded CycloneDX documents in package SBOMs Oct 30, 2026
@suyash-jai
suyash-jai force-pushed the dlpx/pr/suyash-jai/4c744b26-a8b4-4735-ae27-b65bb09d6a0b branch from b24e6cc to c4eb7f1 Compare October 30, 2026 07:36
@suyash-jai suyash-jai changed the title CP-13906 Catalog npm lock files and embedded CycloneDX documents in package SBOMs DLPX-100122 Catalog npm lock files and embedded CycloneDX documents in package SBOMs Oct 30, 2026
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.

1 participant