You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As devsecops, I want to be able to ingest Component cdx SBOM that relates back to their Product cdx SBOM (when defined in a separate cdx SBOM). This relationship should be traverseable via the REST-API/UX.
When cdx v1.6 Component SBOM is encoded with an evidence.identity, defined with a cpe - ingesting into trustify should establish a PACKAGE_OF trustify relationship.
Alternatively, when cdx v1.6 product SBOM is encoded with an externalReferences in component metadata, ingesting into trustify should establish a PACKAGE_OF trustify relationship.
At query time we should indicate if the full set of interrelated SBOMs are quiescent in the system
Multiple and/or nested evidence/identity relationships parsed from cdx MUST result in equivalent number of internal relationships
Given an array of rbofrmvr/identity components, the last component is the one true upstream - in the case that last item has nested ancestor we continue to apply the rules until we find the last item (of the last array) - every other component would be considered midstream.
Search/Query:
HTTP GET /api/v2/sbom
HTTP GET /api/v2/sbom?q={...}
Expose PACKAGE_OF relationship information via other analysis graph endpoints.
HTTP GET /api/v2/analysis/root-component?q={...}
HTTP GET /api/v2/analysis/root-component/{purl|name} (ex. /api/v2/analysis/root-component/pkg%3Aoci%2Fopenshift-ose-ptp-operator-bundle%40sha256%253Af0bcb875bc379e1c6a2508796d69febe3891c5717956bcade2e1df6708f376b9)
HTTP GET /api/v2/analysis/dep?q={...}
HTTP GET /api/v2/analysis/dep/{purl|name} (ex. /api/v2/analysis/dep/pkg%3Aoci%2Fopenshift-ose-ptp-operator-bundle%40sha256%253Af0bcb875bc379e1c6a2508796d69febe3891c5717956bcade2e1df6708f376b9)
It is out of scope to relate between different SBOM formats.
We assume both sbom(s) have been ingested and it is out of scope to try and figure out what it means if only a Product SBOM has been ingested ... async upload of either product or component sbom is allowed but on view we should clearly indicate if full set is present or not so analyst will know if complete 'picture' is being provided for a product.
For completeness we provide api/v2/analysis/deps ... but in practice we will probably filter our deps= to be only children.
Note about cdx v1.6 support (which applies to all cdx user stories in this document): In the short term, we are mostly interested in the software composition use case of CDX, not any other use case currently (e.g. CBOM, AI-BOM/ML-BOM, HBOM, VEX, etc.). The specific parts of the spec that allow us to represent the relationships described at https://redhatproductsecurity.github.io/security-data-guidelines/sbom/.
The text was updated successfully, but these errors were encountered:
JimFuller-RedHat
changed the title
Denote cpe/pURL aliases on a single component from CYCLONEDX
Denote relationship between Product SBOM and other SBOM from CYCLONEDX
Jan 14, 2025
This is a linked to https://issues.redhat.com/browse/TC-2048.
As devsecops, I want to be able to ingest Component cdx SBOM that relates back to their Product cdx SBOM (when defined in a separate cdx SBOM). This relationship should be traverseable via the REST-API/UX.
When cdx v1.6 Component SBOM is encoded with an evidence.identity, defined with a cpe - ingesting into trustify should establish a PACKAGE_OF trustify relationship.
Alternatively, when cdx v1.6 product SBOM is encoded with an externalReferences in component metadata, ingesting into trustify should establish a PACKAGE_OF trustify relationship.
Acceptance Criteria:
Search/Query:
HTTP GET
/api/v2/sbom
HTTP GET
/api/v2/sbom?q={...}
Expose PACKAGE_OF relationship information via other analysis graph endpoints.
HTTP GET
/api/v2/analysis/root-component?q={...}
HTTP GET
/api/v2/analysis/root-component/{purl|name}
(ex. /api/v2/analysis/root-component/pkg%3Aoci%2Fopenshift-ose-ptp-operator-bundle%40sha256%253Af0bcb875bc379e1c6a2508796d69febe3891c5717956bcade2e1df6708f376b9)
HTTP GET
/api/v2/analysis/dep?q={...}
HTTP GET
/api/v2/analysis/dep/{purl|name}
(ex. /api/v2/analysis/dep/pkg%3Aoci%2Fopenshift-ose-ptp-operator-bundle%40sha256%253Af0bcb875bc379e1c6a2508796d69febe3891c5717956bcade2e1df6708f376b9)
Example cdx SBOM
https://github.com/RedHatProductSecurity/security-data-guidelines/blob/main/sbom/examples/product/rhel-9.2-eus.cdx.json
Future / Other Considerations
The text was updated successfully, but these errors were encountered: