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