-
-
Notifications
You must be signed in to change notification settings - Fork 595
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Link a Projects as a component of another project #3375
Comments
How would this work on SBOM upload for a project that has a dependency on another project? In the SBOM there's must a purl of that other project. But that purl can or cannot be present in DT. And if it is present, maybe the uploader does not want to link them together. Can this feature be implemented without requiring extra information in the SBOM / from the uploader? |
I don't think we need to touch/change the SBOM based on the linking being opt-in via clicking the add component button and then selecting the project. |
The SBOM is the single source of truth. Any components added later will be removed upon the next SBOM upload. My point was that it should be automateable to be scalable. |
Sure I do agree that it would be very nice if the linking could be automated based on purl but establishing that connectivity would be the first key step even if manual. |
Hi!
Acceptance Criteria
Hint: Detect and prevent circular dependencies. |
References to other discussions on this topic: |
Yes #869 is certainly connected to this, I think we should let this issue focus on making it easy to define that relationship using UI rather than uploading SBOM's. |
DependencyTrack is "API first" - what speaks against identifying a project by assigning it a purl (or cpe if you must) and then including this in an SBOM of a "summary" project? |
I have no issue with the 2 options mentioned. I am just thinking about how to avoid the need to manually create an sbom for a container project which introduces greater chance of error. My use case is I perform a release of my application. This app is made of 6 different services with each being a dedicated project in DT. In some releases all the services have a new version but in others only 1 might change hence making it easily definable in the ui is desired. After adding a new version of the master app via UI, the user could simply select the new version of the linked project from a drop-down in the edit component screen. |
I think if you separate UI from actual implementation, you could get at it like this:
|
Sure it should certainly appear the same when looking at vulnerabilities & dependency graph. In terms of processing the difference should be that a manually linked project should not be wiped on uploading an sbom. |
I don't think that will work - as you'd need a completely different data model. It's all about SBOMs; If you manually edit that, it will be overwritten with a new upload (as is everything else). And it should - as a new upload/version might also have dependencies to later versions of another "project". |
Ok if there is no way to have it so that a manually created component is not wiped on the upload of an sbom could there be a way in which a file (ie sbom) with components is passed to the dotnet tool so that those components can be added? |
I don't know your exact setup - I'd reccomend to take that part of the SBOM (download components as SBOM, just keep the part with the manually added ones) and merge it to the automatically generated one using e.g. CycloneDX-CLI as a workflow. |
Yes that would be possible but isn't as convenient as simply passing the path of an existing sbom (downloaded & filtered) to the dotnet tool. Your proposal adds an extra build command & requires an additional tool to be installed in the environment. |
Your suggestion isn't usable in an automated way (via the API) at all though - and updating reference projects versions requires a lot of manual work. |
My suggestion is the same as yours except I am proposing the dotnet cli tool does the merging rather introduce an additional tool |
Current Behavior
User must manually calculate vulnerabilities of all projects being deployed
Proposed Behavior
I wish for the "add component" button to now have a drop-down of 2 options:
When a user selects the project option they are provided UI to select a project and version which already exists in dependency track.
The way my releases work i have multiple micro-services which are bundled together as part of a build pipeline to form 1 installer for the end user.
With the proposed approach i could select a "project" which represents my installed and see all the projects which are contributing to that installer and have install visibility into the health of that release.
Alternative option would be to allow multiple parent projects
Checklist
The text was updated successfully, but these errors were encountered: