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

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:

Comparison with the CSV BOM

CSV of stage0 pre-push #13252 (bom-internal-qa-aws.csv, product Virtualization) against the package SBOMs of virtualization and sso-app. Before: #13252. After: pre-push #15718 (virtualization package build #2548), with the linux-pkg and dlpx-app-gate changes.

Before After
virtualization components 415 1,256 (schema-valid, bom-refs unique)
npm components (with a license) 0 840 (805)
CSV names not in the SBOM 133 23

The 23 names of the per-variant CSV still not in the SBOM, none of which is a gap:

Names Count Status
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

"Not shipped" was checked against the file list of the .deb and of every .war in it.

One more CSV row: less.js 3.9.0. bom.csv, the CSV before the Ubuntu rows are added, has one Virtualization row the per-variant bom-<variant>.csv drop: Virtualization,less,3.9.0, apparently because the Ubuntu pager package is also named less. It is a real gap: less.js 3.9.0 ships in dxcore.war (lib/lessjs/less.js) and was in no SBOM. dlpx-app-gate#5068 now lists it from a new descriptor, client/dxcore/lib/lessjs/less.DESC.json. Verified in pre-push #15738 (virtualization package build #2550): pkg:npm/less@3.9.0 with Apache-2.0, 1,257 components, schema-valid. Compared with bom.csv (464 Virtualization names), the CSV-only names are the same 23 as above, so every CSV name is either in the SBOM or explained. Masking needs no change: its 5 CSV-only names are a renamed entry, 2 BOM POMs and 2 components that do not ship.

The components no scan can identify are listed from the generated vendored-components.cdx.json: jacl 1.4.1, javax.inject 1, handlebars 4.7.8, jasmine 1.3.1, karma-jasmine 0.1.6 and highlight.js 9.2.0 are in #15718's and #15735's SBOMs with purl and license; less.js 3.9.0 is in #15738's.

Third-party code that ships but is in neither the CSV nor the SBOM (jqTree, jquery.smooth-scroll 1.4.13, 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
…n package SBOMs

PR URL: https://www.github.com/delphix/linux-pkg/pull/422

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@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