DependencyTrack / DependencyTrack/dependency-track

Multi SBOM Upload for one Project: Allow amending or extending the SBOM of a given project

Open
#1,880 6 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
4.2k
Forks
811
Avg merge
8h 39m
Merged PRs (30d)
237

Description

### Current Behavior:
When uploading a SBOM all files are replaced. This seems intuitive and logical

### Proposed Behavior:
Many repos are composites these days of all sorts of languages and workflows. There is no one SBOM scanner that can handle it all.

To scan the entire Repo on an enterprise-level many individual scanners are used each creating a SBOM based on some kind of heuristics. There would be the possibility of merging the SBOM results with e.g. the cyclonedx cli together and then uploading it all.
But that shifts logic unnecessarily to the client and individuals, as this is something everyone will face in a medium to large enterprise.
It would be more convenient if that could be handled in a secure way by the DT.

Where for a project a multi-sbom is started with a handshake that give the client a key that it needs to upload SBOMs along with this key in the HTTP header.
Then there is another API call of: Finish Upload
DT then does the cyclonedx cli merging of all the uploaded files, generates one SBOM and continues with its existing logic.

Workflow
API: GET MultiSBomToken
API: PUT SBOM1 (+ HEADER w. TOKEN)
API: PUT SBOM2 (+ HEADER w. TOKEN)
API: PUT SBOM.....n (+ HEADER w. TOKEN)
API: GET MultiSBomFinishAndMerge

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.