diff --git a/schema/bom-1.5.proto b/schema/bom-1.5.proto index 3287ad0e..2e8d710b 100644 --- a/schema/bom-1.5.proto +++ b/schema/bom-1.5.proto @@ -425,6 +425,8 @@ message OrganizationalContact { optional string email = 2; // The phone number of the contact. optional string phone = 3; + // An optional identifier which can be used to reference the object elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element. + optional string bom_ref = 4; } message OrganizationalEntity { @@ -434,6 +436,8 @@ message OrganizationalEntity { repeated string url = 2; // A contact person at the organization. Multiple contacts are allowed. repeated OrganizationalContact contact = 3; + // An optional identifier which can be used to reference the object elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element. + optional string bom_ref = 4; } enum PatchClassification { diff --git a/schema/bom-1.5.schema.json b/schema/bom-1.5.schema.json index eba1fbc8..aee24d81 100644 --- a/schema/bom-1.5.schema.json +++ b/schema/bom-1.5.schema.json @@ -251,6 +251,11 @@ "description": "", "additionalProperties": false, "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, "name": { "type": "string", "title": "Name", @@ -284,6 +289,11 @@ "description": "", "additionalProperties": false, "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, "name": { "type": "string", "title": "Name", diff --git a/schema/bom-1.5.xsd b/schema/bom-1.5.xsd index 51c4cf30..84c54ff9 100644 --- a/schema/bom-1.5.xsd +++ b/schema/bom-1.5.xsd @@ -156,6 +156,14 @@ limitations under the License. + + + + An optional identifier which can be used to reference the object elsewhere in the BOM. + Uniqueness is enforced within all elements and children of the root-level bom element. + + + User-defined attributes may be used on this element as long as they @@ -237,6 +245,14 @@ limitations under the License. + + + + An optional identifier which can be used to reference the object elsewhere in the BOM. + Uniqueness is enforced within all elements and children of the root-level bom element. + + + User-defined attributes may be used on this element as long as they diff --git a/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.json b/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.json index 6323f000..c01cd7cc 100644 --- a/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.json +++ b/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.json @@ -5,12 +5,14 @@ "version": 1, "metadata": { "manufacture": { + "bom-ref": "manufacturer-1", "name": "Acme, Inc.", "url": [ "https://example.com" ], "contact": [ { + "bom-ref": "contact-1", "name": "Acme Professional Services", "email": "professional.services@example.com" } diff --git a/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.textproto b/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.textproto index 9482b219..55bcc6dc 100644 --- a/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.textproto +++ b/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.textproto @@ -8,6 +8,8 @@ metadata { contact { name: "Acme Professional Services" email: "professional.services@example.com" + bom_ref: "contact-1" } + bom_ref: "manufacturer-1" } } diff --git a/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.xml b/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.xml index 79493915..1a76f2db 100644 --- a/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.xml +++ b/tools/src/test/resources/1.5/valid-metadata-manufacture-1.5.xml @@ -1,10 +1,10 @@ - + Acme, Inc. https://example.com - + Acme Professional Services professional.services@example.com diff --git a/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.json b/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.json index e445641f..47c4f007 100644 --- a/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.json +++ b/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.json @@ -5,12 +5,14 @@ "version": 1, "metadata": { "supplier": { + "bom-ref": "supplier-1", "name": "Acme, Inc.", "url": [ "https://example.com" ], "contact": [ { + "bom-ref": "contact-1", "name": "Acme Distribution", "email": "distribution@example.com" } diff --git a/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.textproto b/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.textproto index c980f312..6986b7f6 100644 --- a/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.textproto +++ b/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.textproto @@ -8,6 +8,8 @@ metadata { contact { name: "Acme Distribution" email: "distribution@example.com" + bom_ref: "contact-1" } + bom_ref: "supplier-1" } } diff --git a/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.xml b/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.xml index 2ed3c913..677258c3 100644 --- a/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.xml +++ b/tools/src/test/resources/1.5/valid-metadata-supplier-1.5.xml @@ -1,10 +1,10 @@ - + Acme, Inc. https://example.com - + Acme Distribution distribution@example.com