Modularity in CycloneDX enables components to be included in a BOM while allowing their detailed BOMs to be externalized and referenced separately. This approach simplifies complex systems by promoting a clean separation of concerns, where each component’s specific details can be maintained independently. Externalizing component BOMs also enhances scalability, as updates to a component’s BOM can be managed without altering the parent BOM. Additionally, it reduces redundancy and file size, as multiple BOMs can reference the same externalized component BOM. This promotes reusability, improves clarity, and supports efficient collaboration across teams and organizations in managing intricate software supply chains.
{
"$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
"version": 1,
"metadata": {
"timestamp": "2025-01-21T12:00:00Z",
"component": {
"name": "Billing Solution",
"bom-ref": "billing-solution",
"type": "application",
"components": [
{
"type": "application",
"name": "Product A",
"version": "3.2.0",
"externalReferences": [
{
"type": "bom",
"url": "https://example.com/boms/product-a-3.2.0.cdx.bom"
}
]
},
{
"type": "application",
"name": "Product B",
"version": "3.0.1",
"externalReferences": [
{
"type": "bom",
"url": "https://example.com/boms/product-b-3.0.1.cdx.bom"
}
]
},
{
"type": "application",
"name": "Product C",
"version": "5.7.2",
"externalReferences": [
{
"type": "bom",
"url": "https://example.com/boms/product-c-5.7.2.cdx.bom"
}
]
}
]
},
"manufacturer": {
"name": "Acme Inc"
},
"supplier": {
"name": "Acme Inc"
}
}
}