Skip to content

feat: Add SBOMs for frontend (npm) dependencies - #1600

Merged
dervoeti merged 10 commits into
mainfrom
feat/npm-sbom-frontend
Aug 20, 2026
Merged

feat: Add SBOMs for frontend (npm) dependencies#1600
dervoeti merged 10 commits into
mainfrom
feat/npm-sbom-frontend

Conversation

@dervoeti

@dervoeti dervoeti commented Aug 17, 2026

Copy link
Copy Markdown
Member

Description

Airflow, Druid, NiFi and Superset all bundle a frontend (npm) build, but their SBOM tooling (cyclonedx-py, CycloneDX Maven plugin) only covers the backend language. This adds a separate cdxgen-generated CycloneDX SBOM for the npm dependencies of each product's frontend, alongside the existing backend SBOM.

cdxgen 13.x requires Node >= 24, which is newer than the Node versions these products pin for their own frontend builds. Rather than bumping those, each affected Dockerfile installs a second, independent Node under /opt/node-cdxgen used only to run cdxgen, with that directory prepended to PATH for the cdxgen invocation.

As part of this, opensearch-dashboards (which already generated a frontend SBOM) is migrated from cdxgen 12.0.0 (@cyclonedx/cdxgen) to 13.0.1 (@cdxgen/cdxgen, the package was renamed for
13.x), and pins --spec-version 1.6 explicitly, since cdxgen's default spec version changes between releases and 1.6 is
the lowest version cdxgen 13 accepts as a generation target.

We still have some more uncovered JS code in our products (e.g. Trino UI), that will be a separate PR though since this is likely more complicated.

Definition of Done Checklist

  • Changes are OpenShift compatible
  • All added packages (via microdnf or otherwise) have a comment on why they are added
  • Things not downloaded from Red Hat repositories should be mirrored in the Stackable repository and downloaded from there
  • All packages should have (if available) signatures/hashes verified
  • Add an entry to the CHANGELOG.md file
  • Integration tests ran successfully

@Techassi Techassi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally looks good, just a few comments.

Comment thread druid/Dockerfile
Comment thread druid/Dockerfile Outdated
Comment thread airflow/Dockerfile Outdated
Comment thread airflow/Dockerfile Outdated
Comment thread airflow/Dockerfile Outdated
Comment thread opensearch-dashboards/Dockerfile Outdated
@dervoeti
dervoeti requested a review from Techassi August 19, 2026 10:32

@Techassi Techassi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, just one last question.

Comment thread CHANGELOG.md

@Techassi Techassi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well approving would actually help.

@dervoeti
dervoeti added this pull request to the merge queue Aug 20, 2026
Merged via the queue into main with commit e3326fc Aug 20, 2026
3 checks passed
@dervoeti
dervoeti deleted the feat/npm-sbom-frontend branch August 20, 2026 15:02
@Techassi Techassi moved this from Development: In Review to Development: Done in Stackable Engineering Aug 24, 2026
@lfrancke lfrancke moved this from Development: Done to Done in Stackable Engineering Aug 24, 2026
@dervoeti dervoeti mentioned this pull request Aug 24, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

4 participants