Skip to content

feat: add custom properties to external references #610

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

Open
wants to merge 1 commit into
base: 1.7-dev
Choose a base branch
from

Conversation

Urist-McGit
Copy link

@Urist-McGit Urist-McGit commented Mar 10, 2025

With this property external references can be annotated with additional metadata in a machine-readable format.

As discussed in #608 this adds support for custom properties in external references.

fixes #608

@Urist-McGit Urist-McGit requested a review from a team as a code owner March 10, 2025 13:37
@Urist-McGit Urist-McGit force-pushed the feat/ext-reference-properties branch 2 times, most recently from f5e6bed to aaf9399 Compare March 10, 2025 14:34
With this property external references can be annotated with additional
metadata in a machine-readable format.

Signed-off-by: Christoph Steiger <[email protected]>
@jkowalleck
Copy link
Member

@Urist-McGit, the current state looks promising.

According to the CycloneDX working model, the next step would be to move from "prototype" to "draft", meaning the community review phase (RFC) would start.
Do you want to change anything, or should we move to RFC?

@jkowalleck jkowalleck added this to the 1.7 milestone Mar 13, 2025
@Urist-McGit
Copy link
Author

@gernot-h any reservations? Otherwise I think we can continue to the RFC

@gernot-h
Copy link

Thanks, @Urist-McGit, for taking care! From my side, please proceed to RFC step!

@jkowalleck jkowalleck added draft RFC notice sent A public RFC notice was distributed to the CycloneDX mailing list for consideration request for comment ready for review and removed prototype labels Mar 16, 2025
@jkowalleck
Copy link
Member

RFC notice sent.

Public RFC period ends April 13, 2025

@jkowalleck jkowalleck added the promote to tc54 Promote to Ecma Technical Committee 54 label Apr 14, 2025
<reference type="component-analysis-report">
<url>http://example.com/extref/component-analysis-report</url>
<properties>
<property name="author">John Doe</property>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is confusing to me. What if the external source has a different value for author and timestamp?

Copy link

@gernot-h gernot-h Apr 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, but what exactly do you mean by "different values for author and timestamp"? This is an example for additional properties provided in the SBOM for this report. They might be added because this metadata isn't available from the external source or just because it saves us an additional query to the external server when I need this information when handling the SBOM.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Take externalReferences.type == bom. If there are differences in the value for properties (say author), then there is a question about source of truth. Caller has to make an additional query to the external server.

We use annotations attribute to add/store additional information about certain attributes. Any issues with that?

Copy link

@gernot-h gernot-h Apr 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, but how would how such additional information for an external reference differ from any other data points you provide for a component in your SBOM? Same problem would also apply for author or licenses or other properties of a component and most of them could usually also be looked up on a homepage or package repository. I think the idea of an SBOM is to document your understanding of your BOM in a central place, no-one protects you from providing wrong data there.

Regarding annotations: What we need is a machine-readable key/value store per external reference. Today, we mis-use the comment field of external references for storing such data, which obviously doesn't scale. I don't think using annotations would really improve that and also doesn't allow us to document these fields in our taxonomy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
draft promote to tc54 Promote to Ecma Technical Committee 54 proposed core enhancement ready for review request for comment RFC notice sent A public RFC notice was distributed to the CycloneDX mailing list for consideration RFC vote accepted
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE]: properties for externalReferences
4 participants