Skip to content

Commit 2e4c17d

Browse files
Expanded service dataflow support
Signed-off-by: Steve Springett <[email protected]>
1 parent 888c1de commit 2e4c17d

File tree

6 files changed

+788
-11
lines changed

6 files changed

+788
-11
lines changed

schema/bom-1.5.proto

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,19 @@ message Component {
122122
}
123123

124124
// Specifies the data classification.
125-
message DataClassification {
125+
message DataClassification { // This is actually the data flow, but unable to change the name due to backward compatability
126126
// Specifies the flow direction of the data.
127127
DataFlow flow = 1;
128-
// SimpleContent value of element
128+
// Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed.
129129
string value = 2;
130+
// Name for the defined data
131+
optional string name = 3;
132+
// Short description of the data content and usage
133+
optional string description = 4;
134+
// The URI, URL, or BOM-Link of the components or services the data came in from
135+
repeated string source = 5;
136+
// The URI, URL, or BOM-Link of the components or services the data is sent to
137+
repeated string destination = 6;
130138
}
131139

132140
// Specifies the flow direction of the data. Valid values are: inbound, outbound, bi-directional, and unknown. Direction is relative to the service. Inbound flow states that data enters the service. Outbound flow states that data leaves the service. Bi-directional states that data flows both ways, and unknown states that the direction is not known.
@@ -461,6 +469,8 @@ message Service {
461469
repeated Property properties = 14;
462470
// Specifies optional release notes.
463471
optional ReleaseNotes releaseNotes = 15;
472+
// The name of the trust zone the service resides in.
473+
optional string trustZone = 16;
464474
}
465475

466476
message Swid {

schema/bom-1.5.schema.json

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,12 +1145,17 @@
11451145
"title": "Crosses Trust Boundary",
11461146
"description": "A boolean value indicating if use of the service crosses a trust zone or boundary. A value of true indicates that by using the service, a trust boundary is crossed. A value of false indicates that by using the service, a trust boundary is not crossed."
11471147
},
1148+
"trustZone": {
1149+
"type": "string",
1150+
"title": "Trust Zone",
1151+
"description": "The name of the trust zone the service resides in."
1152+
},
11481153
"data": {
11491154
"type": "array",
11501155
"additionalItems": false,
1151-
"items": {"$ref": "#/definitions/dataClassification"},
1152-
"title": "Data Classification",
1153-
"description": "Specifies the data classification."
1156+
"items": {"$ref": "#/definitions/dataFlow"},
1157+
"title": "Data",
1158+
"description": "Specifies the data flow, classification, and other relevant information."
11541159
},
11551160
"licenses": {
11561161
"type": "array",
@@ -1192,7 +1197,7 @@
11921197
}
11931198
}
11941199
},
1195-
"dataClassification": {
1200+
"dataFlow": {
11961201
"type": "object",
11971202
"title": "Hash Objects",
11981203
"required": [
@@ -1202,18 +1207,54 @@
12021207
"additionalProperties": false,
12031208
"properties": {
12041209
"flow": {
1205-
"$ref": "#/definitions/dataFlow",
1210+
"$ref": "#/definitions/dataFlowDirection",
12061211
"title": "Directional Flow",
12071212
"description": "Specifies the flow direction of the data. Direction is relative to the service. Inbound flow states that data enters the service. Outbound flow states that data leaves the service. Bi-directional states that data flows both ways, and unknown states that the direction is not known."
12081213
},
12091214
"classification": {
12101215
"type": "string",
12111216
"title": "Classification",
12121217
"description": "Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed."
1218+
},
1219+
"name": {
1220+
"type": "string",
1221+
"title": "Name",
1222+
"description": "Name for the defined data",
1223+
"examples": [
1224+
"Credit card reporting"
1225+
]
1226+
},
1227+
"description": {
1228+
"type": "string",
1229+
"title": "Description",
1230+
"description": "Short description of the data content and usage",
1231+
"examples": [
1232+
"Credit card information being exchanged in between the web app and the database"
1233+
]
1234+
},
1235+
"source": {
1236+
"type": "array",
1237+
"additionalItems": false,
1238+
"items": {
1239+
"type": "string",
1240+
"format": "iri-reference"
1241+
},
1242+
"title": "Source",
1243+
"description": "The URI, URL, or BOM-Link of the components or services the data came in from"
1244+
},
1245+
"destination": {
1246+
"type": "array",
1247+
"additionalItems": false,
1248+
"items": {
1249+
"type": "string",
1250+
"format": "iri-reference"
1251+
},
1252+
"title": "Destination",
1253+
"description": "The URI, URL, or BOM-Link of the components or services the data is sent to"
12131254
}
12141255
}
12151256
},
1216-
"dataFlow": {
1257+
"dataFlowDirection": {
12171258
"type": "string",
12181259
"enum": [
12191260
"inbound",

schema/bom-1.5.xsd

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1544,15 +1544,66 @@ limitations under the License.
15441544
A value of false indicates that by using the service, a trust boundary is not crossed.</xs:documentation>
15451545
</xs:annotation>
15461546
</xs:element>
1547+
<xs:element name="trustZone" type="xs:string" minOccurs="0" maxOccurs="1">
1548+
<xs:annotation>
1549+
<xs:documentation>The name of the trust zone the service resides in.</xs:documentation>
1550+
</xs:annotation>
1551+
</xs:element>
15471552
<xs:element name="data" minOccurs="0" maxOccurs="1">
15481553
<xs:complexType>
1549-
<xs:sequence minOccurs="0" maxOccurs="unbounded">
1550-
<xs:element name="classification" type="bom:dataClassificationType">
1554+
<xs:choice>
1555+
<xs:sequence minOccurs="0" maxOccurs="unbounded">
1556+
<xs:element name="classification" type="bom:dataClassificationType">
1557+
<xs:annotation>
1558+
<xs:documentation>DEPRECATED: Specifies the data classification. THIS FIELD IS DEPRECATED AS OF v1.5. Use dataflow\classification instead</xs:documentation>
1559+
</xs:annotation>
1560+
</xs:element>
1561+
</xs:sequence>
1562+
<xs:element name="dataflow" minOccurs="0" maxOccurs="unbounded">
15511563
<xs:annotation>
15521564
<xs:documentation>Specifies the data classification.</xs:documentation>
15531565
</xs:annotation>
1566+
<xs:complexType>
1567+
<xs:sequence minOccurs="0" maxOccurs="1">
1568+
<xs:element name="classification" type="bom:dataClassificationType" minOccurs="0" maxOccurs="1">
1569+
<xs:annotation>
1570+
<xs:documentation>Specifies the data classification.</xs:documentation>
1571+
</xs:annotation>
1572+
</xs:element>
1573+
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1">
1574+
<xs:annotation>
1575+
<xs:documentation>Name for the defined data.</xs:documentation>
1576+
</xs:annotation>
1577+
</xs:element>
1578+
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1">
1579+
<xs:annotation>
1580+
<xs:documentation>Short description of the data content and usage.</xs:documentation>
1581+
</xs:annotation>
1582+
</xs:element>
1583+
<xs:element name="source" minOccurs="0" maxOccurs="1">
1584+
<xs:annotation>
1585+
<xs:documentation>The URI, URL, or BOM-Link of the components or services the data came in from.</xs:documentation>
1586+
</xs:annotation>
1587+
<xs:complexType>
1588+
<xs:sequence minOccurs="0" maxOccurs="unbounded">
1589+
<xs:element name="url" type="xs:anyURI"/>
1590+
</xs:sequence>
1591+
</xs:complexType>
1592+
</xs:element>
1593+
<xs:element name="destination" minOccurs="0" maxOccurs="1">
1594+
<xs:annotation>
1595+
<xs:documentation>The URI, URL, or BOM-Link of the components or services the data is sent to.</xs:documentation>
1596+
</xs:annotation>
1597+
<xs:complexType>
1598+
<xs:sequence minOccurs="0" maxOccurs="unbounded">
1599+
<xs:element name="url" type="xs:anyURI"/>
1600+
</xs:sequence>
1601+
</xs:complexType>
1602+
</xs:element>
1603+
</xs:sequence>
1604+
</xs:complexType>
15541605
</xs:element>
1555-
</xs:sequence>
1606+
</xs:choice>
15561607
</xs:complexType>
15571608
</xs:element>
15581609
<xs:element name="licenses" type="bom:licenseChoiceType" minOccurs="0" maxOccurs="1"/>

0 commit comments

Comments
 (0)