DependencyTrack / DependencyTrack/dependency-track
Multi SBOM Upload for one Project: Allow amending or extending the SBOM of a given project
- 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
Assessment
This issue has not been assessed yet.