-
Notifications
You must be signed in to change notification settings - Fork 21
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
Track relationships that span accross SBOMs. #1155
Comments
Solving this would also help with the issue #1140 It needs to define relationships to other sboms for the {
"SPDXID" : "example-product-sbom",
"spdxVersion": "SPDX-2.3",
"dataLicense": "CC0-1.0",
"created": "2023-10-01T12:00:00Z",
"externalDocumentRefs": [
{
"referenceDocumentIdentifier": "SPDXRef-other-sbom",
"referenceCategory": "PACKAGE",
"referenceType": "SPDX",
"referenceLocator": "https://example.com/path/to/other-spdx-document.spdx"
}
],
...
} |
My proposal would be to add two columns into this table, left and right "sbom reference". Which should (by definition) match the the SPDX namespace and CDX serial. However, not adding actual database constraints. Then, do the referencing during the actual lookup. Which we could do "in memory" using the analysis graph. Allow the user, during the query process, to specify the mode of operation when encountering a broken link, or multiple link targets. Possible modes for broken links could be: fail, ignore (and report). |
@ctron that sounds good to me ... how we link 2 graphs in the 'forest' hashmap is something we can chat through |
What do we set the node_id fields to? Or do we make the field nullable?
|
Adding two columns means we'd have 3 sbom's referenced in each row, correct? The existing Given the above |
I want to clear up a misconception ... if a component description inside a pedigree.ancestors (or anything else for that matter) has no reference to an external sbom (using reference) there is no concept of matching a purl to a purl in some other sbom ... eg. a purl is germane to the sbom it is defined in - in other scenario of product<>component sbom the relationship is deduced via CPE linkage. We could probably make examples for upstream (etc) that define an external reference but that is out of scope eg. the upstream relationship we are denoting is all done within the confines of a single sbom. |
@JimFuller-RedHat is that field "bom-ref" is not a sbom reference? |
From the spec for So bom-ref's are local to the SBOM. I'm guessing "BOM-Links" are the external references? |
We had a good talk today. We are considering storing the external document info in a new node type that uses the doc namespace as part of the node ID. But before going too deep into implementing it, we should find actual SBOMs with external doc refs and see if we can concoct examples highlighting difficult edge cases. |
create adr #1172 |
tagging #556 |
Currently, only relationships within an SBOM are tracked by the
package_relates_to_package
table:This should get extended to track a relationship to packages defined in external sboms.
The text was updated successfully, but these errors were encountered: