Repository navigation
Idea: add SRAC safety-relevance context to SBOM components #7468
Replies: 5 comments
Proposed architecture: read-only SRAC enrichment for Dependency-Track v5I suggest a phased architecture that keeps Dependency-Track's existing SBOM ingestion and vulnerability analysis unchanged. Design principles
Proposed flowInitial ingestion modelFor the first implementation, I propose an explicit upload rather than automatically downloading arbitrary external URLs: The exact API path should follow Dependency-Track v5 conventions. The upload process would:
Automatic retrieval from an SBOM external reference could be considered later, with URL allowlisting and SSRF protections. Deterministic component correlationThe proposed matching order is:
There should be no fuzzy name-only matching. Multiple matches must be reported as Persistence modelDependency-Track would retain:
The normalized fields would be an indexed projection for discovery and display. They would not replace the original assertion or become a second safety source of truth. Initial UIA component could display a read-only Safety context section containing:
The project view could show counts for matched, unmatched, ambiguous, invalid, and unreviewed assertions. MVP scopeThe first increment would contain only:
The MVP would not include:
Those capabilities can be evaluated after the ingestion and correlation model has been validated. Standards evolutionThe sidecar enables this workflow with current SPDX and CycloneDX documents through an integrity-protected external reference. When equivalent safety semantics are available natively in an adopted SBOM version, the same ingestion projection could accept those native fields without changing the Dependency-Track UI model. Future native CycloneDX integrationThe external-reference approach is intended as a compatibility and migration path, not as permanent coupling to a separate transport. CycloneDX safety support is currently under public RFC in CycloneDX/specification#1120, targeting the The ingestion architecture can nevertheless define an adapter boundary now: This supports a phased path:
Expected behavior would be:
The originating safety lifecycle system remains authoritative in every path. Dependency-Track consumes and presents the supplied context; it does not create or approve the safety decision. Requested guidanceWould this read-only, explicit-upload MVP be an acceptable starting point for Dependency-Track v5? If the concept is acceptable, I can prepare:
|
|
I have consolidated the cross-project feedback into an overall For Dependency-Track, the proposed receiving path is:
The expected outcomes are component-level safety visibility and The receiver must preserve provenance and expose matched, unmatched, Feedback on whether this ingestion/API boundary fits the existing component |
|
We've discussed some of this previously. Several capabilities aren't in DT today and must be in place before we consider implementing safety information. IMO, the right approach is to break down the discrete features needed to support safety and create individual ADRs for each. Strategically, we are very interested in supporting features that support leading indicators of risk. Off the top of my head, I think the following would likely be good ADR candidates:
Some of these items already have tickets. However, since the result is a major visual change, we will also want to update our version of Vue before any of this work starts. I believe there's also a ticket for that. So, we need to address a few prerequisites first. If we want to support safety information in DT, we need to get the data model right, and an MVP specific only to safety likely isn't a good path forward. We'll likely want to take inspiration from the model CycloneDX created so that, when 2.0 is eventually supported in DT, the implementation is fairly straightforward. That path, while taking a bit longer, will not result in a complicated migration for users from the MVP data model to a CycloneDX-aligned data model, and it supports our strategic vision of moving from a BOM consumption and analysis platform to a Supply Chain Posture Management platform. |
|
Thanks, Steve. I reviewed the existing Dependency-Track trackers to map the prerequisites you identified. My initial inventory is: External references
Commercial licensing Evidence These appear narrower than the generalized CycloneDX evidence capability you described. I did not find an umbrella ticket covering identity, license, vulnerability, and future behavior evidence. Pedigree
Threats, risks, and controls
These provide useful prior work, but they remain largely vulnerability-centric. I did not find an existing umbrella issue for a generalized CycloneDX-aligned model of threats, weaknesses, risks, controls, and impacts where safety is one possible impact dimension. Frontend prerequisite
Related future transport
Based on this inventory, I see the likely ADR gaps as:
Would you confirm whether this is the correct prerequisite map? If so, I can draft the first ADR around expanded external-reference support, using safety-relevance metadata as one motivating example without creating a safety-specific data model. |
|
A few additional cross-cutting concerns occurred to me while considering the ADR decomposition. These may fit within the ADRs you already listed rather than requiring a separate ADR for each:
I would also suggest preserving three boundaries in the model:
These capabilities would support safety relevance, but they are also reusable for licensing, operational risk, compliance evidence and other Supply Chain Posture Management use cases. |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Use case
Organizations using Dependency-Track for safety-relevant products need to know not only that a component has a vulnerability, but also whether an authorized engineering process has classified that component as safety-relevant, what evidence supports the classification, and whether a change-impact analysis is complete.
Would Dependency-Track consider an experimental integration for Safety Relevance Assertion Capability (SRAC) records?
SRAC is a format-neutral, externally authored sidecar associated with SBOM components. It carries safety-relevance metadata, evidence and review state, plus optional change-impact analysis and decisions. The integration would validate, correlate, display, and transport those records; Dependency-Track would not infer a safety classification or approve a safety decision.
Why Dependency-Track is a useful integration point
Dependency-Track already maintains a continuously analyzed component portfolio, consumes CycloneDX SBOM and VEX documents, applies policy, and retains audit information. SRAC could add safety context to the same components without overloading vulnerability severity or introducing non-standard fields into today's SBOM documents.
For example, a team could distinguish:
Proposed minimal experiment
bom-ref, package URL, component version, or artifact digest.This could remain a sidecar until a released SBOM specification provides an appropriate native carrier. An exported CycloneDX BOM could optionally retain a resolvable external reference to the integrity-protected assertion.
Suggested acceptance criteria
Working prototype
The Eclipse S-CORE prototype demonstrates schema validation, SPDX/CycloneDX correlation, integrity checks, enrichment reports, change-impact records, and fail-closed behavior:
Related work:
Standards status
The mapping follows current SPDX 3.1-development FunctionalSafety concepts and explores a CycloneDX-compatible external assertion carrier. These are development/proposal references, not claims of released normative support.
Would a project-version sidecar import be compatible with Dependency-Track's architecture, or would maintainers prefer this to enter through CycloneDX before the platform consumes it?
All reactions