How to record OPTIONAL dynamic dependencies in an SBOM? #712
-
|
I can see the recent addition of the 'isExternal' flag, allowing documentation of external/extraneous dependencies: issue,PR. However, I am confused since an external component "is expected to be provided by the environment regardless of the component's .scope". Is there any provision for optional external components? I am writing an SBOM for a product, which by default does not require any external dependencies to operate. However, the product offers optional features, where an administrator configures the application to load a dynamic library, enabling extra abilities (For example, IODBC can be provided, and thus a feature is enabled to connect to an external database via ODBC). Each of these features is used by a minority of our customers. Given these are dynamic dependencies, they should have 'isExternal' set true. However, this would indicate to all customers these are expected, and the product would fail to operate without them, but this is not accurate and is not how most of our customers use the product -- in fact without a number of configuration options and environment variables being set, the product won't even try to connect to such dynamic dependencies. What is the intended way to denote such an optional dependency, since 'scope' seems to be ignored once 'isExternal' is set? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
|
I think that would be scope https://cyclonedx.org/docs/1.6/json/#components_items_scope is_external is for stuff like jvm, or interpreters i think. |
Beta Was this translation helpful? Give feedback.
-
|
the spec:
Let's examine the different parts:
conclusion - as it was intended by the authors of the spec: optional extetnal dependencies are expressed by combining |
Beta Was this translation helpful? Give feedback.
the spec:
isExternal- https://cyclonedx.org/docs/1.7/json/#components_items_scopescope- https://cyclonedx.org/docs/1.7/json/#components_items_scope