diff --git a/schema/bom-1.5.proto b/schema/bom-1.5.proto
index ec7d7e6a..4cae423c 100644
--- a/schema/bom-1.5.proto
+++ b/schema/bom-1.5.proto
@@ -123,16 +123,24 @@ message Component {
optional ReleaseNotes releaseNotes = 24;
}
-// Specifies the data classification.
-message DataClassification {
+// Specifies the data flow.
+message DataFlow {
// Specifies the flow direction of the data.
- DataFlow flow = 1;
- // SimpleContent value of element
+ DataFlowDirection flow = 1;
+ // Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed.
string value = 2;
+ // Name for the defined data
+ optional string name = 3;
+ // Short description of the data content and usage
+ optional string description = 4;
+ // The URI, URL, or BOM-Link of the components or services the data came in from
+ repeated string source = 5;
+ // The URI, URL, or BOM-Link of the components or services the data is sent to
+ repeated string destination = 6;
}
// 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.
-enum DataFlow {
+enum DataFlowDirection {
DATA_FLOW_NULL = 0;
DATA_FLOW_INBOUND = 1;
DATA_FLOW_OUTBOUND = 2;
@@ -481,7 +489,7 @@ message Service {
optional bool authenticated = 8;
// 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.
optional bool x_trust_boundary = 9;
- repeated DataClassification data = 10;
+ repeated DataFlow data = 10;
repeated LicenseChoice licenses = 11;
// Provides the ability to document external references related to the service.
repeated ExternalReference external_references = 12;
@@ -491,6 +499,8 @@ message Service {
repeated Property properties = 14;
// Specifies optional release notes.
optional ReleaseNotes releaseNotes = 15;
+ // The name of the trust zone the service resides in.
+ optional string trustZone = 16;
}
message Swid {
diff --git a/schema/bom-1.5.schema.json b/schema/bom-1.5.schema.json
index 12722528..9030494f 100644
--- a/schema/bom-1.5.schema.json
+++ b/schema/bom-1.5.schema.json
@@ -1160,12 +1160,17 @@
"title": "Crosses Trust Boundary",
"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."
},
+ "trustZone": {
+ "type": "string",
+ "title": "Trust Zone",
+ "description": "The name of the trust zone the service resides in."
+ },
"data": {
"type": "array",
"additionalItems": false,
- "items": {"$ref": "#/definitions/dataClassification"},
- "title": "Data Classification",
- "description": "Specifies the data classification."
+ "items": {"$ref": "#/definitions/dataFlow"},
+ "title": "Data",
+ "description": "Specifies the data flow, classification, and other relevant information."
},
"licenses": {
"type": "array",
@@ -1207,7 +1212,7 @@
}
}
},
- "dataClassification": {
+ "dataFlow": {
"type": "object",
"title": "Hash Objects",
"required": [
@@ -1217,7 +1222,7 @@
"additionalProperties": false,
"properties": {
"flow": {
- "$ref": "#/definitions/dataFlow",
+ "$ref": "#/definitions/dataFlowDirection",
"title": "Directional Flow",
"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."
},
@@ -1225,10 +1230,46 @@
"type": "string",
"title": "Classification",
"description": "Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed."
+ },
+ "name": {
+ "type": "string",
+ "title": "Name",
+ "description": "Name for the defined data",
+ "examples": [
+ "Credit card reporting"
+ ]
+ },
+ "description": {
+ "type": "string",
+ "title": "Description",
+ "description": "Short description of the data content and usage",
+ "examples": [
+ "Credit card information being exchanged in between the web app and the database"
+ ]
+ },
+ "source": {
+ "type": "array",
+ "additionalItems": false,
+ "items": {
+ "type": "string",
+ "format": "iri-reference"
+ },
+ "title": "Source",
+ "description": "The URI, URL, or BOM-Link of the components or services the data came in from"
+ },
+ "destination": {
+ "type": "array",
+ "additionalItems": false,
+ "items": {
+ "type": "string",
+ "format": "iri-reference"
+ },
+ "title": "Destination",
+ "description": "The URI, URL, or BOM-Link of the components or services the data is sent to"
}
}
},
- "dataFlow": {
+ "dataFlowDirection": {
"type": "string",
"enum": [
"inbound",
diff --git a/schema/bom-1.5.xsd b/schema/bom-1.5.xsd
index ac5a0d9b..f64bc7c6 100644
--- a/schema/bom-1.5.xsd
+++ b/schema/bom-1.5.xsd
@@ -1620,15 +1620,76 @@ limitations under the License.
A value of false indicates that by using the service, a trust boundary is not crossed.
+
+
+ The name of the trust zone the service resides in.
+
+
-
-
+
+
+
+
+ DEPRECATED: Specifies the data classification. THIS FIELD IS DEPRECATED AS OF v1.5. Use dataflow\classification instead
+
+
+
+
Specifies the data classification.
+
+
+
+
+ Specifies the data classification.
+
+
+
+
+ The URI, URL, or BOM-Link of the components or services the data came in from.
+
+
+
+
+
+
+
+
+
+ The URI, URL, or BOM-Link of the components or services the data is sent to.
+
+
+
+
+
+
+
+
+
+
+
+ Name for the defined data.
+
+
+
+
+
+
+ Short description of the data content and usage.
+
+
+
+
+
+ User-defined attributes may be used on this element as long as they
+ do not have the same name as an existing attribute used by the schema.
+
+
+
-
+
diff --git a/tools/src/test/resources/1.5/valid-saasbom-1.5.json b/tools/src/test/resources/1.5/valid-saasbom-1.5.json
new file mode 100644
index 00000000..929d1130
--- /dev/null
+++ b/tools/src/test/resources/1.5/valid-saasbom-1.5.json
@@ -0,0 +1,294 @@
+{
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.5",
+ "serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
+ "version": 1,
+ "metadata": {
+ "timestamp": "2021-01-10T12:00:00Z",
+ "component": {
+ "bom-ref": "acme-stock-application",
+ "type": "application",
+ "name": "Acme SaaSBOM Example",
+ "version": "2022-1"
+ }
+ },
+ "services": [
+ {
+ "bom-ref": "stock-ticker-service",
+ "provider": {
+ "name": "Acme Inc",
+ "url": [ "https://example.com" ]
+ },
+ "group": "com.example",
+ "name": "Stock Ticker Service",
+ "version": "2022-1",
+ "endpoints": [
+ "https://example.com/",
+ "https://example.com/app"
+ ],
+ "authenticated": true,
+ "trustZone": "Acme Public Zone",
+ "data": [
+ {
+ "name": "Consumer to Stock Service",
+ "description": "Traffic to/from consumer to service",
+ "classification": "Customer",
+ "flow": "bi-directional",
+ "source": [
+ "https://0.0.0.0"
+ ],
+ "destination": [
+ "https://0.0.0.0"
+ ]
+ },
+ {
+ "name": "Stock Service to MS-1",
+ "description": "Traffic to/from stock service to microservice-1",
+ "classification": "PII",
+ "flow": "bi-directional",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com"
+ ],
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com"
+ ]
+ },
+ {
+ "name": "Stock Service to MS-2",
+ "description": "Traffic to/from stock service to microservice-2",
+ "classification": "PIFI",
+ "flow": "bi-directional",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-2.example.com"
+ ],
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-2.example.com"
+ ]
+ },
+ {
+ "name": "Stock Service to MS-3",
+ "description": "Traffic to/from stock service to microservice-3",
+ "classification": "Public",
+ "flow": "bi-directional",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-3.example.com"
+ ],
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-3.example.com"
+ ]
+ }
+ ],
+ "externalReferences": [
+ {
+ "type": "documentation",
+ "url": "https://example.com/app/swagger"
+ }
+ ],
+ "services": [
+ {
+ "bom-ref": "ms-1.example.com",
+ "provider": {
+ "name": "Acme Inc",
+ "url": [ "https://example.com" ]
+ },
+ "group": "com.example",
+ "name": "Microservice 1",
+ "version": "2022-1",
+ "description": "Example Microservice",
+ "endpoints": [
+ "https://ms-1.example.com"
+ ],
+ "authenticated": true,
+ "trustZone": "Acme Private Zone",
+ "data": [
+ {
+ "name": "Stock Service to MS-1",
+ "description": "Traffic to/from stock service to microservice-1",
+ "classification": "PII",
+ "flow": "bi-directional",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ ],
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ ]
+ },
+ {
+ "name": "MS-1 to Database",
+ "description": "Traffic to/from microservice-1 to database",
+ "classification": "PII",
+ "flow": "bi-directional",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1-pgsql.example.com"
+ ],
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1-pgsql.example.com"
+ ]
+ }
+ ],
+ "externalReferences": [
+ {
+ "type": "documentation",
+ "url": "https://ms-1.example.com/swagger"
+ }
+ ]
+ },
+ {
+ "bom-ref": "ms-2.example.com",
+ "provider": {
+ "name": "Acme Inc",
+ "url": [ "https://example.com" ]
+ },
+ "group": "com.example",
+ "name": "Microservice 2",
+ "version": "2022-1",
+ "description": "Example Microservice",
+ "endpoints": [
+ "https://ms-2.example.com"
+ ],
+ "authenticated": true,
+ "trustZone": "Acme Private Zone",
+ "data": [
+ {
+ "name": "Stock Service to MS-2",
+ "description": "Traffic to/from stock service to microservice-2",
+ "classification": "PIFI",
+ "flow": "bi-directional",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ ],
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ ]
+ }
+ ],
+ "externalReferences": [
+ {
+ "type": "documentation",
+ "url": "https://ms-2.example.com/swagger"
+ }
+ ]
+ },
+ {
+ "bom-ref": "ms-3.example.com",
+ "provider": {
+ "name": "Acme Inc",
+ "url": [ "https://example.com" ]
+ },
+ "group": "com.example",
+ "name": "Microservice 3",
+ "version": "2022-1",
+ "description": "Example Microservice",
+ "endpoints": [
+ "https://ms-3.example.com"
+ ],
+ "authenticated": true,
+ "trustZone": "Acme Private Zone",
+ "data": [
+ {
+ "name": "Stock Service to MS-3",
+ "description": "Traffic to/from stock service to microservice-3",
+ "classification": "Public",
+ "flow": "bi-directional",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ ],
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ ]
+ },
+ {
+ "name": "MS-3 to S3",
+ "description": "Data pushed from microservice-3 to S3 bucket",
+ "classification": "Public",
+ "flow": "outbound",
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#s3-example.amazon.com"
+ ]
+ }
+ ],
+ "externalReferences": [
+ {
+ "type": "documentation",
+ "url": "https://ms-3.example.com/swagger"
+ }
+ ]
+ },
+ {
+ "bom-ref": "ms-1-pgsql.example.com",
+ "group": "org.postgresql",
+ "name": "Postgres",
+ "version": "14.1",
+ "description": "Postgres database for Microservice #1",
+ "endpoints": [
+ "https://ms-1-pgsql.example.com:5432"
+ ],
+ "authenticated": true,
+ "trustZone": "Acme Private Zone",
+ "data": [
+ {
+ "name": "MS-1 to Database",
+ "description": "Traffic to/from microservice-1 to database",
+ "classification": "PII",
+ "flow": "bi-directional",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com"
+ ],
+ "destination": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com"
+ ]
+ }
+ ]
+ },
+ {
+ "bom-ref": "s3-example.amazon.com",
+ "group": "com.amazon",
+ "name": "S3",
+ "description": "S3 bucket",
+ "endpoints": [
+ "https://s3-example.amazon.com"
+ ],
+ "authenticated": true,
+ "trustZone": "Public Internet",
+ "data": [
+ {
+ "name": "MS-3 to S3",
+ "description": "Data pushed from microservice-3 to S3 bucket",
+ "classification": "Public",
+ "flow": "inbound",
+ "source": [
+ "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-3.example.com"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "acme-stock-application",
+ "dependsOn": [ "stock-ticker-service" ]
+ },
+ {
+ "ref": "stock-ticker-service",
+ "dependsOn": [
+ "ms-1.example.com",
+ "ms-2.example.com",
+ "ms-3.example.com"
+ ]
+ },
+ {
+ "ref": "ms-1.example.com",
+ "dependsOn": [ "ms-1-pgsql.example.com" ]
+ },
+ {
+ "ref": "ms-2.example.com",
+ "dependsOn": [ ]
+ },
+ {
+ "ref": "ms-3.example.com",
+ "dependsOn": [ "s3-example.amazon.com" ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tools/src/test/resources/1.5/valid-saasbom-1.5.textproto b/tools/src/test/resources/1.5/valid-saasbom-1.5.textproto
new file mode 100644
index 00000000..6b025220
--- /dev/null
+++ b/tools/src/test/resources/1.5/valid-saasbom-1.5.textproto
@@ -0,0 +1,195 @@
+spec_version: "1.5"
+version: 1
+serial_number: "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79"
+metadata {
+ timestamp {
+ seconds: 3173618478
+ nanos: 3
+ }
+ component {
+ type: CLASSIFICATION_APPLICATION
+ bom_ref: "acme-stock-application"
+ name: "Acme SaaSBOM Example"
+ version: "2022-1"
+ }
+}
+services {
+ bom_ref: "stock-ticker-service"
+ provider {
+ name: "Acme Inc"
+ url: "https://example.com"
+ }
+ group: "com.example"
+ name: "Stock Ticker Service"
+ version:"2022-1"
+ endpoints: "https://example.com/"
+ endpoints: "https://example.com/app"
+ authenticated: true
+ trustZone: "Acme Public Zone"
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "Customer"
+ name: "Consumer to Stock Service",
+ description: "Traffic to/from consumer to service"
+ source: "https://0.0.0.0"
+ destination: "https://0.0.0.0"
+ }
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "PII"
+ name: "Stock Service to MS-1"
+ description: "Traffic to/from stock service to microservice-1"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com"
+ }
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "PIFI"
+ name: "Stock Service to MS-2"
+ description: "Traffic to/from stock service to microservice-2"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-2.example.com"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-2.example.com"
+ }
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "Public"
+ name: "Stock Service to MS-3"
+ description: "Traffic to/from stock service to microservice-3"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-3.example.com"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-3.example.com"
+ }
+ external_references {
+ type: EXTERNAL_REFERENCE_TYPE_DOCUMENTATION
+ url: "https://example.com/app/swagger"
+ }
+ services {
+ bom_ref: "ms-1.example.com"
+ provider {
+ name: "Acme Inc"
+ url: "https://example.com"
+ }
+ group: "com.example"
+ name: "Microservice 1"
+ version:"2022-1"
+ endpoints: "https://ms-1.example.com"
+ authenticated: true
+ trustZone: "Acme Private Zone"
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "PII"
+ name: "Stock Service to MS-1"
+ description: "Traffic to/from stock service to microservice-1"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ }
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "PII"
+ name: "MS-1 to Database"
+ description: "Traffic to/from microservice-1 to database"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1-pgsql.example.com"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1-pgsql.example.com"
+ }
+ external_references {
+ type: EXTERNAL_REFERENCE_TYPE_DOCUMENTATION
+ url: "https://ms-1.example.com/swagger"
+ }
+ }
+ services {
+ bom_ref: "ms-2.example.com"
+ provider {
+ name: "Acme Inc"
+ url: "https://example.com"
+ }
+ group: "com.example"
+ name: "Microservice 2"
+ version:"2022-1"
+ endpoints: "https://ms-2.example.com"
+ authenticated: true
+ trustZone: "Acme Private Zone"
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "PIFI"
+ name: "Stock Service to MS-2"
+ description: "Traffic to/from stock service to microservice-2"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ }
+ external_references {
+ type: EXTERNAL_REFERENCE_TYPE_DOCUMENTATION
+ url: "https://ms-2.example.com/swagger"
+ }
+ }
+ services {
+ bom_ref: "ms-3.example.com"
+ provider {
+ name: "Acme Inc"
+ url: "https://example.com"
+ }
+ group: "com.example"
+ name: "Microservice 3"
+ version:"2022-1"
+ endpoints: "https://ms-3.example.com"
+ authenticated: true
+ trustZone: "Acme Private Zone"
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "Public"
+ name: "Stock Service to MS-3"
+ description: "Traffic to/from stock service to microservice-3"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service"
+ }
+ data {
+ flow: DATA_FLOW_OUTBOUND
+ value: "Public"
+ name: "MS-3 to S3"
+ description: "Data pushed from microservice-3 to S3 bucket"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#s3-example.amazon.com"
+ }
+ external_references {
+ type: EXTERNAL_REFERENCE_TYPE_DOCUMENTATION
+ url: "https://ms-3.example.com/swagger"
+ }
+ }
+ services {
+ bom_ref: "ms-1-pgsql.example.com"
+ group: "org.postgresql"
+ name: "Postgres"
+ version:"14.1"
+ description: "Postgres database for Microservice #1"
+ endpoints: "https://ms-1-pgsql.example.com:5432"
+ authenticated: true
+ trustZone: "Acme Private Zone"
+ data {
+ flow: DATA_FLOW_BI_DIRECTIONAL
+ value: "PII"
+ name: "MS-1 to Database"
+ description: "Traffic to/from microservice-1 to database"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com"
+ destination: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com"
+ }
+ }
+ services {
+ bom_ref: "s3-example.amazon.com"
+ group: "com.amazon"
+ name: "S3"
+ description: "S3 bucket"
+ endpoints: "https://s3-example.amazon.com"
+ authenticated: true
+ trustZone: "Public Internet"
+ data {
+ flow: DATA_FLOW_INBOUND
+ value: "PII"
+ name: "MS-3 to S3"
+ description: "Data pushed from microservice-3 to S3 bucket"
+ source: "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-3.example.com"
+ }
+ }
+}
+dependencies {
+ ref: "pkg:maven/com.acme/stock-java-client@1.0.12"
+ dependencies {
+ ref: "b2a46a4b-8367-4bae-9820-95557cfe03a8"
+ }
+}
diff --git a/tools/src/test/resources/1.5/valid-saasbom-1.5.xml b/tools/src/test/resources/1.5/valid-saasbom-1.5.xml
new file mode 100644
index 00000000..d8101afc
--- /dev/null
+++ b/tools/src/test/resources/1.5/valid-saasbom-1.5.xml
@@ -0,0 +1,230 @@
+
+
+
+ 2021-01-10T12:00:00Z
+
+ Acme SaaSBOM Example
+ 2022-1
+
+
+
+
+
+ Acme Inc
+ https://example.com
+
+ com.example
+ Stock ticker Service
+
+ https://example.com/
+ https://example.com/app
+
+ true
+ Acme Public Zone
+
+
+ Customer
+
+
+ https://0.0.0.0
+
+
+
+ PII
+
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com
+
+
+
+ PIFI
+
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-2.example.com
+
+
+
+ Public
+
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-3.example.com
+
+
+
+
+
+ https://example.com/app/swagger
+
+
+
+
+
+ Acme Inc
+ https://example.com
+
+ com.example
+ Microservice 1
+
+ https://ms-1.example.com
+
+ true
+ Acme Private Zone
+
+
+ PII
+
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service
+
+
+
+ PII
+
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1-pgsql.example.com
+
+
+
+
+
+ https://ms-1.example.com/swagger
+
+
+
+
+
+ Acme Inc
+ https://example.com
+
+ com.example
+ Microservice 2
+
+ https://ms-2.example.com
+
+ true
+ Acme Private Zone
+
+
+ PII
+
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service
+
+
+
+
+
+ https://ms-2.example.com/swagger
+
+
+
+
+
+ Acme Inc
+ https://example.com
+
+ com.example
+ Microservice 3
+
+ https://ms-3.example.com
+
+ true
+ Acme Private Zone
+
+
+ PII
+
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#stock-ticker-service
+
+
+
+ Public
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#s3-example.amazon.com
+
+
+
+
+
+ https://ms-3.example.com/swagger
+
+
+
+
+ org.postgresql
+ Postgres
+ 14.1
+ Postgres database for Microservice #1
+
+ https://ms-1-pgsql.example.com:5432
+
+ true
+ Acme Private Zone
+
+
+ PII
+
+
+ urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#ms-1.example.com
+
+
+
+
+
+ com.amazon
+ S3
+ S3 bucket
+
+ https://s3-example.amazon.com
+
+ true
+ Public Internet
+
+
+ Public
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+