1- From 7469915d465acd03e09cc6400941b20713e4f4d2 Mon Sep 17 00:00:00 2001
1+ From 12860d8c0cbcbc9019895f09b125cc49cd75fc60 Mon Sep 17 00:00:00 2001
22From: dervoeti <lukas.krug@stackable.tech>
33Date: Thu, 26 Mar 2026 20:51:26 +0000
44Subject: Scope CycloneDX SBOM to shipped components only
55
66Exclude plugin subprojects that are not included in the opensearch-min
7- distribution from the CycloneDX BOM generation. Only repository-s3 and
8- telemetry-otel are shipped from the local build. Other plugins like
9- ingest-attachment (which pulls in tika-core) are not installed in the
10- Stackable image and should not appear in the runtime SBOM.
7+ distribution from the CycloneDX BOM generation. Only repository-azure,
8+ repository-s3 and telemetry-otel are shipped from the local build. Other
9+ plugins like ingest-attachment (which pulls in tika-core) are not
10+ installed in the Stackable image and should not appear in the runtime
11+ SBOM.
1112---
1213 build.gradle | 34 ++++++++++++++++++++++++++++++++++
1314 1 file changed, 34 insertions(+)
1415
1516diff --git a/build.gradle b/build.gradle
16- index 78a15b418e7..b8cbb13be3d 100644
17+ index 78a15b418e7..1770e1afec9 100644
1718--- a/build.gradle
1819+++ b/build.gradle
1920@@ -78,6 +78,40 @@ allprojects {
@@ -22,7 +23,7 @@ index 78a15b418e7..b8cbb13be3d 100644
2223 cyclonedxBom {
2324+ // Only include subprojects that are part of the opensearch-min distribution
2425+ // (server, libs, modules) plus the core plugins shipped in the Stackable
25- + // image (repository-s3 and telemetry-otel). This prevents build-only plugin
26+ + // image (repository-azure, repository- s3 and telemetry-otel). This prevents build-only plugin
2627+ // dependencies (e.g. tika-core from ingest-attachment) from appearing in the
2728+ // runtime SBOM as false positives.
2829+ // The test framework, the test fixtures, the QA projects and the benchmarks are not
@@ -35,7 +36,7 @@ index 78a15b418e7..b8cbb13be3d 100644
3536+ // ends up asserting versions that are not in the image.
3637+ // Note that :distribution must not be excluded. The launchers and CLI tools under
3738+ // :distribution:tools are shipped in lib/tools.
38- + def shippedPlugins = ['repository-s3', 'telemetry-otel'] as Set
39+ + def shippedPlugins = ['repository-azure', 'repository- s3', 'telemetry-otel'] as Set
3940+ skipProjects = subprojects.findAll { sub ->
4041+ (sub.path.startsWith(':plugins:') && !(sub.name in shippedPlugins)) ||
4142+ sub.path.startsWith(':example-plugins') ||
0 commit comments