diff --git a/README.md b/README.md
index adf96cca..927e6797 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,9 @@
# StartLeft
+![Supported python versions](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11-blue)
+![Software Quality Assurance](https://github.com/iriusrisk/startleft/actions/workflows/qa.yml/badge.svg)
![Semgrep scan with owasp-top-ten & cwe-top-25](https://github.com/iriusrisk/startleft/actions/workflows/semgrep.yml/badge.svg)
![Documentation](https://github.com/iriusrisk/startleft/actions/workflows/documentation.yml/badge.svg)
-![Software Quality Assurance](https://github.com/iriusrisk/startleft/actions/workflows/qa.yml/badge.svg)
**StartLeft** is an automation tool for **generating Threat Models** written in the
[Open Threat Model (OTM)](http://iriusrisk.github.io/startleft/site/Open-Threat-Model-%28OTM%29/)
diff --git a/_sl_build/modules.py b/_sl_build/modules.py
index 7f98a870..de9296c2 100644
--- a/_sl_build/modules.py
+++ b/_sl_build/modules.py
@@ -4,7 +4,8 @@
STARTLEFT_MODULE = {'name': 'startleft', 'type': 'general', 'allowed_imports': ['slp_base', 'otm', 'sl_util']}
# TODO Startleft needs to depend on TF and CFT processors until a decision is token about the search function
-STARTLEFT_MODULE['allowed_imports'].extend(['slp_cft', 'slp_tf'])
+# TODO Startleft needs to depend on VISIO processors until a decision is token about the summary function
+STARTLEFT_MODULE['allowed_imports'].extend(['slp_cft', 'slp_tf', 'slp_visio'])
# TODO Dependency between otm and sl_util must be removed
OTM_MODULE = {'name': 'otm', 'type': 'general', 'allowed_imports': ['sl_util']}
@@ -19,7 +20,9 @@
{'name': 'slp_tfplan', 'type': 'processor', 'provider_type': 'TFPLAN', 'allowed_imports': _slp_allowed_imports},
{'name': 'slp_visio', 'type': 'processor', 'provider_type': 'VISIO', 'allowed_imports': _slp_allowed_imports},
{'name': 'slp_visio', 'type': 'processor', 'provider_type': 'LUCID', 'allowed_imports': _slp_allowed_imports},
- {'name': 'slp_mtmt', 'type': 'processor', 'provider_type': 'MTMT', 'allowed_imports': _slp_allowed_imports}
+ {'name': 'slp_mtmt', 'type': 'processor', 'provider_type': 'MTMT', 'allowed_imports': _slp_allowed_imports},
+ # TODO Set type to processor to make the endpoint available
+ {'name': 'slp_drawio', 'provider_type': 'DRAWIO', 'allowed_imports': _slp_allowed_imports}
]
"""
diff --git a/deployment/Dockerfile.application b/deployment/Dockerfile.application
index f581ebf7..2bb190a1 100644
--- a/deployment/Dockerfile.application
+++ b/deployment/Dockerfile.application
@@ -1,4 +1,4 @@
-FROM python:3.8-alpine
+FROM python:3.8-alpine AS startleft-base
WORKDIR /usr/src/app
@@ -15,9 +15,21 @@ COPY . .
RUN pip install .
-RUN rm -r ../app/*
-# Remove not needed dependencies for runtime
-RUN apk del git geos-dev re2-dev py3-pybind11-dev
+FROM python:3.8-alpine
+
+WORKDIR /app
+
+RUN apk update && \
+ apk add libmagic && \
+ apk add re2 && \
+ apk add graphviz && \
+ apk add lapack && \
+ apk add cblas && \
+ apk add geos
+
+COPY --from=startleft-base /usr/local/lib/python3.8/site-packages /usr/local/lib/python3.8/site-packages
+
+COPY --from=startleft-base /usr/local/bin/startleft /usr/local/bin/startleft
CMD ["startleft", "server", "--host", "0.0.0.0"]
diff --git a/docs/Quickstart-Guide-for-Beginners.md b/docs/Quickstart-Guide-for-Beginners.md
index cbea97c0..e216c921 100644
--- a/docs/Quickstart-Guide-for-Beginners.md
+++ b/docs/Quickstart-Guide-for-Beginners.md
@@ -5,7 +5,7 @@ some commands, set up the REST API and, in summary, familiarize yourself with th
## Prerequisites
---
-* Install the **[latest version of Python](https://www.python.org/downloads/)**.
+* Install a **[Python version between 3.8 and 3.11](https://www.python.org/downloads/)**.
* Install **[pip3](https://pip.pypa.io/en/stable/installation/)**.
* Install **[git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).**
* Install **[graphviz and graphviz-dev](https://pygraphviz.github.io/documentation/stable/install.html#ubuntu-and-debian).**
diff --git a/docs/integration/Quickstart-Guide-for-Integrations.md b/docs/integration/Quickstart-Guide-for-Integrations.md
index cb6d9789..3b354899 100644
--- a/docs/integration/Quickstart-Guide-for-Integrations.md
+++ b/docs/integration/Quickstart-Guide-for-Integrations.md
@@ -59,7 +59,7 @@ git checkout release/1.5.0
Now, we can create the StartLeft image:
```shell
-docker build . -f deployment/Dockerfile.docs.application.application -t startleft
+docker build . -f deployment/Dockerfile.application -t startleft
```
And, finally, we can run the docker container for the image we have just generated. Notice that you can select the
diff --git a/docs/startleft-processors/diagram/Lucidchart-support.md b/docs/startleft-processors/diagram/Lucidchart-support.md
index 84eff035..53fe3be9 100644
--- a/docs/startleft-processors/diagram/Lucidchart-support.md
+++ b/docs/startleft-processors/diagram/Lucidchart-support.md
@@ -28,6 +28,25 @@ About the parsing logic:
* Dataflows are calculated based on their position, what means that they do not necessarily need to _touch_ origin
or target shapes, but they have some tolerance.
+## Catch All Configuration
+This processor includes an exclusive functionality to activate the mapping for all the shapes not included in the components' mapper section.
+All the unknown shapes will be mapped to the type defined under the `catch_all` property
+```yaml
+configuration:
+ catch_all: empty-component
+```
+
+#### Skip
+This configuration defines a list of resources that will never be mapped.
+```yaml
+configuration:
+ skip:
+ - AmazonCloudWatch
+ - AmazonDynamoDB
+ - AmazonRoute53
+ - DataSharesAzure2021
+```
+
## An example
In this example, we can see a Lucidchart diagram which includes different types of elements.
@@ -68,8 +87,6 @@ Then, we can map the generic shapes by name in a custom mapping file:
- label: Android
type: android-device-client
-
- dataflows: []
```
The expected result for this case should be an OTM like this:
@@ -254,7 +271,7 @@ curl --location --request POST localhost:5000/api/v1/startleft/diagram \
### Command line usage
You can also use the Command Line option for this example, with the files downloaded in the previous section.
-Make sure StartLeft is [properly installed](../../../Quickstart-Guide-for-Beginners/#install-startleft)
+Make sure StartLeft is [properly installed](../../Quickstart-Guide-for-Beginners.md#install-startleft)
and execute the following command:
```shell
diff --git a/docs/startleft-processors/diagram/Visio-Mapping.md b/docs/startleft-processors/diagram/Visio-Mapping.md
index ec6f449a..039c96ab 100644
--- a/docs/startleft-processors/diagram/Visio-Mapping.md
+++ b/docs/startleft-processors/diagram/Visio-Mapping.md
@@ -55,10 +55,11 @@ arrays for the mappings of each type of element:
```yaml
trustzones: []
components: []
-dataflows: []
+configuration: {}
```
-Each of these arrays contains the information for mapping shapes into TrustZones, Components or Dataflows, respectively.
+Each of these arrays contains the information for mapping shapes into TrustZones, Components, or configure
+particular behavior for the processor.
Also note that all three are mandatory and have to be included in each mapping file, even if they only contain an empty array.
### Mapping TrustZones
@@ -353,8 +354,7 @@ The resulting OTM will be as follows:
More info in the official Microsoft documentation.
### Mapping DataFlows
-Despite the fact that a `dataflows` tag is already defined in the mapping file structure, and it is required by the schema,
-the DataFlows mapping process is fixed and not configurable. Basically, it takes all the arrows in the Visio source that connect
+The DataFlows mapping process is fixed and not configurable. Basically, it takes all the arrows in the Visio source that connect
components that are mapped and create a DataFlow for them. If some arrow connects shapes that are not mapped, the
DataFlow is not created. This can be easily understood with the following picture:
@@ -388,7 +388,7 @@ All these functionalities are available to map both, components and TrustZones.
This configuration sets all the shapes of name/type `AmazonS3` or `AmazonSimpleStorageServiceS3` to components of type `s3`
-#### Mapping by a Regex
+### Mapping by a Regex
```yaml
- label: {$regex: ^AWS Region:.*$}
diff --git a/docs/startleft-processors/diagram/Visio-Quickstart.md b/docs/startleft-processors/diagram/Visio-Quickstart.md
index ee5393f5..20ad2944 100644
--- a/docs/startleft-processors/diagram/Visio-Quickstart.md
+++ b/docs/startleft-processors/diagram/Visio-Quickstart.md
@@ -100,8 +100,6 @@ components:
- label: Database
type: rds
-
-dataflows: []
```
On the other hand, for this specific request, you need to provide a **custom mapping file** which contains the
@@ -119,8 +117,6 @@ components:
- label: My Custom VPC
type: empty-component
-
-dataflows: []
```
The result of sending to StartLeft this diagram with these mapping files would be an OTM with all the components we
diff --git a/docs/startleft-processors/diagram/Visio-Summary.md b/docs/startleft-processors/diagram/Visio-Summary.md
new file mode 100644
index 00000000..94bcb470
--- /dev/null
+++ b/docs/startleft-processors/diagram/Visio-Summary.md
@@ -0,0 +1,104 @@
+# What is Visio Summary?
+
+---
+
+> Visio Summary is a tool available at our Command Line Interface for retrieving useful info from VSDX files.
+
+This tool can retrieve all the shapes' information available (type, name)
+and their candidate OTM type by emulating the parse method.
+
+You can find [here](../../usage/Command-Line-Interface.md#summary) a complete explanation of this CLI function.
+
+## Summary Options
+This summary tool can be executed with multiple configurations:
+
+
+### without mapping file
+---
+!!! note ""
+
+ The summary retrieves all the availables shapes in the VSDX files without their candidate OTM type.
+
+=== "CLI execution"
+ ```shell
+ startleft summary \
+ --diagram-type VISIO \
+ examples/visio/aws-with-tz-and-vpc.vsdx
+ ```
+
+### by `file path`
+---
+!!! note ""
+
+ The summary is executed against a unique Visio file.
+
+=== "CLI execution"
+ ```shell
+ startleft summary \
+ --diagram-type VISIO \
+ --default-mapping-file examples/visio/iriusrisk-visio-aws-mapping.yaml \
+ examples/visio/aws-with-tz-and-vpc.vsdx
+ ```
+
+### by `multiple file path`
+---
+!!! note ""
+
+ The summary is executed against multiple Visio files.
+
+=== "CLI execution"
+ ```shell
+ startleft summary \
+ --diagram-type VISIO \
+ --default-mapping-file examples/visio/iriusrisk-visio-aws-mapping.yaml \
+ examples/visio/aws-with-tz-and-vpc.vsdx examples/visio/visio-basic-example.vsdx
+ ```
+
+### by `folder path`
+---
+!!! note ""
+
+ The summary is executed against a folder path that contains `.vsdx` in it.
+
+=== "CLI execution"
+ ```shell
+ startleft summary \
+ --diagram-type VISIO \
+ --default-mapping-file examples/visio/iriusrisk-visio-aws-mapping.yaml \
+ examples/visio/
+ ```
+
+### by `multiple folder path`
+---
+!!! note ""
+
+ The summary is executed against multiple folder path that contains `.vsdx` in it.
+
+=== "CLI execution"
+ ```shell
+ startleft summary \
+ --diagram-type VISIO \
+ --default-mapping-file examples/visio/iriusrisk-visio-aws-mapping.yaml \
+ examples/visio/folder1 examples/visio/folder2
+ ```
+
+## Summary Output Example
+
+```
+| SOURCE | SOURCE_ELEMENT_TYPE | SOURCE_ELEMENT_NAME | OTM_MAPPED_TYPE |
+|-------------|---------------------|-----------------------|-----------------|
+| file_1.vsdx | | Public Cloud | |
+| file_1.vsdx | | Custom VPC | |
+| file_1.vsdx | | Private Secured Cloud | |
+| file_1.vsdx | Amazon CloudWatch | Amazon CloudWatch | cloudwatch |
+| file_1.vsdx | Amazon CloudWatch | Custom log system | cloudwatch |
+| file_1.vsdx | Amazon EC2 | Amazon EC2 | ec2 |
+| file_1.vsdx | Amazon EC2 | Custom machine | ec2 |
+| file_1.vsdx | Database | Private Database | rds |
+| file_2.vsdx | | Private Secured Cloud | |
+| file_2.vsdx | | Public Cloud | |
+| file_2.vsdx | | My Custom VPC | |
+| file_2.vsdx | | My Custom Machine | |
+| file_2.vsdx | Amazon EC2 | My EC2 | ec2 |
+| file_2.vsdx | Database | Private Database | rds |
+```
\ No newline at end of file
diff --git a/docs/usage/Command-Line-Interface.md b/docs/usage/Command-Line-Interface.md
index da2f548e..971adac7 100644
--- a/docs/usage/Command-Line-Interface.md
+++ b/docs/usage/Command-Line-Interface.md
@@ -33,6 +33,7 @@ Commands:
parse Parses source files into Open Threat Model
search Searches source files for the given query
server Launches the REST server to generate OTMs from requests
+ summary Generates a summary CSV file of the given source files
validate Validates a mapping or OTM file
```
@@ -89,6 +90,7 @@ The list of commands that can be used to work in CLI mode is detailed as follows
| validate | Validates a mapping or OTM file. |
| search | Searches source files for the given query. |
| server | Launches the REST server to generate OTMs from requests. |
+| summary | Generate a summary CSV file. |
@@ -777,4 +779,64 @@ receive one or more IaC files, process them and give back the OTM file in the re
INFO on - Waiting for application startup.
INFO on - Application startup complete.
INFO server - Uvicorn running on http://127.0.0.1:5000 (Press CTRL+C to quit)
- ```
\ No newline at end of file
+ ```
+
+### Summary
+
+This command **(only available for VISIO/LUCID)** returns a summary CSV which contains
+all the source elements available and their candidate OTM type by emulating the parse method.
+
+The CSV contains the following info:
+
+ - SOURCE: The source file name
+ - SOURCE_ELEMENT_TYPE: The type of the element in the source
+ - SOURCE_ELEMENT_NAME: The name of the element in the source
+ - OTM_MAPPED_TYPE: The type of the element in the OTM
+
+```shell
+Usage: startleft summary [OPTIONS] [SOURCE_FILES]...
+
+ Generates a summary CSV file of the given source files
+
+Options:
+ -g, --diagram-type [VISIO|LUCID]
+ The diagram file type. [required]
+ -d, --default-mapping-file TEXT
+ Default mapping file to parse the diagram
+ file.
+ -c, --custom-mapping-file TEXT Custom mapping file to parse the diagram
+ file.
+ -o, --output-file TEXT Summary output file.
+ --help Show this message and exit.
+```
+
+??? example "`Lucid` example"
+
+ === "CLI execution"
+ ```shell
+ startleft summary \
+ --diagram-type LUCID \
+ --default-mapping-file examples/lucidchart/iriusrisk-lucid-aws-mapping.yaml \
+ examples/lucidchart/lucid-aws-with-tz-and-vpc.vsdx
+ ```
+
+ === "summary.csv"
+ ```csv
+ | SOURCE | SOURCE_ELEMENT_TYPE | SOURCE_ELEMENT_NAME | OTM_MAPPED_TYPE |
+ |--------------------------------|------------------------------|--------------------------------|---------------------------|
+ | lucid-aws-with-tz-and-vpc.vsdx | AWSCloud | Public Cloud | empty-component |
+ | lucid-aws-with-tz-and-vpc.vsdx | AWSCloudTrail | My CloudTrail | cloudtrail |
+ | lucid-aws-with-tz-and-vpc.vsdx | AmazonAPIGateway_purple | My API Gateway | api-gateway |
+ | lucid-aws-with-tz-and-vpc.vsdx | AmazonCloudWatch | My CloudWatch | cloudwatch |
+ | lucid-aws-with-tz-and-vpc.vsdx | AmazonEC2 | My EC2 | ec2 |
+ | lucid-aws-with-tz-and-vpc.vsdx | AmazonSimpleStorageServiceS3 | My Simple Storage Service (S3) | s3 |
+ | lucid-aws-with-tz-and-vpc.vsdx | Client | Web browser | generic-client |
+ | lucid-aws-with-tz-and-vpc.vsdx | DatabaseBlock | My DynamoDB | other-database |
+ | lucid-aws-with-tz-and-vpc.vsdx | DefaultSquareBlock | Custom VPC | empty-component |
+ | lucid-aws-with-tz-and-vpc.vsdx | DefaultSquareBlock | Internet | empty-component |
+ | lucid-aws-with-tz-and-vpc.vsdx | Mobileclient | Android | |
+ | lucid-aws-with-tz-and-vpc.vsdx | RectangleBlock | Private Secured Cloud | |
+ | lucid-aws-with-tz-and-vpc.vsdx | SQLDatabaseAzure2021 | SQL Database | CD-MICROSOFT-AZURE-SQL-DB |
+ ```
+
+
diff --git a/examples/lucidchart/iriusrisk-lucid-aws-mapping.yaml b/examples/lucidchart/iriusrisk-lucid-aws-mapping.yaml
index 9841a933..3d59648a 100644
--- a/examples/lucidchart/iriusrisk-lucid-aws-mapping.yaml
+++ b/examples/lucidchart/iriusrisk-lucid-aws-mapping.yaml
@@ -368,4 +368,8 @@ components:
type: vpc
- label: { $regex: "^(AmazonEC2_?|EC2)a-zA-Z?[0-9]?a-z?(Instance|instance)s?$" }
type: ec2
-dataflows: [ ]
\ No newline at end of file
+
+dataflows: [ ]
+
+configuration:
+ catch_all: empty-component
\ No newline at end of file
diff --git a/examples/visio/iriusrisk-visio-aws-mapping.yaml b/examples/visio/iriusrisk-visio-aws-mapping.yaml
index e8b9e64c..faf21508 100644
--- a/examples/visio/iriusrisk-visio-aws-mapping.yaml
+++ b/examples/visio/iriusrisk-visio-aws-mapping.yaml
@@ -1678,5 +1678,3 @@ components:
- label: VPC Access Points
type: empty-component
-
-dataflows: []
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index 1334c91c..2b4b39b8 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -47,6 +47,7 @@ nav:
- Visio Mapping: startleft-processors/diagram/Visio-Mapping.md
- Visio TrustZones Mapping: startleft-processors/diagram/Visio-TrustZones-Mapping.md
- Visio Representations: startleft-processors/diagram/Visio-Representations.md
+ - Visio Summary: startleft-processors/diagram/Visio-Summary.md
- Lucidchart Support: startleft-processors/diagram/Lucidchart-support.md
- Troubleshooting: Troubleshooting.md
diff --git a/otm/otm/entity/otm.py b/otm/otm/entity/otm.py
index edf790e1..16a93672 100644
--- a/otm/otm/entity/otm.py
+++ b/otm/otm/entity/otm.py
@@ -1,9 +1,9 @@
from typing import List
-from otm.otm.entity.component import Component
-from otm.otm.entity.dataflow import Dataflow
-from otm.otm.entity.representation import Representation, DiagramRepresentation, RepresentationType
-from otm.otm.entity.trustzone import Trustzone
+from .component import Component
+from .dataflow import Dataflow
+from .representation import Representation, DiagramRepresentation, RepresentationType
+from .trustzone import Trustzone
REPRESENTATIONS_SIZE_DEFAULT_HEIGHT = 1000
REPRESENTATIONS_SIZE_DEFAULT_WIDTH = 1000
@@ -19,7 +19,7 @@ def __init__(self, project_name, project_id, provider):
self.dataflows: List[Dataflow] = []
self.threats = []
self.mitigations = []
- self.version = "0.1.0"
+ self.version = "0.2.0"
self.__provider = provider
self.add_default_representation()
@@ -71,13 +71,13 @@ def add_component(self, id, name, type, parent, parent_type, source=None,
attributes=None, tags=None):
self.components.append(
Component(component_id=id, name=name, component_type=type, parent=parent, parent_type=parent_type,
- source=source, attributes=attributes, tags=tags))
+ source=source, attributes=attributes, tags=tags))
def add_dataflow(self, id, name, source_node, destination_node, bidirectional=None,
source=None, attributes=None, tags=None):
self.dataflows.append(Dataflow(dataflow_id=id, name=name, bidirectional=bidirectional, source_node=source_node,
- destination_node=destination_node, source=source, attributes=attributes,
- tags=tags))
+ destination_node=destination_node, source=source, attributes=attributes,
+ tags=tags))
def add_representation(self, id_=None, name=None, type_=None):
self.representations.append(Representation(id_=id_, name=name, type_=type_))
@@ -86,7 +86,7 @@ def add_diagram_representation(self, id_=None, name=None, type_=None, size=None)
self.representations.append(DiagramRepresentation(id_=id_, name=name, type_=type_, size=size))
def add_default_representation(self):
- if not self.__provider.provider_type == RepresentationType.DIAGRAM:
+ if self.__provider.provider_type != RepresentationType.DIAGRAM:
self.add_representation(id_=self.__provider.provider_name,
name=self.__provider.provider_name,
type_=self.__provider.provider_type)
diff --git a/otm/otm/entity/trustzone.py b/otm/otm/entity/trustzone.py
index 7c0390f6..f997dcb5 100644
--- a/otm/otm/entity/trustzone.py
+++ b/otm/otm/entity/trustzone.py
@@ -28,6 +28,7 @@ def json(self):
json = {
"id": self.id,
"name": self.name,
+ "type": self.type,
"risk": {
"trustRating": self.trustrating
}
diff --git a/setup.py b/setup.py
index dadfbc46..b3e498ab 100644
--- a/setup.py
+++ b/setup.py
@@ -13,7 +13,7 @@
keywords=['threat modeling', 'cyber security', 'appsec'],
packages=find_packages(),
include_package_data=True,
- python_requires='>=3.8',
+ python_requires='>= 3.8, < 3.12',
install_requires=[
'pyyaml==6.0.1',
'jsonschema==4.19.0',
diff --git a/sl_util/sl_util/dict_utils.py b/sl_util/sl_util/dict_utils.py
new file mode 100644
index 00000000..b470c2a2
--- /dev/null
+++ b/sl_util/sl_util/dict_utils.py
@@ -0,0 +1,8 @@
+from deepdiff import DeepDiff
+
+
+def compare_dict(expected: dict, actual: dict, exclude_paths=None, exclude_regex=None) -> (dict, dict):
+ diff = DeepDiff(expected, actual, ignore_order=True, exclude_paths=exclude_paths, exclude_regex_paths=exclude_regex)
+ if diff:
+ return diff.t1, diff.t2
+ return {}, {}
diff --git a/sl_util/sl_util/file_utils.py b/sl_util/sl_util/file_utils.py
index 331fd6e1..42d92f94 100644
--- a/sl_util/sl_util/file_utils.py
+++ b/sl_util/sl_util/file_utils.py
@@ -1,5 +1,8 @@
+import csv
import os
import tempfile
+from typing import List
+
from magic import Magic
@@ -29,3 +32,78 @@ def get_file_type_by_content(file_content: bytes) -> str:
def get_file_type_by_name(file_name: str) -> str:
return Magic(mime=True).from_file(file_name)
+
+
+def write_list_of_dictionaries_to_csv(data: List[dict], fieldnames: List[str], file_path: str) -> None:
+ """
+ Write a list of dictionaries to a CSV file.
+
+ Args:
+ data: List of dictionaries to be written to CSV.
+ fieldnames: Names of the CSV columns
+ file_path: Path to the output CSV file.
+ """
+
+ with open(file_path, 'w', newline='') as csvfile:
+ writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
+ writer.writeheader()
+ writer.writerows(data)
+
+
+def __get_files_with_extensions(folder_path: str, extensions: List[str]) -> List[str]:
+ """
+ Get a list of files with specified extensions from a folder.
+
+ Args:
+ folder_path: Path to the folder to search for files.
+ extensions: List of file extensions to include.
+
+ Returns:
+ List of file paths matching the specified extensions in the given folder.
+ """
+ files = []
+ for filename in os.listdir(folder_path):
+ file_path = os.path.join(folder_path, filename)
+ if os.path.isfile(file_path) and any(filename.endswith(ext) for ext in extensions):
+ files.append(file_path)
+ return files
+
+
+def get_source_files(source_files: List[str], extensions: List[str]) -> List[str]:
+ """
+ Get a list of source files to process.
+
+ If source_files is empty, it searches for files with the given extensions
+ in the current working directory.
+
+ Args:
+ source_files: List of source file paths or an empty list.
+ extensions: Types of files to retrieve
+
+ Returns:
+ List of source file paths to process.
+ """
+ files = []
+ if not source_files:
+ files = __get_files_with_extensions(os.getcwd(), extensions)
+ else:
+ for source_file in source_files:
+ if os.path.isfile(source_file):
+ files.append(source_file)
+ elif os.path.isdir(source_file):
+ files.extend(__get_files_with_extensions(source_file, extensions))
+ return files
+
+
+def load_csv_into_dict(file_name):
+ data = []
+ with open(file_name, 'r') as file:
+ reader = csv.reader(file)
+ headers = next(reader) # Read the header row
+ for row in reader:
+ record = {}
+ for i, value in enumerate(row):
+ record[headers[i]] = value
+ data.append(record)
+
+ return data
diff --git a/sl_util/sl_util/iterations_utils.py b/sl_util/sl_util/iterations_utils.py
index 610136d7..94cdff3d 100644
--- a/sl_util/sl_util/iterations_utils.py
+++ b/sl_util/sl_util/iterations_utils.py
@@ -38,6 +38,14 @@ def compare_unordered_list_or_string(a: Union[str, List], b: Union[str, List]) -
else:
return False
-
+
def remove_nones(list: List) -> List:
return [e for e in list if e != None]
+
+
+def remove_keys(dictionary: dict, keys_to_remove: [str]) -> dict:
+ filtered = dictionary.copy()
+ for key_to_remove in keys_to_remove:
+ if key_to_remove in filtered:
+ filtered.pop(key_to_remove)
+ return filtered
diff --git a/sl_util/sl_util/xml_to_dict.py b/sl_util/sl_util/xml_to_dict.py
new file mode 100644
index 00000000..f59640f2
--- /dev/null
+++ b/sl_util/sl_util/xml_to_dict.py
@@ -0,0 +1,71 @@
+from collections import defaultdict
+
+from defusedxml import ElementTree
+
+
+def get_attrs(attrs):
+ result = {}
+ if attrs is not None:
+ for key, value in attrs.items():
+ result[remove_curly_info(key)] = value
+ return result
+
+
+def get_tag(t):
+ return remove_curly_info(t.tag)
+
+
+def remove_curly_info(value):
+ if '}' in value:
+ return value.split('}')[1]
+ else:
+ return value
+
+
+def add_attributes(d, t, tag_name):
+ d[tag_name].update(get_attrs(t.attrib))
+
+
+def add_text(children, d, t, tag_name):
+ text = t.text.strip()
+ if children or t.attrib:
+ if text:
+ d[tag_name]['text'] = text
+ else:
+ d[tag_name] = text
+
+
+def add_children(children, tag_name, separated_attributes):
+ dd = defaultdict(list)
+ for dc in [xml2dict(ch, separated_attributes) for ch in children]:
+ for k, v in dc.items():
+ dd[k].append(v)
+ return {tag_name: {k: v[0] if len(v) == 1 else v for k, v in dd.items()}}
+
+
+def xml2dict(t, separated_attributes=False) -> dict:
+ tag_name = get_tag(t)
+ d = {tag_name: {} if t.attrib else None}
+ children = list(t)
+ if children:
+ d = add_children(children, tag_name, separated_attributes=separated_attributes)
+ if t.text:
+ add_text(children, d, t, tag_name)
+
+ if t.attrib:
+ if separated_attributes:
+ d['attrib'] = get_attrs(t.attrib)
+ else:
+ add_attributes(d, t, tag_name)
+
+ return d
+
+
+class XmlToDict:
+
+ def __init__(self, xml: str):
+ self.xml = xml
+
+ def to_dict(self) -> dict:
+ xml_data = ElementTree.XML(self.xml)
+ return xml2dict(xml_data)
diff --git a/sl_util/tests/resources/__init__.py b/sl_util/tests/resources/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/sl_util/tests/resources/test_resource_paths.py b/sl_util/tests/resources/test_resource_paths.py
new file mode 100644
index 00000000..3b3f0054
--- /dev/null
+++ b/sl_util/tests/resources/test_resource_paths.py
@@ -0,0 +1,7 @@
+import os
+
+path = os.path.dirname(__file__)
+
+# xml testing files
+random_data_xml = f'{path}/xml/random_data.xml'
+random_data_xml_json = f'{path}/xml/random_data_xml.json'
diff --git a/sl_util/tests/resources/xml/random_data.xml b/sl_util/tests/resources/xml/random_data.xml
new file mode 100644
index 00000000..0c3b024f
--- /dev/null
+++ b/sl_util/tests/resources/xml/random_data.xml
@@ -0,0 +1,33 @@
+
+ sunlight
+ men
+ -862244492
+
+ composition
+
+ spirit
+
+
+
+ 1184223729.943545
+ magic
+ 648067907.3277977
+ change
+
+ particular
+ -1459099875.7289388
+
+ loose
+ 552630041.6824405
+ -45766333
+
+ stretch
+ within
+
+ -1213510200.834167
+ -557912696.1980629
+ birds
+
+ 459467385.41047287
+ 1248105488
+
\ No newline at end of file
diff --git a/sl_util/tests/resources/xml/random_data_xml.json b/sl_util/tests/resources/xml/random_data_xml.json
new file mode 100644
index 00000000..544c1591
--- /dev/null
+++ b/sl_util/tests/resources/xml/random_data_xml.json
@@ -0,0 +1,62 @@
+{
+ "root": {
+ "clean": {
+ "recognize": "dried",
+ "text": "1248105488"
+ },
+ "exclaimed": {
+ "cookies": {
+ "text": "-1213510200.834167",
+ "tobacco": "conversation"
+ },
+ "dinner": "-557912696.1980629",
+ "record": {
+ "another": {
+ "count": "magic",
+ "experience": "twice",
+ "finest": "-1459099875.7289388",
+ "instrument": "particular",
+ "strange": {
+ "immediately": "bread",
+ "text": "change"
+ },
+ "teacher": {
+ "food": "hay",
+ "text": "1184223729.943545"
+ },
+ "title": "648067907.3277977"
+ },
+ "birthday": "stretch",
+ "food": {
+ "native": "good",
+ "text": "within"
+ },
+ "hay": {
+ "smell": "plates",
+ "text": "loose"
+ },
+ "peace": {
+ "suppose": "motor",
+ "text": "-45766333"
+ },
+ "tobacco": "552630041.6824405"
+ },
+ "regular": "spirit",
+ "widely": "composition",
+ "yard": {
+ "alone": "willing",
+ "text": "birds"
+ }
+ },
+ "flower": "sunlight",
+ "identity": "459467385.41047287",
+ "reason": {
+ "ship": "nuts",
+ "text": "-862244492"
+ },
+ "with": {
+ "text": "men",
+ "waste": "hurried"
+ }
+ }
+}
\ No newline at end of file
diff --git a/sl_util/tests/unit/test_iterations_utils.py b/sl_util/tests/unit/test_iterations_utils.py
index f7e70af8..42f18edd 100644
--- a/sl_util/tests/unit/test_iterations_utils.py
+++ b/sl_util/tests/unit/test_iterations_utils.py
@@ -1,4 +1,4 @@
-from sl_util.sl_util.iterations_utils import remove_from_list
+from sl_util.sl_util.iterations_utils import remove_from_list, remove_keys
def remove_function(element, original_array, removed_array):
@@ -63,3 +63,16 @@ def test_basic_remove_with_custom_remove_function(self):
assert len(removed_array) is 2
assert 2 in removed_array
assert 4 in removed_array
+
+ def test_remove_keys(self):
+ # Given a dict
+ numbers = {'1': 'One', '2': 'Two', '3': 'Three', '4': 'Four'}
+
+ # And a list with the keys to remove
+ ids = ['2', '4']
+
+ # When we remove the keys
+ result = remove_keys(numbers, ids)
+
+ # Then the result is as expected
+ assert result == {'1': 'One', '3': 'Three'}
diff --git a/sl_util/tests/unit/test_xml_to_dict.py b/sl_util/tests/unit/test_xml_to_dict.py
new file mode 100644
index 00000000..b58c19e4
--- /dev/null
+++ b/sl_util/tests/unit/test_xml_to_dict.py
@@ -0,0 +1,41 @@
+import json
+from unittest import TestCase
+
+import pytest
+
+from sl_util.sl_util.dict_utils import compare_dict
+from sl_util.sl_util.file_utils import get_byte_data
+from sl_util.sl_util.xml_to_dict import XmlToDict
+from sl_util.tests.resources.test_resource_paths import random_data_xml, random_data_xml_json
+
+
+class TestXmlToDict(TestCase):
+
+ def test_to_dict(self):
+ # GIVEN the source MTMT data
+ xml = get_byte_data(random_data_xml).decode()
+ # AND the parser
+ parser = XmlToDict(xml)
+ # AND the expected result
+ expected_data = json.loads(get_byte_data(random_data_xml_json).decode())
+
+ # WHEN we convert to json
+ result_data = parser.to_dict()
+
+ # THEN the result is as expected
+ result, expected = compare_dict(result_data, expected_data)
+ assert result == expected
+
+ def test_to_dict_invalid_data(self):
+ # GIVEN the source MTMT data
+ xml = "INVALID XML CONTENT"
+ # AND the parser
+ parser = XmlToDict(xml)
+
+ # WHEN we convert to json
+ # THEN a ParseError is raised
+ with pytest.raises(Exception) as error:
+ parser.to_dict()
+ # AND the error is as expected
+ assert error.typename == 'ParseError'
+ assert str(error.value.msg) == 'syntax error: line 1, column 0'
diff --git a/slp_base/slp_base/otm_processor.py b/slp_base/slp_base/otm_processor.py
index 105d17e8..98dfeb53 100644
--- a/slp_base/slp_base/otm_processor.py
+++ b/slp_base/slp_base/otm_processor.py
@@ -4,7 +4,6 @@
from otm.otm.otm_pruner import OTMPruner
from slp_base.slp_base.mapping import MappingLoader, MappingValidator
from slp_base.slp_base.otm_representations_pruner import OTMRepresentationsPruner
-from slp_base.slp_base.otm_trustzone_unifier import OTMTrustZoneUnifier
from slp_base.slp_base.otm_validator import OTMValidator
from slp_base.slp_base.provider_loader import ProviderLoader
from slp_base.slp_base.provider_parser import ProviderParser
@@ -43,7 +42,6 @@ def process(self) -> OTM:
self._clean_resources()
OTMRepresentationsPruner(otm).prune()
- OTMTrustZoneUnifier(otm).unify()
OTMValidator().validate(otm.json())
return otm
diff --git a/slp_base/slp_base/otm_trustzone_unifier.py b/slp_base/slp_base/otm_trustzone_unifier.py
deleted file mode 100644
index 35c34ac6..00000000
--- a/slp_base/slp_base/otm_trustzone_unifier.py
+++ /dev/null
@@ -1,34 +0,0 @@
-import logging
-
-from otm.otm.entity.otm import OTM
-
-logger = logging.getLogger(__name__)
-
-
-class OTMTrustZoneUnifier:
-
- def __init__(self, otm: OTM):
- self.otm: OTM = otm
-
- def unify(self):
-
- for tz in self.otm.trustzones:
- valid_id = tz.type
- old_id = tz.id
- self.change_childs(old_id, valid_id)
- tz.id = valid_id
-
- self.delete_duplicated_tz()
-
- def change_childs(self, old_id, valid_id):
- for child in self.otm.components + self.otm.trustzones:
- if child.parent == old_id:
- child.parent = valid_id
-
- def delete_duplicated_tz(self):
- deduplicated = dict()
- for tz in self.otm.trustzones:
- id_ = tz.id
- if id_ not in deduplicated:
- deduplicated[id_] = tz
- self.otm.trustzones = [v for k, v in deduplicated.items()]
diff --git a/slp_base/slp_base/provider_type.py b/slp_base/slp_base/provider_type.py
index f31a0931..8ae374d8 100644
--- a/slp_base/slp_base/provider_type.py
+++ b/slp_base/slp_base/provider_type.py
@@ -16,6 +16,8 @@ class DiagramType(str, Provider):
['application/vnd.ms-visio.drawing.main+xml', 'application/octet-stream'])
LUCID = ("LUCID", "Lucidchart", RepresentationType.DIAGRAM,
['application/vnd.ms-visio.drawing.main+xml', 'application/octet-stream', 'application/zip'])
+ # DRAWIO = ("DRAWIO", "Drawio", RepresentationType.DIAGRAM,
+ # ['application/octet-stream', 'application/xml', 'text/plain'])
class EtmType(str, Provider):
diff --git a/slp_base/tests/unit/test_mapping_file_loader.py b/slp_base/tests/unit/test_mapping_file_loader.py
new file mode 100644
index 00000000..6039f1a0
--- /dev/null
+++ b/slp_base/tests/unit/test_mapping_file_loader.py
@@ -0,0 +1,41 @@
+from slp_base.slp_base.mapping_file_loader import MappingFileLoader
+
+# default = b'components:\n\n - label: Postgres\n type: postgresql'
+# custom = b'components:\n\n - label: AmazonEC2\n type: ec2'
+
+default_configuration = b'configuration:\n\n value_a: default_value\n\n value_b: default_value'
+custom_configuration = b'configuration:\n\n value_a: custom_value'
+
+
+class TestMappingFileLoader:
+
+ # TODO: Implementation of mapping component priority
+ # def test_mapping_file_priority(self):
+ # # GIVEN the mapping loader with a default and custom mapping files
+ # mapping_file_loader = MappingFileLoader([default, custom])
+ #
+ # # WHEN load is called in MappingFileLoader
+ # mapping_file = mapping_file_loader.load()
+ #
+ # # THEN the result has two components
+ # assert len(mapping_file['components']) == 2
+ # # AND the first component is the custom
+ # assert mapping_file['components'][0]['label'] == 'AmazonEC2'
+ # assert mapping_file['components'][0]['type'] == 'ec2'
+ # # AND the second component is the default
+ # assert mapping_file['components'][1]['label'] == 'Postgres'
+ # assert mapping_file['components'][1]['type'] == 'postgresql'
+
+ def test_override_configuration(self):
+ # GIVEN the mapping loader with a default and custom mapping files configurations
+ mapping_file_loader = MappingFileLoader([default_configuration, custom_configuration])
+
+ # WHEN load is called in MappingFileLoader
+ mapping_file = mapping_file_loader.load()
+
+ # THEN configuration with value_a is override by the custom file
+ assert mapping_file['configuration']['value_a'] == 'custom_value'
+ # AND configuration with value_b exists
+ assert 'value_b' in mapping_file['configuration']
+ # AND configuration with value_b gets its value from default
+ assert mapping_file['configuration']['value_b'] == 'default_value'
diff --git a/slp_cft/tests/resources/otm/cft_components_with_trustzones_of_same_type.otm b/slp_cft/tests/resources/otm/cft_components_with_trustzones_of_same_type.otm
index cc4a2cf4..8b5edceb 100644
--- a/slp_cft/tests/resources/otm/cft_components_with_trustzones_of_same_type.otm
+++ b/slp_cft/tests/resources/otm/cft_components_with_trustzones_of_same_type.otm
@@ -4,7 +4,7 @@
"id": "public-cloud-01.customvpc",
"name": "CustomVPC",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "public-cloud-01"
},
"tags": [
"AWS::EC2::VPC"
@@ -15,7 +15,7 @@
"id": "public-cloud-02.rdscluster",
"name": "RDSCluster",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "public-cloud-02"
},
"tags": [
"AWS::RDS::DBCluster"
@@ -24,7 +24,7 @@
}
],
"dataflows": [],
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"id": "id",
"name": "name"
@@ -38,7 +38,16 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "public-cloud-01",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "name": "Public Cloud",
+ "risk": {
+ "trustRating": 10
+ }
+ },
+ {
+ "id": "public-cloud-02",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_cft/tests/resources/otm/cloudformation_minimal_content.otm b/slp_cft/tests/resources/otm/cloudformation_minimal_content.otm
index 2b114b86..c4cd1126 100644
--- a/slp_cft/tests/resources/otm/cloudformation_minimal_content.otm
+++ b/slp_cft/tests/resources/otm/cloudformation_minimal_content.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -13,11 +13,20 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "public-cloud-01",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud 01",
"risk": {
"trustRating": 10
}
+ },
+ {
+ "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "name": "Public Cloud 02",
+ "risk": {
+ "trustRating": 10
+ }
}
],
"components": [],
diff --git a/slp_cft/tests/resources/otm/expected_altsource_components.otm b/slp_cft/tests/resources/otm/expected_altsource_components.otm
index 6e6d242c..4b0f59ec 100644
--- a/slp_cft/tests/resources/otm/expected_altsource_components.otm
+++ b/slp_cft/tests/resources/otm/expected_altsource_components.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_cft/tests/resources/otm/expected_orphan_component_is_not_mapped.otm b/slp_cft/tests/resources/otm/expected_orphan_component_is_not_mapped.otm
index ed32fa4e..9daba9c7 100644
--- a/slp_cft/tests/resources/otm/expected_orphan_component_is_not_mapped.otm
+++ b/slp_cft/tests/resources/otm/expected_orphan_component_is_not_mapped.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_cft/tests/resources/otm/minimal_otm_expected_result.otm b/slp_cft/tests/resources/otm/minimal_otm_expected_result.otm
index ef5110b0..46ae5e23 100644
--- a/slp_cft/tests/resources/otm/minimal_otm_expected_result.otm
+++ b/slp_cft/tests/resources/otm/minimal_otm_expected_result.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
diff --git a/slp_cft/tests/resources/otm/otm_expected_result.otm b/slp_cft/tests/resources/otm/otm_expected_result.otm
index af519de9..ddda7944 100644
--- a/slp_cft/tests/resources/otm/otm_expected_result.otm
+++ b/slp_cft/tests/resources/otm/otm_expected_result.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "multiple-files",
"id": "multiple-files"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -21,6 +22,7 @@
},
{
"id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
diff --git a/slp_cft/tests/resources/otm/otm_with_only_default_trustzone_expected_result.otm b/slp_cft/tests/resources/otm/otm_with_only_default_trustzone_expected_result.otm
index 1de3e7c8..6d6b2e9c 100644
--- a/slp_cft/tests/resources/otm/otm_with_only_default_trustzone_expected_result.otm
+++ b/slp_cft/tests/resources/otm/otm_with_only_default_trustzone_expected_result.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_drawio/__init__.py b/slp_drawio/__init__.py
new file mode 100644
index 00000000..ecc6a45a
--- /dev/null
+++ b/slp_drawio/__init__.py
@@ -0,0 +1,14 @@
+######################################################################
+# This folder is not actually intended to be a regular package #
+# HOWEVER, we need to keep this __init.py__ file in order to #
+# make it visible by other modules. #
+# In future versions, this package should be moved to a lib so #
+# that it will be an independent module instead of a "false" package #
+######################################################################
+
+# DON'T REMOVE: Module importer overwritten to prevent bidirectional dependencies
+from _sl_build.secure_importer import override_module_importer
+
+override_module_importer()
+
+from .slp_drawio import *
diff --git a/slp_drawio/resources/schemas/drawio_mapping_schema.json b/slp_drawio/resources/schemas/drawio_mapping_schema.json
new file mode 100644
index 00000000..da424597
--- /dev/null
+++ b/slp_drawio/resources/schemas/drawio_mapping_schema.json
@@ -0,0 +1,69 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Mapping File",
+ "type": "object",
+ "required": ["trustzones", "components"],
+ "properties": {
+ "trustzones": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["label"],
+ "properties": {
+ "label": {"$ref": "#/definitions/LabelUnion"},
+ "type": {"$ref": "#/definitions/query"}
+ }
+ }
+ },
+ "components": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["label"],
+ "properties": {
+ "label": {"$ref": "#/definitions/LabelUnion"},
+ "type": {"$ref": "#/definitions/query"}
+ }
+ }
+ }
+ },
+ "definitions": {
+ "query": {
+ "anyOf": [
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "LabelUnion":{
+ "anyOf":[
+ {
+ "type":"array",
+ "items":{
+ "type":"string"
+ }
+ },
+ {
+ "$ref":"#/definitions/RegExClass"
+ },
+ {
+ "type":"string"
+ }
+ ],
+ "title":"LabelUnion"
+ },
+ "RegExClass":{
+ "type":"object",
+ "additionalProperties":false,
+ "properties":{
+ "$regex":{
+ "type":"string"
+ }
+ },
+ "required":[
+ "$regex"
+ ],
+ "title":"RegExClass"
+ }
+ }
+}
\ No newline at end of file
diff --git a/slp_drawio/slp_drawio/__init__.py b/slp_drawio/slp_drawio/__init__.py
new file mode 100644
index 00000000..25ab137b
--- /dev/null
+++ b/slp_drawio/slp_drawio/__init__.py
@@ -0,0 +1 @@
+from .drawio_processor import DrawioProcessor
diff --git a/slp_drawio/slp_drawio/drawio_processor.py b/slp_drawio/slp_drawio/drawio_processor.py
new file mode 100644
index 00000000..ad3ee62e
--- /dev/null
+++ b/slp_drawio/slp_drawio/drawio_processor.py
@@ -0,0 +1,40 @@
+from slp_base import OTMProcessor, ProviderValidator, ProviderLoader, MappingValidator, MappingLoader, ProviderParser, \
+ DiagramType
+from slp_drawio.slp_drawio.load.drawio_loader import DrawioLoader
+from slp_drawio.slp_drawio.load.drawio_mapping_file_loader import DrawioMappingFileLoader
+from slp_drawio.slp_drawio.parse.drawio_parser import DrawioParser
+from slp_drawio.slp_drawio.validate.drawio_mapping_file_validator import DrawioMappingFileValidator
+from slp_drawio.slp_drawio.validate.drawio_validator import DrawioValidator
+
+
+class DrawioProcessor(OTMProcessor):
+ """
+ Drawio implementation of OTMProcessor
+ """
+
+ def __init__(self, project_id: str, project_name: str, source, mappings: [bytes], diag_type=None):
+ self.project_id = project_id
+ self.project_name = project_name
+ self.source = source
+ self.mappings = mappings
+ self.loader = None
+ self.mapping_loader = None
+
+ def get_provider_validator(self) -> ProviderValidator:
+ return DrawioValidator(self.source)
+
+ def get_provider_loader(self) -> ProviderLoader:
+ self.loader = DrawioLoader(self.project_id, self.source)
+ return self.loader
+
+ def get_mapping_validator(self) -> MappingValidator:
+ return DrawioMappingFileValidator(self.mappings)
+
+ def get_mapping_loader(self) -> MappingLoader:
+ self.mapping_loader = DrawioMappingFileLoader(self.mappings)
+ return self.mapping_loader
+
+ def get_provider_parser(self) -> ProviderParser:
+ drawio = self.loader.get_diagram()
+ drawio_mapping = self.mapping_loader.get_mappings()
+ return DrawioParser(self.project_id, self.project_name, drawio, drawio_mapping)
diff --git a/slp_drawio/slp_drawio/load/__init__.py b/slp_drawio/slp_drawio/load/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_drawio/slp_drawio/load/diagram_component_loader.py b/slp_drawio/slp_drawio/load/diagram_component_loader.py
new file mode 100644
index 00000000..2e00834f
--- /dev/null
+++ b/slp_drawio/slp_drawio/load/diagram_component_loader.py
@@ -0,0 +1,10 @@
+from slp_drawio.slp_drawio.objects.diagram_objects import DiagramComponent
+
+
+class DiagramComponentLoader:
+
+ def __init__(self, source: dict):
+ self.source: dict = source
+
+ def load(self) -> [DiagramComponent]:
+ return []
diff --git a/slp_drawio/slp_drawio/load/diagram_dataflow_loader.py b/slp_drawio/slp_drawio/load/diagram_dataflow_loader.py
new file mode 100644
index 00000000..642932be
--- /dev/null
+++ b/slp_drawio/slp_drawio/load/diagram_dataflow_loader.py
@@ -0,0 +1,10 @@
+from slp_drawio.slp_drawio.objects.diagram_objects import DiagramDataflow
+
+
+class DiagramDataflowLoader:
+
+ def __init__(self, source: dict):
+ self.source: dict = source
+
+ def load(self) -> [DiagramDataflow]:
+ return []
diff --git a/slp_drawio/slp_drawio/load/diagram_representation_loader.py b/slp_drawio/slp_drawio/load/diagram_representation_loader.py
new file mode 100644
index 00000000..55c8a811
--- /dev/null
+++ b/slp_drawio/slp_drawio/load/diagram_representation_loader.py
@@ -0,0 +1,11 @@
+from slp_drawio.slp_drawio.objects.diagram_objects import DiagramRepresentation
+
+
+class DiagramRepresentationLoader:
+
+ def __init__(self, project_id: str, source: dict):
+ self.project_id = project_id
+ self.source = source
+
+ def load(self) -> DiagramRepresentation:
+ pass
diff --git a/slp_drawio/slp_drawio/load/drawio_loader.py b/slp_drawio/slp_drawio/load/drawio_loader.py
new file mode 100644
index 00000000..a22d7b72
--- /dev/null
+++ b/slp_drawio/slp_drawio/load/drawio_loader.py
@@ -0,0 +1,41 @@
+import logging
+
+from slp_base import LoadingSourceFileError
+from slp_base.slp_base.provider_loader import ProviderLoader
+from slp_drawio.slp_drawio.load.diagram_component_loader import DiagramComponentLoader
+from slp_drawio.slp_drawio.load.diagram_dataflow_loader import DiagramDataflowLoader
+from slp_drawio.slp_drawio.load.diagram_representation_loader import DiagramRepresentationLoader
+from slp_drawio.slp_drawio.load.drawio_to_dict import DrawIOToDict
+from slp_drawio.slp_drawio.objects.diagram_objects import Diagram, DiagramDataflow, DiagramComponent, \
+ DiagramRepresentation
+
+logger = logging.getLogger(__name__)
+
+
+class DrawioLoader(ProviderLoader):
+ """
+ Builder for a drawio class from the xml data
+ """
+
+ def __init__(self, project_id: str, source):
+ self.project_id = project_id
+ self.source = source
+ self.diagram = None
+
+ def load(self):
+ try:
+ source_dict = DrawIOToDict(self.source).to_dict()
+
+ representation: DiagramRepresentation = DiagramRepresentationLoader(self.project_id, source_dict).load()
+ components: [DiagramComponent] = DiagramComponentLoader(source_dict).load()
+ dataflows: [DiagramDataflow] = DiagramDataflowLoader(source_dict).load()
+
+ self.diagram: Diagram = Diagram(representation, components, dataflows)
+ except Exception as e:
+ logger.error(f'{e}')
+ detail = e.__class__.__name__
+ message = e.__str__()
+ raise LoadingSourceFileError('Source file cannot be loaded', detail, message)
+
+ def get_diagram(self) -> Diagram:
+ return self.diagram
diff --git a/slp_drawio/slp_drawio/load/drawio_mapping_file_loader.py b/slp_drawio/slp_drawio/load/drawio_mapping_file_loader.py
new file mode 100644
index 00000000..aae0b010
--- /dev/null
+++ b/slp_drawio/slp_drawio/load/drawio_mapping_file_loader.py
@@ -0,0 +1,21 @@
+import logging
+from typing import List, Dict
+
+from slp_base.slp_base.mapping_file_loader import MappingFileLoader
+
+logger = logging.getLogger(__name__)
+
+
+class DrawioMapping:
+ def __init__(self, trustzones: List[Dict], components: List[Dict]):
+ self.default_trustzone: Dict = next(filter(lambda tz: tz.get('default'), trustzones), trustzones[0])
+ self.trustzones: List[Dict] = trustzones
+ self.components: List[Dict] = components
+
+
+class DrawioMappingFileLoader(MappingFileLoader):
+ def __init__(self, mapping_data_list: List[bytes]):
+ super(DrawioMappingFileLoader, self).__init__(mapping_data_list)
+
+ def get_mappings(self) -> DrawioMapping:
+ return DrawioMapping(self.map['trustzones'], self.map['components'])
diff --git a/slp_drawio/slp_drawio/load/drawio_to_dict.py b/slp_drawio/slp_drawio/load/drawio_to_dict.py
new file mode 100644
index 00000000..bf8c682a
--- /dev/null
+++ b/slp_drawio/slp_drawio/load/drawio_to_dict.py
@@ -0,0 +1,41 @@
+import base64
+import logging
+import zlib
+from tempfile import SpooledTemporaryFile
+from urllib.parse import unquote
+
+from defusedxml import ElementTree
+
+from sl_util.sl_util.xml_to_dict import XmlToDict
+
+logger = logging.getLogger(__name__)
+
+DEFAULT_ENCODING = 'utf8'
+DIAGRAM_TAG = 'diagram'
+
+
+class DrawIOToDict:
+
+ def __init__(self, source):
+ file: SpooledTemporaryFile = source.file
+ self.encoding = 'utf8'
+ self.content: str = file.read().decode()
+ self.decode_b64_tag('diagram')
+
+ def to_dict(self) -> dict:
+ return XmlToDict(self.content).to_dict()
+
+ def decode_b64_tag(self, tag):
+ tree = ElementTree.XML(self.content)
+ tree_tag = tree.find(tag)
+ children = list(tree_tag.iter())
+ if len(children) <= 1:
+ logger.debug(f'{tag} tag is encoded')
+ data = base64.b64decode(tree_tag.text, validate=True)
+ xml = zlib.decompress(data, wbits=-15).decode()
+ xml = unquote(xml)
+ diagram_tree = ElementTree.fromstring(xml)
+ tree_tag.append(diagram_tree)
+ tree_tag.text = None
+ self.content = ElementTree.tostring(tree, encoding=self.encoding)
+ logger.debug(f'{tag} tag decoded successfully')
diff --git a/slp_drawio/slp_drawio/objects/__init__.py b/slp_drawio/slp_drawio/objects/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_drawio/slp_drawio/objects/diagram_objects.py b/slp_drawio/slp_drawio/objects/diagram_objects.py
new file mode 100644
index 00000000..bfb1edda
--- /dev/null
+++ b/slp_drawio/slp_drawio/objects/diagram_objects.py
@@ -0,0 +1,59 @@
+from otm.otm.entity import representation
+
+from otm.otm.entity.component import Component
+from otm.otm.entity.dataflow import Dataflow
+from otm.otm.entity.parent_type import ParentType
+from otm.otm.entity.representation import RepresentationType
+from otm.otm.entity.trustzone import Trustzone
+
+
+
+
+class DiagramTrustZone:
+ def __init__(self, id: str, name: str):
+ self.otm: Trustzone = Trustzone(trustzone_id=id, name=name or '')
+
+
+class DiagramComponent:
+ def __init__(self,
+ id: str = None,
+ name: str = None):
+ self.otm: Component = Component(component_id=id,
+ name=name or '',
+ component_type=None,
+ parent_type=ParentType.TRUST_ZONE,
+ parent=None)
+
+
+ def __str__(self) -> str:
+ return '{otm: ' + str(self.otm) + '}'
+
+ def __repr__(self) -> str:
+ return '{otm: ' + str(self.otm) + '}'
+
+
+class DiagramDataflow:
+ def __init__(self, id: str):
+ self.otm = Dataflow(dataflow_id=id, name='', source_node=None, destination_node=None)
+
+
+class DiagramRepresentation:
+ def __init__(self, project_id: str, size: dict):
+ self.otm = representation.DiagramRepresentation(
+ id_=f'{project_id}-diagram',
+ name=f'{project_id} Diagram Representation',
+ type_=RepresentationType.DIAGRAM,
+ size=size
+ )
+
+
+class Diagram:
+ def __init__(self,
+ representation: [DiagramRepresentation],
+ components: [DiagramComponent],
+ dataflows: [DiagramDataflow],
+ trustzones: [DiagramTrustZone] = None):
+ self.representation = representation
+ self.components = components
+ self.dataflows = dataflows
+ self.trustzones = trustzones or []
diff --git a/slp_drawio/slp_drawio/parse/__init__.py b/slp_drawio/slp_drawio/parse/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_drawio/slp_drawio/parse/diagram_mapper.py b/slp_drawio/slp_drawio/parse/diagram_mapper.py
new file mode 100644
index 00000000..dce2f9ed
--- /dev/null
+++ b/slp_drawio/slp_drawio/parse/diagram_mapper.py
@@ -0,0 +1,11 @@
+from slp_drawio.slp_drawio.load.drawio_mapping_file_loader import DrawioMapping
+from slp_drawio.slp_drawio.objects.diagram_objects import Diagram
+
+
+class DiagramMapper:
+ def __init__(self, diagram: Diagram, mapping: DrawioMapping):
+ self.diagram = diagram
+ self.mapping = mapping
+
+ def map(self):
+ pass
diff --git a/slp_drawio/slp_drawio/parse/drawio_parser.py b/slp_drawio/slp_drawio/parse/drawio_parser.py
new file mode 100644
index 00000000..13751f4f
--- /dev/null
+++ b/slp_drawio/slp_drawio/parse/drawio_parser.py
@@ -0,0 +1,38 @@
+from otm.otm.entity.otm import OTM
+from otm.otm.otm_builder import OTMBuilder
+
+from slp_base.slp_base.provider_parser import ProviderParser
+from slp_base.slp_base.provider_type import DiagramType
+from slp_drawio.slp_drawio.load.drawio_mapping_file_loader import DrawioMapping
+from slp_drawio.slp_drawio.objects.diagram_objects import Diagram
+from slp_drawio.slp_drawio.parse.diagram_mapper import DiagramMapper
+
+
+class DrawioParser(ProviderParser):
+ """
+ Parser to build an OTM from DrawIO
+ """
+
+ def __init__(self, project_id: str, project_name: str, diagram: Diagram, mapping: DrawioMapping):
+ self.diagram = diagram
+ self.mapping = mapping
+ self.project_id = project_id
+ self.project_name = project_name
+
+ def build_otm(self) -> OTM:
+ self.map_components_and_trustzones()
+
+ # TODO Implement and call Transformers here
+
+ otm = self.__build_otm()
+
+ return otm
+
+ def map_components_and_trustzones(self):
+ DiagramMapper(self.diagram, self.mapping).map()
+
+ def __build_otm(self):
+ # TODO waiting the parser implementation
+ pass
+
+
diff --git a/slp_drawio/slp_drawio/parse/transformer.py b/slp_drawio/slp_drawio/parse/transformer.py
new file mode 100644
index 00000000..544651c2
--- /dev/null
+++ b/slp_drawio/slp_drawio/parse/transformer.py
@@ -0,0 +1,17 @@
+import abc
+
+from slp_drawio.slp_drawio.objects.diagram_objects import Diagram
+
+
+class Transformer(metaclass=abc.ABCMeta):
+ @classmethod
+ def __subclasshook__(cls, subclass):
+ return (hasattr(subclass, 'transform') and callable(subclass.transform)) or NotImplemented
+
+ def __init__(self, diagram: Diagram):
+ self.diagram: Diagram = diagram
+
+ @abc.abstractmethod
+ def transform(self):
+ """ perform the necessary operations to transform and enrich the OTM """
+ raise NotImplementedError
diff --git a/slp_drawio/slp_drawio/validate/__init__.py b/slp_drawio/slp_drawio/validate/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_drawio/slp_drawio/validate/drawio_mapping_file_validator.py b/slp_drawio/slp_drawio/validate/drawio_mapping_file_validator.py
new file mode 100644
index 00000000..62ff8a86
--- /dev/null
+++ b/slp_drawio/slp_drawio/validate/drawio_mapping_file_validator.py
@@ -0,0 +1,10 @@
+from slp_base import MultipleMappingFileValidator
+from slp_base.slp_base.schema import Schema
+
+
+class DrawioMappingFileValidator(MultipleMappingFileValidator):
+ schema_filename = 'drawio_mapping_schema.json'
+
+ def __init__(self, mappings_data: [bytes]):
+ super(DrawioMappingFileValidator, self).__init__(
+ Schema.from_package('slp_drawio', self.schema_filename), mappings_data)
diff --git a/slp_drawio/slp_drawio/validate/drawio_validator.py b/slp_drawio/slp_drawio/validate/drawio_validator.py
new file mode 100644
index 00000000..84941720
--- /dev/null
+++ b/slp_drawio/slp_drawio/validate/drawio_validator.py
@@ -0,0 +1,23 @@
+import logging
+
+from slp_base import ProviderValidator
+
+logger = logging.getLogger(__name__)
+
+
+class DrawioValidator(ProviderValidator):
+
+ def __init__(self, data):
+ super(DrawioValidator, self).__init__()
+ self.data = data
+
+ def validate(self):
+ logger.info('Validating Drawio file')
+ self.__validate_size()
+ self.__validate_content_type()
+
+ def __validate_size(self):
+ pass
+
+ def __validate_content_type(self):
+ pass
diff --git a/slp_drawio/tests/__init__.py b/slp_drawio/tests/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_drawio/tests/resources/__init__.py b/slp_drawio/tests/resources/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_drawio/tests/resources/drawio/aws_minimal.drawio b/slp_drawio/tests/resources/drawio/aws_minimal.drawio
new file mode 100644
index 00000000..2225960e
--- /dev/null
+++ b/slp_drawio/tests/resources/drawio/aws_minimal.drawio
@@ -0,0 +1 @@
+7VbbcpswEP0aP8bDNTiPMdhJ22TaxnGSN48MMqgRiBHCxv36rkBgbmmSmXSmDxljrD0Su9LZ3WMmphsXVxyl0S0LMJ0YWlBMTG9iGLpl6PAjkWOFXGhWBYScBGrRCViR31iBmkJzEuCss1AwRgVJu6DPkgT7ooMhztmhu2zHaDdqikI8AFY+okP0kQQiqtCZ4Zzwa0zCqI6sn19UMzGqF6uTZBEK2KEFmYuJ6XLGRDWKCxdTSV7NS/Xc8oXZZmMcJ+ItD9jEeVjPsuKeRhuP/VqHj0/emfKyRzRXB758XAHgUpYHat/iWJORMpKIklB7DhfEc7WJDTOutKaG3QP6ttMF9KElfXSBvu10Ab3vXu/F1/sbbAEDq+Ne68XXWhuEy5yzXFCSYLcpPQ3AkKOAQEpcRhkHLGEJsDePREzB0mF4iIjAqxT5ktUDtA1gO5YIVfy6UduKeOkVylsgiMWVjzITmC/2uEpItYZSlGZk2zzFsZ/zjOzxHc4q5xKFQkzlOC5C2bNTdMisachZnpbb/wKxRmc3MNz4sjA2iArpSHD2jOuDTgwTPktZfPMdobRHwB5zQaCvLikJpX/BZDikLIp3pUdghSThTWl5pqaYGAsRoCzCgTrSsBfqwoaouGhBqjeuMIux4EdYomYbxVFCZZjKPpzaXq+xqN3yNYiU1ISN71M3wkA15HhzFuvrrw/2z6fn4/333Ea338748swYNOegI0lc6le7vBTkkTiEqJRs4e5TAunjQg5ZnOZQOhmMPSTQFmV4oxuzAr7TNAmHVP5VON7Or92h1xqyOxshd/YB3I7uf8jtHQ4JVP6n5n1qXkvzeFUVI2KnW85ifvlPxa4J0Yid/jFiZ1n/ndiZr4vdaO11/gdq3m/QFtMfLCOiTJ63ZUKw+NXE+FgWWLdyRyrHnGLf6CUesrW0Z7ZpvdwOb1RW473JNM5LFWin0xlk0zmf2sN0XpjvziaYp3fWcq715m8u/gA=
\ No newline at end of file
diff --git a/slp_drawio/tests/resources/drawio/aws_minimal.drawio.xml b/slp_drawio/tests/resources/drawio/aws_minimal.drawio.xml
new file mode 100644
index 00000000..e31d6bf1
--- /dev/null
+++ b/slp_drawio/tests/resources/drawio/aws_minimal.drawio.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/slp_drawio/tests/resources/drawio/aws_minimal_source.json b/slp_drawio/tests/resources/drawio/aws_minimal_source.json
new file mode 100644
index 00000000..522ed280
--- /dev/null
+++ b/slp_drawio/tests/resources/drawio/aws_minimal_source.json
@@ -0,0 +1,98 @@
+{
+ "mxfile": {
+ "agent": "5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/19.0.3 Chrome/102.0.5005.63 Electron/19.0.3 Safari/537.36",
+ "diagram": {
+ "id": "pOeIjdqQ_qid1hbLa7JX",
+ "mxGraphModel": {
+ "arrows": "1",
+ "connect": "1",
+ "dx": "1421",
+ "dy": "904",
+ "fold": "1",
+ "grid": "1",
+ "gridSize": "10",
+ "guides": "1",
+ "math": "0",
+ "page": "1",
+ "pageHeight": "1169",
+ "pageScale": "1",
+ "pageWidth": "827",
+ "root": {
+ "mxCell": [
+ {
+ "id": "0"
+ },
+ {
+ "id": "1",
+ "parent": "0"
+ },
+ {
+ "id": "5i7VU8sxTlh_DojUgWXD-1",
+ "mxGeometry": {
+ "as": "geometry",
+ "height": "130",
+ "width": "130",
+ "x": "210",
+ "y": "230"
+ },
+ "parent": "1",
+ "style": "points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_aws_cloud_alt;strokeColor=#232F3E;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;fontColor=#232F3E;dashed=0;",
+ "value": "AWS Cloud",
+ "vertex": "1"
+ },
+ {
+ "id": "xUHJV5QXkyTOu5aMK-rF-2",
+ "mxGeometry": {
+ "as": "geometry",
+ "height": "80",
+ "width": "80",
+ "x": "25",
+ "y": "40"
+ },
+ "parent": "5i7VU8sxTlh_DojUgWXD-1",
+ "style": "image;html=1;image=img/lib/clip_art/computers/Database_128x128.png",
+ "value": "",
+ "vertex": "1"
+ },
+ {
+ "id": "5i7VU8sxTlh_DojUgWXD-2",
+ "mxGeometry": {
+ "as": "geometry",
+ "height": "130",
+ "width": "130",
+ "x": "440",
+ "y": "230"
+ },
+ "parent": "1",
+ "style": "points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_region;strokeColor=#147EBA;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;fontColor=#147EBA;dashed=1;",
+ "value": "Region",
+ "vertex": "1"
+ },
+ {
+ "id": "xUHJV5QXkyTOu5aMK-rF-3",
+ "mxGeometry": {
+ "as": "geometry",
+ "height": "93",
+ "width": "76.5",
+ "x": "26.75",
+ "y": "27"
+ },
+ "parent": "5i7VU8sxTlh_DojUgWXD-2",
+ "style": "outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.ec2;fillColor=#F58534;gradientColor=none;",
+ "value": "",
+ "vertex": "1"
+ }
+ ]
+ },
+ "shadow": "0",
+ "tooltips": "1"
+ },
+ "name": "Page-1"
+ },
+ "etag": "IaZ6VWqQhPlsWStpV9DA",
+ "host": "Electron",
+ "modified": "2023-10-10T12:38:11.657Z",
+ "type": "device",
+ "version": "19.0.3"
+ }
+}
\ No newline at end of file
diff --git a/slp_drawio/tests/resources/test_resource_paths.py b/slp_drawio/tests/resources/test_resource_paths.py
new file mode 100644
index 00000000..f12eccef
--- /dev/null
+++ b/slp_drawio/tests/resources/test_resource_paths.py
@@ -0,0 +1,9 @@
+import os
+
+path = os.path.dirname(__file__)
+
+# drawio files
+drawio = f'{path}/drawio'
+aws_minimal_xml = f'{drawio}/aws_minimal.drawio.xml'
+aws_minimal_drawio = f'{drawio}/aws_minimal.drawio'
+aws_minimal_drawio_as_json = f'{drawio}/aws_minimal_source.json'
diff --git a/slp_drawio/tests/unit/__init__.py b/slp_drawio/tests/unit/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_drawio/tests/unit/load/__init__.py b/slp_drawio/tests/unit/load/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_drawio/tests/unit/load/test_drawio_to_dict.py b/slp_drawio/tests/unit/load/test_drawio_to_dict.py
new file mode 100644
index 00000000..3bb680f0
--- /dev/null
+++ b/slp_drawio/tests/unit/load/test_drawio_to_dict.py
@@ -0,0 +1,61 @@
+import json
+from tempfile import SpooledTemporaryFile
+from unittest.mock import Mock, patch
+
+import pytest
+from pytest import mark
+
+from sl_util.sl_util.dict_utils import compare_dict
+from sl_util.sl_util.file_utils import get_byte_data
+from slp_drawio.slp_drawio.load.drawio_to_dict import DrawIOToDict
+from slp_drawio.tests.resources.test_resource_paths import aws_minimal_drawio, aws_minimal_xml, \
+ aws_minimal_drawio_as_json
+
+
+class TestDrawioToDict:
+
+ @patch('tempfile.SpooledTemporaryFile.read')
+ @mark.parametrize('file,expected', [
+ (aws_minimal_xml, aws_minimal_drawio_as_json),
+ (aws_minimal_drawio, aws_minimal_drawio_as_json),
+ ])
+ def test_correct_source(self, read_mock, file: str, expected: str):
+ # GIVEN the mocked content
+ read_mock.return_value = get_byte_data(file)
+ # AND the parser
+ parser = DrawIOToDict(Mock(file=SpooledTemporaryFile()))
+ # AND the expected content as dict
+ expected_content = json.loads(get_byte_data(expected))
+
+ # WHEN we get the source as dict from the xml
+ source_dict = parser.to_dict()
+
+ # THEN both are the same
+ exclude_paths = ["root['mxfile']['etag']", "root['mxfile']['modified']"]
+ result_xml, result_64 = compare_dict(source_dict, expected_content, exclude_paths=exclude_paths)
+ assert result_xml == result_64
+
+ @patch('tempfile.SpooledTemporaryFile.read')
+ @mark.parametrize('content, error_type, error_msg', [
+ pytest.param(b'INVALID XML CONTENT', 'ParseError', 'syntax error: line 1, column 0', id='no_xml'),
+ pytest.param(b'7VbbcpswEP',
+ 'Error', 'Incorrect padding',
+ id='alphanumeric_no_b64'),
+ pytest.param(b'\x00\x00\x1C\x0A',
+ 'ParseError', 'not well-formed (invalid token): line 1, column 17',
+ id='binary_no_64'),
+ pytest.param(b'QkFTRTY0IEVOQ09ERUQgVVNFTEVTUyBDT05URU5UIA==',
+ 'error', 'Error -3 while decompressing data: invalid distance too far back',
+ id='valid_b64_but_invalid_content'),
+ ])
+ def test_invalid_xml(self, read_mock, content, error_type, error_msg):
+ # GIVEN the mocked content
+ read_mock.return_value = content
+
+ # WHEN we initialize the parser
+ # THEN a ParseError is raised
+ with pytest.raises(BaseException) as error:
+ DrawIOToDict(Mock(file=SpooledTemporaryFile()))
+ # AND the error is as expected
+ assert error.typename == error_type
+ assert str(error.value) == error_msg
diff --git a/slp_mtmt/slp_mtmt/mtmt_loader.py b/slp_mtmt/slp_mtmt/mtmt_loader.py
index 9f8c0b89..64df924d 100644
--- a/slp_mtmt/slp_mtmt/mtmt_loader.py
+++ b/slp_mtmt/slp_mtmt/mtmt_loader.py
@@ -5,10 +5,11 @@
from slp_base.slp_base.provider_loader import ProviderLoader
from slp_mtmt.slp_mtmt.entity.mtmt_entity_threatinstance import MTMThreat
from slp_mtmt.slp_mtmt.mtmt_entity import MTMT, MTMBorder, MTMLine, MTMKnowledge
-from slp_mtmt.slp_mtmt.tm7_to_json import Tm7ToJson
+from slp_mtmt.slp_mtmt.tm7_to_dict import Tm7ToDict
logger = logging.getLogger(__name__)
+
class MTMTLoader(ProviderLoader):
"""
Builder for an MTM class from the xml data
@@ -33,7 +34,7 @@ def __init__(self, source):
self.mtmt = None
def __read(self):
- json_ = Tm7ToJson(self.source).to_json()
+ json_ = Tm7ToDict(self.source).to_dict()
model_ = json_['ThreatModel']
list_ = model_['DrawingSurfaceList']
surface_model_ = list_['DrawingSurfaceModel']
@@ -41,17 +42,26 @@ def __read(self):
= surface_model_ if isinstance(surface_model_, collections.abc.Sequence) else [surface_model_]
for surface_model in surface_model_array:
- if 'Borders' in surface_model and surface_model['Borders'] is not None:
- for border in surface_model['Borders']['KeyValueOfguidanyType']:
- self.borders.append(MTMBorder(border))
- if 'Lines' in surface_model and surface_model['Lines'] is not None:
- for line in surface_model['Lines']['KeyValueOfguidanyType']:
- self.lines.append(MTMLine(line))
+ self.add_borders(surface_model)
+ self.add_lines(surface_model)
+
+ self.add_threats(model_)
+ self.know_base = MTMKnowledge(model_['KnowledgeBase'])
+ def add_threats(self, model_):
if 'ThreatInstances' in model_ and model_['ThreatInstances'] is not None:
for threat in model_['ThreatInstances']['KeyValueOfstringThreatpc_P0_PhOB']:
self.threats.append(MTMThreat(threat))
- self.know_base = MTMKnowledge(model_['KnowledgeBase'])
+
+ def add_lines(self, surface_model):
+ if 'Lines' in surface_model and surface_model['Lines'] is not None:
+ for line in surface_model['Lines']['KeyValueOfguidanyType']:
+ self.lines.append(MTMLine(line))
+
+ def add_borders(self, surface_model):
+ if 'Borders' in surface_model and surface_model['Borders'] is not None:
+ for border in surface_model['Borders']['KeyValueOfguidanyType']:
+ self.borders.append(MTMBorder(border))
def get_mtmt(self) -> MTMT:
return self.mtmt
diff --git a/slp_mtmt/slp_mtmt/parse/mtmt_component_parser.py b/slp_mtmt/slp_mtmt/parse/mtmt_component_parser.py
index f354e7d3..ffb37515 100644
--- a/slp_mtmt/slp_mtmt/parse/mtmt_component_parser.py
+++ b/slp_mtmt/slp_mtmt/parse/mtmt_component_parser.py
@@ -38,7 +38,7 @@ def __create_component(self, border: MTMBorder) -> Component:
representation = calculator.calculate_representation()
if mtmt_type is not None:
component = Component(component_id=border.id,
- name=border.name,
+ name=border.name or '',
component_type=mtmt_type,
parent_type=parent_type,
parent=parent_id,
diff --git a/slp_mtmt/slp_mtmt/parse/mtmt_connector_parser.py b/slp_mtmt/slp_mtmt/parse/mtmt_connector_parser.py
index a4b03c71..8143cb19 100644
--- a/slp_mtmt/slp_mtmt/parse/mtmt_connector_parser.py
+++ b/slp_mtmt/slp_mtmt/parse/mtmt_connector_parser.py
@@ -22,7 +22,7 @@ def __create_dataflow(line: MTMLine) -> Dataflow:
source_node_id = line.source_guid
target_node_id = line.target_guid
return Dataflow(dataflow_id=line.id,
- name=line.name,
+ name=line.name or '',
attributes=line.properties,
source_node=source_node_id,
destination_node=target_node_id,
diff --git a/slp_mtmt/slp_mtmt/parse/mtmt_trustzone_parser.py b/slp_mtmt/slp_mtmt/parse/mtmt_trustzone_parser.py
index 444db86c..e28e09f6 100644
--- a/slp_mtmt/slp_mtmt/parse/mtmt_trustzone_parser.py
+++ b/slp_mtmt/slp_mtmt/parse/mtmt_trustzone_parser.py
@@ -48,7 +48,7 @@ def create_trustzone(self, border) -> Trustzone:
calculator = TrustzoneRepresentationCalculator(self.diagram_representation, border)
representations = calculator.calculate_representation()
tz = Trustzone(trustzone_id=border.id,
- name=border.name,
+ name=border.name or '',
type=mtmt_type,
parent_type=parent_type,
parent=parent_id,
diff --git a/slp_mtmt/slp_mtmt/tm7_to_dict.py b/slp_mtmt/slp_mtmt/tm7_to_dict.py
new file mode 100644
index 00000000..4810e75f
--- /dev/null
+++ b/slp_mtmt/slp_mtmt/tm7_to_dict.py
@@ -0,0 +1,13 @@
+from defusedxml import ElementTree as ET
+
+from sl_util.sl_util.xml_to_dict import xml2dict
+
+
+class Tm7ToDict:
+
+ def __init__(self, xml: str):
+ self.xml = xml
+
+ def to_dict(self) -> dict:
+ xml_data = ET.XML(self.xml)
+ return xml2dict(xml_data, separated_attributes=True)
diff --git a/slp_mtmt/slp_mtmt/tm7_to_json.py b/slp_mtmt/slp_mtmt/tm7_to_json.py
deleted file mode 100644
index 40b85856..00000000
--- a/slp_mtmt/slp_mtmt/tm7_to_json.py
+++ /dev/null
@@ -1,56 +0,0 @@
-from collections import defaultdict
-
-from defusedxml import ElementTree as ET
-
-
-def get_attrs(attrs):
- result = {}
- if attrs is not None:
- for key, value in attrs.items():
- result[remove_curly_info(key)] = value
- return result
-
-
-def get_tag(t):
- return remove_curly_info(t.tag)
-
-
-def remove_curly_info(value):
- if '}' in value:
- return value.split('}')[1]
- else:
- return value
-
-
-def xml2dict(t):
- d = {get_tag(t): {} if t.attrib else None}
- children = list(t)
- if children:
- dd = defaultdict(list)
- for dc in map(xml2dict, children):
- for k, v in dc.items():
- dd[k].append(v)
- d = {get_tag(t): {k: v[0] if len(v) == 1 else v
- for k, v in dd.items()}}
- if t.text:
- text = t.text.strip()
- if children or t.attrib:
- if text:
- d[get_tag(t)]['text'] = text
- else:
- d[get_tag(t)] = text
-
- if t.attrib:
- d['attrib'] = get_attrs(t.attrib)
-
- return d
-
-
-class Tm7ToJson:
-
- def __init__(self, xml: str):
- self.xml = xml
-
- def to_json(self):
- xml_data = ET.XML(self.xml)
- return xml2dict(xml_data)
diff --git a/slp_mtmt/slp_mtmt/util/representation_calculator.py b/slp_mtmt/slp_mtmt/util/representation_calculator.py
index 1a4d18a4..a9e040fa 100644
--- a/slp_mtmt/slp_mtmt/util/representation_calculator.py
+++ b/slp_mtmt/slp_mtmt/util/representation_calculator.py
@@ -49,7 +49,7 @@ def calculate_representation(self):
if not x or not y or not width or not height:
return
representation_id = self.element.id + '-representation'
- representation_name = self.element.name + ' Representation'
+ representation_name = (self.element.name or self.element.id) + ' Representation'
position = {"x": x, "y": y}
size = {"width": width, "height": height}
return RepresentationElement(id_=representation_id, name=representation_name,
diff --git a/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates.otm b/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates.otm
index ffb3573e..c0a1e479 100644
--- a/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates.otm
+++ b/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "Example Project",
"id": "example-project"
@@ -22,7 +22,8 @@
],
"trustZones": [
{
- "id": "6376d53e-6461-412b-8e04-7b3fe2b397de",
+ "id": "13ffd9d9-53ea-4b63-afab-07b730697ddd",
+ "type": "6376d53e-6461-412b-8e04-7b3fe2b397de",
"name": "Internet",
"risk": {
"trustRating": 10
@@ -48,7 +49,8 @@
]
},
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "acafa4b0-f94d-4077-8a42-74b959bd0796",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Cloud",
"risk": {
"trustRating": 10
@@ -80,7 +82,7 @@
"name": "Accounting PostgreSQL",
"type": "CD-MICROSOFT-AZURE-DB-POSTGRESQL",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Accounting PostgreSQL",
@@ -141,7 +143,7 @@
"name": "Android",
"type": "android-device-client",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "13ffd9d9-53ea-4b63-afab-07b730697ddd"
},
"attributes": {
"Name": "Android",
@@ -191,7 +193,7 @@
"name": "Public API v2",
"type": "web-service",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Public API v2",
@@ -883,7 +885,7 @@
"name": "Azure File Storage",
"type": "azure-storage",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Azure File Storage",
@@ -986,7 +988,7 @@
"name": "iOS",
"type": "ios-device-client",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "13ffd9d9-53ea-4b63-afab-07b730697ddd"
},
"attributes": {
"Name": "iOS",
@@ -1036,7 +1038,7 @@
"name": "Browser",
"type": "web-ui",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "13ffd9d9-53ea-4b63-afab-07b730697ddd"
},
"attributes": {
"Name": "Browser",
@@ -1085,7 +1087,7 @@
"name": "Web API",
"type": "web-service",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Web API",
@@ -1277,7 +1279,7 @@
"name": "Azure Storage",
"type": "azure-storage",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Azure Storage",
diff --git a/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates_1_line_trustzone.otm b/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates_1_line_trustzone.otm
index f4e3fca7..45a16ace 100644
--- a/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates_1_line_trustzone.otm
+++ b/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates_1_line_trustzone.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "Example Project",
"id": "example-project"
@@ -22,7 +22,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "acafa4b0-f94d-4077-8a42-74b959bd0796",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Cloud",
"risk": {
"trustRating": 10
@@ -33,7 +34,8 @@
}
},
{
- "id": "6376d53e-6461-412b-8e04-7b3fe2b397de",
+ "id": "c99b79b6-a658-4096-9919-27946d92e23f",
+ "type": "6376d53e-6461-412b-8e04-7b3fe2b397de",
"name": "Generic Trust Line Boundary",
"risk": {
"trustRating": 10
@@ -50,7 +52,7 @@
"name": "Accounting PostgreSQL",
"type": "CD-MICROSOFT-AZURE-DB-POSTGRESQL",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Accounting PostgreSQL",
@@ -96,7 +98,7 @@
"name": "Android",
"type": "android-device-client",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "c99b79b6-a658-4096-9919-27946d92e23f"
},
"attributes": {
"Name": "Android",
@@ -131,7 +133,7 @@
"name": "Public API v2",
"type": "web-service",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Public API v2",
@@ -808,7 +810,7 @@
"name": "Azure File Storage",
"type": "azure-storage",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Azure File Storage",
@@ -896,7 +898,7 @@
"name": "iOS",
"type": "ios-device-client",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "c99b79b6-a658-4096-9919-27946d92e23f"
},
"attributes": {
"Name": "iOS",
@@ -931,7 +933,7 @@
"name": "Browser",
"type": "web-ui",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "c99b79b6-a658-4096-9919-27946d92e23f"
},
"attributes": {
"Name": "Browser",
@@ -965,7 +967,7 @@
"name": "Web API",
"type": "web-service",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Web API",
@@ -1142,7 +1144,7 @@
"name": "Azure Storage",
"type": "azure-storage",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Azure Storage",
diff --git a/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates_1_orphan.otm b/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates_1_orphan.otm
index 983aafdb..9b2fbdc8 100644
--- a/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates_1_orphan.otm
+++ b/slp_mtmt/tests/resources/mtmt/MTMT_example_coordinates_1_orphan.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "Example Project",
"id": "example-project"
@@ -22,7 +22,8 @@
],
"trustZones": [
{
- "id": "6376d53e-6461-412b-8e04-7b3fe2b397de",
+ "id": "13ffd9d9-53ea-4b63-afab-07b730697ddd",
+ "type": "6376d53e-6461-412b-8e04-7b3fe2b397de",
"name": "Internet",
"risk": {
"trustRating": 10
@@ -33,7 +34,8 @@
}
},
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "acafa4b0-f94d-4077-8a42-74b959bd0796",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Cloud",
"risk": {
"trustRating": 10
@@ -42,6 +44,14 @@
"Name": "Cloud",
"Dataflow Order": "0"
}
+ },
+ {
+ "id": "185f1c6f-3879-464c-89c9-dc6f0b0c2b21",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "name": "Default trustzone",
+ "risk": {
+ "trustRating": 10
+ }
}
],
"components": [
@@ -50,7 +60,7 @@
"name": "Accounting PostgreSQL",
"type": "CD-MICROSOFT-AZURE-DB-POSTGRESQL",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Accounting PostgreSQL",
@@ -64,7 +74,7 @@
"name": "Android",
"type": "android-device-client",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "13ffd9d9-53ea-4b63-afab-07b730697ddd"
},
"attributes": {
"Name": "Android",
@@ -77,7 +87,7 @@
"name": "Public API v2",
"type": "web-service",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Public API v2",
@@ -92,7 +102,7 @@
"name": "Azure File Storage",
"type": "azure-storage",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Azure File Storage",
@@ -108,7 +118,7 @@
"name": "iOS",
"type": "ios-device-client",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "185f1c6f-3879-464c-89c9-dc6f0b0c2b21"
},
"attributes": {
"Name": "iOS",
@@ -121,7 +131,7 @@
"name": "Browser",
"type": "web-ui",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "13ffd9d9-53ea-4b63-afab-07b730697ddd"
},
"attributes": {
"Name": "Browser",
@@ -133,7 +143,7 @@
"name": "Web API",
"type": "web-service",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Web API",
@@ -148,7 +158,7 @@
"name": "Azure Storage",
"type": "azure-storage",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "acafa4b0-f94d-4077-8a42-74b959bd0796"
},
"attributes": {
"Name": "Azure Storage",
diff --git a/slp_mtmt/tests/resources/mtmt/model_with_figures_without_name.tm7 b/slp_mtmt/tests/resources/mtmt/model_with_figures_without_name.tm7
new file mode 100644
index 00000000..ee82e796
--- /dev/null
+++ b/slp_mtmt/tests/resources/mtmt/model_with_figures_without_name.tm7
@@ -0,0 +1,4 @@
+DRAWINGSURFACE669b8054-f189-4229-8a44-b855bdf4e9dbDiagramNameNameDiagram 1DRAWINGSURFACEd10a849a-a9cb-4999-8bb7-173deed764bcGE.TB.Bd10a849a-a9cb-4999-8bb7-173deed764bcGeneric Trust Border BoundaryNameDataflow Order15ccd509-98eb-49ad-b9c2-b4a2926d17800Trust Boundary AreaGE.TB.B17616202793706c8cfbd0-21c5-48f0-a9f6-bcdad13d778bGE.EI6c8cfbd0-21c5-48f0-a9f6-bcdad13d778bGeneric External InteractorNameGeneric External InteractorOut Of Scope71f3d9aa-b8ef-4e54-8126-607a1d903103falseReason For Out Of Scope752473b6-52d4-4776-9a24-202153f7d579GE.EI1001890313103f752f2b7-07f5-4128-b32f-739231789e5eGE.Pf752f2b7-07f5-4128-b32f-739231789e5eAzure Traffic ManagerNameOut Of Scope71f3d9aa-b8ef-4e54-8126-607a1d903103falseReason For Out Of Scope752473b6-52d4-4776-9a24-202153f7d579Configurable AttributesAs Generic ProcessSE.P.TMCore.AzureTrafficManager10040702991001144fb8b-7933-4830-95a3-0e999f120a0bGE.TB.B1144fb8b-7933-4830-95a3-0e999f120a0bAzure Trust BoundaryNameDataflow Order15ccd509-98eb-49ad-b9c2-b4a2926d17800Configurable AttributesAs Generic Trust Border BoundaryTrust Boundary AreaSE.TB.TMCore.AzureTrustBoundary50176049772bdd073ca-fd5c-4657-a325-93886ff6589fGE.TB.Bbdd073ca-fd5c-4657-a325-93886ff6589fAzure Trust BoundaryNameDB BoundaryDataflow Order15ccd509-98eb-49ad-b9c2-b4a2926d17800Configurable AttributesAs Generic Trust Border BoundaryTrust Boundary AreaSE.TB.TMCore.AzureTrustBoundary1371370105258e993a00e-a907-4a9b-b191-965f244b8b22GE.DSe993a00e-a907-4a9b-b191-965f244b8b22DatabaseNameDatabaseOut Of Scope71f3d9aa-b8ef-4e54-8126-607a1d903103falseReason For Out Of Scope752473b6-52d4-4776-9a24-202153f7d579Configurable AttributesDatabase Technologies6047e74b-a4e1-4e5b-873e-3f7d8658d6b3SelectGenericOnPrem0SQL Version0a5c9e0f-f68c-4607-9a1a-a02841f1e9deSelectAllV12MsSQL2016MsSQL2012MsSQL20140SSIS packages Used649208cc-3b55-40ff-94b9-015c0fb0c9e8SelectYesNo0As Generic Data StoreSE.DS.TMCore.SQL1001760120100310b3b1d-b9f2-46fc-b863-f42c7f71480aGE.P310b3b1d-b9f2-46fc-b863-f42c7f71480aWeb ApplicationNameWeb ApplicationOut Of Scope71f3d9aa-b8ef-4e54-8126-607a1d903103falseReason For Out Of Scope752473b6-52d4-4776-9a24-202153f7d579Configurable AttributesWeb Application Technologiesf9960f99-8659-4776-90d7-e454ef832db7SelectGenericWeb FormsMVC5MVC60EnvironmentType80fe9520-5f00-4480-ad47-f2fd75dede82SelectOnPremAzure0Processes XMLdf53c172-b70c-412c-9e99-a6fbc10748eeSelectYesNo0As Generic ProcessSE.P.TMCore.WebApp10054101161001564ab7f-e601-46ba-b58b-a62365808724GE.DF1564ab7f-e601-46ba-b58b-a62365808724ResponseNameDataflow Order15ccd509-98eb-49ad-b9c2-b4a2926d17800Out Of Scope71f3d9aa-b8ef-4e54-8126-607a1d903103falseReason For Out Of Scope752473b6-52d4-4776-9a24-202153f7d579Configurable AttributesAs Generic Data FlowShow Boundary Threats23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59SelectYesNo0SE.DF.TMCore.Response309392EastWest6c8cfbd0-21c5-48f0-a9f6-bcdad13d778b287363f752f2b7-07f5-4128-b32f-739231789e5e412349b12a500c-4f9b-40f5-bb7f-33c3759706d6GE.DFb12a500c-4f9b-40f5-bb7f-33c3759706d6RequestNameRequestDataflow Order15ccd509-98eb-49ad-b9c2-b4a2926d17800Out Of Scope71f3d9aa-b8ef-4e54-8126-607a1d903103falseReason For Out Of Scope752473b6-52d4-4776-9a24-202153f7d579Configurable AttributesAs Generic Data FlowShow Boundary Threats23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59SelectYesNo0SE.DF.TMCore.Request382161SouthWestEast310b3b1d-b9f2-46fc-b863-f42c7f71480a559197e993a00e-a907-4a9b-b191-965f244b8b22271170e2d2e032-b352-4d73-be9e-8830927cf55cGE.DFe2d2e032-b352-4d73-be9e-8830927cf55cResponseNameResponseDataflow Order15ccd509-98eb-49ad-b9c2-b4a2926d17800Out Of Scope71f3d9aa-b8ef-4e54-8126-607a1d903103falseReason For Out Of Scope752473b6-52d4-4776-9a24-202153f7d579Configurable AttributesAs Generic Data FlowShow Boundary Threats23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59SelectYesNo0SE.DF.TMCore.Response423253SouthNorth310b3b1d-b9f2-46fc-b863-f42c7f71480a5912116c8cfbd0-21c5-48f0-a9f6-bcdad13d778b2403181TH1786c8cfbd0-21c5-48f0-a9f6-bcdad13d778b1564ab7f-e601-46ba-b58b-a62365808724f752f2b7-07f5-4128-b32f-739231789e5e669b8054-f189-4229-8a44-b855bdf4e9db1564ab7f-e601-46ba-b58b-a6236580872406c8cfbd0-21c5-48f0-a9f6-bcdad13d778b:1564ab7f-e601-46ba-b58b-a62365808724:f752f2b7-07f5-4128-b32f-739231789e5e0001-01-01T00:00:00HighTitleAn adversary may spoof the service or service endpoints by leveraging stale CNAME DNS records and executing a subdomain hijack attackUserThreatCategorySpoofingUserThreatShortDescriptionSpoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network addressUserThreatDescriptionAn adversary may spoof the service or service endpoints by leveraging stale CNAME DNS records and executing a subdomain hijack attackInteractionStringFrom Generic External Interactor to via unnamedPossibleMitigationsAddress stale CNAME DNS records mapping custom domain names to the domain name of the Azure Traffic Manager instance. In some cases, deleting the stale CNAME records may be sufficient, while in other cases, the domain name of the Azure Traffic Manager instance should be kept to prevent subdomain hijack attacks. Refer: <a href="https://aka.ms/tmt-th178 ">https://aka.ms/tmt-th178 </a>PriorityHighSDLPhaseImplementation6c8cfbd0-21c5-48f0-a9f6-bcdad13d778bAutoGeneratedf752f2b7-07f5-4128-b32f-739231789e5eTH178falsefalseTH1310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d61310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary can gain unauthorized access to database due to lack of network access protectionUserThreatCategoryElevation of PrivilegesUserThreatShortDescriptionA user subject gains increased capability or privilege by taking advantage of an implementation bugUserThreatDescriptionIf there is no restriction at network or host firewall level, to access the database then anyone can attempt to connect to the database from an unauthorized locationInteractionStringRequestPossibleMitigationsConfigure a Windows Firewall for Database Engine Access. Refer: <a href="https://aka.ms/tmtconfigmgmt#firewall-db">https://aka.ms/tmtconfigmgmt#firewall-db</a>PriorityHighSDLPhaseImplementation310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH1falsefalseTH116310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d62310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary can gain unauthorized access to resources in an Azure subscriptionUserThreatCategoryElevation of PrivilegesUserThreatShortDescriptionA user subject gains increased capability or privilege by taking advantage of an implementation bugUserThreatDescriptionAn adversary can gain unauthorized access to resources in Azure subscription. The adversary can be either a disgruntled internal user, or someone who has stolen the credentials of an Azure subscription.InteractionStringRequestPossibleMitigationsEnable fine-grained access management to Azure Subscription using RBAC. Refer: <a href="https://aka.ms/tmtauthz#grained-rbac">https://aka.ms/tmtauthz#grained-rbac</a>PriorityHighSDLPhaseDesign310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH116falsefalseTH4310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d63310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary can gain unauthorized access to database due to loose authorization rulesUserThreatCategoryElevation of PrivilegesUserThreatShortDescriptionA user subject gains increased capability or privilege by taking advantage of an implementation bugUserThreatDescriptionDatabase access should be configured with roles and privilege based on least privilege and need to know principle. InteractionStringRequestPossibleMitigationsEnsure that least-privileged accounts are used to connect to Database server. Refer: <a href="https://aka.ms/tmtauthz#privileged-server">https://aka.ms/tmtauthz#privileged-server</a> Implement Row Level Security RLS to prevent tenants from accessing each others data. Refer: <a href="https://aka.ms/tmtauthz#rls-tenants">https://aka.ms/tmtauthz#rls-tenants</a> Sysadmin role should only have valid necessary users . Refer: <a href="https://aka.ms/tmtauthz#sysadmin-users">https://aka.ms/tmtauthz#sysadmin-users</a>PriorityHighSDLPhaseImplementation310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH4falsefalseTH5310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d64310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary can gain access to sensitive data by sniffing traffic to databaseUserThreatCategoryInformation DisclosureUserThreatShortDescriptionInformation disclosure happens when the information can be read by an unauthorized partyUserThreatDescriptionAn adversary can eaves drop on communication between application server and Database server, due to clear text communication protocol usage.InteractionStringRequestPossibleMitigationsEnsure SQL server connection encryption and certificate validation. Refer: <a href="https://aka.ms/tmtcommsec#sqlserver-validation">https://aka.ms/tmtcommsec#sqlserver-validation</a> Force Encrypted communication to SQL server. Refer: <a href="https://aka.ms/tmtcommsec#encrypted-sqlserver">https://aka.ms/tmtcommsec#encrypted-sqlserver</a>PriorityHighSDLPhaseImplementation310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH5falsefalseTH6310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d65310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary can gain access to sensitive PII or HBI data in databaseUserThreatCategoryInformation DisclosureUserThreatShortDescriptionInformation disclosure happens when the information can be read by an unauthorized partyUserThreatDescriptionAdditional controls like Transparent Data Encryption, Column Level Encryption, EKM etc. provide additional protection mechanism to high value PII or HBI data. InteractionStringRequestPossibleMitigationsUse strong encryption algorithms to encrypt data in the database. Refer: <a href="https://aka.ms/tmtcrypto#strong-db">https://aka.ms/tmtcrypto#strong-db</a> Ensure that sensitive data in database columns is encrypted. Refer: <a href="https://aka.ms/tmtdata#db-encrypted">https://aka.ms/tmtdata#db-encrypted</a> Ensure that database-level encryption (TDE) is enabled. Refer: <a href="https://aka.ms/tmtdata#tde-enabled">https://aka.ms/tmtdata#tde-enabled</a> Ensure that database backups are encrypted. Refer: <a href="https://aka.ms/tmtdata#backup">https://aka.ms/tmtdata#backup</a> Use SQL server EKM to protect encryption keys. Refer: <a href="https://aka.ms/tmtcrypto#ekm-keys">https://aka.ms/tmtcrypto#ekm-keys</a> Use AlwaysEncrypted feature if encryption keys should not be revealed to Database engine. Refer: <a href="https://aka.ms/tmtcrypto#keys-engine">https://aka.ms/tmtcrypto#keys-engine</a>PriorityHighSDLPhaseImplementation310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH6falsefalseTH82310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d66310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary can gain access to sensitive data by performing SQL injectionUserThreatCategoryInformation DisclosureUserThreatShortDescriptionInformation disclosure happens when the information can be read by an unauthorized partyUserThreatDescriptionSQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. The primary form of SQL injection consists of direct insertion of code into user-input variables that are concatenated with SQL commands and executed. A less direct attack injects malicious code into strings that are destined for storage in a table or as metadata. When the stored strings are subsequently concatenated into a dynamic SQL command, the malicious code is executed. InteractionStringRequestPossibleMitigationsEnsure that login auditing is enabled on SQL Server. Refer: <a href="https://aka.ms/tmtauditlog#identify-sensitive-entities">https://aka.ms/tmtauditlog#identify-sensitive-entities</a> Ensure that least-privileged accounts are used to connect to Database server. Refer: <a href="https://aka.ms/tmtauthz#privileged-server">https://aka.ms/tmtauthz#privileged-server</a> Enable Threat detection on Azure SQL database. Refer: <a href="https://aka.ms/tmtauditlog#threat-detection">https://aka.ms/tmtauditlog#threat-detection</a> Do not use dynamic queries in stored procedures. Refer: <a href="https://aka.ms/tmtinputval#stored-proc">https://aka.ms/tmtinputval#stored-proc</a>PriorityHighSDLPhaseImplementation310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH82falsefalseTH3310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d67310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00MediumTitleAn adversary can deny actions on database due to lack of auditingUserThreatCategoryRepudiationUserThreatShortDescriptionRepudiation threats involve an adversary denying that something happenedUserThreatDescriptionProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a system.InteractionStringRequestPossibleMitigationsEnsure that login auditing is enabled on SQL Server. Refer: <a href="https://aka.ms/tmtauditlog#identify-sensitive-entities">https://aka.ms/tmtauditlog#identify-sensitive-entities</a>PriorityMediumSDLPhaseImplementation310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH3falsefalseTH117310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d68310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary may spoof an Azure administrator and gain access to Azure subscription portalUserThreatCategorySpoofingUserThreatShortDescriptionSpoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network addressUserThreatDescriptionAn adversary may spoof an Azure administrator and gain access to Azure subscription portal if the administrator's credentials are compromised.InteractionStringRequestPossibleMitigationsEnable fine-grained access management to Azure Subscription using RBAC. Refer: <a href="https://aka.ms/tmtauthz#grained-rbac">https://aka.ms/tmtauthz#grained-rbac</a> Enable Azure Multi-Factor Authentication for Azure Administrators. Refer: <a href="https://aka.ms/tmtauthn#multi-factor-azure-admin">https://aka.ms/tmtauthn#multi-factor-azure-admin</a>PriorityHighSDLPhaseDesign310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH117falsefalseTH105310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d69310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary can tamper critical database securables and deny the actionUserThreatCategoryTamperingUserThreatShortDescriptionTampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processesUserThreatDescriptionAn adversary can tamper critical database securables and deny the actionInteractionStringRequestPossibleMitigationsAdd digital signature to critical database securables. Refer: <a href="https://aka.ms/tmtcrypto#securables-db">https://aka.ms/tmtcrypto#securables-db</a>PriorityHighSDLPhaseDesign310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH105falsefalseTH89310b3b1d-b9f2-46fc-b863-f42c7f71480ab12a500c-4f9b-40f5-bb7f-33c3759706d6e993a00e-a907-4a9b-b191-965f244b8b22669b8054-f189-4229-8a44-b855bdf4e9dbb12a500c-4f9b-40f5-bb7f-33c3759706d610310b3b1d-b9f2-46fc-b863-f42c7f71480a:b12a500c-4f9b-40f5-bb7f-33c3759706d6:e993a00e-a907-4a9b-b191-965f244b8b220001-01-01T00:00:00HighTitleAn adversary may leverage the lack of monitoring systems and trigger anomalous traffic to databaseUserThreatCategoryTamperingUserThreatShortDescriptionTampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processesUserThreatDescriptionAn adversary may leverage the lack of intrusion detection and prevention of anomalous database activities and trigger anomalous traffic to databaseInteractionStringRequestPossibleMitigationsEnable Threat detection on Azure SQL database. Refer: <a href="https://aka.ms/tmtauditlog#threat-detection">https://aka.ms/tmtauditlog#threat-detection</a>PriorityHighSDLPhaseDesign310b3b1d-b9f2-46fc-b863-f42c7f71480aAutoGeneratede993a00e-a907-4a9b-b191-965f244b8b22TH89falsefalsetrue4.3falsefalseSelectYesNoShow Boundary ThreatsVirtualDynamic23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59ListA unidirectional representation of the flow of data between elementsfalseGE.DFBefore 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Generic Data FlowROOTLinefalseAnyAnyfalseA representation of a data storefalseGE.DSLower right of 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gA3tbmHb8dUAgCASQDc1OYevh1TCQAAJgFwU5t7+HZMJQAAmATATW3u4dsxlQAAYBIAN7W5h2/HVAIAgEkA3NTmHr4dUwkAACYBcFObe/h2TCUAAJgEwE1t7uHbMZUAAGASADe1uYdvx1QCAIBJANzU5h6+HVMJAAAmAXBTm3v4dkwlAACYBMBNbe7h2zGVAABgEgA3tbmHb8dUAgCASQDc1OYevh1TCQAAJgFwU5t7+HZMJQAAmATATW3u4dsxlQAAYBIAN7W5h2/HVAkBUBsAyPG3X3779nnev9lPEAAPqD90bQaAFALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQIAgDQC4AECAIA0AuABAgCANALgAQkBsO0C4Pfz85dfvn2e92/2EwTAAwQAAJMAuKnNPXw7phIAAEwC4KY29/DtmEoAADAJgJva3MO3YyoBAMAkAG5qcw/fjqkEAACTALipzT18O6YSAABMAuCmNvfw7ZhKAAAwCYCb2tzDt2MqAQDAJABuanMP346pBAAAkwC4qc09fDumEgAATALgpjb38O2YSgAAMAmAm9rcw7djKgEAwCQAbmpzD9+OqQQAAJMAuKnNPXw7phIAAEwC4KY29/DtmEoAADAJgJva3MO3YyoBAMAkAG5qcw/fjqkEAACTALipzT18O6YSAABMAuCmNvfw7ZhKAAAwCYCb2tzDt2MqAQDAJABuanMP346pBAAAkwC4qc09fDumEgAATALgpjb38O2YSgAAMAmAm9rcw7djKgEAwCQAbmpzD9+OqQQAAJMAuKnNPXw7phIAAEwC4KY29/DtmEoAADAJgJva3MO3YyoBAMAkAG5qcw/fjqkEAACTALipzT18O6YSAABMAuCmNvfw7ZhKAAAwCYCb2tzDt2MqAQDAJABuanMP346pBAAAkwC4qc09fDumEgAATALgpjb38O2YSgAAMAmAm9rcw7djKgEAwCQAbmpzD9+OqQQAAJMAuKnNPXw7phIAAEwC4KY29/DtmEoAADAJgJva3MO3YyoBAMAkAG5qcw/fjqkEAACTALipzT18O6YSAABMAuCmNvfw7ZhKAAAwCYCb2tzDt2MqAQDAJABuanMP346pBAAAkwC4qc09fDumEgAATALgpjb38O2YSgAAMAmAm9rcw7djKgEAwCQAbmpzD9+OqQQAAJMAuKnNPXw7phIAAEwC4KY29/DtmEoAADAJgJva3MO3YyoBAMAkAG5qcw/fjqkEAACTALipzT18O6YSAABMAuCmNvfw7ZhKAAAwCYCb2tzDt2MqAQDAJABuanMP346pBAAAkwC4qc09fDumEgAATALgpjb38O2YSgAAMAmAm9rcw7djKgEAwCQAbmpzD9+OqQQAAJMAuKnNPXw7phIAAEwC4KY29/DtmEoAADAJgJva3MO3YyoBAMAkAG5qcw/fjqkEAACTALipzT18O6YSAABMAuCmNvfw7ZhKAAAwCYCb2tzDt2MqAQDAJABuanMP346pBAAAkwC4qc09fDumEgAATALgpjb38O2YSgAAMAmAm9rcw7djKgEAwCQAbmpzD9+OqQQAAJMAuKnNPXw7phIAAEwC4KY29/DtmEoAADAJgJva3MO3YyoBAMAkAG5qcw/fjqkEAACTALipzT18O6YSAABMAuCmNvfw7ZhKAAAwCYCb2tzDt2MqAQDAJABuanMP346pBAAAkwC4qc09fDumEgAATALgpjb38O2YSgAAMAmAm9rcw7djKgEAwCQAbmpzD9+OqQQAAJMAuKnNPXw7pkoIgO++/+ErADn+56+/fvs879/sJwiAByQEAAD8IwHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8AABAEAaAfAAAQBAGgHwAAEAQBoB8IB//tc/f/3u+x8AIMa//Nt/rf+zUv0hAwAA+P8RAADwgQQAAHwgAQAAH0gAAMAHEgAA8IEEAAB8IAEAAB9IAADABxIAAPCBBAAAfCABAAAfSAAAwAcSAADwgQQAAHwgAQAAH0gAAMAHEgAA8IEEAAB8IAEAAB9IAADABxIAAPCBBAAAfCABAAAfSAAAwAcSAADwgQQAAHwgAQAAH0gAAMAHEgAA8IEEAAB8IAEAAB9IAADABxIAAPCBBAAAfCABAAAfSAAAwAcSAADwgQQAAHwgAQAAH0gAAMAHEgAA8IH+HgDfff/DVwDgM/w9AACAz7I+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgDvtj4CAO+2PgIA77Y+AgBv9vVP/wvm8MX4W+CLKgAAAABJRU5ErkJggg==Generic Data StoreROOTParallelLinesfalseAnyAnyfalseA representation of an external interactorfalseGE.EILower right of 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Generic External InteractorROOTRectanglefalseAnyAnyfalseA representation of a generic processfalseGE.PCentered on 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Generic ProcessROOTEllipsefalseAnyAnyfalseA border representation of a trust boundaryfalseGE.TB.BBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCGeneric Trust Border BoundaryROOTBorderBoundaryfalseAnyAnyfalseAn arc representation of a trust boundaryfalseGE.TB.LBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABX0lEQVQ4T2NgNPXGh/mhGJscGCNzQArtgVgfxmcy87kAwlA5ZLVwDGOAFQPp/1Dcj8zHZwiY4LUPdgLSMM0YmM8+5JaAY5gRkI3dAJuUUlsgjVUzCM/ZuDPg////vEA2dgNAkqpBKTuBbKwGRNV0iQNpmCZQGMG9AxPk57IJvA6ksRrAYu67EEjLA7E+s7nPReQwAWtGC0CiMMwQkPNZ5H0TtqArIIRBAWueUCgM9gLQEG1QGHDbBr1YuftQDJDvapFYtAhdEwwDY+TO8cvXXUCWw8IAbMjCrXtDgDQHlK8E04CO1YPTVoA0A9nwQIQZAtYMxaBAw2oAFINSLaoBSFgfGEgPgDQ2jWAs5hZVCaSxGwB0Ca+iX9I2IBusGORn3YistTA+q4Xf59KJcy1BarEaAMJAQ8ABixRg6omN/fWgwF26Y38EzLsghfiwNhBbADELlC8KxEpAzAHh/2cAANCSU7ngF2KpAAAAAElFTkSuQmCCGeneric Trust Line BoundaryROOTLineBoundaryfalseAnyAnyfalseA representation of an annotationfalseGE.ACentered on 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Free Text AnnotationROOTAnnotationfalseAnyAnyMicrosoft C+AI Security11111111-1111-1111-1111-111111111111Azure Threat Model Template1.0.0.33falseRepresents a request from a source to a target.falseSE.DF.TMCore.RequestBefore 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RequestGE.DFLinefalseAnyAnyfalseRepresents a response from a target to a sourcefalseSE.DF.TMCore.ResponseBefore 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ResponseGE.DFLinefalseAnyAnyfalsefalseSelectSQLMongoDBAzure TableCassandraAPI TypeVirtualDynamicd456e645-5642-41ad-857f-951af1a3d968ListfalseSelectAllow access from all networksAllow access from selected networks (including Azure)Allow access from selected networks (excluding Azure)Azure Cosmos DB Firewall SettingsVirtualDynamicb646c6da-6894-432a-8925-646ae6d1d0eaListGlobally distributed, multi-model database service with support for NoSQLfalseSE.P.TMCore.AzureDocumentDBLower right of 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 Cosmos DBGE.DSParallelLinesfalseAnyAnyfalsefalseSelectAllow access from all networksAllow access from selected networksAzure Key Vault Firewall SettingsVirtualDynamiccd610fb8-4fbd-49c0-966f-8b4634b39262ListfalseSelectTrueFalseAzure Key Vault Audit Logging EnabledVirtualDynamic78bf9482-5267-41c6-84fd-bac2fb6ca0b9ListfalseSelectManaged IdentitiesService or User Principal and CertificateService or User Principal and SecretAuthenticating to Key VaultVirtualDynamicae94fa17-596d-476e-a283-0afc166dcf26ListTool for securely storing and accessing secretsfalseSE.DS.TMCore.AzureKeyVaultLower right of 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Azure Key VaultGE.DSParallelLinesfalseAnyAnyfalsefalseSelectTrueFalseAzure Redis Cache TLS EnforcedVirtualDynamic866e2e37-a089-45bc-9576-20fc95304b82ListfalseSelectAllow access from all networksAllow access from selected networksAzure Redis Cache Firewall SettingsVirtualDynamic1bda806d-f9b6-4d4e-ab89-bf649f2c2ca5ListAzure Redis CachefalseSE.P.TMCore.AzureRedisLower right of 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Azure Redis CacheGE.DSParallelLinesfalseAnyAnyfalsefalseSelectFileTableQueueBlobStorage TypeVirtualDynamicb3ece90f-c578-4a48-b4d4-89d97614e0d2ListfalseSelectTrueFalseHTTPS EnforcedVirtualDynamic229f2e53-bc3f-476c-8ac9-57da37efd00fListfalseSelectAllow access from all networksAllow access from selective networksNetwork SecurityVirtualDynamiceb012c7c-9201-40d2-989f-2aad423895a5ListfalseSelectTrueFalseCORS EnabledVirtualDynamicc63455d0-ad77-4b08-aa02-9f8026bb056fListAzure StoragefalseSE.DS.TMCore.AzureStorageLower right of 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Azure StorageGE.DSParallelLinesfalseAnyAnyfalsefalseSelectAzure-RedisGenericCache TechnologiesVirtualDynamic2226af6a-5cfe-4283-a62d-f35d3234336dListfalseSelectAllCache VersionVirtualDynamic250ddabe-ef50-4fe3-9f7d-74881a8c608eListCachefalseSE.DS.TMCore.CacheLower right of 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.DSParallelLinesfalseAnyAnyfalsefalseSelectGenericOnPremDatabase TechnologiesVirtualDynamic6047e74b-a4e1-4e5b-873e-3f7d8658d6b3ListfalseSelectAllV12MsSQL2016MsSQL2012MsSQL2014SQL VersionVirtualDynamic0a5c9e0f-f68c-4607-9a1a-a02841f1e9deListfalseSelectYesNoSSIS packages UsedVirtualDynamic649208cc-3b55-40ff-94b9-015c0fb0c9e8ListDatabasefalseSE.DS.TMCore.SQLLower right of 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F4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeAkCJVHwAegkAJVLxAeglAJRIxQeglwBQIhUfgF4CQIlUfAB6CQAlUvEB6CUAlEjFB6CXAFAiFR+AXgJAiVR8AHoJACVS8QHoJQCUSMUHoJcAUCIVH4BeA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DatabaseGE.DSParallelLinesfalseAnyAnyfalsefalseSelectYesNoAzure SQL DB SSIS Packages UsedVirtualDynamicd8830a8d-37b8-472e-abcc-0d157857f576ListfalseSelectAllow access from all networksAllow access from AzureAllow access from selected networksAzure SQL DB Firewall SettingsVirtualDynamice68e212d-896e-403e-8a2d-8c6d2b2505dfListfalseSelectTrueFalseAzure SQL DB TDE EnabledVirtualDynamic3a2a095f-94bc-467f-987c-8dac8307cdc6ListfalseSelectTrueFalseAzure SQL DB Auditing EnabledVirtualDynamic6a3509e5-a3fd-41db-8dea-6fb44b031e4bListfalseSelectTrueFalseVulnerability Assessment EnabledVirtualDynamic212cf67e-047a-4617-860f-92282e04b8d8ListServer based TDS service for highly available, globally distributed appsfalseSE.DS.TMCore.AzureSQLDBLower right of stenciliVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAABcRgAAXEYBFJRDQQAAOc5JREFUeF7t3S3UHFW6t/GRRx6JfCVyJBI5ciwSiRyJGHFExBERIyIQiBExiEjEEcgIBAIRgYiIiIiIQCAwebmerJp0Nnf37l27qvZHXeK31qx7SD39UV31r/35l3fv3kmSpJMJi9IRfnj527vF97/8+u6f//fmqq+evXn3+TevdvHF09fh31w8e/Hrf14n0vchSSMKi1KJ56/e3xi//enjm3h6o/3L1y+m89//88tH7/HL7z4OEwQbPpvXv/7+x0cVf36S1EJYlPDbH/es5an38fO3Dzc0bnDc6D57MucNfW+fPHofGP727StDgqSmwqLOg6d3mrgvb+6fPn4Z3rx0jDQkPPnx7UNAIJBdfneSVCMsai4v3vz+cAN59MPbd//4/n3TPDeZ6Oajvi1dDnyPtMrYciBprbCoMfE0z9MiT43cJP76L5/kz+K//vk+GCxjEAgGL98aDCRdFxbVv+Vmz+h4++N1zRIMvv4jFDz9+dd3tAal55KkcwqL6gtPczT38nTnU71qLd0ItBQw/sOWAumcwqLa4QmNJ3tv9jqSoUA6n7Co4yw3fBajcWCeevL//vflQxcTXQcONJTmExa1H2/4GhXTQ5l9QAvB24cFEeNzXNIYwqK24w1fs2LwKYMLWcgoPe8l9S8sqg5PSDSdesPXmTCGgLUmnGkgjSEsqgz9o6yD//d/v36YdhVdHKUzYfwA3QVMV01/L5L6EBaVx1MOTzvOwZduoyWMFjG7CqS+hEXFuIDxVMPTTXShk3Qb0w2Z4srMAvc2kNoKi/qAJkyeXrhwRRc0SevQXUa3Gd1nhgHpeGHx7FgEheZ9d8WTjkEYoGWAVS/T36OkfYTFM+IJhCcRtmCNLlCSjkEXGwHc1QilfYXFM+GJgycPR+9L/SGQ20Ug7SMszo5pe6x57mA+aQyMwWEsjtMKpe2ExVkxdc+nfWlsjM1hdU1bBaQ6YXE2rMzHKmXRxUTSmFhfgJY89yWQ1gmLM+DpgKcEm/mludGiR/eAgwalMmFxZPTvs0GJ8/bHRPMurTWX2EiJJ709MR89/btOAx0P58pPrx0nIN0jLI6IGz/9+9FFQcehWfbyJnp5k6UrhlkXi1H7cC/fA+/p8j1evnc3g2qHz5/vJv3uJH0QFkdC/x/L8zqwb3/LjY3Pm5sdy7lyE3T3tzw+Iz4rPjM+O1qpls8z+qy1jb/+66VBQLoiLI6Ap0cupDb1b2dpfudzffz87cMNy+bU4/BZ85kzdmVpTeAGFn1XKsNn6bksfSws9owbPzcnm1fXWZrol6d4n+DHsLQgsEIe3x3fob+BcowRoLsw/XylMwqLvWJFMEf134+tihkXwU2Dm4fTpebDd7oEA75rt6fOo7uQLhh/Dzq7sNgbVv+yKfQ6LmhL0z19zDZ1inNgGW/AuWFX2Z/RgkJrYvrZSWcRFnuxDPCLfrxnRisITZn0FXuz1704VzhnaCmwJe0Dxr58/4sDBXU+YbEH/CDt43yPZl2CEKOZ7b/UVjiXOKc4t+w6ePEQjOwW0JmExZb4AZ59Pj9PZ3wGNOF6QdJRONc4587cQsBDh60BOouw2MqZn/rZ9pT+SEfkqxeci5yTnJvROTszWwN0BmHxaGd86mdQFu/ZRUo0Cs5VztmzDCi0NUCzC4tHYoT/WZ76Ga3P4D1v+hrdmcKArQGaVVg8Cv2Nsy/hu9z0ea/uX64ZLWFg5t8yDymst5C+d2lkYfEIs0/vYxAVU658ctBZcK5zzs+6iyIBh/eXvm9pVGFxT1wk2Ho1+oHNgKd9+w11dnTtzdoqwMNL+n6lEYXFvbx8+/uUTwc0D7IUq3P0pY8R+Gfcu4OZEbbuaXRhcQ/0n802YIiLGhc3+/al22bcxIuHGR5q0vcqjSIsbo0m8ZmaAgkyrLHujV8qM1sQ4Frg4ECNKixuiR38Zrn58z648dv0J9VZgsAMrYJcFxz3oxGFxa1w849+MCOiz88+fmlb/KYYOBv95kZiCNCIwuIW+DFEP5TR0FTpwj3SvrhejL7/gCFAowmLtdh2dIamva9t7pcOQ7cAv7notzgKQ4BGEhZr0KQ3Q5L3qV9qgxvoyA8QvHY39dIIwmKNz78Ze+cwmvxpwUjfl6Tj8Bsc+UGC127roXoXFtdihHz0YxjFX//lvF6pF7Qm8puMfqsj4GEofU9ST8LiGsyFjX4Eo+BCY2KX+sK4gJFbFXkoSt+T1IuwWIof6ejNdU7xk/pEMB/5+uJCQepVWCw1ctM/A3bs85f6RtfcqAMDGVfkA4Z6FBZL8MNk1Hx04o/AKTvSGHiSHvVa4w6C6lFYLDHy1r689vT9SOoXN9LotzwCWxrVm7B4L5q1ohN9FP4gpbFwzRm1FeCzJ84KUF/C4r1GTuM+/UtjGvm644BA9SQs3oOR/yP3/T9/5Q9RGhGr7EW/6RH44KGehMV7PP157M1+CDCX70fSOEZ++LDrUb0Ii/cYeQvPTx+//OMtxO9LUv9GXiGQDY/S9yO1EBZzRm/+txlOGtvIDyAsapS+H6mFsJhDE1Z0Yo/iy+8MANLIRt822DFI6kFYzHny49vwpB6F03GksY28/gjcI0A9CIs5I0/DAUuKpu9J0jgYxxP9tkdhN6R6EBZzRk/fcG1uaUyMQYp+0yNxHIB6EBZzRt6ec/HshXsASCPitxv9pkfj9uNqLSzmjN78BqYRpe9LUv9GngJ4iY3U0vcmHSks5oy8N/clWwGksczy9A+XBVZrYTFnlgBgK4A0llme/mEAUGthMWeWAICvnjkdRxrB6HP/UwYAtRYWc2YKAHj8/O0fbyt+r5LaG33tkYgBQK2FxZzZAgAcDyD16ftffh166fFrDABqLSzmzBgAuMBwoUnfq6R2WDKXhbui3+zoDABqLSzmzBgAFjQ1pu9X0vHYcnzGJ/+FAUCthcWcmQMAWOo4fc+SjvPoh/n6/FMGALUWFnNmDwBguWNX6pKOxTK/7NYZ/SZnYwBQa2Ex5wwBAJ88clyAdBR+a2e5tsAAoNbCYs6ZfqT427ev3DxI2gm/rS+enuOp/5IBQK2FxZyzBQAwGIl+yfSzkLQeg25nHeWfYwBQa2Ex54wBYMF7//YnuwWkGqy7MdOyvmsYANRaWMw5cwBY8Bm4eJBUxhv/BwYAtRYWcwwAH3AxMwhIt3nj/zMDgFoLizkGgD/79PHLh0WEnDoovcdvgd8Ev43oN3N2BgC1FhZzDADXMViQecwsYZp+btIZcO7zG5h5Fb8tGADUWljMMQDcx1YBnQUL+DA49rMnr8Lfgv7MAKDWwmKOAaAcKwtygTQMaBbc9Fmvnzn8Pu2XMwCotbCYYwBYjwslF0wunFxALz9XqXfe9LdjAFBrYTHHALCNJQzQMuBKg+oV5ybnqDf9bRkA1FpYzDEA7INpUuxE6P4Dao1zkHPRqXv7MQCotbCYYwDYH09ajBt4/PztuxdvbB3QvjjHONc453zKP4YBQK2FxRwDwPFYL51NidiPwAuHanEOcS5xTp11Lf7W/B2rtbCYYwDoA1OuaKZlUJZjCHQN5wYr8X39f2+cptcRA4BaC4s5BoA+8ST3+TevHi70DNpyMaLz+en1bw+B8J9/nAOcC5888um+VwYAtRYWcwwAY2EgFyO4uSlw0Xn51taC0fFUvzTjs+qeT/bjMQCotbCYYwCYAzcN+oAJBrQYcEFybYJ+8F3wnfDd8B0xQM8b/TwMAGotLOYYAObGKHCaj5dWg2XgoQFhW8sNHnzGfNZ85nz2DsybnwFArYXFHAOA2OeAGxXNz9y4sNzMcOZBiSz3fPlZLJ8PnxWfmXPrBc6N9NyRjhQWcwwAKsFANG58WLocLjH//PKGuUjPu6NEr4XXmL5u3svyvhxsp1KcV+m5Jx0pLOYYANSTpcviFhe3UW8MAGotLOYYACSpjgFArYXFHAOAJNUxAKi1sJhjAJCkOgYAtRYWcwwAklTHAKDWwmKOAUCS6hgA1FpYzDEASFIdA4BaC4s5BgBJqmMAUGthMccAIEl1DABqLSzmGAAkqY4BQK2FxRwDgCTVMQCotbCYYwCQpDoGALUWFnMMAJJUxwCg1sJijgFAkuoYANRaWMwxAEhSHQOAWguLOQYASapjAFBrYTHHACBJdQwAai0s5hgAJKmOAUCthcUcA4Ak1TEAqLWwmGMAkKQ6BgC1FhZzDACSVMcAoNbCYo4BQJLqGADUWljMMQBIUh0DgFoLizkGAEmqYwBQa2ExxwAgSXUMAGotLOYYACSpjgFArYXFHAOAJNUxAKi1sJhjAJCkOgYAtRYWcwwAklTHAKDWwmKOAUCS6hgA1FpYzDEASFIdA4BaC4s5BgBJqmMAUGthMccAIEl1DABqLSzmGAAkqY4BQK2FxRwDgCTVMQCotbCYYwCQpDoGALUWFnMMAJJUxwCg1sJijgFAkuoYANRaWMwxAEhSHQOAWguLOQYASapjAFBrYTHHACBJdQwAai0s5hgAJKmOAUCthcUcA4Ak1TEAqLWwmGMAkKQ6BgC1FhZzDACSVMcAoNbCYo4BQJLqGADUWljMMQBIUh0DgFoLizkGAEmqYwBQa2ExxwAgSXUMAGotLOYYACSpjgFArYXFHAOAJNUxAKi1sJhjAJCkOgYAtRYWcwwAklTHAKDWwmKOAUCS6hgA1FpYzDEASFIdA4BaC4s5BgBJqmMAUGthMccAIEl1DABqLSzmGAAkqY4BQK2FxRwDgCTVMQCotbCYYwCQpDoGALUWFnMMAJJUxwCg1sJijgFAkuoYANRaWMwxAEhSHQOAWguLOQYASapjAFBrYTHHACBJdQwAai0s5hgAJKmOAUCthcUcA4Ak1TEAqLWwmGMAkKQ6BgC1FhZzDACSVMcAoNbCYo4BQJLqGADUWljMMQBIUh0DgFoLizkGAEmqYwBQa2ExxwAgSXUMAGotLOYYACSpjgFArYXFHAOAJNUxAKi1sJhjAJCkOgYAtRYWcwwAklTHAKDWwmKOAUCS6hgA1FpYzDEASFIdA4BaC4s5BgBJqmMAUGthMccAIEl1DABqLSzmGAAkqY4BQK2FxRwDgCTVMQCotbCYYwCQpDoGALUWFnMMAJJUxwCg1sJijgFAkuoYANRaWMwxAEhSHQOAWguLOQYASapjAFBrYTHHACBJdQwAai0s5hgAJKmOAUCthcUcA4Ak1TEAqLWwmGMAkKQ6BgC1FhZzDACSVMcAoNbCYo4BQJLqGADUWljMMQBIUh0DgFoLizkGAEmqYwBQa2ExxwCw3n/985d3n3/z6t0//+/Nfzx78evDxWDx9uG68PFn/vrX3z/6b57+/OvDv/3yu9cPx/vk0S/h35vZX//18uG9/+P7+HPkM1s+v59ef6jjyY9vH/7N3//9/vOLji/tifNwOT+lFsJijgHgfp8+fvlwk+aGw00o/Sy39vzVb+++/+V9OPjbt3MFgyU47XXh5LN7/Pztuy+evn432jnOOcZncwRCU/QaVMYAoNbCYo4B4LbPnrx69+1Pv7777eEBNP4Mj8STMKGAJ2UCSfSae0RrCTc2nuzT93QEAttXz94MEaKOvJlwbkevQWUMAGotLOYYAP6Mz+TrP56OXr790OzcK14jLRK9fo88YdLF0UuAAgGq564CA8B4DABqLSzmGAA+oJmdm0P6GY2gtxsaT/tHdJPU4KLdYxAwAIzHAKDWwmKOAeDFQ7MwT6npZzOSXm5k3PhHaDm5ROhjEGL0flowAIzHAKDWwmLO2QMAfenRSP3RtA4AjJVg4F36ukbC+IQegoABYDwGALUWFnPOGgBmuGFdahUA/vt/fnkYJJm+npExpoJBi9H7PYIBYDwGALUWFnPOGADo6+9pUNoWWgQAQtTl/PyZMH6h1SwLA8B4DABqLSzmnC0AzHjzx9EBgK6TGT/HS3QNsY5A9P73ZAAYjwFArYXFnDMFgFlv/jgqANA0PvqAyVKEneiz2IsBYDwGALUWFnPOEgBmvvnjiADAzX/UaZK1WDUv+kz2YAAYjwFArYXFnDMEAN7j7M3VeweAM9/8F0fdLA0A4zEAqLWwmHOGAHCGH+eeAcCb/wesEBl9RlsyAIzHAKDWwmLO7AGAhWnS9zyjPQNAq/X7e0V3UvQ5bcUAMB4DgFoLizkzBwBW+JthkZ977BUAmBOf/q2z45za83djABiPAUCthcWcmQPAmZqt9wgANHenf0fvvXjz+26LBRkAxmMAUGthMWfWAMAiLul7ndnWAYDjpX9DH6NrJPrsahkAxmMAUGthMWfWAMC0rfS9zmzLAMDyvqNt6NPKHoMCDQDjMQCotbCYM2sAoIk2fa8z2zIAcFNIj6/rtt5AyAAwHgOAWguLOTMGANaoT99nC6yTz4WBpmJaJC5R4//DFmFlqwDw93+fY9bElrbuCjAAjMcAoNbCYs6MAeDRD+1GrrPgEEvlrpkqxpMk0xYZeV/aBL9VAGATnPTYytuyFcAAMB4DgFoLizkzBoBWO9Rx097y82Qg41fP3tzVQrBFAPDpf70tWwEMAOMxAKi1sJgzWwBgalb6Ho+w9c0/xRMmLQPX1jXYIgD09vTPRXXpPmGwHa0q/G9aePj/ehuouNUCQQaA8RgA1FpYzJktAPB+0vd4hK0Hgl1DwKGbIL1Z1waAXp7+ae1g9z0WcYpeZ4qbbi/rPfCdRK+xlAFgPAYAtRYWc2YLANwI0/e4N57Ko9eyN97rcuGpDQCtn/7ptql5gqa7pIeZHwSp6PWVMACMxwCg1sJizmwBoMXa/1uPAi/Fzb/me2z99P/81W93P/HfwvoFrS/EW7QCGADGYwBQa2ExZ7YA0GL52q2afltp+fS/9Q2ILhJmYaR/50i1rTEGgPEYANRaWMyZLQC02ryGp8/o9fSu5dM/fffRa6pFCGjZHfD4+dvwdd3LADAeA4BaC4s5BoBtfPG0vu+3hVYD6Gh12GszHTAmgDUZLv/mUZidEL2mexkAxmMAUGthMWe2AMA0sfQ9HoFBbFv0Yx+JVosWN0n+5hHnHbMJ0r99FAJI9JruYQAYjwFArYXFnNkCQMuLPk9+NRf+o7UYMInaJvJ70cLQalEogmj0mu5hABiPAUCthcWc2QJAq5vagqdbXkP02nrTovmfz+fIlpJWgZAbQvR67mEAGI8BQK2FxZzZAkCLdQAi9HFvMSd8Lzwdt2j+P+rpf9GqFaBmbQgDwHgMAGotLObMFgBa3diu6TUItApKLbpIWo0LWbs6pAFgPAYAtRYWc2YLAGg5r/0aFruha2DPke8lWjSN146OX4sbcfpajsBnHL2eHAPAeAwAai0s5swYAGhmTt9nL2gaZqpi68GCrF6Yvra9Hd38f6nFxkF8z9FryTEAjMcAoNbCYs6MAaCXcQA5DMJr1T3Qol+8doW8Gi3Wh+CmEL2WHAPAeAwAai0s5swYANDDxjD34umU5uKjugeY/5++hiO07P5oseLh2i4PA8B4DABqLSzmzBoAWq4HsBZP5UcEgRZ94gSy6LUchS6X9DUdIXotOQaA8RgA1FpYzJk1ADDXvKfZACX2DgItnoZb75iIFufDmt+XAWA8BgC1FhZzZg0AePRDv4MB70EQqNkj/5oWrSN8F9FrOVKL2SFrxj0YAMZjAFBrYTFn5gDAE3SL0d9b4yK95W6DLWZJ9LA6Yottgg0A52AAUGthMWfmAACeoNP3PCKmD251E+Winx5/bz0EgBbve80ukQaA8RgA1FpYzJk9AKDFk99euGDXjg0Y5Ul4ay26hNYEHwPAeAwAai0s5pwhAHDDbLXv/R642NR0CbS4WPUQAFosCWwAOAcDgFoLizlnCADghtnjEsFrMa1u7XdnADiOAeAcDABqLSzmnCUAgKmBMwwKXDAuYM2SwgaA4xgAzsEAoNbCYs6ZAgAIAWzMk34OoyLQlHYHGACO4yDAczAAqLWwmHO2AADGBLRYG34vXHxKBga2uFj1sCVyi+98TfAxAIzHAKDWwmLOGQPAYsTlgq8p2XmuxcXqrNMADQDnYABQa2Ex58wBAKyLP0uXwL03mxZbAX/1bN3e+FtqMRNkze/LADAeA4BaC4s5Zw8AC55QW2yRuyVmOUTvLdXiSZj+9+i1HKnFRdoAcA4GALUWFnMMAB8wmI5lckfdRAj3DDpr0Rfew42mRcBbs2iTAWA8BgC1FhZzDAB/xkwBnlhHbBHgNeduOi3GPrTeDpjzPH1Ne2OaZvRacgwA4zEAqLWwmGMAuI4bKV0D3LzSz61nuVaAFtsBY8sNjUq1eM+MOYheS44BYDwGALUWFnMMAPdhU6FR9hTgdUbvYcHAx/TfHKHlVMAWOyCuHfdgABiPAUCthcUcA0AZnmIZ0d5zqwBjGG51A/Ae0n9zhJYDAVtcoNcGHgPAeAwAai0s5hgA1vvsyasmU+rukesGaLEkcqtxAC36/7G2y8MAMB4DgFoLizkGgHo0qfcWBHLdAK26M1osCdxiG2ACVvRa7mEAGI8BQK2FxRwDwHa4ufVyIWBxo+g1LlqtgpgLJlujK6TFbI6a92kAGI8BQK2FxRwDwPZabDqTyj2BthoIyPgEpllGr2kPrWY81Kx8aAAYjwFArYXFHAPAPrgBpJ/1kbjRRq9rwZMx89Qv/81Rjrrp8B5bjHWoDTkGgPEYANRaWMwxAOyn9Y6DuUFoXPzTf3OUI8YCtHp/a+f/LwwA4zEAqLWwmDNjAKB5u+Wc8wVPgS2XFc59t6xtkP6bo/BkfmuqYq1WTf+4ZznmWwwA4zEAqLWwmDNjAODpkvfGk9iR/c2RVqPtkftuW3YDYK+bDwGw1fvKrcFwDwPAeAwAai0s5swcAMCNoOVe9C2moC3u+W5bd1NsfQNqefPHFrMcDADjMQCotbCYM3sAWDAtjptD9N/vqeWMgOj1pFp3U4Cb5hYtNXRptLz5g9cQvbYSBoDxGADUWljMOUsAWNAtcMQAtEWrLgDmvkevJ9JinfwUN+6v/whLa5rPOYf5XtNjHu2n17fXXriXAWA8BgC1FhZzzhYAFvxgt3hau4WbWas9A1iZMHpNkR5aARYMDiSQ3NNaw0A/AlYvr32rgacGgPEYANRaWMw5awBY8NTGGIE9tqrl4pr+vaMw9iB6Tdf00AqQIgxwYeUmT1cKCDbUWqzud0tJ4Mo58maytIi1wF4a0fsfkQFArYXFnLMHgEuME6AZ+tPH9Z9Jy8F/KH0a7akVYERbji85y80kt1rlSAwAai0s5hgAYlycGCFPN8G9A9RoRaA1gSCRHu9oa1o0WoeWUW359A8DwHgMAGotLOYYAO7DxeqyKfoSzed0JaT/ppW1g9EYs9Bb03rvaDXZosXokgFgPAYAtRYWcwwA8ynt/7/Ueg+D0eyxxoQBYDwGALUWFnMMAHPhibR2Tn3LwYsj2brpf2EAGI8BQK2FxRwDwFzojog+kxJ0BfTUpdEjukr2mDkCA8B4DABqLSzmGADmscXT/4LzovWqej3jHIs+ty0YAMZjAFBrYTHHADCPmr7/SMvdAnvGVNHo89qKAWA8BgC1FhZzDABz4GJauwtdhFkO6d86Mz6P6HPakgFgPAYAtRYWcwwAc9hzWWMGu6V/74y2GF9xDwPAeAwAai0s5hgAxnfEjan1tsGtHblmvgFgPAYAtRYWcwwAY9trKlrkrGsEHL1hjgFgPAYAtRYWcwwA42LJ4T36/W+hq+EsswOYVUHoiT6HPRkAxmMAUGthMccAMCZ2cdtrHnoOS99y8U5f00x4f612qzMAjMcAoNbCYo4BYDxHDUa7hfAx60WvZbiCAWA8BgC1FhZzDADjaNUkfQuvZ5YNhOja2HuO/z0MAOMxAKi1sJhjABgDg/22WuVva4xDYH78qGMDCFa0qrR86r9kABiPAUCthcUcA0DfWJOf9xO9z94QUEabLkiw6u03YAAYjwFArYXFnBkDAL54+nroHyWvnfcQvbfeMUhwhMWDnv587PS+exkAxmMAUGthMWfWALDg/f3j+zdD7G5HUzRP0NxAo/cymhE+e0LA0VMpcwwA4zEAqLWwmDN7ALhEHy/z2Nk0hzn06WfRwos3vz/c9P/+79fd9EHvoecwwGvqaXyFAWA8BgC1FhZzzhQAUjz50b/OyG+eBLkZp5/Plhgkx4WCG/6X373udlDf3pYwwHS7XgIBN6O//quP3wKvg/Nydq3WWdiDAUCthcWcMweAa/hMuEDRB8/o9gU3bn7oOfR/L/+GGz3H6q2ZuTd0e/A5XX7OdIlcnqt7I6DtuamS5sX5mp5P0pHCYo4BQL3iZnx0CEBvay2oneVhgHNiCfXsDbGE/RHGFukcwmKOAUA9IwSk5+wRaIWIXo/mw9ibpfWJ8UHe2DWisJhjAFDv6EZJz9sjtF4SWPtg7AFjUI4Y9yMdJSzmGAA0Ai7Y6bl7BJ4E/Y2MjRv+8mSffr/SLMJijhc3jYIm2vT8PQJ7HfQyQ0B5zK6h1Ygn/LNsXS2FxRwDgEZC33x6Dh+BwYis1RC9JrVHQOMp3757nVVYzDEAaDSMwk7P46P0sFug3uPaRauQ/fiSAUAnwZoKDNBLz+WjEEBc16ENmvd7X15aaiEs5hgANCJuwC0HdfG3nSFwHKbpjbDBlNRKWMwxAGhU3IBbPgnS9OzvZz+EPAbz2cQv5YXFHC9gGhkhgHX80/P6KIwyn2lN+x7QzM+APkfwS/cLizkGAI2Oc7hlCGCGAE+q0WvT/fgeWw7wvBffN11Alx4/f/ufpYIj0T4iTC9Njy2tFRZzDACaAedx6ydGnlqj16bbeOLnBtpi34fIcoPn++TmzaZgjEFgw6ro9W+Bz+ByzwH+vl0fKhEWcwwAmgVzwVuHABafcYbAfei+aX3j53zhZstNl3Ue9rzJr3W5UyYtJC1bu9SvsJhjANBMuFC2fpJ8/soZArfw2XAzaxHWaHYnpNFlw1N39PpGwHWb1gLei10JQljMMQBoNq22Eb7EU5rLB/8ZzelH37BYM4IFnGb+PmglIBAwVdLBk+cUFnMMAJpRqx0EL3EhJoxEr+9suEHR1J5+Rnsg/PFkTNg4a3cMM1MYeGgYOI+wmGMA0Kx4IkrP9xZ4HdHrOwOa+xlMl34me+Dpl+Bn98vHCEIuojS/sJhjANDM6GtOz/kWGOwWvb6ZMahu7+Z+xlsQsEbuzz8KnxGflbML5hQWcwwAmh033/S8b4GnsDM0SfMEvvd8fpr4XYBpPbpk+F3YRTCPsJhjANAZ9LLADEsXz/ybYxbGXk/93Ky4aXnN2g5hjQGSziQYX1jM8ceks+Dm1IMe55rXomVjr75+ZlSwA6B9+/vh++MzNgiMKyzmGAAk1aApfo9+ZW5GZx5A2QJBgIGULjY0nrCYYwCQtBY36K3XXKCpn6fRHsdLLK04NJszwBSsM8AUxxz+u+XfLPj8OF6PrRsGgbGExRwDgKRS3JyZZ55eT2pw4+em2PpmyDWRGQy8luXmnb7WvfC3GODI3172IIhe45EIKQ4W7F9YzDEASCrBdDKm36XXkhoM7msxlY+wcXmz7/VGRxcLgYvX2iIg8TdH2KnxzMJijgFA0r3o799yoBizIo6ezsff44a/dYg5Ep8bgy5ZafLIrhI+O/52+nrUXljMMQBIuseW/f0ch3706O9sjadX+rNpWp+1KZvxBXw/R7UO8N3ZLdCXsJhjAJCUwxNzeu1Yi5vVEc39NJdz00///uyWfRCiz2RLfIdn/Hx7FRZzDACSbtmq75cnRm7K0d/YCjv+0VfufPb3nzefxd5dLHRD+Hm3FxZzDACSIvQtb/WExwC7PZ/6aeJ3jfvrmM5Hs/1eXQQcl5ad9O/qOGExxwAgKbXlBZ3ug+hv1OI1unpdGVoF+D72CgKEjPRv6hhhMccAIOkSN4ctRnpzY96j+ZmWBEbAOwhtPT47PsM9WmX4zg1lxwuLOQYASYutbv60Hmz9lMnxWC9g65UHz4zPco81GPiu7BI4VljMMQBIwlY3/62n9zEWgaZ+n/j3swSBrUMb35uB7RhhMccAIImbbO3Nnwv91tPPmDXgevTHoemeAZXRd7EWXQKGt/2FxRwDgHRu3Pxrm2u5wG/Z38+xjlyDXx/js99y22ruMwa5fYXFHAOAdF5b3PyZfrfVdYTXw+C09G+oDb4LvpPouyrFOeIywvsJizkGAOm8nr2ou/nzpLhVvzFP/c7l7w/dAlst4MS5MvIeDD0LizkGAOmcap+0WSEwOm4pn/rHwKJQW4S9LVqd9GdhMccAIJ0PG8ek14ISW938feofC98Vyy1H32UJQoDbC28rLOYYAKRz+fybV1VTs7a6+W+5u6COw3fGdxd9p6WYepgeX+uExRwDgHQe/N5rpmRtcfP36W8OW3UJbLnT5JmFxRwDgHQOXKxrmtu3uPlzvXEk+Dy26hIwENYLizkGAOkcagZebXHzZyS5C8LMhy6BLRYPqp2RcnZhMccAIM2vZpc2gkPtXHCWhE2Pq7nU7vro7IA6YTHHACDNjZH2awfb0cRb28/rFL/zYFBfdA7ci3PNLqJ1wmKOAUCaFxfUtUuwsgBM7fXBvt3z4TuvaTGqOWfPLCzmGACkea3tV6XFoGZwl82551bbbcR9yRBQJizmGACkOTEwK/2936tm6Vee4FzuVTTl13QfEUBdJ+J+YTHHACDNh53c1l48GbAXHfMePPXZh6tFbQioCbFnExZzDADSfNY+gdNlEB3vHjb7K1IbAhxHcp+wmGMAkOaydp1/+lzXXqi9+euWmjEB/Dv3i8gLizkGAGkenzz6ZdViO3QXMF0wOuY9fEpTTk3rUk2X1lmExRwDgDQP1mdPf+P3qOn39+avez35cf06AY4HuC0s5hgApDkwcj/9fd+j5smsZoVBnVPNioGGzevCYo4BQBof/aQs3JP+vnP4N2v7/f/27as/DhEfV7pl7XbCjge4LizmGACk8a3dV52beHS8HK4bbuyjGp9/s+7cczxALCzmGACksTHwb80FkfEC0fFyfArTFmh94tyNzrEcuhHS451dWMwxAEhjW9MvytP72ouv27ZqKz+8/C08x3IIoS4V/LGwmGMAkMbFcqnpb/oea/tgHfSnra0dFOgYlI+FxRwDgDSuNU/jrBIYHSunZlth6Za14wFsjfogLOYYAKQxcUNOf8853MAZRBUd7xb7/bWnteMB1o5/mVFYzDEASPvjd8ZTziUWNqH5M2f579ML5JpNd5gtcHmMez36Yd0sA+lea8cD2C31XljMMQBI2+Gp/Iun72/sNE/usS0uT0trjsu/40k+et23ED7SY0l7WLMiJee0O1AaAKRD0ZTOYDqm040wInntxdXR1joKzflrugIMqQYAaVeXN3yeptPfUs/WPv279KqOtnZ9irMPCAyLOQYA6TqeLLgJjnbDT9EtEb2/W9ZOMZRqrVmh8uzna1jMMQBIH+M3QR/+LE3f9I9G7zOHQVnpsaQjMONkTYvVmVsBwmKOAUB68bAhDs37ewzaa41dAqP3fMvanQWlrRDCo3PzljO3AoTFHAOAzozzf+Z+7jVP/w78Uw8YELjm/nTWVoCwmGMA0BnNfuNfrHn6Z7ZAehypBW7m0Tl6y5oFsmYQFnMMADoTmgjPMrKdgYvRZ3CLK6upN/xmo3P1ljOuCxAWcwwAOgMuImdrGlwz75+VAtPjSC2taQU44xiWsJhjANDMGNx3xpsaT/G89+gzucanf/XKVoC8sJhjANCsWGu/h/n7XIi+/+XXj9b3Z57zssZ/hP//8r9/8uPbh2l5uOcmvWbNf5/+1StbAfLCYo4BQLPhaaHFdD7mLnOj5obNTXzNrnv34tgs7sMmPYSCtw9v98NrKX1iYuR/egypJ2vO6dEX8CoRFnMMAJrF0c39TJVjQCEtDT38jngNPPWwnkH0/9/iyH/1bk0rwJlatcJijgFAM2DqzxFz12lZ4Aa759P90c72pKRxlbYCnGlKYFjMMQBodDy97jl4jWBBs/6svxWf/jWKNa0AdM2lx5lRWMwxAGhUNPnvNbWP/nCa9+nLj/72TM5ygdT4CPql2wV//Ud4T48zo7CYYwDQiPZq8qcpnAtG6RS6UZ111TSNq3SMC4EhPcaMwmKOAUCj2aPJnzDBcdfsQDYyZi2kn4XUM8bhROfyLUzDTY8zm7CYYwDQSLZexpcbP6P4o781O6f+aVSlg3CZMpseYzZhMccAoBFws9qyv58bH0/80d86izNcFDUn1r+IzulrzhB2w2KOAUC9oz+exW7Sc3ctWhFKBxLN6AzNopoTLXfROX3L7JuAhcUcA4B6xvm51ZrejHY/w6j+e5xlYJTmVfpbpqsvPcZMwmKOAUC9op9vi5H+DBhkZH/0N/bGe+BCtWY9f9BsyX//9Of3ewlwEdsixDCSOv1b0kh4oo/O7Wu416XHmElYzDEAqEes+LVFnx1P/aWrh61FVwVL8bL86BE7kTEamlBBKCgdFLVll4rUAteH0lk7e0wd7kVYzDEAqDeck1v8UHlq3ns+P7v2HXXDzyHs8FpyLQQ2/2sWpa1hM48DCIs5BgD1hBt27c2f5vU9R/jzm6E5vuenCZ6OuNjRIpG+fpv/NQt+h+n5fcvM4wDCYo4BQL2gOa/2SZqbMqvbRcevwWvj4jFi0/kSBpanJZv/NQvO5fS3egv3u/QYswiLOQYA9YAbbO20NMLD1k3+HI/WhFl2y3PXP82E1j7HAbwXFnMMAOoB/fXpuVmC8FB6IbiFfnKaF7cYiChpP44DeC8s5hgA1BoD19LzsgQ/6K1u/hyHVca23mtA0j64fkS/5WtmHQcQFnNKpw9JW2KQWnpOlij98d/CiH6byKWx0PUX/Z6v4Z6XHmMGYTGHi170IUl7o/Wppom9dATwNTT3b7nPgKRjlY79mbGFLyzm0BwSfUDSnmhqZyGb9Hy811Y3fwb42c8vjS2a7noLa2akxxhdWMzZ6kIqlajp96fPPzpmCZ4YfOqX5lC61PeMv/2wmLPFxVQqwajd9Dy8F6P9o2OWYJ2AWacCSWfEktjRb/0aBvqmxxhdWMwpXUhBqkF/+9qBdpyrtaP9afJ3hL80F7oTo9/7NTOuhhkWc7gYbzl/WrplbdPbFov8zDr/Vzo77mPRb/4aWgHTY4wuLN6jdACFtMbaKX8M0qtZr4KAa3+/NLeSB4QZN8QKi/fg4hh9SNJWuAmvbfqvCahcFGqXGJbUv9Jtv2eb/RMW70GfaG3zqnTL2kE3NQv9cE73sE2vpP198bTsQaFmGnKPwuK9GBQRfUhSLVbeWjPwjh/o2vEp3vylcymd0l67/0hvwuK9SkdRSvdas/1sTb8/oWG2dC/pNm7o0fXgGqYOpscYWVgs4bLA2hrNcul5do+1/f7c/O3zl86ndEo7LQbpMUYWFkuwPOLaJlcptXbgX82gVKf6SedkAAiKpUqXVJSuYdGd9PzKYawAU3Si4+XUbissaVw8wEbXhWtmWwwoLJaquQBLl9Yst7s2gK5dY0DSHLjeRNeGa9gILz3GyMLiGq4LoFprbsiM2l/TBVW7rbCk8XENiK4P18z20BAW13JAoGqsmYLHJkHRsW5xxL+kRXSNuKZmU7IehcW1apdf1XmtSdalU3gW9vtLWkTXiGsMABkMqnCFQJVa8/RfuownZtzQQ9J6JQ+t/Lfpvx9ZWKy1xf7rOo81T/9rxpzQ9O9Kf5IuGQB2wIpJ0Qcopdbsurfm6X/NFENJczMA7IQLbvQhSgu6i0rX/F/z9M801TV7C0iamwFgR8ybjD5ICWsW1qAfPzrWLWtaGSTNryQAsElZ+u9HFha3ZkuArimdjkcffnScW+guSI8jSSgJAM4CWKl020XNb02aLt2/Gz79S7qmZCExA0AFNl2JPlSd06Mfyubjs85E6ap/Pv1LuiW6blyzdqfSXoXFPfE0tmbpVs2ndN3/NTNLfPqXdEt03bjGvQA2wDoBLhZ0bmua0koH//n0L+mW0s2A3A1wI3zwa0Zzaw6l+2qXbtsJlgpOjyNJCwYhR9eOa0qvW70Li0dau5WrxvbDy7LR/6WDSOlmct6/pFtK1xQxAOzALoFzWXNzLpmqg9n66iRtr3RcEf99eoyRhcUWXv/6+0O/cPShay6l/f9r5v6XtjBIOp/SlkUeVtNjjCwstlT6hWg8pc1obN8bHeea2ZbrlLSP0pVqS2cu9S4stsYTnwME51X6dM5ugdFxrpmtn07SPkruM3Rdpv9+dGGxF/S3ODZgLmv6/0vPgdlSuqR9lFxbZtsHAGGxJ6z+5oZC8yBxp9/xLaX9/zb/S7pH6RoAtESmxxhdWOwR8zXX7AGvvpQupFHa/+/of0n3KJ0CyKZ26TFGFxZ7xg3BboFx8f2l3+ktf/u2bCwI+02kx5CkFHuRRNeQa2abAoiw2Du6BRjoZRAYT+k0mk8e2f8vaXulO4vONgUQYXEUrB1As4ybC42j5AZN0IuOcY39/5LuVbq42IwPF2FxNAaBMZROoyldp3u2rTol7aN0ACAYX0TLM10BTGXmvpMedzRhcVR8Ic4Y6Ffp7nz050fHucb5/5LuUToA8Bq6KBmnxLWHB5b07/QuLI6OdEcQsEWgL6VP6KUbRbn7n6R70GIcXUNq0a1AGBiluyAszoIWAUZ6lg4k0z64oaff0S2lKwCyZkB6DElKHTGlnD1PaMXseVfSsDgjvgjXEWirdIoeK29Fx7nG7X8l5ZQOLq5FSzQt0j2OGQiLM2PwRun0D22jNACUdOHQypP+e0lKbdX/X4rrGS3S6etpKSyeAX009AO5lsBx+OGl38Mt0TGuKd1iWNI57dX/fy9aNnvZrjwsngnNxgweK+1vVrmSk57vJTrGNYzETY8hSanSrsW90BLdulsgLJ4VXwZL1fZygsymJACUztN1DwBJOWvm/++JFujS5dG3FBb17i8v3rzvInAGwXZKpsYYACRtrXRtkaNwr0lf6xHCoj7GGtCuK1CvJACUrgJYOsVQ0vlwHY+uHz3gtR09kyksKsaXw0A2vigHD5Zj+s3l53kL3QXRMa5xFUBJOb236DKWqeQ6WSss6j7cpGi6Kd1U4qzSz+8WA4CkLbFQ2HK9IAgwc4jB31w76IfnmoPoBrz8f3Qh8N9/9Wy/7mHWqzlqcGBYVDlOLk4MBxBel35mtxgAJG2Jmypju9J6Da77dD9ufd3nobKky3StsKg6fHEkShJm9OWeVckJbQCQNBKub1yHthorRgjYuzsgLGpb3MxIiZ89OXcgKAkAJPXoGNfQJJceQ5KORksD16PoOlWKLor0+FsKi9oPAwmZVcDYgbPtTVDS/EZYiI5xjdMAJfWE690WC8ztuXxwWNRxaOJhZgGJcfbxA7SEpO//Gj6X6BjXlG41LElH4IGvdtZYybWzRFhUO9z4+LLpS2JKyEwLEZWexNExrnEvAEm9ojWg5gGP+0BJF+q9wqL6whdPKwHjCEYeWLjnZkB0p6T/XpJ6wcMdD3XR9esejCHbeqGgsKj+Mf3kyY9vH7oORgkFpWtel6yvwMjb9N9LUm9qdiPcet+AsKgx0cxEfxPdB/SJ9zbIsHS969K0XDLIUJJaoTU3uobl0BWw5SJBYVFzobWA5neCAaNSWw02LJ3SUpqUCT/pMSSpR2tnCJQ+SN0SFnUOBAMG5tGstIQDuhP22uegtJ+e1xUd55qtm8ckaS/0569ppaW7c6tWgLAo4VpAWLvSFc1X6d+4hSf66DjXuBiQpJEwwHvNTK+tWgHConQvAgKWsQfg5CQoIO1uKBnFSp/+5b/NYZRsegxJ6hlbn5c+VG3VChAWpT1wQy+dxlL6w9h77WxJ2lrpeCds0QoQFqVelPaRla41IEmt8TTfohUgLEq9KE3GW/WNSdKR6D6Nrmm3sBZMepwSYVHqBU/00Yl/jSsCShoR3aOlAwIZZ5Uep0RYlHpRuikQHAcgaUSlU59R0w0QFqWelI4DePqz4wAkjYdWgNJ1WL79af31LixKPSkdB8ASwukxJGkELOMeXdeu+fK79Vuhh0WpJ6XjALDVSlmSdCSe6KNr2jVsmpYe415hUeoJzWKlU2QYUZseR5J6xxim0usdKwqmx7lHWJR6U9osVpOKJaklRvdH17Vr1o57CotSb0r3BQBLFKfHkaTelc4GWNviGRalHpXOkS3dfliSesDDS3RNu4YW0vQY9wiLUo/WrJfNjobpcSSpZ6Uboa1dAC0sSj3iZh6d/LfYCiBpNKULoK0d8xQWpV6l2wvnbLFhhiQdrWQmAIsHpf/+HmFR6tWapTLdIEjSaHiqj65n16T//h5hUerVmg0zSNJr58lKUgulUwHTf3+PsCj1bE0rgMsDSxqJAUAKrGkFgJsESRpFySZotHKm//4eYVHq3ZpWAEKDWwVLGkHJQ46zAHQqjOwvXS8bDgiUNILo+nUN3QXpv79HWJRGwPKX0Y8hxyWCJfWMB5zo2nXN2vVOwqI0AsYClE6VAU1rrg0gqVeli559+Z0BQCf07EX5JkFY22QmSXv79qey65qbAem0aP6KfhQ5a380krSn0u3PGRSdHuMeYVEaydoBgXA8gKSe0LXJ0r7R9eqatZuehUVpNI9+KJ8WCH5o7LyVHk+SWijdCnjtPgAIi9JoSM2fPSlbOWvBQEKXCpbUg6+elc1uqtnxNCxKI+JJfm1XAKtuuUiQpNZKZzYxYDA9xr3CojSq0tGzl2hBoCXh8niSdJQ1s5pqWi/DojQy5sRGP5R7sGmQIUDS0dasa7J2CeBFWJRGxg/p08flCwQt7A6QdLQ1+5usXQBoERal0T1/9dvq8QAgQDgwUNIReGhZs8Pp2ul/i7AozWDtKoELmtecIihpb2ue/rdYzTQsSrNY88O6xBxbFwuStJe1s5d4wEmPVSosSjP5euWugZdcNljS1taOV6K7ID3WGmFRmk3p2toRmtzcRVDSVtbOWFq79n8qLEqzIWkzxS/6MZUgedslIKnW2jVL6C7YapZSWJRmtFUIAMndqYKS1vj+l19Xz1KiSzM93lphUZoVIWCL7gAwQLBmGU5J5/P05/U3f2YmcQ27PF6NsCjNrma1wBRLCDtdUFJO7awkWg7SY9YIi9IZbDE74BKhonZhDklz+sf3ddcbWi7TY9YKi9JZPPqhLpFH2J7TgYKSwIqitWOP6G7cYwZSWJTOhGY1fmDRD68G0wbp70v/nqRz4AGjZknyxZMft5n2lwqL0tmQrunLj358tZg6+NWzN44TkE6CvUjYVCy6HpSi9SA9/lbConRWW48LSLHqF2nejYak+bA871azjECI2HLUfyosSme2V5dAiik9DBxkKqGBQBoTLXs8OKzZze8Wrg97rzwaFqWz44e35VTBe/CDZ9wA+w7QSsBAQhcbkvrC75LfJ6P6t2rmT/EAckSXYViU9B6tAdyYox/pURhERDC4RL8gQUHjoYk4/T7VvzWb9qzB7/2oWURhUdIH9MHtPTZAknDkzKGwKOnPWOSHJ4HoRytJNWj2P3r9kLAo6Tp+pAYBSVthLEGLgcBhUVKeQUBSLVYObTXYNyxKuh9BYKtthiWdB4NC0+vJkcKipHI04e0xH1jSXJhRsPXOfmuERUl1+HFvuSKYpPEx0I8tgdPrRSthUdI2WFCIHzz9fFtsCiJpTOwH0tvCXmFR0j5oGaCbYK8VxCT1hfFBTCFOrwU9CIuS9kfrAIt+MBCIi8RRK41J2he/ZVr+9l7Lv1ZYlNQOswrYIChdNtZWA6lfDP5lf4CRtv0Oi5IkaWbv/vL/AWnC3Iq39rQuAAAAAElFTkSuQmCCAzure SQL DatabaseGE.DSParallelLinesfalseAnyAnyfalsefalseSelectAllow access from all networksAllow access from selected networks (including Azure)Allow access from selected networks (excluding Azure)Azure SQL DW DB Firewall SettingsVirtualDynamicb8c8850c-979b-4db0-b536-9aa364b7e6a2ListfalseSelectTrueFalseAzure SQL DW DB TDE EnabledVirtualDynamicd2ce181d-abae-448d-8ef4-9acdbeb839feListfalseSelectTrueFalseAzure SQL DW DB Auditing EnabledVirtualDynamiccd2a18a2-cebd-4b0f-ae4c-964b190e84f2ListCloud-based Enterprise Data WarehousefalseSE.DS.TMCore.AzureSQLDWDBLower right of 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Azure SQL Data Warehouse DatabaseGE.DSParallelLinesfalseAnyAnyfalsefalseSelectAllow access from all networksAllow access from AzureAllow access from selected networksAzure MySQL DB Firewall SettingsVirtualDynamic9afccb81-bc8b-4527-ad05-f90ec3e396cbListfalseSelectTrueFalseAzure MySQL DB TLS EnforcedVirtualDynamic4d3b2548-8c31-460e-88e5-4c26135003acListFully managed, enterprise-ready community MySQL database as a service for app development and deploymentfalseSE.DS.TMCore.AzureMySQLDBLower right of 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Azure Database for MySQLGE.DSParallelLinesfalseAnyAnyfalsefalseSelectAllow access from all networksAllow access from AzureAllow access from selected networksAzure Postgres DB Firewall SettingsVirtualDynamicba682010-cfcf-4916-9f88-524f8d9ce8a8ListfalseSelectTrueFalseAzure Postgres DB TLS EnforcedVirtualDynamic65a8827c-6efd-4243-aa81-0625c4aea98eListFully managed, enterprise-ready community PostgreSQL database as a service for app development and deploymentfalseSE.DS.TMCore.AzurePostgresDBLower right of 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SsGYFsa/ocTAAQAAeBCf3787FUmGo3HFVhGZvVnpU528qyuSU4jAAgAAsCVZKbx59+8MDwAC8m96pOnz9/0wFXXIOcRAAQAAeDKsnIgLxrKpiPjsQbOl217s0lXdb3xcAKAACAALCi9Anli8a4BOE+25k6Q9rS/HAFAABAAViIMwIdp9NclAAgAAsAGhAF4S6O/HQFAABAANpYbX1YSZFazZYXsXbbXzmRZY/rbEwAEAAFgMr//+9veAUsL2YOsiskkvjzl25N/LgKAACAATCwrCrLJSZ6YrCrgFmSNfhqWbJRlnf7cBAABQAC4IQkEeUthbq7pIcjN9vhvCWvLsFWe8NNrld6r6rxlTgKAACAA3LjDkEFuwuYQsLRMXP3i3y/ezFvRpX/bBAABQADYmUwqTC/Bp1+9DQVWGvAQh678DD99/OT5m3OqOt+4XQKAACAANJHx2EzEevT1izcXvi2LOcjM/CzHy9BSZud7su9BABAABIDGDr0FCQaHeQUmG+5TAl9u+Flumr91JpeapNebACAACACUfvPobTjI/II0GLlZuGHM7dDIH57mM06fv2Emj1Z/Y3pzPQsAAgAPksmHx70HGSs+hASrE64vEzxzbNNLk+Md6a7P30CXPQ8hAAgAAgCL+d3nb0NCZCLZoeFKN/QhLOT8G8/JLjLccjgOmZtxOD7pnj8cN1vkshQBQAAQAJjGYdjh2HFwODhMZPyQawaL44a6cuhyHx035AfV74Yt5Nwdz/VuysJOBACAfgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABACAhgQAAUAAAGhIABAABICN/ObRD6/+8I+f/ufPj5+9+uyr5/f69LXjf/frv/5Qfj6/9H+fvTvm9x3v4+P8u89/LD8PbpkAIAAIAAtLQ/+nfz579ejrF4tecM9e/ufN53/x7xf/a7y6hoNDQ5+G/Mn3L6923HOtHI7xX/71TDDgpgkAAoAAcGW///uPbxrgNDw5tuPxXtuL19d4LvQEkASRvYaC/LbPv3nx6puf1r2p5fg+/eHlq0+ePn/127/dfiAYf9+aqvqwHAFAABAAriBP+Wn0v3++fYN/im+f/fymsUyjmafl6jfdgtT/y29fvkojfPz7tpRje8thYPw9a6rqw3IEAAFAAHigNJwZR87T33hMb8nPrzNLGtHqN84oDetsjf5dcoNNSKl+x6zG37Cmqj4sRwAQAASAM6ULPU/Pt9AAneoWzoEMrTz+7jbDVo7vx0+e30Rvy1j3NVX1YTkCgAAgAJwhE78y2W48hrdu5nPgoy9+2s2NKudOgkD1O2cx1nlNVX1YjgAgAAgAJ8hs7z1fLDOeA5lXka7+sa57kHkCWaVQ/e6tjXVdU1Ufl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Azure Database for PostgreSQLGE.DSParallelLinesfalseAnyAnyfalseBrowserfalseSE.EI.TMCore.BrowserLower right of stenciliVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAABcRgAAXEYBFJRDQQAADu1JREFUeF7t1iGun8cVxuEsobAL6EK6hGyhCygILPACDAILCrKBwIJCAwODgsDAgoCCbsK9MyBTWa/0Kc34+OacBzwB70gz+kufb35fffz4EQAYJo4AQG9xBAB6iyMA0FscAYDe4ggA9BZHAKC3OAIAvcURAOgtjgBAb3EEAHqLIwDQWxwBgN7iCAD0FkcAoLc4AgC9xREA6C2OAEBvcQQAeosjANBbHAGA3uIIAPQWRwCgtzgCAL3FEQDoLY4AQG9xBAB6iyMA0FscAYDe4ggA9BZHAKC3OAIAvcURAOgtjgBAb3EEAHqLIwDQWxwBgN7iCAD0FkcAoLc4AgC9xREA6C2OAEBvcQQAeosjANBbHAGA3uIIAPQWRwCgtzgCAL3FEQDoLY4AQG9xBAB6iyMA0FscAYDe4ggA9BZHAKC3OAIAvcURAOgtjgBAb3EEAHqLIwDQWxwBgN7iCAD0FkcAoLc4AgC9xREA6C2OAEBvcQQAeosjANBbHAGA3uIIAPQWRwCgtzgCAL3FEQDoLY4AQG9xBAB6iyMA0FscAYDe4ggA9BZHAKC3OAIAvcURAOgtjgBAb3EEAHqLIwDQ2/7P7/7w148AwAw/B8BXv//2IwAwgwAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADffYA+PZvP+xHAIBf5v0//x3/33rDun8/kg5vEAAA8P8RAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBEChf7z718c/fv09fHbfvHn/8snl77CD9fvS74Yv6bvvf3z5PPM3+xoJgELr40i/A25bf4w+/f46Wb8v/W74kt68/fDyeeZv9jUSAIUEAFUEANQTAMe6fz+SDm8QAJAJAKgnAI51/34kHd4gACATAFBPABzr/v1IOrxBAEAmAKCeADjW/fuRdHiDAIBMAEA9AXCs+/cj6fAGAQCZAIB6AuBY9+9H0uENAgAyAQD1BMCx7t+PpMMbBABkAgDqCYBj3b8fSYc3CADIBADUEwDHun8/kg5vEACQCQCoJwCOdf9+JB3eIAAgEwBQTwAc6/79SDq8QQBAJgCgngA41v37kXR4gwCATABAPQFwrPv3I+nwBgEAmQCAegLgWPfvR9LhDQIAMgEA9QTAse7fj6TDGwQAZAIA6gmAY92/H0mHNwgAyAQA1BMAx7p/P5IObxAAkAkAqCcAjnX/fiQd3iAAIBMAUE8AHOv+/Ug6vEEAQCYAoJ4AONb9+5F0eIMAgKx7AKx/S+uPLbwm7z789PJ55m/2NRIAhQQAVboHAPDrCYBCAoAqAgB4IgAKCQCqCADgiQAoJACoIgCAJwKgkACgigAAngiAQgKAKgIAeCIACgkAqggA4IkAKCQAqCIAgCcCoJAAoIoAAJ4IgEICgCoCAHgiAAoJAKoIAOCJACgkAKgiAIAnAqCQAKCKAACeCIBCAoAqAgB4IgAKCQCqCADgiQAoJACoIgCAJwKgkACgigAAngiAQgKAKgIAeCIACgkAqggA4IkAKCQAqCIAgCcCoJAAoIoAAJ4IgEICgCrdA2D9W3rz9gO8Ku8+/PTyeeZv9jUSAIUEAFW6B8D6fel3w5e0IuDTb/U1EwCFBABVBADUEwDHun8/kg5vEACQCQCoJwCOdf9+JB3eIAAgEwBQTwAc6/79SDq8QQBAJgCgngA41v37kXR4gwCATABAPQFwrPv3I+nwBgEAmQCAegLgWPfvR9LhDQIAMgEA9QTAse7fj6TDGwQAZAIA6gmAY92/H0mHNwgAyAQA1BMAx7p/P5IObxAAkAkAqCcAjnX/fiQd3iAAIBMAUE8AHOv+/Ug6vEEAQCYAoJ4AONb9+5F0eIMAgEwAQD0BcKz79yPp8AYBAJkAgHoC4Fj370fS4Q0CADIBAPUEwLHu34+kwxsEAGQCAOoJgGPdvx9JhzcIAMgEANQTAMe6fz+SDm8QAJAJAKgnAI51/34kHd4gACATAFBPABzr/v1IOrxBAEAmAKCeADjW/fuRdHiDAICsewB88+b9/o3wmqy/8Z9+q6+ZACgkAKiy/hh9+v0B/C8BUEgAUEUAAE8EQCEBQBUBADwRAIUEAFUEAPBEABQSAFQRAMATAVBIAFBFAABPBEAhAUAVAQA8EQCFBABVBADwRAAUEgBUEQDAEwFQSABQRQAATwRAIQFAFQEAPBEAhQQAVQQA8EQAFBIAVBEAwBMBUEgAUEUAAE8EQCEBQBUBADwRAIUEAFUEAPBEABQSAFQRAMATAVBIAFBFAABPBEAhAUAVAQA8EQCFBABVBADwRAAUEgBUEQDAEwFQSABQRQAATwRAIQFAle4BsH5f+t3wJb15++Hl88zf7GskAAoJAKoIAKgnAI51/34kHd4gACATAFBPABzr/v1IOrxBAEAmAKCeADjW/fuRdHiDAIBMAEA9AXCs+/cj6fAGAQCZAIB6AuBY9+9H0uENAgAyAQD1BMCx7t+PpMMbBABkAgDqCYBj3b8fSYc3CADIBADUEwDHun8/kg5vEACQCQCoJwCOdf9+JB3eIAAgEwBQTwAc6/79SDq8QQBAJgCgngA41v37kXR4gwCATABAPQFwrPv3I+nwBgEAmQCAegLgWPfvR9LhDQIAMgEA9QTAse7fj6TDGwQAZAIA6gmAY92/H0mHNwgAyAQA1BMAx7p/P5IObxAAkAkAqCcAjnX/fiQd3iAAIBMAUE8AHOv+/Ug6vEEAQCYAoJ4AONb9+5F0eIMAgEwAQD0BcKz79yPp8AYBAJkAgHoC4Fj370fS4Q0CALLuAQD8egKgkACgigAAngiAQgKAKgIAeCIACgkAqggA4IkAKCQAqCIAgCcCoJAAoIoAAJ4IgEICgCoCAHgiAAoJAKoIAOCJACgkAKgiAIAnAqCQAKCKAACeCIBCAoAqAgB4IgAKCQCqCADgiQAoJACoIgCAJwKgkACgigAAngiAQgKAKgIAeCIACgkAqggA4IkAKCQAqCIAgCcCoJAAoIoAAJ4IgEICgCoCAHgiAAoJAKoIAOCJACgkAKgiAIAnAqCQAKCKAACeCIBCAoAq3QPgmzfv92+E12T9jf/0W33NBEAhAUCV9cfo0++vk/X70u+GL+nN2w8vn2f+Zl8jAVBIAFBFAEA9AXCs+/cj6fAGAQCZAIB6AuBY9+9H0uENAgAyAQD1BMCx7t+PpMMbBABkAgDqCYBj3b8fSYc3CADIBADUEwDHun8/kg5vEACQCQCoJwCOdf9+JB3eIAAgEwBQTwAc6/79SDq8QQBAJgCgngA41v37kXR4gwCATABAPQFwrPv3I+nwBgEAmQCAegLgWPfvR9LhDQIAMgEA9QTAse7fj6TDGwQAZAIA6gmAY92/H0mHNwgAyAQA1BMAx7p/P5IObxAAkAkAqCcAjnX/fiQd3iAAIBMAUE8AHOv+/Ug6vEEAQCYAoJ4AONb9+5F0eIMAgEwAQD0BcKz79yPp8AYBAJkAgHoC4Fj370fS4Q0CADIBAPUEwLHu34+kwxsEAGQCAOoJgGPdvx9Jhzf81gLghx//sz8Q+NxWbH76/XWyfl/63fAlvfvw08vnmb/Z10gAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAw0G86AL7+0993BAAAv8yf//Iu/r/1hs8eAADA6yMAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAG+jkAAIBZ4ggA9BZHAKC3OAIAvcURAOgtjgBAb3EEAHqLIwDQWxwBgN7iCAD0FkcAoLc4AgC9xREA6C2OAEBvcQQAeosjANBbHAGA3uIIAPQWRwCgtzgCAL3FEQDoLY4AQG9xBAB6iyMA0FscAYDe4ggA9BZHAKC3OAIAvcURAOgtjgBAb3EEAHqLIwDQWxwBgN7iCAD0FkcAoLc4AgC9xREA6C2OAEBvcQQAeosjANBbHAGA3uIIAPQWRwCgtzgCAL3FEQDoLY4AQG9xBAB6iyMA0FscAYDe4ggA9BZHAKC3OAIAvcURAOgtjgBAb3EEAHqLIwDQWxwBgN7iCAD0FkcAoLc4AgC9xREA6C2OAEBvcQQAeosjANBbHAGA3uIIAPQWRwCgtzgCAL3FEQDoLY4AQG9xBAB6iyMA0FscAYDe4ggA9BZHAKC3OAIAvcURAOgtjgBAb3EEAHqLIwDQWxwBgN7iCAD0FkcAoLc4AgCdffzqv7BDXhYT/E+AAAAAAElFTkSuQmCCBrowserGE.EIRectanglefalseAnyAnyfalseA representation of Dynamics CRM Mobile Client ApplicationsfalseSE.EI.TMCore.DynamicsCRMMobileClientLower right of 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 CRM Mobile ClientGE.EIRectanglefalseAnyAnyfalseA representation of Dynamics CRM Outlook ClientfalseSE.EI.TMCore.DynamicsCRMOutlookClientLower right of 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Dynamics CRM Outlook ClientGE.EIRectanglefalseAnyAnyfalsefalseSelectGenericCSharpNodeJSIoT Device TechnologiesVirtualDynamic0e4c07fd-732f-44e3-901a-81446a6bcd4cListfalseSelectYesNoIP CapableVirtualDynamic5a86ce50-eedb-4cd4-9686-8619c3196d05ListfalseSelectWindows IoT CoreOtherDevice OSVirtualDynamicc654e773-cfea-4cee-b832-ed22bf619348ListfalseSelectDirect connectivityAgentsAzure IoT device SDKsDevice ConnectivityVirtualDynamic2774528e-4318-498b-9228-8341d7112a6aListfalseSelectAzure IoT HubCustomDevice Identity StoreVirtualDynamic51551b3e-c1e1-4181-b8d3-b74ad078b0beListAn IoT client agent which generates and sends telemetry data to the cloud, and receives messages from the cloudfalseSE.EI.TMCore.IoTdeviceLower right of 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IoT DeviceGE.EIRectanglefalseAnyAnyfalsefalseSelectGenericXamarinAndroidiOSWindows PhoneMobile Client TechnologiesVirtualDynamic84259115-f55a-44fc-9423-6c239e36e595ListA representation of a Mobile Client Application (Mobile App)falseSE.EI.TMCore.MobileLower right of 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QBoCADIJACgTgA0BABkEgBQJwAaAgAyCQCoEwANAQCZBADUCYCGAIBMAgDqBEBDAEAmAQB1AqAhACCTAIA6AdAQAJBJAECdAGgIAMgkAKBOADQEAGQSAFAnABoCADIJAKgTAA0BAJkEANQJgIYAgEwCAOoEQEMAQCYBAHUCoCEAIJMAgDoB0BAAkEkAQJ0AaAgAyCQAoE4ANAQAZBIAUCcAGgIAMgkAqBMADQEAmQQA1AmAhgCATAIA6gRAQwBAJgEAdQKgIQAgkwCAOgHQEACQSQBAnQBoCADIJACgTgA0BABkEgBQJwAaAgAyCQCoEwANAQCZBADUCYCGAIBMAgDqBEBDAEAmAQB1AqAhACCTAIA6AdAQAJBJAECdAGgIAMgkAKBOADQEAGQSAFAnABoCADIJAKgTAA0BAJkEANQJgIYAgEwCAOoEQEMAQCYBAHUCoCEAIJMAgDoB0BAAkEkAQJ0AaAgAyCQAoE4ANAQAZBIAUCcAGgIAMgkAqBMADQEAmQQA1AmAhgCATAIA6gRAQwBAJgEAdQKgIQAgkwCAOgHQEACQSQBAnQBoCADIJACgTgA0BABkEgBQJwAaAgAyCQCoEwANAQCZBADUCYCGAIBMAgDqBEBDAEAmAQB1AqAhACCTAIA6AdAQAJBJAECdAGgIAMgkAKBOADQEAGQSAFAnABoCADIJAKgTAA0BAJkEANQJgIYAgEwCAOoEQEMAQCYBAHUCoCEAIJMAgDoB0BAAkEkAQJ0AaAgAyCQAoE4ANAQAZBIAUCcAGgIAMgkAqBMADQEAmQQA1AmAhgCATAIA6gRAQwBAJgEAdQKgIQAgkwCAOgHQEACQSQBAnQBoCADIJACgTgA0BABkEgBQJwAaAgAyCQCoEwANAQCZBADUCYCGAIBMAgDqBEBDAEAmAQB1AqAhACCTAIA6AdAQAJBJAECdAGgIAMgkAKBOADQEAGQSAFAnABoCADIJAKgTAA0BAJkEANQJgIYAgEwCAOoEQEMAQCYBAHUCoCEAIJMAgDoB0BAAkEkAQJ0AaAgAyCQAoE4ANAQAZBIAUCcAGgIAMgkAqBMADQEAmQQA1AmAhgCATAIA6gRAQwBAJgEAdQKgIQAgkwCAOgHQEACQSQBAnQBoCADIJACgTgA0BABkEgBQJwAaAgAyCQCoEwANAQCZBADUCYCGAIBMAgDqBEBDA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 ClientGE.EIRectanglefalseAnyAnyfalseA representation of Active Directory Federation Services (ADFS) ServerfalseSE.P.TMCore.ADFSCentered on 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GFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlCgDMTQGAPmJYmQIAc1MAoI8YVqYAwNwUAOgjhpUpADA3BQD6iGFlC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ADFSGE.PEllipsefalseAnyAnyfalseAzure Active DirectoryfalseSE.P.TMCore.AzureADCentered on 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 ADGE.PEllipsefalseAnyAnyfalseA representation of Azure Data ExplorerfalseSE.P.TMCore.ADECentered on stenciliVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAQ3SURBVGhD3djNa9RAGAbwnvyD9ODRox78BwQVD3oQRD14qAp6EFSoINiDXgQFQURBlFJsVbSVHsQiiq390NrP3e2XLda223a7HfsMeddJ8iaZmUyy2z7w0CWZyeZHdzPZNJ14WhBNzX117Z7L/eLQk0FxpG0os57q/CkuvZsSTWI79UTnhv0w/h+M1AOdKzYIRvJE547lwEge6Lpgo8BIlmhT7OnXI+L+t2lx9u0vdj9XFhsHRrJAm2KBnF3dkOezslEVzd1j7Di1kVg0Doy4RKfBUpLQsVg0CYy4QNt8Z8f+rHln4M/iWkUcbx8OjU/EojpgJA3aBgvQRnXLe3d/sB3fa3W8FhbVBSM2aBss9e6XkvfO/jwemPON08aiJmDEBJ0GSw2inw3P+/YbYVFTMKKDdoGl3vlcFP3zK3JpUrcbY1EbMBKHdomNqhUWtQUjHNoUi6UHV2MsPzprLBrEtn4uyfnF5XX5Wt0XahowoqJtsOo6q3NjwWHLlap3BCFfx6LTghGg02Ipcegg9nZv0YelYBv2qWNrdQFGjj0fZU8yqrjaRqVr8k9oPPed7SkseTPC+Vj6Gxov6wqMHH2hf3N/8+OUNysc3avxg74Zb0Y42MfNcQpGTNDcjYXpOst9UrCNGyvrGozYom1vKlR0LBbNAoyYoHFfjIuYuk0XS235VJDl9vmaFRgxQasNYgHpGF3UAyU1SzBiig5i1XU2cY3VqS14avGlGCy1iOrWurclOrroOCwlDbq5a1xce180B/+YuSde9e2V/TR6xgma+84ulCvebH+W1jfFlZ6J0Pi4Anvw4Yi41T1nBlaxrtAcFqDgf5dSqW6JG9vreHBOVAm7r9UQzGGpQOskiOawVG6NRRKXHqUq1ggch0W7hg57I5ND6DgsNYhOg9UG62BXNwreaL2cbBtjT5Lro++zYmihLP9y+7lyWC1wFljK+U7+ZNM2CpsIzhJLcY2Ow6KRYBfYymb0zzc1rtBJWJQFu8DSMb4Vrnpb4pMWrYNFQ2CXWGrWaF0s6gNngaVmhTbBojVwllgq7r91oos2xaISnAcWx1irRD/HCiYJbYNFJZg7QaorbNIxuEShbbGoBL8ZOGB9ollhKUF0GiwqwUvlQRFENwKWQui0WLR20VLReWGHZ+7I6uRc50RqLFoDI0DjKUYeWCxTNF53ybrQPs0iTOoD68Q1lpoX2gicFZaq+/FOg9YGZ41Fv05e9EYmxxatBc4Dq/tcTI0NOhHcqFiKKToW3OhYigk6ErxTsBRdNAveaViKDjoE3qlYShLaB97pWEocugbeLVhKFFqCdxuWwqElmDtBqg4Wj264udR6YClBtASneQCA4FdWR99+9hj1xFJUtATbPgBQM/e3J4RuBCyF0LWLlukDAC4qupGwFKBrYATo/uJ1Kyzl93Kv/JnXaFjK11JZ/APE8zEB5VpUdAAAAABJRU5ErkJggg==Azure Data ExplorerGE.PEllipsefalseAnyAnyfalsefalseSelectOnly AzureAzure and On PremLinked Service TypesVirtualDynamicafe0080c-37dc-4d53-9edd-d0a163856bdcListAzure Data FactoryfalseSE.P.TMCore.AzureDataFactoryCentered on stenciliVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAABcRgAAXEYBFJRDQQAAHIVJREFUeF7t3S+UXMXW8OErr7wSiUQikUgkFomM+ATiiggEIgIRgUAgIhAxEREIBOIViAhEBCICMQIxIiIiAhEzX3ZYfZl0dqp7prv+nKpHPGYvFumZVM759elTff51dXUFACwmHQIAc0uHAMDc0iEAMLd0CADMLR0CAHNLhwDA3NIhADC3dAgAzC0dAgBzS4cAwNzSIQAwt3QIAMwtHQIAc0uH9Pf08q+r//vjHw9+e3H19c/P/+fuT8+vPv3u4qD/3H129a//97aYZf/tvut/3r1fnr/1euL17b9mALYjHVLPs+ev3pxAH//+8n8n190J94Ov/3jnZL0F//7vP0ERYRI/08OnL9/8nPHz7v8OAOgvHXJ7f70+38WJL06AcSL84sc/35wY4ySZnTxXsYuELx9evvm9iAOAvtIhh12+fHX18zMn+XP45P7F1ecP/nzzu4wrI8IAoL50yNvi8+54R7/73D37XJ3z2l0xiN95/O5FAcB5pcOVxTv7OOHceXT55p1pdnKij+tREFcKXry5DzH/ewSgLB2u5OLFqzd32Mdn0x/d2+ZNeCuLSIsgiI9j4v6L63+3ALxfOpxZvMOPE358br/Vu+55v7hCEPcSPLmwTRGgJB3OJk4G8S7x429d0l9J3KsRV3bi4wJXBwDelg637vq7fDfsEeL+gdhpEOsi1sf+mgFYTTrcorgh7PsnL95cAs5OAHBdrJNYL24kBFaVDrciLuvGO7p4Z5cd5OGQuDIQHxPETYT76wtgZulwdLFNLy7v++IdzunDb/54c69I7AzZX3MAs0mHI4rPbeOBNO7cp4XPfvjTVQFgaulwJHEQjnf72UEaaovvhoiPmewiAGaTDnuLg228249LstlBeTWxfTFuWtsX71Jjz/v77D/CN8Qs+2+vi/9v9uet/JFLXHmK340dBMAs0mEvceK//+uLJS7z706q10/icVf67kQ9+ufQ16Ni9/rD7uea9WuUI4K+enxp9wCweemwtRlP/NefcBeXkONEuepJIx7kEz9/BE78PuL3EpGw5e9oiNceV1N8NABsVTpsZYYTf5zorz/j3iXim4koit9brIO4Az/CYEvrIV5rBN7+zwUwunTYQtzct7WH78TJKS7/ejxtfRFSsUZ2HyuMfrUg7tPw/AFgS9JhTXFg38IX98QJJ3YfxDtTB/YxXH9y46g3iMZVDB8LAFuQDmuIg2J8ZjryneRxQ168xqeXTvhbEFdh4r6C0b4UKj4W8B0CwOjS4bnFgXrEy/3xLj/eTcYlfe/ati+e+nfn0eUw9xDE2rJbABhVOjynuGQ70ruz3Uk/Thb7r5V5xMc2EQO97x2I8HW/CDCidHgO8Y46TrTZQbGHuO/AO/31xN93/L3HxzvZumghIiR2Ouy/NoCe0uGp4h1P3BWdHQxbikvBcROfrXmEuIkwrgr0uiIVa3H/NQH0kg5PETfQ9b7sujvxe7dPJoIwthf2CIG4Krb/egB6SIe31fvkH3+2Ez/H6rUlNb5LYv+1ALSWDm+j98k/Lu261M9txJa91t8rEFcg9l8HQEvp8KbiM/9eJ/84cPuiHk4V2/Va3ygoAoCe0uFNxOX2Xjf8xeVb+6w5p/gmv2yt1WJ3ANBLOryJ+DwzO7DVFgfq/dcC59AyAuKGVREL9JAOjxWfnWYHtdriq1/3XwucU8vvsLCegR7S4THi0n+Pr1yNjxvc5U9trde3b6YEWkuHx4jtdtmBrDY3/NFKyzUeYbv/5wPUlA6P0ePhPnGX9v7rgFriKkDLLwvyFEqgpXR4SFyuzA5gtbnxj9Za7nDxLYFAS+nwkB7fnhbioS77rwVqihv0srVYQ1xtcH8L0Eo6PKTXvv97v7gCQFuf3G+71j06GGglHR7S62lqtkvRWutvuIyttfuvAaCGdFgS37efHbhaiPDwff+08v2T9jtd4s/cfx0ANaTDkvjq0uzA1Urcf7D/muDcIjR7fM+F5wMAraTDkt4BEGJ/9v7rgnOJG/FaPxhoRwAAraTDkhECIDz4TQRwfj1P/kEAAK2kw5JRAiDYFcA5xUN5Pv2uzw6XHQEAtJIOS0YKgOCRwJxDfMV0j8/89wkAoJV0WDJaAIQ4cPuSIG4j4jG+YbLX1tZ9AgBoJR2WjBgAO/EFRfH69l8zZOJm0tb7/A8RAEAr6bBk5ADYic9xhQCZuMkv9tp/+E3/y/0ZAQC0kg5LthAAOxECvlmNEJf64x3/CJ/zlwgAoJV0WLKlANiJd3vxOe/FC98iuJoIwPgK6VE+4z9EAACtpMOSLQbAdfFwl7gE7CuF5xXP1f/q8eXw7/YzAgBoJR2WbD0AroubBuOysCsD2xfrMk76o362fywBALSSDktmCoDrIgbiBBKXjD2TfXwRbfFtkHF5f4vv9N9HAACtpMOSWQNgX9xAGN80GD/v/u+A9uIjm8e/v7y68+jy6qN785zw9wkAoJV0WLJKAOyLewfi5BPvOp8995FBbbHOIsDiHf7WL+vfhAAAWkmHJasGQCauEnz58PJ/Vwp8JfHNRUzFO/s48cXXOs/87v4YAgBoJR2WCICy+Ga5XRjEwTxObvE72/89riQu38fvIHZfxO8knrYXV1Sy39/qBADQSjosEQCniTgI8W43DvYhTozxew1b2p4Y2+12r3v3s8T3Lex+xtXfzd+GAABaSYclAqCd2JmwO5nuTrCZ3UcQt7W7BP8+ce/D7nXMdMf9iOL3vf9vDqCGdFgSJ4zswAWcTgAAraTDEgEA9QgAoJV0WCIAoB4BALSSDksEANQjAIBW0mGJAIB6BADQSjosEQBQjwAAWkmHJQIA6hEAQCvpsEQAQD0CAGglHZYIAKhHAACtpMMSAQD1CACglXRYIgCgHgEAtJIOSwQA1CMAgFbSYYkAgHoEANBKOiwRAFCPAABaSYclAgDqEQBAK+mwRABAPQIAaCUdlggAqEcAAK2kwxIBAPUIAKCVdFgiAKAeAQC0kg5LBADUIwCAVtJhiQCAegQA0Eo6LBEAUI8AAFpJhyUCAOoRAEAr6bBEAEA9AgBoJR2WCACoRwAAraTDEgEA9QgAoJV0WCIAoB4BALSSDksEANQjAIBW0mGJAIB6BADQSjosEQBQjwAAWkmHJQIA6hEAQCvpsEQAQD0CAGglHZYIAKhHAACtpMMSAQD1CACglXRYIgCgHgEAtJIOSwQA1CMAgFbSYYkAgHoEANBKOiwRAFCPAABaSYclAgDqEQBAK+mwRABAPQIAaCUdlggAqEcAAK2kwxIBAPUIAKCVdFgiAKAeAQC0kg5LBADUIwCAVtJhiQCAegQA0Eo6LBEAUI8AAFpJhyUCAOoRAEAr6bBEAEA9AgBoJR2WCACoRwAAraTDEgEA9QgAoJV0WCIAoB4BALSSDksEANQjAIBW0mGJAIB6BADQSjosEQBQjwAAWkmHJQIA6hEAQCvpsEQAQD0CAGglHZYIAKhHAACtpMMSAQD1CACglXRYIgCgHgEAtJIOSwQA1CMAgFbSYYkAgHoEANBKOiwRAFCPAABaSYclAgDqEQBAK+mwRABAPQIAaCUdlggAqEcAAK2kwxIBAPUIAKCVdFgiAKAeAQC0kg5LBADUIwCAVtJhiQCAegQA0Eo6LBEAUI8AAFpJhyUCAOoRAEAr6bBEAEA9AgBoJR2WCACoRwAAraTDEgEA9QgAoJV0WCIAoB4BALSSDksEANQjAIBW0mGJAIB6BADQSjosEQBQjwAAWkmHJQIA6hEAQCvpsEQAQD0CAGglHZYIAKhHAACtpMMSAQD1CACglXRYIgCgHgEAtJIOSwQA1CMAgFbSYYkAgHoEANBKOiwRAFCPAABaSYclAgDqEQBAK+mwRABAPQIAaCUdlggAqEcAAK2kwxIBAPUIAKCVdFgiAKAeAQC0kg5LBADUIwCAVtJhiQCAegQA0Eo6LBEAUI8AAFpJhyUCAOoRAEAr6bBEAEA9AgBoJR2WCACoRwAAraTDEgEA9QgAoJV0WCIAoB4BALSSDksEANQjAIBW0mGJAIB6BADQSjosEQBQjwAAWkmHJQIA6hEAQCvpsEQAQD0CAGglHZYIAKhHAACtpMMSAQD1CACglXRYIgCgHgEAtJIOSwQA1CMA2PfXq6urcH0GO6esj3RYIgCgHgHAdS/+urr69LuLq4sXb47w6X/Duk5dH+mwRABAPQKAnTiof3TvjzfrQgCw7xzrIx2WCACoRwAQnl7+dfXB138f3IMA4LpzrY90WCIAoB4BwOPfX179+79vrwsBwM4510c6LBEAUI8AWNv3T16k60IAEM69PtJhiQCAegTAur56fJmuiSAAqLE+0mGJAIB6BMB6YgvX5w/+TNfDjgBYV831kQ5LBADUIwDWEtu4Pv72Il0L1wmANdVeH+mwRABAPQJgHc+ev7r68Jt/7uQuEQDrabE+0mGJAIB6BMAa4jj6n7v5GsgIgLW0Wh/psEQAQD0CYH4Pn767jesQAbCOlusjHZYIAKhHAMzt3i/P07/3QwTAGlqvj3RYIgCgHgEwry8fvn8b1yECYH491kc6LBEAUI8AmE/cyf3ZD+VtXIcIgHn1XB/psEQAQD0CYC5xYD5mG9chAmBOvddHOiwRAFCPAJhHPLDl2G1chwiA+YywPtJhiQCAegTAHH5+9vJG27gOEQBzGWV9pMMSAQD1CIDte98DW04hAOYx0vpIhyUCAOoRANt296fbbeM6RADMYbT1kQ5LBADUIwC2KR7Y8sWPp93JXSIAtm3U9ZEOSwQA1CMAtie2cX1y//Q7uUsEwHaNvD7SYYkAgHoEwLbEgfeje+e5k7tEAGzT6OsjHZYIAKhHAGzHk4ubPbDlFAJge7awPtJhiQCAegTANjz+/eYPbDmFANiWrayPdFgiAKAeATC++7+efxvXIQJgO7a0PtJhiQCAegTA2O48uv0DW04hALZha+sjHZYIAKhHAIwptnGd+sCWUwiAsW11faTDEgEA9QiA8Vy+PM8DW04hAMa15fWRDksEANQjAMZyzge2nEIAjGnr6yMdlggAqEcAjCOOda22cR0iAMYzw/pIhyUCAOoRAGN48NuLptu4DhEAY5llfaTDEgEA9QiA/uLvIPu76UkAjGOm9ZEOSwQA1CMA+ok7ub982Gcb1yECoL8Z10c6LBEAUI8A6CMe2PLpd33v5C4RAH3Nuj7SYYkAgHoEQHtx8Oy9jesQAdDPzOsjHZYIAKhHALQV27g++Lr/Nq5DBEAfs6+PdFgiAKAeAdBO6we2nEIAtLfC+kiHJQIA6hEAbXz/pP0DW04hANpaZX2kwxIBAPUIgPq+ejzmndwlAqCdldZHOiwRAFCPAKgntnF9/qDfA1tOIQDqW3F9pMMSAQD1CIA6YhvXJ/fHvpO7RADUter6SIclAgDqEQDn9+z5qyEe2HIKAVDPyusjHZYIAKhHAJzXk4txHthyCgFQx+rrIx2WCACoRwCcz8On29nGdYgAOD/rQwDAUATAedz7ZbwHtpxCAJyX9fG3dFgiAKAeAXC6UR/YcgoBcD7Wxz/SYYkAgHoEwO3Fndyf/bDNbVyHCIDTWR/vSoclAgDqEQC3EwfA0R/YcgoBcBrrI5cOSwQA1CMAbi4e2LL1bVyHCIDbsz7eLx2WCACoRwDczM/PXk6xjesQAXA71kdZOiwRAFCPADjeg9+29cCWUwiAm7M+DkuHJQIA6hEAx7n701zbuA4RADdjfRwnHZYIAKhHAJTFA1u++HHOO7lLBMBxrI+bSYclAgDqEQDvF9u4Pv1u3ju5SwTAYdZH/nspSYclAgDqEQC5OMB9dG/uO7lLBECZ9SEAYPMEwLtmeWDLKQTA+1kfAgCmIADe9vj3eR7YcgoBkLM+/iYAYAIC4B/3f11nG9chAuBd1sc/BABMQAD87c6j+R7YcgoB8Dbr420CACawegDENq7PH6y3jesQAfA36yMnAGACKwfA5cu5H9hyCgFgfZQIAJjAqgHw7Pmr6R/YcorVA8D6KBMAMIEVAyCOKatv4zpk5QCwPg4TADCB1QIgHthiG9dhqwaA9XEcAQATWCkA4mfNfge8a8UAsD6OJwBgAisEQNzJ/eVD27huYqUAsD5uTgDABGYPgJUf2HKKVQLA+rgdAQATmDkA4iBlG9ftrBAA1sftCQCYwKwB8PTyr6sPvraN67ZmDwDr4zQCACYwYwD8/MwDW041cwBYH6cTADCB2QLg+yce2HIOswaA9XEeAgAmMFMAfPXYndznMmMAWB/nIwBgAjMEQGzj+uJHD2w5p5kCwPo4PwEAE9h6AMQ2rk/uu5P73GYJAOujDgEAE9hyAHhgSz0zBID1UY8AgAlsNQCeXHhgS01bDwDroy4BABPYYgA8fGobV21bDgDroz4BABPYWgDc+8UDW1rYagBYH20IAJjAlgLgziPbuFrZYgBYH+0IAJjAFgIg7uT+7AfbuFraUgBYH+0JAJjA6AFw+dIDW3rYSgBYH30IAJjAyAEQD2yxjauPLQSA9dGPAIAJjBoA8cAW27j6GT0ArI++BABMYMQAePCbB7b0NnIAWB/9CQCYwGgBcPcn27hGMGoAWB9jEAAwgVECwANbxjJaAFgfYxEAMIERAiC2cX36nTu5RzJSAFgf4xEAMIHeARAHko/uuZN7NKMEgPUxJgEAE+gZALGNy53cYxohAKyPcQkAmECvAHj8uwe2jKx3AFgfYxMAMIEeAXD/V9u4RtczAKyP8QkAmEDrAPjqsQe2bEGvALA+tkEAwARaBUBs4/r8gW1cW9E6AKyPbREAMIEWAeCBLdvTMgCsj+0RADCB2gHw7PkrD2zZoFYBYH1skwCACdQMgPi3axvXNrUIAOtjuwQATKBWAMQDW2zj2q7aAWB9bJsAgAnUCIB7v3hgy9bVDADrY/sEAEzgnAEQd3J/+dA2rhnUCADrYx4CACZwrgCIB7Z89oNtXLM4dwBYH3MRADCBcwRAHAxs45rLOQPA+piPAIAJnBoA8cCWD762jWs25woA62NOAgAmcEoA/PzMA1tmdY4AsD7mJQBgArcNgO+feGDLzE4NAOtjbgIAJnCbAPDAlvmdEgDWx/wEAEzgJgEQ27i++NGd3Cu4zQHe+liHAIAJHBsAsY3rk/vu5F7FTQ/w1sdaBABM4JgAiH/sHtiylpsc4K2P9QgAmMChAHhy4YEtKzr2AG99rEkAwARKAfDwqW1cqzrmAG99rEsAwATeFwD3f7WNa2WHDvDWx9oEAEwgC4A7j2zjWl3pAG99IABgAtcDwANb2MkO8NYHOwIAJrALgMuXHtjCP/YP8NYH1wkAmEAEQDywxTYurrt+gLc+2CcAYAKffndhGxfviDv849j74LcX1gfvEAAAsCABAAALEgAAsCABAAALEgAAsCABAAALEgAAsCABAAALEgAAsCABAAALEgAAsCABAAALigdE7Z+rj5EOSwQAAIwjzsv75+pjpMMSAQAA4xAAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALCgx7+/fH16zs/ZJemwRAAAwDge/Pbi9ek5P2eXpMMSAQAA4xAAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALAgAQAACxIAALCg+78KAABYztc/P399es7P2SXpsEQAAMA4BAAALEgAAMCCBAAALEgAAMCCBAAALEgAAMCCBAAALEgAAMCCBAAALEgAAMCCBAAALEgAQEX/ufvs6tPvLqbz0b0/0p93JB98/Uf62rduC7/7MOva//jbi/Tn3SIBABXFAWP/38IM4jni2c87ki8fXr5+qfnr37It/O7DrGt/pnOZAICKBEA/AqAvATA+AQAVCYB+BEBfAmB8AgAqEgD9CIC+BMD4BABUJAD6EQB9CYDxCQCoSAD0IwD6EgDjEwBQkQDoRwD0JQDGd+fR7f6NpMMSAcCKBEA/AqAvATC+2/4bSYclAoAVCYB+BEBfAmB8AgAqEgD9CIC+BMD4BABUJAD6EQB9CYDxCQCoSAD0IwD6EgDjEwBQkQDoRwD0JQDGJwCgIgHQjwDoSwCMTwBARQKgHwHQlwAYnwCAigRAPwKgLwEwPgEAFQmAfgRAXwJgfAIAKhIA/QiAvgTA+AQAVCQA+hEAfQmA8QkAqEgA9CMA+hIA4xMAUJEA6EcA9CUAxicAoCIB0I8A6EsAjE8AQEUCoB8B0JcAGJ8AgIoEQD8CoC8BMD4BABUJgH4EQF8CYHwCACoSAP0IgL4EwPgEAFQkAPoRAH0JgPEJAKhIAPQjAPoSAOP77Ic/X/9I+c9Zkg5LBAArEgD9CIC+BMD4bvt3lA5LBAArEgD9CIC+BMD4BABUJAD6EQB9CYDxCQCoSAD0IwD6EgDjEwBQkQDoRwD0JQDGJwCgIgHQjwDoSwCMTwBARQKgHwHQlwAYnwCAigRAPwKgLwEwPgEAFQmAfgRAXwJgfAIAKhIA/QiAvgTA+AQAVCQA+hEAfQmA8QkAqEgA9CMA+hIA4xMAUJEA6EcA9CUAxicAoCIB0I8A6EsAjE8AQEUCoB8B0JcAGJ8AgIoEQD8CoC8BMD4BABUJgH4EQF8CYHwCACoSAP0IgL4EwPgEAFQkAPoRAH0JgPEJAKhIAPQjAPoSAOMTAFCRAOhHAPQlAMb30b0/Xv9I+c9Zkg5LBAArEgD9CIC+BMD4PvxGAEA1AqAfAdCXABifAICKBEA/AqAvATA+AQAVCYB+BEBfAmB8AgAq+vjbi6tY+7O5+9Pz9OcdyWc//Jm+9q3bwu8+zLr27/+6jQA7hgAAgAUJAABYkAAAgAUJAABYkAAAgAUJAABYkAAAgAUJAABYkAAAgAUJAABYkAAAgAUJAABYkAAAgAUJAABYkAAAgAUJAABY0L//++z16Tk/Z5ekwxIBAABj2T9XHyMdlggAABjL/rn6GOmwRAAAwFj2z9XHSIclAgAAxrJ/rj5GOiwRAAAwlv1z9THSYYkAAICx7J+rj5EOSwQAAIxl/1x9jHRYIgAAYCz75+pjpMMSAQAAY9k/Vx8jHZYIAAAYy/65+hjpsEQAAMBY9s/Vx0iHJQIAAMayf64+RjosEQAAMJb9c/Ux0mGJAACAseyfq4+RDksEAACMZf9cfYx0WCIAAGAs++fqY6TDEgEAAGPZP1cfIx2WCAAAGMv+ufoY6bBEAADAWPbP1cdIhyUCAADGsn+uPkY6LBEAADCWy5evXp+i8/P2+6TDEgEAAGO5eCEAAGA5AgAAFiQAAGBBAgAAFiQAAGBBAgAAFiQAAGBBAgAAFiQAAGBBAgAAFiQAAGBBAgAAFiQAAGBBAgAAFiQAAGBBAgAAFiQAAGBBAgAAFiQAAGBBAgAAFvTk4q/Xp+j8vP0+6bBEAADAWOLcvH++PiQdlggAABiLAACABQkAAFiQAACABQkAAFiQAACABQkAAFiQAACABQkAAFiQAACABQkAAFiQAACABQkAAFiQAACABQkAAFiQAACABQkAAFiQAACABQkAAFhQkwB48frPiD8IABhDnJuvn6uPkQ4BgLmlQwBgbukQAJhbOgQA5pYOAYC5pUMAYG7pEACYWzoEAOaWDgGAuaVDAGBu6RAAmFs6BADmlg4BgJld/ev/A62ZYztUYvs0AAAAAElFTkSuQmCCAzure Data FactoryGE.PEllipsefalseAnyAnyfalseA high-scale ingestion-only service for collecting telemetry data from concurrent sourcesfalseSE.P.TMCore.AzureEventHubCentered on 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Azure Event HubGE.PEllipsefalseAnyAnyfalsefalseSelectAllow any IP inboundAllow only other Logic AppsAllow specific IP rangesNw Level Access Control Config for TriggersVirtualDynamicd488c23c-1667-45a1-994b-f56f2655727bListfalseSelectNoneSpecific IPNw Level Access Control Config for ContentsVirtualDynamic0b0ab9bc-a582-4509-a6c4-8d56de65661eListfalseSelectYesNoTrigger_action has sensitive inputs_outputsVirtualDynamicb1724997-7ae6-4b30-a001-9c5b42d9d1d1ListfalseSelectYesNoHTTP request based TriggerVirtualDynamic5afb52dc-dffb-4319-aa22-523f78ee3845ListA representation of Azure Logic AppsfalseSE.P.TMCore.ALACentered on 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 Logic AppsGE.PEllipsefalseAnyAnyfalseA representation of Azure Machine Learning ServicefalseSE.P.TMCore.AzureMLCentered on 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Azure MLGE.PEllipsefalseAnyAnyfalseIngests and processes high-volume data stream falseSE.P.TMCore.AzureStreamAnalyticsCentered on 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Azure Stream AnalyticsGE.PEllipsefalseAnyAnyfalseA representation of Azure Traffic Manager ( DNS-based traffic load balancer )falseSE.P.TMCore.AzureTrafficManagerCentered on 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Azure Traffic ManagerGE.PEllipsefalseAnyAnyfalseEnables execution of background processes in AzurefalseSE.P.TMCore.AzureWebJobCentered on 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Azure Web JobGE.PEllipsefalseAnyAnyfalseA representation of Dynamics CRM serverfalseSE.P.TMCore.DynamicsCRMCentered on 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Dynamics CRMGE.PEllipsefalseAnyAnyfalseA representation of Dynamics CRM PortalfalseSE.P.TMCore.DynamicsCRMPortalCentered on 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Dynamics CRM PortalGE.PEllipsefalseAnyAnyfalsefalseSelectAzure IaaSGenericHost TechnologiesVirtualDynamic97da4742-4e59-441a-994c-a1490d70dd28ListA representation of a machine e.g., on-prem or azure server that hosts an applicationfalseSE.P.TMCore.HostCentered on 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HostGE.PEllipsefalseAnyAnyfalseA representation of Identity Server falseSE.P.TMCore.IdSrvCentered on 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Identity ServerGE.PEllipsefalseAnyAnyfalsefalseSelectGenericNodeJsCSharpIoT Cloud Gateway TechnologiesVirtualDynamic9c1cc117-8938-40ca-bb0a-23d6002ddcf0ListfalseSelectAzure IoT HubAzure Event HubsAzure IoT protocol gatewayCustom cloud gatewayGateway choiceVirtualDynamic1e48cf4e-8ae0-4455-9a2b-c158693877f3ListA high-scale service enabling secure bidirectional communication from variety of devices.falseSE.GP.TMCore.IoTCloudGatewayCentered on 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 Cloud GatewayGE.PEllipsefalseAnyAnyfalseA specialized device that acts as a communication enabler between an IoT device and a cloud backendfalseSE.GP.TMCore.IoTFieldGatewayCentered on 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IoT Field GatewayGE.PEllipsefalseAnyAnyfalsefalseSelectGenericNET Framework 3WCF TechnologiesVirtualDynamicb28a8275-e02f-48b5-888c-87d03d5b01beListfalseSelectTransportMessageSecurity ModeVirtualDynamic6644d5f0-e070-4350-a13b-4d36dcb86531ListfalseSelectNonewindows username certificateClient Credential TypeVirtualDynamic18aa87e2-8648-48e7-a197-46f0b65a81d1ListfalseSelectNoneEncryptAndSign SignProtection LevelVirtualDynamicb81b55b0-ca7b-41df-8cfa-d644e1df1c92ListfalseSelectBasicHttpBindingWSHttpBinding NetTcpBinding WSFederationHttpBinding BindingVirtualDynamiccdaf2be7-2522-458a-8401-64055c7bdec3ListWindows Communication Foundation WCF is Microsoft s unified programming model for building service oriented applications. falseSE.P.TMCore.WCFCentered on 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WCFGE.PEllipsefalseAnyAnyfalsefalseSelectGenericMVC 5MVC 6Web API TechnologiesVirtualDynamic1e972c93-2bd6-4915-8f5f-f46fd9f9399dListfalseSelectOn PremAzureHosting environmentVirtualDynamic6c5d51b0-91b1-45ca-aebd-3238f93db3b8ListfalseSelectADFSAzure ADIdentity ProviderVirtualDynamic3175328a-d229-4546-887b-39b914a75dd8ListWeb APIfalseSE.P.TMCore.WebAPICentered on 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Web APIGE.PEllipsefalseAnyAnyfalsefalseSelectWeb AppWeb App for ContainersTypeVirtualDynamice8c6c66c-d75f-4ddf-bc22-3dad2a5934dbListfalseSelectTrueFalseAzure Web App Processes XMLVirtualDynamic049c845a-28c2-46f8-bda2-971ff7df9bd4ListfalseSelectTrueFalseAzure Web App Processes JSONVirtualDynamicd69db950-2372-4bd3-8328-f751f0b04c03ListfalseSelectAllow access from all networksAllow access from selected networksAzure Web App Firewall SettingsVirtualDynamic327ab565-9b38-4f6a-8171-6ab7deb2246bListfalseSelectTrueFalseAzure Web App CORS UsedVirtualDynamicf6b0309d-2020-4c3f-838f-5ab8ea0d2194ListWeb application built and hosted on Azure App ServicefalseSE.P.TMCore.AzureAppServiceWebAppCentered on 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Azure App Service Web AppGE.PEllipsefalseAnyAnyfalsefalseSelectTrueFalseAzure API App Processes XMLVirtualDynamic0eb10857-97b7-4c8c-8fdd-c289b7921a7eListfalseSelectTrueFalseAzure API App Processes JSONVirtualDynamic0945adcf-1cfd-432f-8032-05391ab62336ListfalseSelectAllow access from all networksAllow access from selected networksAzure API App Firewall SettingsVirtualDynamiccb0fca77-c600-4622-b9a5-118107fcd9ddListfalseSelectTrueFalseAzure API App CORS UsedVirtualDynamic3f4a2250-9087-44c1-9fb7-61e9eb1e4df7ListWeb API built and hosted on Azure App ServicefalseSE.P.TMCore.AzureAppServiceApiAppCentered on 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Azure App Service API AppGE.PEllipsefalseAnyAnyfalsefalseSelectTrueFalseAzure Mobile App Processes XMLVirtualDynamic6c7ab607-e310-4d74-aa5b-397d87f02ee9ListfalseSelectTrueFalseAzure Mobile App Processes JSONVirtualDynamic015d94e3-d54e-4c09-9ce2-2731a0dc86f0ListfalseSelectAllow access from all networksAllow access from selected networksAzure Mobile App Firewall SettingsVirtualDynamic9b54ed83-3970-475b-97a0-be7641051497ListfalseSelectTrueFalseAzure Mobile App CORS UsedVirtualDynamic6ddbac5e-2e11-4b88-b917-587749ea4721ListMobile app backend service built and hosted on Azure App ServicefalseSE.P.TMCore.AzureAppServiceMobileAppCentered on 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Azure App Service Mobile AppGE.PEllipsefalseAnyAnyfalsefalseSelectGenericWeb FormsMVC5MVC6Web Application TechnologiesVirtualDynamicf9960f99-8659-4776-90d7-e454ef832db7ListfalseSelectOnPremAzureEnvironmentTypeVirtualDynamic80fe9520-5f00-4480-ad47-f2fd75dede82ListfalseSelectYesNoProcesses XMLVirtualDynamicdf53c172-b70c-412c-9e99-a6fbc10748eeListWeb ApplicationfalseSE.P.TMCore.WebAppCentered on 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DEIAIgQANZhixECAO7kjieMQQBAhACwDluMEABwJ3c8YQwCACIEgHXYYoQAgDu54wljEAAQIQCswxYjBADcyR1PGIMAgAgBYB22GCEA4E7ueMIYBABECADrsMUIAQB3cscTxiAAIEIAWIctRggAuJM7njAGAQARAsA6bDFCAMCd3PGEMQgAiBAA1mGLEQIA7uSOJ4xBAECEALAOW4wQAHAndzxhDAIAIgSAddhihACAO7njCWMQABAhAKzDFiMEANzJHU8YgwCACAFgHbYYIQDgTu54whgEAEQIAOuwxQgBAHdyxxPGIAAgQgBYhy1GCAC4kzueMAYBABECwDpsMUIAwJ3c8YQxCACIEADWYYsRAgDu5I4njEEAQIQAsA5bjBAAcCd3PGEMAgAiBIB12GKEAIA7ueMJYxAAECEArMMWIwQA3MkdTxiDAIAIAWAdthghAOBO7njCGAQARAgA67DFCAEAd3LHE8YgACBCAFiHLUYIALiTO54wBgEAEQLAOmwxQgDAndzxhDEIAIgQANZhixECAO7kjieMQQBAhACwDluMEABwJ3c8YQwCACIEgHXYYoQAgDu54wljEAAQIQCswxYjBADcyR1PGIMAgAgBYB22GCEA4E7ueMIYBABECADrsMUIAQB3cscTxiAAIEIAWIctRggAuJM7njAGAQARAsA6bDFCAMCd3PGEMQgAiBAA1mGLEQIA7uSOJ4xBAECEALAOW4wQAHAndzxhDAIAIgSAddhihACAO7njCWMQABAhAKzDFiMEANzJHU8YgwCACAFgHbYYIQDgTu54whgEAEQIAOuwxQgBAHdyxxPGIAAgQgBYhy1GCAC4kzueMAYBABECwDpsMUIAwJ3c8YQxCACIEADWYYsRAgDu5I4njEEAQOTf//73+08++cQePw4BYBxbjBAAcCd3PGEMAgAe9csvv7z/17/+9f7rr79+//HHH9vjSQgA49hihACAO7njCWMQAJD1008/vf/nP//5/vPPP//gmCIAjGOLEQIA7uSOJ4xBAEAL6h3QsaShAgLAOLYYIQDgTu54whgEALT2888/v/w//n9DX7YYIQDgTu54whgEAGAfthghAOBO7njCGAQAYB+2GCEA4E7ueMIYBABgH7YYIQDgTu54whgEAGAfthghAOBO7njCGASAMX788cf37969+/9++OGHP36LyH/+8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 ApplicationGE.PEllipsefalseAnyAnyfalseA representation of Azure IaaS VM Trust BoundaryfalseSE.TB.TMCore.AzureIaaSVMTrustBoundaryBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCAzure IaaS VM Trust BoundaryGE.TB.BBorderBoundaryfalseAnyAnyfalseA border representation of Azure Trust Boundary, also referred to as Azure Services ZonefalseSE.TB.TMCore.AzureTrustBoundaryBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCAzure Trust BoundaryGE.TB.BBorderBoundaryfalseAnyAnyfalseA border representation of a Cloud Gateway Zone, also referred to as Cloud Gateway Trust BoundaryfalseSE.TB.TMCore.IoTCloudGatewayZoneBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCIoT Cloud Gateway ZoneGE.TB.BBorderBoundaryfalseAnyAnyfalseA border representation of a Device Zone, also referred to as Device Trust BoundaryfalseSE.TB.TMCore.IoTDeviceZoneBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCIoT Device ZoneGE.TB.BBorderBoundaryfalseAnyAnyfalseA border representation of a Field Gateway Zone, also referred to as Field Gateway Trust BoundaryfalseSE.TB.TMCore.IoTFieldGatewayZoneBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCIoT Field Gateway ZoneGE.TB.BBorderBoundaryfalseAnyAnyfalseA border representation of a Local User Zone, also referred to as Local User Trust BoundaryfalseSE.TB.TMCore.LocalUserTrustBoundaryBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCLocal User ZoneGE.TB.BBorderBoundaryfalseAnyAnyfalseA representation of an end-users machine trust boundaryfalseSE.TB.TMCore.MachineTrustBoundaryBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCMachine Trust BoundaryGE.TB.BBorderBoundaryfalseAnyAnyfalseA border representation of a Remote User Zone, also referred to as Remote User Trust BoundaryfalseSE.TB.TMCore.RemoteUserTrustBoundaryBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCRemote User ZoneGE.TB.BBorderBoundaryfalseAnyAnyfalsefalseSelectAzureStand aloneOther cloudsEnvironmentVirtualDynamic1e5ffbf5-f5bc-4fe5-a73b-dc516d274c82ListA representation of Service Fabric Cluster for stand-alone or cloud environmentsfalseSE.TB.TMCore.ServiceFabricBefore labeliVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABGSURBVDhPY/hPIWBQ9Ev6z2jqDccPnr0ESxArzoDMAeEDZy+DFRIrDjeAVDCcDIDyyQajgTioAhGEQekdHx+bGIUGeP8HAJ4fIfJijo6MAAAAAElFTkSuQmCCService Fabric Trust BoundaryGE.TB.BBorderBoundaryfalseAnyAnyfalseDDenial of ServiceDenial of Service happens when the process or a datastore is not able to service incoming requests or perform up to specfalseEElevation of PrivilegesA user subject gains increased capability or privilege by taking advantage of an implementation bugfalseIInformation DisclosureInformation disclosure happens when the information can be read by an unauthorized partyfalseRRepudiationRepudiation threats involve an adversary denying that something happenedfalseSSpoofingSpoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network addressfalseTTamperingTampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processestruetrueTitlefalse22222222-2222-2222-2222-2222222222220UserThreatCategoryfalse22222222-2222-2222-2222-2222222222220UserThreatShortDescriptiontrue22222222-2222-2222-2222-2222222222220UserThreatDescriptionfalse22222222-2222-2222-2222-2222222222220StateInformationfalse22222222-2222-2222-2222-2222222222220InteractionStringfalse22222222-2222-2222-2222-2222222222220PossibleMitigationsfalse22222222-2222-2222-2222-2222222222222PriorityfalseHighMediumLow22222222-2222-2222-2222-2222222222221SDLPhasefalseDesignImplementation22222222-2222-2222-2222-2222222222221falseDThe default cache that Identity Server uses is an in-memory cache that relies on a static store, available process-wide. While this works for native applications, it does not scale for mid tier and backend applications. This can cause availability issues and result in denial of service either by the influence of an adversary or by the large scale of application's users. target is 'SE.P.TMCore.IdSrv'TH112UserThreatDescriptionfalseThe default cache that Identity Server uses is an in-memory cache that relies on a static store, available process-wide. While this works for native applications, it does not scale for mid tier and backend applications. This can cause availability issues and result in denial of service either by the influence of an adversary or by the large scale of application's users. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseOverride the default Identity Server token cache with a scalable alternative. Refer: <a href="https://aka.ms/tmtauthn#override-token">https://aka.ms/tmtauthn#override-token</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can leverage the weak scalability of Identity Server's token cache and cause DoSfalseDAn Adversary can launch DoS attack on WCF if Throttling in not enabledtarget is 'SE.P.TMCore.WCF'TH130UserThreatDescriptionfalseAn Adversary can launch DoS attack on WCF if Throttling in not enabled22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable WCF's service throttling feature. Refer: <a href="https://aka.ms/tmtconfigmgmt#throttling">https://aka.ms/tmtconfigmgmt#throttling</a>22222222-2222-2222-2222-2222222222222PriorityfalseLow22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An Adversary can launch DoS attack on WCF if Throttling in not enabledfalseDFailure to restrict requests originating from third party domains may result in unauthorized actions or access of datasource is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp'TH26UserThreatDescriptionfalseFailure to restrict requests originating from third party domains may result in unauthorized actions or access of data22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that authenticated ASP.NET pages incorporate UI Redressing or clickjacking defences. Refer: <a href="https://aka.ms/tmtconfigmgmt#ui-defenses">https://aka.ms/tmtconfigmgmt#ui-defenses</a> Ensure that only trusted origins are allowed if CORS is enabled on ASP.NET Web Applications. Refer: <a href="https://aka.ms/tmtconfigmgmt#cors-aspnet">https://aka.ms/tmtconfigmgmt#cors-aspnet</a> Mitigate against Cross-Site Request Forgery (CSRF) attacks on ASP.NET web pages. Refer: <a href="https://aka.ms/tmtsmgmt#csrf-asp">https://aka.ms/tmtsmgmt#csrf-asp</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can perform action on behalf of other user due to lack of controls against cross domain requestsfalseDThe default cache that ADAL (Active Directory Authentication Library) uses is an in-memory cache that relies on a static store, available process-wide. While this works for native applications, it does not scale for mid tier and backend applications. This can cause availability issues and result in denial of service either by the influence of an adversary or by the large scale of application's users.target is 'SE.P.TMCore.AzureAD'TH91UserThreatDescriptionfalseThe default cache that ADAL (Active Directory Authentication Library) uses is an in-memory cache that relies on a static store, available process-wide. While this works for native applications, it does not scale for mid tier and backend applications. This can cause availability issues and result in denial of service either by the influence of an adversary or by the large scale of application's users.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseOverride the default ADAL token cache with a scalable alternative. Refer: <a href="https://aka.ms/tmtauthn#adal-scalable">https://aka.ms/tmtauthn#adal-scalable</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can leverage the weak scalability of token cache and cause DoSfalseEIf there is no restriction at network or host firewall level, to access the database then anyone can attempt to connect to the database from an unauthorized locationtarget is 'SE.DS.TMCore.SQL'TH1UserThreatDescriptionfalseIf there is no restriction at network or host firewall level, to access the database then anyone can attempt to connect to the database from an unauthorized location22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseConfigure a Windows Firewall for Database Engine Access. Refer: <a href="https://aka.ms/tmtconfigmgmt#firewall-db">https://aka.ms/tmtconfigmgmt#firewall-db</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to database due to lack of network access protectionfalseEDue to poorly configured account policies, adversary can launch brute force attacks on {target.Name} target is 'SE.DS.TMCore.AzureSQLDB'TH10UserThreatDescriptionfalseDue to poorly configured account policies, adversary can launch brute force attacks on {target.Name} 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseWhen possible use Azure Active Directory Authentication for connecting to SQL Database. Refer: <a href="https://aka.ms/tmt-th10a">https://aka.ms/tmt-th10a</a> Ensure that least-privileged accounts are used to connect to Database server. Refer: <a href="https://aka.ms/tmt-th10b">https://aka.ms/tmt-th10b</a> and <a href="https://aka.ms/tmt-th10c">https://aka.ms/tmt-th10c</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to Azure SQL database due to weak account policyfalseEAn adversary may jail break into a mobile device and gain elevated privilegessource is 'SE.EI.TMCore.Mobile'TH104UserThreatDescriptionfalseAn adversary may jail break into a mobile device and gain elevated privileges22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement implicit jailbreak or rooting detection. Refer: <a href="https://aka.ms/tmtauthz#rooting-detection">https://aka.ms/tmtauthz#rooting-detection</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may jail break into a mobile device and gain elevated privilegesfalseEAn adversary may gain unauthorized access to Web API due to poor access control checkstarget is 'SE.P.TMCore.WebAPI'TH110UserThreatDescriptionfalseAn adversary may gain unauthorized access to Web API due to poor access control checks22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement proper authorization mechanism in ASP.NET Web API. Refer: <a href="https://aka.ms/tmtauthz#authz-aspnet">https://aka.ms/tmtauthz#authz-aspnet</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to Web API due to poor access control checksfalseEAn adversary can gain unauthorized access to resources in Azure subscription. The adversary can be either a disgruntled internal user, or someone who has stolen the credentials of an Azure subscription.flow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.AzureTrustBoundary'TH116UserThreatDescriptionfalseAn adversary can gain unauthorized access to resources in Azure subscription. The adversary can be either a disgruntled internal user, or someone who has stolen the credentials of an Azure subscription.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable fine-grained access management to Azure Subscription using RBAC. Refer: <a href="https://aka.ms/tmtauthz#grained-rbac">https://aka.ms/tmtauthz#grained-rbac</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to resources in an Azure subscriptionfalseEAn adversary can bypass built in security through Custom Services or ASP.NET Pages which authenticate as a service accounttarget is 'SE.P.TMCore.DynamicsCRM'TH120UserThreatDescriptionfalseAn adversary can bypass built in security through Custom Services or ASP.NET Pages which authenticate as a service account22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseCheck service account privileges and check that the custom Services or ASP.NET Pages respect CRM's security. Refer: <a href="https://aka.ms/tmtcommsec#priv-aspnet">https://aka.ms/tmtcommsec#priv-aspnet</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can bypass built in security through Custom Services or ASP.NET Pages which authenticate as a service accountfalseEMisconfiguration of Security Roles, Business Unit or Teamstarget is 'SE.P.TMCore.DynamicsCRM'TH124UserThreatDescriptionfalseMisconfiguration of Security Roles, Business Unit or Teams22222222-2222-2222-2222-2222222222220PossibleMitigationsfalsePerform security modelling and use Field Level Security where required. Refer: <a href="https://aka.ms/tmtauthz#modeling-field">https://aka.ms/tmtauthz#modeling-field</a> Perform security modelling and use Business Units/Teams where required. Refer: <a href="https://aka.ms/tmtdata#modeling-teams">https://aka.ms/tmtdata#modeling-teams</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221Misconfiguration of Security Roles, Business Unit or TeamsfalseEMisuse of the Share featuretarget is 'SE.P.TMCore.DynamicsCRM'TH125UserThreatDescriptionfalseMisuse of the Share feature22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseMinimize access to share feature on critical entities. Refer: <a href="https://aka.ms/tmtdata#entities">https://aka.ms/tmtdata#entities</a> Train users on the risks associated with the Dynamics CRM Share feature and good security practices. Refer: <a href="https://aka.ms/tmtdata#good-practices">https://aka.ms/tmtdata#good-practices</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221Misuse of the Share featurefalseEUsers with CRM Portal access are inadvertently given access to sensitive records and datatarget is 'SE.P.TMCore.DynamicsCRMPortal'TH128UserThreatDescriptionfalseUsers with CRM Portal access are inadvertently given access to sensitive records and data22222222-2222-2222-2222-2222222222220PossibleMitigationsfalsePerform security modelling of portal accounts keeping in mind that the security model for the portal differs from the rest of CRM. Refer: <a href="https://aka.ms/tmtauthz#portal-security">https://aka.ms/tmtauthz#portal-security</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221Users with CRM Portal access are inadvertently given access to sensitive records and datafalseEAn adversary may gain unauthorized access to data on host machinesflow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No' flow crosses 'SE.TB.TMCore.MachineTrustBoundary'TH135UserThreatDescriptionfalseAn adversary may gain unauthorized access to data on host machines22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that proper ACLs are configured to restrict unauthorized access to data on the device. Refer: <a href="https://aka.ms/tmtauthz#acl-restricted-access">https://aka.ms/tmtauthz#acl-restricted-access</a> Ensure that sensitive user-specific application content is stored in user-profile directory. Refer: <a href="https://aka.ms/tmtauthz#sensitive-directory">https://aka.ms/tmtauthz#sensitive-directory</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to data on host machinesfalseEIf an application runs under a high-privileged account, it may provide an opportunity for an adversary to gain elevated privileges and execute malicious code on host machines. E.g., If the developed executable runs under the logged-in user's identity and the user has admin rights on the machine, the executable will be running with administrator privileges. Any unnoticed vulnerability in the application could be used by adversaries to execute malicious code on the host machines that run the application.flow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.MachineTrustBoundary'TH136UserThreatDescriptionfalseIf an application runs under a high-privileged account, it may provide an opportunity for an adversary to gain elevated privileges and execute malicious code on host machines. E.g., If the developed executable runs under the logged-in user's identity and the user has admin rights on the machine, the executable will be running with administrator privileges. Any unnoticed vulnerability in the application could be used by adversaries to execute malicious code on the host machines that run the application.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that the deployed applications are run with least privileges. . Refer: <a href="https://aka.ms/tmtauthz#deployed-privileges">https://aka.ms/tmtauthz#deployed-privileges</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain elevated privileges and execute malicious code on host machinesfalseEAn adversary can gain unauthorized access to {target.Name} due to weak access control restrictionstarget is 'SE.DS.TMCore.AzureStorage'TH17UserThreatDescriptionfalseAn adversary can gain unauthorized access to {target.Name} due to weak access control restrictions22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseGrant limited access to objects in Azure Storage using SAS or SAP. It is recommended to scope SAS and SAP to permit only the necessary permissions over a short period of time. Refer: <a href="https://aka.ms/tmt-th17a">https://aka.ms/tmt-th17a</a> and <a href="https://aka.ms/tmt-th17b">https://aka.ms/tmt-th17b</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to {target.Name} due to weak access control restrictionsfalseEDue to poorly configured account policies, adversary can launch brute force attacks on {target.Name}target is 'SE.DS.TMCore.SQL' and target.6047e74b-a4e1-4e5b-873e-3f7d8658d6b3 is 'OnPrem'TH2UserThreatDescriptionfalseDue to poorly configured account policies, adversary can launch brute force attacks on {target.Name}22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseWhen possible, use Windows Authentication for connecting to SQL Server. Refer: <a href="https://aka.ms/tmtauthn#win-authn-sql">https://aka.ms/tmtauthn#win-authn-sql</a> When SQL authentication mode is used, ensure that account and password policy are enforced on SQL server. Refer: <a href="https://aka.ms/tmtauthn#authn-account-pword">https://aka.ms/tmtauthn#authn-account-pword</a> Do not use SQL Authentication in contained databases. Refer: <a href="https://aka.ms/tmtauthn#autn-contained-db">https://aka.ms/tmtauthn#autn-contained-db</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to SQL database due to weak account policyfalseEFailure to restrict the privileges and access rights to the application to individuals who require the privileges or access rights may result into unauthorized use of data due to inappropriate rights settings and validation.source is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp'TH27UserThreatDescriptionfalseFailure to restrict the privileges and access rights to the application to individuals who require the privileges or access rights may result into unauthorized use of data due to inappropriate rights settings and validation.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that administrative interfaces are appropriately locked down. Refer: <a href="https://aka.ms/tmtauthn#admin-interface-lockdown">https://aka.ms/tmtauthn#admin-interface-lockdown</a> Enforce sequential step order when processing business logic flows. Refer: <a href="https://aka.ms/tmtauthz#sequential-logic">https://aka.ms/tmtauthz#sequential-logic</a> Ensure that proper authorization is in place and principle of least privileges is followed. Refer: <a href="https://aka.ms/tmtauthz#principle-least-privilege">https://aka.ms/tmtauthz#principle-least-privilege</a> Business logic and resource access authorization decisions should not be based on incoming request parameters. Refer: <a href="https://aka.ms/tmtauthz#logic-request-parameters">https://aka.ms/tmtauthz#logic-request-parameters</a> Ensure that content and resources are not enumerable or accessible via forceful browsing. Refer: <a href="https://aka.ms/tmtauthz#enumerable-browsing">https://aka.ms/tmtauthz#enumerable-browsing</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may bypass critical steps or perform actions on behalf of other users (victims) due to improper validation logicfalseEAn adversary may gain elevated privileges on the functionality of cloud gateway if SAS tokens with over-privileged permissions are used to connect(source is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway') and target is 'SE.GP.TMCore.IoTCloudGateway'TH37UserThreatDescriptionfalseAn adversary may gain elevated privileges on the functionality of cloud gateway if SAS tokens with over-privileged permissions are used to connect22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseConnect to Cloud Gateway using least-privileged tokens. Refer: <a href="https://aka.ms/tmtauthz#cloud-least-privileged">https://aka.ms/tmtauthz#cloud-least-privileged</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain elevated privileges on Cloud GatewayfalseEDatabase access should be configured with roles and privilege based on least privilege and need to know principle. target is 'SE.DS.TMCore.SQL' TH4UserThreatDescriptionfalseDatabase access should be configured with roles and privilege based on least privilege and need to know principle. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that least-privileged accounts are used to connect to Database server. Refer: <a href="https://aka.ms/tmtauthz#privileged-server">https://aka.ms/tmtauthz#privileged-server</a> Implement Row Level Security RLS to prevent tenants from accessing each others data. Refer: <a href="https://aka.ms/tmtauthz#rls-tenants">https://aka.ms/tmtauthz#rls-tenants</a> Sysadmin role should only have valid necessary users . Refer: <a href="https://aka.ms/tmtauthz#sysadmin-users">https://aka.ms/tmtauthz#sysadmin-users</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to database due to loose authorization rulesfalseEAn adversary may get access to admin interface or privileged services like WiFi, SSH, File shares, FTP etc., on a devicesource is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway'TH41UserThreatDescriptionfalseAn adversary may get access to admin interface or privileged services like WiFi, SSH, File shares, FTP etc., on a device22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that all admin interfaces are secured with strong credentials. Refer: <a href="https://aka.ms/tmtconfigmgmt#admin-strong">https://aka.ms/tmtconfigmgmt#admin-strong</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to privileged features on {source.Name}falseEAn adversary may leverage insufficient authorization checks on the device and execute unauthorized and sensitive commands remotely.(source is 'SE.GP.TMCore.IoTFieldGateway' or source is 'SE.GP.TMCore.IoTCloudGateway') and target is 'SE.EI.TMCore.IoTdevice'TH42UserThreatDescriptionfalseAn adversary may leverage insufficient authorization checks on the device and execute unauthorized and sensitive commands remotely.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalsePerform authorization checks in the device if it supports various actions that require different permission levels. Refer: <a href="https://aka.ms/tmtauthz#device-permission">https://aka.ms/tmtauthz#device-permission</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may trigger unauthorized commands on the devicefalseEAn adversary may use unused features or services on {target.Name} such as UI, USB port etc. Unused features increase the attack surface and serve as additional entry points for the adversarysource is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway'TH48UserThreatDescriptionfalseAn adversary may use unused features or services on {target.Name} such as UI, USB port etc. Unused features increase the attack surface and serve as additional entry points for the adversary22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that only the minimum services/features are enabled on devices. Refer: <a href="https://aka.ms/tmtconfigmgmt#min-enable">https://aka.ms/tmtconfigmgmt#min-enable</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may exploit unused services or features in {target.Name}falseEAn adversary may leverage insufficient authorization checks on the field gateway and execute unauthorized and sensitive commands remotely(source is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTCloudGateway') and target is 'SE.GP.TMCore.IoTFieldGateway'TH51UserThreatDescriptionfalseAn adversary may leverage insufficient authorization checks on the field gateway and execute unauthorized and sensitive commands remotely22222222-2222-2222-2222-2222222222220PossibleMitigationsfalsePerform authorization checks in the Field Gateway if it supports various actions that require different permission levels. Refer: <a href="https://aka.ms/tmtauthz#field-permission">https://aka.ms/tmtauthz#field-permission</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may trigger unauthorized commands on the field gatewayfalseEA compromised access key may permit an adversary to have over-privileged access to an {target.Name} instance target is 'SE.P.TMCore.AzureDocumentDB'TH54UserThreatDescriptionfalseA compromised access key may permit an adversary to have over-privileged access to an {target.Name} instance22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse resource (SAS like) tokens (derived using master keys) to connect to Cosmos DB instances whenever possible. Scope the resource tokens to permit only the privileges necessary (e.g. read-only). Store secrets in a secret storage solution (e.g. Azure Key Vault). Refer: <a href="https://aka.ms/tmt-th54">https://aka.ms/tmt-th54</a> 22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221A compromised access key may permit an adversary to have more access than intended to an {target.Name} instance falseIAn adversary may read content stored in {target.Name} instances through SQL injection based attackstarget is 'SE.P.TMCore.AzureDocumentDB' and target.d456e645-5642-41ad-857f-951af1a3d968 is 'SQL'TH56UserThreatDescriptionfalseAn adversary may read content stored in {target.Name} instances through SQL injection based attacks22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse parametrized SQL queries to query Cosmos DB instances. Refer: <a href="https://aka.ms/tmt-th56">https://aka.ms/tmt-th56</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may read content stored in {target.Name} instances through SQL injection based attacksfalseEAn adversary can gain unauthorized access to Azure Cosmos DB instances due to weak network security configurationtarget is 'SE.P.TMCore.AzureDocumentDB' and not target.b646c6da-6894-432a-8925-646ae6d1d0ea is 'Allow access from selected networks (excluding Azure)'TH57UserThreatDescriptionfalseAn adversary can gain unauthorized access to Azure Cosmos DB instances due to weak network security configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict access to Azure Cosmos DB instances by configuring account-level firewall rules to only permit connections from selected IP addresses where possible. Refer: <a href="https://aka.ms/tmt-th57">https://aka.ms/tmt-th57</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to Azure Cosmos DB instances due to weak network security configurationfalseEAn adversary may leverage insufficient authorization checks on the Event Hub (SAS token) and be able to listen (Read) to the Events and manage (change) configurations of the Event Hubtarget is 'SE.P.TMCore.AzureEventHub'TH59UserThreatDescriptionfalseAn adversary may leverage insufficient authorization checks on the Event Hub (SAS token) and be able to listen (Read) to the Events and manage (change) configurations of the Event Hub22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse a send-only permissions SAS Key for generating device tokens. Refer: <a href="https://aka.ms/tmtauthz#sendonly-sas">https://aka.ms/tmtauthz#sendonly-sas</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may exploit the permissions provisioned to the device token to gain elevated privilegesfalseEIf a token that grants direct access to the event hub is given to the device, it would be able to send messages directly to the eventhub without being subjected to throttling. It further exempts such a device from being able to be blacklisted.target is 'SE.P.TMCore.AzureEventHub'TH60UserThreatDescriptionfalseIf a token that grants direct access to the event hub is given to the device, it would be able to send messages directly to the eventhub without being subjected to throttling. It further exempts such a device from being able to be blacklisted.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseDo not use access tokens that provide direct access to the Event Hub. Refer: <a href="https://aka.ms/tmtauthz#access-tokens-hub">https://aka.ms/tmtauthz#access-tokens-hub</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary bypass the secure functionalities of the Event Hub if devices authenticate with tokens that give direct access to Event HubfalseEAn adversary may gain elevated privileges on the functionality of Event Hub if SAS keys with over-privileged permissions are used to connecttarget is 'SE.P.TMCore.AzureEventHub'TH62UserThreatDescriptionfalseAn adversary may gain elevated privileges on the functionality of Event Hub if SAS keys with over-privileged permissions are used to connect22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseConnect to Event Hub using SAS keys that have the minimum permissions required. Refer: <a href="https://aka.ms/tmtauthz#sas-minimum-permissions">https://aka.ms/tmtauthz#sas-minimum-permissions</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain elevated privileges on Event HubfalseEAn adversary can gain unauthorized access to all entities in {target.Name} tablestarget is 'SE.DS.TMCore.AzureStorage' and target.b3ece90f-c578-4a48-b4d4-89d97614e0d2 is 'Table'TH64UserThreatDescriptionfalseAn adversary can gain unauthorized access to all entities in {target.Name} tables22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseGrant fine-grained permission on a range of entities in Azure Table Storage. Refer: <a href="https://aka.ms/tmt-th64">https://aka.ms/tmt-th64</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to all entities in {target.Name}'s tablesfalseEAn adversary can gain unauthorized access to {target.Name} instances due to weak network configurationtarget is 'SE.DS.TMCore.AzureStorage' and target.eb012c7c-9201-40d2-989f-2aad423895a5 is 'Allow access from selective networks'target is 'SE.DS.TMCore.AzureStorage'TH140UserThreatDescriptionfalseAn adversary can gain unauthorized access to {target.Name} instances due to weak network configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseIt is recommended to restrict access to Azure Storage instances to selected networks where possible. <a href="https://aka.ms/tmt-th140">https://aka.ms/tmt-th140</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to {target.Name} instances due to weak network configurationfalseEAn adversary may gain unauthorized access to {target.Name} account in a subscriptiontarget is 'SE.DS.TMCore.AzureStorage'TH67UserThreatDescriptionfalseAn adversary may gain unauthorized access to {target.Name} account in a subscription22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseAssign the appropriate Role-Based Access Control (RBAC) role to users, groups and applications at the right scope for the Azure Storage instance. Refer: <a href="https://aka.ms/tmt-th67">https://aka.ms/tmt-th67</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to {target.Name} account in a subscriptionfalseEIf RBAC is not implemented on Service Fabric, clients may have over-privileged access on the fabric's cluster operationsflow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.ServiceFabric'TH71UserThreatDescriptionfalseIf RBAC is not implemented on Service Fabric, clients may have over-privileged access on the fabric's cluster operations22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict client's access to cluster operations using RBAC. Refer: <a href="https://aka.ms/tmtauthz#cluster-rbac">https://aka.ms/tmtauthz#cluster-rbac</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to Service Fabric cluster operationsfalseEAn adversary may gain unauthorized access to {target.Name} if connection is insecure(source is 'SE.P.TMCore.AzureDataFactory') and source.afe0080c-37dc-4d53-9edd-d0a163856bdc is 'Only Azure'(source is 'SE.P.TMCore.AzureDataFactory')TH90UserThreatDescriptionfalseAn adversary may gain unauthorized access to {target.Name} if connection is insecure22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse Data management gateway while connecting On Prem SQL Server to Azure Data Factory. Refer: <a href="https://aka.ms/tmtcommsec#sqlserver-factory">https://aka.ms/tmtcommsec#sqlserver-factory</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to {target.Name} if connection is insecurefalseIAn adversary can reverse weakly encrypted or hashed contenttarget is 'SE.P.TMCore.WebApp'TH101UserThreatDescriptionfalseAn adversary can reverse weakly encrypted or hashed content22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseDo not expose security details in error messages. Refer: <a href="https://aka.ms/tmtxmgmt#messages">https://aka.ms/tmtxmgmt#messages</a> Implement Default error handling page. Refer: <a href="https://aka.ms/tmtxmgmt#default">https://aka.ms/tmtxmgmt#default</a> Set Deployment Method to Retail in IIS. Refer: <a href="https://aka.ms/tmtxmgmt#deployment">https://aka.ms/tmtxmgmt#deployment</a> Use only approved symmetric block ciphers and key lengths. Refer: <a href="https://aka.ms/tmtcrypto#cipher-length">https://aka.ms/tmtcrypto#cipher-length</a> Use approved block cipher modes and initialization vectors for symmetric ciphers. Refer: <a href="https://aka.ms/tmtcrypto#vector-ciphers">https://aka.ms/tmtcrypto#vector-ciphers</a> Use approved asymmetric algorithms, key lengths, and padding. Refer: <a href="https://aka.ms/tmtcrypto#padding">https://aka.ms/tmtcrypto#padding</a> Use approved random number generators. Refer: <a href="https://aka.ms/tmtcrypto#numgen">https://aka.ms/tmtcrypto#numgen</a> Do not use symmetric stream ciphers. Refer: <a href="https://aka.ms/tmtcrypto#stream-ciphers">https://aka.ms/tmtcrypto#stream-ciphers</a> Use approved MAC/HMAC/keyed hash algorithms. Refer: <a href="https://aka.ms/tmtcrypto#mac-hash">https://aka.ms/tmtcrypto#mac-hash</a> Use only approved cryptographic hash functions. Refer: <a href="https://aka.ms/tmtcrypto#hash-functions">https://aka.ms/tmtcrypto#hash-functions</a> Verify X.509 certificates used to authenticate SSL, TLS, and DTLS connections. Refer: <a href="https://aka.ms/tmtcommsec#x509-ssltls">https://aka.ms/tmtcommsec#x509-ssltls</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can reverse weakly encrypted or hashed contentfalseIAn adversary may gain access to sensitive data from log filestarget is 'SE.P.TMCore.WebApp' TH102UserThreatDescriptionfalseAn adversary may gain access to sensitive data from log files22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that the application does not log sensitive user data. Refer: <a href="https://aka.ms/tmtauditlog#log-sensitive-data">https://aka.ms/tmtauditlog#log-sensitive-data</a> Ensure that Audit and Log Files have Restricted Access. Refer: <a href="https://aka.ms/tmtauditlog#log-restricted-access">https://aka.ms/tmtauditlog#log-restricted-access</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain access to sensitive data from log filesfalseIAn adversary may gain access to unmasked sensitive data such as credit card numberssource is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp'TH103UserThreatDescriptionfalseAn adversary may gain access to unmasked sensitive data such as credit card numbers22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that sensitive data displayed on the user screen is masked. Refer: <a href="https://aka.ms/tmtdata#data-mask">https://aka.ms/tmtdata#data-mask</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain access to unmasked sensitive data such as credit card numbersfalseIAn adversary can gain access to sensitive data such as the following, through verbose error messages - Server names - Connection strings - Usernames - Passwords - SQL procedures - Details of dynamic SQL failures - Stack trace and lines of code - Variables stored in memory - Drive and folder locations - Application install points - Host configuration settings - Other internal application details target is 'SE.P.TMCore.WebAPI'TH106UserThreatDescriptionfalseAn adversary can gain access to sensitive data such as the following, through verbose error messages - Server names - Connection strings - Usernames - Passwords - SQL procedures - Details of dynamic SQL failures - Stack trace and lines of code - Variables stored in memory - Drive and folder locations - Application install points - Host configuration settings - Other internal application details 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that proper exception handling is done in ASP.NET Web API. Refer: <a href="https://aka.ms/tmtxmgmt#exception">https://aka.ms/tmtxmgmt#exception</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive information from an API through error messagesfalseIAn adversary may retrieve sensitive data (e.g, auth tokens) persisted in browser storagesource is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebAPI' TH107UserThreatDescriptionfalseAn adversary may retrieve sensitive data (e.g, auth tokens) persisted in browser storage22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that sensitive data relevant to Web API is not stored in browser's storage. Refer: <a href="https://aka.ms/tmtdata#api-browser">https://aka.ms/tmtdata#api-browser</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may retrieve sensitive data (e.g, auth tokens) persisted in browser storagefalseIAn adversary may sniff the data sent from Identity Server. This can lead to a compromise of the tokens issued by the Identity Servertarget is 'SE.P.TMCore.IdSrv'TH115UserThreatDescriptionfalseAn adversary may sniff the data sent from Identity Server. This can lead to a compromise of the tokens issued by the Identity Server22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that all traffic to Identity Server is over HTTPS connection. Refer: <a href="https://aka.ms/tmtcommsec#identity-https">https://aka.ms/tmtcommsec#identity-https</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may sniff the data sent from Identity ServerfalseISensitive attributes or fields on an Entity can be inadvertently disclosedtarget is 'SE.P.TMCore.DynamicsCRM'TH119UserThreatDescriptionfalseSensitive attributes or fields on an Entity can be inadvertently disclosed22222222-2222-2222-2222-2222222222220PossibleMitigationsfalsePerform security modelling and use Field Level Security where required. Refer: <a href="https://aka.ms/tmtauthz#modeling-field">https://aka.ms/tmtauthz#modeling-field</a> Perform security modelling and use Business Units/Teams where required. Refer: <a href="https://aka.ms/tmtdata#modeling-teams">https://aka.ms/tmtdata#modeling-teams</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221Sensitive attributes or fields on an Entity can be inadvertently disclosedfalseISensitive Entity records (containing PII, HBI information) can be inadvertently disclosed to users who should not have accesstarget is 'SE.P.TMCore.DynamicsCRM'TH121UserThreatDescriptionfalseSensitive Entity records (containing PII, HBI information) can be inadvertently disclosed to users who should not have access22222222-2222-2222-2222-2222222222220PossibleMitigationsfalsePerform security modelling and use Field Level Security where required. Refer: <a href="https://aka.ms/tmtauthz#modeling-field">https://aka.ms/tmtauthz#modeling-field</a> Perform security modelling and use Business Units/Teams where required. Refer: <a href="https://aka.ms/tmtdata#modeling-teams">https://aka.ms/tmtdata#modeling-teams</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221Sensitive Entity records (containing PII, HBI information) can be inadvertently disclosed to users who should not have accessfalseIIf a mobile device containing cached customer data in the CRM Mobile Client is lost the data could be disclosed if the device is not securedtarget is 'SE.EI.TMCore.DynamicsCRMMobileClient'TH122UserThreatDescriptionfalseIf a mobile device containing cached customer data in the CRM Mobile Client is lost the data could be disclosed if the device is not secured22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure a device management policy is in place that requires a use PIN and allows remote wiping. Refer: <a href="https://aka.ms/tmtcrypto#pin-remote">https://aka.ms/tmtcrypto#pin-remote</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221If a mobile device containing cached customer data in the CRM Mobile Client is lost the data could be disclosed if the device is not securedfalseIIf a laptop with the Dynamics CRM Outlook Client and offline data is lost the data could be disclosed if the device is not securedtarget is 'SE.EI.TMCore.DynamicsCRMOutlookClient'TH123UserThreatDescriptionfalseIf a laptop with the Dynamics CRM Outlook Client and offline data is lost the data could be disclosed if the device is not secured22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure a device management policy is in place that requires a PIN/password/auto lock and encrypts all data (e.g. Bitlocker). Refer: <a href="https://aka.ms/tmtcrypto#bitlocker">https://aka.ms/tmtcrypto#bitlocker</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221If a laptop with the Dynamics CRM Outlook Client and offline data is lost the data could be disclosed if the device is not securedfalseISecure system configuration information exposed via JScripttarget is 'SE.P.TMCore.DynamicsCRM'TH126UserThreatDescriptionfalseSecure system configuration information exposed via JScript22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseInclude a development standards rule proscribing showing config details in exception management outside development. Refer: <a href="https://aka.ms/tmtdata#exception-mgmt">https://aka.ms/tmtdata#exception-mgmt</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221Secure system configuration information exposed via JScriptfalseISecure system configuration information exposed when exception is thrown.target is 'SE.P.TMCore.DynamicsCRM'TH127UserThreatDescriptionfalseSecure system configuration information exposed when exception is thrown.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseInclude a development standards rule proscribing showing config details in exception management outside development. Refer: <a href="https://aka.ms/tmtdata#exception-mgmt">https://aka.ms/tmtdata#exception-mgmt</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221Secure system configuration information exposed when a DotNET exception is thrownfalseIAn Adversary can sniff communication channel and steal the secrets.target is 'SE.P.TMCore.WCF'TH131UserThreatDescriptionfalseAn Adversary can sniff communication channel and steal the secrets.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable HTTPS - Secure Transport channel. Refer: <a href="https://aka.ms/tmtcommsec#https-transport">https://aka.ms/tmtcommsec#https-transport</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An Adversary can sniff communication channel and steal the secrets falseIAn adversary may gain access to sensitive data stored on host machinesflow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No' flow crosses 'SE.TB.TMCore.MachineTrustBoundary'TH139UserThreatDescriptionfalseAn adversary may gain access to sensitive data stored on host machines22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseConsider using Encrypted File System (EFS) is used to protect confidential user-specific data. Refer: <a href="https://aka.ms/tmtdata#efs-user">https://aka.ms/tmtdata#efs-user</a> Ensure that sensitive data stored by the application on the file system is encrypted. Refer: <a href="https://aka.ms/tmtdata#filesystem">https://aka.ms/tmtdata#filesystem</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain access to sensitive data stored on host machinesfalseIAn adversary can read sensitive data by sniffing traffic to {target.Name}target is 'SE.P.TMCore.AzureRedis' and not target.866e2e37-a089-45bc-9576-20fc95304b82 is 'True'TH14UserThreatDescriptionfalseAn adversary can read sensitive data by sniffing traffic to {target.Name}22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that communication to {target.Name} is over SSL/TLS. Configure {target.Name} such that only connections over SSL/TLS are permitted. Also ensure that connection string(s) used by clients have the ssl flag set to true (I.e. ssl=true). Refer: <a href="https://aka.ms/tmt-th14">https://aka.ms/tmt-th14</a>.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can read sensitive data by sniffing traffic to {target.Name}falseIAn adversary can gain access to sensitive data by sniffing traffic from Mobile clientsource is 'SE.EI.TMCore.Mobile'TH15UserThreatDescriptionfalseAn adversary can gain access to sensitive data by sniffing traffic from Mobile client22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement Certificate Pinning. Refer: <a href="https://aka.ms/tmtcommsec#cert-pinning">https://aka.ms/tmtcommsec#cert-pinning</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data by sniffing traffic from Mobile clientfalseIAn adversary can gain access to sensitive data by sniffing traffic to Web APItarget is 'SE.P.TMCore.WebAPI'TH16UserThreatDescriptionfalseAn adversary can gain access to sensitive data by sniffing traffic to Web API22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseForce all traffic to Web APIs over HTTPS connection. Refer: <a href="https://aka.ms/tmtcommsec#webapi-https">https://aka.ms/tmtcommsec#webapi-https</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data by sniffing traffic to Web APIfalseIAn adversary can read sensitive data by sniffing unencrypted SMB traffic to {target.Name}target is 'SE.DS.TMCore.AzureStorage' and target.b3ece90f-c578-4a48-b4d4-89d97614e0d2 is 'File'TH19UserThreatDescriptionfalseAn adversary can read sensitive data by sniffing unencrypted SMB traffic to {target.Name}22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse SMB 3.0 compatible client to ensure in-transit data encryption to Azure File Shares. Refer: <a href="https://aka.ms/tmt-th19a">https://aka.ms/tmt-th19a</a> and <a href="https://aka.ms/tmt-th19b">https://aka.ms/tmt-th19b</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can read sensitive data by sniffing unencrypted SMB traffic to {target.Name}falseIIf application saves sensitive PII or HBI data on phone SD card or local storage, then it ay get stolen.source is 'SE.EI.TMCore.Mobile'TH31UserThreatDescriptionfalseIf application saves sensitive PII or HBI data on phone SD card or local storage, then it ay get stolen.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEncrypt sensitive or PII data written to phones local storage. Refer: <a href="https://aka.ms/tmtdata#pii-phones">https://aka.ms/tmtdata#pii-phones</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain sensitive data from mobile devicefalseIAn adversary may eavesdrop and interfere with the communication between {source.Name} and {target.Name} and possibly tamper the data that is transmitted.(source is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway') and target is 'SE.GP.TMCore.IoTCloudGateway'TH38UserThreatDescriptionfalseAn adversary may eavesdrop and interfere with the communication between {source.Name} and {target.Name} and possibly tamper the data that is transmitted.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseSecure Device to Cloud Gateway communication using SSL/TLS. Refer: <a href="https://aka.ms/tmtcommsec#device-cloud">https://aka.ms/tmtcommsec#device-cloud</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may eavesdrop the traffic to cloud gatewayfalseIAn adversary can eaves drop on communication between application server and {target.Name} server, due to clear text communication protocol usage.(target is 'SE.DS.TMCore.SQL' and source is 'SE.P.TMCore.WebApp')TH5UserThreatDescriptionfalseAn adversary can eaves drop on communication between application server and {target.Name} server, due to clear text communication protocol usage.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure SQL server connection encryption and certificate validation. Refer: <a href="https://aka.ms/tmtcommsec#sqlserver-validation">https://aka.ms/tmtcommsec#sqlserver-validation</a> Force Encrypted communication to SQL server. Refer: <a href="https://aka.ms/tmtcommsec#encrypted-sqlserver">https://aka.ms/tmtcommsec#encrypted-sqlserver</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data by sniffing traffic to databasefalseIAn adversary may eavesdrop and interfere with the communication between the device and the field gateway and possibly tamper the data that is transmittedsource is 'SE.EI.TMCore.IoTdevice' and target is 'SE.GP.TMCore.IoTFieldGateway'TH52UserThreatDescriptionfalseAn adversary may eavesdrop and interfere with the communication between the device and the field gateway and possibly tamper the data that is transmitted22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseSecure Device to Field Gateway communication. Refer: <a href="https://aka.ms/tmtcommsec#device-field">https://aka.ms/tmtcommsec#device-field</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may eavesdrop the communication between the device and the field gatewayfalseIAn adversary having access to {target.Name} may read sensitive clear-text datatarget is 'SE.P.TMCore.AzureDocumentDB'TH53UserThreatDescriptionfalseAn adversary having access to {target.Name} may read sensitive clear-text data22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEncrypt sensitive data before storing it in Azure Document DB.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary having access to {target.Name} may read sensitive clear-text datafalseIAdditional controls like Transparent Data Encryption, Column Level Encryption, EKM etc. provide additional protection mechanism to high value PII or HBI data. target is 'SE.DS.TMCore.SQL'TH6UserThreatDescriptionfalseAdditional controls like Transparent Data Encryption, Column Level Encryption, EKM etc. provide additional protection mechanism to high value PII or HBI data. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse strong encryption algorithms to encrypt data in the database. Refer: <a href="https://aka.ms/tmtcrypto#strong-db">https://aka.ms/tmtcrypto#strong-db</a> Ensure that sensitive data in database columns is encrypted. Refer: <a href="https://aka.ms/tmtdata#db-encrypted">https://aka.ms/tmtdata#db-encrypted</a> Ensure that database-level encryption (TDE) is enabled. Refer: <a href="https://aka.ms/tmtdata#tde-enabled">https://aka.ms/tmtdata#tde-enabled</a> Ensure that database backups are encrypted. Refer: <a href="https://aka.ms/tmtdata#backup">https://aka.ms/tmtdata#backup</a> Use SQL server EKM to protect encryption keys. Refer: <a href="https://aka.ms/tmtcrypto#ekm-keys">https://aka.ms/tmtcrypto#ekm-keys</a> Use AlwaysEncrypted feature if encryption keys should not be revealed to Database engine. Refer: <a href="https://aka.ms/tmtcrypto#keys-engine">https://aka.ms/tmtcrypto#keys-engine</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive PII or HBI data in databasefalseEAn adversary can abuse poorly managed {target.Name} account access keys and gain unauthorized access to storage.target is 'SE.DS.TMCore.AzureStorage'TH63UserThreatDescriptionfalseAn adversary can abuse poorly managed {target.Name} account access keys and gain unauthorized access to storage.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure secure management and storage of Azure storage access keys. It is recommended to rotate storage access keys regularly, in accordance with organizational policies. Refer: <a href="https://aka.ms/tmt-th63">https://aka.ms/tmt-th63</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can abuse poorly managed {target.Name} account access keysfalseIAn adversary can abuse an insecure communication channel between a client and {target.Name}target is 'SE.DS.TMCore.AzureStorage' and target.229f2e53-bc3f-476c-8ac9-57da37efd00f is 'True'target is 'SE.DS.TMCore.AzureStorage'TH65UserThreatDescriptionfalseAn adversary can abuse an insecure communication channel between a client and {target.Name}22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that communication to Azure Storage is over HTTPS. It is recommended to enable the secure transfer required option to force communication with Azure Storage to be over HTTPS. Use Client-Side Encryption to store sensitive data in Azure Storage. Refer: <a href="https://aka.ms/tmt-th65">https://aka.ms/tmt-th65</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can abuse an insecure communication channel between a client and {target.Name}falseISecrets can be any sensitive information, such as storage connection strings, passwords, or other values that should not be handled in plain text. If secrets are not encrypted, an adversary who can gain access to them can abuse them.flow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No' flow crosses 'SE.TB.TMCore.ServiceFabric'TH73UserThreatDescriptionfalseSecrets can be any sensitive information, such as storage connection strings, passwords, or other values that should not be handled in plain text. If secrets are not encrypted, an adversary who can gain access to them can abuse them.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEncrypt secrets in Service Fabric applications. Refer: <a href="https://aka.ms/tmtdata#fabric-apps">https://aka.ms/tmtdata#fabric-apps</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to unencrypted secrets in Service Fabric applicationsfalseIAn adversary may conduct man in the middle attack and downgrade TLS connection to clear text protocol, or forcing browser communication to pass through a proxy server that he controls. This may happen because the application may use mixed content or HTTP Strict Transport Security policy is not ensured. source is 'GE.EI' and target is 'SE.P.TMCore.WebApp' and target.80fe9520-5f00-4480-ad47-f2fd75dede82 is 'Azure' TH78UserThreatDescriptionfalseAn adversary may conduct man in the middle attack and downgrade TLS connection to clear text protocol, or forcing browser communication to pass through a proxy server that he controls. This may happen because the application may use mixed content or HTTP Strict Transport Security policy is not ensured. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseConfigure SSL certificate for custom domain in Azure App Service. Refer: <a href="https://aka.ms/tmtcommsec#ssl-appservice">https://aka.ms/tmtcommsec#ssl-appservice</a> Force all traffic to Azure App Service over HTTPS connection . Refer: <a href="https://aka.ms/tmtcommsec#appservice-https">https://aka.ms/tmtcommsec#appservice-https</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data by sniffing traffic to Azure Web AppfalseI An adversary can fingerprint web application by leveraging server header information source is 'GE.EI' and target is 'SE.P.TMCore.WebApp' and target.80fe9520-5f00-4480-ad47-f2fd75dede82 is 'Azure' TH79UserThreatDescriptionfalse An adversary can fingerprint web application by leveraging server header information 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRemove standard server headers on Windows Azure Web Sites to avoid fingerprinting. Refer: <a href="https://aka.ms/tmtconfigmgmt#standard-finger">https://aka.ms/tmtconfigmgmt#standard-finger</a>22222222-2222-2222-2222-2222222222222PriorityfalseLow22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can fingerprint an Azure web application by leveraging server header informationfalseIRobots.txt is often found in your site's root directory and exists to regulate the bots that crawl your site. This is where you can grant or deny permission to all or some specific search engine robots to access certain pages or your site as a whole. The standard for this file was developed in 1994 and is known as the Robots Exclusion Standard or Robots Exclusion Protocol. Detailed info about the robots.txt protocol can be found at robotstxt.org.(source is 'SE.EI.TMCore.Browser') and (target is 'SE.P.TMCore.WebApp')TH80UserThreatDescriptionfalseRobots.txt is often found in your site's root directory and exists to regulate the bots that crawl your site. This is where you can grant or deny permission to all or some specific search engine robots to access certain pages or your site as a whole. The standard for this file was developed in 1994 and is known as the Robots Exclusion Standard or Robots Exclusion Protocol. Detailed info about the robots.txt protocol can be found at robotstxt.org.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that administrative interfaces are appropriately locked down. Refer: <a href="https://aka.ms/tmtauthn#admin-interface-lockdown">https://aka.ms/tmtauthn#admin-interface-lockdown</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to certain pages or the site as a whole.falseISQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. The primary form of SQL injection consists of direct insertion of code into user-input variables that are concatenated with SQL commands and executed. A less direct attack injects malicious code into strings that are destined for storage in a table or as metadata. When the stored strings are subsequently concatenated into a dynamic SQL command, the malicious code is executed. target is 'SE.DS.TMCore.SQL'TH82UserThreatDescriptionfalseSQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. The primary form of SQL injection consists of direct insertion of code into user-input variables that are concatenated with SQL commands and executed. A less direct attack injects malicious code into strings that are destined for storage in a table or as metadata. When the stored strings are subsequently concatenated into a dynamic SQL command, the malicious code is executed. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that login auditing is enabled on SQL Server. Refer: <a href="https://aka.ms/tmtauditlog#identify-sensitive-entities">https://aka.ms/tmtauditlog#identify-sensitive-entities</a> Ensure that least-privileged accounts are used to connect to Database server. Refer: <a href="https://aka.ms/tmtauthz#privileged-server">https://aka.ms/tmtauthz#privileged-server</a> Enable Threat detection on Azure SQL database. Refer: <a href="https://aka.ms/tmtauditlog#threat-detection">https://aka.ms/tmtauditlog#threat-detection</a> Do not use dynamic queries in stored procedures. Refer: <a href="https://aka.ms/tmtinputval#stored-proc">https://aka.ms/tmtinputval#stored-proc</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data by performing SQL injectionfalseIAn adversary can gain access to the config files. and if sensitive data is stored in it, it would be compromised.target is 'SE.P.TMCore.WebAPI'TH83UserThreatDescriptionfalseAn adversary can gain access to the config files. and if sensitive data is stored in it, it would be compromised.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEncrypt sections of Web API's configuration files that contain sensitive data. Refer: <a href="https://aka.ms/tmtconfigmgmt#config-sensitive">https://aka.ms/tmtconfigmgmt#config-sensitive</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data stored in Web API's config filesfalseIAn adversary may conduct man in the middle attack and downgrade TLS connection to clear text protocol, or forcing browser communication to pass through a proxy server that he controls. This may happen because the application may use mixed content or HTTP Strict Transport Security policy is not ensured.(source is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp')TH9UserThreatDescriptionfalseAn adversary may conduct man in the middle attack and downgrade TLS connection to clear text protocol, or forcing browser communication to pass through a proxy server that he controls. This may happen because the application may use mixed content or HTTP Strict Transport Security policy is not ensured.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseApplications available over HTTPS must use secure cookies. Refer: <a href="https://aka.ms/tmtsmgmt#https-secure-cookies">https://aka.ms/tmtsmgmt#https-secure-cookies</a> Enable HTTP Strict Transport Security (HSTS). Refer: <a href="https://aka.ms/tmtcommsec#http-hsts">https://aka.ms/tmtcommsec#http-hsts</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data by sniffing traffic to Web ApplicationfalseIIf an adversary can gain access to Azure VMs, sensitive data in the VM can be disclosed if the OS in the VM is not encryptedflow crosses 'SE.TB.TMCore.AzureIaaSVMTrustBoundary'TH93UserThreatDescriptionfalseIf an adversary can gain access to Azure VMs, sensitive data in the VM can be disclosed if the OS in the VM is not encrypted22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse Azure Disk Encryption to encrypt disks used by Virtual Machines. Refer: <a href="https://aka.ms/tmtdata#disk-vm">https://aka.ms/tmtdata#disk-vm</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain access to sensitive data stored in Azure Virtual MachinesfalseIAn adversary can gain access to sensitive data such as the following, through verbose error messages - Server names - Connection strings - Usernames - Passwords - SQL procedures - Details of dynamic SQL failures - Stack trace and lines of code - Variables stored in memory - Drive and folder locations - Application install points - Host configuration settings - Other internal application details target is 'SE.P.TMCore.WebApp'TH94UserThreatDescriptionfalseAn adversary can gain access to sensitive data such as the following, through verbose error messages - Server names - Connection strings - Usernames - Passwords - SQL procedures - Details of dynamic SQL failures - Stack trace and lines of code - Variables stored in memory - Drive and folder locations - Application install points - Host configuration settings - Other internal application details 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseDo not expose security details in error messages. Refer: <a href="https://aka.ms/tmtxmgmt#messages">https://aka.ms/tmtxmgmt#messages</a> Implement Default error handling page. Refer: <a href="https://aka.ms/tmtxmgmt#default">https://aka.ms/tmtxmgmt#default</a> Set Deployment Method to Retail in IIS. Refer: <a href="https://aka.ms/tmtxmgmt#deployment">https://aka.ms/tmtxmgmt#deployment</a> Exceptions should fail safely. Refer: <a href="https://aka.ms/tmtxmgmt#fail">https://aka.ms/tmtxmgmt#fail</a> ASP.NET applications must disable tracing and debugging prior to deployment. Refer: <a href="https://aka.ms/tmtconfigmgmt#trace-deploy">https://aka.ms/tmtconfigmgmt#trace-deploy</a> Implement controls to prevent username enumeration. Refer: <a href="https://aka.ms/tmtauthn#controls-username-enum">https://aka.ms/tmtauthn#controls-username-enum</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive information through error messagesfalseIAn adversary may gain access to sensitive data from uncleared browser cachesource is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp'TH99UserThreatDescriptionfalseAn adversary may gain access to sensitive data from uncleared browser cache22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that sensitive content is not cached on the browser. Refer: <a href="https://aka.ms/tmtdata#cache-browser">https://aka.ms/tmtdata#cache-browser</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain access to sensitive data from uncleared browser cachefalseRAttacker can deny a malicious act on an API leading to repudiation issuestarget is 'SE.P.TMCore.WebAPI'TH109UserThreatDescriptionfalseAttacker can deny a malicious act on an API leading to repudiation issues22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that auditing and logging is enforced on Web API. Refer: <a href="https://aka.ms/tmtauditlog#logging-web-api">https://aka.ms/tmtauditlog#logging-web-api</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221Attacker can deny a malicious act on an API leading to repudiation issuesfalseRThis is due to the Last Modified By field being overwritten on each save(target is 'SE.P.TMCore.DynamicsCRM')TH118UserThreatDescriptionfalseThis is due to the Last Modified By field being overwritten on each save22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseIdentify sensitive entities in your solution and implement change auditing. Refer: <a href="https://aka.ms/tmtauditlog#sensitive-entities">https://aka.ms/tmtauditlog#sensitive-entities</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221A malicious user can deny they made a change to {target.Name}falseRProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a system.target is 'SE.DS.TMCore.AzureStorage'TH20UserThreatDescriptionfalseProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a system.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse Azure Storage Analytics to audit access of Azure Storage. If possible, audit the calls to the Azure Storage instance at the source of the call. Refer: <a href="https://aka.ms/tmt-th20">https://aka.ms/tmt-th20</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can deny actions on {target.Name} due to lack of auditing falseRProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a system.target is 'SE.DS.TMCore.SQL' TH3UserThreatDescriptionfalseProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a system.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that login auditing is enabled on SQL Server. Refer: <a href="https://aka.ms/tmtauditlog#identify-sensitive-entities">https://aka.ms/tmtauditlog#identify-sensitive-entities</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can deny actions on database due to lack of auditingfalseRProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a systemtarget is 'SE.P.TMCore.WebApp'TH30UserThreatDescriptionfalseProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a system22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that auditing and logging is enforced on the application. Refer: <a href="https://aka.ms/tmtauditlog#auditing">https://aka.ms/tmtauditlog#auditing</a> Ensure that log rotation and separation are in place. Refer: <a href="https://aka.ms/tmtauditlog#log-rotation">https://aka.ms/tmtauditlog#log-rotation</a> Ensure that Audit and Log Files have Restricted Access. Refer: <a href="https://aka.ms/tmtauditlog#log-restricted-access">https://aka.ms/tmtauditlog#log-restricted-access</a> Ensure that User Management Events are Logged. Refer: <a href="https://aka.ms/tmtauditlog#user-management">https://aka.ms/tmtauditlog#user-management</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221Attacker can deny the malicious act and remove the attack foot prints leading to repudiation issuesfalseRAn adversary may perform actions such as spoofing attempts, unauthorized access etc. on Cloud gateway. It is important to monitor these attempts so that adversary cannot deny these actionstarget is 'SE.GP.TMCore.IoTCloudGateway'TH34UserThreatDescriptionfalseAn adversary may perform actions such as spoofing attempts, unauthorized access etc. on Cloud gateway. It is important to monitor these attempts so that adversary cannot deny these actions22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that appropriate auditing and logging is enforced on Cloud Gateway. Refer: <a href="https://aka.ms/tmtauditlog#logging-cloud-gateway">https://aka.ms/tmtauditlog#logging-cloud-gateway</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can deny actions on Cloud Gateway due to lack of auditingfalseRAn adversary may perform actions such as spoofing attempts, unauthorized access etc. on Field gateway. It is important to monitor these attempts so that adversary cannot deny these actionstarget is 'SE.GP.TMCore.IoTFieldGateway'TH49UserThreatDescriptionfalseAn adversary may perform actions such as spoofing attempts, unauthorized access etc. on Field gateway. It is important to monitor these attempts so that adversary cannot deny these actions22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that appropriate auditing and logging is enforced on Field Gateway. Refer: <a href="https://aka.ms/tmtauditlog#logging-field-gateway">https://aka.ms/tmtauditlog#logging-field-gateway</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can deny actions on Field Gateway due to lack of auditingfalseRProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a system. source is 'GE.EI' and target is 'SE.P.TMCore.WebApp' and target.80fe9520-5f00-4480-ad47-f2fd75dede82 is 'Azure'TH77UserThreatDescriptionfalseProper logging of all security events and user actions builds traceability in a system and denies any possible repudiation issues. In the absence of proper auditing and logging controls, it would become impossible to implement any accountability in a system. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable diagnostics logging for web apps in Azure App Service. Refer: <a href="https://aka.ms/tmtauditlog#diagnostics-logging">https://aka.ms/tmtauditlog#diagnostics-logging</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can deny actions on Azure App Service due to lack of auditingfalseSAn adversary can bypass authentication due to non-standard Azure AD authentication schemestarget is 'SE.P.TMCore.AzureAD'TH11UserThreatDescriptionfalseAn adversary can bypass authentication due to non-standard Azure AD authentication schemes22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse standard authentication scenarios supported by Azure Active Directory. Refer: <a href="https://aka.ms/tmtauthn#authn-aad">https://aka.ms/tmtauthn#authn-aad</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can bypass authentication due to non-standard Azure AD authentication schemesfalseSAn adversary can bypass authentication due to non-standard Identity Server authentication schemestarget is 'SE.P.TMCore.IdSrv'TH111UserThreatDescriptionfalseAn adversary can bypass authentication due to non-standard Identity Server authentication schemes22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse standard authentication scenarios supported by Identity Server. Refer: <a href="https://aka.ms/tmtauthn#standard-authn-id">https://aka.ms/tmtauthn#standard-authn-id</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can bypass authentication due to non-standard Identity Server authentication schemesfalseSAn adversary can get access to a user's session due to improper logout from Identity Servertarget is 'SE.P.TMCore.IdSrv'TH113UserThreatDescriptionfalseAn adversary can get access to a user's session due to improper logout from Identity Server22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement proper logout when using Identity Server. Refer: <a href="https://aka.ms/tmtsmgmt#proper-logout">https://aka.ms/tmtsmgmt#proper-logout</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can get access to a user's session due to improper logout from Identity ServerfalseSAn adversary can abuse poorly managed signing keys of Identity Server. In case of key compromise, an adversary will be able to create valid auth tokens using the stolen keys and gain access to the resources protected by Identity server.target is 'SE.P.TMCore.IdSrv'TH114UserThreatDescriptionfalseAn adversary can abuse poorly managed signing keys of Identity Server. In case of key compromise, an adversary will be able to create valid auth tokens using the stolen keys and gain access to the resources protected by Identity server.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that signing keys are rolled over when using Identity Server. Refer: <a href="https://aka.ms/tmtcrypto#rolled-server">https://aka.ms/tmtcrypto#rolled-server</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may issue valid tokens if Identity server's signing keys are compromisedfalseSAn adversary may spoof an Azure administrator and gain access to Azure subscription portal if the administrator's credentials are compromised.flow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.AzureTrustBoundary' TH117UserThreatDescriptionfalseAn adversary may spoof an Azure administrator and gain access to Azure subscription portal if the administrator's credentials are compromised.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable fine-grained access management to Azure Subscription using RBAC. Refer: <a href="https://aka.ms/tmtauthz#grained-rbac">https://aka.ms/tmtauthz#grained-rbac</a> Enable Azure Multi-Factor Authentication for Azure Administrators. Refer: <a href="https://aka.ms/tmtauthn#multi-factor-azure-admin">https://aka.ms/tmtauthn#multi-factor-azure-admin</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may spoof an Azure administrator and gain access to Azure subscription portalfalseSAn adversary can get access to a user's session by replaying authentication tokens (source is 'GE.P' or source is 'GE.EI') and target is 'SE.P.TMCore.AzureAD'TH12UserThreatDescriptionfalseAn adversary can get access to a user's session by replaying authentication tokens 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that TokenReplayCache is used to prevent the replay of ADAL authentication tokens. Refer: <a href="https://aka.ms/tmtauthn#tokenreplaycache-adal">https://aka.ms/tmtauthn#tokenreplaycache-adal</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can get access to a user's session by replaying authentication tokens falseSAn adversary may gain access to the field gateway by leveraging default login credentials. target is 'SE.GP.TMCore.IoTFieldGateway'TH129UserThreatDescriptionfalseAn adversary may gain access to the field gateway by leveraging default login credentials. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that the default login credentials of the field gateway are changed during installation. Refer: <a href="https://aka.ms/tmtconfigmgmt#default-change">https://aka.ms/tmtconfigmgmt#default-change</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain access to the field gateway by leveraging default login credentials. falseSAn adversary can gain unauthorized access to API end points due to weak CORS configurationsource is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebAPI'TH13UserThreatDescriptionfalseAn adversary can gain unauthorized access to API end points due to weak CORS configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that only trusted origins are allowed if CORS is enabled on ASP.NET Web API. Refer: <a href="https://aka.ms/tmtconfigmgmt#cors-api">https://aka.ms/tmtconfigmgmt#cors-api</a> Mitigate against Cross-Site Request Forgery (CSRF) attacks on ASP.NET Web APIs. Refer: <a href="https://aka.ms/tmtsmgmt#csrf-api">https://aka.ms/tmtsmgmt#csrf-api</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to API end points due to unrestricted cross domain requestsfalseSAn adversary may guess the client id and secrets of registered applications and impersonate them target is 'SE.P.TMCore.IdSrv'TH133UserThreatDescriptionfalseAn adversary may guess the client id and secrets of registered applications and impersonate them 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that cryptographically strong client id, client secret are used in Identity Server. Refer: <a href="https://aka.ms/tmtcrypto#client-server">https://aka.ms/tmtcrypto#client-server</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may guess the client id and secrets of registered applications and impersonate themfalseEAn adversary can gain unauthorized access to {target.Name} due to weak CORS configurationtarget is 'SE.DS.TMCore.AzureStorage' and target.c63455d0-ad77-4b08-aa02-9f8026bb056f is 'False'target is 'SE.DS.TMCore.AzureStorage'TH21UserThreatDescriptionfalseAn adversary can gain unauthorized access to {target.Name} due to weak CORS configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that only specific, trusted origins are allowed. Refer: <a href="https://aka.ms/tmt-th21">https://aka.ms/tmt-th21</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to {target.Name} due to weak CORS configurationfalseSThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user.source is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp'TH22UserThreatDescriptionfalseThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseSet up session for inactivity lifetime. Refer: <a href="https://aka.ms/tmtsmgmt#inactivity-lifetime">https://aka.ms/tmtsmgmt#inactivity-lifetime</a> Implement proper logout from the application. Refer: <a href="https://aka.ms/tmtsmgmt#proper-app-logout">https://aka.ms/tmtsmgmt#proper-app-logout</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can get access to a user's session due to improper logout and timeoutfalseSThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user.source is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp'TH23UserThreatDescriptionfalseThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable ValidateRequest attribute on ASP.NET Pages. Refer: <a href="https://aka.ms/tmtconfigmgmt#validate-aspnet">https://aka.ms/tmtconfigmgmt#validate-aspnet</a> Encode untrusted web output prior to rendering. Refer: <a href="https://aka.ms/tmtinputval#rendering">https://aka.ms/tmtinputval#rendering</a> Avoid using Html.Raw in Razor views. Refer: <a href="https://aka.ms/tmtinputval#html-razor">https://aka.ms/tmtinputval#html-razor</a> Sanitization should be applied on form fields that accept all characters e.g, rich text editor . Refer: <a href="https://aka.ms/tmtinputval#richtext">https://aka.ms/tmtinputval#richtext</a> Do not assign DOM elements to sinks that do not have inbuilt encoding . Refer: <a href="https://aka.ms/tmtinputval#inbuilt-encode">https://aka.ms/tmtinputval#inbuilt-encode</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can get access to a user's session due to insecure coding practicesfalseSEnsure that TLS certificate parameters are configured with correct valuestarget is 'SE.P.TMCore.WebApp'TH32UserThreatDescriptionfalseEnsure that TLS certificate parameters are configured with correct values22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseVerify X.509 certificates used to authenticate SSL, TLS, and DTLS connections. Refer: <a href="https://aka.ms/tmtcommsec#x509-ssltls">https://aka.ms/tmtcommsec#x509-ssltls</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can spoof the target web application due to insecure TLS certificate configurationfalseSAn adversary may replacing the {source.Name} or part of the {source.Name} with some other {source.Name}. (source is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway') and (target is 'SE.GP.TMCore.IoTFieldGateway' or target is 'SE.GP.TMCore.IoTCloudGateway')TH35UserThreatDescriptionfalseAn adversary may replacing the {source.Name} or part of the {source.Name} with some other {source.Name}. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that devices connecting to Field or Cloud gateway are authenticated. Refer: <a href="https://aka.ms/tmtauthn#authn-devices-cloud">https://aka.ms/tmtauthn#authn-devices-cloud</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may spoof {source.Name} with a fake onefalseSAn attacker may extract cryptographic key material from {source.Name}, either at the software or hardware level, and subsequently access the system with a different physical or virtual {source.Name} under the identity of the {source.Name} the key material has been taken from. A good illustration is remote controls that can turn any TV and that are popular prankster tools.(source is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway') and (target is 'SE.GP.TMCore.IoTFieldGateway' or target is 'SE.GP.TMCore.IoTCloudGateway')TH36UserThreatDescriptionfalseAn attacker may extract cryptographic key material from {source.Name}, either at the software or hardware level, and subsequently access the system with a different physical or virtual {source.Name} under the identity of the {source.Name} the key material has been taken from. A good illustration is remote controls that can turn any TV and that are popular prankster tools.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse per-device authentication credentials. Refer: <a href="https://aka.ms/tmtauthn#authn-cred">https://aka.ms/tmtauthn#authn-cred</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may reuse the authentication tokens of {source.Name} in anotherfalseSAn adversary may predict and generate valid security tokens to authenticate to IoT Hub, by leveraging weak encryption keys(source is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway') and target is 'SE.GP.TMCore.IoTCloudGateway'TH40UserThreatDescriptionfalseAn adversary may predict and generate valid security tokens to authenticate to IoT Hub, by leveraging weak encryption keys22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseGenerate a random symmetric key of sufficient length for authentication to IoT Hub. Refer: <a href="https://aka.ms/tmtcrypto#random-hub">https://aka.ms/tmtcrypto#random-hub</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may auto-generate valid authentication tokens for IoT HubfalseSAn adversary may get access to SaS tokens used to authenticate to IoT Hub. If the lifetime of these tokens is not finite, the adversary may replay the stolen tokens indefinitely(source is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway') and target is 'SE.GP.TMCore.IoTCloudGateway'TH44UserThreatDescriptionfalseAn adversary may get access to SaS tokens used to authenticate to IoT Hub. If the lifetime of these tokens is not finite, the adversary may replay the stolen tokens indefinitely22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse finite lifetimes for generated SaS tokens. Refer: <a href="https://aka.ms/tmtsmgmt#finite-tokens">https://aka.ms/tmtsmgmt#finite-tokens</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may replay stolen long-lived SaS tokens of IoT HubfalseSAn adversary may spoof a device and connect to field gateway. This may be achieved even when the device is registered in Cloud gateway since the field gateway may not be in sync with the device identities in cloud gatewaysource is 'SE.EI.TMCore.IoTdevice' and target is 'SE.GP.TMCore.IoTFieldGateway'TH50UserThreatDescriptionfalseAn adversary may spoof a device and connect to field gateway. This may be achieved even when the device is registered in Cloud gateway since the field gateway may not be in sync with the device identities in cloud gateway22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseAuthenticate devices connecting to the Field Gateway. Refer: <a href="https://aka.ms/tmtauthn#authn-devices-field">https://aka.ms/tmtauthn#authn-devices-field</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may spoof a device and connect to field gatewayfalseEAn adversary may reuse a stolen long-lived resource token, access key or connection string to access an {target.Name} instancetarget is 'SE.P.TMCore.AzureDocumentDB'TH55UserThreatDescriptionfalseAn adversary may reuse a stolen long-lived resource token, access key or connection string to access an {target.Name} instance22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse minimum token lifetimes for generated resource tokens. Rotate secrets (e.g. resource tokens, access keys and passwords in connection strings) frequently, in accordance with your organization's policies. Refer: <a href="https://aka.ms/tmt-th55">https://aka.ms/tmt-th55</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may reuse a stolen long-lived resource token, access key or connection string to access an {target.Name} instancefalseSIf multiple devices use the same SaS token, then an adversary can spoof any device using a token that he or she has access totarget is 'SE.P.TMCore.AzureEventHub'TH58UserThreatDescriptionfalseIf multiple devices use the same SaS token, then an adversary can spoof any device using a token that he or she has access to22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse per device authentication credentials using SaS tokens. Refer: <a href="https://aka.ms/tmtauthn#authn-sas-tokens">https://aka.ms/tmtauthn#authn-sas-tokens</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may spoof a device by reusing the authentication tokens of one device in anotherfalseSIf a service fabric cluster is not secured, it allow any anonymous user to connect to it if it exposes management endpoints to the public Internet.flow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.ServiceFabric'TH68UserThreatDescriptionfalseIf a service fabric cluster is not secured, it allow any anonymous user to connect to it if it exposes management endpoints to the public Internet.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict anonymous access to Service Fabric Cluster. Refer: <a href="https://aka.ms/tmtauthn#anon-access-cluster">https://aka.ms/tmtauthn#anon-access-cluster</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to resources in Service FabricfalseSIf the same certificate that is used for node-to-node security is used for client-to-node security, it will be easy for an adversary to spoof and join a new node, in case the client-to-node certificate (which is often stored locally) is compromisedflow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.ServiceFabric'TH69UserThreatDescriptionfalseIf the same certificate that is used for node-to-node security is used for client-to-node security, it will be easy for an adversary to spoof and join a new node, in case the client-to-node certificate (which is often stored locally) is compromised22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that Service Fabric client-to-node certificate is different from node-to-node certificate. Refer: <a href="https://aka.ms/tmtauthn#fabric-cn-nn">https://aka.ms/tmtauthn#fabric-cn-nn</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can spoof a node and access Service Fabric clusterfalseSAttackers can exploit weaknesses in system to steal user credentials. Downstream and upstream components are often accessed by using credentials stored in configuration stores. Attackers may steal the upstream or downstream component credentials. Attackers may steal credentials if, Credentials are stored and sent in clear text, Weak input validation coupled with dynamic sql queries, Password retrieval mechanism are poor, (target is 'SE.P.TMCore.WebApp')TH7UserThreatDescriptionfalseAttackers can exploit weaknesses in system to steal user credentials. Downstream and upstream components are often accessed by using credentials stored in configuration stores. Attackers may steal the upstream or downstream component credentials. Attackers may steal credentials if, Credentials are stored and sent in clear text, Weak input validation coupled with dynamic sql queries, Password retrieval mechanism are poor, 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseExplicitly disable the autocomplete HTML attribute in sensitive forms and inputs. Refer: <a href="https://aka.ms/tmtdata#autocomplete-input">https://aka.ms/tmtdata#autocomplete-input</a> Perform input validation and filtering on all string type Model properties. Refer: <a href="https://aka.ms/tmtinputval#typemodel">https://aka.ms/tmtinputval#typemodel</a> Validate all redirects within the application are closed or done safely. Refer: <a href="https://aka.ms/tmtinputval#redirect-safe">https://aka.ms/tmtinputval#redirect-safe</a> Enable step up or adaptive authentication. Refer: <a href="https://aka.ms/tmtauthn#step-up-adaptive-authn">https://aka.ms/tmtauthn#step-up-adaptive-authn</a> Implement forgot password functionalities securely. Refer: <a href="https://aka.ms/tmtauthn#forgot-pword-fxn">https://aka.ms/tmtauthn#forgot-pword-fxn</a> Ensure that password and account policy are implemented. Refer: <a href="https://aka.ms/tmtauthn#pword-account-policy">https://aka.ms/tmtauthn#pword-account-policy</a> Implement input validation on all string type parameters accepted by Controller methods. Refer: <a href="https://aka.ms/tmtinputval#string-method">https://aka.ms/tmtinputval#string-method</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can steal sensitive data like user credentialsfalseSAzure AD authentication provides better control on identity management and hence it is a better alternative to authenticate clients to Service Fabricflow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.ServiceFabric'TH70UserThreatDescriptionfalseAzure AD authentication provides better control on identity management and hence it is a better alternative to authenticate clients to Service Fabric22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse AAD to authenticate clients to service fabric clusters. Refer: <a href="https://aka.ms/tmtauthn#aad-client-fabric">https://aka.ms/tmtauthn#aad-client-fabric</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can potentially spoof a client if weaker client authentication channels are usedfalseSIf self-signed or test certificates are stolen, it would be difficult to revoke them. An adversary can use stolen certificates and continue to get access to Service Fabric cluster.flow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.ServiceFabric'TH72UserThreatDescriptionfalseIf self-signed or test certificates are stolen, it would be difficult to revoke them. An adversary can use stolen certificates and continue to get access to Service Fabric cluster.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that service fabric certificates are obtained from an approved Certificate Authority (CA). Refer: <a href="https://aka.ms/tmtauthn#fabric-cert-ca">https://aka.ms/tmtauthn#fabric-cert-ca</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can spoof a node in Service Fabric cluster by using stolen certificatesfalseSOn a public client (e.g. a mobile device), refresh tokens may be stolen and used by an attacker to obtain access to the API. Depending on the client type, there are different ways that tokens may be revealed to an attacker and therefore different ways to protect them, some involving how the software using the tokens requests, stores and refreshes them.source is 'SE.EI.TMCore.Mobile' and target is 'SE.P.TMCore.WebAPI'TH74UserThreatDescriptionfalseOn a public client (e.g. a mobile device), refresh tokens may be stolen and used by an attacker to obtain access to the API. Depending on the client type, there are different ways that tokens may be revealed to an attacker and therefore different ways to protect them, some involving how the software using the tokens requests, stores and refreshes them.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse ADAL libraries to manage token requests from OAuth2 clients to AAD (or on-premises AD). Refer: <a href="https://aka.ms/tmtauthn#adal-oauth2">https://aka.ms/tmtauthn#adal-oauth2</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary obtains refresh or access tokens from {source.Name} and uses them to obtain access to the {target.Name} APIfalseSThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user. source is 'SE.P.TMCore.WebApp' and target is 'SE.P.TMCore.AzureAD'TH75UserThreatDescriptionfalseThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement proper logout using ADAL methods when using Azure AD. Refer: <a href="https://aka.ms/tmtsmgmt#logout-adal">https://aka.ms/tmtsmgmt#logout-adal</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can get access to a user's session due to improper logout from Azure ADfalseSThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user. source is 'SE.P.TMCore.WebApp' and target is 'SE.P.TMCore.ADFS'TH76UserThreatDescriptionfalseThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement proper logout using WsFederation methods when using ADFS. Refer: <a href="https://aka.ms/tmtsmgmt#wsfederation-logout">https://aka.ms/tmtsmgmt#wsfederation-logout</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can get access to a user's session due to improper logout from ADFSfalseSThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user. (source is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp')TH8UserThreatDescriptionfalseThe session cookies is the identifier by which the server knows the identity of current user for each incoming request. If the attacker is able to steal the user token he would be able to access all user data and perform all actions on behalf of user. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseApplications available over HTTPS must use secure cookies. Refer: <a href="https://aka.ms/tmtsmgmt#https-secure-cookies">https://aka.ms/tmtsmgmt#https-secure-cookies</a> All http based application should specify http only for cookie definition. Refer: <a href="https://aka.ms/tmtsmgmt#cookie-definition">https://aka.ms/tmtsmgmt#cookie-definition</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221Attackers can steal user session cookies due to insecure cookie attributesfalseSPhishing is attempted to obtain sensitive information such as usernames, passwords, and credit card details (and sometimes, indirectly, money), often for malicious reasons, by masquerading as a Web Server which is a trustworthy entity in electronic communicationtarget is 'SE.P.TMCore.WebApp'TH81UserThreatDescriptionfalsePhishing is attempted to obtain sensitive information such as usernames, passwords, and credit card details (and sometimes, indirectly, money), often for malicious reasons, by masquerading as a Web Server which is a trustworthy entity in electronic communication22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseVerify X.509 certificates used to authenticate SSL, TLS, and DTLS connections. Refer: <a href="https://aka.ms/tmtcommsec#x509-ssltls">https://aka.ms/tmtcommsec#x509-ssltls</a> Ensure that authenticated ASP.NET pages incorporate UI Redressing or clickjacking defences. Refer: <a href="https://aka.ms/tmtconfigmgmt#ui-defenses">https://aka.ms/tmtconfigmgmt#ui-defenses</a> Validate all redirects within the application are closed or done safely. Refer: <a href="https://aka.ms/tmtinputval#redirect-safe">https://aka.ms/tmtinputval#redirect-safe</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can create a fake website and launch phishing attacksfalseSAn adversary can gain access to Azure storage containers and blobs if anonymous access is provided to potentially sensitive data accidentally. target is 'SE.DS.TMCore.AzureStorage' and target.b3ece90f-c578-4a48-b4d4-89d97614e0d2 is 'Blob'TH85UserThreatDescriptionfalseAn adversary can gain access to Azure storage containers and blobs if anonymous access is provided to potentially sensitive data accidentally.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that only the required containers and blobs are given anonymous read access. Refer: <a href="https://aka.ms/tmt-th85">https://aka.ms/tmt-th85</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can access Azure storage blobs and containers anonymouslyfalseSIf proper authentication is not in place, an adversary can spoof a source process or external entity and gain unauthorized access to the Web Applicationtarget is 'SE.P.TMCore.WebApp'TH86UserThreatDescriptionfalseIf proper authentication is not in place, an adversary can spoof a source process or external entity and gain unauthorized access to the Web Application22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseConsider using a standard authentication mechanism to authenticate to Web Application. Refer: <a href="https://aka.ms/tmtauthn#standard-authn-web-app">https://aka.ms/tmtauthn#standard-authn-web-app</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may spoof {source.Name} and gain access to Web ApplicationfalseSIf proper authentication is not in place, an adversary can spoof a source process or external entity and gain unauthorized access to the Web Application target is 'SE.P.TMCore.WebAPI'TH87UserThreatDescriptionfalseIf proper authentication is not in place, an adversary can spoof a source process or external entity and gain unauthorized access to the Web Application 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that standard authentication techniques are used to secure Web APIs. Refer: <a href="https://aka.ms/tmtauthn#authn-secure-api">https://aka.ms/tmtauthn#authn-secure-api</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may spoof {source.Name} and gain access to Web APIfalseTAn adversary can execute remote code on the server through XSLT scriptingtarget is 'SE.P.TMCore.WebApp' and target.df53c172-b70c-412c-9e99-a6fbc10748ee is 'Yes'TH100UserThreatDescriptionfalseAn adversary can execute remote code on the server through XSLT scripting22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseDisable XSLT scripting for all transforms using untrusted style sheets. Refer: <a href="https://aka.ms/tmtinputval#disable-xslt">https://aka.ms/tmtinputval#disable-xslt</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can execute remote code on the server through XSLT scriptingfalseTAn adversary can tamper critical database securables and deny the actiontarget is 'SE.DS.TMCore.SQL'TH105UserThreatDescriptionfalseAn adversary can tamper critical database securables and deny the action22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseAdd digital signature to critical database securables. Refer: <a href="https://aka.ms/tmtcrypto#securables-db">https://aka.ms/tmtcrypto#securables-db</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can tamper critical database securables and deny the actionfalseTAn adversary may inject malicious inputs into an API and affect downstream processestarget is 'SE.P.TMCore.WebAPI'TH108UserThreatDescriptionfalseAn adversary may inject malicious inputs into an API and affect downstream processes22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that model validation is done on Web API methods. Refer: <a href="https://aka.ms/tmtinputval#validation-api">https://aka.ms/tmtinputval#validation-api</a> Implement input validation on all string type parameters accepted by Web API methods. Refer: <a href="https://aka.ms/tmtinputval#string-api">https://aka.ms/tmtinputval#string-api</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may inject malicious inputs into an API and affect downstream processesfalseTAn Adversary can view the message and may tamper the message target is 'SE.P.TMCore.WCF'TH132UserThreatDescriptionfalseAn Adversary can view the message and may tamper the message 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseWCF: Set Message security Protection level to EncryptAndSign. Refer: <a href="https://aka.ms/tmtcommsec#message-protection">https://aka.ms/tmtcommsec#message-protection</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An Adversary can view the message and may tamper the message falseTAn adversary may spread malware, steal or tamper data due to lack of endpoint protection on devices. Scenarios such as stealing a user's laptop and extracting data from hard disk, luring users to install malware, exploit unpatched OS etc. flow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No' flow crosses 'SE.TB.TMCore.MachineTrustBoundary'TH134UserThreatDescriptionfalseAn adversary may spread malware, steal or tamper data due to lack of endpoint protection on devices. Scenarios such as stealing a user's laptop and extracting data from hard disk, luring users to install malware, exploit unpatched OS etc. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that devices have end point security controls configured as per organizational policies. Refer: <a href="https://aka.ms/tmtconfigmgmt#controls-policies">https://aka.ms/tmtconfigmgmt#controls-policies</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may spread malware, steal or tamper data due to lack of endpoint protection on devicesfalseTAn adversary may reverse engineer deployed binariesflow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.MachineTrustBoundary'TH137UserThreatDescriptionfalseAn adversary may reverse engineer deployed binaries22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that binaries are obfuscated if they contain sensitive information. Refer: <a href="https://aka.ms/tmtdata#binaries-info">https://aka.ms/tmtdata#binaries-info</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may reverse engineer deployed binariesfalseTAn adversary may tamper deployed binariesflow.23e2b6f4-fcd8-4e76-a04a-c9ff9aff4f59 is 'No'flow crosses 'SE.TB.TMCore.MachineTrustBoundary'TH138UserThreatDescriptionfalseAn adversary may tamper deployed binaries22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that deployed application's binaries are digitally signed. Refer: <a href="https://aka.ms/tmtauthn#binaries-signed">https://aka.ms/tmtauthn#binaries-signed</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may tamper deployed binariesfalseTWebsite defacement is an attack on a website where the attacker changes the visual appearance of the site or a webpage. source is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp'TH24UserThreatDescriptionfalseWebsite defacement is an attack on a website where the attacker changes the visual appearance of the site or a webpage. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement Content Security Policy (CSP), and disable inline javascript. Refer: <a href="https://aka.ms/tmtconfigmgmt#csp-js">https://aka.ms/tmtconfigmgmt#csp-js</a> Enable browser's XSS filter. Refer: <a href="https://aka.ms/tmtconfigmgmt#xss-filter">https://aka.ms/tmtconfigmgmt#xss-filter</a> Access third party javascripts from trusted sources only. Refer: <a href="https://aka.ms/tmtconfigmgmt#js-trusted">https://aka.ms/tmtconfigmgmt#js-trusted</a> Enable ValidateRequest attribute on ASP.NET Pages. Refer: <a href="https://aka.ms/tmtconfigmgmt#validate-aspnet">https://aka.ms/tmtconfigmgmt#validate-aspnet</a> Ensure that each page that could contain user controllable content opts out of automatic MIME sniffing . Refer: <a href="https://aka.ms/tmtinputval#out-sniffing">https://aka.ms/tmtinputval#out-sniffing</a> Use locally-hosted latest versions of JavaScript libraries . Refer: <a href="https://aka.ms/tmtconfigmgmt#local-js">https://aka.ms/tmtconfigmgmt#local-js</a> Ensure appropriate controls are in place when accepting files from users. Refer: <a href="https://aka.ms/tmtinputval#controls-users">https://aka.ms/tmtinputval#controls-users</a> Disable automatic MIME sniffing. Refer: <a href="https://aka.ms/tmtconfigmgmt#mime-sniff">https://aka.ms/tmtconfigmgmt#mime-sniff</a> Encode untrusted web output prior to rendering. Refer: <a href="https://aka.ms/tmtinputval#rendering">https://aka.ms/tmtinputval#rendering</a> Perform input validation and filtering on all string type Model properties. Refer: <a href="https://aka.ms/tmtinputval#typemodel">https://aka.ms/tmtinputval#typemodel</a> Ensure that the system has inbuilt defences against misuse. Refer: <a href="https://aka.ms/tmtauditlog#inbuilt-defenses">https://aka.ms/tmtauditlog#inbuilt-defenses</a> Enable HTTP Strict Transport Security (HSTS). Refer: <a href="https://aka.ms/tmtcommsec#http-hsts">https://aka.ms/tmtcommsec#http-hsts</a> Implement input validation on all string type parameters accepted by Controller methods. Refer: <a href="https://aka.ms/tmtinputval#string-method">https://aka.ms/tmtinputval#string-method</a> Avoid using Html.Raw in Razor views. Refer: <a href="https://aka.ms/tmtinputval#html-razor">https://aka.ms/tmtinputval#html-razor</a> Sanitization should be applied on form fields that accept all characters e.g, rich text editor . Refer: <a href="https://aka.ms/tmtinputval#richtext">https://aka.ms/tmtinputval#richtext</a> Do not assign DOM elements to sinks that do not have inbuilt encoding . Refer: <a href="https://aka.ms/tmtinputval#inbuilt-encode">https://aka.ms/tmtinputval#inbuilt-encode</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can deface the target web application by injecting malicious code or uploading dangerous filesfalseTAn attacker steals messages off the network and replays them in order to steal a user's session(source is 'SE.EI.TMCore.Browser' and target is 'SE.P.TMCore.WebApp')TH33UserThreatDescriptionfalseAn attacker steals messages off the network and replays them in order to steal a user's session22222222-2222-2222-2222-2222222222220PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An attacker steals messages off the network and replays them in order to steal a user's sessionfalseTAn adversary may leverage known vulnerabilities and exploit a device if the firmware of the device is not updatedsource is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway'TH39UserThreatDescriptionfalseAn adversary may leverage known vulnerabilities and exploit a device if the firmware of the device is not updated22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that the Cloud Gateway implements a process to keep the connected devices firmware up to date. Refer: <a href="https://aka.ms/tmtconfigmgmt#cloud-firmware">https://aka.ms/tmtconfigmgmt#cloud-firmware</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may exploit known vulnerabilities in unpatched devicesfalseTAn adversary may partially or wholly replace the software running on {target.Name}, potentially allowing the replaced software to leverage the genuine identity of the device if the key material or the cryptographic facilities holding key materials were available to the illicit program. For example an attacker may leverage extracted key material to intercept and suppress data from the device on the communication path and replace it with false data that is authenticated with the stolen key material.source is 'SE.EI.TMCore.IoTdevice' or source is 'SE.GP.TMCore.IoTFieldGateway'TH43UserThreatDescriptionfalseAn adversary may partially or wholly replace the software running on {target.Name}, potentially allowing the replaced software to leverage the genuine identity of the device if the key material or the cryptographic facilities holding key materials were available to the illicit program. For example an attacker may leverage extracted key material to intercept and suppress data from the device on the communication path and replace it with false data that is authenticated with the stolen key material.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseStore Cryptographic Keys securely on IoT Device. Refer: <a href="https://aka.ms/tmtcrypto#keys-iot">https://aka.ms/tmtcrypto#keys-iot</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may tamper {source.Name} and extract cryptographic key material from itfalseTAn adversary may perform a Man-In-The-Middle attack on the encrypted traffic sent to {target.Name}(source is 'SE.GP.TMCore.IoTFieldGateway' or source is 'SE.GP.TMCore.IoTCloudGateway') and (target is 'SE.EI.TMCore.IoTdevice' or target is 'SE.GP.TMCore.IoTFieldGateway')TH45UserThreatDescriptionfalseAn adversary may perform a Man-In-The-Middle attack on the encrypted traffic sent to {target.Name}22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseVerify X.509 certificates used to authenticate SSL, TLS, and DTLS connections. Refer: <a href="https://aka.ms/tmtcommsec#x509-ssltls">https://aka.ms/tmtcommsec#x509-ssltls</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may attempt to intercept encrypted traffic sent to {target.Name}falseTAn adversary may launch malicious code into {target.Name} and execute ittarget is 'SE.EI.TMCore.IoTdevice' or target is 'SE.GP.TMCore.IoTFieldGateway'TH46UserThreatDescriptionfalseAn adversary may launch malicious code into {target.Name} and execute it22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that unknown code cannot execute on devices. Refer: <a href="https://aka.ms/tmtconfigmgmt#unknown-exe">https://aka.ms/tmtconfigmgmt#unknown-exe</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may execute unknown code on {target.Name}falseTAn adversary may launch offline attacks made by disabling or circumventing the installed operating system, or made by physically separating the storage media from the device in order to attack the data separately.source is 'SE.EI.TMCore.IoTdevice'TH47UserThreatDescriptionfalseAn adversary may launch offline attacks made by disabling or circumventing the installed operating system, or made by physically separating the storage media from the device in order to attack the data separately.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEncrypt OS and additional partitions of IoT Device with Bitlocker. Refer: <a href="https://aka.ms/tmtconfigmgmt#partition-iot">https://aka.ms/tmtconfigmgmt#partition-iot</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may tamper the OS of a device and launch offline attacksfalseTAn adversary may eavesdrop and interfere with the communication between a client and Event Hub and possibly tamper the data that is transmittedtarget is 'SE.P.TMCore.AzureEventHub'TH61UserThreatDescriptionfalseAn adversary may eavesdrop and interfere with the communication between a client and Event Hub and possibly tamper the data that is transmitted22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseSecure communication to Event Hub using SSL/TLS. Refer: <a href="https://aka.ms/tmtcommsec#comm-ssltls">https://aka.ms/tmtcommsec#comm-ssltls</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may eavesdrop the communication between the a client and Event HubfalseTAn adversary can tamper the data uploaded to {target.Name} storage when HTTPS cannot be enabled.target is 'SE.DS.TMCore.AzureStorage' and target.b3ece90f-c578-4a48-b4d4-89d97614e0d2 is 'Blob' and target.229f2e53-bc3f-476c-8ac9-57da37efd00f is 'True'target is 'SE.DS.TMCore.AzureStorage' and target.b3ece90f-c578-4a48-b4d4-89d97614e0d2 is 'Blob'TH66UserThreatDescriptionfalseAn adversary can tamper the data uploaded to {target.Name} storage when HTTPS cannot be enabled.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseValidate the hash (which should be generated using a cryptographically strong hashing algorithm) after downloading the blob if HTTPS cannot be enabled.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can tamper the data uploaded to {target.Name} when HTTPS cannot be enabledfalseTThe source of a package is the individual or organization that created the package. Running a package from an unknown or untrusted source might be risky.target is 'SE.DS.TMCore.SQL' and target.649208cc-3b55-40ff-94b9-015c0fb0c9e8 is 'Yes'TH88UserThreatDescriptionfalseThe source of a package is the individual or organization that created the package. Running a package from an unknown or untrusted source might be risky.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseSSIS packages should be encrypted and digitally signed . Refer: <a href="https://aka.ms/tmtcrypto#ssis-signed">https://aka.ms/tmtcrypto#ssis-signed</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can tamper SSIS packages and cause undesirable consequencesfalseTAn adversary may leverage the lack of intrusion detection and prevention of anomalous database activities and trigger anomalous traffic to databasetarget is 'SE.DS.TMCore.SQL'TH89UserThreatDescriptionfalseAn adversary may leverage the lack of intrusion detection and prevention of anomalous database activities and trigger anomalous traffic to database22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable Threat detection on Azure SQL database. Refer: <a href="https://aka.ms/tmtauditlog#threat-detection">https://aka.ms/tmtauditlog#threat-detection</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may leverage the lack of monitoring systems and trigger anomalous traffic to databasefalseTAn adversary may gain unauthorized access to {source.Name}, tamper its OS and get access to confidential information in the field gatewaysource is 'SE.GP.TMCore.IoTFieldGateway'TH92UserThreatDescriptionfalseAn adversary may gain unauthorized access to {source.Name}, tamper its OS and get access to confidential information in the field gateway22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEncrypt OS and additional partitions of IoT Field Gateway with Bitlocker. Refer: <a href="https://aka.ms/tmtconfigmgmt#field-bitlocker">https://aka.ms/tmtconfigmgmt#field-bitlocker</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to IoT Field Gateway and tamper its OSfalseTAn adversary can use various tools, reverse engineer binaries and abuse them by tamperingsource is 'SE.EI.TMCore.Mobile'TH95UserThreatDescriptionfalseAn adversary can use various tools, reverse engineer binaries and abuse them by tampering22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseObfuscate generated binaries before distributing to end users. Refer: <a href="https://aka.ms/tmtdata#binaries-end">https://aka.ms/tmtdata#binaries-end</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can reverse engineer and tamper binariesfalseTSQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. The primary form of SQL injection consists of direct insertion of code into user-input variables that are concatenated with SQL commands and executed. A less direct attack injects malicious code into strings that are destined for storage in a table or as metadata. When the stored strings are subsequently concatenated into a dynamic SQL command, the malicious code is executed. target is 'SE.P.TMCore.WebApp'TH96UserThreatDescriptionfalseSQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. The primary form of SQL injection consists of direct insertion of code into user-input variables that are concatenated with SQL commands and executed. A less direct attack injects malicious code into strings that are destined for storage in a table or as metadata. When the stored strings are subsequently concatenated into a dynamic SQL command, the malicious code is executed. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that type-safe parameters are used in Web Application for data access. Refer: <a href="https://aka.ms/tmtinputval#typesafe">https://aka.ms/tmtinputval#typesafe</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data by performing SQL injection through Web AppfalseTSQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. The primary form of SQL injection consists of direct insertion of code into user-input variables that are concatenated with SQL commands and executed. A less direct attack injects malicious code into strings that are destined for storage in a table or as metadata. When the stored strings are subsequently concatenated into a dynamic SQL command, the malicious code is executed. target is 'SE.P.TMCore.WebAPI'TH97UserThreatDescriptionfalseSQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. The primary form of SQL injection consists of direct insertion of code into user-input variables that are concatenated with SQL commands and executed. A less direct attack injects malicious code into strings that are destined for storage in a table or as metadata. When the stored strings are subsequently concatenated into a dynamic SQL command, the malicious code is executed. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that type-safe parameters are used in Web API for data access. Refer: <a href="https://aka.ms/tmtinputval#typesafe-api">https://aka.ms/tmtinputval#typesafe-api</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data by performing SQL injection through Web APIfalseTAn adversary can gain access to the config files. and if sensitive data is stored in it, it would be compromised.target is 'SE.P.TMCore.WebApp'TH98UserThreatDescriptionfalseAn adversary can gain access to the config files. and if sensitive data is stored in it, it would be compromised.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEncrypt sections of Web App's configuration files that contain sensitive data. Refer: <a href="https://aka.ms/tmtdata#encrypt-data">https://aka.ms/tmtdata#encrypt-data</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to sensitive data stored in Web App's config filesfalseEAn adversary can gain unauthorized access to Azure SQL DB instances due to weak network security configuration.target is 'SE.DS.TMCore.AzureSQLDB' and not target.e68e212d-896e-403e-8a2d-8c6d2b2505df is 'Allow access from selected networks'TH143UserThreatDescriptionfalseAn adversary can gain unauthorized access to Azure SQL DB instances due to weak network security configuration.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict access to Azure SQL Database instances by configuring server-level and database-level firewall rules to permit connections from selected networks (e.g. a virtual network or a custom set of IP addresses) where possible. Refer:<a href="https://aka.ms/tmt-th143">https://aka.ms/tmt-th143</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to Azure SQL DB instances due to weak network security configuration.falseIAn adversary can read confidential data due to weak connection string configuration.target is 'SE.DS.TMCore.AzureSQLDB'TH144UserThreatDescriptionfalseAn adversary can read confidential data due to weak connection string configuration.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseClients connecting to an Azure SQL Database instance using a connection string should ensure encrypt=true and trustservercertificate=false are set. This configuration ensures that connections are encrypted only if there is a verifiable server certificate (otherwise the connection attempt fails). This helps protect against Man-In-The-Middle attacks. Refer: <a href="https://aka.ms/tmt-th144">https://aka.ms/tmt-th144</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can read confidential data due to weak connection string configurationfalseIAn adversary having access to the storage container (e.g. physical access to the storage media) may be able to read sensitive data.target is 'SE.DS.TMCore.AzureSQLDB' and not target.3a2a095f-94bc-467f-987c-8dac8307cdc6 is 'True'TH145UserThreatDescriptionfalseAn adversary having access to the storage container (e.g. physical access to the storage media) may be able to read sensitive data.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable Transparent Data Encryption (TDE) on Azure SQL Database instances to have data encrypted at rest. Refer:<a href="https://aka.ms/tmt-th145a">https://aka.ms/tmt-th145a</a>. Use the Always Encrypted feature to allow client applications to encrypt sensitive data before it is sent to the Azure SQL Database. Refer: <a href="https://aka.ms/tmt-th145b">https://aka.ms/tmt-th145b</a> 22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary having access to the storage container (e.g. physical access to the storage media) may be able to read sensitive datafalseEA compromised identity may permit more privileges than intended to an adversary due to weak permission and role assignments.target is 'SE.DS.TMCore.AzureSQLDB'TH146UserThreatDescriptionfalseA compromised identity may permit more privileges than intended to an adversary due to weak permission and role assignments.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseIt is recommended to review permission and role assignments to ensure the users are granted the least privileges necessary. Refer: <a href="https://aka.ms/tmt-th146">https://aka.ms/tmt-th146</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221A compromised identity may permit more privileges than intended to an adversary due to weak permission and role assignmentsfalseRAn adversary can deny actions performed on {target.Name} due to a lack of auditing.target is 'SE.DS.TMCore.AzureSQLDB' and target.6a3509e5-a3fd-41db-8dea-6fb44b031e4b is 'True'target is 'SE.DS.TMCore.AzureSQLDB'TH147UserThreatDescriptionfalseAn adversary can deny actions performed on {target.Name} due to a lack of auditing.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable auditing on Azure SQL Database instances to track and log database events. After configuring and customizing the audited events, enable threat detection to receive alerts on anomalous database activities indicating potential security threats. Refer: <a href="https://aka.ms/tmt-th147">https://aka.ms/tmt-th147</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary can deny actions performed on {target.Name} due to a lack of auditingfalseEAn adversary can gain long term, persistent access to an Azure SQL DB instance through the compromise of local user account password(s).target is 'SE.DS.TMCore.AzureSQLDB'TH148UserThreatDescriptionfalseAn adversary can gain long term, persistent access to an Azure SQL DB instance through the compromise of local user account password(s).22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseIt is recommended to rotate user account passwords (e.g. those used in connection strings) regularly, in accordance with your organization's policies. Store secrets in a secret storage solution (e.g. Azure Key Vault).22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain long term, persistent access to an Azure SQL DB instance through the compromise of local user account password(s)falseEAn adversary may abuse weak {target.Name} configuration.target is 'SE.DS.TMCore.AzureSQLDB' and target.212cf67e-047a-4617-860f-92282e04b8d8 is 'True'target is 'SE.DS.TMCore.AzureSQLDB'TH149UserThreatDescriptionfalseAn adversary may abuse weak {target.Name} configuration.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable SQL Vulnerability Assessment to gain visibility into the security posture of your Azure SQL Database instances. Acting on the assessment results help reduce attack surface and enhance your database security. Refer: <a href="https://aka.ms/tmt-th149">https://aka.ms/tmt-th149</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may abuse weak {target.Name} configurationfalseEAn adversary can gain unauthorized access to {target.Name} instances due to weak network security configuration.target is 'SE.DS.TMCore.AzureMySQLDB' and not target.9afccb81-bc8b-4527-ad05-f90ec3e396cb is 'Allow access from selected networks'TH150UserThreatDescriptionfalseAn adversary can gain unauthorized access to Azure MySQL DB instances due to weak network security configuration.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict access to Azure MySQL DB instances by configuring server-level firewall rules to only permit connections from selected IP addresses where possible. Refer: <a href="https://aka.ms/tmt-th150">https://aka.ms/tmt-th150</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to Azure MySQL DB instances due to weak network security configurationfalseTAn adversary may read and/or tamper with the data transmitted to {target.Name} due to weak configuration.target is 'SE.DS.TMCore.AzureMySQLDB' and not target.4d3b2548-8c31-460e-88e5-4c26135003ac is 'True'TH151UserThreatDescriptionfalseAn adversary may read and/or tamper with the data transmitted to Azure MySQL DB due to weak configuration.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnforce communication between clients and Azure MySQL DB to be over SSL/TLS by enabling the Enforce SSL connection feature on the server. Check that the connection strings used to connect to MySQL databases have the right configuration (e.g. ssl = true or sslmode=require or sslmode=true are set). Refer: <a href="https://aka.ms/tmt-th151a">https://aka.ms/tmt-th151a</a> Configure MySQL server to use a verifiable SSL certificate (needed for SSL/TLS communication). Refer: <a href="https://aka.ms/tmt-th151b">https://aka.ms/tmt-th151b</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may read and/or tamper with the data transmitted to Azure MySQL DB due to weak configurationfalseEAn adversary can gain long term, persistent access to {target.Name} instance through the compromise of local user account password(s).target is 'SE.DS.TMCore.AzureMySQLDB'TH152UserThreatDescriptionfalseAn adversary can gain long term, persistent access to an Azure MySQL DB instance through the compromise of local user account password(s).22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseIt is recommended to rotate user account passwords (e.g. those used in connection strings) regularly, in accordance with your organization's policies. Store secrets in a secret storage solution (e.g. Azure Key Vault).22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain long term, persistent access to an Azure MySQL DB instance through the compromise of local user account password(s)falseEAn adversary can gain unauthorized access to {target.Name} instances due to weak network security configuration.target is 'SE.DS.TMCore.AzurePostgresDB' and not target.ba682010-cfcf-4916-9f88-524f8d9ce8a8 is 'Allow access from selected networks'TH153UserThreatDescriptionfalseAn adversary can gain unauthorized access to Azure Postgres DB instances due to weak network security configuration.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict access to Azure Postgres DB instances by configuring server-level firewall rules to only permit connections from selected IP addresses where possible. Refer: <a href="https://aka.ms/tmt-th153">https://aka.ms/tmt-th153</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to Azure Postgres DB instances due to weak network security configurationfalseTAn adversary may read and/or tamper with the data transmitted to {target.Name} due to weak configuration.target is 'SE.DS.TMCore.AzurePostgresDB' and not target.65a8827c-6efd-4243-aa81-0625c4aea98e is 'True'TH154UserThreatDescriptionfalseAn adversary may read and/or tamper with the data transmitted to Azure Postgres DB due to weak configuration.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnforce communication between clients and Azure Postgres DB to be over SSL/TLS by enabling the Enforce SSL connection feature on the server. Check that the connection strings used to connect to MySQL databases have the right configuration (e.g. ssl = true or sslmode=require or sslmode=true are set). Refer: <a href="https://aka.ms/tmt-th154a">https://aka.ms/tmt-th154a</a> Configure MySQL server to use a verifiable SSL certificate (needed for SSL/TLS communication). Refer: <a href="https://aka.ms/tmt-th154b">https://aka.ms/tmt-th154b</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may read and/or tamper with the data transmitted to Azure Postgres DB due to weak configurationfalseEAn adversary can gain long term, persistent access to {target.Name} instance through the compromise of local user account password(s).target is 'SE.DS.TMCore.AzurePostgresDB'TH155UserThreatDescriptionfalseAn adversary can gain long term, persistent access to an Azure Postgres DB instance through the compromise of local user account password(s).22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseIt is recommended to rotate user account passwords (e.g. those used in connection strings) regularly, in accordance with your organization's policies. Store secrets in a secret storage solution (e.g. Azure Key Vault).22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain long term, persistent access to an Azure Postgres DB instance through the compromise of local user account password(s)falseEAn adversary can gain unauthorized access to {target.Name} due to weak account policytarget is 'SE.DS.TMCore.AzureSQLDWDB'TH156UserThreatDescriptionfalseAn adversary can gain unauthorized access to {target.Name} due to weak account policy22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseWhen possible use Azure Active Directory Authentication for Connecting to SQL DW Database. Refer: <a href="https://aka.ms/tmt-th156a">https://aka.ms/tmt-th156a</a>. Ensure that least-privileged accounts are used to connect to SQL DW Database. Refer: <a href="https://aka.ms/tmt-th156b">https://aka.ms/tmt-th156b</a> and <a href="https://aka.ms/tmt-th156c">https://aka.ms/tmt-th156c</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to {target.Name} due to weak account policyfalseEAn adversary can gain unauthorized access to {target.Name} instances due to weak network security configurationtarget is 'SE.DS.TMCore.AzureSQLDWDB' and not target.b8c8850c-979b-4db0-b536-9aa364b7e6a2 is 'Allow access from selected networks (excluding Azure)'TH157UserThreatDescriptionfalseAn adversary can gain unauthorized access to Azure SQL DW DB instances due to weak network security configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict access to Azure SQL DW DB instances by configuring server-level firewall rules to permit connections from selected networks (e.g. a virtual network or a custom set of IP addresses) where possible. Refer: <a href="https://aka.ms/tmt-th157">https://aka.ms/tmt-th157</a>.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to Azure SQL DW DB instances due to weak network security configurationfalseTAn adversary can read confidential data or tamper with it due to weak connection string configuration at {target.Name} target is 'SE.DS.TMCore.AzureSQLDWDB'TH158UserThreatDescriptionfalseAn adversary can read confidential data or tamper with it due to weak connection string configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseClients connecting to a Azure SQL DW DB instance using a connection string should ensure that encryption is enabled and trusting the server certificate by default is disabled (e.g. encrypt=true and trustservercertificate=false are set). This configuration ensures that connections are encrypted only if there is a verifiable server certificate (otherwise the connection attempt fails). This helps protect against Man-In-The-Middle attacks. Refer: <a href="https://aka.ms/tmt-th158">https://aka.ms/tmt-th158</a>.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can read confidential data or tamper with it due to weak connection string configurationfalseIAn adversary having access to the storage container (e.g. physical access to the storage media) may read sensitive datatarget is 'SE.DS.TMCore.AzureSQLDWDB' and not target.d2ce181d-abae-448d-8ef4-9acdbeb839fe is 'True'TH159UserThreatDescriptionfalseAn adversary having access to the storage container (e.g. physical access to the storage media) may read sensitive data22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable Transparent Data Encryption (TDE) on Azure SQL Data Warehouse Database instances to have data encrypted at rest. Refer: <a href="https://aka.ms/tmt-th159">https://aka.ms/tmt-th159</a>.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary having access to the storage container (e.g. physical access to the storage media) may read sensitive datafalseEAn identity that is compromised may permit more privileges than intended to an adversary due to weak permission and role assignmentstarget is 'SE.DS.TMCore.AzureSQLDWDB'TH160UserThreatDescriptionfalseAn identity that is compromised may permit more privileges than intended to an adversary due to weak permission and role assignments22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseReview permission and role assignments to ensure users are granted the least privileges necessary. Refer: <a href="https://aka.ms/tmt-th160">https://aka.ms/tmt-th160</a>.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An identity that is compromised may permit more privileges than intended to an adversary due to weak permission and role assignmentsfalseRAn adversary can deny actions performed on {target.Name} due to lack of auditingtarget is 'SE.DS.TMCore.AzureSQLDWDB' and not target.cd2a18a2-cebd-4b0f-ae4c-964b190e84f2 is 'True'TH161UserThreatDescriptionfalseAn adversary can deny actions performed on {target.Name} due to lack of auditing22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable auditing on Azure SQL DW DB instances to track and log database events. After configuring and customizing the audited events, enable threat detection to receive alerts on anomalous activities indicating potential security threats. Refer: <a href="https://aka.ms/tmt-th161">https://aka.ms/tmt-th161</a>.22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can deny actions performed on {target.Name} due to lack of auditingfalseEAn adversary can gain long term, persistent access to {target.Name} through a compromise of its connection string(s)target is 'SE.DS.TMCore.AzureSQLDWDB'TH162UserThreatDescriptionfalseAn adversary can gain long term, persistent access to {target.Name} through a compromise of its connection string(s)22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseIt is recommended to rotate user account passwords (e.g. those used in connection strings) regularly, in accordance with your organization's policies. Store secrets in a secret storage solution (e.g. Azure Key Vault).22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain long term, persistent access to {target.Name} through a compromise of its connection string(s)falseEAn adversary can gain unauthorized access to {target.Name} instances due to weak network security configurationtarget is 'SE.P.TMCore.AzureRedis' and not target.1bda806d-f9b6-4d4e-ab89-bf649f2c2ca5 is 'Allow access from selected networks'TH163UserThreatDescriptionfalseAn adversary can gain unauthorized access to {target.Name} instances due to weak network security configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict access to Azure Redis Cache instances by configuring firewall rules to only permit connections from selected IP addresses or VNETs where possible. Refer: <a href="https://aka.ms/tmt-th163">https://aka.ms/tmt-th163</a>.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to {target.Name} instances due to weak network security configurationfalseEAn adversary can gain long term, persistent access to {target.Name} instance through a compromise of its access key(s)target is 'SE.P.TMCore.AzureRedis'TH164UserThreatDescriptionfalseAn adversary can gain long term, persistent access to {target.Name} instance through a compromise of its access key(s)22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseIt is recommended to rotate user account passwords (e.g. those used in connection strings) regularly, in accordance with your organization's policies. Store secrets in a secret storage solution (e.g. Azure Key Vault).22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain long term, persistent access to {target.Name} instance through a compromise of its access key(s)falseDAn adversary may block access to the application or API hosted on {target.Name} through a denial of service attacktarget is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp'TH165UserThreatDescriptionfalseAn adversary may block access to the application or API hosted on {target.Name} through a denial of service attack22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseNetwork level denial of service mitigations are automatically enabled as part of the Azure platform (Basic Azure DDoS Protection). Refer: <a href="https://aka.ms/tmt-th165a">https://aka.ms/tmt-th165a</a>. Implement application level throttling (e.g. per-user, per-session, per-API) to maintain service availability and protect against DoS attacks. Leverage Azure API Management for managing and protecting APIs. Refer: <a href="https://aka.ms/tmt-th165b">https://aka.ms/tmt-th165b</a>. General throttling guidance, refer: <a href="https://aka.ms/tmt-th165c">https://aka.ms/tmt-th165c</a> 22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may block access to the application or API hosted on {target.Name} through a denial of service attackfalseEAn adversary may gain long term persistent access to related resources through the compromise of an application identitytarget is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp'TH166UserThreatDescriptionfalseAn adversary may gain long term persistent access to related resources through the compromise of an application identity22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseStore secrets in secret storage solutions where possible, and rotate secrets on a regular cadence. Use Managed Service Identity to create a managed app identity on Azure Active Directory and use it to access AAD-protected resources. Refer: <a href="https://aka.ms/tmt-th166">https://aka.ms/tmt-th166</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain long term persistent access to related resources through the compromise of an application identityfalseEAn adversary may gain unauthorized access to {target.Name} due to weak network configuration(target is 'SE.P.TMCore.AzureAppServiceWebApp' and not target.327ab565-9b38-4f6a-8171-6ab7deb2246b is 'Allow access from selected networks') or (target is 'SE.P.TMCore.AzureAppServiceApiApp' and not target.cb0fca77-c600-4622-b9a5-118107fcd9dd is 'Allow access from selected networks') or (target is 'SE.P.TMCore.AzureAppServiceMobileApp' and not target.9b54ed83-3970-475b-97a0-be7641051497 is 'Allow access from selected networks')TH167UserThreatDescriptionfalseAn adversary may gain unauthorized access to {target.Name} due to weak network configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict access to Azure App Service to selected networks (e.g. IP whitelisting, VNET integrations). Refer: <a href="https://aka.ms/tmt-th167">https://aka.ms/tmt-th167</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to {target.Name} due to weak network configurationfalseIAn adversary can achieve remote code execution on a server hosting an application or API by exploiting JSON deserialization logic(source is 'GE.EI' or source is 'SE.EI.TMCore.Browser') and ((target is 'SE.P.TMCore.AzureAppServiceWebApp' and target.d69db950-2372-4bd3-8328-f751f0b04c03 is 'True') or (target is 'SE.P.TMCore.AzureAppServiceApiApp' and target.0945adcf-1cfd-432f-8032-05391ab62336 is 'True') or (target is 'SE.P.TMCore.AzureAppServiceMobileApp' and target.015d94e3-d54e-4c09-9ce2-2731a0dc86f0 is 'True'))TH168UserThreatDescriptionfalseAn adversary can achieve remote code execution on a server hosting an application or API by exploiting JSON deserialization logic22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure serialized objects from untrusted sources are not being deserialized, or handle objects that have been serialized using a serializer that only permits primitive data types. Refer: <a href="https://aka.ms/tmt-th168">https://aka.ms/tmt-th168</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can achieve remote code execution on a server hosting an application or API by exploiting JSON deserialization logicfalseIAn adversary can achieve remote code execution on a server hosting an application or API by exploiting XML parsing logic or through XSLT scripting(source is 'GE.EI' or source is 'SE.EI.TMCore.Browser') and ((target is 'SE.P.TMCore.AzureAppServiceWebApp' and target.049c845a-28c2-46f8-bda2-971ff7df9bd4 is 'True') or (target is 'SE.P.TMCore.AzureAppServiceApiApp' and target.0eb10857-97b7-4c8c-8fdd-c289b7921a7e is 'True') or (target is 'SE.P.TMCore.AzureAppServiceMobileApp' and target.6c7ab607-e310-4d74-aa5b-397d87f02ee9 is 'True'))TH169UserThreatDescriptionfalseAn adversary can achieve remote code execution on a server hosting an application or API by exploiting XML parsing logic or through XSLT scripting22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseDisable XSLT scripting for all transforms using untrusted style sheets. Refer: <a href="https://aka.ms/tmt-th169a">https://aka.ms/tmt-th169a</a>. Disable DTD processing and external entity resolution on XML parsers to protect against XXE attacks. Refer: <a href="https://aka.ms/tmt-th169b">https://aka.ms/tmt-th169b</a>, <a href="https://aka.ms/tmt-th169c">https://aka.ms/tmt-th169c</a>, <a href="https://aka.ms/tmt-th169d">https://aka.ms/tmt-th169d</a> and <a href="https://aka.ms/tmt-th169e">https://aka.ms/tmt-th169e</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can achieve remote code execution on a server hosting an application or API by exploiting XML parsing logic or through XSLT scriptingfalseIAttacker can steal user session cookies due to insecure cookie attributessource is 'SE.EI.TMCore.Browser' and (target is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp')TH170UserThreatDescriptionfalseAttacker can steal user session cookies due to insecure cookie attributes22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseApplications available over HTTPS must use secure cookies. Refer: <a href="https://aka.ms/tmt-th170a">https://aka.ms/tmt-th170a</a>. All HTTP based applications should specify http only for cookie definition. Refer: <a href="https://aka.ms/tmt-th170b">https://aka.ms/tmt-th170b</a> and <a href="https://aka.ms/tmt-th170c">https://aka.ms/tmt-th170c</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221Attacker can steal user session cookies due to insecure cookie attributesfalseEAn adversary may get access to a user's session due to improper logout from ADFSsource is 'SE.P.TMCore.ADFS' and (target is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp')TH171UserThreatDescriptionfalseAn adversary may get access to a user's session due to improper logout from ADFS22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement proper logout using WsFederation methods when using ADFS. Refer: <a href="https://aka.ms/tmt-th171">https://aka.ms/tmt-th171</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may get access to a user's session due to improper logout from ADFSfalseEAn adversary may get access to a user's session due to improper logout from Azure ADsource is 'SE.P.TMCore.AzureAD' and (target is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp')TH172UserThreatDescriptionfalseAn adversary may get access to a user's session due to improper logout from Azure AD22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement proper logout using ADAL methods when using Azure AD. Refer: <a href="https://aka.ms/tmt-th172">https://aka.ms/tmt-th172</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may get access to a user's session due to improper logout from Azure ADfalseRAn adversary can deny performing actions against {target.Name} due to lack of auditing, leading to repudiation issues(source is 'GE.EI' or source is 'SE.EI.TMCore.Browser') and (target is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp')TH173UserThreatDescriptionfalseAn adversary can deny performing actions against {target.Name} due to lack of auditing, leading to repudiation issues22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseImplement application level auditing and logging, especially for sensitive operations, like accessing secrets from secrets storage solutions. Other examples include user management events like successful and failed user logins, password resets, password changes, account lockouts and user registrations.22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can deny performing actions against {target.Name} due to lack of auditing, leading to repudiation issuesfalseIAn adversary can fingerprint an Azure web application or API by leveraging server header information(source is 'GE.EI' or source is 'SE.EI.TMCore.Browser') and (target is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp')TH174UserThreatDescriptionfalseAn adversary can fingerprint an Azure web application or API by leveraging server header information22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRemove standard server headers to avoid fingerprinting. Refer: <a href="https://aka.ms/tmt-th174a">https://aka.ms/tmt-th174a</a> and <a href="https://aka.ms/tmt-th174b">https://aka.ms/tmt-th174b</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can fingerprint an Azure web application or API by leveraging server header informationfalseTAn adversary can read sensitive data by sniffing or intercepting traffic to {target.Name}source is 'SE.EI.TMCore.Browser' and (target is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp')TH175UserThreatDescriptionfalseAn adversary can read sensitive data by sniffing or intercepting traffic to {target.Name}22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseConfigure SSL certificate for custom domain in Azure App Service. Force all HTTP traffic to the app service to be over HTTPS by enabling the HTTPS only option on the instance. Refer: <a href="https://aka.ms/tmt-th175a">https://aka.ms/tmt-th175a</a> and <a href="https://aka.ms/tmt-th175b">https://aka.ms/tmt-th175b</a>. Enable HTTP Strict Transport Security (HSTS). Refer: <a href="https://aka.ms/tmt-th175c">https://aka.ms/tmt-th175c</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can read sensitive data by sniffing or intercepting traffic to {target.Name}falseEAn adversary may perform action(s) on behalf of another user due to lack of controls against cross domain requests(target is 'SE.P.TMCore.AzureAppServiceWebApp' and target.f6b0309d-2020-4c3f-838f-5ab8ea0d2194 is 'False') or (target is 'SE.P.TMCore.AzureAppServiceApiApp' and target.3f4a2250-9087-44c1-9fb7-61e9eb1e4df7 is 'False') or (target is 'SE.P.TMCore.AzureAppServiceMobileApp' and target.6ddbac5e-2e11-4b88-b917-587749ea4721 is 'False')target is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp'TH176UserThreatDescriptionfalseAn adversary may perform action(s) on behalf of another user due to lack of controls against cross domain requests22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that only trusted origins are allowed if CORS is being used. Refer: <a href="https://aka.ms/tmt-th176">https://aka.ms/tmt-th176</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may perform action(s) on behalf of another user due to lack of controls against cross domain requestsfalseSAn adversary may be able to perform action(s) on behalf of another user due to lack of controls against cross domain requestssource is 'SE.EI.TMCore.Browser' and (target is 'SE.P.TMCore.AzureAppServiceWebApp' or target is 'SE.P.TMCore.AzureAppServiceApiApp' or target is 'SE.P.TMCore.AzureAppServiceMobileApp')TH177UserThreatDescriptionfalseAn adversary may be able to perform action(s) on behalf of another user due to lack of controls against cross domain requests22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure that authenticated pages incorporate UI Redressing or clickjacking defences. Refer: <a href="https://aka.ms/tmt-th177a">https://aka.ms/tmt-th177a</a>. Mitigate against Cross-Site Request Forgery (CSRF) attacks. Refer: <a href="https://aka.ms/tmt-th177b">https://aka.ms/tmt-th177b</a> and <a href="https://aka.ms/tmt-th177c">https://aka.ms/tmt-th177c</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may be able to perform action(s) on behalf of another user due to lack of controls against cross domain requestsfalseSAn adversary may spoof the service or service endpoints by leveraging stale CNAME DNS records and executing a subdomain hijack attacktarget is 'SE.P.TMCore.AzureTrafficManager'TH178UserThreatDescriptionfalseAn adversary may spoof the service or service endpoints by leveraging stale CNAME DNS records and executing a subdomain hijack attack22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseAddress stale CNAME DNS records mapping custom domain names to the domain name of the Azure Traffic Manager instance. In some cases, deleting the stale CNAME records may be sufficient, while in other cases, the domain name of the Azure Traffic Manager instance should be kept to prevent subdomain hijack attacks. Refer: <a href="https://aka.ms/tmt-th178 ">https://aka.ms/tmt-th178 </a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may spoof the service or service endpoints by leveraging stale CNAME DNS records and executing a subdomain hijack attackfalseEAn adversary can gain unauthorized access to Azure Key Vault instances due to weak network security configuration.target is 'SE.DS.TMCore.AzureKeyVault' and not target.cd610fb8-4fbd-49c0-966f-8b4634b39262 is 'Allow access from selected networks'TH179UserThreatDescriptionfalseAn adversary can gain unauthorized access to Azure Key Vault instances due to weak network security configuration.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict access to Azure Key Vault instances by configuring firewall rules to permit connections from selected networks (e.g. a virtual network or a custom set of IP addresses).For Key Vault client applications behind a firewall trying to access a Key Vault instance, see best practices mentioned here: <a href="https://aka.ms/tmt-th179 ">https://aka.ms/tmt-th179 </a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain unauthorized access to Azure Key Vault instances due to weak network security configuration.falseRAn adversary can deny actions performed on {target.Name} due to a lack of auditing. target is 'SE.DS.TMCore.AzureKeyVault' and not target.78bf9482-5267-41c6-84fd-bac2fb6ca0b9 is 'True'TH180UserThreatDescriptionfalseAn adversary can deny actions performed on {target.Name} due to a lack of auditing. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable audit logging on Azure Key Vault instances to monitor how and when the instances are access, and by whom. Use standard Azure access controls to restrict access to the logs. Refer : <a href="https://aka.ms/tmt-th180 ">https://aka.ms/tmt-th180 </a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can deny actions performed on {target.Name} due to a lack of auditing. falseEAn adversary may gain unauthorized access to manage {target.Name} due to weak authorization rules. target is 'SE.DS.TMCore.AzureKeyVault'TH181UserThreatDescriptionfalseAn adversary may gain unauthorized access to manage {target.Name} due to weak authorization rules.22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseAccess to the Azure Key Vault management plane should be restricted by choosing appropriate Role-Based Access Control (RBAC) roles and privileges in accordance with the principle of least privilege. Over permissive or weak authorization rules may potentially permit data plane access (e.g. a user with Contribute (RBAC) permissions to Key Vault management plane may grant themselves access to the data plane by setting the Azure Key Vault access policy). Refer : <a href="https://aka.ms/tmt-th181 ">https://aka.ms/tmt-th181 </a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to manage {target.Name} due to weak authorization rules.falseEAn adversary may gain unauthorized access to {target.Name} secrets due to weak authorization rules target is 'SE.DS.TMCore.AzureKeyVault'TH182UserThreatDescriptionfalseAn adversary may gain unauthorized access to {target.Name} secrets due to weak authorization rules22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseLimit Azure Key Vault data plane access by configuring strict access policies. Grant users, groups and applications the ability to perform only the necessary operations against keys or secrets in a Key Vault instance. Follow the principle of least privilege and grant privileges only as needed. Refer : <a href="https://aka.ms/tmt-th181 ">https://aka.ms/tmt-th181 </a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to {target.Name} secrets due to weak authorization rulesfalseEAn adversary can abuse poorly managed service principal Certificate. An adversary may gain unauthorized access to {target.Name} due to compromise of User or Service Principal . target is 'SE.DS.TMCore.AzureKeyVault' and target.ae94fa17-596d-476e-a283-0afc166dcf26 is 'Service or User Principal and Certificate'TH183UserThreatDescriptionfalseAn adversary can abuse poorly managed service principal Certificate. An adversary may gain unauthorized access to {target.Name} due to compromise of User or Service Principal .22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure secure management and storage of Azure Key Vault Service/User Principal certificate. It is recommended to rotate service principal certificate regularly, in accordance with organizational policies. If supported , use managed identities for Azure resources and details can be found here. Refer : <a href="https://aka.ms/tmt-th183 ">https://aka.ms/tmt-th183 </a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can abuse poorly managed service principal Certificate. An adversary may gain unauthorized access to {target.Name} due to compromise of User or Service Principal . falseEAn adversary can abuse poorly managed service principal secret. An adversary may gain unauthorized access to {target.Name} due to compromise of Service Principal Secret . target is 'SE.DS.TMCore.AzureKeyVault' and target.ae94fa17-596d-476e-a283-0afc166dcf26 is 'Service or User Principal and Secret' TH184UserThreatDescriptionfalseAn adversary can abuse poorly managed service principal secret. An adversary may gain unauthorized access to {target.Name} due to compromise of Service Principal Secret .22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse managed identities for Azure resources and details can be found here at <a href="https://aka.ms/tmt-th183 ">https://aka.ms/tmt-th183</a>. If managed identities is not supported , use Service/User Principal and Certificate. If none of the above options are feasible, please ensure secure management and storage of Azure Key Vault Service/User Principal secret . It is recommended to rotate service/user principal secret regularly, in accordance with organizational policies.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can abuse poorly managed service principal secret. An adversary may gain unauthorized access to {target.Name} due to compromise of Service Principal Secret . falseEAn adversary can abuse poorly managed authentication/access policies. An adversary may gain unauthorized access to {target.Name} due to compromise of secret/certificate used to authenticate to {target.Name} .target is 'SE.DS.TMCore.AzureKeyVault' and target.ae94fa17-596d-476e-a283-0afc166dcf26 is 'Select' TH185UserThreatDescriptionfalseAn adversary can abuse poorly managed authentication/access policies. An adversary may gain unauthorized access to {target.Name} due to compromise of secret/certificate used to authenticate to {target.Name} 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse managed identities for Azure resources and details can be found here at <a href="https://aka.ms/tmt-th183 ">https://aka.ms/tmt-th183 </a>. If managed identities is not supported , use Service/User Principal and Certificate. If none of the above options are feasible, please ensure secure management and storage of Azure Key Vault Service/User Principal secret . It is recommended to rotate service/user principal secret regularly, in accordance with organizational policies.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can abuse poorly managed authentication/access policies. An adversary may gain unauthorized access to {target.Name} due to compromise of secret/certificate used to authenticate to {target.Name} . falseDAn adversary may attempt to delete key vault or key vault object causing business disruption. target is 'SE.DS.TMCore.AzureKeyVault'TH186UserThreatDescriptionfalseAn adversary may attempt to delete key vault or key vault object causing business disruption. 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseKey Vault's soft delete feature allows recovery of the deleted vaults and vault objects, known as soft-delete . Soft deleted resources are retained for a set period of time, 90 days. Refer : <a href="https://aka.ms/tmt-th186 ">https://aka.ms/tmt-th186 </a>22222222-2222-2222-2222-2222222222222PriorityfalseLow22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may attempt to delete key vault or key vault object causing business disruption. falseEAn adversary may gain unauthorized access to manage {target.Name} due to weak authorization rulestarget is 'SE.P.TMCore.ALA'TH187UserThreatDescriptionfalseAn adversary may gain unauthorized access to manage {target.Name} due to weak authorization rules22222222-2222-2222-2222-2222222222220PossibleMitigationsfalse
+ Access to the Azure Logic Apps management plane should be restricted by assigning the appropriate Role-Based Access Control (RBAC) roles to only those needing the privileges. Follow the principle of least privilege.Â
+ Refer : <a href="https://aka.ms/tmt-th187 ">https://aka.ms/tmt-th187 </a>
+ 22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to manage {target.Name} due to weak authorization rulesfalseEAn adversary may gain unauthorized access to {target.Name} workflow run history data due to weak network configurationtarget is 'SE.P.TMCore.ALA' and not target.0b0ab9bc-a582-4509-a6c4-8d56de65661e is 'Specific IP'TH188UserThreatDescriptionfalseAn adversary may gain unauthorized access to {target.Name} workflow run history data due to weak network configuration22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseLimit Azure Logic Apps data plane access to workflow run history data by only allowing requests from specific IP address ranges. Grant access only as necessary, adhering to the principle of least privilege. Refer : <a href="https://aka.ms/tmt-th188 ">https://aka.ms/tmt-th188 </a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to {target.Name} workflow run history data due to weak network configurationfalseEAn adversary may gain unauthorized access to {target.Name} triggers/actions inputs or outputs by workflow run history datatarget is 'SE.P.TMCore.ALA' and not target.b1724997-7ae6-4b30-a001-9c5b42d9d1d1 is 'No'TH189UserThreatDescriptionfalseAn adversary may gain unauthorized access to {target.Name} triggers/actions inputs or outputs by workflow run history data22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnable secure inputs or outputs on the trigger or action to prevent sensitive data from being logged into run history. Refer : <a href="https://aka.ms/tmt-th189 ">https://aka.ms/tmt-th189 </a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to {target.Name} triggers/actions inputs or outputs by workflow run history datafalseEAn adversary may gain unauthorized access to {target.Name} trigger due to weak controls on the triggertarget is 'SE.P.TMCore.ALA' and not target.5afb52dc-dffb-4319-aa22-523f78ee3845 is 'No'TH190UserThreatDescriptionfalseAn adversary may gain unauthorized access to {target.Name} trigger due to weak controls on the trigger22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseLimit access to invoke the trigger by Logic Apps Shared Access Signatures ( SAS) keys and callback URLs. Refer : <a href="https://aka.ms/tmt-th190 ">https://aka.ms/tmt-th190</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to {target.Name} trigger due to weak controls on the triggerfalseEAn adversary may gain unauthorized access to trigger {target.Name} workflows due to weak network configuration target is 'SE.P.TMCore.ALA' and ( target.d488c23c-1667-45a1-994b-f56f2655727b is 'Allow any IP inbound' or target.d488c23c-1667-45a1-994b-f56f2655727b is 'Select')TH191UserThreatDescriptionfalseAn adversary may gain unauthorized access to trigger {target.Name} workflows due to weak network configuration 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrict calls to Azure Logic Apps on a network level, only permitting specific clients (belonging to a set of IP addresses or IP address range) to trigger workflows. Refer : <a href="https://aka.ms/tmt-th191 ">https://aka.ms/tmt-th191</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseDesign22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to trigger {target.Name} workflows due to weak network configuration falseIAn adversary may read sensitive workflow parameters due to improper handling and management of workflow parameters and inputs target is 'SE.P.TMCore.ALA'TH192UserThreatDescriptionfalseAn adversary may read sensitive workflow parameters due to improper handling and management of workflow parameters and inputs 22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseDefine resource parameters and leverage Azure Logic Apps workflow definition language, such as the @parameters() operation, to access resource parameter values at runtime. Use the securestring parameter type to better protect when and how parameter values can be accessed. For sensitive parameters (e.g. secrets), use Azure Key Vault to store and retrieve secrets when needed. Refer : <a href="https://aka.ms/tmt-th192 ">https://aka.ms/tmt-th192</a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may read sensitive workflow parameters due to improper handling and management of workflow parameters and inputs falseEAn adversary can abuse poorly managed credentials or secrets used to access other resources in AAD tenantstarget is 'SE.P.TMCore.ALA'TH193UserThreatDescriptionfalseAn adversary can abuse poorly managed credentials or secrets used to access other resources in AAD tenants22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseUse managed identities , if possible , for your logic apps to connect to different resources managed in AAD tenant.  Refer : <a href="https://aka.ms/tmt-th193 ">https://aka.ms/tmt-th193</a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can abuse poorly managed credentials or secrets used to access other resources in AAD tenants.falseEAn adversary may gain unauthorized access to run any action on {target.Name} due to weak authorization rulestarget is 'SE.P.TMCore.ADE'TH194UserThreatDescriptionfalseAn adversary may gain unauthorized access to run any action on {target.Name} due to weak authorization rules22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure access to run any action on a Kusto resource is restricted by assigning the appropriate Role-Based Access Control (RBAC) roles to only those needing the privileges. Follow the principle of least privilege. Security roles define which security principals (users and applications) can have permissions to operate on a secured resource (such as a database or a table), and what operations are permitted. Refer : 1) <a href="https://aka.ms/tmt-th194 ">https://aka.ms/tmt-th194 </a> 2)<a href="https://aka.ms/tmt-th194a ">https://aka.ms/tmt-th194a </a>22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary may gain unauthorized access to run any action on {target.Name} due to weak authorization rulesfalseISecret information should not be logged in {target.Name}target is 'SE.P.TMCore.ADE'TH195UserThreatDescriptionfalseSecret information should not be logged in {target.Name}22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnsure any secret information like passwords , SAS Tokens , refresh tokens etc are not logged in Azure Data Explorer.22222222-2222-2222-2222-2222222222222PriorityfalseHigh22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221Secret information should not be logged in {target.Name}falseISensitive information might get disclosed while querying {target.Name}target is 'SE.P.TMCore.ADE'TH196UserThreatDescriptionfalseSensitive information might get disclosed while querying {target.Name}22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseRestrictedViewAccess policy can be enabled on tables in database which contain sensitive information and only principals with "UnrestrictedViewer" role in the database can query that data.Refer : <a href="https://aka.ms/tmt-th196 ">https://aka.ms/tmt-th196 </a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221Sensitive information might get disclosed while querying {target.Name}falseEAn adversary can run malicious Kusto queries on {target.Name} if user provided input is used in non-parameterised queriestarget is 'SE.P.TMCore.ADE'TH197UserThreatDescriptionfalseAn adversary can run malicious Kusto queries on {target.Name} if user provided input is used in non-parameterised queries22222222-2222-2222-2222-2222222222220PossibleMitigationsfalsePlease use query parameters to protect against injection attacks.Refer : <a href="https://aka.ms/tmt-th197 ">https://aka.ms/tmt-th197 </a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can run malicious Kusto queries on {target.Name} if user provided input is used in non-parameterised queriesfalseIAn adversary can gain access to unencrypted sensitive data stored in {target.Name} clustertarget is 'SE.P.TMCore.ADE'TH198UserThreatDescriptionfalseAn adversary can gain access to unencrypted sensitive data stored in {target.Name} cluster22222222-2222-2222-2222-2222222222220PossibleMitigationsfalseEnabling encryption at rest on your cluster provides data protection for stored data (at rest). Refer : <a href="https://aka.ms/tmt-th198 ">https://aka.ms/tmt-th198 </a>22222222-2222-2222-2222-2222222222222PriorityfalseMedium22222222-2222-2222-2222-2222222222221SDLPhasefalseImplementation22222222-2222-2222-2222-2222222222221An adversary can gain access to unencrypted sensitive data stored in {target.Name} cluster
\ No newline at end of file
diff --git a/slp_mtmt/tests/resources/otm/MTMT_MVP.otm b/slp_mtmt/tests/resources/otm/MTMT_MVP.otm
index 8909fa4a..b244d6e5 100644
--- a/slp_mtmt/tests/resources/otm/MTMT_MVP.otm
+++ b/slp_mtmt/tests/resources/otm/MTMT_MVP.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "Example Project",
"id": "example-project"
@@ -22,7 +22,8 @@
],
"trustZones": [
{
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "75605184-4ca0-43be-ba4c-5fa5ad15e367",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
@@ -48,7 +49,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "24cdf4da-ac7f-4a35-bab0-29256d4169bf",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -80,7 +82,7 @@
"name": "Accounting PostgreSQL",
"type": "CD-MICROSOFT-AZURE-DB-POSTGRESQL",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "24cdf4da-ac7f-4a35-bab0-29256d4169bf"
},
"attributes": {
"Name": "Accounting PostgreSQL",
@@ -141,7 +143,7 @@
"name": "Mobile Client",
"type": "android-device-client",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "75605184-4ca0-43be-ba4c-5fa5ad15e367"
},
"attributes": {
"Name": "Mobile Client",
@@ -191,7 +193,7 @@
"name": "Public API v2",
"type": "web-service",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "24cdf4da-ac7f-4a35-bab0-29256d4169bf"
},
"attributes": {
"Name": "Public API v2",
@@ -533,7 +535,7 @@
"name": "Azure File Storage",
"type": "azure-storage",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "24cdf4da-ac7f-4a35-bab0-29256d4169bf"
},
"attributes": {
"Name": "Azure File Storage",
diff --git a/slp_mtmt/tests/resources/otm/missing_coordinates.otm b/slp_mtmt/tests/resources/otm/missing_coordinates.otm
index 209f95ff..64c0dc3a 100644
--- a/slp_mtmt/tests/resources/otm/missing_coordinates.otm
+++ b/slp_mtmt/tests/resources/otm/missing_coordinates.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "Example Project",
"id": "example-project"
@@ -22,7 +22,8 @@
],
"trustZones": [
{
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "75605184-4ca0-43be-ba4c-5fa5ad15e367",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
@@ -33,7 +34,8 @@
}
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "24cdf4da-ac7f-4a35-bab0-29256d4169bf",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -44,7 +46,8 @@
}
},
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "185f1c6f-3879-464c-89c9-dc6f0b0c2b21",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Default trustzone",
"risk": {
"trustRating": 10
@@ -57,7 +60,7 @@
"name": "Accounting PostgreSQL",
"type": "CD-MICROSOFT-AZURE-DB-POSTGRESQL",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "24cdf4da-ac7f-4a35-bab0-29256d4169bf"
},
"attributes": {
"Name": "Accounting PostgreSQL",
@@ -103,7 +106,7 @@
"name": "Mobile Client",
"type": "android-device-client",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "185f1c6f-3879-464c-89c9-dc6f0b0c2b21"
},
"attributes": {
"Name": "Mobile Client",
@@ -138,7 +141,7 @@
"name": "Public API v2",
"type": "web-service",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "24cdf4da-ac7f-4a35-bab0-29256d4169bf"
},
"attributes": {
"Name": "Public API v2",
@@ -465,7 +468,7 @@
"name": "Azure File Storage",
"type": "azure-storage",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "24cdf4da-ac7f-4a35-bab0-29256d4169bf"
},
"attributes": {
"Name": "Azure File Storage",
diff --git a/slp_mtmt/tests/resources/otm/nested_tz.otm b/slp_mtmt/tests/resources/otm/nested_tz.otm
index d9517ff3..c4fe4a12 100644
--- a/slp_mtmt/tests/resources/otm/nested_tz.otm
+++ b/slp_mtmt/tests/resources/otm/nested_tz.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"id": "example-project",
"name": "Example Project"
@@ -38,7 +38,7 @@
"id": "a38c22eb-fee8-4abd-b92c-457d6822ee86",
"name": "Customer web client",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "26e6fdb8-013f-4d59-bb11-208eec4d6bc9"
},
"type": "web-client"
},
@@ -59,7 +59,7 @@
"id": "eef31b72-49b3-4d5f-9452-7ae178344c6b",
"name": "Main Application",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "351f4038-244d-4de5-bfa0-00c17f2a1fa2"
},
"type": "web-application-server-side"
},
@@ -80,7 +80,7 @@
"id": "4820ec3a-9841-4baf-a38c-2fa596014274",
"name": "Sandbox Mongo",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "9cbb5581-99cc-463b-a77a-c0dcae3b96d7"
},
"type": "other-nosql-key-value-store"
},
@@ -101,7 +101,7 @@
"id": "9668ae2e-403f-4182-8c4c-d83948ffc31b",
"name": "Production Mongo",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "351f4038-244d-4de5-bfa0-00c17f2a1fa2"
},
"type": "other-nosql-key-value-store"
}
@@ -112,7 +112,8 @@
"Dataflow Order": "0",
"Name": "Generic Trust Border Boundary"
},
- "id": "6376d53e-6461-412b-8e04-7b3fe2b397de",
+ "id": "351f4038-244d-4de5-bfa0-00c17f2a1fa2",
+ "type": "6376d53e-6461-412b-8e04-7b3fe2b397de",
"name": "Generic Trust Border Boundary",
"risk": {
"trustRating": 10
@@ -123,13 +124,14 @@
"Dataflow Order": "0",
"Name": "Sandbox environment"
},
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "9cbb5581-99cc-463b-a77a-c0dcae3b96d7",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Sandbox environment",
"risk": {
"trustRating": 10
},
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "351f4038-244d-4de5-bfa0-00c17f2a1fa2"
}
},
{
@@ -139,7 +141,8 @@
"Configurable Attributes": {},
"Internet Boundary": {}
},
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "26e6fdb8-013f-4d59-bb11-208eec4d6bc9",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet Boundary",
"risk": {
"trustRating": 10
diff --git a/slp_mtmt/tests/resources/otm/nested_tz_line.otm b/slp_mtmt/tests/resources/otm/nested_tz_line.otm
index c490b195..e83c9e2e 100644
--- a/slp_mtmt/tests/resources/otm/nested_tz_line.otm
+++ b/slp_mtmt/tests/resources/otm/nested_tz_line.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"id": "example-project",
"name": "Example Project"
@@ -38,7 +38,7 @@
"id": "a38c22eb-fee8-4abd-b92c-457d6822ee86",
"name": "Customer web client",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "26e6fdb8-013f-4d59-bb11-208eec4d6bc9"
},
"type": "web-client"
},
@@ -59,7 +59,7 @@
"id": "eef31b72-49b3-4d5f-9452-7ae178344c6b",
"name": "Main Application",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "e3ddc2c6-83d5-4363-9acb-52655317dafd"
},
"type": "web-application-server-side"
},
@@ -80,7 +80,7 @@
"id": "4820ec3a-9841-4baf-a38c-2fa596014274",
"name": "Sandbox Mongo",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "9cbb5581-99cc-463b-a77a-c0dcae3b96d7"
},
"type": "other-nosql-key-value-store"
},
@@ -101,7 +101,7 @@
"id": "9668ae2e-403f-4182-8c4c-d83948ffc31b",
"name": "Production Mongo",
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "e3ddc2c6-83d5-4363-9acb-52655317dafd"
},
"type": "other-nosql-key-value-store"
}
@@ -112,13 +112,14 @@
"Dataflow Order": "0",
"Name": "Sandbox environment"
},
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "9cbb5581-99cc-463b-a77a-c0dcae3b96d7",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Sandbox environment",
"risk": {
"trustRating": 10
},
"parent": {
- "trustZone": "6376d53e-6461-412b-8e04-7b3fe2b397de"
+ "trustZone": "e3ddc2c6-83d5-4363-9acb-52655317dafd"
}
},
{
@@ -128,7 +129,8 @@
"Configurable Attributes": {},
"Internet Boundary": {}
},
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "26e6fdb8-013f-4d59-bb11-208eec4d6bc9",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet Boundary",
"risk": {
"trustRating": 10
@@ -139,7 +141,8 @@
"Generic Trust Line Boundary": {},
"Name": "Generic Trust Line Boundary"
},
- "id": "6376d53e-6461-412b-8e04-7b3fe2b397de",
+ "id": "e3ddc2c6-83d5-4363-9acb-52655317dafd",
+ "type": "6376d53e-6461-412b-8e04-7b3fe2b397de",
"name": "Generic Trust Line Boundary",
"risk": {
"trustRating": 10
diff --git a/slp_mtmt/tests/resources/otm/test_model_tm7.otm b/slp_mtmt/tests/resources/otm/test_model_tm7.otm
new file mode 100644
index 00000000..725110da
--- /dev/null
+++ b/slp_mtmt/tests/resources/otm/test_model_tm7.otm
@@ -0,0 +1,4918 @@
+{
+ "ThreatModel": {
+ "DrawingSurfaceList": {
+ "DrawingSurfaceModel": {
+ "GenericTypeId": "DRAWINGSURFACE",
+ "Guid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Diagram",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Diagram 1"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "DRAWINGSURFACE",
+ "Borders": {
+ "KeyValueOfguidanyType": [
+ {
+ "Key": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "Value": {
+ "GenericTypeId": "c8bba3ee-9cdc-426f-89dd-0cea09ba72e8",
+ "Guid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "MCU",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "My_MCU"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "OS",
+ "Name": "eaf886ea-a784-48df-ace5-86adca8957c6",
+ "Value": {
+ "string": [
+ "Bare Metal",
+ "FreeRTOS, Zephyr, etc",
+ "Embedded Linux",
+ "Linux"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic EE_Component",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "b3cfab57-1767-4411-b9c1-b9822959a57b",
+ "Height": "100",
+ "Left": "145",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "57",
+ "Width": "100"
+ },
+ "attrib": {
+ "Id": "i2",
+ "type": "StencilRectangle"
+ }
+ },
+ {
+ "Key": "436f7fa6-8555-4b73-9346-679874c650e7",
+ "Value": {
+ "GenericTypeId": "c8bba3ee-9cdc-426f-89dd-0cea09ba72e8",
+ "Guid": "436f7fa6-8555-4b73-9346-679874c650e7",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Memory",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "SD card"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "ROM or RAM",
+ "Name": "bc1b2b38-014a-4ac5-9d26-6b916ca755de",
+ "Value": {
+ "string": [
+ "ROM",
+ "RAM"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "removable",
+ "Name": "cc2d3b4c-f68e-42a7-b1f6-56445f40a624",
+ "Value": {
+ "string": [
+ "no",
+ "yes"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "1"
+ },
+ {
+ "DisplayName": "As Generic EE_Component",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "c5ea0d16-afea-44aa-9d88-6a930d2a58b2",
+ "Height": "100",
+ "Left": "119",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "227",
+ "Width": "100"
+ },
+ "attrib": {
+ "Id": "i3",
+ "type": "StencilRectangle"
+ }
+ },
+ {
+ "Key": "241852d1-a5a7-4756-86d5-b400703b6614",
+ "Value": {
+ "GenericTypeId": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "Guid": "241852d1-a5a7-4756-86d5-b400703b6614",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Device Physical Boundary",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Device Physical Boundary"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "As Boundaries",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "c59243b4-236c-4159-a42d-6fee44fa4c37",
+ "Height": "329",
+ "Left": "23",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "17",
+ "Width": "465"
+ },
+ "attrib": {
+ "Id": "i4",
+ "type": "BorderBoundary"
+ }
+ },
+ {
+ "Key": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Value": {
+ "GenericTypeId": "8db306cc-f8f5-4c07-8be2-48e2a0af38aa",
+ "Guid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Phone",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Phone"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Mobile OS",
+ "Name": "cce9f994-89ab-4106-b41c-4348921ddd80",
+ "Value": {
+ "string": [
+ "Android",
+ "iOS"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Systems",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "1a0bf3c5-9314-4208-b88e-64690c6d4c1b",
+ "Height": "100",
+ "Left": "602",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "235",
+ "Width": "100"
+ },
+ "attrib": {
+ "Id": "i5",
+ "type": "StencilRectangle"
+ }
+ },
+ {
+ "Key": "26418f1e-db19-41ad-9157-1ea2cebbaec6",
+ "Value": {
+ "GenericTypeId": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "Guid": "26418f1e-db19-41ad-9157-1ea2cebbaec6",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "SoC Boundary",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "SoC Boundary"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "As Boundaries",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "eed0723d-a3a3-4d8d-bf47-e5472302e622",
+ "Height": "171",
+ "Left": "65",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "32",
+ "Width": "240"
+ },
+ "attrib": {
+ "Id": "i6",
+ "type": "BorderBoundary"
+ }
+ },
+ {
+ "Key": "8688c03a-1943-420c-8411-038d652220ca",
+ "Value": {
+ "GenericTypeId": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "Guid": "8688c03a-1943-420c-8411-038d652220ca",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Local Network Boundary",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Local Network Boundary"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "As Boundaries",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "efeb9e28-179c-4803-a2da-6159ebf3e5cd",
+ "Height": "355",
+ "Left": "10",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "10",
+ "Width": "707"
+ },
+ "attrib": {
+ "Id": "i7",
+ "type": "BorderBoundary"
+ }
+ },
+ {
+ "Key": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "Value": {
+ "GenericTypeId": "8db306cc-f8f5-4c07-8be2-48e2a0af38aa",
+ "Guid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Server",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Server"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "As Generic Systems",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "4693ec5d-768e-4c77-9168-23bd2c2e5dfe",
+ "Height": "100",
+ "Left": "994",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "212",
+ "Width": "100"
+ },
+ "attrib": {
+ "Id": "i8",
+ "type": "StencilRectangle"
+ }
+ },
+ {
+ "Key": "086f799f-e4f4-4c70-8f82-e1fd1212e22b",
+ "Value": {
+ "GenericTypeId": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "Guid": "086f799f-e4f4-4c70-8f82-e1fd1212e22b",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Company Internet Boundary",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Company Internet Boundary"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "As Boundaries",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "3530bb86-0864-4c98-8391-cab381338648",
+ "Height": "188",
+ "Left": "938",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "171",
+ "Width": "231"
+ },
+ "attrib": {
+ "Id": "i9",
+ "type": "BorderBoundary"
+ }
+ },
+ {
+ "Key": "ca3c7bc2-377f-471f-a45f-a78d511a4184",
+ "Value": {
+ "GenericTypeId": "dd163aaf-713b-46df-bc66-4ace6c033067",
+ "Guid": "ca3c7bc2-377f-471f-a45f-a78d511a4184",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Attacker",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Attacker"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Threat Agent",
+ "Name": "f43dce17-9676-45a7-9258-09b02540cbe2",
+ "Value": {
+ "string": [
+ "User Accidental Discovery",
+ "Curious Attacker",
+ "Insider Attacker"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "1"
+ },
+ {
+ "DisplayName": "As Generic Interaction",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "02e7e0f5-d5d8-4281-88eb-d15810408eae",
+ "Height": "100",
+ "Left": "369",
+ "StrokeDashArray": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "StrokeThickness": "1",
+ "Top": "43",
+ "Width": "100"
+ },
+ "attrib": {
+ "Id": "i10",
+ "type": "StencilEllipse"
+ }
+ }
+ ]
+ },
+ "Header": "Diagram 1",
+ "Lines": {
+ "KeyValueOfguidanyType": [
+ {
+ "Key": "8ee98acb-b1b9-44b4-9bdb-ee129fdb072b",
+ "Value": {
+ "GenericTypeId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Guid": "8ee98acb-b1b9-44b4-9bdb-ee129fdb072b",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Local Digital Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "SD SPI Out"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "access vector",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Value": {
+ "string": "Physical"
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "has authentication",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Value": {
+ "string": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "1a070361-9847-4ab6-9ca6-9e07036eb7fa",
+ "HandleX": "121",
+ "HandleY": "189",
+ "PortSource": "South",
+ "PortTarget": "North",
+ "SourceGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "SourceX": "195",
+ "SourceY": "152",
+ "TargetGuid": "436f7fa6-8555-4b73-9346-679874c650e7",
+ "TargetX": "169",
+ "TargetY": "232"
+ },
+ "attrib": {
+ "Id": "i11",
+ "type": "Connector"
+ }
+ },
+ {
+ "Key": "12acd5a9-0e2d-4833-a28a-bf7ee8e694ce",
+ "Value": {
+ "GenericTypeId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Guid": "12acd5a9-0e2d-4833-a28a-bf7ee8e694ce",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Local Digital Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "SD SPI In"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "access vector",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Value": {
+ "string": "Physical"
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "has authentication",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Value": {
+ "string": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "1a070361-9847-4ab6-9ca6-9e07036eb7fa",
+ "HandleX": "257",
+ "HandleY": "223",
+ "PortSource": "North",
+ "PortTarget": "South",
+ "SourceGuid": "436f7fa6-8555-4b73-9346-679874c650e7",
+ "SourceX": "169",
+ "SourceY": "232",
+ "TargetGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "TargetX": "195",
+ "TargetY": "152"
+ },
+ "attrib": {
+ "Id": "i12",
+ "type": "Connector"
+ }
+ },
+ {
+ "Key": "4ecea2e4-18da-45d9-9373-a0112766af32",
+ "Value": {
+ "GenericTypeId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Guid": "4ecea2e4-18da-45d9-9373-a0112766af32",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Wireless Networks",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "HTTPS Out"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "access vector",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Value": {
+ "string": "Network"
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "has authentication",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Value": {
+ "string": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "1"
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "8db54467-c913-4deb-b168-052a600461cf",
+ "HandleX": "793",
+ "HandleY": "307",
+ "PortSource": "East",
+ "PortTarget": "West",
+ "SourceGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "SourceX": "697",
+ "SourceY": "285",
+ "TargetGuid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "TargetX": "999",
+ "TargetY": "262"
+ },
+ "attrib": {
+ "Id": "i13",
+ "type": "Connector"
+ }
+ },
+ {
+ "Key": "12cd91c3-e9d9-4523-aa7b-3aab3585249f",
+ "Value": {
+ "GenericTypeId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Guid": "12cd91c3-e9d9-4523-aa7b-3aab3585249f",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Wireless Networks",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "HTTPS In"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "access vector",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Value": {
+ "string": "Network"
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "has authentication",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Value": {
+ "string": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "1"
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "8db54467-c913-4deb-b168-052a600461cf",
+ "HandleX": "792",
+ "HandleY": "203",
+ "PortSource": "West",
+ "PortTarget": "NorthEast",
+ "SourceGuid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "SourceX": "999",
+ "SourceY": "262",
+ "TargetGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "TargetX": "697",
+ "TargetY": "240"
+ },
+ "attrib": {
+ "Id": "i14",
+ "type": "Connector"
+ }
+ },
+ {
+ "Key": "7760688a-3514-4d51-9b4e-8f4e336b2c33",
+ "Value": {
+ "GenericTypeId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Guid": "7760688a-3514-4d51-9b4e-8f4e336b2c33",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Local Wireless",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "BLE Out"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "access vector",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Value": {
+ "string": "Local Area Network"
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "has authentication",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Value": {
+ "string": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "e9e4318e-08e5-48fb-b14f-df22b8db9e82",
+ "HandleX": "425",
+ "HandleY": "206",
+ "PortSource": "SouthEast",
+ "PortTarget": "NorthWest",
+ "SourceGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "SourceX": "240",
+ "SourceY": "152",
+ "TargetGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "TargetX": "607",
+ "TargetY": "240"
+ },
+ "attrib": {
+ "Id": "i15",
+ "type": "Connector"
+ }
+ },
+ {
+ "Key": "30eea514-cce9-4a5b-a8ff-a2301097b394",
+ "Value": {
+ "GenericTypeId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Guid": "30eea514-cce9-4a5b-a8ff-a2301097b394",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Local Wireless",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "BLE In"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "access vector",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Value": {
+ "string": "Local Area Network"
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "has authentication",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Value": {
+ "string": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "e9e4318e-08e5-48fb-b14f-df22b8db9e82",
+ "HandleX": "420",
+ "HandleY": "294",
+ "PortSource": "West",
+ "PortTarget": "SouthEast",
+ "SourceGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "SourceX": "607",
+ "SourceY": "285",
+ "TargetGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "TargetX": "240",
+ "TargetY": "152"
+ },
+ "attrib": {
+ "Id": "i16",
+ "type": "Connector"
+ }
+ },
+ {
+ "Key": "2623e7d0-e277-46ad-8d13-6e47d10e3d35",
+ "Value": {
+ "GenericTypeId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Guid": "2623e7d0-e277-46ad-8d13-6e47d10e3d35",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Local Digital Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Attacker Out"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "access vector",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Value": {
+ "string": "Physical"
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "has authentication",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Value": {
+ "string": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "1a070361-9847-4ab6-9ca6-9e07036eb7fa",
+ "HandleX": "341",
+ "HandleY": "128",
+ "PortSource": "West",
+ "PortTarget": "East",
+ "SourceGuid": "ca3c7bc2-377f-471f-a45f-a78d511a4184",
+ "SourceX": "374",
+ "SourceY": "93",
+ "TargetGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "TargetX": "240",
+ "TargetY": "107"
+ },
+ "attrib": {
+ "Id": "i17",
+ "type": "Connector"
+ }
+ },
+ {
+ "Key": "bd0b560e-339f-4b24-9e5d-1c3c50b4c6bc",
+ "Value": {
+ "GenericTypeId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Guid": "bd0b560e-339f-4b24-9e5d-1c3c50b4c6bc",
+ "Properties": {
+ "anyType": [
+ {
+ "DisplayName": "Local Digital Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "Name",
+ "Name": null,
+ "Value": {
+ "text": "Attacker In"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Dataflow Order",
+ "Name": "15ccd509-98eb-49ad-b9c2-b4a2926d1780",
+ "Value": {
+ "text": "0"
+ },
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Out Of Scope",
+ "Name": "71f3d9aa-b8ef-4e54-8126-607a1d903103",
+ "Value": {
+ "text": "false"
+ },
+ "attrib": {
+ "type": "c:boolean"
+ }
+ },
+ {
+ "DisplayName": "Reason For Out Of Scope",
+ "Name": "752473b6-52d4-4776-9a24-202153f7d579",
+ "Value": {},
+ "attrib": {
+ "type": "c:string"
+ }
+ },
+ {
+ "DisplayName": "Configurable Attributes",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "access vector",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Value": {
+ "string": "Physical"
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ },
+ {
+ "DisplayName": "As Generic Communication",
+ "Name": null,
+ "Value": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ {
+ "DisplayName": "has authentication",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Value": {
+ "string": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "attrib": {
+ "type": "a:ArrayOfstring"
+ },
+ "SelectedIndex": "0"
+ }
+ ],
+ "attrib": [
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:BooleanDisplayAttribute"
+ },
+ {
+ "type": "b:StringDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ },
+ {
+ "type": "b:HeaderDisplayAttribute"
+ },
+ {
+ "type": "b:ListDisplayAttribute"
+ }
+ ]
+ },
+ "TypeId": "1a070361-9847-4ab6-9ca6-9e07036eb7fa",
+ "HandleX": "319",
+ "HandleY": "78",
+ "PortSource": "East",
+ "PortTarget": "West",
+ "SourceGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "SourceX": "240",
+ "SourceY": "107",
+ "TargetGuid": "ca3c7bc2-377f-471f-a45f-a78d511a4184",
+ "TargetX": "374",
+ "TargetY": "93"
+ },
+ "attrib": {
+ "Id": "i18",
+ "type": "Connector"
+ }
+ }
+ ]
+ },
+ "Zoom": "1"
+ },
+ "attrib": {
+ "Id": "i1"
+ }
+ },
+ "MetaInformation": {
+ "Assumptions": "None",
+ "Contributors": "Tyler M",
+ "ExternalDependencies": "None",
+ "HighLevelSystemDescription": "Test model to test out different electrical components",
+ "Owner": "Tyler M",
+ "Reviewer": "Tyler M",
+ "ThreatModelName": "TestSystem"
+ },
+ "Notes": {
+ "Note": [
+ {
+ "AddedBy": "LAPTOP-HETV38CP\\tmart",
+ "Date": "2021-01-16T19:17:33.5242897-07:00",
+ "Id": "1",
+ "Message": "Basic Level 0 DFD"
+ },
+ {
+ "AddedBy": "LAPTOP-HETV38CP\\tmart",
+ "Date": "2021-01-16T19:17:45.2153705-07:00",
+ "Id": "2",
+ "Message": "THIS IS MY NOTE2"
+ },
+ {
+ "AddedBy": "TMTool",
+ "Date": "2021-05-03T18:24:15.8278080-07:00",
+ "Id": "3",
+ "Message": "METADATA: {'CR': 'Low', 'IR': 'Medium', 'AR': 'High', 'TD': 'Medium', 'CWE': 0, 'CAPEC': 0}"
+ }
+ ]
+ },
+ "ThreatInstances": {
+ "KeyValueOfstringThreatpc_P0_PhOB": [
+ {
+ "Key": "19c4f63f-dd2f-4b71-bca2-46937ce7178b5b0bab1d-89c8-499d-b9aa-a5d19652aa5f4ecea2e4-18da-45d9-9373-a0112766af32158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "Value": {
+ "ChangedBy": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "4ecea2e4-18da-45d9-9373-a0112766af32",
+ "Id": "10",
+ "InteractionKey": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f:4ecea2e4-18da-45d9-9373-a0112766af32:158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "InteractionString": {},
+ "ModifiedAt": "0001-01-01T00:00:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Man-in-the-middle Attack"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Tampering"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "In a MITM attack, the attacker intercepts data between 2 parties. The attacker can view and modify the data. Examples are: ARP Cache Poisoning, DNS Cache Poisoning, HTTPS Spoofing, Wi-Fi Eavesdropping, or Session Hijacking. This attack could look like: Communication Channel Manipulation, Exploiting Incorrectly Configured SSL, Client-Server Protocol Manipulation, etc."
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "HTTPS Out"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Medium"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "Cert pinning, certificate validation, hostname validation, preventing connections to unknown or non-trusted proxies"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "<a href="https://capec.mitre.org/data/definitions/216">https://capec.mitre.org/data/definitions/216</a> ; <a href="https://capec.mitre.org/data/definitions/220">https://capec.mitre.org/data/definitions/220</a> ; <a href="https://capec.mitre.org/data/definitions/757">https://capec.mitre.org/data/definitions/757</a>"
+ }
+ ]
+ },
+ "SourceGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "Title": {},
+ "TypeId": "19c4f63f-dd2f-4b71-bca2-46937ce7178b",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd294a595a-174d-452c-b38d-9c434f7f5bac7760688a-3514-4d51-9b4e-8f4e336b2c335b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Value": {
+ "ChangedBy": "LAPTOP-HETV38CP\\tmart",
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "7760688a-3514-4d51-9b4e-8f4e336b2c33",
+ "Id": "1",
+ "InteractionKey": "294a595a-174d-452c-b38d-9c434f7f5bac:7760688a-3514-4d51-9b4e-8f4e336b2c33:5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "InteractionString": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "ModifiedAt": "2021-02-18T13:51:48.7662941-07:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Attacker sniffs a wireless communication"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Information Disclosure"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "sniffing (or eavesdropping) is when an attacker passively gathers the contents of digital communication (ex: wireshark packet sniffing). Examples are sniffing attacks, Session Sidejacking, and interception"
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "BLE Out"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Low"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "use encryption. protocol and app layer encryption for best defense in depth"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "&amp;amp;lt;a href=&amp;amp;quot;https://capec.mitre.org/data/definitions/102&amp;amp;quot;&amp;amp;gt;CWE-102&amp;amp;lt;/a&amp;amp;gt; ; &amp;amp;lt;a href=&amp;amp;quot;http://cwe.mitre.org/data/definitions/294&amp;amp;quot;&amp;amp;gt;CWE-294&amp;amp;lt;/a&amp;amp;gt; ; &amp;amp;lt;a href=&amp;amp;quot;http://cwe.mitre.org/data/definitions/614&amp;amp;quot;&amp;amp;gt;CWE-614&amp;amp;lt;/a&amp;amp;gt; &amp;lt;a href=&amp;quot;http://cwe.mitre.org/data/definitions/319&amp;quot;&amp;gt;CWE-319&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;http://cwe.mitre.org/data/definitions/523&amp;quot;&amp;gt;CWE-523&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;http://cwe.mitre.org/data/definitions/522&amp;quot;&amp;gt;CWE-522&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;https://capec.mitre.org/data/definitions/157&amp;quot;&amp;gt;https://capec.mitre.org/data/definitions/157&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;http://cwe.mitre.org/data/definitions/311&amp;quot;&amp;gt;CWE-311&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;https://capec.mitre.org/data/definitions/117&amp;quot;&amp;gt;https://capec.mitre.org/data/definitions/117&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;https://cwe.mitre.org/data/definitions/299&amp;quot;&amp;gt;CWE-299&amp;lt;/a&amp;gt;"
+ }
+ ]
+ },
+ "SourceGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Title": {},
+ "TypeId": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "19c4f63f-dd2f-4b71-bca2-46937ce7178b158ab95e-f8d0-48d7-84f8-4c57ed40a9f412cd91c3-e9d9-4523-aa7b-3aab3585249f5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Value": {
+ "ChangedBy": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "12cd91c3-e9d9-4523-aa7b-3aab3585249f",
+ "Id": "2",
+ "InteractionKey": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4:12cd91c3-e9d9-4523-aa7b-3aab3585249f:5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "InteractionString": {},
+ "ModifiedAt": "0001-01-01T00:00:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Man-in-the-middle Attack"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Tampering"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "In a MITM attack, the attacker intercepts data between 2 parties. The attacker can view and modify the data. Examples are: ARP Cache Poisoning, DNS Cache Poisoning, HTTPS Spoofing, Wi-Fi Eavesdropping, or Session Hijacking. This attack could look like: Communication Channel Manipulation, Exploiting Incorrectly Configured SSL, Client-Server Protocol Manipulation, etc."
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "HTTPS In"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Medium"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "Cert pinning, certificate validation, hostname validation, preventing connections to unknown or non-trusted proxies"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "<a href="https://capec.mitre.org/data/definitions/216">https://capec.mitre.org/data/definitions/216</a> ; <a href="https://capec.mitre.org/data/definitions/220">https://capec.mitre.org/data/definitions/220</a> ; <a href="https://capec.mitre.org/data/definitions/757">https://capec.mitre.org/data/definitions/757</a>"
+ }
+ ]
+ },
+ "SourceGuid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Title": {},
+ "TypeId": "19c4f63f-dd2f-4b71-bca2-46937ce7178b",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "8f2d5f9d-a98e-46aa-bd2e-43b2e344264c158ab95e-f8d0-48d7-84f8-4c57ed40a9f412cd91c3-e9d9-4523-aa7b-3aab3585249f5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Value": {
+ "ChangedBy": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "12cd91c3-e9d9-4523-aa7b-3aab3585249f",
+ "Id": "3",
+ "InteractionKey": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4:12cd91c3-e9d9-4523-aa7b-3aab3585249f:5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "InteractionString": {},
+ "ModifiedAt": "0001-01-01T00:00:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Replay Attack"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Spoofing"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "For replay (or playback) attacks, once authentication data is exposed, an attacker can replay and ultimately impersonate a user/device. Make sure to have significant authentication mechinisims. Examples of this attack are: Reusing Session IDs (aka Session Replay) and Principal Spoofing"
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "HTTPS In"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Medium"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "Limited session tokens/keys, authentication timeouts, denyList and short expiration time for tokens, one-time passwords"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "&lt;a href=&quot;https://capec.mitre.org/data/definitions/60&quot;&gt;https://capec.mitre.org/data/definitions/60&lt;/a&gt; &lt;a href=&quot;https://capec.mitre.org/data/definitions/151&quot;&gt;https://capec.mitre.org/data/definitions/151&lt;/a&gt; &lt;a href=&quot;https://capec.mitre.org/data/definitions/195&quot;&gt;https://capec.mitre.org/data/definitions/195&lt;/a&gt;"
+ }
+ ]
+ },
+ "SourceGuid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Title": {},
+ "TypeId": "8f2d5f9d-a98e-46aa-bd2e-43b2e344264c",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd5b0bab1d-89c8-499d-b9aa-a5d19652aa5f30eea514-cce9-4a5b-a8ff-a2301097b394294a595a-174d-452c-b38d-9c434f7f5bac",
+ "Value": {
+ "ChangedBy": "LAPTOP-HETV38CP\\tmart",
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "30eea514-cce9-4a5b-a8ff-a2301097b394",
+ "Id": "4",
+ "InteractionKey": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f:30eea514-cce9-4a5b-a8ff-a2301097b394:294a595a-174d-452c-b38d-9c434f7f5bac",
+ "InteractionString": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "ModifiedAt": "2021-02-18T13:58:52.0332183-07:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Attacker sniffs a wireless communication"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Information Disclosure"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "sniffing (or eavesdropping) is when an attacker passively gathers the contents of digital communication (ex: wireshark packet sniffing). Examples are sniffing attacks, Session Sidejacking, and interception"
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "BLE In"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Low"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "use encryption. protocol and app layer encryption for best defense in depth"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "&amp;amp;lt;a href=&amp;amp;quot;https://capec.mitre.org/data/definitions/102&amp;amp;quot;&amp;amp;gt;CWE-102&amp;amp;lt;/a&amp;amp;gt; ; &amp;amp;lt;a href=&amp;amp;quot;http://cwe.mitre.org/data/definitions/294&amp;amp;quot;&amp;amp;gt;CWE-294&amp;amp;lt;/a&amp;amp;gt; ; &amp;amp;lt;a href=&amp;amp;quot;http://cwe.mitre.org/data/definitions/614&amp;amp;quot;&amp;amp;gt;CWE-614&amp;amp;lt;/a&amp;amp;gt; &amp;lt;a href=&amp;quot;http://cwe.mitre.org/data/definitions/319&amp;quot;&amp;gt;CWE-319&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;http://cwe.mitre.org/data/definitions/523&amp;quot;&amp;gt;CWE-523&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;http://cwe.mitre.org/data/definitions/522&amp;quot;&amp;gt;CWE-522&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;https://capec.mitre.org/data/definitions/157&amp;quot;&amp;gt;https://capec.mitre.org/data/definitions/157&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;http://cwe.mitre.org/data/definitions/311&amp;quot;&amp;gt;CWE-311&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;https://capec.mitre.org/data/definitions/117&amp;quot;&amp;gt;https://capec.mitre.org/data/definitions/117&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;https://cwe.mitre.org/data/definitions/299&amp;quot;&amp;gt;CWE-299&amp;lt;/a&amp;gt;"
+ }
+ ]
+ },
+ "SourceGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "Title": {},
+ "TypeId": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "8f2d5f9d-a98e-46aa-bd2e-43b2e344264c5b0bab1d-89c8-499d-b9aa-a5d19652aa5f4ecea2e4-18da-45d9-9373-a0112766af32158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "Value": {
+ "ChangedBy": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "4ecea2e4-18da-45d9-9373-a0112766af32",
+ "Id": "5",
+ "InteractionKey": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f:4ecea2e4-18da-45d9-9373-a0112766af32:158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "InteractionString": {},
+ "ModifiedAt": "0001-01-01T00:00:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Replay Attack"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Spoofing"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "For replay (or playback) attacks, once authentication data is exposed, an attacker can replay and ultimately impersonate a user/device. Make sure to have significant authentication mechinisims. Examples of this attack are: Reusing Session IDs (aka Session Replay) and Principal Spoofing"
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "HTTPS Out"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Medium"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "Limited session tokens/keys, authentication timeouts, denyList and short expiration time for tokens, one-time passwords"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "&lt;a href=&quot;https://capec.mitre.org/data/definitions/60&quot;&gt;https://capec.mitre.org/data/definitions/60&lt;/a&gt; &lt;a href=&quot;https://capec.mitre.org/data/definitions/151&quot;&gt;https://capec.mitre.org/data/definitions/151&lt;/a&gt; &lt;a href=&quot;https://capec.mitre.org/data/definitions/195&quot;&gt;https://capec.mitre.org/data/definitions/195&lt;/a&gt;"
+ }
+ ]
+ },
+ "SourceGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "Title": {},
+ "TypeId": "8f2d5f9d-a98e-46aa-bd2e-43b2e344264c",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "19c4f63f-dd2f-4b71-bca2-46937ce7178b294a595a-174d-452c-b38d-9c434f7f5bac7760688a-3514-4d51-9b4e-8f4e336b2c335b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Value": {
+ "ChangedBy": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "7760688a-3514-4d51-9b4e-8f4e336b2c33",
+ "Id": "6",
+ "InteractionKey": "294a595a-174d-452c-b38d-9c434f7f5bac:7760688a-3514-4d51-9b4e-8f4e336b2c33:5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "InteractionString": {},
+ "ModifiedAt": "0001-01-01T00:00:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Man-in-the-middle Attack"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Tampering"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "In a MITM attack, the attacker intercepts data between 2 parties. The attacker can view and modify the data. Examples are: ARP Cache Poisoning, DNS Cache Poisoning, HTTPS Spoofing, Wi-Fi Eavesdropping, or Session Hijacking. This attack could look like: Communication Channel Manipulation, Exploiting Incorrectly Configured SSL, Client-Server Protocol Manipulation, etc."
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "BLE Out"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Medium"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "Cert pinning, certificate validation, hostname validation, preventing connections to unknown or non-trusted proxies"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "<a href="https://capec.mitre.org/data/definitions/216">https://capec.mitre.org/data/definitions/216</a> ; <a href="https://capec.mitre.org/data/definitions/220">https://capec.mitre.org/data/definitions/220</a> ; <a href="https://capec.mitre.org/data/definitions/757">https://capec.mitre.org/data/definitions/757</a>"
+ }
+ ]
+ },
+ "SourceGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Title": {},
+ "TypeId": "19c4f63f-dd2f-4b71-bca2-46937ce7178b",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "19c4f63f-dd2f-4b71-bca2-46937ce7178b5b0bab1d-89c8-499d-b9aa-a5d19652aa5f30eea514-cce9-4a5b-a8ff-a2301097b394294a595a-174d-452c-b38d-9c434f7f5bac",
+ "Value": {
+ "ChangedBy": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "30eea514-cce9-4a5b-a8ff-a2301097b394",
+ "Id": "7",
+ "InteractionKey": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f:30eea514-cce9-4a5b-a8ff-a2301097b394:294a595a-174d-452c-b38d-9c434f7f5bac",
+ "InteractionString": {},
+ "ModifiedAt": "0001-01-01T00:00:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Man-in-the-middle Attack"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Tampering"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "In a MITM attack, the attacker intercepts data between 2 parties. The attacker can view and modify the data. Examples are: ARP Cache Poisoning, DNS Cache Poisoning, HTTPS Spoofing, Wi-Fi Eavesdropping, or Session Hijacking. This attack could look like: Communication Channel Manipulation, Exploiting Incorrectly Configured SSL, Client-Server Protocol Manipulation, etc."
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "BLE In"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Medium"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "Cert pinning, certificate validation, hostname validation, preventing connections to unknown or non-trusted proxies"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "<a href="https://capec.mitre.org/data/definitions/216">https://capec.mitre.org/data/definitions/216</a> ; <a href="https://capec.mitre.org/data/definitions/220">https://capec.mitre.org/data/definitions/220</a> ; <a href="https://capec.mitre.org/data/definitions/757">https://capec.mitre.org/data/definitions/757</a>"
+ }
+ ]
+ },
+ "SourceGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "294a595a-174d-452c-b38d-9c434f7f5bac",
+ "Title": {},
+ "TypeId": "19c4f63f-dd2f-4b71-bca2-46937ce7178b",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd5b0bab1d-89c8-499d-b9aa-a5d19652aa5f4ecea2e4-18da-45d9-9373-a0112766af32158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "Value": {
+ "ChangedBy": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "4ecea2e4-18da-45d9-9373-a0112766af32",
+ "Id": "8",
+ "InteractionKey": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f:4ecea2e4-18da-45d9-9373-a0112766af32:158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "InteractionString": {},
+ "ModifiedAt": "0001-01-01T00:00:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Attacker sniffs a wireless communication"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Information Disclosure"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "sniffing (or eavesdropping) is when an attacker passively gathers the contents of digital communication (ex: wireshark packet sniffing). Examples are sniffing attacks, Session Sidejacking, and interception"
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "HTTPS Out"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Low"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "use encryption. protocol and app layer encryption for best defense in depth"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "<a href="https://capec.mitre.org/data/definitions/102">CWE-102</a> ; <a href="http://cwe.mitre.org/data/definitions/294">CWE-294</a> ; <a href="http://cwe.mitre.org/data/definitions/614">CWE-614</a>\n<a href="http://cwe.mitre.org/data/definitions/319">CWE-319</a>\n<a href="http://cwe.mitre.org/data/definitions/523">CWE-523</a>\n<a href="http://cwe.mitre.org/data/definitions/522">CWE-522</a>\n<a href="https://capec.mitre.org/data/definitions/157">https://capec.mitre.org/data/definitions/157</a>\n<a href="http://cwe.mitre.org/data/definitions/311">CWE-311</a>\n<a href="https://capec.mitre.org/data/definitions/117">https://capec.mitre.org/data/definitions/117</a>\n<a href="https://cwe.mitre.org/data/definitions/299">CWE-299</a>"
+ }
+ ]
+ },
+ "SourceGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "Title": {},
+ "TypeId": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ },
+ {
+ "Key": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd158ab95e-f8d0-48d7-84f8-4c57ed40a9f412cd91c3-e9d9-4523-aa7b-3aab3585249f5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Value": {
+ "ChangedBy": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "DrawingSurfaceGuid": "d81aacfd-973b-47f1-b424-dafd887d09c1",
+ "FlowGuid": "12cd91c3-e9d9-4523-aa7b-3aab3585249f",
+ "Id": "9",
+ "InteractionKey": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4:12cd91c3-e9d9-4523-aa7b-3aab3585249f:5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "InteractionString": {},
+ "ModifiedAt": "0001-01-01T00:00:00",
+ "Priority": "highest",
+ "Properties": {
+ "KeyValueOfstringstring": [
+ {
+ "Key": "Title",
+ "Value": "Attacker sniffs a wireless communication"
+ },
+ {
+ "Key": "UserThreatCategory",
+ "Value": "Information Disclosure"
+ },
+ {
+ "Key": "UserThreatShortDescription",
+ "Value": null
+ },
+ {
+ "Key": "UserThreatDescription",
+ "Value": "sniffing (or eavesdropping) is when an attacker passively gathers the contents of digital communication (ex: wireshark packet sniffing). Examples are sniffing attacks, Session Sidejacking, and interception"
+ },
+ {
+ "Key": "InteractionString",
+ "Value": "HTTPS In"
+ },
+ {
+ "Key": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Value": "None"
+ },
+ {
+ "Key": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Value": "None"
+ },
+ {
+ "Key": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Value": "None"
+ },
+ {
+ "Key": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Value": "Low"
+ },
+ {
+ "Key": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Value": "None"
+ },
+ {
+ "Key": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Value": "None"
+ },
+ {
+ "Key": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Value": "highest"
+ },
+ {
+ "Key": "Priority",
+ "Value": "highest"
+ },
+ {
+ "Key": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Value": "use encryption. protocol and app layer encryption for best defense in depth"
+ },
+ {
+ "Key": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Value": "<a href="https://capec.mitre.org/data/definitions/102">CWE-102</a> ; <a href="http://cwe.mitre.org/data/definitions/294">CWE-294</a> ; <a href="http://cwe.mitre.org/data/definitions/614">CWE-614</a>\n<a href="http://cwe.mitre.org/data/definitions/319">CWE-319</a>\n<a href="http://cwe.mitre.org/data/definitions/523">CWE-523</a>\n<a href="http://cwe.mitre.org/data/definitions/522">CWE-522</a>\n<a href="https://capec.mitre.org/data/definitions/157">https://capec.mitre.org/data/definitions/157</a>\n<a href="http://cwe.mitre.org/data/definitions/311">CWE-311</a>\n<a href="https://capec.mitre.org/data/definitions/117">https://capec.mitre.org/data/definitions/117</a>\n<a href="https://cwe.mitre.org/data/definitions/299">CWE-299</a>"
+ }
+ ]
+ },
+ "SourceGuid": "158ab95e-f8d0-48d7-84f8-4c57ed40a9f4",
+ "State": "AutoGenerated",
+ "StateInformation": {},
+ "TargetGuid": "5b0bab1d-89c8-499d-b9aa-a5d19652aa5f",
+ "Title": {},
+ "TypeId": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd",
+ "Upgraded": "false",
+ "UserThreatCategory": {},
+ "UserThreatDescription": {},
+ "UserThreatShortDescription": {},
+ "Wide": "false"
+ }
+ }
+ ]
+ },
+ "ThreatGenerationEnabled": "true",
+ "Validations": null,
+ "Version": "4.3",
+ "KnowledgeBase": {
+ "GenericElements": {
+ "ElementType": [
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": null,
+ "Hidden": "false",
+ "Id": "dd163aaf-713b-46df-bc66-4ace6c033067",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Generic Interaction",
+ "ParentId": "ROOT",
+ "Representation": "Ellipse",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": null,
+ "Hidden": "false",
+ "Id": "8db306cc-f8f5-4c07-8be2-48e2a0af38aa",
+ "ImageLocation": "Before label",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Generic Systems",
+ "ParentId": "ROOT",
+ "Representation": "Rectangle",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": null,
+ "Hidden": "false",
+ "Id": "23d5716c-9b10-4b40-a552-6c44c2317269",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Generic Datastore",
+ "ParentId": "ROOT",
+ "Representation": "ParallelLines",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": null,
+ "Hidden": "true",
+ "Id": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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C94EBBjnvFmiLwZnnNcJfc7XVgSMc41hCs7krhPbVb/ohsYwlDOhMZzijAL6Pq95r/sri2FszlCKYuh8bXnAmNo5s3bt2gEWAJs3bx5+8MEHp6vmcuzZs2fazp07B1gA3Hffff7VgwYWAWWTQVvlpBRgbGlg2ab1By8wgbGlmybanMnmAowvTDi0RdkEBByv2bLGB22VNwEBxtfNmdL1QluUpBRgfFkMU3KmY734WrWLTtUY+nKmagynOONwTT7geM2WSwxjciYvhqk4Q7HFsPSaXIGxtXPmzjvv7GcB8NBDDw09+eSTvao5Hy+//HLzueee62MBsH37dveqoQBFk8LzaEkpgI3cwPK51l55gQnYyN088byUZCGAHWvi4XnUTUBAO5rNtjjhebRNQAA7dXMmd93wPGpSCmAnL4Z1cKa1bnxUr6UvVgxdORMrhl9kzkyWvNf9mTFMzRmKHsPcawkFbNTOmS1btvSxANi1a9fAvn37Om1++umnDT6+9dZb3a+++movCwCnasEDtslBoielALY6AqtEXkdbYAK2OjZRSC65YgD22hIQkmQTENCeZjuLFyT6JiCAvbo507F+kI5rUOpRAHtmDOvkDOea+q5+ZZyJHcMvImcmW97r/iSGdXGGQv8d16DUKwO2aufMI488Mp0FwPPPPz/99ddfz24a9MEHH3y2hp988knj3Xff7X777bebLAD27t0b1bnAMklZgKgBFcCmGViR6AtMwKYZWF2iJqUAdvXE0Oeayp+ZGPI86iYggN26OWPGUPedKi/0GOpSB2d0SRXDPM7UkfdfBM7oc5wsea/706UOzuiSJIawWTtndu/ePW3//v3T33jjjWm//OUve95///3P1pEFwDvvvJMVAAcPHkx6S0FOTpssJUlABbBt+ku2wARs24qAJEkpgH1zQ0/tz0zOJJuAAPbr5owtOZNxhoB9845wdXMmdQxNztSd95ORM5M97w81Z5LGELZr58yBAweahQXAq6++yioh+5NABfwe5E9sMj4+/rWvfOUr/0vkD//wD/9nX1/fV226hvw3iDewoLZKMlmiwLZJIkqyRIFtW8GROjHNjSd1YpoxTJ2YthhOds6kjuEUZyICtr8IeW/6Sx3Dw+GsSObvxz/+ceOFF17oZQHwi1/8or0AMP4E0Lt79+4qRcB6yIem9PT0fNTf3/8xBYd+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",
+ "ImageStream": {},
+ "Name": "Boundaries",
+ "ParentId": "ROOT",
+ "Representation": "BorderBoundary",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "Generic component",
+ "Hidden": "false",
+ "Id": "c8bba3ee-9cdc-426f-89dd-0cea09ba72e8",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Generic EE_Component",
+ "ParentId": "ROOT",
+ "Representation": "Rectangle",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "dd163aaf-713b-46df-bc66-4ace6c033067"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": [
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": [
+ "no",
+ "yes",
+ "multiple"
+ ]
+ },
+ "DisplayName": "has authentication",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "2cf09a2d-575c-4e58-a5a6-08808f673a37",
+ "Type": "List"
+ },
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": [
+ "Network",
+ "Local Area Network",
+ "Physical"
+ ]
+ },
+ "DisplayName": "access vector",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Type": "List"
+ }
+ ]
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "generic communication",
+ "Hidden": "false",
+ "Id": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAB7gSURBVHhe7Z17rFzVdYdDnlLSVFVbtX/1j7ZS26iNKsVtpSpSZZh7b7gzcwF7ZsDEhUDSQkmgIZTwlnITXgnmFUKBQJ4mUAghGMwzBtvgF37ysM01BkOxDdgQG2xsg4nx6Vn2vgkd/86avc/Ze8+Z8e+TPvnK9846R2uvs+ecmf34ACGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCSNkYqB3zqYFa65SBavP69N/ZA7XmutStqe+mJrSnlDbbWqk1Xkz/XT1Qby1K/711oN4cHai2Pl8ZmfyPIyMjHzdNTw5WhmqtCZVq4+q0OF5JRYVE+9e0k2jNH6g1LqpUW4NDQ8d9wpQF6XMOqYw0jkrfCZaAoqAHr7sGqo3bhuqNkQkTTvqIqRXST1TqrX9ObwNXgMan9P3+ulJvXlupHvNXpnRILyPPe4O15g1pw+5ta2hKNd9L6+aOwWrjH0wpkV7j0JHG36YNubqtYSl1s9p86HP1SX9vyor0Aunt/sS08d48oDEpzed7A/XG9Ikjx/6xKTFSVtIe+8i0wd5pa0BKffh6pdb6kik1UjbMO//bbY1GqW9nVCZN+iNTdqQMmGf+bW0NRWkQB2vNDfKGY8qPdBPzaf8q1FCUBnTPQK11vilD0i3MV32ogSgN7mCt8YOJEyd+2JQjicm+QT7yKS1oGFsH663k1DPOTW79+S+Tp1auTjZsfCV5++13ElJOUBtqnveNS5LGsSfC3/mz9eBnjzjik6YsSSQOKTLCTy7871zxvWTTptdMaZFeALWl5jjSsf/y7vuSsy/4VnL4kcfAvy1kWosTjzrqD0xtktDsG9uPGsLCL51yerLuxf81pUF6CdSemog33ngzueOumcmJJ38Vvia31ebc4eHhj5kSJSHJO7Hn/NFLkp07d5lSIL0GalNNjb179ybzFy1OvnL6OfC1Ob19dHT0g6ZMSQhkSi9IfEfl4n/vvfdM85NeBLWrpg3SEcx+dH7y+RP+A8bI4ZWmVEkIzHx+lPhM5baf7/y9D2pbTRfe2b07ueEHP933+RCK5WS1cbQpV+KZQ9IEv3xAwhWlQfnM3x+g9tXMw8rVY8nUE0+B8Rx8c6DW+AtTs8QX+5fxggnP9LIrrzVNS3od1L6aedm2fXty1vnfgjEdXNpqtT5qSpf4YN8afjjZUHn3f3XTZtOspNdBbaxZhD179iRXXHM9jGtv4yJTusQHriP/Tvuv80xzkn4AtbFmUeQDwpt+/DMY29LdQyONvzHlS4qSJnROW4JVZYQf6R9QG2v64qYf3Qzj29maZcqXFMUs+wySjJXhvaR/QG2s6Qu5EyjyOFCpt5qmhEkR0mRuaU+u5saXXzFNSPoB1MaaPpHPBM48bxQep7ON5zlpyANpMncfmNxsd739tmk+0g+gNtb0zZtvbsv9FWGl3pxqypjkBSVWk/QXhx85BbZzliHeAFY9syYZGjkaHk+38QyHCRcEJzZb0l9MmnICbOcsQz0C3nDTT+DxOjlYb00ypUzygJKqSfqLqV90u/0O9SGwDBvON3egNduUMskDTmq2pL8481y3D+Fuue1O80r/zJ47Dx6zg3uHRlp/bsqZuAISqkr6i6uvvRG2c5anfu0c80r/yFeDXz79bHhcXa4lmBuc0GxJfzHz/odgO2cpQ8FfeXWTebV/5i14HB5Xtd5cY8qZuAITqkj6i/UbNsJ21rz08mvMq/0jdwEnnHQaPK5qtfVpU9LEBZhMRdJ/TDn+JNjWWcpdwPPrXjSv9s/tv7gbHreDp5uSJi6ARKp2k9d2pbeILyfJ9LEkuXx5kpy/MEnOnLdf+fnyFft/J38jf+ub3XuS5JENSXJFepyzFyTJ1x5zU15zZfra2WmM3SVaSOm6G38M21rzxJP/M3lrxw4TwS9b33jTfaHRenOmKWniAkymYmz27E2SpZuT5Kon8EWleXX6GnmtxCjK62mHcslSfJw8XprG+nVJBlWufX4dbOtOnveNi4MtCff1874Jj6m4fcKEkz5iyprYAhKpGpNVW5LkoiX4AnJRYqxOY+VF3vl9XvzjSidQljsB+XQftXcnpRPYsWOnieKPO2fcC4+neVi99U+mrIktKJGaMXgnveBuWYMvmiJKTIntitz2o3g+lMeBMrBg0RLY3jbKcuC+PxNYv+FleCzVevNEU9bEFphIxdBs250kl6XP9+hi8aHElmO4IM/8KJYP5dGmDMin76d89SzY5jbKB4OXTvuut68I5XwmT3HegWiaKWtiC0iiakjkwrzQwy1/J+UYLp3AOTk+8LNVYpeFsTVr913IqN1tldfLvgAyYvDJp1ft+5ox79Zwsg0ZOobivaasiS0giaqhkFvzkO/87U5Lj2X7OBCyAxDLxHf/221kYLlsPG/KmtiCE5ltKEI883dSjmlDyEcAsUzs3v1uctKpZ8K27wF3mLImtoAkqoZAPu1HF0YMbb4dkA/q0Gt9WTZeWr8xOfLo42H7l10uG+4ISqKmb+Q7eh9f9eVVjv1eh3EC8jWgfGWHXu/DMiLTfquTjoU1UGaHhib9iSltYgNKoqZvlmzCF0VMZbBQJ2TQTqhOoKwsfHxpz3UChx7e+mtT2sQGlERN3+QZ4edbGTFogwzamZM+Dsg55xkKnGWZkTuBXnocOGxk8mdMaRMbUBI1fSLj9dEF0Um5+Ga+kCQb3tp/ey6uT3++J/2/s+fj13RShvr6AsXX9EX7XAVfcw/kM4F//8oZsB7K5mHDx/ylKW1iA0qipk9k0g66IDQvTm/DtYk+m9Pf5flMYb7Hpe5QfE0fdJqrUHTugSzZdc11NxUeJxDUenMzlwp3BCZS0Sc3j+FizVLe0Wxm+Ukn4HonIOfiCxRfsyi2cxV8zD0Ye/a5nKv2hLdSa3zTlDWxBSVS0ycypRcVapZy22+LPA6gGFnKVGJfoPiaRXGZq+Bj7oEM0120eGly6hnnwhrpivXmiuHh4Y+Zsia2wGQq+uSCRbhIs5Rnflte2o5jZCnn4gsUX7MoLgOVfM89kElA19/0k+TYL5wM6yWSj33uc60/NCVNXADJVPWJLOSBijRLudW1RYb5ohhZyrn4AsXXLIrLNxIh5x5s2PhKcu8Ds/YNJ5b5/Mf/26n79h1w3XzE0tcr9eYjlVpzSqvV+pApZ+IKSKyqT1CBarqCYmj6AsXWLAqKqdkPmPIlRUEXuaZPUHFquoJiaPoCxdYsCoqp2Q+Y8iVFQRe5pk9QcWq6gmJo+gLF1iwKiqnZD5jyJUVBF7mmT1BxarqCYmj6AsXWLAqKqdkPmPIlRUEXuaZPUHFquoJiaPoCxdYsCoqpmZdQIw3zYMqXFAVd5Jo+QcWp6QqKoekLFFuzKCimZh5CjzR0xZQvKQq6yDV9ggpJ0xUUQ9MXKLZmUVBMTVdijjS0xZQvKQq6yDV9gopI0xUUQ9MXKLZmUVBMTVdijzS0wZQvKQq6yDV9ggpI0xUUQ9MXKLZmUVBMTVe6OdIwC1O+pCjoItf0CSogTVdQDE1foNiaRUExNV0py0jD92PKlxQFXeSaPnEdCuyyqcfBNBS4X/OoYcqXFAVd5Jo+4WSg/RalX/OoYcqXFAVd5Jo+cZ0OLFN8bZmxDsfIspenA/drHjVM+ZKioItc0yd5FgSRxT46sXlnkpx1EC0I0q951DDlS4qCLnJNn+RZEkyW+9KKV4r2YFsSrF/z+H62bNmafP+H05MTTjotGT5q30rFb8h04MFq67jR0dEPmnImrrRf4J30Se5FQdN3pbvT21h5PpVBKqL8LLerru9Y4/byoqD9msdxnnhyZXLU0V+A9bjf1qzh4am/b0qauIATmq1vempZ8PQCef9YeBTLpy5j7Xspjy7IIiNHNI+Dtfj/rLbuMiVNXIDJVPRNr2wM0mksfGg7jbXvlTy6ctG3r4R1iKzUJh9qyprYghKp6Ztubw0my4zbbA3WzYt/XG2sfS/k0RVZirw26fOwDpGDteYNpqyJLSiRmiEY24qLKoY2m4O6jIUPrTbWvux5dGX9ho2wBjOtNueasia2wEQqhuJg3h7cxU5j7cucR1fWPrcO1qDiMlPWxBaQRNVQyJDTaY4DWooox5JbextifOBna6ex9mXOoyvPrn0e1qDiUlPWxBaQRNWQbNudJBdGeI6VZ2U5li1y0aE43dBmsk1Z8+gKO4AIgCSqhkYKKuQ7mMR2LdpeegQYp4x5dGXN2udgDWZabS0xZU1sgYlUjIHcxoZ4lpWYLjPhxpEP3lC8bjh3ozkpC8qWR1fYAUQAJlIxJvLJso+vtuQrqiKfUsszrnwFh2LH9NJlSfJujiW3ypJHV9gBRAAmUjE28t2yDDCRUWaoKDXlNfJaH99PyyCcbnYCcvEXWXSzLHl0QXYiRjWY5WCtudiUNbEFJVKzm8hoPJn4Mn1s/7RTmXsuC1CI8rP8n/xOJqSEWKFWBuHMSR8H5Dk81lBgOZbc9ud558+i23m0hR1ABFAiNQmJxdiatbAGFR83ZU1sAUlUJSQW7AAiAJKoSkgs2AFEACRRlZBYPDP2LKzBTOutRaasiS0wkYqExIIdQARgIhUJiQU7gAjARCoSEovVrh1ArbnQlDWxBSRRlZBYsAOIAEiiKiGxWPXMGliDWQ7WmgtMWRNbUCI1CYkFO4AIoERqEhILdgARQInUJCQWq1aPwRrMtjXflDWxBScyW0JiwQ4gAjiR2RISC3YAEcCJzDYkRXfecdlJJySyVddvp9suT5LzF/5uuq38PD7dVv5G/jY2ZT+/cVY6dwDNeaasiS0giaqh8L3zTqeddHwjG3PIohl5tugaX3BDYoSi7OeHYAcQAZBE1RCE2nlH20nHJ6s8LbklMUIsuVX288vi6VXPwBpUfMyUNbEFJFE1BCF33tF20ilK2Rfd7PVFQdkBRAAkUTUEIZfdtl1G2xVZEvuygMtuS+wiy26X/fxsYAcQAZBE1RCEXF/PZiMNV6TwY2y8IcfIc5GV/fxseXrlaliDWVZqrUdNWRNbUCI1QxB65x2fyK1vyHfWdmUDDpfb7bKfnwvsACKAEqkZgtA77/gkxDN1J+WYtpT9/Fx4yrED4O7AOYCJVAxB6J13fPFMybffLvv5ucIOIAIwkYohCL3zjg/kO3AfX6XlVY6tbcxR9vPLAzuACMBEKoYi5M47PliyCceOqQzGyaLs55eHJ59eBWtQcY4pa2ILSKJqSELtvOODPCPofCsj8rIo+/nlgR1ABEASVcsAKj7Nosh4eBS3k9KJzXwhSTa8tf8xR1yf/nxP+n9nz8ev6aQMmW6n7OeXF3YAEQBJVC0DqPA0iyKTYlBcTdlJV5tIszn9XZ5ndtmvr52yn19ennhqJazBbFuzTVkTW3Aisy0DqPA0i3LzGI6bpbyz2syik4vM9Z1WzqWdsp9fXtgBRAAnMtsygApPsygyZRbFzVJuq22R220UI0uZqttO2c8vL0886dYBVOrNR0xZE1tQIjXLACo8zaLIltkobpbyTG3LS9txjCzlXNop+/nlhR1ABFAiNcsAKjzNoshCGShulvJhmi0yjBbFyFLOpZ2yn19e2AFEACVSswygwtMsCoqp6QqKodkO+htNV1AMTV+sePJpWIOKD5uyJraAJKqWAVR0mkVBMTVdQTE020F/o+kKiqHpC3YAEQBJVC0DqOg0i4JiarqCYmi2g/5G0xUUQ9MX7AAiAJKoWgZQ0WkWBcXUdAXF0GwH/Y2mKyiGpi+WP/EUrMFsW7NMWRNbcCKzLQOo6DSLgmJquoJiaLaD/kbTFRRD0xfsACKAE5ltGUBFp1kUFFPTFRRDsx30N5quoBiavli2wq0DGKw1f2XKmtiCEqlZBlDRaRYFxdR0BcXQbAf9jaYrKIamL9gBRAAlUrMMoKLTLAqKqekKiqHZDvobTVdQDE1fsAOIAEqkZhlARadZFBRT0xUUQ7Md9DearqAYmr5YtuJJWIOZVpsPmbImtsBEKpYBVHSaRUExNV1BMTTbQX+j6QqKoekLdgARgIlULAOo6DSL4jrU1nUVXxQjSx9DgWOfX16WLn8C1mC2rQdNWRNbcCKzLQOo8DSLwslA9vqcDMQOIAI4kdmWAVR4mkVxnW4rU2htmbEOx8jSx3Tg2OeXF3YAEcCJzLYMoMLTLEqeBTdkMY1ObN6ZJGd1aUGQmOeXlyXLXDuA5gOmrIktIImqZQAVnmZR8iy5JctpaReZXFzdXBIs5vnlhR1ABEASVcsAKjzNouRedDN997w7vd2W5+jxRTflZ7mtdn1nHdfroqCRzi8v7AAiAJKoGhIpQNkqXLYKk9tUVGA+lWNcmR5LdiaSJck1uCx4Z30vC7546QpYg1kO1pv3m7ImtqBEaoZC3jkuCbg7UCdlUxLZnCQLbgzSWd8bg7ADiABKpGYI5J2/mxf/uNIJZN0JdHvrLVnGu8xbg3U6vzwsXroc1mC2rftMWRNbcCKzDYHc9qOi6obyOJDFWMk33yz7+bnCDiACOJHZhiD09uAuyrO0BrcHP9BQ24OzA4gATmS2IYjxgZ+t56TnoiFDY6c5DrwpohxLHpFsKfv5ufD4EtcOoHmvKWtiC0iiagjkokPF1Q07dQDCtt1JcmGE5215ppdjuVL287OFHUAEQBJVQ9BLjwDjSOGHfKeV2EUurrKfnw3sACIAkqgaAvngDRVZN5y70ZyUBXK7HeKZW2K6zNjLouzn14lFi5fBGsy03pxpyprYAhOpGAJ5hpSv4FCxxfTSZUnybocBQQj5BNzHV3DyVVqIT9PLfn5ZsAOIAEykYihkEE43OwG5+LWBQJ2Q78BlIIyMhkPxNeU18lrf36O/n7KfH2LR4qWwBrOsVFv3mLImtqBEaoZEBuHMSR8H5Dk81lBgOZbc9ud5589CRjXKBJ3pY/unx8oceVkoQ5Sf5f/kdzJxpkink5eyn9847AAigBKpSUgs2AFEACVSk5BYLHzcrQNIvduUNbEFJFGVkFiwA4gASKIqIbFYsGgJrEHFGaasiS0giaqExIIdQARAElUJiQU7gAiAJKoSEov5ixbDGsy02rrLlDWxBSZSkZBYsAOIAEykIiGxYAcQAZhIRUJiMX+hWwdQqTV/acqa2IISqUlILNgBRAAlUpOQWMxb8DisQcU7TVkTW0ASVQmJBTuACIAkqhISC3YAEQBJVO0msgXWb6exLk+S8xf+bhqr/Dw+jVX+Rv7WN0V3LnLZiSgk3c6jLY/NXwRrMNN66xemrIktMJGKsZENL2QxijxbX40vZCExiuJ756JOOxH5pix5dIEdQARgIhVjssrTUlYSo8hSVqF2LtJ2IvJJWfLoCjuACMBEKsagbItZhty5SNuJqCi9vijoo44dwGCteYcpa2ILSqRmaGSp6csCLmctsV2Xsw65bLntMuSulDGPrrADiABKpGZIpKBibGghx3Ap3pAbl9hsROJKWfPoyqPzFsIaVPy5KWtiC0iiaijkljLkO1a7srGF7W1s6J2LfFLmPLrCDiACIImqoQjxrNpJOaYNoXcu8kmZ8+gKO4AIgCSqhkA+pUaFFUObT7VD71zki7Ln0ZW5jy2ANah4uylrYgtIoqpv5LtlH19R5VWO3WnDi9A7F/mgF/LoCjuACIAkqvpmySZcUDGVQS6dCLlzkQ96JY8uzHHtAKqN20xZE1tgIhV9k2dkmm9lpJsNoXYu8kEv5dEWdgARgIlU9ImMM0eF1Em5+Ga+kCQb3tp/ey6uT3++J/2/s+fj13RShvr6AsXXLEq/5pEdQARgIhV9IpNNUBFpyg612gSVzenv8jwLyz54vkDxNYvSr3mc/eh8WINZDtaa/2PKmtiCEqnpk5vHcBFlKe9YNrPTpHhd38HkXHyB4msWpV/zyA4gAiiRmj6RqaioiLKU21Vb5DYWxchSpsD6AsXXLEq/5pEdQARQIjV9IltRoyLKUp5VbXlpO46RpZyLL1B8zaL0ax5nz50Ha1DxVlPWxBaQRFWfyAIUqIiylA+pbJHhqShGlnIuvkDxNYvSr3lkBxABkERVn6AC0nQFxdD0BYqtWRQUU9MVFEPTF4/McewA6o1bTFkTW2AiFX2CikfTFRRD0xcotmZRUExNV1AMTV+wA4gATKSiT1DxaLqCYmj6AsXWLAqKqekKiqHpC3YAEYCJVPQJKh5NV1AMTV+g2JpFQTE1XUExNH3x8JzHYA0q/syUNbEFJFHVJ6h4NF1BMTR9gWJrFgXF1HQFxdD0BTuACIAkqvoEFY+mKyiGpi9QbM2ioJiarqAYmr5gBxABkERVn6Di0XQFxdD0BYqtWRQUU9MVFEPTFw/PfhTWYJaVWvNmU9bEFpRITZ+g4tF0BcXQ9AWKrVkUFFPTFRRD0xfsACKAEqnpE1Q8mq6gGJq+QLE1i4JiarqCYmj6YtYjbh3AQL0x3ZQ1sQUmUtEnqHg0XUExNH2BYmsWBcXUdAXF0PQFO4AIwEQq+sR1CKvL6rMcCpxtr+SRHUAEYCIVfcLJQPstSr/m8VePzIU1mGm1+VNT1sQWmEhFn7hOY5WpqbbMWIdjZHkwTQfulTyyA4gATKSiT/IsZCGLVHRi884kOYsLgmTaK3l86OE5sAazHKw1f2LKmtiCEqnpkzxLWckyVVrxStFySbDO9kIe2QFEACVS0ye5F7NM35XuTm9j5fl0fDFL+VluV13fscY9KBcFLXke2QFEACVS0zc9tSx4eoHIVuGyVZjcRqNYPpVjXJkeS3YmkiXJNfpxWfCHZrl1AJVa48emrIktKJGavumVDS3kne2SgLsDdVI2JZHNSbLox41B2AFEACVS0zfd3tJKlse22Rqsmxf/uNIJZN0J9EIeXWEHEAGUSM0QjG3FRRVDm00t5bYfvbYbyuNAFmXPoysPzpoNazDTavNHpqyJLTCRiqE4mLcHd1Ge9TX6aXtwdgARgIlUDIUMOZ3mOKCliHIsubW3IcYHfraek56LRpnz6MoDv3oE1qDiD01ZE1tAElVDsm13klwY4TlWnpXlWLbIRYfidMNOHYBQ1jy6wg4gAiCJqqGRggr5DiaxXYu2lx4BxiljHl1hBxABkETVGMhtbIhnWYnpMhNuHPngDcXrhnM3mpOyoGx5dOX+h9w6gMFa4wemrIktKJGaMZFPln18tSVfURX5lFqeceUrOBQ7ppcuS5J3OwwIQpQlj66wA4gASqRmbOS7ZRlgIqPMUFFqymvktT6+n5ZBON3sBOTi1wYCdaIseXSBHUAEUCI1u4mMxpOJL9PH9k87lbnnsgCFKD/L/8nvZEJKkYslCxmEMyd9HJDn8FhDgeVYctuf550/i27n0Zb7H3wY1mCWlXrzJlPWxBaUSE1CYsEOIAIokZqExOK+B2fBGlS80ZQ1sQUkUZWQWLADiABIoiohsWAHEAGQRFVCYnHvA64dQOP7pqyJLTiR2RISC3YAEUgTt/vARGa76+0ufi9EDiruuud+WIOK15iyJrakSdvSlkTVDRs9rvpIiMLNt94BazDLSq15sSlrYkul1ngRJTPLp1auNs1DSFgumXY1rMEsK/XmWaasiS0D1eZclMwsb7vjLtM8hIRl6hdPgTWY5WCt2TJlTWyRD05QMrM8/esXmOYhJBzPPf8CrD/NodqkvzNlTWwZqLdORcnMcmjk6GTL1jdMMxEShiuuuR7Wn+KuVqv1UVPWxJaBauvTIJmq3//hdNNMhPjnpfUbk8OPPAbWXqbV5kOmpIkjh6QJfO2AhCrWG1OTN9540zQXIf74zW/2JKeecS6sO81KvXWGqWfiSprAG9sT2smLv3OVaTJC/LB3797kiu9eB+utg3uGjpzyZ6aciSuV2uRDQVI7Kts3E+KDPXv2JFd97wZYZ51t3WdKmeRhdHT0g2kinzswsbq1yVOTpzkugBRk82uvJ2eeOwprzMbDhpvDppRJXiq15pdRcjt5RPO4ZOVqj5vCk4OGnTt3Jbfcdmcy0vhXWFuWzjMlTIowMjLy8TSZr7Yl18rDj5yS3Dnj3n3PcIR0YvXYs8nlV1+378NkVE8O7h0cnvxZU8KkKAO1xhdBkq09+bQzkzmPLUi2bNlqmpocrOzYsTN5ddPmZO3z65LFS5fve6e/4JvfTlpTvwRrJ4+VevNaU7rEB+azgKXtiaa0hD43NHTcJ0zpEl8M1I75VJrcXW3JprRMbpcBbKZkiW/SBJ/elnBKy+K7lWrrcFOqJBSyyQJIPqXdVBavmWxKlIRkeHj4Y65ThSkN6Fv8vj8y+74aZCdAu27jWU717RKfPeKIT8pQS9wwlAZ1r6xXITVoypF0g1ar9aG0Ma7a3yCwoSj16mCtuWqoOvlfTAmSMjBYb1TTxsk1WpBSOxvPVurNqTImxZQdKRMTW63fG6g3R9PGeufAxqM0l++lj5mzZE2/iRMnftiUGikzMv86bbhpqU7LilNq3JZ6pww/rxxx7J+asiK9xoQJJ31kcKQ5NFhtXJE26JzUjakcSUh3pm5NfSH18dTbU6eld4/Hy2hT3uITQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIaS8fOAD/wcZlnxzdo/fDgAAAABJRU5ErkJggg==",
+ "ImageStream": {},
+ "Name": "Generic Communication",
+ "ParentId": "ROOT",
+ "Representation": "Line",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "A representation of an annotation.",
+ "Hidden": "true",
+ "Id": "GE.A",
+ "ImageLocation": {},
+ "ImageSource": {},
+ "ImageStream": {},
+ "Name": "Free Text Annotation",
+ "ParentId": "ROOT",
+ "Representation": "Annotation",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ }
+ ]
+ },
+ "Manifest": {
+ "Author": "LAPTOP-HETV38CP\\tmart",
+ "Id": "51e3a082-4d15-478a-a41e-c7299ea7ba9b",
+ "Name": "NewTemplate",
+ "Version": "1.0.0.114"
+ },
+ "StandardElements": {
+ "ElementType": [
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": [
+ "User Accidental Discovery",
+ "Curious Attacker",
+ "Insider Attacker"
+ ]
+ },
+ "DisplayName": "Threat Agent",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "f43dce17-9676-45a7-9258-09b02540cbe2",
+ "Type": "List"
+ }
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "explicit threat actor interaction",
+ "Hidden": "false",
+ "Id": "02e7e0f5-d5d8-4281-88eb-d15810408eae",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "iVBORw0KGgoAAAANSUhEUgAAAcQAAAHECAYAAACnX1ofAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAADoPSURBVHhe7d0JnBxlmfhxUBRE8UIUvEU8VrwQLxQvvFBXXY94n6ugf5V1I8lU1QS1PZYNhHRVdQ62p96aMYCgIx6Ix3or4OKBAkJEVBC55EbOkIQk/+epeSbprqlMZqarr+nf9/N5Pp10V3e93V3zPv1WvcdOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCvFi074b5+5C7wo/R0uV0l4flh8s4gdC9cUl3ziEqlcg/bFACA+WsoTP5FkuCWaWKDF7lL5fYXfuhOCCL3hSBKD/OikVfrcxdWx+9jLwUAQP/yY3doLgHOJW6SOMsP07rcel7Vvd4PR/eldQkA6BtDK9KHSwvwI5LIVsjtT+X2BomipDeHSO6U1zw3CJOvasvSi927hqrpsyu1k+5vuwcAoHctXjW2t7TwXhGE6X96UeKC2P1aEtxtUxNeS3GVJeAVego2iEafp9czrQgAAPSoLVt21tOgkrze4Icu8KP0ZD9O/iAJbWNDkms1Nkn8RRLl1/0wqcg+3uJX3X6cegUA9LzD6/V7edWR/SU5Hq6dbiShrbXEVpTw5hrrJdba62fXKIej5GFWBAAAetPQMekeXpwe7MXukw1JcrNEUbJrJa7OhotIa1KTpJ7qtSIAANCbKuHYAzVJShLzbMzjNQ2JrcxoSpLDYX0fKwIAAL1Je7hKAlsgCSyW23Mkyj7VOhlX+3HyI92PF6Xv01O8VgQAAHpPsHLNnlmnnSg5VpLXLyWR6bXDogRXRlzth+5bWQehMDmEoSAAgJ5VqVR2kZbdgdm1yMiNS5Q4RrIwLtFrnro/Pb1bqYzf24oCAEDv0OEXw7F7qh+nH5UW5MmSwP6RS2hlx+1+7M7wQrcsCJO3enH90VYUAAB6i83F+jEJaUGm1zYks3bF1V7kvhnEbpFOgH5ErbarFQUAgN6hkwdkYyInTrFe35DI2hU6McE51jFowaJlxz/UigIAQO9oTJBB5G60JNbuuFpiPLv2GScHMtMOAKCnLBgfv6cmKElWntz+SG7XWQJra3iRu1luvyu3R/lh8lKWzAIA9BRNTDqJuSSrpRLtHAeZj6bTrP7q1Q+yIgEA0H1BbXSvLEFNrOv4d4miZNaOuFtire13wZHH1R9iRQIAoPuaOujE7p+WvDoVl2iC1Jl1lqx0j7EiAQDQXTpIX1qQLwmi9L+9yJ0rCasdk5VPF3+RpJwGsXvvkuqaR1ixAADorm2nV7PVPG5qSFydimxWHW3BDtWSR1qxAADonqbeq5E7S6JTnXMaIzvFKrcLdE5YKxoAAN2T65zT7unlikIT8tZOOrr0lhUNAIDu0NZjEKYHSXL6vCSn30t0+tqjhg7zODuI3Be8yL348Hr9XlY8AAC6Q6d2056jkqB0arlbLWF1Ou6wiQl0goIDd9qyZWcrHgAAnbdtYoBsgP7lDQmrw5FNij6uHXSWLB99lBUPAIDu0JX8JTF1s2POZGztoOMtrT/AigcAQOcNh/V9/NB9WOJbkphub0hWnY71Ej/z4sT3a+4ATq8CALqmMja2W8OpVV1JoyhxdSquk8hOr2rStiICANBZupRUNuYxTCqSmP7UkKi6EXpaVydFX6oJm96rAICuyV137MaQjsa4TVqxp2vr0Yvrj7YiAgDQWZqEvDg9QpLSTyQ56djDoqTVuYiTP/hRcqyuAUnrEQDQFQur7sE6EbgXuW9KUrqzMGF1MiZWCxmXMr1fx2JaMQEA6Bwd7+hV3ettIvJbmhJV92KtxFJp0R6s10WtqAAAdIb2WN2aHDu/xuP2Iuu5qjP4MO4RANBx2RqPcfJaXWdREtINDQmqm7Hei9yPgzD9VLB85IlWVAAAOkMnIdfTlzbW8apckupmXJKVKRx9RaVS2cWKCwBA++k1PV0VI4jTlZKQurF81fbiOi9KR4PQ/VulXt/digsAQPtlyXFby7GXkuM6P05+5MXuk0uqax5hxQUAoP1yp1WvySWobsfabPYeXc4KAIBO0YH2fuwO1VOYkoxuyiWnrkYQub9Ky3F5ELoXMqQDANAxW1uOumRU7wzlmIzrdYiJDjXRXrVWZAAA2uuIWm1X7fQShMlXe2KGnIaQluONcjuWJcexsd2syAAAtJfOkCMJaIGvE35HbsNkYuqN0GSdnq6TAVRqJ93figwAQHvp3KqafLRnqCSkbq/KkY+tPVaHo+RhVmQAANpryUr3GElCumTV+Q1JqVdiYxCl/+uH6QeYRg4A0DFBbfQpttjxn3OJqRfirsnTqkPHpHtYkQEAaKMtW3YOwvQgmx2nV+ZVbYzbJTmeLK3HN2jHISs1AADto8M4dO5SW67qjlxi6np4kbt5cigHCx8DADqiEo49sIc740wM5bDkqIncig0AQPssrtUfr9cbdSaaouTUA3G5H7ujWbYKANAxOmepzamqiwsXJaduxzk6jEOHm1iRAQBon4mZcZI3SwI6TWJjQ0LqlbgjuxYaJocwryoAoCO0NSYtx8O9yJ1bkJh6Ia6QWKqnfq3IANAdi5adcF9/9eoHBSvX7OmHo/tqDMfuqXr6baiaPnuiZ+PUCOLktVKRLZhteGH6mqbXqSYvyk71TUbNHSD3Z+XYGlI+BoS3LohGn+dHyfFZj9Di5NTN0M5BP9POQnpMWpEBoJmuSKDTZ2UdKCRpBLXRl2xNSPLrX24Xyu2n5XbpxOoKyUlS6X1TbrUX4jl+lF4kt5dI6Hp9N/Xg6guzCZ3/U5dW0oV59T1dIHGOHyY/t/d7qsS4fg5B7FbLv5fKZ3GUXrvyQ/fv8v8FQ1HyyqFa8nyvOrK/F9cfrQnXPuqBoPOpyufxLvu8NkkUfc7djFvlGE11tRAdi2nFBjDfaGUklfEjvVr6DL2GIr/Y3y4VwMeyhBa6SP59osT3JYn9Rm7/llUOxZUGUX7oZ32VxJ+CyP1WE4Yk069L5ZwEUfrfkmAXyQ+RD3px8katrHVGGf2h0s/j7nTKOHmPn5H3rD8uij6Tbsef5fP2h1akD7ciA+h1lUpllyXVNY/w4pEXBGHy1qxFEqXHScV6ivxRnymhya3nBlQTpcUtEn/TRJrN+xmlJ8v/V2iykf8fpmPy9JTlkuWjj+rJWV2kJSY/0F4qP9DWSLl78TjdKD9Mvq3LaDHwH+gmqSy0ItPrXdmppihdLBFnrYfI/UpCWxV32x8uQewwssHrkVsrx9BPpSV6khcloR5Xeg3Ni0Ze7VXHntatVSb0eq0XJh+Xcv0hX+4eiWskcR8brKg/2YoMoEzZ1FhVt5/8Cj00qwwiV9VfpHK7VmKd/SESRKdjnRyHF0uy/Ikfui9JIv2ctDg/pElTT9lW6vXd7RBuCz3jkQ2R6NW/gTj5tBUVwGzp6ars+p1eu9MZPnQV84lfwndN+WMjiD6IrLUZuvPsB9wKCU/PZGjHIe09bId+S7LhG9p5K3J/0n32SujpaCsigNnIltXpz1Obt0loz8qem7eS6Iu4KYjdryVxftmP089mybLqnjun3rVbtuw8HKcvk9f8isT6hn10JYaj5OlWMgCzkY25m2VSsWs9f7EK5Yfy73GJE7Vbvxe6ZUGU/Jf835Pb/5CW5uFenL5NL/xnY+zC9CC570AdS6cdbrQCKoq5dC3XjgWNr6E9VxvH7g2Ho8/K9i2hLQUtj3bskLIuyDp5TJwWlnK7L8j7OCYbrjHRoWJ8olOI+5nEORJ/lNbHZdL66OehGsT2Q5eVOjs7LRonn5Zk+Q4dfzqTcZ96jVN7gMrzu9VD9Q4mDwdaIH9EF0qszcataU9AHeoQukBXA9exfdkv56rbj/kWC2hPRE3Akwk3TA7JpggL3b9L8v+UfIafl//XJipX922JM6SS1dPRV0vo+MGiSo3o3dA5Uc/MfvzF6RHDsXv54lVje9vRsJVOv5Z1BNKxr509A3O+FQEA+ov+yNCegTqGz4/TN0l8VFslWRLNhimkP7EEqoPue3EOTmIitFX5C19nvQmTj0sifPFki1LHNcpjSyWut23bFnIcfS07sABgvjvyuPpDsuu+erpX1/+TlrwmT2uJnC0V8pVyS+LsnbhEhyJJfEYvHWinNbnv97ltyovYHW2HCgBAT9cNh/V99Fppdo1UWp1B5D4nCXRUKs3vS+iwGSZE6F5oZzDtFFb0WKvxCTsMAAAzpdc+de5SbW1K8tT5X/W0nnaQ0o5Deo2zqMIlejsW2NcLACiLXgPTLvzaytQOJH6UHqen/6TSPV+CFmYvRpi81L4+AECnZL1rdRiLrjAycW1ssnWpc5gWV9hEe0O+D/t6AAC9QIci6Dy3uhKGjkvNZj/KOpMkd06pxInSQud7ta8AANDrdNmirJdsth5jtlblj/wovbaogidmF0NR+iT7mAEA/Srr5JONx9QOPmk8kSh7dk3CngwSIgDMYzoZtw50lwr/E3I7EuhCxZx6LY6aO8A+NgDAIMiWJgtH983GWWYdetLTJSEMfGtS5wq2jwgAMMiC2uheQ1HyyiB2iyRBnOhPTHs3MHPGemH6GvsoAABopqug6AQE2VR3em1yYmhIPy55tsPQXr32tgEA2LGhY9I9pDX5Ej9KjpREousYzovTrbr0lL1FAADmZtGy4x8qCeWNkliWZst09WXHneR4ezsAAJSjUqnsks31qsNAdD3LiUnRC5JQL0X6Eys+AADtk60iolPVbbsWuXlbMuqJuMKKCgBA5wxHycMkCfVSgtysa2Za8QAA6A69DilJaYFOSedF7tJcsupMxO5QKw4AAJqcTrhvlqDC0X2Hw9FnBdHo87K1HyWC0P2bJI8FXuzekV0jnElEydv1OVnU0ldNzMeaHqyzw+g+tGW2sDp+H9t9ZnGt/nhJjB+R55waRO7GLGG1OWR/n7HdAwDmEx1HqNfudCWH4Th9WZbEIvcJnaEmiNOVtpLGzyQukLhCQlekL0wWHYpNEjf5obtMbn8lLbbvyL+/JP+uSozL/y+W2/adWg2Tn9tHBwDoF5Vw7IGNixB7oVs2keDSX2rikNbOzYWVPjFdbNTP1T5iAEAvyFp28cgLtFUXxG5IW3SS7HTeUW3NsZBw2yJ5u30FAIBO0VOaeg0tm2g7cl62xmHkzpIg4XUrQvcl+3oAAGXT9Qr9ODlwYk5Qt1RiXEIHq8/LeUH7PK6rVCr3sK8OADAXWScWva4nic+L3XKd/aRTPSSJ8kJ7wNpXCgDYkUrtpPs3rVKfnepk8d15EZw2BYBiespT18vTcWqS9L7RtYHjRIdCftjId25fPwAMJl1RfusagBOdXPRan46PK6g4ifkaXuw+aYcEAAwGb2n9AROzsCQVG9bQ7cHpRE9EetFOW7bsbIcJAMw/Q2HyL1LhfSyI3Jfldl4sbku0J3QhZDtsAKD/ZeP8tp3+vDxf6RHEdiNOfmSHEQD0n6EV6cOlMstWTbA5MYsrO4KYSYTJS+3QAoDetmT56KOC2L3fJoH++5QKjSBaididYYcaAPSWSqWyi17b8UJ3jFRYOq9ncUXW/6Gz2Nwgodc5/yhxjq7GoKfx5N/j2TXQbO3AJJT/L5UfBIEfJUdm4yJbCPlxsUheT6eR+3z2ujrGMnaJ7lP28QO5PVviQgn98TEYU8zV0lfZ4QcA3ZWtrh6mH5DKabxPV3G4S0/fSvL6nSYVSWanZMsvRe5z2r1f7n9PECevzdYdrLr9+mkM3BG12q7aSvejkefIj5TXZd+TJOcsUcfJSfJ9/Vjev/5wuUaiL4evyI+EX9PjFEBX6FySmhw0YUj8ViqlXq5Ir5FK/9xsyIZet4zTzwZR+iFNcLoOobRm97K3NfAqlfF768K/w7F7uX5G0vL8oiZN+Qx/1es/dKS8h9nbAID2Gjom3UOX3pHWxQlSAV2Xr5C6FJulTFfK7S+8KB31w2RJthxT6F64ZKV7jFbwVnyUYOJMQPJSSY66Un5VkqWeHr7evotux01aPisqAJRL5wOVVtW7pQL8plQ463IVUKdiva3E/v2JNQfdQmkNvEFnq6mMje1mRUUXLamueYS2uPVUrHw/ulJIVzpP6XVbKxIAtE5nhgli915JQt+WSuaufKXTxtCE+3uJEyW8IBr516NWJI/TqdqsaOgj2fCaOH2TtOCP1Z6g2fyjxd97uUEHGwCt0E4i2dCI2H1HKpV2J8ENEtqJ4yvS8jwqCJM3L47HnkDim9+0c4+ebtXrzvLdn2nHQdHx0Wpcomc2bLcAsGMLq+7BQZx8UCqQ70msb6hQyovY/dOP0p/Iv5d6cfo2Pc2paxJaETDAFi074b5yfBwqP4hq8sOo1NVJJOmeYrsBgGLZr/QofYtUGqdJlJ0Eb584NeaqXuzeFSwfeSJd4TFTw7F7qhcnvhw/Z0lstmNqzkGvUwCF/Dg5MBvAXV6PQD3dtVZ7nGbj9OL0YHp0oixybJ3fcKzNNdZ5tfQZ9pIABtlQLXmkly2YW8KKEROnPk+XWCyv+3xOe6Kd5LgdKTwOZx8XVlatup+9LIBBoh1TsrUDJ7q+b2yoGGYbt9gYM09bfyRAdJIfug/njsdW4nt02AIGiM4uIq24o+WP/+pcZTDTuEpafyf7cfrRoDb6FK79oZt0BqGCY7SFSGN76b41FKVP0mFI9l8ATSRpaS89CR0qMaup07yJabhOlVbg4To3p70i0Bv02I7cPxqP2RLiE/bqfUnKr+Nz9X2cL3/zXxwOR55pDwGDS8dYBVHyH/JHobO35P/otxe6MsP/+WFSCcL0IE4hodf5E8uFFR3Lc427vap7vb18X9G5g6X8RdMlXqg9c3XydtsUGAzZKguRWyVxa8MfxPYj6wjjvqJDIPppdQZA6Zy0U47p1uMuPatiu+grXjzyAp2c3s7u5N/XJvkB8S2dlN02B+aniSETWScZbeXl/xCaYmKAcxprxxo6wqCfBSvX7CnH9A6P+TnEuqEoeaXtpu/o/L0Ty5G5Xxe8N40L9FJIpV7f3Z4C9D/9o5UEp2vVFR30jfEX+dV7tF9zB9hTgXlBftz9suB4LyGSO/0wOcR207eGqu65WWe44h8ON+k8srrqi20O9Jmso4xOiJxNcp0/wBuDJIh5Tyr7xQXHfllxh04gb7vqa9oDVVqFum5lUWJcL4nxeB2XbJsDPU4SoV7wl4N3ukR4XXY6NE4OtGcB85pdNy/6WygrNuqYR9td3wtW1J88TWK8S+uP4bC+j20O9J5sHbko/U3BAWwHsTtV1//jmiAGkVTwf8j9TZQfYVKx3c0Lmhh1bUh5b0XDse6Q+ua4oDa6l20OdJ8uhSMH59m5g3UyzvfC5OO6IoVtDgwkWy6q6G+k5EjWLKyO38d2Oy/40chz5L39aup7zeI2L3JHzbf3jD6jq0DIwai9RvMHqLYGx7WHqG0KDDwdgJ77O2lfhO48nfXJdj0/6OWYKH2fvL/tTXRwhT6u29kzgPbT1p4cfEslmpZdkl/Af5Vbj1MYQDH5+2h9gvqZxy1+lL7Fdj1vZOtPhklF3t/2FgD/VRCNPs82B9pDZ5kIYjdkA+UbD8CzvDh5oz5umwIo4MVuee5vp92xWf5mV8/HlTKyjjdh8vOC96xxtw7+58c52soP3Q/sgNvkR8k3dPo0ewjADugMLA2VdsdCJ7oYjtOXWTHmDz2NGiYfl/d4W/49W1wvifHdtjVQruEoeXoQuf/JVpEHMCOVcOyB2vEjq6CLK+5OxGY/dsniVWN7W7HmDT8ce6zUSz8seM8W6emMXwSALtLr7UGU/JdUyrdMraS7Frf5YbJk3k2JppOB6PqTUy/pTITeHyeH0+kGADpIk42u3iCtwqIJrHslrtbEeORx9YdYsecFbQlKi/AnBe83C/lOfuqHo/va5gCAdpjoeJZ80I+SK4sq496M5E5JEiPzqWdmtsxUnHxa3t/2JlW/VScWt80BAGUaDkefJS2TNk3i3alIL5Jbb9Gy4x9qb6uvaZKX9/O35vfYFON6fdc2BwC0QitU7awilWvR9GL9Guul1fh1L3Sv6/dFuPWUsHaqKXiPExG7i/XHjG0OAJgLHX8rlepVUyrZ+RVXSdI4enE89gR72/1ny5adgzD9lLyXjbn3Nhl3yeP/SYcbAJglf/XqBwWRO6WgYp3PsVniF0Hs3q+zxdhH0Vd0Okn53m7Mva/GOG3omHQP2xwAMJ2gNvoSqTgvz1Wkgxa3aEccXdjXPpa+oS1dKf8fc++nMdbqcl22OQAgT6+l+bH7olSY8+laYcshifFcuf2Yt7T+APuoep6WVcr8vcb30RjaihyKklfa5gCAScHKNXs2TFtIFMc6ib5Z5Sb7gTOxSEHRe9HQIRuebQ4AyJZtCt1lucqSmC7i5A9enB7RD0MadPYaKfP2xitqjB1Rq+1qmwPAYPKikVdLhdhL0671W2xbG7WHe3Bab2Ft4Ra9B42f9dMpYQAola2iMF3LgZhdrPVi90md39U+4p5iK5HcmitzY/x+OEoeZpsDwGDwIveZggqRKCe0JXZiELoX2sfdM4aq6bOlbNc1lLUpAl0EnXlQAQyELbq+nltWVBkSbYjQnafX8HppXONQlD5pB9eM/6HXlW1zAJifpLKbrtch0a7IlmxKY10F376KrtL1FaVcf59SzsnQ8obJS21zAJhfgtgNFVZ+PRjZbCuxu1j+fbbcfkdux3NxmqfLHEXuHLm9VG6n6zDSS7FZyvvjIEzeXKlUdrGvZlrtuq63uFZ//PSrliR3SlI8xDYHgPkhW1h2Ymqygoqvq3FTNv4xdl/04vRtOgl1pXbS/a3YsxLURvfSU33ao1LXapTXPUFe/xyJOxr210MhyShOPj0c1vext1DIj9PPamcd+2+pguUjT5SyXD21bFvjDlqKAOYNaY28VSq2XulNqpNP/0zCk5bP0zsxVEEHqA/H7qlBlH5IEm+iYwhl/73Uu3aDfEdflZbji63ITWxojGyXrKmMje1md5dGfkg8xY/Sa3Nlaozbt1c2AOgb+uteKjQdK1dU0XUsgsj9Vls5vdKtv7Jq1f3ss/Ek0XxDbq9vLG+3wouS3+nCvofX6/eyou6kLWZ5zBJ4+htdMd8eKo1XHXuavP50n8Ft0oI/2DYHgP4ytCJ9uFRk1+Qqtk6GVuLjUoE/34rUs2wF+gP1VKtdm+zyj4js2p43OROOlEnnU518/JqZJKfFq8b2tn/OiB+NPEde+7aG/eTj1iBMD7LNAaA/aIcNqcDOzFVonYrN0iI8pZ9XVKjU67v7sTtUWrXL7RRr0fvsROg11kBux3L36wLHH7HiFpJtVsx2YWB9z/K8DQ37aQrt7NQrPWUBYEb8KD2uqELrQJw9H1dn18HqE63H5HcF77kTUdwhKkzrlcr4va2YTSR5fU62+YcOsbC7ZsSL0vfJ87bbAUsS8aXMaAOgL/hx+iapuDrdo/RWnQpOTz1aMeYtbflaq+33uc+gW3FW0elR61ksj6cX6WomdveMZL10p+6nIdLfaCvaNgeA3qPXDeUX/M3FlVi7Iv3NoC44my3GGyZLpDX21+LPplORXJlfzNivpa/a9nj6y4XV8fvYQzMiCfVLzfuYEqdpD17bHAB6i1RSp+YqrbZGECa1xh6Rg0pbxtnwiNB9Sz6Xbg3pWOeH6QesSDvptb7mx5NvzCaB6ZJQ8ryzm19jSqywzQGgd3hV9/qCCqtdsWFHnToG1ZLlo4+SFuMX5DOabsB7GyONtVNV1jEo91gQpyutmDOikwZYj9em12kMXRfSNgeA7hs6Jt1DKqfL85VVm2KdJl/bNbZDW87yWS2Q0IkIij7HtoX8WPnpkcfVHyL/LhpbOKtV8m04xnTDUDb04soeAAaUH7qooKJqR+hUXsxvOUuWVPR09qaGz7Ld8TeJonGom3XwvxVtRuQ5n8i9Rj6umu24RwAonc1HqVOiFVVUZcYGL0xfY7vFHGTflU4fF7n1uc+207FeFwy2Yk1RNJRDWp1fL3idbREmP9dTtbY5AHSeHycnFVZQJcdsWxXYviUr3WMkwYzI57rdQfAdiFu8WvoMK1ITP0qOzQ+h0VlzpMy6skjRa1mkx9nmANBZExMzt/80nCTD0HaJEh21InmctBhT+Yw70cIviqu8uP5oK85WOkxDyvVF++9WOrRDnjNdWXX86wLbHAA6RyofXRuwqGIqM37B0Ir2ytYmnFiuqpPXGCdjrb969YOsKBlJhroGpSS39C1211Y2A07R60zGrfp+bHMAaD9dPkkqn3bPSENniQ7ya+4A7SFa8D20N2J3RuPSUg2n4W/TlTDs7oz1nt3BLD3pLxm0D6Bj7FRbQWVUWmyeruMF2mdiTGl6UcF30rbw4vRrk9cN5f8rJu/XWXgWVt2Ds4IZWy5q2hVBJLEfZZsDQPtoBwepdNq7EnzoTrDdoQu0x6bODyvfxXVTvpt2Regi3bdNLNB4/w/yLb4dz3fqNgxV02fb5gDQHkGU/EdBBVRaSIV446Jlxz/Udocu8pbWHyCtxVi+lw5NCZccORFT7j/WipTJTp3ucGms9CImAQfQPlu27CyVzR+nVj4lRug+bHtDj8h6eIbuvMLvq9zQjj3fz903EWHyTitORmeokfunvY492+niAGDGgmryoqKKp7SQSleTru0OPURPowaxG5Lvqb2ny7cfd2jHHytOxosSV7BdY2zWlTdscwAoj50+K6p4SoqpXe3RW3TB4iBK/7f4+2tzhO4ynSfVirKTrrUo9xfNmdoYl3DqFEC59HSpVEgFFU5ZcUF+hhL0Lj9M3y3f2Q2577DtoUNDtLVqxdBeqR/Lb1MQS21zAGidHycHFlQ0pYUXp2+zXaFPDEfJw6RVf3rR99nWsB6pSnugyn0XTtmmOTYOhyPPtKcAQGukRfD5goqmrLiCwdR9Ss8cxMnh8h3envtO2xpBlH7ISrBTEI38a9E2jRHE7tecgQBQCqlUzslXMmWFjj2z3aBPedWR/eW7bG8P5OZYp0tb2e51RYwfF2zTFF6Y/D/bHADmprJq1f2kQmnXJNCbmX9yfsiOkw6tgGJxhZ621X3bKf3ppxOM3T91Jf6ssAAwF7owb2EFU078zHaDeUJaax+R73Xa6dVKjDMnJ4CXf5+We6wgkjVZIQFgLuTX96eLK5fWQ6cIs91gHgnC9CD5fotWzS89gtit1n3qOEX5/44mnd/EtG4A5kwqke/mKpXSQtfls91gnvHDscfKj6kdTLFWTgRRetjEPt23ih5vDB26kRUQAGbLj5IriyqWEmKt7QLz1NAx6R7yPbftB1VD3JW1SidaiUWPN4Wu6mFFBICZWbTshPtKBdKWtQ+92C233WAe02t8QeS+XHQMlBxXD61IHy6t0h8VPJaL9KLGAf4AsEM6oLm4Qmk9GIw/QLZs2Vl/ABUdByXH2UGUvqHg/inB9WsAsyIVx4J8RVJWMNxi8ARR8l9Fx0KpoQtYz+za5XWV2kn3t6IBwPSk0vBylUhZcRMrWwwmP0qPKzgeSo0gcr8tuj8fXpQOW7EAYHrtqrx0Ki3bBQaN/BDSoRJFx0UX4nqdUMBKBgDbJ7+gRwsqkTLiVNsFBpDOKyrHwIm5Y6JLkS62YgHA9kmFMYPZP+YQDSsWYDAdUavtKsfCmVOOjc7HNayZCGCHpLJoS4WlnStsFxhgQW10Ly9ylxYdI52MIEz/04oEAMWksvhVvvIoJWL3RdsFBpytlHHrlGOks3FVZWxsNysSAEwlFUV7EmKUHGu7AHS9zQ8UHycdjDj9qBUHAKaSiqJNCTE92XYBZOS4+MrU46Sj8UeGAgHYLqkkzs5VGmXFWbYLILOw6h7cxnlzZxTDcfoyKw4ANJvJSuRzjMttF8BWM512rY3BcCAAxaSCGM9VGGXF3ZMLuwKNgsj9sOB46VRsHKolj7SiAMA2fpQcX1BplBIs1IoiQ2HyL3J8bMgfL50KSchfsKIAwDY6PKKo0igjvNh90nYDNPEiN1J0zHQorqlUxu9tRQGACUGUfqigwigrxm03QJOuD8MIk3daUQBggvxSf3FhhVFO/MN2AzQJaqMvKTheOhdh8nMrCgBMGA7r+xRWGCXFcOyearsCtspWvi84XjoYm/VaphUHACZI5XBDrrIoLZjTFNsjx8ef88dLJ0NXerGiAMAEP3bfKaowSonQXcbsICjSA2smbjhqRfI4Kw4AZNcRjyqoLEqLIEwPsl0BW7X5+vWMIojc/1hxAEB7/I2+oqiyKCu0JWC7AprI8fF/+eOlw7F+yfLRR1lxAAy6RctOuK9UDOtyFUWZcYeui2e7A7byw+QQOT425Y6Xjoa0Ek+x4gBA9kv9+/mKosxgdhBsTxCl/110zHQ0JDFbcQAMOqkUPjGlkig3bho6Jt3DdgdsValUdmlrx66ZxVrm3gWQ8cOxxxZUEiVHuth2BzTRZKRraBYfN50JL0qHrTgABp1UCu3u4HAT1xKxPdJSvEcQuc/JcbIxd9x0KjYwIT2AjB+nHy2oJMqN2CW2O6DQUNU9V46Vrgzal4T8V07tA9jJX736QVIptLO3qcamIBp9nu0SKJT1fM5WYknuLDiG2huh+5IVA8Ag68R1HPkV/ls9PWa7BLZryUr3GDlmviKxufEY6kAstCIAGFR6DaWgcig9gtgN2S6BHfKqY0+T42ZcolOJcZMXutfZ7gEMKj92ZxRUEGXHBj8aeY7tEpiR4XDkmX6UfEOOn/Ynxtj906+5A2zXAAaRFydvLKwgSg46MGCuJlqM2en9u/PHVclxHctEAQNMr+95kTu3oHJoR5xouwVmbXE89gQ5hsYk2pkYr/DD0X1tlwAGTRAnry2oGNoVH7PdAnMSrKg/2YvTr8mx1K5TqZf7Vbef7Q7AoOnQtUSNjZqAbbfAnFmnsLNzx1dZcYW2SG1XAAbJUC15vlQCnVqJ4FbtMGG7BuZMT/n7cXJ4ELkbC46zVuOqoSh9ku0KwCDRmWUKKoU2RXLlkuqaR9iugZYsWnb8Q4Mo/d/iY62luFpP0dpuAAyKYOWaPaUCuD5XIbQzLmC+U5Qlay2GyRI5rsrudPMPep8CA8gP0w8UVAjtjAv0173tHmiZF428ug3TwF3jVUf2t10AGBTyx39qrjJoc6QXDYf1fWz3QMu8yL1Yjq3bph5rLcV1OibSdgFgEAxHycP0jz9XGbQ7LqSliDLpyvhyXN2VO85ajesYkgEMGJvBptOTLP+JQdEokxcm/6/gOGspWFwYGEB+lB5XVCG0N9JrdQiIFQFomRxX35t6nO04dLpBP0rWeJE7Sv6/0IuS0I9dOrQifbi9NIBBUalUdvHD5Of5iqL9oR0i0rdYMYCWHLUieZwcV+unHmeFsUnXSNSFi+3pADBh8aqxvXXMYEHF0e7YJPs90ooBtERaeSMFx1hzxO4MOs0AmNbEMjzu1ikVSCciTk6qrFp1PysKMCdeLX1G4fE1EXf7cfrZBePj97TNAWD7vDB9jVQcG3MVSafij0Ft9ClWFGBO5Di6MHdcaWzwo+TttgkAzEwQpYdJBdLpnqeTcbsXJe+xogCzFoRJLXdMbZKW4ZvsYQCYnSBMP5WrVDoaei2oUq/vbsUBZswP03c3HU9x8ml7CADmxrqhNyWqTobs/1I/TF5qxQFmRH7MHdRwHJ2vc5/aQwAwd9oJoaFy6UboUlXVhdXx+1iRgGl5S+sPkGPmluzYCZND7G4AaJ1ULAslunVNcTL+pL/8rUjAtJYsH32U9ji1/wJAeYIo/ZAkpbKX25lt3O2HLtIWgBULAIDOm1huJzsVVZSsOhk3eLH7JNeGAABdMxwlT5eEdHkuQXUp0t8w9RYAoGuy6zNR8rviJNXxuDuI05XByjV7WvEAAOicI2q1Xf3YJQUJqluhi8QurdROur8VEQCAzvEi9xFJRGUvztpKXOPF6RGVyvi9rYgAAHSGVx3ZXxLR+bnE1O34ux8nhzORMwCgoypjY7v5URpLIur2eMWm0MVftUeqnuK1ogIA0H5BNPKvXVpXcfoI3WXZqVTmRwUAdEo2dVaY1iUR9VRr0eJ6P0wq/urVD7LiAgDQXsOxe7kkoD/lElKvhE4wUPWrbj8rLgAA7XN4vX4vvYYnyUeHRRQlpm7HJj9OfiS3C+iAAwBoOy+uP1qSzolZAipOTL0Qf5FYWAnHHmjFBgCgPYbDkWf6oftBLhH1Wtzuxy714vTgnbZs2dmKDgBA+ez64jm5RNSL8XeJpUetSB5nRQcAoGTS+vKj5O2ScC5sSEC9Gpuylm2YvFPHXNo7AACgPLqMkyScBX6c/CGXhHoyvMjdLDHCKVUAQHtIcvGq7vWSdPrhVOpk6FJYS4PlI0+0dwEAQHm09eVH6em55NPrcY4OMQlqo3vZ2wAAoBx+zR3gh+4ESTYbc8mnl2O9JnMvSt+3sDp+H3srAAC0zg9H95VEs0Li1obE0/MRRO5GuV0VhOlB9lYAAGjd0DHpHrqskySZtY2Jpy8idJfJ7VKmiwMAlCbrmRq7QyXBfFeil2e/KYrNUvYzgig9jFlxAACl0UHzkmC+KInmqlzi6YdY50fpyTpRgSZ5e0sAAMxd1moMR18hSWZcop864UzGFRLMigMAKM9wWN9HkosncYklm36KbAUOeqkCAEqTazWub0g6/RI36WLLOim6vSUAAFqzaNnxDw1it0iSTD/MnVoUZ2tHHO1pa28JAIDWeNWR/SXBLJW4viHh9EuskxjXli9zqQIASnFErbarzZ/anx1xYnexHyaVJctHH2VvCQCA1gytSB+uc5FKojl/SuLp/bhbO+LI7YLD6/V72VsCAKA1OtWadmaRFtg/c4mnH+IqKffRzIgDACiNnlKVBLPAVt7ox7GN5+hUd4uWnXBfe0sAALRGr9P5YbJEksyfc0mn92OipbtCOxPZ2wEAoHXS6jpQWo2xrWZRnIR6N7JWI4P+AQClqdTru3tR8h5Jjj+RRLM5l3h6PNJrs2uN4dhj7e0AANA67cSiQyAk2Vw+Nfn0dGRTxcntgkqlsou9HQAAWqPDHoIwebMkmO9nyaY4CfVq/M0PXbCw6h5sbwcAgNYtqa55hCQZnWT8bw1Jpx/iNr1G6sX1R9tbAQCgdQvGx+/phe510vr6liSbfhq+scGPkjXDsXuqvRUAAMqRLU01ca3xulzy6fU4S6e5s7cBAEA5Ggb9/zKXeHo6vCj5na7VqK1eeysAAJTDi9ODvch9UxJOH3XCSS/yw/QD9EwFAJRuca3+eO3MIgnnjqkJqGfjbzrQn8QIAChdtphx5L7QX5OLpxd5sXuHJMZ72NsAAKAclXDsgV7kPtNnU8RdoD1q7S0AAFCeSu2k+3tROizJpn9W+A+Tnw9V3XPtLQAAUB5dxkmSjQ70v6Up+fR0pKcvjseeYG8BAIDyLF41tncQu9WScDZMTUCtRnqt3N499f6WYoMXu+Xe0voD7C0AAFAebXl5kft6QQJqJe7Q4RQTkwckVxY83kJIsg3dh+l4AwBoCy8aebUfu4uLk9BcIrlTXzObci5O3ij3fVeitDGSOrg/qCYvsuIDAFAenfnGOt6UNYZxnSTZQ+3ld1qy0j0mWz8xcjfktptrbJbW4peC2uhetgsAAMqjiSuI3A8LEtAcIrlTEtZL7KUzutK+DsSXx9dO3X72oUNKgij90E5btuxsuwAAoCSSXCxpldFavMWPRp5jr9xEp5zTXqSyzebcc+YSZ7GqBgCgLbzqyP5+6M4rSD6zjRukpfgUe9kpghX1J/uxS2S79bnnzTY2+HH6WV1k2V4aAIBy2Koa1VzimXV4kbt0R9f7hmrJI6XFWMZcrL/3qmNPs5cFAKA8fpS8XRJNi4kq/WVlbGw3e8ntOvK4+kN02IYk0ZuLX2dGoWMsl9JaBACUzq+5A/zQXZZLPLOLODlpph1gbC7Wo+R5N015nRlGELtf+1W3n70kAADlCFau2VOS1I+Lks9MQ57/GXu5GRk6Jt1DntfKlHO3SmJ8r70cAADl0LULvSgdLUg8M43Nfpi+215uxrJTqZFbKnFXw2vNJsa11WkvBwBA63T6NOsAU5R4ZhLrgjA9yF5uVvxwdF95/okSc5n95s/D4eiz7KUAACiHHyZLJMnMcRxhcqW2+uylZs2rpc/QZaKKX3vaWKfzrdrLAABQjiBKD5MkM7e5SmP3nZZmmZHn6kr78lpXTHntHccKeqECAEqVrXAx9wm8F9rLzFmlXt99YoUNaf0V72N7cZYuh2UvAwBA67zIfUQSzFxOn64fqqbPtpdpyVCUPklanWcU7GO6uILrigCAUtnp01knxSByfy1tAeBtc7HOZpjG7V7oXmevAABA6/woObIg4ewwJCmeYi9RimwquNh9u2hf24kNdLYBAJRKWlvLChLODiOIkw/aS5QmiN375bVn2lrcLK3LT9tTAQBojY5T1BZfQcKZNnT+0uGwvo+9TGkmxi6mvyzaZ1FI2f9H34M9HQCAuatUxu8tra0fFSWc6cKL06/ZS5Rqwfj4PeX1dQo4nfi7cN+NobPxkBQBAKXQqdIkuVyYTzY7iiB0/2YvUTqdIUf2MaNxiyRFAEBp/HDssZJcrs8nmx3E1e2cdzSbF3WGrVc99StJcRd7KgAAc+fX0ldJcrk7n2ymC72OZ09vC01yfpQeJ/uawTCRZA0tRQBAKYLYDRUnm+3G5qCavMie3jaynwUStzfstzC82C23pwAA0AIdMB+5r+QTzQ7ij52Yb3So6p4rrcVrC/bfFJIUP2lPAQBg7hYtO+G+kljW5hPNDuIT9vS2WlyrP96P3cUF+2+MTUGYvNWeAgDA3HnVkf39KLmzINkURhC5GxdW3YPt6W2l+5F9npkvQy7W+2FyiD0FAIC5k6TysVyS2UEkx9pT225hdfw+ss/vTi1DU9ywZKV7jD0FAIC5kyT3jYJEs71Yr6c07altNzGpwPTzoHqRO1eTpz0FAIC5sdOTl+cTzTTxFXtqRxxRq+0q+/xergxNEcRutW0OAMDc6bU4SSwzXS5qs1dLn2FP7YiZtRTT99nmAADMnRclrijRbCdOtad1TGVsbDfZ789y5WiM27WjkG0OAMDcVGon3V+SykxPnW4ejpKn21M7Rhcvln1fkCvLtgjdeZ0YLwkAmOeCOHltYaIpjnF7WkcdtSJ5nOz7mlxZtoYXJ75tCgDA3PlxclJRoimITV517Gn2tI4KotHnTTOGct1QlD7JNgUAYG4WrxrbW5LKDFe2T0+2p3Wc7F/nPi0oUxZnMgk4AKBlQZh+qiDJFMWGJctHH2VP67ggTlcWlGkyOjLVHABgHsuWZIqTPxQkmYLo3Ow1eTZG8fdTy5QN2L85WLlmT9sUAIC5sbGJUxJNQdyiPVTtaR3nV91+WoZcmbLwQrfMNgMAYO6klfX1okSTDy9Oj7CndEUQu/cWlUtiXTdP6QIA5olgRf3JklQ25pLMlAgi99dud2KRcpyWL5eGF6WjtgkAAHPnxy4pSjRTopa+yp7SFV5cf7SU47Yp5dLhIR2eag4AMA8N1ZJHSlJZl0syU8KL06/ZU7omiN1QUdmCMPmqbQIAwNxp55SiRJOL9YuWHf9Qe0pXZL1jQ3deQdk2ci0RANAyHb4gSeXWXJIpiHSxPaVrpKV6cGHZYne0bQIAwNzNqJUYu4t32rJlZ3tK10hZpqyfGETuxkq9vrttAgDA3AyH9X0ksczkWuLB9pSuGaq65xaVzQ/dv9smAADMnR8lxxcmmuZYZZt3lbRWv5Mvmxe5c+1hAADmzpZe2tG4xOu0c4s9pWv8ODlQyrI5V7Ytw7F7qm0CAMDcSVI5MZ9kpkSXxyROkrJ8N1+2IHJfsIcBAJi74XD0Wfkkk49emR2maMFjnVXHHgYAoDWSWH6VTzS5uKUyNrabbd41Op2cF7lL8+XTpG6bAAAwd36YvjufZPKhrTPbvKu8OPGnlq97S1YBAOaRSmX83pJY/jE10TRGcrxt3lU6e46UZ31j2ThtCgAojbQSP9+YZAriil4YpK+kLF/JlW2LH47uaw8DADB3S1a6x0hi2TQl0TREr1yrC6L0DVPKFyeH28MAALTGi9yPpySaxojTz9qmXXVErbarH7t/5so3bg8DANCaGXSuOcc27To/dCc0lk3nNl0wPn5PexgAgLlbWB2/j7QSb25MNLnYfORx9YfY5l3lVd3r8+UbqqbPtocBAGiNtBLr+UTTGEGYvNU27artnDb9hD0MAEBrtrv+4NbojeEXyg/dt3q1bACAfrdly86SXP7enGgaQtdI7BFB7IZy5fuFPQQAQOsksVRziaYpdIiGbdpVBa3ZG+whAABaF4TpQblE0xTSMnu/bdpVOr+qlKdp1prhKHmYPQwAQIv0tGnoLmtMNI3hRW7Etuw6Kc/ZjWUbjtOX2UMAALTOj9LjGhNNLi6wzbpOEnfUVLYw/YA9BABA64La6EuaEk1zbPKW1h9gm3ZVEKWHNZUtTJbYQwAAtE5nfZEEc0NTsmmIoSh5pW3aVQUda1bZQwAAlCOI3JdzyWZb9Mi8pv7q1Q9qLJcXuW/aQwAAlMOL3Tsak00uvmebdZ2U5Zpt5Up/Y3cDAFAOa31t3JZsmuIftlnXSavwpw3lusLuBgCgPJJgzmxINk2xeNXY3rZZV/mxSxrKdZvdDQBAefwwqTQkm+aI3aG2WVflyripUqncwx4CAKAcQTV5UUOyaQovTnzbrKvyQy8qq1bdzx4CAKAclcr4vSXJ3NaYcCYjiNwptllXBXHy2sZyDYf1fewhAADKI0nme40JpyHW2iZdNRwlT28sV7B85In2EAAA5fGj5MjGhNMQ6yuVyi62WdfoKv5N5aq5A+whAADKE0Sjz2tKOA3RC60x7UQjZdk0WaahavpsewgAgPIcXq/fSxLNHZMJpzGCKH2DbdZVfuz+OVmmoap7rt0NAEC5JNH8YjLhNIauWm+bdFXjclXaorW7AQAol7TAjm5MhFsjdqlt0lWSEM+bLJMucGx3AwBQLi90r2tKhNviLNukq6QcW1uwQeheaHcDAFCuYOWaPSXZbJ5MOtsiudI26SqbQGCBhvY6tbsBACifF7lLm5NhFpsrY2O72SYAAMx/Xpx+rSAhblkcjz3BNgEAYP7TuUuLEmKvrJ4PAEBHaOIrSoh+nBxumwAAMP9Zx5qChOi+aJsAADAYJAFeUZAQe2IsIgAAHSMJ8PtTEmLkvmcPAwAwGLzQLcsnRC9y59rDAAAMBj9MP5BPiH6UXmsPAwAwGHRppakJ0W3SFTFsEwAA5r9Kvb67JsBcQtyyeNXY3rYJAACDQRLglJ6mQ1H6JHsYAIDBIAlwytqIrEEIABg4kgDH8gnRr6WvsocBABgMXuQ+k0+IXpy+zR4GAGAweFHynnxCDKL0MHsYAIDB4MUjL8gnRD9KF9vDAAAMBh1iMSUhMsE3AGAQSRK8LZcUV9hDAAAMDkmAF+QS4on2EAAAg0MS4GlNCTF237aHAAAYHH7oolxCPMMeAgBgcEgSXNiUECN3jj0EAMDg8GL3rqaEGLrz7CEAAAbHcOxe3pQQI3ehPQQAwODwqmNPa0qIsbvYHgIAYHAsWnb8Q5sSYuQusYcAABgcC8bH7ylJ8O6GhHi5PQQAwGDxo/TahoR4td0NAMBg8ePkDw0J8Xq7GwCAweJF7seTCVH+fbPdDQDAYAki9+WGFuLtdjcAAIPFi5KwISHeZXcDADBYJAl+zI/Si+T2HLn9jd0NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhip53+Pw5WE82EbBtLAAAAAElFTkSuQmCC",
+ "ImageStream": {},
+ "Name": "Attacker",
+ "ParentId": "dd163aaf-713b-46df-bc66-4ace6c033067",
+ "Representation": "Ellipse",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": [
+ "Windows",
+ "Linux"
+ ]
+ },
+ "DisplayName": "PC OS",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "50bdc7ac-198e-4e1c-9a2e-5c3e035295aa",
+ "Type": "List"
+ }
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "generic PC",
+ "Hidden": "false",
+ "Id": "a8fb4cc3-8c76-49a9-b093-6983a9a1aa8b",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "PC",
+ "ParentId": "8db306cc-f8f5-4c07-8be2-48e2a0af38aa",
+ "Representation": "Rectangle",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": [
+ "Android",
+ "iOS"
+ ]
+ },
+ "DisplayName": "Mobile OS",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "cce9f994-89ab-4106-b41c-4348921ddd80",
+ "Type": "List"
+ }
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "generic mobile device",
+ "Hidden": "false",
+ "Id": "1a0bf3c5-9314-4208-b88e-64690c6d4c1b",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Phone",
+ "ParentId": "8db306cc-f8f5-4c07-8be2-48e2a0af38aa",
+ "Representation": "Rectangle",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "Generic server",
+ "Hidden": "false",
+ "Id": "4693ec5d-768e-4c77-9168-23bd2c2e5dfe",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "iVBORw0KGgoAAAANSUhEUgAAA4QAAAOsCAYAAAASsXhgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAMHkSURBVHhe7N1n+BXFtq/tIznnnDMSRQRJohgQJImIugQFMYGKAUQwZ5cC6jYgSBIETKAoSDAiguScUVByzsn9sc4e7WZt1AHSdHd1ej7c17ne95wlo7vnnP/6dVWN+n///d//bQAAAAAA6UMgBAAAAICUIhACAAAAQEoRCAEAAAAgpQiEAAAAAJBSBEIAAAAASCkCIQAAAACkFIEQAAAAAFKKQAgAAAAAKUUgBAAAAICUIhACAAAAQEoRCAEAAAAgpQiEAAAAAJBSBEIAAAAASCkCIQAAAACkFIEQAAAAAFKKQAgAAAAAKUUgBAAAAICUIhACAAAAQEoRCAEAAAAgpQiEAAAAAJBSBEIAAAAASCkCIQAAAACkFIEQAAAAAFKKQAgAAAAAKUUgBAAAAICUIhACAAAAQEoRCAEAAAAgpQiEAAAAAJBSBEIAAAAASCkCIQAAAACkFIEQAAAAAFKKQAgAAAAAKUUgBAAAAICUIhACAAAAQEoRCAEAAAAgpQiEAAAAAJBSBEIAAAAASCkCIQAAAACkFIEQAAAAAFKKQIjY+/33383+/fvNxo0bzeLFi823335rJk6caMaPH28++OADM3r0aDNixAjz7rvvAgAAnJWhQ4ea9957z4wdO9Z89NFHzrhi0qRJZvbs2WblypVm27Zt5ujRo+rYBIgTAiFi49TgJz/Gw4YNM/fee69p0aKFqVu3rqlWrZopV66cKVy4sMmTJ4/JmTOnyZYtm8mcObPJmDGj+X//7/8BAACclfPOO89kypTJZM2a1WTPnt3kypXL5M2b15QoUcJUrFjR1KpVyzRs2NBcd9115umnn3YC47Jly5ygeOTIEXUsA0QRgRCRt2fPHjN16lTz7LPPmg4dOpjy5cs7P9DajzcAAEBY5GX0xRdfbG6//XYzaNAgZ+USs4iIOgIhIkd+OFetWuUs9Wzfvr0pVqyYyZEjh8mQIYP64wsAABA1skIpd+7cpkqVKuaRRx4xX331ldm6das69gHCRCBEJBw/ftzs2rXLTJ482dxwww3m/PPPd5ZoaD+wAAAAcZM/f35n9vCxxx5zZg4PHjyojokA2wiECJXsC1yzZo2zHLR69erMAgIAgMSTPYktW7Z0mtXs3r1bHSMBthAIEYrDhw+bBQsWmLvvvtuUKVOGPYEAACB1pFFNnTp1nK6m0jRPXpRr4yYgSARCWPfLL7+Yhx56yBQvXtzp4KX9QAIAAKSFvBiXjqUSDGUbjTZ+AoJCIIQ169atM0888YTTgUv7MQQAAEi72rVrm/fff985aksbTwF+IxAicHJshBzsKj9w0nFL+/EDAADAH+Q8ZTlqa/78+RxbgcARCBGopUuXmptuuomD4QEAAFySo7eef/55OpIiUARCBGLfvn3m7bffdn7I2CcIAABwbmR11WWXXWZmzpxpTpw4oY67AC8IhPDdhg0bzB133MFeQQAAAJ9UrFjRDB482Bw5ckQdfwHnikAI38hbq59++snUrFlT/SEDAADAuZNVVz179jTbtm1Tx2LAuSAQwhdyruCIESNM2bJl1R8wAAAAeCdLSJs3b24WL17MuYXwBYEQnkn3qwEDBpi8efOqP1wAAADwj8wU1qhRwyxYsEAdmwFuEAjhyc6dO52lC9qPFQAAAIJTqlQpM27cOHWMBpwtAiHO2e7du02XLl1M1qxZ1R8pAAAABKto0aJm7NixnFeIc0YgxDmRMHjLLbdwviAAAEDI8ufP74RCbcwG/BMCIVzbvn276dy5M2EQAAAgIgoXLuwcS6GN3YAzIRDCFTn75s4772SZKAAAQMQUKFDATJkyhQPs4QqBEGft0KFD5rnnnnM6W2k/QgAAAAhXmTJlzLfffquO5QANgRBn5fjx4+btt982uXPnVn98AAAAEA21a9c2y5YtU8d0wF8RCHFWvvrqK1OsWDH1RwcAAADRkSFDBtOiRQuzb98+dVwHnIpAiH+0bt06U7FiRfUHBwAAANF0//33m4MHD6rjO+AkAiHOaNeuXebmm29Wf2QAAAAQXXnz5jUjRoxQx3jASQRCnFH//v1NtmzZ1B8ZAAAARFu5cuXMqlWr1HEeIAiEOK0ff/zRaV+s/bgAAAAg+qQ7fJs2bczu3bvV8R5AIIRq586dpnXr1hwxAQAAEHNZsmQx7777LucTQkUghOq1114jDAIAACSENAhcsmSJOu5DuhEI8TcLFiygqygAAECCyFEUN954I7OE+BsCIf6me/fuzo+G9mMSVTKbmSlTJpM9e3bnMNbrr7/e9OrVy7z66qtm0KBBZsiQIea9994DAAA4K9KdU8YQb7/9tnnuuefM3Xffba6++mpTvHhxZwlmxowZY7eaKmvWrGb27Nnq+A/pRSDEn8jsoPzIaT8iUVSkSBFzzTXXmBdffNF8//33Zv/+/ep1AQAA+OH33383GzduNB9++KG59957Tb169WI1dmrVqhUNZvAnBEL8x969e2Nx5mDOnDmdH9+BAweapUuX8qMGAABCcezYMbNp0ybzzTffmB49epiyZctGfpWVrKYaN26cej1IJwIh/mPatGkmT5486o9HFMgP7AUXXGBGjRrldEHVrgEAACAMsjdv+fLlpmfPnqZgwYLqWCYqGjdubPbs2aNeB9KHQAjHoUOHnHXx2o9G2CQI1qpVy4wePdrs27fPWarx1/oBAACi4Pjx4+aXX34x9913n8mXL586tgmbzBIOHjyYMRUcBEI4vvjii0j+aMmMpTS5WbNmDV2xAABAbBw+fNh89tlnpmHDhpFcRlq/fn1nu5BWO9KFQAjnB0sas2g/FmEqXbq0s2H76NGjat0AAABRt337dtOtWzeTLVs2dbwTpjFjxqg1I10IhDDTp083mTNnVn8owiAtnOVtmrRFZlYQAADE3YEDB0z//v0jt7fwkksuMZs3b1ZrRnoQCFNO9uR16NBB/ZEIg4TByy67zCxbtkytFwAAII6OHDli3n//fZMjRw51DBQGmbWUZn1avUgPAmHKTZgwweTOnVv9kbBNDnht3rw5Xa8AAEBiffrpp6ZkyZLqWCgMtWvXZi9hyhEIU0zeVLVs2VL9cQjD5ZdfbtauXavWCgAAkARydqHs3cubN686HrJNZglHjBjBNp0UIxCm2NSpU02uXLnUHwfbKlasaBYtWqTWCQAAkCTyUv6FF14wWbJkUcdFtsm5hJzxnF4EwpSSZZlR6SyaP39+M2XKFM7CAQAAqSEzhV27dnW2zGjjI5vkWIxhw4apdSL5CIQpJZ1F5VBS7UfBpkyZMpk+ffqwTAEAAKTOqlWrzIUXXqiOkWyTjqNyRIZWJ5KNQJhC+/fvN61bt1Z/DGxr1qyZ2bJli1onAABA0k2aNCkSS0dlomDIkCFqjUg2AmEKSWfRfPnyqT8GNknb5W+++UatEQAAIA0OHz7sLB2VZZvaeMkm6TgqZyZqdSK5CIQpI/v0rr76avVHwCY5b/CGG25wfgS1OgEAANJi3rx5plixYuqYySYJpWPHjlVrRHIRCFNG9g5GYfNykSJFzOzZs9UaAQAA0qZ3797qmMm2Ro0asZ0nZQiEKbJ7927Trl079ctv22233eZ019LqBAAASJvFixebcuXKqeMmmzJnzkzH0ZQhEKaIHO0QhXMHCxYsaH788Ue1RgAAgDQ6evSo6dWrlzp2sq1BgwbORIJWJ5KHQJgSBw8eNM2bN1e/9Lb16NGDvYMAAAB/IUs1o9D4TzqODho0iDOiU4JAmBITJ040efPmVb/0NmXLls0sWbJErREAACDt7r///kh0HL3ooovM3r171RqRLATCFJDZuBYtWqhfdttuueUWtUYAAABEZy+hGD16tFojkoVAmAJTp041mTJlUr/oNpUoUcLMnDlTrREAAAD/bU6cOGEeeeQRdSxlW+PGjc2mTZvUOpEcBMKEk6n+6667Tv2S23brrbc6G6a1OgEAAPCHZcuWReJcQtnqM2LECLVGJAeBMOEmTJhgcufOrX7JbcqfP79ZsGCBWiMAAAD+jxzN1bdv30icHV27dm32EiYcgTDBjhw5Eom9g+edd5654447zKFDh9Q6AQAA8Gdr1qyJzCyhnEsoS1m1OhF/BMIEi8q5g3ny5DHz5s1TawQAAIBOOo5qYyvbGjVqZHbt2qXWiPgjECbUnj17TMuWLdUvtW3dunXjHBsAAACX5KiuSpUqqeMrm2S1l8wSajUi/giECSWdReVQUe1LbZMsdfj+++/VGgEAAHB6spfw4YcfVsdYtjVp0sRs3bpVrRPxRiBMoP3795s2bdqoX2bbbr/9dmcvo1YnAAAAzmz9+vWmUKFC6jjLJploGDJkiFoj4o1AmEDSWTRfvnzql9km6W66cOFCtcagycbnzZs3m8mTJ5tnnnnGtG3b1tSoUcNZdiHnIQIA4EaZMmVM5cqVTf369U2XLl3Mm2++aebOnWv27dun/h2Kmx07djgregYMGGCuv/56U6dOHed6S5Uqpd6PJDv1WXft2tW89dZbTi+EsJ61zBL26tUrEh1Ha9WqZQ4ePKjWifgiECaMBKGodBa95ZZbrM8Oyl5FCYIvvPCCadCgQSSWzQIAkkm2RcgLx08++cQcPnxY/bsUZfI3c/fu3c7esKZNm0biZXIUyZjm5LMeP358KCufZC+hhFWtPpsklI4dO5beEAlDIEyYr776ymTKlEn9EttUuHBhM3v2bLXGoMhSWTk8Vd7saTUBABAUCQszZ85U/z5F0fHjx50VRfXq1VOvB6fXvn17M2vWLPW+BklmCbV6bGvcuDF7CROGQJgg8pZPfqS0L69tt956q7PEQaszCPLDJN1Mo3DMBgAgfWQWSV5IDh8+PPKzhTJeeP7555kRPEfyrMuVK2dGjhxpdbZQtuGULVtWrcmmzJkzO9eu1Yh4IhAmyPTp0yMRiAoUKGBmzJih1hiEnTt3Om9mozAzCgBINzl794033nBm4LS/WWGTl7X33HOPc9i4Vj/OnjzrQYMGWXvWR48eNQ8++KBai21yLqEccabVifghECaEbPBt3ry5+qW1rXv37tbejm7fvt0Jg/K2TqsFAADbpKnaa6+9pv7dCpOMFXr27MkLVB9JKJQGQ9r9DoKsiMqbN69ai03So+Gdd95hL2FCEAgT4vPPP4/E0o+sWbM6G5+1Gv0mDXQee+wx59/UagEAICxFihQxc+bMicyAWep4//332VoRgOLFiztdSG09awn1GTJkUGux6aKLLkpMl920IxAmgKxfv+aaa9Qvq22dOnVSawzCjz/+6LyZ0+oAACBssnJHjnPQ/obZtnLlSlOtWjW1TnjXsmVLs2vXLvXe+23x4sWR2EsoxowZo9aIeCEQJoDsHYzC8g95Q/bDDz+oNfpNNsTLUlGtDgAAokD+Nr/77rvq3zHb7rvvvkjMKiWVPGvpdK7de7/JCqk+ffqoddjWpEkT57gvrU7EB4Ew5mSqvkOHDuqX1LbOnTs7G561Ov0mwTNnzpxqHQAARIUMmMNeVifN1/Lnz6/WB/9cdtllzhFY2jPw27Jly5yzEbU6bJLmRO+9955aI+KDQBhzEydOdDava19Sm2T/4oIFC9Qag9CjRw+1DgAAokT+Pn755Zfq3zJbpBMmzdeCJ13Wp02bpj4Dv0m32EceeSQSs761a9dmL2HMEQhjTPYOtmjRQv1y2iR/ZO644w6ne5lWp99kjf4FF1yg1gIAQJTI38gnn3wytOYy8rf5hhtuUGuDvyScPfvss9ae9dq1a03RokXVWmySWcJhw4ZFpoES3CMQxtjUqVMjMTsoNcydO1etMQjSta1EiRJqLQAARE2rVq2cGR3tb1rQNm7caOrUqaPWBf+1adPG2eOnPYsgSMdRrQ7bGjdu7PR30GpE9BEIY2rv3r1ORyvtS2nbbbfdptYYlPHjx9M2GwAQG+XLl7d2Pu9fSUfKwoULq3XBfxUqVLB2UL2Qo74qVqyo1mKTzIQPHz5crRHRRyCMKZkdlENBtS+lTdJZ9Pvvv1drDIr84HCoLgAgLmQlzaFDh9S/aUGTFTyypE+rC/6TZ21zNlj+rYcfflitxTZpoCQH52t1ItoIhDF04MCByBy5ILODspdRqzMogwcPZnM8ACA25CWmrX32fzVr1iyOm7BInrXt5cHr1683BQsWVOuxSSYqZC+hViOijUAYQ7JkMm/evOqX0SY5FF6Womg1BknO+WGGEAAQF/L3khnCdJBnbTsQyr8nHUczZsyo1mRTzZo1Q3v5gXNHIIwZ2agclc6it956ayh7IiQQR6GZDgAAZ0P2eIW1h1D2mEWhE2VaVKpUyeoewpOWLl1qSpYsqdZkk4TSMWPG0HE0ZgiEMSN7B6MwO1aoUCHz008/qTUGbd68eZH40QMA4GxI50nbs0Yn/frrr6Zu3bpqXfCfbOmx2WX0VL1791Zrsq1hw4Zmy5Ytao2IJgJhjEg733bt2qlfPtu6du0a2h+3PXv28McNABALsn/v+eefD23GRGYmb775ZrU2+Eue9UsvvRTas160aJHT0VarzabMmTPTcTRmCIQxIrODUThuQTYuz5gxQ63RlqicuwMAwJkUKFDATJ8+Xf1bZsu7775LMzYLZPXUN998oz4DG44ePWoeeughtTbbGjVqxLmEMUIgjAnpLHr11VerXzrb7r777tD2Qpwky1Vl47ZWHwAAUdGsWbPQm2zIyhrOIgzeVVddFfqz3rx5s8mXL59an03ScXTQoEHsJYwJAmFMTJw4MRJfcOlUFkZn0b/at2+fufHGG3njCQCIrCxZsjgNNrS/Y7ZJF0o6dAcna9as5sMPP1TvvU0SwGQVVRSOGrnooouc8ZpWJ6KFQBgDsgSgZcuW6pfNtk6dOkXmbc+CBQsicfwGAAAaaSYTlWVzclZdrVq11Drhjbyclh4PMhOr3Xvb5MV92bJl1Vpti8oLEZwZgTAGotJZtHjx4mbmzJlqjWGQYPryyy87yxK0egEACEuJEiXMihUr1L9fYZC/mbLaiO0W/itdurRZuXKlet/DIF1OZUZYq9W2xo0bm02bNql1IjoIhBEnb5uuu+469Utmm5w7eOTIEbXOsOzatcupKwpLIwAAENJ8bdiwYerfrTDJ4fhPPvmks7xRqxvuSSOZ9957T73fYYrKuYSy1WjEiBFqjYgOAmHEffbZZ5E4hD1//vzO+X9ajWGT5TgdO3ZkbwQAIHSy33/IkCGhnUX3T+TIKOlEmSNHDrV+nD0ZG8nxClF81rLdSGYJo/DCvE6dOpFZTgsdgTDCZDYuCnsHZW387bffHnrnrDORmULZRM2eQgBAGGTgXaVKFfPRRx85g3Htb1VU7N+/37z66qumSJEiNGc7B/Kszz//fPPxxx+Hdibz2Vi7dq3zjLVrsEm29siMOR1Ho4tAGGHTpk2LxFr/nDlzmjlz5qg1Rokshfnkk09MhQoV1OsAACAoN910k9PsTPv7FEUyqyXnI8oeL+16cHpy0P/ChQvV+xo19913n3oNtjVp0oRzCSOMQBhRe/fujUxn0dtuu02tMarkzEZZr37ZZZexJAYAEBjZoyXdt2fPnh3ZJaL/RFYjyQtoOetYDtHXrjPtZBa1VKlS5pZbbnFekMdppkv2ElaqVEm9Lttkea1WI8JHIIwoeWsnG3G1L5RNxYoVM999951aY5TJj/W2bduc2gcMGOC8ua1Xr56pWrWqqVy5MgAArtWoUcN52XjPPfc4Lx6XLFniLL/U/g7FjczeSNh5++23TZcuXZyZw2rVqqn3IQ3kWTdr1szce++9ZuTIkU6wkhfO2r2LMlnS2rt3b3WMZ9sll1zijM20OhEuAmEEyR+Xtm3bql8m27p16xa5zqIAAAA4O+vWrTOFCxdWx3k2yV7CoUOHqjUiXATCCBo/fnwkmqNIDXK4qVYjAAAAok9mCfv27WsyZsyojvdsqlmzZmJm1ZOEQBgxx48fd9bxa18im2S9vCwZOXz4sFonAAAA4mH58uWROJdQjggbPXo0HUcjhkAYMVOmTDGZM2dWv0Q2yUGrcegsCgAAgH/Wp08fdcxnW8OGDc2WLVvUGhEOAmGEyIbuqOwdlM6iMlup1QkAAIB4kSZIFStWVMd9NsnEh5xLqNWIcBAII0TaPsuZf9qXx6aCBQuaH374Qa0RAAAA8XP06NHIdByVWULOJYwOAmFESCvjq666Sv3S2NajRw86iwIAACTM1q1bTf78+dXxn01ytJocccJewmggEEbEp59+avLly6d+aWySlsBy1o5WIwAAAOJLAthDDz0UiY6jderUMfv27VPrhF0EwgiQKfwWLVqoXxbbOnfuzNsaAACAhJK9hGXLllXHgbaNGTNGrRF2EQgjYOrUqZF4U1OiRAkza9YstUYAAADEn7z479evnzoWtK1Ro0Zm06ZNap2wh0AYsj179pj27durXxLb5NxBma3U6gQAAEAyLFu2zJQqVUodD9qUNWtWM3z4cLVG2EMgDNlnn31mcufOrX5JbCpQoICZP3++WiMAAACS49ixY84sYYYMGdRxoU2yl1AmSLQ6YQeBMESHDx+OxN7B8847z9xxxx3m4MGDap0AAABIlnXr1pkiRYqoY0ObpKHh0KFDzYkTJ9Q6ETwCYYi+/PJLkydPHvXLYZOcfcjsIAAAQLrcf//96tjQNs4lDBeBMCTSZjcqnUW7deum1ggAAIDkkr2ElStXVseHtg0bNkytEcEjEIZkypQpzqGc2hfCpuLFi5sZM2aoNQIAACC5ZC/hI488oo4RbWvSpInZsmWLWieCRSAMgcwOtm3bVv0y2HbbbbeZI0eOqHUCAAAg2dauXRupvYRajQgWgTAE48ePN3nz5lW/DDZJDYsXL1ZrBAAAQPKd7DgahTOxa9asafbv36/WieAQCC07fvy4ufrqq9UvgU3SWbRr165Op1OtTgAAAKTD8uXLTcmSJdUxo02ZMmUyo0aNcg7P1+pEMAiElsnewSxZsqhfApsKFSpk5syZo9YIAACAdOnTp486ZrRNOo5u3bpVrRHBIBBaJO10o7R3UGYrtToBAACQLkuWLDEVK1ZUx402ySwhHUftIhBaNG3aNOfMP+3Db5PMDtJZFAAAACcdPXrU9O7dWx072taoUSPOJbSIQGjJgQMHTPPmzdUPvW3du3ensygAAAD+RJZqFihQQB0/2iRHs7399tvsJbSEQGjJp59+avLly6d+6G2Slr6yJECrEQAAAOklAaxXr16R6Dhap04dOo5aQiC0QNr5RqGzqOjcubM5ceKEWicAAADSbenSpaZs2bLqONK2MWPGqDXCXwRCC6ZOnRqJNy3Fixc3s2bNUmsEAAAAZJbw0UcfVceStslewk2bNql1wj8EwoDt2bPHtG/fXv2Q29alSxdnw7BWJwAAACCWLVtmSpcurY4nbcqaNasZPny4WiP8QyAM2MSJE03u3LnVD7lNskF43rx5ao0AAADASbLdqV+/fiZDhgzquNIm2UsoEyxanfAHgTBAhw4disTewfPOO8/cddddTj1anQAAAMCpfvnlF1O0aFF1bGmTNEQcMmQIPTACRCAM0Jdffmny5MmjfrhtkrMPFyxYoNYIAAAAaB544AFnYkEbX9rUsGFDziUMEIEwIPv27TMtWrRQP9S2devWTa0RAAAAOB3ZS1i5cmV1fGkbewmDQyAMyJQpU5yNsNoH2ibpLDpjxgy1RgAAAOB0jh8/bvr27auOMW1r0qSJ2bJli1onvCEQBkBmB9u2bat+mG3r2rWrOXLkiFonAAAAcCZr1641RYoUUceZNslewmHDhqk1whsCYQDGjx9v8ubNq36YbZIaFi9erNYIAAAA/BPpOCrnEmbKlEkdb9pUs2ZNs3//frVOnDsCoc9kaj0qnUVldvDw4cNqnQAAAMDZWLFihSlZsqQ65rQpc+bMZtSoUc7h+VqdODcEQp9FZe9gwYIFzdy5c9UaAQAAADceeeQRdcxpm3Qc3bp1q1ojzg2B0EfSDjcqewdvu+02Z7ZSqxMAAABwY8mSJaZSpUrquNMmWbrKXkJ/EQh9NHXqVOfMP+3Da1PhwoXpLAoAAADfyF7Chx9+WB172taoUSOza9cutU64RyD0yYEDByKxd1B0796dzqIAAADwlRz7INuStPGnTdmyZTODBg1iL6FPCIQ+mTBhgsmXL5/6obUpR44czpS+ViMAAABwrk6cOGF69+5tMmbMqI5DbbrgggvoOOoTAqEPotJZVHTu3Nn5smp1AgAAAF4sXbrUlClTRh2H2jZ27Fi1RrhDIPSB7B3MkCGD+kG1qXjx4mb27NlqjQAAAIBXskzzscceU8eitknH0U2bNql14uwRCD2SzqLt27dXP6S2denSxRw9elStEwAAAPDDsmXLIjFLKEe9DR8+XK0RZ49A6NHEiRNN7ty51Q+pTQUKFODcQQAAAAROOo7269cvEivkLrzwQrNnzx61TpwdAqEHhw4disTewfPOO8/cddddTj1anQAAAICfNm7caIoWLaqOTW3Knj27GTJkCD00PCAQejB58mSTJ08e9cNpk5x9uGDBArVGAAAAIAgPPfSQMzGhjU9tatCggbONS6sR/4xAeI6kzW2LFi3UD6Vtt912m1ojAAAAEJTly5ebypUrq+NT29hLeO4IhOdoypQpzkZW7QNpk3QWnTFjhlojAAAAEBQ5eu3RRx9Vx6i2NWnSxGzevFmtE2dGIDwH+/btM+3atVM/jLZ17drVHDlyRK0TAAAACNLatWsjsZcwW7ZsZtiwYWqNODMC4TkYP358JPYO5s2b1yxevFitEQAAAAiadBx9/PHHTaZMmdTxqk01a9Z0Jm60OnF6BEKX5EMflc6isneQzqIAAAAI06pVq0ypUqXUMatNmTNnNu+9955zeL5WJ3QEQpemTp0aib2Dcu7gTz/9pNYIAAAA2PTwww+rY1bbGjVqZLZt26bWCB2B0AVpZ9u2bVv1w2ebzA7KRl6tTgAAAMCmJUuWRKLjqCxdZS+hOwRCF2R2MEeOHOqHz6bChQvTWRQAAACRIduqHnnkEXXsapvMEu7cuVOtE39HIDxLUTp38O6776azKAAAACJly5YtplChQur41SbpODpo0CC1RvwdgfAsTZgwweTLl0/90NmUM2dOZ0peqxEAAAAIy4kTJ5xZwowZM6rjWJtq165tDhw4oNaJPyMQngX5cEehs6jo3LkzewcBAAAQScuWLTNly5ZVx7G2jR07Vq0Rf0YgPAuydzBDhgzqB82m4sWLm9mzZ6s1AgAAAGGTIx+eeOIJdSxrW8OGDc2mTZvUOvF/CIT/QDqLtm/fXv2Q2dalSxdz9OhRtU4AAAAgCpYvX27KlSunjmdtkqPihg8frtaI/0Mg/Aeff/65yZUrl/ohs0nOHZwzZ45aIwAAABAV0nH00UcfjcQKu7p16zoTPFqd+AOB8AwOHToUib2D5513ntNZVOrR6gQAAACi5LfffjNFixZVx7Y2Zc+e3QwePNjpCaLVCQLhGU2aNMnkzZtX/XDZJGcfLliwQK0RAAAAiKJevXo5Exva+NamBg0aMEt4BgTC04jSuYNdu3ZVawQAAACiSvYSVq5cWR3f2jZixAi1RhAIT2vKlCnORlTtA2VTiRIlzIwZM9QaAQAAgKiSo9Iee+wxdYxrW5MmTczmzZvVOtOOQKjYt2+fadeunfphsk06ix45ckStEwAAAIiytWvXmmLFiqnjXJuyZctGx9HTIBAqxo8fb/LkyaN+mGyS/YuLFy9WawQAAACiTjqOyrmEmTJlUse7NtWoUcOZ+NHqTDMC4V/IhzYqnUW7detGZ1EAAADE2urVq02pUqXUMa9NWbJkMSNHjnQOz9fqTCsC4V/I3kGZUtY+RDbJuYNz585VawQAAADipG/fvuqY17aGDRuabdu2qTWmFYHwFNKOtk2bNuqHxzaZHeS8FAAAACTBsmXLTJUqVdRxr00ZM2Y0w4YNU2tMKwLhKaZOneqc+ad9eGwqUqQInUUBAACQGLItKyqzhI0bNzY7d+5U60wjAuH/itK5g3fffTedRQEAAJAoW7ZsMYULF1bHvzZlz57dDBo0SK0xjQiE/2vChAkmX7586ofGppw5c5olS5aoNQIAAABxJduhZJYwCh1Ha9eubQ4cOKDWmTYEwv8hH84odBYVnTt3dg7x1OoEAAAA4mz58uWmTJky6jjYtnHjxqk1pg2B8H/I3kE55kH7oNhUvHhx89NPP6k1AgAAAEnw5JNPqmNh2xo0aGA2bdqk1pgmqQ+E0lm0ffv26ofEtq5duzobbrU6AQAAgCSQjqPly5dXx8M2Zc2a1QwfPlytMU1SHwi/+OILkytXLvVDYlPBggWZHQQAAEDiyQTIo48+ajJkyKCOi2266KKLnAkirc60SHUgPHToUCT2DspyVeksKvVodQIAAABJIks15ag1bWxsk3QcHTx4cKrP/051IJw0aZLJmzev+uGwSc4+XLhwoVojAAAAkES9evWKxCzhxRdfnOpZwtQGQmkzG5VzB2XvoFYjAAAAkFTScbRy5crq+Ni2kSNHqjWmQWoD4ZQpU0yWLFnUD4RNJUqUMDNmzFBrBAAAAJJKjlp7/PHH1TGybU2aNDGbN29W60y6VAbCffv2mWuvvVb9MNh26623miNHjqh1AgAAAEm2Zs0a5+g1bZxsU7Zs2cyIESPUGpMulYFw/PjxJk+ePOqHwaZ8+fKZxYsXqzUCAAAASScdR+VcwkyZMqnjZZtq1KjhTBxpdSZZ6gLh0aNHI9NZtFu3bnQWBQAAQKrJLGGpUqXUMbNNsp1M9hL+/vvvap1JlbpAKHsHpb2s9iGwKX/+/Gbu3LlqjQAAAECa9O3bVx0z29awYUOzfft2tcakSlUglHayrVu3Vh++bTI7mObzTgAAAICTli1bZqpUqaKOm23KmDGjGTZsmFpjUqUqEE6dOtU58097+DbJIZx0FgUAAAD+IHsJ+/Xrp46dbWvcuLHZsWOHWmcSpSYQ7t+/37Rs2VJ96LbddddddBYFAAAATiHHPhQuXFgdP9sk28veeecdtcYkSk0g/PTTT52untpDtylnzpxm0aJFao0AAABAWsm5hH369IlEx9HatWunpvljKgKhdApq27at+rBt69y5szMlrtUJAAAApNny5ctNmTJl1HG0bTKhpNWYNKkIhPPnzzcZMmRQH7RNxYoVM3PmzFFrBAAAAPDfzrmE2ljatiuvvDIVewkTHwgPHz5s7r77bvUh29alSxdmBwEAAIAzkI6j5cuXV8fTNslWr88//1ytMUkSHwhlv17JkiXVh2yTnDs4a9YstUYAAAAAfzh69KhzLuF5552njqttateuXeKPikt8IJQp57A/TPLvyyxlWjamAgAAAF5Ix1E5qk0bW9skXU9/+ukntcakSHQg3LNnj9MhSHu4NsnZhwsXLlRrBAAAAPB3vXv3Dr0PiBxU/8QTTzgdULUakyDRgfDDDz80uXLlUh+uTbJ3UKsPAAAAgE46jlauXFkdX9tUtWpVs3v3brXGJEhsIJRmMp06dQp9uWjx4sXN999/r9YIAAAAQCd79x599FF1jG2TzFImublMYgPhtm3bTKFChdSHatMtt9xijhw5otYIAAAA4PRWrVrlTLBo42ybbrvttsQ2l0lsIHzvvffUh2lTvnz5zOLFi9X6AAAAAJyZ7N176qmnTKZMmdTxti3VqlUzq1evVmuMu0QGQpmRu+GGG9SHaYssVe3WrRudRQEAAAAP1q5dG/oxctmyZTOffPKJWl/cJTIQrlixwlSpUkV9mLbkzZvXzJkzR60PAAAAwNnr06ePOua2SSZ7tNriLpGB8IMPPjCZM2dWH6Qt8oFJ+iGWAAAAgA3Lli1zun1q425bSpcubQ4ePKjWF2eJDIQ9e/ZUH6It0szmu+++U2sDAAAA4M6xY8dCnyWU4+xmz56t1hdniQuEMitXvXp19SHa0rlzZ/YOAgAAAD7asGGDsy1LG3/bIIfUv/TSS+b3339X64urxAVCOcAyT5486kO0QTogce4gAAAA4C+ZJbzzzjtDPWe8Q4cOZv/+/Wp9cZW4QDhixAiTJUsW9QHaUL9+fWYHAQAAgAB8+eWXztFu2jjcBmlc+dtvv6m1xVWiAqGcUxLm/kEJom+99VbippEBAACAKJDj5S699FJ1LG6DLBudN2+eWltcJSoQ7t6927Rs2VJ9eDZI5yHpgKTVBgAAAMC7V199NdRlo8OGDVPriqtEBcKNGzea8uXLqw/OhtatW3PUBAAAABCgRYsWOV39tfG4Dd27d1friqtEBUKZvpVpXO3BBU3eUiTtbQEAAAAQNbIqsFWrVuqY3IbGjRubw4cPq7XFUaIC4bhx49SHZkPBggWdtxVaXQAAAAD8If06nnnmmdCWjVarVs1ZmajVFkeJCoRPP/20+tBsuOyyy8z27dvVugAAAAD4Z+bMmc5xb9q4PGglSpQwc+bMUeuKo0QFwk6dOqkPzQbpbipdTrW6AAAAAPhHlmzmz59fHZcHTc48nzhxolpXHCUmEMpBlU2aNFEfWtAyZMhghg4dqtYFAAAAwH+XXHKJOjYPmoz9Bw8erNYUR4kJhNu2bTO1atVSH1rQZLp6yZIlal0AAAAA/NerVy91bG7Do48+qtYUR4kJhGvWrDGVK1dWH1jQcuXKlahOQwAAAEDUyQo9ma3TxudBu/POO9Wa4igxgXD+/PmmVKlS6gMLmnQa0moCAAAAEIzJkyc7+/m08XnQ2rZtq9YUR4kJhF9//XVoB1Qm6QMBAAAAxIGcQV66dGl1fB60Bg0aqDXFUWIC4WeffWZy586tPrCg3XXXXWpNAAAAAIKxevVqU7VqVXV8HrRKlSqpNcVRYgLhxx9/bLJnz64+sKA98cQTak0AAAAAgrF161ZzwQUXqOPzoMlZhFpNcZSYQDh27FiTNWtW9YEF7dVXX1VrAgAAABCMffv2OUs3tfF50AoUKKDWFEeJCYSjRo1yjn/QHljQBg0apNYEAAAAIBjS5b9x48bq+DxocsqAVlMcJSYQDhs2zJx33nnqAwvaiBEj1JoAAAAABOPEiROmadOm6vg8aBkzZlRriqPEBMJ3331XfVg2vPjii2bp0qUAAAAALKpXr546PrdByyRxRCAEAAAAAJe0TBJHBEIAAAAAcEnLJHFEIAQAAAAAl7RMEkcEQgAAAABwScskcUQgBAAAAACXtEwSRwRCAAAAAHBJyyRxRCAEAAAAAJe0TBJHBEIAAAAAcEnLJHFEIAQAAAAAl7RMEkcEQgAAAABwScskcUQgBAAAAACXtEwSRwRCAAAAAHBJyyRxRCAEAAAAAJe0TBJHBEIAAAAAcEnLJHFEIAQAAAAAl7RMEkcEQgAAAABwScskcUQgBAAAAACXtEwSRwRCAAAAAHBJyyRxRCAEAAAAAJe0TBJHBEIAAAAAcEnLJHFEIAQAAAAAl7RMEkcEQgAAAABwScskcUQgBAAAAACXtEwSRwRCAAAAAHBJyyRxRCAEAAAAAJe0TBJHBEIAAAAAcEnLJHFEIAQAAAAAl7RMEkcEQgAAAABwScskcUQgBAAAAACXtEwSRwRCAAAAAHBJyyRxRCD0wZVXXml69OgBAAAAwKISJUqo43MbtEwSRwRCH7z33ntqTQAAAACCc9lll6njcxu0euKIQOgDAiEAAABgH4HQOwKhDwiEAAAAgH0EQu8IhD4gEAIAAAD2EQi9IxD6gEAIAAAA2Ecg9I5A6AMCIQAAAGAfgdA7AqEPCIQAAACAfQRC7wiEPiAQAgAAAPYRCL0jEPqAQAgAAADYRyD0jkDoAwIhAAAAYB+B0DsCoQ8IhAAAAIB9BELvCIQ+IBACAAAA9hEIvSMQ+oBACAAAANhHIPSOQOgDAiEAAABgH4HQOwKhDwiEAAAAgH0EQu8IhD4gEAIAAAD2EQi9IxD6gEAIAAAA2Ecg9I5A6AMCIQAAAGAfgdA7AqEPCIQAAACAfQRC7wiEPiAQAgAAAPYRCL0jEPqAQAgAAADYRyD0jkDoAwIhAAAAYB+B0DsCoQ8IhAAAAIB9BELvCIQ+IBACAAAA9hEIvSMQ+oBACAAAANhHIPSOQOgDAiEAAABgH4HQOwKhDwiEAAAAgH0EQu8IhD4gEAIAAAD2EQi9IxD6gEAIAAAA2Ecg9I5A6AMCIQAAAGAfgdA7AqEPCIQAAADRdvz4cXPo0CGzZ88es2bNGjNlyhTzzjvvmGeeecb07NnT3HrrraZTp07/0blzZ3PPPfeYxx57zLz++utmwoQJZsGCBWb37t3mwIED5tixY+q/A7sIhN4RCH1AIAQAAIgeCW2rVq0yo0ePNr179zZXXHGFKVy4sDnvvPPUMd3ZyJs3r7nooovMHXfcYQYPHmxmzZrlBE3t30fwCITeEQh9QCAEAACIBpnBk5m8V155xVx66aWmVKlSJnv27J5C4OlkyZLFCZgXXnih6dWrl/n666/Ntm3bzIkTJ9Ta4D8CoXcEQh8QCAEAAMK1d+9eZyawVatWplChQuqYLWjZsmUzTZs2NS+++KLZsGGDWif8RSD0jkDoAwIhAACAfbIvcPHixeaBBx5wZuoyZMigjtVsk9lICYcdO3Y0kyZNMocPH1brh3cEQu8IhD4gEAIAANgjQXDlypXm3nvvNeXLlw9kOagfpK4CBQqYa6+91nz77bfsNQwAgdA7AqEPCIQAAAB27Nq1ywwYMMCUKVNGHZdFlTSjkUY069evV68L54ZA6B2B0AcEQgAAgGAdOXLEfPnll6Z27domc+bM6pgs6mTGsHTp0mbgwIFO8xvtOuEOgdA7AqEPCIQAAADB2bFjh+nXr5+zT1Abi8WNdD1t3769cyQGHUm9IRB6RyD0AYEQAADAf7///ruZO3euadCgQWQaxvhJ9j8OGzaMUOgBgdA7AqEPCIQAAAD+Onr0qBk1apSpUKGCOv5Kijx58phHH33U2Rup3QecGYHQOwKhDwiEAAAA/pEw+Nprr5n8+fOrY6+kkT2Rd955p7M0VrsfOD0CoXcEQh8QCAEAAPwhM2W9evVK5BLRM5GGM02aNKELqUsEQu8IhD4gEAIAAHi3b98+0717d+dQd23MlQZXXXWVWb58uXp/8HcEQu8IhD4gEAIAAHgjYbBnz54mY8aM6ngrTRo3bmx+/vln9T7hzwiE3hEIfUAgPDPpECZr4hcuXGi++uorM2nSJMfkyZPN7Nmzzbp165y9Atr/Nq2k29jWrVvNvHnzzLRp0/5zz6ZMmWLmzJljNm7caI4dO6b+b9NK7sevv/7q3B+5Tyfvmdw/uY9btmwxx48fV/+3aSXfOxlwyPdQzvY6ec/ke7pgwQKzfft25/ur/W/T6vDhw2b16tVm5syZzm/YyXv29ddfmyVLltAUAjhHBw4cML17947t+YJ+k+WyzZo1M5s2bVLvF/4PgdA7AqEPCIR/J4PIQ4cOmVmzZpkHH3zQedNVtmxZkzt3bufHXmTNmtUUKVLE1KpVy1x33XVOJzEJQWltvSz3bP/+/c5gXDaWS4vtkiVLmpw5c/7nnskSmuLFi5sLL7zQ3HjjjWbixInOADStg3a5bjnY94svvjD/+te/TN26dZ37I/fp5D3LkSOHcx8vvvhi061bNzN9+nTnLXRa75l8v7Zt22bGjh1rOnTo4BzwXLRoUef7ePKe5cqVy5QpU8Y0atTI3H///eaHH35wvs9pvWfyIkEGZYMGDTJt27Y11atXN4UKFTJZsmRx7pf8n9IlUDohXnLJJU63QHkBJuFR++8B+DP5XXr99dedMYI2zkor2VN4xx13cID9PyAQekcg9AGB8M9k1kFmG1q3bm0yZcqk3rPTkUHogAEDnNkc7b+dVEeOHDFjxoxxftTkD4B2b05HAvVbb71l9u7dq/63k0reJr/99tumTp066n05Hbm/MmiX763cd+2/nVQSBAcOHOi6hbu8qW7VqpX5/PPPUzebLzOoTz75pClWrJh6b05HDp2WwC0zicxMA6cnL5pktj3NewbPRMZRMnOa1hdyZ4NA6B2B0AcEwv8jQe722283BQoUUO/V2ZC37fXq1XP+QCR9ICU/8CtXrjQ33HCDpzej8oe0efPmzkxO0v9oyPXJEsdrrrnG0wBCZsGuv/56s3Tp0sTfM3n7LstoGzZs6Hy/tPtxNqT9+2233eYszdX+nSSR2b3x48eb888/3/WLrVPJ7GufPn1oJQ+cxvz5802NGjXU7w/+ICsQxo0bx8ul0yAQekcg9AGB8A+yr6ZFixbqPToXhQsXNiNGjEj0XrmffvrJ1K9fX73+c1G+fHln+WRSl91KcJNgU7lyZfX6z4Usv5Ugrf17SSADCFkeKt8n7frPxZVXXmmWLVum/ntJILOgr7zyismXL596/W5JoGzfvr3ZvHmz+u8BaXXw4EHTpk0b9XuDP6tYsaJZsWKFeh/TjkDoHYHQBwTC/3Z+pGTponZ/vJD9c/3790/cDI5cj7wVlT2U2nV7kTdvXvPhhx8m8p599tlnzvVp1+2FzGjLrGMS79l//dd/Od8j7bq9qFq1aiJDobxMefjhh509ldp1e3HppZeaX375Rf13gbSRl71PPfWUsw9X+77g72RlDPsJ/45A6B2B0AdpD4SyFOrqq68O7ABZad4gQSBJs16rVq1ylu9p1+sHmUH7/vvv1X87rn788UdTrVo19Xr9IDO1snxU+7fjSMKgzBa73ft2tuT7LmdlJWnWS2ZTR48e7ez/067ZK5kp7Nixo9OgR/v3gTSRjtAFCxZUvyvQSZM02Qeu3c80IxB6RyD0QZoDobzhe/zxx9X74ieZjUjKeTzSyKRTp07qdfpJOm4mZeAp1yGdarXr9JN0u01KoxnpiindMLXr9FOvXr0Ss6xbjtqQbsjadfpFgrTM2rIXCGkm3bFltkv7juDMZC/3hg0b1PuaVgRC7wiEPkhzIJQz3vzcm3Q6J1svx32wLrM28nmx0Vpb7tkLL7wQ+8G6DJxlP5eNg4rl7evQoUNjPxst3xM53Nltx9pzIW/4pfuoVkecyEsHW3uZSpUq5YRPrQ4gDaRDNF1Fz50coSSdtrV7m0YEQu8IhD5IayCUQbN0x9TuSRDkLDnZ56XVEhfyA96kSRP1+oIgM0Rr1qxRa4kLeRMaxP7U05GlvHHfoyH7U4Oe6TqVnM0X9xAtzYr8aiJzNh544IHE7VkFzsaePXsCXf6fBrLv/bvvvlPvbxoRCL0jEPogrYFwyZIlgTT4OBMZRGm1xMU333yjXleQ3njjDbWWuLD93ZZZtUmTJqm1xEW/fv3UawuKvOlftGiRWkscyIxq586d1WsLigT2tWvXqvUASSUrPqRRnJejXPAHWdGQlC0OXhEIvSMQ+iCNgVDebL/00ktWlvGdSgZRcV0CKTMoPXr0UK8rSM2aNYvtfiWpu2XLlup1BUmW48R1xku+H7LnVruuoMi+uGeeeSa2M15yYL+Npe+nkhA9bNgwtR4gqaTLLmcO+kNWNEjjMO0+pw2B0DsCoQ/SGAj3799vOnTooN6PIEkAjWsnSBl02miM8leyX2n9+vVqTVEnjYQqVKigXleQ6tWrZ7Zs2aLWFHVyFEQQx0z8E1k2unfvXrWmqPvqq6/UawraXXfdlZiGPMDZkD3aNvY2nwupS2YuZeWTvCCS5i1ZsmRx/v9HtWZpUMcsIYHQDwRCH6QxEEqreRsdDP9KZiLi+lZ94cKFpnTp0up1BUn+uMW16Yfs65I/ytp1BalEiRJOS3StpqgbNWpUKOd6yaxkXM/Yk+ZL2jUF7aKLLuIICqSGdBaVl23adyEMEv5kf7o0rJNxhWyDkYPyT61ZVqnI0m45+uqhhx4yl1xyicmVK5f63wuDrDRI0nFJ54pA6B2B0AdpDIQy4xTGQF3e0j3xxBNqTVH37bffWuku+lfyhnPIkCFqTVEn4SaIA8L/ifzBlzCq1RR1Em6COhP0TOT3YPny5WpNUScDQu2aglakSBFntYVWE5A0Eqps9x3QyO+7nKE6btw4ZxXK2c7Sy5L4rVu3mhkzZph//etfpmjRopGYOXzsscdi39TLKwKhdwRCH6QxEK5evTqUWQhx3333qTVFnQSMMDbSSziI60G2gwYNCiXcyHMaP368WlPUPfzww6EMUuTFg8yCazVFXRjL34W87IjrMlvADQlTXbp0Ub8HNtWuXduMHj3aHD58WK3zbMnM4cyZM03r1q1Db5AjZw7/+uuvap1pQSD0jkDogzQGwpUrV6r3woY777xTrSnqpHOldj02/Pvf/1Zrijo5wFu7Hhs++ugjtaaou//++9XrsSGuZ+vJ/kftemyIeiCUvc9y3uxzzz3ndDU8//zznSOA5PxJmRWGHTIbJVsO6tevb2677TZniaN83+Kyf0yO8glzdjB79uzO2aybNm3ytfmVLPl+7bXXnO+E9u/aINc2YcIEtb60IBB6RyD0AYHQrrgGQukGpl2PDdIRVqsp6giE7hEI3bN1IL1GzmTTagqTDJh37Nhhhg8fbho1ahSJZX74M2mwVqZMGXPrrbc65/N6nfEKmqy40K7DBunGKS80/ro/0C9Hjx41U6dOdRq4hbWEVBpUabWlBYHQOwKhDwiEdhEI3SMQukcgdI9A6F7UAqHsRfr444+dhjdavYge6SosyzE3bNigPtOwyR6922+/Xa09aLJfUGZTbRy9JMG8UqVKah1BK1euXKobVBEIvSMQ+oBAaBeB0D0CoXsEQvcIhO5FKRDKsr6nnnrK5MmTR60V0SUzUxdeeKGzVz1qDUZkf1sYLxhkKaUcgm9rWa3MrE+ePNkUL15crSdIEnx/+OEHta40IBB6RyD0AYHQLgKhewRC9wiE7hEI3YtKIJRlb927d3fa2Gt1Ih7Kli3rLF/0c5+cV3KETxjLjjt27BjYMtHTke/RG2+8Yb0ZmjS2iWvzOD8QCL0jEPqAQGgXgdA9AqF7BEL3CITuRSEQylIz+dyE3S0R/pBD1aM0WzR48GC1ziDVrFnTrFmzRq3HhmuvvVatK0hyFIbtABwVBELvCIQ+IBDaRSB0j0DoHoHQPQKhe2EHQplJev/99519aFp9iCc5QF3OC9aeuW3yN1urMSiyfFaOLApz6aycVWi786gcPyFdgbV6ko5A6B2B0AcEQrsIhO4RCN0jELpHIHQv7EAov+XVq1dXa0N8yZJFOWZBe+Y2yQuHBg0aqDUGRY5GCfs4F2mkYzsISzfVdevWqfUkHYHQOwKhDwiEdhEI3SMQukcgdI9A6F7YgfDee+8NrVU+giXNgebPn68+d1u2b9/uHI+h1ReEzJkzmwEDBkRiD6X8Htqeef/uu+/UWpKOQOgdgdAHBEK7CITuEQjdIxC6RyB0L8xAKIN1OWBeqwvxJ7OE8nsgjU6052/DkiVLTJEiRdT6glCiRInI/A5J197LL79crTMoaRyPCgKhdwRCHxAI7SIQukcgdI9A6B6B0L0wA6E0+7DdDRF2Va1a1WzcuFF9/jZIx1ObHUabNm3qLNfUarFNZimffvppq98x+fe0WpKOQOgdgdAHBEK7CITuEQjdIxC6RyB0L6xAKN0Ib7rpJrUmJEfGjBnN9OnT1c+ADePGjTM5cuRQawtC37591TrCIucS2lw22qNHD7WOpCMQekcg9AGB0C4CoXsEQvcIhO4RCN0LKxD+9ttvTldCrSYkywsvvKB+BmyQWegsWbKodQVhzJgxah1hkSYv+fPnV2sNwo033qjWkXQEQu8IhD4gENpFIHSPQOgegdA9AqF7YQXC5cuXO+fVaTUhWeR8Ou0zYIMcli6zlFpdfpN/56efflLrCIssXy1evLhabxBatGih1pF0BELvCIQ+IBDaRSB0j0DoHoHQPQKhe2EFQnlW2bJlU2tCslx55ZXqZ8CGl19+2VoXW1mauWjRIrWOMFWuXFmtNwjSxEarIekIhN4RCH1AILSLQOgegdA9AqF7BEL3wgqE8+bNo6FMSjRu3Fj9DNggy1W1moIgzWukq6lWR5hq166t1hsEaaqj1ZB0BELvCIQ+IBDaRSB0j0DoHoHQPQKhe2HOEGbPnl2tCcnSvHlz9TNgg80ZQmles3DhQrWOMFWsWFGtNwhXXHGFWkPSEQi9IxD6gEBoF4HQPQKhewRC9wiE7oUVCFesWGF1bxPCc+utt6qfARts7iGUGe8ff/xRrSMshw8fNsWKFVPrDcI111yj1pF0BELvCIQ+IBDaRSB0j0DoHoHQPQKhe2EFwk2bNpn69eurNSFZZJZO+wzYMGTIEJM1a1a1riBEbTy2atUqky9fPrXWIITZQChMBELvCIQ+IBDaRSB0j0DoHoHQPQKhe2EFQpm56NKli1oTkiNz5sxmxowZ6mfAhg8//NDqOXwPPPCAWkdYJkyYYPUcxvvuu0+tI+kIhN4RCH1AILSLQOgegdA9AqF7BEL3wgqEYuTIkdaW8yEcNWvWdM6c1J6/DXIovjR70WoLQqNGjczRo0fVWmw7ceKEeeyxx6w2b3ruuefUWpKOQOgdgdAHBEK7CITuEQjdIxC6RyB0L8xAuHfvXlOyZEm1LsSfBJHHH3/cHD9+XH3+Nshe1aJFi6r1BaFIkSJm5syZai227dixw1x88cVqnUEZO3asWkvSEQi9IxD6gEBoF4HQPQKhewRC9wiE7oUZCMXTTz/tLCvUakO8SRBbs2aN+txt2b17tylfvrxaXxBkxvvJJ590Zue0emz67rvvrO6flBcAs2fPVmtJOgKhdwRCHxAI7SIQukcgdI9A6B6B0L2wA+GGDRtMnTp11NoQXyeDkfbMbbvkkkvUGoNSpkwZJ4hqtdgiy1Zvvvlmtb6gFCpUyPz8889qPUlHIPSOQOgDAqFdBEL3CITuEQjdIxC6F3YgFF9++aXVfV4Innymt23bpj5v26TRiVZjkORA/GPHjqn12CB/7yWgabUFpWHDhmb79u1qPUlHIPSOQOgDAqFdBEL3CITuEQjdIxC6F4VAeOTIEWcAbbMbIoIhh8BXrlzZLFq0SH3WYZDmRbYOpz9JDoOfP3++Wk/QpINvs2bN1LqCJF2D5d/Wako6AqF3BEIfEAjtIhC6RyB0j0DoHoHQvSgEQiGzKX379rV6RAD8V7VqVedw9t9//119zmGYN2+eyZ8/v1pvkFq0aGH9+3Xy5YrtAJwpUybz+uuvqzWlAYHQOwKhDwiEdhEI3SMQukcgdI9A6F5UAqE4ePCgc5B4iRIlrA9o4Y3sGWzVqpXzHYxSGBSbN292joPQ6g6SNEvq2bOn2b9/v1qX36SRjcyGhrH8Onfu3KHNiEYBgdA7AqEPCIR2EQjdIxC6RyB0j0DoXpQCoZBBrRxk3rx5c2fWQasZ0SHBvUCBAubRRx91jjnQnmnY5NiL7t27q/UHLVu2bKZ///7OzJ1Wm18khE+dOtWULl1arSNolSpVCvwao4xA6B2B0AcEQrsIhO4RCN0jELpHIHQvaoHwJBlcSrOZtm3bmsKFC6u1IzwS1qtXr24eeeQRs27dOvUZRol8lrTrsEGOfpDGNvv27VNr80r27Y0ZM8bkyZNH/fdteOCBB9Ta0oJA6B2B0AcEQrviGggnTZqkXo8N//73v9Waoi7MQPjxxx+rNUWdDAy06wmazFTENRBK6NGuKWhyz+RweK2mqJD6Fi9e7CyF69Gjh7nqqqvMhRdeaGrXrg3LGjRoYK677jrnOAmZjZIjBsLspOnGgQMHrB5Q/1dZsmQxHTp0MNJsx6+D+mVWcMuWLebhhx8OZY/kSRJEJ0+erNaYFgRC7wiEPkhjIFy9erXzA6vdj6DJngCtpqibMmVKKEuw5LDagQMHqjVF3aBBg5z6tesKkjynCRMmqDVFXZ8+fULZ/yW/B1HqbOjG9ddfr15T0GQ5W9QDIeAHCU/yMlf7HthUoUIF5wWp132Fcs7gp59+6uyNlP2b2r9lS/369Z19mlqdaUEg9I5A6IM0BkJ5M2n7jB0hA91nnnlGrSnqvv/++1A2m8tymWHDhqk1Rd37779vsmfPrl5XkOSNq7yB12qKOhnshDFAKViwoFmxYoVaU9SFtb+pePHi1hpeAGGbPn268zuhfRdskt/HKlWqmFdeecUsXLjwrI9qkP21sjz3gw8+cIKg/G3V/vu2yZaQqDUSso1A6B2B0AdpDISyTEKWsGj3I0gyWzR69Gi1pqiTZVfly5dXrytIEkJldlKrKeq+/vrrUAYQ0hggrh3bZLASxux9zZo1zcaNG9Waok6aTmjXFDQZVB46dEitCUgamQ0Pc+D+VxIMy5UrZ6655hrz9NNPO8suZfXTpk2bnBk3+T9/+eUX8+2335o333zTdOzY0dSoUSOUl5SnI3/f16xZo97vNCEQekcg9EEaA6G0J7/xxhvV+xEk+QGP64/fzp07TdOmTdXrCpKEm19//VWtKeqkbumepl1XkGSvTlQ79v0T+X6EcZZc+/btYzvbJV01tWsKmjS68Gs/ExAHY8eODWUbwNmS2uT3M1++fM5KkSh32pUVU3fccYezfFW712lCIPSOQOiDNAZCWZ4gDT/knB/tngSlWrVqzrINraaok3vWu3dv9bqCJGdTxXU5idQtTRS06wqS7FON6z2T70edOnXU6wqKDKIGDBgQ23smL2vKlCmjXltQZNApg2OtHiCpZHWRvHDTvhNwR7r//vDDD+p9ThsCoXcEQh+kMRAKmYmw2VlL3obJWUtaLXExe/Zsq29H5d8aOnSoWktcyD5Cm01S5J598803ai1x8eyzz1q9Zzly5HCWWmm1xIG8YZeGFzbvWcWKFWO7xBY4V/LS6J133rH+MjmJbrrpJlYY/C8CoXcEQh+kNRAKm13DZP+d7MPT6ogL2bwu+xW06wvCRRddFNvloifZfqMsB3LHvdHH8uXLnaYJ2vUFoXPnzmodcfLjjz9abZT11FNPqXUASSf7ZuvWrat+L3B2ihUrZubOnave3zQiEHpHIPRBmgPhnDlznDbO2n3xk8zayNlLcX8bJm9HZeO6jUYpcs9GjBgR2yW2J0n90kjIRqMU2TcyceLE2C59PEm+Jy+++KKV2WhZailhSqsjTmzOEtaqVSvWM6qAV3LOaxhdt5Pi8ccfN0eOHFHvbRoRCL0jEPogzYFQBp5yxp12X/wkM13S8UurIW7kIGFpJqFdp5+uuOKKxPzBkOto3bq1ep1+kg36cTno+Z9s377dyszqCy+8kJhlSzKzKvuUtev0izTGkmXQcX9RA3ixb98+c/PNN6vfEZyZNIqT33ftvqYVgdA7AqEP0hwIxYEDB5y17EF14ypVqlQiZiBOJS2tW7RooV6vHy644AKzdOlS9d+OKznjrl69eur1+uGqq65K3J6un376KbCjTiTY3HDDDWbPnj3qvx1HMjMs509Kd0Htmr2SWe4ePXoQBoH/IX0IJNxo3xXo5LcprkdvBYlA6B2B0AdpD4RCBtJXXnmlM0jU7tG5knXyI0eOjP0SPo0sGatevbqvy/pkuVvZsmXNtGnTEnfP5HrkcH8JOH4u65P7L/vtZHZI+3fjTO7ZuHHjTIkSJdRrP1fyPb/kkkucM7q0fzfO5J5Jx9QCBQqo136u5IWZBOitW7eq/y6QNrKy4I033gjlmJw4kr97t9xyizO7qt3PNCMQekcg9AGB8A+ypLNTp07qPToXMjM4adKkRIbBk1auXOk0MdGu/1zIobkyK5TUeybXNW/ePGcGVLv+c9GsWTOzbNky9d9LArlnX331la9v4iXYJLlDpszgye96kSJF1Ot3Szoq3n333Wb37t3qvweklezdZeno2ZG9x0l8CecHAqF3BEIfEAj/j3RnlGYWXpapydtCOeR60aJFqVhaJTMGffv29TT4lM350hAjrof2u7Vu3Tpn6Z2XpgTSUbJPnz6J2Zt6JhIKpUNvx44dTa5cudT7cTakgczzzz+fqGWipyOzF9I06/LLLzfZsmVT78fZkD2JgwYNMgcPHlT/HSDtZLVMw4YN1e8P/iB/r5K48scvBELvCIQ+IBD+mQykZJaqa9euJnfu3Ge1JFKWQsj+mpo1azrr49P2Jl0amcjeJTmEXQafZ3vPsmbN6izdk45t0spb+28nlTSa+eSTT5wBu9yHs1lGKvdV7m/btm2dbq9JaYZytiTISUMTmWGV79vZ3jM5Z/DWW2919vKm7Z5t27bNvPXWW6Zy5crOTN/Z3DNZUitntHbv3t3Zy8ueQeD0JOTIAetB7d2NO/mbJS/iCIOnRyD0jkDoAwLh6a1du9b079/ftGvXzlnOKG39ZbAkgyr5kZP9bk2bNnW6bsrbLzmnT/vvpIX84C9ZssQ5o6xNmzbOIFT+SMqg/OTAXI75kP2aDz74oBO8k9IV81zJ9ct5TL169XKW38qB3zLLfPKeyUsJuY+tWrUyTzzxRGpmns9EwvTXX39tevbsaS699FJTrlw55/so30v5fsrMq8xsSXB++eWXzapVq9T/TprIDN+ECROckCezGbKkXe6Z/A2Q/YGy57B27dqmQ4cO5s0334z9+Z+ATfK3b+zYsb7v3Y07+U3u168fKwz+AYHQOwKhDwiEZyY/9LIJesOGDc5erQULFjhkYC6BUdonp23W4Z/IPZPZnJ9//tmZYTh5z2TZnyyX3LVrF/fsLyTkyX1Zv369E6pP3jO5f3If5X4yU/Nn8hmS7598D+X7ePKeyfdUvq979+7lrfRfyAsIWeYty9xO3rOFCxc6TYkkBMqyee1/B+DM5EXV66+/7rzE08ZaaSMrEmRlBnuP/xmB0DsCoQ8IhAAAAN7I1gfpQxDUMVZxIiurduzYod4n/BmB0DsCoQ8IhAAAAN7JSo7nnnvOU9OwuJOZwS1btqj3B39HIPSOQOgDAiEAAIA/ZM/cwIEDU9doRhqkybE+O3fuVO8LdARC7wiEPiAQAgAA+Ef2OI8bN84ULVpUHXsljYTBxx57jH3I54BA6B2B0AcEQgAAAH/J8tEZM2aYJk2aqOOvpChZsqQZOXIk3UTPEYHQOwKhDwiEAAAAwZDu0XJ0kJyfqo3D4kqORpJzYSdNmkRHZw8IhN4RCH1AIAQAAAjO0aNHzeDBg02ZMmXUsVjcyPEachYsx0p4RyD0jkDoAwIhAABAsOQcUDlbVhqvxLXhjJwv2LRpU/P555+zRNQnBELvCIQ+IBACAADYIY1XPvjgA1OrVi1z3nnnqWOzKJIGOc8884zZvn27el04NwRC7wiEPiAQAgAA2CUzbCNGjDANGzZ09uNpY7SwSWAtV66cefrpp83WrVvZKxgAAqF3BEIfEAgBAADsk06kv/76qxk6dKgTDGVvnjZWsy1btmymYsWKziH7ixYtco7R0OqHdwRC7wiEPiAQAgAAhEuWkn7xxRemS5cupkSJEuqYLWg5c+Y0bdu2NUOGDDFbtmxR64S/CITeEQh9QCAEAACIhsOHD5vNmzebsWPHmptvvtnUrl3b5M2bN5D9hjly5DCVKlUyrVu3Nq+99ppZtWqVOXDgAEtDLSIQekcg9AGBEAAAIHpkqebGjRvNtGnTzMCBA82NN95oqlev7gTE7NmzO2cbZsqUyWTMmPFvgVH+v2Vvovzfy/87+X+fK1cuU6FCBXPNNdeYJ554wnz22Wdm2bJl5siRI+q/j+ARCL0jEPpg5MiRak0AAACIHlleumTJEvPpp586yzv//e9/m0cffdQ89NBDzvmA999/v+nbt695/vnnzZtvvmk+/PBD89NPP9EhNGJkJvbSSy9Vx+dBkxcGWk1xlJhAKF2mwuow9fbbb6s1AQAAAAiGLA9u3LixOj4PWtasWdWa4igxgXD06NHOYZ/aAwvayy+/rNYEAAAAIBi7d+829evXV8fnQcuTJ49aUxwlJhDKAaXS4ld7YEHr16+fWhMAAACAYGzatMlpGqSNz4NWpEgRtaY4SkwglE29YZ09Ix2stJoAAAAABEP2gUqTH218HjTpLqvVFEeJCYTffPONKVSokPrAgla3bl21JgAAAADBmD59usmfP786Pg9ao0aN1JriKDGBcP78+aZUqVLqAwuatC6m3TAAAABgj3T6l2NBtPF50Nq1a6fWFEeJCYRr1qwxlStXVh9Y0OSDuGDBArUuAAAAAP6TI0K0sbkNd911l1pTHCUmEO7bt89Zuqk9sKDJOSR0GgUAAADskDMIq1atqo7Nbejfv79aVxwlJhDKh6JVq1bqA7OhQ4cOziGnWm0AAAAA/LNu3TrnLEBtXB40Odlg3Lhxal1xlJhAKMKcNi5durRZtWqVWhcAAAAA/7z22msmQ4YM6rg8aAULFjRff/21WlccJSoQjhgxQn1otsgHU6sLAAAAgD+2b99umjVrpo7HbahSpYpZv369WlscJSoQzps3L7ROQ+LSSy81Bw4cUGsDAAAA4N33339v8uTJo47HbWjSpIk5fPiwWlscJSoQbty40ZQrV059cDbI8RMTJkxQawMAAADgzYkTJ0ynTp3Usbgtd999t1pbXCUqEO7du9e0bdtWfXC2XH311Yl6YwAAAABExYwZM0yRIkXUcbgtY8aMUWuLq0QFQnlj8NRTT4W2wVRkyZLFTJkyxel6qtUIAAAAwL0jR46YW265JdSxvqwIXL58uVpfXCUqEIrp06ebHDlyqA/QlgYNGphff/1VrQ8AAACAexMnTgw1DIqmTZuanTt3qvXFVeIC4Z49e0zJkiXVB2hL5syZzRNPPGGOHz+u1ggAAADg7Mm5g40aNVLH3racd955pnfv3ubYsWNqjXGVuEAobr75ZvUh2lSgQAHz1VdfqfUBAAAAODuyFat79+6hzw5mz57dTJo0Sa0xzhIZCD/66CNnL5/2IG2qWrWqWb16tVojAAAAgDOTFXeDBg1ywpg23rapbNmy5tChQ2qdcZbIQLhy5Upz/vnnqw/Sto4dO5otW7aodQIAAADQScPIb7/9NvTtYCfdeeedap1xl8hAKG8S7rrrLvVB2pYxY0Zz0003OV2RtFoBAAAA/N3s2bNNlSpV1DG2bdJdVE4S0OqMu0QGQiFnlGTKlEl9oLZJHffee6/Zvn27WisAAACAP8jM4IIFC5wVf9LIRRtf23bppZeaHTt2qPXGXWIDoRxSf9FFF6kPNAzSebRr166EQgAAAOA0JAx+//33pkaNGuqYOiyvvPKKWm8SJDYQSjeiN99802TNmlV9qGGQzkjNmjUzixYtUmsGAAAA0kqOc5AGMsWLF1fH0mEpVqyY2bRpk1pzEiQ2EIrffvvNVK5cWX2wYZKa3nvvPXPw4EG1bgAAACBNfvnlF9OzZ0+TI0cOdfwcFpnQefDBBxN39uCpEh0IRd++fdWHG7Y8efI4jW82btyo1g0AAAAknTSDnDx5smnSpInTjFEbN4epUKFCTnMbrfakSHwgXLNmTWSOoNBIG92XX37Z/Pzzz84yV+0aAAAAgCSRIChHSnTp0iUyjSA1ciC+Vn+SJD4QyvTuc889pz7gqJAvQa1atcxLL71k1q5dyxEVAAAASKTdu3ebH374wXTq1MkULlw4Ml1ENSVKlDBz5sxRryNJEh8IhbSIjdrmVI18IUqVKuW8ifjiiy/MgQMH1OsBAAAA4kT2CL7zzjumefPmJnfu3OpYOGoeeOABc/jwYfV6kiQVgVC89dZbJnv27OrDjhoJhlKrvJW49tprzYABA5yDMOU8FtlzuGfPHnPo0CGnLa92rQAAAIBNsipPJjNkImb16tXmxx9/NB999JF55JFHzMUXX2zy5cvnHMOmjX2jSMbhW7duVa81aVITCHfu3Okc+aA98DiQjkulS5c2derUcQ7GvOqqq0zr1q1NmzZtAAAAgFC1bNnSXHHFFaZx48amWrVqznLQKO8NPBM5ti7J5w7+VWoCofj666+dtxPagwcAAAAAWdYqk0lankiiVAVCWQPcr1+/SLa0BQAAABCuIkWKOMtdtSyRVKkKhGLbtm2mSpUq6gcAAAAAQDrJpJGcYZ62jv+pC4Tim2++iUXXUQAAAAB2SI+ONHQV/atUBsKjR4+aF198kaWjAAAAAEzFihXNzJkz1eyQdKkMhGLv3r2mVatWkT4MEwAAAECwsmTJYkaOHGl+//13NTckXWoDodiwYYOpX7+++sEAAAAAkGxyxMRjjz2Wun2Dp0p1IBRTp041pUqVUj8gAAAAAJIpQ4YMzrneu3btUnNCWqQ+EMrU8Oeff25y5sypflAAAAAAJI8cpL9x40Y1I6RJ6gOhOHHihHn99ddN3rx51Q8LAAAAgGSQHiJVq1Y169atS+2+wVMRCP/XwYMHzTPPPGMyZcqkfnAAAAAAxF/58uWdY+i0TJBGBMJTyGbS1157zWTLlk398AAAAACIr2rVqpn58+erWSCtCIR/IYdRPvnkkywfBQAAABJClolWrlzZ/Pjjj852MS0HpBWBUCEzhW+//bbJkSOH+oECAAAAEB8XXnihmTt3rjr2TzsC4WkcPXrUPPXUUyZz5szqhwoAAABA9BUqVMgsWrSIBjKnQSBUyDTyvHnzTO3atZ3zSbQPFgAAAIDok8Pne/bsabZt26aO/dOOQKj44osvTLly5dQPFAAAAIB4kUmeNm3amO3bt6vj/zQjEJ7i+PHjZtKkSaZ48eLqBwkAAABAPGXMmNG0a9fO/PLLL2oWSCsC4SnkPJKyZcuqHyAAAAAA8SbdRjt27Mjy0VMQCP+XhMEyZcqoHxwAAAAAySChsG3btmb//v1qLkib1AdC6Ta0atUq51wS+XBoHxoAAAAAySF7Cnv16mX27t2rZoQ0SX0g/O2338wVV1yhflAAAAAAJFO2bNnMSy+9pGaENEl1IJQ3AjfeeCNHSwAAAAAplDdvXvPee+85x85peSENUhsI5eD55557znkzoH04AAAAACRf6dKlzYIFC9TMkAapDYSTJ082OXPmVD8UAAAAANLjsssuc7aSabkh6VIZCJcuXWouuOAC9cMAAAAAIF0yZcpk7rnnHnPs2DE1PyRZ6gKhrA/u1KkT+wYBAAAA/EeuXLnMF198oWaIJEtVIJQwOGzYMJMlSxb1QwAAAAAgvapVq2bWrVunZomkSlUgXL16tfOQtYcPAAAAIN3kXPKePXuaI0eOqHkiiVITCI8fP+6sC9YePAAAAACIggULOg0otUyRRKkJhJMmTTKFChVSH3pUZc6c2ZQvX940a9bM3HXXXebVV181X375pVm8eLFZs2aN2bRpk9m9e7fZs2cPAAAAEIodO3aYDRs2mBUrVpi5c+eacePGmaefftrccMMNpn79+qZAgQLOzJs23o2qiy++2Bw6dEjNFUmTikAoZw5eeeWVsfggyrmIZcuWNbfffrsZP368WbJkiRP6tOsCAAAAoko6dspRDj/++KN58803TfPmzU2+fPmcjp7aODhKpAHl6NGjze+//65eW5KkIhB+/PHH6oOOEgmCbdq0MSNHjjQ7d+5UrwMAAACIKwlXCxcuNM8++6ypUaNG5Cdr5Ji6X375Rb2WJEl8INyyZYu59NJL1YccBdLetnXr1uaHH34we/fuVa8BAAAASArp7bF161YzcOBAU6tWrcgGw4wZM5qXX35ZvYYkSXwgfP/9953ZN+0hh0k++BUqVHCOwWBJKAAAANJGZgxXrlzpNH7MkSOHOmYOW/Xq1c3mzZvV+pMi0YFw//79zoZQ7eGGSWYFpUmMvBnR6gYAAADSZPr06aZx48bq2DlM0uSxf//+znnmWt1JkOhAOGHCBJMnTx714YZBZgWLFStmRo0a5YRVrWYAAAAgbWS2cOPGjaZz584me/bs6lg6LHXr1k30ir7EBsLDhw+bm266SX2oYalYsaKZNm1aKroVAQAAAG7t27fPPP744yZr1qzqeDoMMqkjR9hp9SZBYgOhrEeOytsF+RA1adLELFu2jDAIAAAAnMGRI0fMiBEjTN68edWxdRjatWtnDh48qNYbd4kMhBK6XnjhBfVh2iZhUNrqrlq1ijAIAAAAnAXpRPraa6855xZqY2zbSpcubebNm6fWGneJDITSrKVhw4bqw7StcuXKZs6cOWqdAAAAAHRysL00dInCQfYyySMTTlqdcZfIQDhlypRITDEXLFjQqSXJXYkAAACAoMiewp49e0YiFNapU8cJqVqdcZbIQPjII4+oD9Em2Qj74osvmqNHj6o1AgAAAPhn27Zti8Tqv9y5c5tFixapNcZZ4gKhBLDzzz9ffYg23XjjjYl8gwAAAADYJvv3ypYtq467bcmYMaOzbDRpfUESFwjlwyLpXXuItsjxEnPnzlXrAwAAAODOyf2EGTJkUMfftrRp08bs2bNHrTGuEhcI33jjjdDXGL/88stOZyStPgAAAADuyeHwso9PG3/bUqpUKfPLL7+o9cVVogKhnA3SqVMn9eHZUr16dbN37161PgAAAADn7sMPPwx1NaB0G508ebJaW1wlKhBu2bLFXHDBBerDsyFLlixmwIABdBUFAAAAAiDLNRs3bqyOxW157LHH1NriKlGBcMWKFSZnzpzqg7NBmtn89ttvam0AAAAAvHv//fedBi/aeNyGli1bJqqxTKIC4fjx49WHZkvfvn0T13UIAAAAiJKNGzeGuiqwZs2aZvPmzWptcZSoQPjkk0+qD82GXLlymR9++EGtCwAAAIA/pOOoHFYv+/m0cXnQSpQoYX766Se1tjhKVCC8/vrr1Ydmw5VXXml27typ1gUAAADAPxLIwjpZQLaoycpEra44SkwgPHz4sGnYsKH60IImbyf69etHMxkAAADAgqNHjzozddrYPGgy9n/zzTfVuuIoMYFQmrnIkQ/aQwuabGr94osv1LoAAAAA+C/M1YG9evVSa4qjxATCRYsWmbJly6oPLGg5cuQw+/btU+sCAAAA4L+33nrLZMiQQR2fB61jx45qTXGUmEAoDV2KFi2qPrCgVa1aVa0JAAAAQDBkhV5Yh9Q3a9ZMrSmOEhMIJ02aZPLmzas+sKC1bdtWrQkAAABAMObNm2dKlSqljs+DVqNGDbWmOEpMIPzoo49M9uzZ1QcWtAcffFCtCQAAAEAwNmzY4AQzbXwetOLFi6s1xVFiAuGYMWNMlixZ1AcWtOeff16tCQAAAEAw5Mi3unXrquPzoOXLl0+tKY4SEwhHjhzpdPvUHljQXn/9dbUmAAAAAME4cOBAaMfOycpEraY4SkwgHDp0qHMmiPbAgjZs2DC1JgAAAESPnF8ts0sbN240q1evNkuXLjULFiz4myVLlpiVK1eaX375xWzbts0JINp/D+E4fvy4adq0qTo+D5pMRGk1xVFiAuG7776rPiwb3nvvPbUmAAAARMOvv/5qJkyYYJ588knTqVMnc+WVV5ratWs7x5YVLFjQmfHJmjXrf2TLls1ZFliyZEnnrGsJHtddd53p06ePszJNQqQEEu3fgj2XXXaZOj63QasnjgiEPiAQAgAARMeJEyfMmjVrzIcffmh69uzpHBEmAU9mdbyuKJP/vfx3MmfO7HS4vOGGG5zVYjKjeOjQIbUeBIdA6B2B0AcEQgAAgHDJbN2OHTvM559/brp06eKEQFsd6DNlymTKlCljWrRo4cweyhLTI0eOqHXCXwRC7wiEPiAQAgAAhOP33383y5cvN0899ZS58MILTYYMGdTxmk2lS5c2d999t/n222/N0aNH1brhDwKhdwRCHxAIAQAA7JKgNWvWLGdJqOwBDKvb/OnI0tK8efM6s4aTJk0ye/bsUa8D3hAIvSMQ+oBACAAAYIfsD9y8ebN5+OGHTYkSJdSxWdTkzp3b2Ws4f/58GtH4jEDoHYHQBwRCAACA4MmxD6+++qopX768OiaLOtnTKEF2/fr16vXBPQKhdwRCHxAIAQAAgiOzavPmzTPt27d3uoVq47G4kAY0F1xwgRk/fjxdSX1AIPSOQOgDAiEAAEAwpGnM8OHDYzsreDq5cuUyjz32mNm9e7d63Tg7BELvCIQ+IBACAAD4Tw6Tv/322yPROTQI0nimbt26zhmGsjdSuwc4MwKhdwRCHxAIAQAA/COzgqtXrzYtW7Z0DoDXxl9JIaHw/PPPN1OnTjXHjh1T7wdOj0DoHYHQBwRCAAAA/8ydO9fUqFFDHXclVZEiRczQoUPV+4HTIxB6RyD0AYEQAADAHxMnTjSVKlVSx1xJJ11IBw4caA4ePKjeG/wdgdA7AqEPCIQAAADeyDLRb7/91pQrV04db6WFHGb/yiuvcF7hWSIQekcg9AGBEAAAwBsJg2XKlFHHWmmTM2dO57xF9hT+MwKhdwRCHxAIT2/v3r1m8eLFZsSIEaZHjx7miiuuMPXq1XM0aNDA3HTTTeb55593/ghs2rSJt2H/Q9pPy1lLQ4YMMbfddpu59NJL/3PPGjVqZG655RZnOckPP/xgtm/fnvquZPJGeceOHWbmzJnmtddec+5P48aN/3PPmjZtarp27WoGDRpk5syZY3bt2uX8b7T/VlrIZ2bz5s3mu+++My+99JK5+eabne/jyXt2+eWXm7vvvttp875o0SKzZ88e9b+TJvLbtGHDBjN9+nTzxBNPmA4dOpiLL77YuV/169c3zZs3N/fff78ZPXq0WbFihXN4tvbfAaCTLpu1a9dWx1lpJTOFH3/8MWOjf0Ag9I5A6AMC4d/JGy3pliUHyBYtWlS9b6fKmjWrM6h65plnUnsejxxOKz/8LVq0MPny5VPv06lkn0GzZs3Mm2++afbt26f+N5NOrnvw4MFOgMmRI4d6n04lf1yvvvpqM27cuNTuz5Dv14svvmgaNmzofO+0+3SqwoULm7Zt25opU6aYo0ePqv/NpJOXVY8++qgzWD2bboelSpUynTp1MjNmzKCNPHAW5OWx/CZJt03tO5VmsnxWXgBr9w1/IBB6RyD0AYHwz7755htn0J0xY0b1fp2J/DEoUaKEMwOWlmAog+xJkyaZiy666JzOWZJ7VrFiRWdmYv/+/eq/kTQy+/LBBx84TQfO5Z7J/0YG91988YU5cuSI+m8kjXyf/uu//ssJK+cy6JLvs8zwf/3116mZYZWZZ5kNLFSo0DnfsxtuuMHplqj99wH8t7MC4dZbb1W/Q/iDHEkhKxS0+wcCoR8IhD4gEP5BZlxkaWixYsU8v+WT2a+OHTuajRs3JnrwKW9FZbamYMGC6n1wI0+ePKZ79+5m586d6r+VFHJ9PXv2dGb7tPvgRoECBZxZ6SQviZTvjywPlWByNrOoZyLfa5nxl+XMSV4SKfds2bJlpnXr1p7PP5N7Ji8uPvroo9S8fADOlsygyz45r79NSScvMWU7RFpXUP0TAqF3BEIfEAj/2F/z1FNP+f6j3qRJE7Ny5Ur134w7WVYrewSzZMmiXvu5kD8abdq0MVu3blX/zbiTMHjttdee0+zz6cj9l+V9hw8fVv/NuFu7dq2ztFi79nMlL2weeeSRxO5rkT28fu9lyp07t3nrrbdYQgqc4scff3TO3tO+M/izTJkyOas8tPuYdgRC7wiEPkh7IJRgI+2RZcCj3R8vJOBIgxDZw6P923Elsyt9+vRxfuC16/ZC7pnMBiVtplCawXTu3Nm5Pu26vZCA+eCDDyZuL6bMDMr+yiDumbz8kdntpO0r/Pnnn03VqlU9r3LQyIy0zK5q/y6QNtIU7ZJLLgnku5ZU0oFV9iZr9zPNCITeEQh9kPZAKB1C8+fPr94bP8hgXToeJmV/nCxHk89MEAH6pGzZspnHHnssMctt5Tqee+45Z2ZKu14/5MqVy2lQk5R7Jk2K7r333kBeOpwkzY++/PLLxNwzeYly4403qtfqF1lSL52XtX8fSAuZKZcOx0G8rEoyCc9XXXUVR1H8BYHQOwKhD9IcCGWPn7Re1+6Ln2RQ+/7776s1xM3y5ctN+fLl1ev0kyyFnDVrllpD3Pz0009OYNOu008lS5Y0S5YsUWuIm/Hjx3ve/3Y2LrzwQmdWTashbvr37+/rcuTTkU7C0rBGqwFIg9mzZzsNrrTvB/6Z9GtIyos4PxAIvSMQ+iDNgVDe8AU5A3EqOe/rt99+U+uIC3mrd88991h7KyrHBcR9E7o0fJEz32wsK5Lncuedd8Z+P6EsFZX9t9o1+k2+/7J/WKsjTmSvpXTr1a7Rb/KyZuTIkWodQNLJ3uN//etfLBX1oG7dumb9+vXq/U0jAqF3BEIfpDUQyn6rypUrq/ckCLIMUt6KabXEhQTaIJfX/pUsS5VjArRa4kKaDgS5vPavZBmkhAOtlriQcxaDXF77V6VLl471/ktZvib7oG3MqJ4ke6fSehYm0k1mB22s+EgyeXkpKxq0+5tGBELvCIQ+SGsgHDt2rBPStHsSlEsvvVStJS7kB1y7riB17dpVrSUu5CgN7bqCJPsVtVriQs4B1a4rKDJLOGrUKLWWOJDjX+rUqaNeW1BO7r/U6gGSSr5r7dq1U78TcKds2bJm3bp16n1OGwKhdwRCH6QxEEpnwR49elhf8iGdDeO690Y6i8qRENp1BUk6JsZ12ajU7Xf7/7PRvHnz2DYxku+HzVnok7p16xbbc/bkzEGbs4NC3vDLUluOoUCaSIdMmys+3JIxjewjlt8DedEV5WWtUuMLL7zAb8j/IBB6RyD0QRoDoXTjs7VH6VQyiJo0aZJaU9StWbPGVK9eXb2uIBUqVMhZdqnVFHVz5sxxujJq1xWkKlWqmBUrVqg1Rd2UKVOsz9yLBg0amC1btqg1Rd2wYcPUawpaq1atOKweqSHBRVasaN+FMMnyetmTJ7U9/fTT5rXXXnPODJUz/6RPgqxSufLKK03evHnV/32Y4vzC108EQu8IhD5IYyDcsGGD05FRux9Bkrd1cV03Lx0/CxYsqF5XkGRWdcyYMWpNUffxxx+HstdEZtjkOBWtpqh7/fXXrTV6OlWJEiXM6tWr1Zqi7qGHHlKvKWjSxEZWDmg1AUmzYMEC5xw97btgm4S7K664wrzxxhtOcxZZyiovZ7TOnbIiSlaMyAuvTz75xGmIIy8qozB7KDXE9e+7nwiE3hEIfZDGQCizXRI0tPsRtF69eqk1Rd306dNN1qxZ1WsKkoQD+aOn1RR18r0OI9zIc5o4caJaU9TJ+ZNhDFTk9yCu5+vdfPPN6jUFLU+ePLFuxgO4IY2bwvg9P5X8tjdt2tR88cUX5zyzJgHxhx9+MHfccUckmuNce+21qX+xRCD0jkDogzQGwlWrVlk7OuGv5JB6raaok6WuYQzU5d98+eWX1ZqiToJsWPdMZie1mqLuwQcfVK8paPJ7IDMAWk1RJ8ezaNcUNLlnMjOh1RQlstRPzpqU37AhQ4Y4s9AyuJffFdgxcOBAZwmjnMcrWwDkOB7tWUWVHDURxn7wU8m5h2+//bZv3X3lmqSLd/369UP5O3VS8eLFne0VWo1pQSD0jkDogzQGwpUrV6r3wgY5J06rKerkjaR2PTbIPgitpqiTAZB2PTZ89NFHak1Rd//996vXY0NcA2EYzZ5OiurAXkLgr7/+6vxtla61crSILLOTMxRtHN6PP5OXB3LfZSZe9oVXq1bN3HXXXeb777+PxUuFRYsWhfa5kX9XQtv8+fOdEKfV54UsOZVxiXw3tH8/aPLZkBc0Wm1pQSD0jkDoAwKhXQRC9wiE7hEI3SMQuhfFQHj48GEzePBgc9FFF4U684F/JiH9pptuivx3T7phavXbcPnllzurmrS6/CJLv6XzelihMO5HcnlFIPSOQOgDAqFdBEL3CITuEQjdIxC6F6VAKA01Fi5caBo1ahTalgCcGzmC4Pnnn49kx0mpyfbZqEJeZkhQ2Lp1q1qX32RvYc+ePUPZJykvBmRZt1ZXGhAIvSMQ+oBAaBeB0D0CoXsEQvcIhO5FJRBKGJQjS8Le54VzJ8cndOnSxWzfvl19xmGRcz7lEHWt5iBJF19pdKV1Dg3K5s2bQ9mTLM1yxo4dq9aUBgRC7wiEPiAQ2kUgdI9A6B6B0D0CoXtRCYQzZ850mm5oNSI+ZL+cLCGNUvda+dtne9ZMDr8fPXq0Wk/QZE+h7fNzZTZUjs8JYo9kHBAIvSMQ+oBAaBeB0D0CoXsEQvcIhO5FIRCuWLHCaVLCfsFkkFDYp08fc+jQIfV52/b444+rdQZJDpnfv3+/Wo8N0iFbZmy12oIih+en9ZB6AqF3BEIfEAjtIhC6RyB0j0DoHoHQvbADoZxfduutt6q1Ib7y589vJkyYoD5z22wvoZQgFvaZqLJvsUGDBmp9QSlfvrzTGVirJ+kIhN4RCH1AILSLQOgegdA9AqF7BEL3wg6Eo0aNMjlz5lRrQ7xVr1499CMpZJaycuXKan1BkX2Ux44dU+uxSZasavUFRZblyvEeWi1JRyD0jkDoAwKhXQRC9wiE7hEI3SMQuhdmIJSuiPXq1VPrQvxJ59F33nnHalOVv1q3bp1zcLpWXxCk2+ann36q1mKbzNbZDsNRmRW2jUDoHYHQBwRCuwiE7hEI3SMQukcgdC/MQDhr1iwnNGh1IRmuueaaUPeV/fjjj6ZAgQJqbUGoWrVqZLqsynmet912m1pnUF5//XW1lqQjEHpHIPQBgdAuAqF7BEL3CITuEQjdCysQnjhxwjzwwAM0kkm4XLlyhbqMcPz48U4NWm1BkP2wWh1hGTFihHMkhFZrEKTTqFZH0hEIvSMQ+oBAaBeB0D0CoXsEQvcIhO6FFQh37txprrjiCrUmJMuwYcPUz4ANEoiyZcum1hUE+Zuh1RGWefPmOctYtVqDIPsntTqSjkDoHYHQBwRCuwiE7hEI3SMQukcgdC+sQLh27VpToUIFtSYky3333ad+BmyQ33CbZxBOmzZNrSMssly3UKFCaq1BkI6uWh1JRyD0jkDoAwKhXQRC9wiE7hEI3SMQuhdWIJRlhHJ4t1YTkqVVq1bqZ8CG/v37mwwZMqh1+U2WZkbxN6hs2bJqvUG46qqr1BqSjkDoHYHQBwRCuwiE7hEI3SMQukcgdC+sQDh//nyrMzcIT9OmTdXPgA3yt8fWPlVZmrlkyRK1jjDVqFFDrTcIl156qVpD0hEIvSMQ+oBAaBeB0D0CoXsEQvcIhO6FGQjpMJoOYYYEm4EwT548oR9Ir5HzILV6gyDBSKsh6QiE3hEIfUAgtItA6B6B0D0CoXsEQvfCCoQyk2Kz2QXCc+2116qfARsGDBhgbcmovOCQFx1aHWGRbr6lS5dW6w1C8+bN1TqSjkDoHYHQBwRCuwiE7hEI3SMQukcgdC+sQLh+/XpTpUoVtSYky4MPPqh+Bmx44403rC5NnjRpklpHWORMxIIFC6q1BqFdu3ZqHUlHIPSOQOgDAqFdBEL3CITuEQjdIxC6F1YglH9Xmo1oNSFZPvzwQ/UzYMOoUaNM9uzZ1bqC8PLLL6t1hGXmzJlWmzfdfvvtah1JRyD0jkDoAwKhXQRC9wiE7hEI3SMQuhdWIPz999/Nk08+ycH0CSdHHsjfa+0zYMNnn33m7O3TagvCdddd53y2tVrC8Oabb1rdq/vII4+odSQdgdA7AqEPCIR2EQjdIxC6RyB0j0DoXliBUMjREzSWSTbZP7hv3z71+dvw008/WV0yWblyZbNp0ya1FtsOHTpkOnXqpNYZFAmgWi1JRyD0jkDoAwKhXQRC9wiE7hEI3SMQuhdmIJSZFDnIWqsL8ZctWzYzceJE9dnb8ttvv5mSJUuq9QUhR44ckRmTrV271hQtWlStMyhTpkxRa0k6AqF3BEIfEAjtIhC6RyB0j0DoHoHQvTADoZg8ebIpXLiwWhvi7YorrnBmqbTnbsuxY8dMzZo11fqCIi85jhw5otZji7xsee2119T6giJ7NZcvX67Wk3QEQu8IhD4gENpFIHSPQOgegdA9AqF7YQdCGbA/9NBDam2Ir+LFi5vvv/9efea2dezYUa0xKBkzZjQ//PCDWostGzZsMLVr11brC0rVqlUjs1zWNgKhdwRCHxAI7SIQukcgdI9A6B6B0L2wA6HYvHmzM5tk67w4BEtmimQvmYR97XnbJn9/tDqD1LJlS+fIB60eGx599FHr+3Pld2zv3r1qPUlHIPSOQOgDAqFdBEL3CITuEQjdIxC6F4VAKJYuXcq5hAmQJUsWc99994W+VPRUU6dOtR6OZP/kq6++qtYTtMWLF5v8+fOrdQVFugVLh1E5CF+rKekIhN4RCH1AILSLQOgegdA9AqF7BEL3ohIIxYoVK0zz5s3VOhF9efPmNU8//XRkZgZPWr16tbOcUas5SPny5XOarNg8hkIaydSrV0+tJ0gyK/zpp5+qNaUBgdA7AqEPCIR2EQjdIxC6RyB0j0DoXpQCoZCukN27dzcFChRQ60X0ZMqUyZndHT9+vDl48KD6XMO0f/9+5/gLrfYgyayZ3Je5c+daCYXbtm1zzkEMY+m1NIbaunWrWlcaEAi9IxD6gEBoF4HQPQKhewRC9wiE7kUtEAqZYfr888/NNddcw77CiJMg0KdPH7Nu3Tr1WUbFwIED1fptuOCCC5zzELW6/LJ7925z/fXXh3au59VXX63WlRYEQu8IhD4gENpFIHSPQOgegdA9AqF7UQyEQmZUDh8+bH788UfzwAMPmCZNmpiyZcuaXLlyERJDImFDDnmvXr26c7SCHGsgDYGOHz+uPsMo+eWXX5z9jdp1BU1mCkuUKOHMoMpnWqvPi1mzZpnLL788tO+FzBAPGTJErS0tCITeEQh9kMZAuGrVqtB+/GQ5k1ZT1Ml5X2HcM/lj+Morr6g1RZ10ypP6tesKkjynTz75RK0p6sI6QkBavcc1ELZr1069pqDJPYtDV0AJh9KxceHCheabb74xkyZNcmYQYZfsh5OALnvyorg09Eyk2Ym8VNC+B7bIMujevXs7R0J4bb4i3wmZFZSxZ6VKlUL5O3VSuXLlzKJFi9Q604JA6B2B0AdpDISycVreFGv3I2gPP/ywWlPUffXVV07nM+2agiRvDyVYaTVF3dChQ0NZgiPPSQZgWk1R98QTT4QyOJHfgyVLlqg1RV3nzp3VawqaNAHZt2+fWhOQNG+//XZos4SnKl++vOnfv78za6nV+U9klvH99983zZo1CzUIntSpU6fQD+IPG4HQOwKhD9IYCH/99VfnR1W7H0GSH19ZRqjVFHVz5swxRYsWVa8rSDJQj+vyx88++8zkyZNHva4gyb6csA82PlfvvPOO8xJAu64gyXJCeVGk1RR1/fr1U68paLL0L24zPcC5kt+HMLqNaiSYlilTxtx1113O6h3psLtz586/dWiVmUBZ1v3zzz87B/0/++yzpm7duiZnzpzqf9c2WWUgM8en1pxGBELvCIQ+SGMg3LVrl/N2TLsfQZIfv+nTp6s1Rd369etN7dq11esKkoQb6bKm1RR1sgRR9n5o1xWkatWqOcuytJqi7uuvvw5lJvqSSy5xuuxpNUXd6NGj1WsKmixVTfubfaSHhCs5I1H7LoRJwmHFihWdfYA33XST6dGjh7Nv9t577zVdunQxLVq0cP52RyUEnurCCy+M7D5kmwiE3hEIfZDGQCib2GXppu3lErLEKq5v1I8ePWpuuOEG9bqCJH/IgthIb4PUXb9+ffW6giQNG+R5aTVF3YEDB0yRIkXU6wqK/A707NkzFs0tNLKnyHaIlpdbAwYMcAbJWk1AEi1dutR5Sal9J+CO/GZJMxl+QwiEfiAQ+iCNgVDIMoUcOXKo9yQoHTp0UGuJi5EjR6rXFaS47rk8SfbEadcVJFl2qdUSF7KnRLuuoMgbdmk0otUSBxKir7jiCvXagiKhXboTavUASXXo0CFnBo5Otd7VqVPHafak3ee0IRB6RyD0QVoDofyw21wCKXvhPvjgA7WWuJAldcWLF1evLwj58+c3M2fOVGuJi3nz5lk9JLtYsWLOjJFWS1xMmDDB5M6dW72+IMjhz3HeCydv2KXxUtasWdXrC4KcGxbXmXvAC2k+Jat9tO8Fzo6sMIj7i0s/EQi9IxD6IK2BUMi125ollEOS475WXlpdv/DCC9Y6rd19992xb1ohLx5k34mN5cnS0fTpp5/+W2OBuJGjDK699lr1Gv2WPXv2RJyBtWPHDnPRRRep1+g3aZREIwiklbyAkcP0w2h+lRQtW7aM7Z7tIBAIvSMQ+iDNgVC6ctk41FkGUHJsg1ZD3Pz2229OlzLtOv0ks4Nr1qxRa4gb6U4nM3fadfqpZs2aTgddrYa4kS6pNt7Cy0yXhCmthriRVvJBN46QFxtdu3bluAmk2sqVK02tWrXU7wjOTF5cxrW5XlAIhN4RCH2Q5kAopF1zkJ0g5cfvmWeeiW2TD820adNMwYIF1ev1gyyvHTRokPpvx9Xw4cMDXQYpy1InTpyo/ttxJLOcL774YqDLIGX5c1wPo9fIbPr999+vXqtf5BDrLVu2qP8+kCZjxoxxlj5q3xPoZO+lvFDS7meaEQi9IxD6IO2BUJZByjl3QZyxJ0tKpA100t6mS7iV9f9BLLeV5ajSSCZp55vJ0lFpMBPEclvp1vbGG28k7ggA+d5I2/QgDveXFxpjx46NbWfR09m9e7fTYCaIgaqc3cpSUeAP8vt044030mDGBenbsHz5cvV+phmB0DsCoQ/SHgiFhMKhQ4f62k5a/kjIHwtZYqn9m3EnA2mZ+fRzWZ+EJTk7SQa12r8ZdzKAkBkcP48IkFnHxx9/PPb7Bk9HZqNuueUWXwddEgbfeust53uv/ZtxJ0uUZSmsn/tWZRXFp59+mth7BpwLCTcVKlRQvzP4M9mvHffGekEhEHpHIPQBgfAPslFcOlrKvgCvg898+fKZRx991JkV0v6tpJDB4ccff2wqV67sefApA86BAwcmfsAp1yezeaVKlVLvgxtyGLHMciX9HCeZkZbQ67Vbq3yvZZ/lN998k/h7tmvXLuflg9dZfJlpbNq0aaKW1gJ+khVGdB09M1kt1bdvXzoTnwaB0DsCoQ8IhH8mb9cfeughZ3+R25Ajg69mzZqZyZMnp+aHTwKOvCWVWZxzmWGVP6StWrUyP/30U6L2WZ6JXOf8+fNN69atnZcH2n05k0KFCjlLkeW+J23J4+nI90n2rspySNljqt2X05HvsXyf5fB5+X4nPQyeJMuu5Y18gwYNXM9KSxCUlxbPPfdcYhoVAUGQF79PPvkk+wlPQ35/5XdbXlJp9w8EQj8QCH1AIPw7GWTLgP2BBx4w5cqVU+/bqWQphHQrlYPb9+/fr/43k072r82YMcPccccdZ7UfUwb1cgC5nDmXtP2CZ0sGEp9//rkTpqUTrXafTiWB+/bbb3dmuJK2X/BsyfdLumnKsRRnM/tVpkwZ59gPOQ8yqctq/4l0U5ajNS6//PKzatJz/vnnm8cee8w5by0t4Rnw4sCBA84YwM9l2klRo0YNs3DhQvW+4Q8EQu8IhD4gEJ6eBEMZgM6ZM8dZ5iczDP/6179Mx44dnU5Zzz77rBk/frzZunWrM0Bn8PRHd0jZAyjLbwcMGGC6d+/uzGbdcMMNTph56aWXnMYU0uo/rQP0v5L7IPdDWnH/+9//dkK17D8VchbjK6+84oRtua/csz+Wd8ssq3zvPvvsM/P8888730f5jMlnTfahvv76686ss+zbTMss6pnIPZNZ1k2bNjmzhtLgSBr2yG/ZzTff7CwvHTx4sLM0VF7QsFcQcGfz5s3OahdtnJVW8kJOXsYxNjozAqF3BEIfEAgBAAC8kWX8TZo0Yabwf5QsWdJZAcPLpX9GIPSOQOgDAiEAAIB3a9ascY5X0MZbaSHbRqTZjnZ/8HcEQu8IhD4gEAIAAPhj2bJlpnnz5uqYK+mkgZdsf2B7w9kjEHpHIPQBgRAAAMA/q1evds4DTVP3UWlI9eWXX6r3A6dHIPSOQOgDAiEAAIC/9u7da+655x7P54FGnZzxeuWVV5qVK1eq9wFnRiD0jkDoAwIhAACA/6TT8aBBg0zBggUT2WxGjpDq1q2b0/WZbqLnhkDoHYHQBwRCAACAYEhQkuOW6tevr47D4kqax8gZp2k9f9kvBELvCIQ+IBACAAAEa/v27c4ZoBKktPFYXMisoJz7KsdsMCvoHYHQOwKhDwiEAAAAwZPum9OmTXO6kGbPnl0dl0VV5syZTeXKlc3o0aPNnj171OuDewRC7wiEPiAQAgAA2HPo0CFn/NW4cePIdyKVvY8VKlQwzz//vNm8ebN6PTh3BELvCIQ+IBACAADYJcstZRnpyJEjTaNGjZylmNo4LSyZMmUytWrVMv369TMbNmwwx48fV68D3hAIvSMQ+oBACAAAEJ6dO3eacePGmZYtWzpLSeUoB23MFjSZDcySJYupXbu2GThwoFm/fj37BANGIPSOQOgDAiEAAEA0SLOWF1980TRr1szkzZtXHbv5LWvWrObCCy80PXv2NDNnzjRHjx5Va4P/CITeEQh9QCAEAACIDpmV27Fjh1mwYIEZPHiwad++valevbrToVRmEL2caSjhr0CBAqZixYpOc5unn37aCYG//fab0/RGqwfBIRB6RyD0AYEQAAAg2iQgzpo1y4wdO9b8+9//Nnfeeae58sorTc2aNU2JEiVM7ty5nX1/MraTJac5c+Y0RYoUMVWqVDFNmjQxnTp1co69kD2L06dPN7/88os5ceKE+m/BHgKhd4kJhMOGDfP0tscLCaNaTQAAAIgemUGUJi+ytPPIkSPm8OHDTufSgwcP/of8fwv5v5P/d/L/nv2A0SIzspdccok6Pg+avDzQaoqjxARCmaU7+VbHtldffVWtCQAAAEAw9u/fbxo0aKCOz4MmM8haTXGUmEA4ZswYp6uT9sCC9uyzz6o1AQAAAAiGLAOWZj7a+Dxo+fPnV2uKo8QEwk8++cTkyJFDfWBBu+eee9SaAAAAAARj3bp1plq1aur4PGilSpVSa4qjxATCKVOmmHz58qkPLGhXX321WhMAAACAYEiToOLFi6vj86DJWZNaTXGUmEAY5geidOnSak0AAAAAgjF+/HjnGBFtfB40OXJEqymOEhMIly5dasqXL68+sKDJeTSbN29W6wIAAADgPzk+JKxTBm6++Wa1pjhKTCCUQCbnyGgPLGgZM2Y0H3/8sVoXAAAAAP+1atVKHZvb8Mgjj6g1xVFiAqGcDdO0aVP1gdkgjWWkBq02AAAAAP45cOCAyZs3rzouD5pMBg0dOlStK44SEwhF586d1Ydmg5yBwrJRAAAAIHiTJ092gpk2Lg9anjx5zOeff67WFUeJCoQvvvii+tBsyJYtm5k2bZpaFwAAAAB/HD582Nx+++3qmNwGaSi5YMECtbY4SlQgnDp1amgbS0W3bt3M77//rtYGAAAAwLtVq1aZChUqqONxG+rUqWN27dql1hZHiQqEq1evDm0tsZAupytXrlRrAwAAAODdG2+8YTJkyKCOx21o165doiaBEhUIt2/f7uzl0x6cDbKOuV+/fubEiRNqfQAAAADO3ZYtW0I7WeCkl156Sa0trhIVCI8cOWLuvvvuUJeNlihRwvz6669qfQAAAADOjczKvf76607vDm0cbkOmTJnMjBkz1PriKlGBUAwbNsxkyZJFfYC29OrVyxw9elStDwAAAIB70tG/bNmy6vjblkqVKiVu8idxgXDt2rWh7iMUBQoUMF988YVaHwAAAAB3Dh065Jz7rY29bfrXv/5lDh48qNYYV4kLhLJ/r2HDhuoDtElq2LZtm1ojAAAAgLP34Ycfmvz586vjblsyZ85s3n777cSdKpC4QChko6f2EG2SBjM9evRw3mZoNQIAAAD4Z3KSQOXKldUxt02yCnH9+vVqjXGWyED4ww8/mMKFC6sP0qasWbOad9991xw7dkytEwAAAMDpyYq7tm3bhto08qTLLrsskWeOJzIQ7t6921xxxRXqg7StePHiZvz48RxYDwAAALiwb98+07NnT2flnTbOtklqkPMPtTrjLpGBULzzzjvqwwyDNJmR9rSEQgAAAOCfyQo7CYOyb08bX9tWpUoVs3z5crXWuEtsIJR2sFFYNnpS+fLlnZnC48ePq/UCAAAA+G+zY8cO5xi3MM8b/Kvbb789sdvAEhsI5ZD6bt26qQ80LHJo/dixY51OqFrNAAAAQJrJ1q8777wzMjODIkOGDObbb79V602CxAZCMXPmTFOwYEH1wYZFPlD33Xef+e2339SaAQAAgLSRVXQydq9evXokGsicqmXLlubAgQNq3UmQ6EAos4TyALUHGyZ54yFNb2bPnu3UqNUOAAAAJJ302JBZwbfeesvZYqWNncOUI0cOM3z48ET3Akl0IBSff/65yZkzp/qAwyZnmfTr189s3bpVrR0AAABIKglZP/74o7nyyisj0UlUU7duXSewavUnReID4Z49e8z111+vPuAoyJQpkylTpox57rnnzIoVK9hfCAAAgETbv3+/+eabb0y7du1M/vz51TFyFEhTm/fff1+9hiRJfCAU8oGL6luHk6S+atWqmd69e5tly5aZgwcPckwFAAAAEkE6dMpEzYQJE5zJGjmWTRsTR0nTpk3Nli1b1OtJklQEQglWN954Y+Q2qJ5O1qxZzWWXXWZeeuklM2XKFLNp0yb1ugAAAICokl4ZMtExZswY50zBypUrq2PfKJJGkFOnTlWvK2lSEQjFnDlzTLly5dQHHlXyQcyXL59T9yWXXOK04B0wYID54IMPzKRJk5zD7mXdNQAAABCmr7/+2nz22WdmxIgR5oknnjAdO3Y0tWvXdo5dk8YscZmYETIGb9++fWLPHfyr1ARCmSV8/PHH1YcOAAAAAKJ48eLOERhapkii1ARCsX37dtOsWTP1wQMAAABIN2n4+Oqrr6pZIqlSFQhllnDatGnOcQ/aBwAAAABAOsmyVjkCY9u2bWqWSKpUBUIhofDBBx900r/2QQAAAACQPnIExqxZs9QMkWSpC4RCDoJv3bq1+kEAAAAAkC7S+Oa1115L5bFvqQyEQrqOFi5cWP1AAAAAAEgHWSoqZyPu3r1bzQ1Jl9pAeOLECTN27FiTJ08e9YMBAAAAIPnq1q2b6nO/UxsIxdGjR81jjz3mHASvfTgAAAAAJFfZsmWds73TuFT0pFQHQrFz505z0003qR8QAAAAAMkkJw8MHz5czQhpkvpAKA4cOOC0mM2QIYP6YQEAAACQHFmyZDEjR450tpFp+SBNCIT/a/ny5aZhw4bOplLtQwMAAAAg/rJnz24eeughZ/uYlgvShkB4imXLlpl69eqpHxwAAAAA8ZYxY0bTp08fs3//fjUPpBGB8BSymXT9+vVOKGSmEAAAAEgOaST5xBNPmH379qlZIK0IhIpFixaZyy67jFAIAAAAJEDOnDmZGTwNAuFpbN682Vx99dU0mgEAAABiTMLgf/3Xf5kjR46o4/60IxCexp49e8y9995rMmXKpH6wAAAAAERfvnz5zJdffmmOHTumjvvTjkCokDD44IMPmsyZM6sfKgAAAADxUaZMGfPJJ5+oY/+0IxD+xY4dO0z79u3ZPwgAAAAkSI4cOZyzBzlu4s8IhKfYunWr6dq1q9OOVvsQAQAAAIivggULmlGjRhEKT0Eg/F/SfvbOO+9kZhAAAABIsEKFCpkPP/xQzQRpRCD8H4cPH3bCIHsGAQAAgOTLmzev+frrr82JEyfUfJAmqQ+E0n721VdfJQwCAAAAKVKjRg0zd+5cNSOkSeoD4ejRo503BNqHBAAAAEBy1a9f32zYsEHNCWmR2kD4+++/mxkzZpiyZcuqHw4AAAAAySbNJDt06GB2796tZoY0SG0g3Llzp/NGQPtgAAAAAEiHDBkymJdffjm1+wlTGQj3799vunXrpn4gAAAAAKRL/vz5zUcffaRmh6RLZSB89913TZ48edQPAwAAAID0qV69uvn111/V/JBkqQuE69atM2XKlFE/BAAAAADSSZaOdu/e3Rw8eFDNEUmVqkC4d+9ec8MNN3D4PAAAAIC/yZYtm/nggw/ULJFUqQmE0lX0ww8/NDly5FAfPgAAAADUq1cvVUdRpCYQbty40dSuXVt96HEgZyXWqlXLtG7d2nTp0sXcddddpmfPnqZPnz7mkUceAQAAAELRq1cvc++995rbb7/d3Hzzzeayyy4zFSpUMJkzZ1bHtVEnR1HINWmZIolSEwgfe+yx2HwoM2XKZEqXLm2aNWvm1D158mSzfv16s3XrVmfZ6+HDh83Ro0fN8ePH1WsFAAAAbJGVeDIuPXLkiLP/bteuXea3334zS5cuNe+9957p2rWrqVOnjtPJUxv7RpE0oFyxYoV6vUmTikAo3YLi8AGUwCpflldffdXMnz/fCX7a9QAAAABxsm3bNjNlyhRz9913m2LFisWip4fMeKahwUziA6GEKlleqT3kqJDloJ07dzbfffed84ZFuw4AAAAgCWTF25AhQ0zdunWdlXHa+DgKcufO7YRY7RqSJPGBcO7cuaZkyZLqQw6bdDGSNdZffPGFOXDggFo/AAAAkETS4+Pll192joSTIx+08XLY2rdv7yyF1epPisQHQjlLRHu4YStYsKDp37+/2b17t1o3AAAAkHSyOk72Gnbo0CGS/T7y5ctnpk+frtaeFIkOhPLhKlGihPpwwyLrpaVT6IIFC8yJEyfUugEAAIA0kb16o0aNitzKPhm7/+tf/0p0b4/EBkIJW88//3yk1iXLElHpsrRlyxa1ZgAAACCtZPwus3FyVFyUms5Iv481a9aoNSdBYgOhtLutUqWK+lDDkCtXLvP000+bQ4cOqfUCAAAA+G/nuIfLL788UqGwX79+iW3+mNhAOGHChMh8iCQMvvHGG6loWwsAAAB4IcFLVtQ1b97cOSReG1/bJh1RpQmOVm/cJTIQSiegm266SX2YtmXNmtX07duX/YIAAACAC2vXrjWNGzdWx9i25ciRw4wfP16tM+4SGQilYUvZsmXVh2mTzFA+9NBDLBMFAAAAzsHq1atNjRo11LG2bdIJVasx7hIZCN95553Qp5flLJUWLVrQQAYAAAA4R7LK7ssvvzSFCxdWx9w2FS1a1Gzfvl2tM84SGQjbtGmjPkSbZIZSjr3Q6gMAAABw9l588UWTJUsWddxti5wY8NFHH6n1xVniAuHmzZtNgQIF1Idoi6wxHj58uFofAAAAAHd2797tLNnUxt423XHHHU6/Eq3GuEpcIJTNnpLetQdoS7t27ZxjL7T6AAAAALg3b948kzt3bnX8bYt0G926dataX1wlKhDKGuPevXuHetyEzA5KUxutPgAAAADn5vjx46ZXr16h9gqRiadFixap9cVVogKhzMpdccUV6sOzQYLorbfeao4eParWBwAAAODcLVu2zJQrV04di9vy1ltvqbXFVaIC4S+//GJKliypPjgbChYsaKZPn67WBgAAAMAbObT+3nvvVcfitnTt2lWtLa4SFQhnzpwZ6nLRtm3bOlPZWm0AAAAAvFu4cGGox1DUr1/fHDhwQK0tjhIVCN988031odkga5nff/99tS4AAAAA/ti7d6/TxFEbk9tQoUIFs2LFCrW2OEpUIOzevbv60GyoXLmyWbdunVoXAAAAAP8MGTLEZMiQQR2XB02OuJs2bZpaVxwlJhBKh9Err7xSfWg2dOnSJXFnkgAAAABRtH37dpMzZ051XB60zJkzm/fee0+tK44SEwjlsMoLLrhAfWhBk7cT77zzjloXAAAAAP9dfPHF6tjchueee06tKY4SEwhXrVplKlasqD6woMlbAvn3tboAAAAA+K9v377q2NyG2267Ta0pjhITCOfMmRPakRNFixZ1lqxqdQEAAADw3wcffGCyZs2qjs+D1qpVK7WmOEpMIPzqq6+ccwC1Bxa0Ro0aqTUBAAAACMa3335rChUqpI7PgyZHT2g1xVFiAuH48eNNrly51AcWtNtvv12tCQAAAEAwVq5c6XT618bnQStXrpxaUxwlJhCOGzcutCnjJ554Qq0JAAAAQDC2bt0aWlNJmZnUaoqjxATCUaNGmUyZMqkPLGj9+/dXawIAAAAQjD179jhLN7XxedBy586t1hRHiQmEw4cPD+1wSo6cAAAAAOySM8CbNGmijs+DJqcMaDXFUWIC4bvvvqs+LBtGjhyp1gQAAIBoOHr0qHNu9aZNm8z8+fPNRx99ZF555RXTu3dv07VrV9O+fXvTtm3b/2jXrp3p3Lmz6dmzp3PmnBxE/v3335tff/3V7Ny50xw6dMj8/vvv6r8FO+T+X3rpper4PGjnnXeeWlMcEQh9ID8QWk0AAAAIj4TApUuXmsGDB5sePXo4s0nSlV4G89qY7mzIUsHatWubm2++2QwcONDpdHnw4EH130fwLrvsMvU52aDVE0cEQh8QCAEAAKJBZu9++OEH8/jjj5sLL7zQCYBZsmRRx3BeSf+KvHnzOp0u77zzTvPZZ5+Z3377jfOpLSIQekcg9AGBEAAAIDzHjx93Ok4OGjTINGvWzBQoUEAdswVNOt7Xq1fP9OvXz6xYscKZodTqhX8IhN4RCH1AIAQAALDv2LFjZt68ec7sXL58+dRxWlhk9rBNmzbmk08+MYcPH1brh3cEQu8IhD4gEAIAANgjQXDBggXm1ltvNSVKlPC0JzBosqT0qquuMp9//rnZv3+/ej04dwRC7wiEPiAQAgAA2LFjxw6n62fJkiXVcVlU5cmTx2lEs2bNGvW6cG4IhN4RCH1AIAQAAAiWHPMwfvx4U7FixdDOnvZKZjKlyc0zzzzjNL/RrhPuEAi9IxD6gEAIAAAQHDn7T84DzJ8/vzoWixtpPnP11Vc7y16lIY52zTg7BELvCIQ+IBACAAD4Tw4enzlzpqlbt25sZwXPpEyZMuatt97imAoPCITeEQh9QCAEAADw15EjR8zQoUNNqVKl1PFXUuTMmdP07t3bbN++Xb0PODMCoXcEQh8QCAEAAPxz8OBB8/zzzzsdOrWxV9JkzpzZdO7c2TnUXrsfOD0CoXcEQh8QCAEAAPwhXUTvvffeSB8lEQS53vr165tVq1ap9wU6AqF3BEIfEAgBAAC82717t3O2YJYsWdQxVxo0adLEaTaj3R/8HYHQOwKhDwiEAAAA3uzdu9fcddddiWwe45bMFHJe4dkhEHpHIPQBgfDMpEPYli1bzOzZs81nn31mPvjgA8dHH31kvv76a7Ny5Upn47j2v00raUEt+whmzJjhnLl08p59/PHH5rvvvjPr1q0zR48eVf+3aXXs2DHz888/O/fnk08++c89k/sn91FaltPa+8/keydLk7755hvn+3jynn366adm1qxZZvPmzc73V/vfppWcg7Z06VIzbdq0/9yzDz/80EycONHMnTuXphDAOdq3b5+55557CIP/S5aPXnzxxWbDhg3q/cL/IRB6RyD0AYHw72QQuWfPHjN16lRzxx13mDp16pgSJUqYHDlymEyZMjlkOUiBAgVM5cqVnbN4pO3y+vXrUztol5bTckjthAkTzE033WRq165tihQpYrJnz/6feybnFhUuXNhUq1bNtGrVyowZM8YJjmm+ZxJaxo0bZ9q0aWOqV6/u3B+5TyfvWbZs2Zz7WKtWLdOxY0cnIMqgPa0tvuWzIsF58ODBzveuSpUqziHJ8n08ec/ke1q8eHFzwQUXmNtuu81MnjzZWcaV1nAoL19Wr15tXn75ZXPFFVeYChUqmHz58jlNIOR+yf8pXQKlE6K0xpez0uQlhAxwtf8egD+T36UXX3zR+R5p46w069SpEy+a/gGB0DsCoQ8IhH8mgycJNVdddZUzWNLu2emULFnSPPvss2bTpk3qfzupDh8+7LTWbtSoketN9BIO+/fv7wRw7b+dVDLYHjBggKlZs6Z6X07n5FvXd955x7nv2n87qWSm/rnnnnPOvdLuzenIG3sJQjJDnbaZ6bVr1zrt4OWlgnZvTkdeRLRu3dqZfZXZa+2/DeCPF8iyekhe5GnfpbSTcZS8ZGK1xukRCL0jEPqAQPh/Nm7caG644QaTO3du9V6dDfnxk5keGXwmfSAlP/CLFi1yZvtkJlC7H2dDZigkTMoytqT/0ZDrk0H2JZdc4qnpgAzYW7RoYebNm5f4eyazoTIzKrPObl/SnCpXrlzm+uuvd2bytX8nSWRpqPy2S3jOmDGjej/Ohswk9ujRwwnj2r8DpJ0sT69UqZL6/cEfZOZ0+PDhbHs4DQKhdwRCHxAI/7Bw4UJfv5SynPSNN95I9CzOV1995SzL067/XMiSNdnTlNQgLX8MZX9guXLl1Os/FzLDOGXKlMSGQtknOGTIEOf7pF3/uZAOeLJfTvv3kkDOP3vqqad8O/9MAmXLli1TEaQBN2RlS/PmzdXvDf6sbNmyzjhLu49pRyD0jkDoAwLhf5slS5Y4s3ra/fFCZs3kYNqkDdbleuStaKFChdTr9kJmZ0ePHp3IeyZNPPLkyaNetxcyi/P9998n8p7JslrZE6hdtxfyRl9mt7V/N85kNlWWZwXR8r5x48bOElTt3wXSRpafP/roo84KF+37gr+Tfd9yRqN2P9OMQOgdgdAHaQ+EshSqadOmgXUGy58/vzPrlaSlEhKgpdGOdr1+kBk0aeij/dtxJctEK1asqF6vH2Q5ZZLOfZJgI8uug3jpIGQvpswUyjJx7d+PIxmgSrOdoPYyyUyh7Cvcv3+/+u8DaSIv4fyahU8L2eogL8m1+5lmBELvCIQ+SHMglKWJjzzyiHpf/CRBQI5a0GqIG1nCJ/sstev0kwQcWfqm1RA3ch1yJpN2nX5q27ZtYpYoyzEb0kFUu04/yWxaUhrNyDJYWXatXadf5MXZwIED2QuEVJOO2jLbpX1HcGYSoqVTtHZf04pA6B2B0AdpDoRffPGFM4On3Re/de7cOfaDdVnCJ/u5gljCp3n88cdjv59Q6pfOszbOppK3r3L8SdyPpJCXDnLci3aNfpPBiTSs0eqIE3npIJ2RtWv0W9GiRc1PP/2k1gGkwauvvspSUQ9uvvlmVhqcgkDoHYHQB2kNhPKGu127duo9CUKxYsWcs720WuJCfsBtzHSdJDNEcvC/VktcyMywHK2hXV8QLrroIrNr1y61lriYPXu2c4SLdn1BkG6tcZ/xkoPlbS5fk86jaT0LE+kme+Dk/GHte4GzI/vepau4dn/TiEDoHYHQB2kNhNJQIogGH2ciy9O0WuJi+vTp6nUFSd7EarXEhZwXqF1XUGRvnIQDrZa46NOnj3ptQZGZ1Tjvv5SVB/LGXbu2oMhxFnLYvVYPkFTy4uill17ydJQL/iCdi9N2lu7pEAi9IxD6II2BUJY+ygHXtn/UZdYjrvuV5A/hnXfeqV5XkOS8vrguG5W6r7zySvW6gnTLLbfEdsZLvh9BNt/RyHLeJ554IrYzXtIYy89jOc6GNK6R5eNaPUBSydErNvY2nys5p1XO/JPVAtKxO8qH5UuNEyZMUO9z2hAIvSMQ+iCNgXDfvn3m2muvVe9HkCSAxrXV/datW03Dhg3V6wqShOi4trqX5aLly5dXrytIdevWNZs3b1ZrirrFixdb26N6KumeKWeKaTVFnXTk1a4paLfffnvs9/gCbsgebVmFoX0fbJM6ZHWDdOWWFQLS7EnOuZ08ebKzHFPOp/3ss8+cmmV1Uq1atUyuXLkiM7sp9UuDOmYJCYR+IBD6II2BcNOmTVb3dZ0kMxFDhw5Va4o6WVJXunRp9bqCJMt647oEUv4gy14J7bqCVKJEidg2/ZDfozCaNVStWjW2ne+kjbt2TUGTFw9J6QQM/BPZOyifee27YFuFChXMfffdZ7777ruzXnUkK6OWLVvmLHm98MILndlE7b9tk8xgJvE8WLcIhN4RCH2QxkAoMzdhDNTljZh0ztRqirpvv/3WebuoXVeQ5IBtOVtNqynq5LsVxpIdWTL05ZdfqjVFnSzlttGR9a9k+ZIMlrSaoq5bt27qNQWtcOHCdApEasi5qLb7DpxKxg+y4kTGEDKGkW7MWp3/RIKhvBQfNWqU04Qs7G6pvXv3jn1TL68IhN4RCH2QxkAozRDC+hGUt3paTVEns11hvFE8ee6ZVlPUvf3226GEG3lOcT1K4eGHHw5lSZb8HixcuFCtKeo6dOigXlPQ5GXH3r171ZqAJJEQZbtx06nkN7F58+bOWaNSi1bjuZCtBffee6+z9FT7d2244IILzIYNG9T60oJA6B2B0AdpDIRylIF2L2yQxixaTVE3adIk9XpskCUuWk1R91//9V/q9djw0UcfqTVF3f33369ejw1x7TTapk0b9XpsiPq+S5kJ+fTTT53OtTLokj3JMhssKw/kJQDskFULsipHtmpcf/315rXXXjM//vhjbPaP7d6922nSon0Hgiazkn379j3nGcF/IrNz0tzF5lE/p5IXSzL7qtWWFgRC7wiEPiAQ2hXXQCiH+GvXYwOB0D0CoXsEQveiGAilW+zGjRud0CGzD2EN5HF6snKiePHipn379k4DlKgvPf7ggw/U6wiafHZff/11c+DAAbUuv8h3RrYZhNVB9bbbblPrSgsCoXcEQh8QCO0iELpHIHSPQOgegdC9qAVCme0YPXq0qV27tlovoke6Cku3STnSQXumYZNOuhJYtNqDlD17dme7hM2jquSs4TCax8m5pmluUEUg9I5A6AMCoV0EQvcIhO4RCN0jELoXpUC4fft206tXL2cgrdWK6JI9cueff76zdDFq54HK/rY6deqodQdFltk+9NBD1s8tlnsvR1XIEl+trqDIvyeN67Sa0oBA6B2B0AcEQrsIhO4RCN0jELpHIHQvKoFQlhzeeuutkT6IG/9M9rFJQ6wohcJZs2ZZ7y7arFkzZ/+rVk/Q5N7LuYU2zyuUf+uVV15R60kDAqF3BEIfEAjtIhC6RyB0j0DoHoHQvSgEQllqdtddd0XmwG14kz9/fvP111+rzzoM0i1aqzMosoR2zpw5ai22/Pbbb+biiy9W6wvKjTfemNplowRC7wiEPiAQ2kUgdI9A6B6B0D0CoXthB0KZzRg6dGiobfPhv/r165tVq1apz9w2m+d8SrMd+fdk36JWi03vv/++1aOmZFnu1q1b1VqSjkDoHYHQBwRCuwiE7hEI3SMQukcgdC/sQLh8+XJn75lWG+JLgtE999yjPnPbbM6UFSpUyHz33XdqHbbJntx69eqpdQZBjoORA/e1WpKOQOgdgdAHBEK7CITuEQjdIxC6RyB0L+xAeMcdd6h1If6k0cjs2bPV527Ltm3brHbdlO9yVPZPygH40uVUGtxotQbhm2++UWtJOgKhdwRCHxAI7SIQukcgdI9A6B6B0L0wA+HmzZudw861uhB/0nlUZgnDPLx+0aJFpkiRImp9fpPrHTFihFpHWFasWOHs6dTqDcLw4cPVOpKOQOgdgdAHBEK7CITuEQjdIxC6RyB0L8xA+NZbbzlLC7W6kAyVKlVyjn3Qnr8NU6ZMcZYyarX5TZaLLlu2TK0jLDJLeNFFF6n1BuGpp55S60g6AqF3BEIfEAjtIhC6RyB0j0DoHoHQvbAC4YEDB0zHjh3VmpAcEvgllGmfARvGjh3rdP3UavNb06ZNnX17Wh1hkvMQtXqD0L17d7WGpCMQekcg9AGB0C4CoXsEQvcIhO4RCN0LKxD++uuv1g8LRzieffZZ9TNgwzvvvGOyZMmi1uW3f/3rX6Eujz0dm+PTG264Qa0h6QiE3hEIfUAgtItA6B6B0D0CoXsEQvfCCoSytK5w4cJqTUiWm266Sf0M2CBNVWycbyn7B3v37q3WEDaZobUVilu0aKHWkHQEQu8IhD4gENpFIHSPQOgegdA9AqF7YQVCeVZZs2ZVa0KyXHHFFepnwIZ///vfTljT6vKT/BvPPfecWkPYvv32W5MnTx61br81a9ZMrSHpCITeEQh9QCC0i0DoHoHQPQKhewRC98IKhPPmzaOhTEo0btxY/QzY8MILL6g1+U0+y6+88opaQ9h++OEHa51GZR+lVkPSEQi9IxD6gEBoF4HQPQKhewRC9wiE7oU5Q2ir2QfCdfXVV6ufARskpNl48SAzhFHtsPn111+bXLlyqXX7LczZ4DARCL0jEPqAQGgXgdA9AqF7BEL3CITuhRUI5Te8RIkSak1Ilq5du6qfARteffVVK3sIhfz2yTEPWh1h+vzzz02mTJnUmv3WqlUrtYakIxB6RyD0AYHQLgKhewRC9wiE7hEI3QsrEMqh9BdffLFaE5Klf//+6mfABhmb2dqrev311zvHqWh1hOmNN95Q6w2CdFrVakg6AqF3BEIfEAjtIhC6RyB0j0DoHoHQvbAC4ZEjR8ztt9+u1oTkkO6Ws2bNUj8DNsjvaM6cOdXa/CYHwG/atEmtI0w2v2c9e/ZUa0g6AqF3BEIfEAjtIhC6RyB0j0DoHoHQvbACoRg3bpy15XwIh5w1KbPB2vO3QfbP5cuXT63Nb9LJM2q/QceOHTPVqlVT6w3Ciy++qNaRdARC7wiEPiAQ2kUgdI9A6B6B0D0CoXthBsL9+/ebMmXKqHUh/iTsS6OV48ePq8/fhhUrVphixYqp9QVhwIABah1hkdlZW0dOCHnJo9WRdARC7wiEPiAQ2kUgdI9A6B6B0D0CoXthBkIhvw22Ds2GXdI06JdfflGfuy179+415cuXV+sLQqNGjZwXHVottsnsYN++fa0d7yL/zpw5c9Rako5A6B2B0AcEQrsIhO4RCN0jELpHIHQv7ED466+/mrp166q1Ib5kdvDZZ59Vn7ltcjaeVmMQ8ubN6/yt1eqwTZbqnn/++WqdQShcuLD5+eef1VqSjkDoHYHQBwRCuwiE7hEI3SMQukcgdC/sQCi+++47U6BAAbU+xFOHDh3Mrl271Odtm+3fJDmL79ChQ2ottsjxF88//7xaX1AaN25sduzYodaTdARC7wiEPiAQ2kUgdI9A6B6B0D0CoXtRCIRHjx51vmu5c+dWa0R8yAHtF1xwgVm1apX6rMPw/vvvO3Vp9QYhc+bMZsyYMebEiRNqPTbMmzfPVKpUSa0vKNLNVLoHa/UkHYHQOwKhDwiEdhEI3SMQukcgdI9A6F4UAqGQxiPSgCRXrlxqnYiHGjVqmLlz50bqgHYJRwULFlTrDUr16tWdhjZaPUGT71Lbtm2th2A571CrJw0IhN4RCH1AILSLQOgegdA9AqF7BEL3ohIIhcwuSJfCsmXLWh3MwrtMmTI5B7PL32bt2YZp69atpkmTJmrdQZHPb6tWrawvm5WlqnL0g+3jXKST6aJFi9Sa0oBA6B2B0AcEQrsIhO4RCN0jELpHIHQvSoFQyMySzDC1b9/e2oHiOHcSPEqXLu2EkKjsGfwrmTG777771PqDJLNmclC7re+YXOeIESOsnbt4KmleI0u/tbrSgEDoHYHQBwRCuwiE7hEI3SMQukcgdC9qgfAkGVzKoeI33XSTKVq0qFo7wiNhp3bt2k4n0bCPljgb06ZNU68jaDJT2KNHj8CbrUgYlCWbYYRB0atXL7WutCAQekcg9EFaA2FYS4ruuusutaaomzRpkno9Nvz73/9Wa4q6MAPhxx9/rNYUdQ888IB6PUGT34O4BkLZ76NdU9Dknsk5bVpNUXHgwAGzbt06M378ePPII484M4eXXnqp09EQdl111VWmS5cupn///s6B51u2bHGCiPbcokaWUpYsWVL9HgRNztm85pprnEY7QTSakefw+OOPhzajLkdtSODWaksLAqF3BEIfpDEQrl69OrTDjGUJiFZT1E2ZMsXZ56FdU5DksNqBAweqNUXdoEGDrO/FEPKcJkyYoNYUdX369AnlZY38HsR1D0vHjh3Vawpa9uzZIx8IAT/IUuR77rlH/R7YIL+JNWvWNKNGjXIOjNdqdEvCpSyvvvrqq50ZW+3ftaFhw4Zm27Ztao1pQSD0jkDogzQGQjn8VA5B1e5HkORHPSqH7bo1Y8YM502edl1BypYtmxk+fLhaU9RJ63AZNGvXFSTZoB/XN64vv/xyKCG6UKFCoXX180qWlGnXFDSZMdm/f79aE5A03377bSjjhlNJcJMAJyt2zvVljARBmaGVl9NR2Gcb1xe+fiIQekcg9EEaA6F0DatTp456P4Iks11jx45Va4q6pUuXmgoVKqjXFSTZ0xDXcCMDCAka2nUFSbosxnX5o+x9DGP2XvYz/frrr2pNUScDKu2agnbJJZeEfoA2YIu8/JBlr9p3wbb8+fM737/XXnvN+dssM2yHDx9Wj+uQ/bS7d+82a9eudbrwyqH/xYsXd8Yj2n/bpgIFCpj169f/rea0IRB6RyD0QRoD4cGDB51mA9r9CJLMfMiPslZT1EkHONl7o11XkKQD3W+//abWFHVSd+XKldXrClKDBg0Cb0IQFPl+hPHW+rrrrovtbNcPP/ygXlPQZIYhLnvAAD988MEHkQhSp5IVIfKbf8stt5i+ffs6TdjkJdErr7xinnzySefAd5lVLFKkSCjL8U9HapGeCmnuLnoSgdA7AqEP0hgIxdtvv2193bzMQkTpwF03pO5+/fqp1xWkdu3axfqe3Xjjjep1BenBBx+M9T2rV6+eel1BkRc1r7/+ulpPHMjb//Lly6vXFhQ5AD6unWyBcyUzcU2bNlW/E1EgIUt+z06KWng9VbFixcxPP/2k3ue0IRB6RyD0QVoDoSxTsLmcT36Yn3rqKbWWuJg3b57VxjLyBy3un88PP/zQuQ7t+oIgz0dmjLRa4kK6ytocyOTOndvpRKnVEgfyhv3ee++1+va/atWqZtOmTWo9QFLJCys5qy+spnRJ0rVrV1YY/C8CoXcEQh+kNRAKm80YKlasaJYtW6bWERdHjhyxeuZZ/fr1Y7tc9CTZryot17XrC4K0J497ow85FkYOKtauLwi33XabWkecyJt2mw0vnnvuObUOIOlkr97FF1+sfi9wdqQhVVz3uQeBQOgdgdAHaQ6ECxcuNFWqVFHvi59ktuPFF18M5Awh2+SwZ9mLoF2nn2RWTTbAx/2eyRtlORMwa9as6nX6STboT506NbbLRU+SZy57YGzMEkqjJJn51uqIE3nTLnv6bMwS1q1bl0YQSLWJEyc6v7fa9wP/7Pnnn/ft+IwkIBB6RyD0QZoDoQyi3nzzzcAHUY0aNXIOf9VqiBv5Ee/Vq1fg90xmupKy2VyuQw7EDvKeyX9bzslKyh/ZnTt3Ol30tGv1i9wzOSQ7KcuW5OBq2aesXatfZEmy7B1Mwsst4FwdOHDAOWRf+47gzGS/s/y+a/c1rQiE3hEIfZDmQChk+YesZQ9qb1ycjwA4ne3bt5u2bdsGFnCkqcjq1avVfzuuZI+avBjQrtcPrVq1SsxLh5NkBr9SpUrq9XolM9DSlS9p5+gFeV6ozHI/9NBD6r8LpM2GDRusN3OKO/ltkhUz2v1MMwKhdwRCH6Q9EIrNmzc7AcfvrqNlypRx3qbHfQmf5pdffjEXXXSRrw1TJGBKswoZ1Cbtnsn1zJkzx1SrVs3XIC33/4ILLojtcSZnIvfs008/9X3QJS9/pA17EpuiyD175513TNGiRdVrP1fSREP2WvJmH/iDzJIPHTrUaUqlfWfwZ7IFQI6ZkGO/tPuZZgRC7wiEPiAQ/kFmV7p166beo3MhM4NfffVVIsPgSRJCWrdurV7/uZDlbjKbmtR7Jte1aNEiX49VkGAjSwW1fy8J5J7JC4Jy5cqp138uZGYwyR0yZaAq56XJ4dPa9bslYfD+++83e/bsUf89IK1kOwBLR89OnTp1/n97dx/rZVn/AXyJwEGQDpKOVByYWmrqfEhRB9l0y1JEKdBKnZVDNlxLx3wmW+SijGS51YYZnaUplGngCtNapaOppKGiU/LxLEkQDj6tP6/fPvcvJtiFHfg+nPO9r9cfrz/453B97/v+nnO97+u6Pp/0j3/8I3sdSycQNk4gbAKB8F1RRXPRokXVKlXuWvVHvC380pe+VIWlOofBraIH2vz586uqYbnr0R/d3d1V77xOryjaX7EiPXfu3DRmzJjs9eiP6OEUlR7Xr1+f/T/qJrbcxtbuaMKcux79EdtPo99gX19f9v+okwiFUdU4Xtjsscce2evRH7H63NPTo3k07EDslhnICX0niB0L0Q6phDnRrhAIGycQNoFAuL2YSMUqTlTsi2qa/ek3FFshIghOmjQpLVu2LG3YsCH7s+sqinLEKk5M2CPk9Oc8ZlyzOE8QZ9+WL19eneXM/ey6ign2ihUrqq3KcR36U1EzrmuE53jhcP/99xfXw2njxo3pl7/8ZVVsJoJhf65ZbAMfO3ZsmjNnTrX6XFoxlNjiGb/jjz766DRy5Mh+bVeOs4L7779/9dJi7dq1xV0z2FmrVq1qa1/jTjJq1KiqarQwuGMCYeMEwiYQCHfs2WefTTfffHM677zzqjflUWY6JuUxqRoxYkTVW/C0005LV1xxRXrggQeqFcbczylF/MJfs2ZNWrBgQfr85z+fDjvssCrsxDm3mLzHhDRWX6OX4bXXXltN0EsvPR2hLoqnzJs3rwqHcX3iD2hcr62hOc4dTp8+vWrYHqs+pU/Q43sWb5uvvPLKastsrPzF9zG+l/GsxUuJ2H587rnnViv+ndx0vlliVTRevFx++eXV5CO2tMc1i78BEZpjMhtbmWM77S233FKtYud+DvDf4m/f0qVLhcL3iN/J3/jGN4rYldEIgbBxAmETCIT/WxyC7u3traqKxVbQEH244hxSbJn0Bn178ccxynJHU/bYTrP1mkXAjrOasYLqmm0vrkesgMX1iev03msW19Mb1u3FNYtzbRFe4vu49ZrFMxff1/jeumbbixcQ8TsrtmfHNYsVwAjM8bvtn//8p4kb7KJ4uRlzudjFkZtrlSZ2V82ePbu4HVO7QiBsnEDYBAIhAEBj4uhDbI/sz1GTOouVwRkzZlQvn3LXie0JhI0TCJtAIAQAaI4IhY0UDet0s2bN0qJmJwiEjRMIm0AgBABojlgpjH6gUXcgN++qq6hoHO27tKjZOQJh4wTCJhAIAQCaJ87rRtXxZvUDHey6urrSN7/5zeq8e+56sGMCYeMEwiYQCAEAmiuKWkU17VNPPTU7/6qLCRMmVFVW9SvdNQJh4wTCJhAIAQBa4/nnn08zZ86sWi/l5mGdKtpwnXzyyen3v/999nPTPwJh4wTCJhAIAQBaJ1bPbr311jRx4sTsXKzTjB49Os2dO1cl0SYQCBsnEDaBQAgA0FpxrjD6f0bhlU6tQhotNU4//fR0//33V8Vzcp+TnSMQNk4gbAKBEACgPaLwyl133ZWOO+64attlbm422Oy2227pgAMOSN/97ne1lGgygbBxAmETCIQAAO0VK4Z33HFHOuWUU9KQIUOyc7SBFkHwoIMOqoKg7aGtIRA2TiBsAoEQAKD9ohJpb29vFQxPO+20qnfhBz7wgex8rZ2iAM6RRx6ZfvCDH6SnnnoqvfPOO9nx0ziBsHECYRMIhAAAAyu2kq5cuTLNnj07jR8/Pjtna7VRo0ZVFVF7enqqoJobJ80lEDZOIGwCgRAAYHCIraSvvfZauueee9KsWbPSCSecUBWhacXKYQTAww8/PJ177rlp8eLF6cUXX9RPsM0EwsYJhE0gEAIADD4RDl9++eX05z//uZorXnzxxen4449P++23X7W9dM8990xdXV1p6NCh1Xm/bUNj/DuK1gwfPrzaAtrd3Z322WefaivojBkz0oIFC9J9992Xnn76aSFwAAmEjRMImyD64uTGBADA4BPbS9esWZNWrFiRfvazn6VFixalb3/722nevHnp6quvTtdee22aP39+WrhwYbrllluqqqYPP/ywCqGDTJwhnTJlSnZ+3mrx8iA3pk5Um0D4k5/8pHqTk7thrfbDH/4wOyYAAKA1+vr60oknnpidn7darBznxtSJahMIlyxZMmC9aL7zne9kxwQAALRGtPKIfpS5+XmrxXbj3Jg6UW0C4W233VYl9dwNa7UrrrgiOyYAAKA1oohPnOnMzc9bbe+9986OqRPVJhDG3u5I6rkb1mpRXjg3JgAAoDVWr16dJk6cmJ2ft9rBBx+cHVMnqk0gjCpPY8eOzd6wVjv66KOzYwIAAFrjt7/9bdVSJDc/b7WoVpsbUyeqTSBctWpVVUI4d8NabfTo0WnLli3ZcQEAAM0XFWCHDBmSnZ+32plnnpkdUyeqTSCMHjCxdJu7Ya0WxWweeuih7LgAAIDmu+SSS7Jz83aYNWtWdkydqDaBcMOGDdXWzdwNa7XoQ3LDDTdkxwUAADRX9CAcqMWgUKcuA7UJhPFQfPrTn87esHaYNm1a2rhxY3ZsAABA8zz55JNp2LBh2Xl5q8X/29PTkx1XJ6pNIAyXXnpp9qa1w7777psef/zx7LgAAIDmiIWgBQsWpN122y07L2+1D33oQ1VBy9zYOlGtAmEcLM3dtHb53ve+lx0XAADQHL29vWny5MnZ+Xg7HHLIIemZZ57Jjq0T1SoQPvjggwNWaSicdNJJto0CAEALrVy5Mo0aNSo7H2+HSZMmpc2bN2fH1olqFQjXrVuXxo8fn71x7RCN8e+8887s2AAAgMa8/fbbaebMmdm5eLt85StfyY6tU9UqEL722mvpjDPOyN64dpkyZUrq6+vLjg8AANh1sTo4duzY7Dy8XZYsWZIdW6eqVSB855130ty5c6s2ELmb1w5Dhw5Nv/71r6vDrrkxAgAAOy8WXWJ1cCDn+iNGjEiPPvpodnydqlaBMNx1112pq6srewPb5ZhjjknPPfdcdnwAAMDOW7p06YBVFt3qE5/4RFXUJje+TlW7QPjqq6+mffbZJ3sD2yUK21x22WXprbfeyo4RAADov+g7GIsuubl3u8TK5Jw5c9Kbb76ZHWOnql0gDJ/5zGeyN7Gduru7029+8xtbRwEAoAGxyPLlL395wFcHhw8fnm677bbsGDtZLQPh4sWL0+677569ke30kY98JK1ZsyY7RgAA4P1FVdGbbrqpCmO5+XY7jRs3Lq1fvz47zk5Wy0D4t7/9LR144IHZG9lusVrpPCEAAOycKBgZxRr33nvv7Dy73b74xS9mx9npahkIt2zZkqZNm5a9ke0W5wmnT59eu73GAADQSg8++GA66KCDsnPsdosVyttvvz07zk5Xy0AYotroQJak3Vbsd77wwgvTyy+/nB0rAADw/2Jl8C9/+UuaMGFCdm49EI499tj0/PPPZ8fb6WobCKPa6Ec/+tHsDR0IcabxnHPOSevWrcuOFwAAShdnBu++++5BszK41VVXXVUF1dyYO11tA2E8TNdcc021ZTN3UwdCrBSedNJJ6a9//Wt2zAAAUKo4YnXjjTcOeAu59xo1alR6/PHHs2Oug9oGwvD3v/897b///tkbO5DGjx+fbr755vT6669nxw0AACVZu3Zt1VpiMFQT3VYcQTv//POrGiW5cddBrQNh9AC86KKLsjd3oMWbhqhUFG0p6rr8DAAA76evry/94he/qM7oDaadfVt98IMfrHqL58ZeF7UOhOGhhx4adMvO24p+Jtddd131VkQTewAAShDN5pcvX55mzpw5KIPgVmeccUY11txnqIvaB8J46zB79uzsDR4s4ksQTezjsOrq1avT5s2bs58FAAA6VSx+9Pb2phUrVqSpU6em7u7uQdMVICdWB++9997sZ6mT2gfCENsyhw0blr3Rg0l8IT784Q9X+5SXLl3qjCEAALXwzDPPVAVjJk+enEaOHJmdCw82Z599dtqwYUP289RJEYEw3kZ8/etfH9TL0e8VYx09enQ69dRT07x589KyZcvSn/70p+rLtH79+rRp0yZnDwEAGBSiQujGjRvTK6+8kh577LH0u9/9Li1evLjaqXfooYdWxWKi4n5u3jsY7bHHHunRRx/Nfta6KSIQhieffLJ6GHM3vBN0dXVV5w0/9rGPVYduJ02aVL1h+eQnPwkAAAPq5JNPTscff3w66qij0oEHHpj22muvjlqM2VaM+5JLLimmvkcxgTBEq4dOfTABAIDWiwWYJ554Ipsn6qioQBhbLWMv8GA+vAoAAAyM2JV36623FlX9v6hAGFatWpXGjBmTfQAAAIAyxaLRWWedlf71r39lc0RdFRcIw/e///3qoGjuQQAAAMozceLE9PTTT2fzQ50VGQgj9X/hC1/IPggAAEBZoudgbBXNZYe6KzIQhqeeeiodcsgh2QcCAAAox9e+9rWqrVsuN9RdsYEw/OEPf6gaweceCgAAoN6iN+JnP/vZIhrQ70jRgTAau994441p5MiR2QcEAACor8MOOyytXr06mxVKUXQgDJs3b07XX3999gEBAADq6YADDkj33XdfNiOUpPhAGLZs2ZIuuOCCNHTo0OzDAgAA1EcUkbnnnnuqHYO5fFASgfA/XnrppTRt2rRqH3HuoQEAADpfd3d3WrhwYVHN59+PQLiNV155pTpUGk0pcw8PAADQuaIX+aJFi4TBbQiE7xErhWeeeabtowAAUCOxMhhhsK+vL5sDSiUQZrz44ovp7LPPzj5IAABAZ4kzg9FdwJnB/yYQ7kBUH7388svTiBEjsg8VAAAw+EU10Xvvvdc20R0QCN/Hxo0b07e+9a3qjULu4QIAAAanKBZ5xBFHpAceeMDK4PsQCP+HN954I91xxx1p3Lhx2QcNAAAYfKZOnZoee+yx7ByfdwmE/RDLyw8//HD61Kc+lYYMGZJ94AAAgIEXu/suu+yyardfbm7P9gTCnfDss8+mOXPmVOVqcw8fAAAwMKJ13MSJE9OSJUvSpk2bsvN5/ptAuJNitbCnpycdddRR2QcRAABorygEOX369LR27drsHJ4dEwh3QRxKfe6559Kll16a9tprr+xDCQAAtFYUjjn00EPT7bffnjZs2JCdu/P+BMIGRMGZX/3qV+mUU07JPqAAAEBr7LnnntVxrieeeEJLiQYIhE3w1ltvpR//+MfpxBNPTLvvvnv2gQUAABo3ZsyYNGPGjLR69WpBsAkEwiaJh/GFF16oguHhhx+eurq6sg8wAACwc6JgTFQPPeecc9LKlSvT66+/np2Ts/MEwhZ46aWXqmA4efJkK4YAANCACIIXX3xxWrFiRbUzLzf/ZtcJhC0SK4bx5mL58uXp/PPPT+PHj68OveYecgAA4F3Dhw9Pxx13XLrmmmuqM4JRuyM356ZxAmEbvPnmm1Vj+5tuuqlqbj969GgrhwAA8B+xJTRC4L777pu++tWvpmXLllXHsaK6f25+TfMIhAPgkUceSQsXLkyf+9zn0oQJE9KQIUOyXwwAAKiz6B8YK4FRLfTnP/95evXVV7PzZ1pHIBwgsaV006ZNad26demPf/xjmj9/fpo6dWo68sgjq+2lsYpoiykAAHUwbNiwNHbs2HTwwQenE044IV100UXppz/9aVUptLe3t9pRl5sz03oC4SASITHeisT20rvvvjv96Ec/SldeeWU677zz0pQpU9LHP/7xNG7cuDRy5Mg0dOjQ7JcNAADaLbZ8RpX9WNSIHXDHHHNMOv3006vtnzfccEPq6empqoOuXbs2bd68OTsXZmAIhAAAAIUSCAEAAAolEAIAABRKIAQAACiUQAgAAFAogRAAAKBQAiEAAEChBEIAAIBCCYQAAACFEggBAAAKJRACAAAUSiAEAAAolEAIAABQKIEQAACgUAIhAABAoQRCAACAQgmEAAAAhRIIAQAACiUQAgAAFEogBAAAKJRACAAAUCiBEAAAoFACIQAAQKEEQgAAgEIJhAAAAIUSCAEAAAolEAIAABRKIAQAACiUQAgAAFAogRAAAKBQAiEAAEChBEIAAIBCCYQAAACFEggBAAAKJRACAAAUSiAEAAAolEAIAABQKIEQAACgUAIhAABAoQRCAACAQgmEAAAAhRIIAQAACiUQAgAAFEogBAAAKJRACAAAUCiBEAAAoFACIQAAQKEEQgAAgEIJhAAAAIUSCAEAAAolEAIAABRKIAQAACiUQAgAAFAogRAAAKBQAiEAAEChBEIAAIBCCYQAAACFEggBAAAKJRACAAAUSiAEAAAolEAIAABQKIEQAACgUAIhAABAoQRCAACAQgmEAAAAhRIIAQAACiUQAgAAFEogBAAAKJRACAAAUCiBEAAAoFACIQAAQKEEQgAAgEIJhAAAAIUSCAEAAAolEAIAABRKIAQAACiUQAgAAFAogRAAAKBQAiEAAEChBEIAAIBCCYQAAACFEggBAAAKJRACAAAUSiAEAAAolEAIAABQKIEQAACgUAIhAABAoQRCAACAQgmEAAAAhRIIAQAACiUQAgAAFEogBAAAKJRACAAAUCiBEAAAoFACIQAAQKEEQgAAgEIJhAAAAIUSCAEAAAolEAIAABRKIAQAACjSv9P/AY7bz7iQemWrAAAAAElFTkSuQmCC",
+ "ImageStream": {},
+ "Name": "Server",
+ "ParentId": "8db306cc-f8f5-4c07-8be2-48e2a0af38aa",
+ "Representation": "Rectangle",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": null,
+ "Hidden": "false",
+ "Id": "5bb96e06-fbc2-4a2e-b42d-e2923156b45a",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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UQBQBeWU5H07r22iZeTCiTmFAgCgRhQAVEHxDYPy9++s9oqWkQsn5hQKAIAaUQBQBaXklQD/Ei0jF07MeWbJjAGgFhQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABAQRQAVEGhAABY0d/kD/Ib+bn8WKK/w2UoAKiCQgFA1X4mZ8nH5R3yMnmqHCdPkxPlRfJKeaP4774vf5Zofovg2/JEeZw8XB4k95N7ysFyR7mN7Cs3lV3l+nIduZZcTTaSK8rawb/N9SVfJv4XBQBVUCgAqMLf5WvyenmU7CebRe+dSShryjVkbzlK3ik/lXy5NXpvtM2lKBSAlVEAUAWFAtAT/6w63nv9mHxKvjj6396DO1cuEP/sGj1+GVwk75L7y9Wj90lpyrVHy3u//EXydaoBBaBfFABUQaEAtMxf5i+WB8uBsod4z/NyP602UTaU3cU/4R4vb5LTxcdl8+XVzl+6J4l/ol4rej66omwq/gn9y5Kv55BRAPpFAZiQsp74822z0X/Xi/4O7VAoAIVdKG+XB8g1o20rRfE/Hv8UfoL4S8q/KuTrUwv/4uHj1ltE29o35Qbi17WG55gC0K+lKADKGuKSvLPcTnyeyRPkJeIS7/NtPidnyDflB+LDbL8W77z4sF7+3Jmn+//33/nv/Tg/3vPx/Dxfz9/L8fK8XC/f6+H1WSNaX1yeQgEowHutr5XdpLc3n+ITt/wrgQ8pNP3jGhqfUX649Lq3PyllJ3mrDLkIUAD6tTAFQNlAfKLoEeKTaU8R//r4QxnqibReL6+f19Pr6/X2+ns7rhxt57JSKABzcEv1z/ut7unPQtlWni5DvWTL7f7xcoVo/YdOcRE4TfLtGgIKQL+qKwDK2uIrQe4hz5D3yTlSy47EpLw9/rXR5/g8U7y9/nVvneh5WXQKBWAGF4svL7tatO5Douwp+fr3zWfybxStb22UB4pPVsy3sU8UgH4NvgAoG8vd5FXiq2sW+bLYSfhX3LPlNXKIbBo9b4tGoQBM6aMy+C/+MeWY0XoPga9quGO0njVTri7vkXx7+0IB6NfgCoCSni/0Fan5fKEu+JcCn3PgHb1by/rR81o7hQIwoUvFJ6lVdYKJ4sKSb0sfPEjPxtE6LgrFhzSG8MFKAejXIAqA4pPiHisflkW8YqhLfxR/lh4tN46e7xopFIAJ/Ej2jtZzyJR15feSb0/Xnhmt3yJSPMqeDxHlz0GXKAD96q0AKFcWX3Ls8UTy9UI5PlzwMNkweh1qoVAAVvERqXLPVfFQr/n2dO2YaN0WmeKTqXwCVf5cdIUC0K/OC4Di4Zx9PP8SydcH7fEO1utkj+h1GTqFArCCL0iVZ6mb4jHx823qio+hPTRar2WgXFP6KgEUgH51UgCUK4lPQvUx/Xwd0L0z5Uip5lJDhQLQ4DuySbRutVA8aEa+XV3w+RL3idZpmShby3mSPz9towD0q9UCoPiSPR+L/q3ky0b//CuMzxcb/KWFCgUg4NGntonWqxaKB/DoYyx7X050ULROy0jxeAznS/48tYkC0K/WCoDiy3q/OloOhu0bMuhzxxQKQMYncFV/lqey/2h7uuTjYbeN1meZKT4b+0+SP19toQD0q3gBUK4iHvqWy/fq4kOhvhX5VaPXtW8KBSDzsGh9aqM8L9mmLviNzpd/A8W3MM6fs7ZQAPpVtAAod5GhjuiJyXgMlEOi17dPCgUg4RtOTHyXviFTfEJKvn1tekG0HriM4hun+B4N+fPWBgpAv4oUAGUt8aiZ+fxRL99HZDDfMQoFILF/tC61UTYR75Hn29cWH+vqfaQsZR3ZQXz5o8fqv1L0d31RtpRfSfrctYEC0K+5C4DiMTx8x7t83qif70MwiJEFFQrAyIej9aiRcnCyXW3zSX+9nDOheIhO3+nrVPme/FXy9fMXrk+a8j+63i/RUe4q+TqWRgHo11wFQPGvRb4ZTz5fLA6Pzrhm9Pp3SaEAiC9bu360Hm1SriA+Qcy3qfQeq8eUv2L0t9NQXi7p9rXp2Ggd2qL4OXuQ+FeHfF0m4Ut0PGDKrtH8u6D8h+TrVRIFoF/zFgBf4pfPE4vn+Oj175JCAZCPRetQkrKZ+ESwV4hvI+vhhZt+pvflexeKh5v0l8VRspdMVA4Uj2GQz7MNn5VOWqzim5n4NqUlf0L3QE87Rstrk+LhWtscJIgC0K+ZC4Cyu/Rx+S665x3Pm0Xvg64oFAB5eLQOJSgbiu/LX2KITr9hfHLf42SLhuVdQ/LHtcGXS24brUNpyrWkrdHO/LrcI1pum5S9pa1LuigA/ZqnAPhwVj4/LK5PRO+DrigUANk6Wod5KD6Od6z8WvLlleDj3T6ufZD8z4hTyn0k/9s23D/d3rYotxL/GpIvvzQfNlkvWoe2KG0d56UA9GumAqBcR7o8eRfD0Pnh5zFl6QvAV6Plz0t5WrKMtv1CXig+n6Dt48v2pWibS1P8S4d/9ciX3xb/ynCVaF3aoLR1syYKQL9mLQD+pTCfFxbfc6P3QxeUpS8AT42WPw/FZ+H31eS7+MJsfUAL5YhkeV36oHR2dq5yxmi5JVEA+jVrATg5mQeWx4ei90MXlKUvAEXHalZ8Nv/vRvNeRD+UVgeyUHx83JcX5svuSmeNXDk0WW4pFIB+zVoAuIf/cvpO9H7ogrL0BWCraPmzUo5P5r2IHhttdymKb6P7s9Gy+nTfaP1KUzx4UelhXikA/Zq1AHwrmQeWxznR+6ELylIXAP9MX/SWjYoHeMiXsyh85n9rx8gVX+Pfxk/is/DNezoZK0DxyaL58udBAejXrAXgzck8sDzeHb0fuqAsdQH4ebTsWSlrym9G815ErY73rzwlWdYQfDpaz9KUjaTkYSMKQL9mLQCPTOaB5XFM9H7ogrLUBaDoFQDK5sm8F41PLtwm2u4SFA+U5F8Y8uX27Y7R+pamvDRZ5rwoAP2atQDsl8wDy+OA6P3QBWWpC8Cp0bJnpfja/z5PXmvTu6JtLkXxZYz5Mofg69L6VQGKb2KUL3tWFIB+zVoATkzmgeXx4uj90AVlqQvA26Jlz0PxF0a+nEVw02h7S1C2Fh9zz5c5FPeL1rs05dxkmfOgAPRr6gKgeKjrLga8wvD8VjaI3hdtU5a6AHwkWvY8lCck818U34+2tRTlDcmyhsj3bWj9Ht5KqUGcKAD9mqUAHJY8HsvnwdH7om3KUheAs6Jlz0PxeQDnj+a/KF4fbWsJyqYS3cZ3aG4XrX9JygOS5c2DAtCvWQrA6cnjsXzOjt4XbVOWugD8NFr2vJTryi9Hy1gErV0Tr/Q14t+0WitBY8q1k+XNgwLQr6kKgOLnk3sAYMPo/dEmZakLgPc814iWPy9lTylxB8AhaPPs/48myxmyi2TdaBtKUkoMCkQB6Ne0BcA7DPk8sHw6GXckpSx1AbBrRcsvQenqTnZt+lG0bSUotfz8P9b6JYHK25LlzYoC0K9pC8Cdksdied0ten+0SVn6AnB4tPxSlA3leVLr5YFvjrarBKWWn//HWnsuxpQjk+XNigLQr2kLAAMAwTofEEhZ+gJwUrT80hTf6/s9o2XW5Ihoe0pQavn5f8yX67RyyGhMKfFzMAWgX9MWgNJDQaNOT4neH21Slr4AeOje1i/xGlNuKZ+TfD2GaodoO+aleNjkGu+auH20PSUpv0iWNwsKQL8oAJgFBWDMM0tm3LabR+vQJmVX8XXfQx4A54Jo3UtQSo5816W7RttTknJqsrxZUAD6VbIALOrIostqpdeTAjDmmSUzblurw9yuRPG4AU+Sn0i+Xn17Z7TOJSh3T5ZTk2dE21OSMu+AQBSAfpUsAM8Q3ySrppNlcXm+l8oJstLt4ikAY55ZMuO2+RrcG0Xr0RXF94W/h3xB8vXry5OjdS1B8T+GfHk1+EC0PSUpPmk0X+40KAD9KlkA/vmloOwh3xlNQ12+J3tN+lp3SaEAjLw/Wo8+KB5D4O3Sd+t/aLR+JSjz/szdl/Oj7SlJmfeYMAWgX8ULwOjvriAvFgYNqoNfp1fIlaZ9rbuiUAASe0br0hdlK3m2/Fryde3C3aP1KkEZ4iGPSW0cbVMpygOTZc2CAtCvVgpA8vfXkzeLf1bO/x798+vi8Tx2Dl47CkA0MeeZJTPuiu/kd8VoffrkdZJHya8kX+c27Retz7yUKyXLqNH1ou0qRblzsqxZUAD61WoBGFO2lVfKkE8kXiZ+HV4l145eL1MoANHEnGeWzLhLb4zWZwiUjcUv2F8kX+823DBaj3kp10iWUaObRdtVirJPsqxZUAD61UkBGFOuLs+Rn0n+eLTPz/tzZcvo9UkpFIBoYs4zS2bctQdG6zQUyo7ygdG6tmnVN/QsFP+EmS+rJvtH21WKslOyrFlQAPrVaQEYU9aS24hvr+1Bq/J5oRw/v36e/XyvFb0eEYUCEE3MeWbJjLv2R9kjWq8hUQ4S36QmX/9SWrn5jbJXsowa3SParlIU3yMhX+Y0KAD96qUApBS/RneRk8SfZ/l8MT0/j34+/byuHz3vq1EoANHEnGeWzLgPbnj7Rus2JMo28mXJ139eF0fLK0G5fbKcGh0ZbVcpikdJ/NtoWbOgAPSr9wKQUvx67SceU+B0YUyByfh58vPl583P30xf+imFAhBNzHlmyYz74sZ3p2j9hkRZV0q+kHZOtKwSlEOS5dTo8dF2laTMc8InBaBfgyoAOeXKcgd5vpwh/EJwGZ/E5+fDz4ufnytHz988FApANDHnmSUz7pNb4KHROg6NcpjMs+eY+nK0jBKUEne861MXowFekixvWhSAfg26AOQU/+K0newvjxZfWfApuUDy9VkEPmnP2+ft9PZ6u739a0bPT0kKBSCamPPMkhkPwcvkCtG6DonyACkxUMip0fxLUB6aLKdGx0XbVYrik7nyZU6DAtCvqgrAShTfztwDk3nn4plysnxDhn7pocfc/6Z4fT3qqNf/JrJhtJ1dUSgA0cScZ5bMeCi+LbtG6zskyoNH6zuP06J5l6AcmiynRg+PtqsUZaNkWbOgAPRrYQpAE8Ul9drin8qPkMfIk8WXI3r0Ow9U5Nuff1y+KP4y/qH40NaklzH77/z3fpwf7/l4fu8Vz9/L8eV3Xq6X/yC5o/jW6xOfmd8lhQIQTcx5ZsmMh8RvymNkkG+wMeWxkq/7NM6O5luCcmCynBodFm1XKYpP7MyXOQ0KQL8WvgDMS/F5Sx7XZGu5vuw++q//t6e3cgVS3xQKQDQx55klMx6ib8lU/9C7pswzVsBPo3mWoAz9tV1Nq6+7cuNkWbOgAPSLAoCQQgGIJuY8s2TGQ/Z52Sfahr4pW8gvJV/nSfwlmmcJyq7JcmrUyhDJY8q+ybJmQQHo17QFwMN85/MYOyF6DOqk+HBF/hqPHRs9pk0KBaAQ723fItqWPil3Ha3fLFo5YUbxMbp8WTXZPdquUpR5D5FQAPo1bQHwcet8HmNvjx6DOikePTB/jcfuEj2mTQoFoLCvis/En3vQiFKUUyRfz0k03tRiHsrmyTJqtH20XaUo90mWNQsKQL+mLQArFeJvR49BnZSzktc2t1P0mDYpFICW+Kd3X36yVbR9XVJ8+Uu+fpO4aTS/eSm+7vgPo2XUxuNCrBdtVynK0aNlzYoC0K9pC4DPqPdla/l8xm4SPQ51UVY6t8cnl68dPa5NCgWgZf7CeKvsFm1nVxSfq5Cv22ruGM2rBKWN4Yu78PVoe0pSfIlTvtxpUAD6NVUBMGWlPcOTo8egLoq/B/LXduys6DFtUygAHfqM+F7vrY84lVNmORfgftG8SlBemyynJm+Otqck5WvJ8mZBAejXLAVgtdExj4oehzooD0xey8hDose1TaEA9OD78nBp9afklOKfGc+XfF1WcnQ0rxKURyTLqcljo+0pRVlHVvo5eBIUgH7NUgD8nK50P3//RHyz6LEYNsVjHKw0cuKF0ssoswoFoEceS6Cz43vKf4yWO6kTo/mUoNT6+t4q2p5SlJ2TZc2KAtCvqQuAKU9I5hH5iVwteiyGSfGtvT2SYf5apv4temwXFApAzy4VD5/Z+lUDyuGSL38l747mU4Li0b7y5dVgk2h7SlHunSxrVhSAfs1aAPxlsdp9PHwuz6bR4zEsiof09k2H8tcwd/Xo8V1QKAAD8R3ZK3ouSlG2Hy1rUv5pao1oXiUoPhSSL3PIzo22oyTlxGR5s6IA9GvWAjBp+fuxDHLwMVxGuamcJ/lrF2ntXKvVKBSAAfGlcTeKno9SlGlv8dna+ijPTpZTgxdE21GS8p/J8mZFAejXrAXgS8k8VuNfDn3IoLWCjtkovg/LpDc8sl6uADCFAjAw3itu7ZaVykdGy5nUo6P5lKDMO+Z911oZF2FM8QmAvxktax4UgH7NchLgrGN1uDBySGAAFB/WfL/kr9EkJvryLE2hAAzQ+6SVZq+8bbSMSX0wmk8pig995MscovOi9S9JuV2yvHlQAPo1SwFY6Rrx1fjkQI8+2vlAMvDT/88rrA6TH0n+2kyq1X+zTRQKwEAdGj0v81JenCxjEhdLax8sylNHyxm650TrX5LyqmR586AA9GuWAvDb5PGz8q+H95VB36p8USge0dTnbXxX8tdiWr5MsI/xYSgAA/Xq6HmZl/JvyTIm1drJicp1k+UMWasjOSr+MFnpOvBpUAD6NVUBUK6WPLaE/xZ/MXX+hbIM/LzKIeLLuPPnfh7bRMtrk0IBGKhWTgxRjkqWManjonmVokxyqUyfvhmtd0nKPsny5kUB6Ne0BeDmyWNL+rbcSzobcGyRKevK3eUbkj/XJdw2Wm6bFArAQPkeAsXHBlAeMpr/NE6L5lWKMusJUF2Z+ifdaSkvSJY3LwpAv6YtANOOzzGti8RDb+8n/CowBWUN2Vd8eO5Xkj+3JT0sWoc2KRSAAbth9NzMQ3lKMv9J/VFaHahIOXm0rKH5fLS+pSnnJsucFwWgX9MWgGOSx7bNJwy6bO4erQsuo+wiz5Vph0+fR+cjAioUgAHbOnpu5qG8Mpn/NA6O5leKsqP42uZ8uX1rffx1xXtm+XLnQQHo17QF4Njksbl3SImTzCI+V8A7BP6yW+oTBxUf17+RHC8+dJI/VyX4JM23ZNNST4nWrU0KBWCg/ibFj90p7x3Nf1pfjuZXkvLqZHlD8J5oPUtTPp4sswQKQL9KFgB/QV9F2v6FzFf7eIwQfwHeUq4Yreui8PaJv2OeJB+WEldhrMSfuxvKiq91tK5tUigAA/WJ6HmZl3J6soxp7RfNsxRlM1ntxhld+Z3sGK1nSUob5z9QAPpVtAAkf3e0dPUrmc9B8siEz5eDZPN0nWvj9R9th7fH2zXNSH3z8OvlQzz/HNdFoQBEE3OeWTLjLnxa2j7JYxqHR8/LvJR5jjV/LJpnSYp/hvOXb77sLvmGLAdF61eaMuvIYSuhAPSrlQIw+lt/Lk46xnxpP5XPiu8q6l8KfIWBC+wgRiL0eozWx+vl9fN6en293vm2dMGv0//5UlQoANHEnGeWzLgLvgzryvJE+eVoWl++LutEz8s8FG/fvM239ZOHlLvIandFa9Ox0XqVptxQ2thOCkC/WisAo7/38+/PqUsk//u++Cf0M+Xd4nt8+HLj+4svm7uD+PN8D7mebC3+sg7vge/po//ff+e/9+P8eM/H8/N8PX8vx8vzctv+CX8afl2Ok8udOK1QAKKJOc8smXHb/iz/82IpG4hfKN91K//btvmGQDdJn4tSlLuOljGPk6J5l6a4wefL7sJ/ROvTBsUneOXLL4EC0K9WC8CYsoW8Tny+UP64Wnjd/YX5i9F/a94Wl3n/6tB4e1+FAhBNzHlmyYzb9sWGdfCZobcVn7n5e8kfV5pvBNPabT4VvznzZU7L/0BbPzZuSolb407jY7JutC6lKT7U0daHHQWgX50UgDHFN9Xyezd/LLrzSVn111GFAhBNzHlmyYzbtuptXhX/fO4bbvgfmvfS83nMw8e8XyTXipZdguIy45adL3sWr4uW0QblX8UDmeTrUJJP1PEQyZ1cCqWsLf7ZMl+PUigA/eq0AIwpPqT0Gin9+YSYx0d5vewSvR4RhQIQTcx5ZsmM2zbVNe6Kh4TcW3w/bl9CMuuxOI/97mNFG0fLKUnZS/Llz8qHTK4ZLacNynZyhuTrUYIH+rh5tNy2KL70KF+PkigA/eqlAIwpvi3t42UoV9QsGn9m+ByMqU9+VCgA0cScZ5bMuG1bRuswKcV7dP5J1yepPFB8/Prl8h7xZXenyZvkWeKTV3w5yp7S6uh6KeUESbd5Xt6mzoYVVdYTXxNd6oY5vszJt2BtvXyllBuIC1S+PiVRAPrVawEYU3ybWn/WnCL8KjAf7+37Wv67ycx3R1UoANHEnGeWzLhN50bLXyTKRtLGJY5PjpbXJsW/vtxTPi/5+kzCo5/5utwtovm3SfEH8lckX6fS2i4ALmO+97kvr/JhpV+LB5Lxl4yvMunzCo4hGEQBSClXEp8E/Hbxa5UvB5fnX3bfKb7yYIPoeZ2WQgGIJuY8s2TGbXprtPxForww2d6SfOx832iZXVB88pMHR/EIgr6jYHq9r7+Efi4+dPA+8TkWt4jm0xXFh4zG69emVgvAJBSfc+Ky5hHXPJKdf5b2YCxbyrXEh3V2EF/m5WPXu4p/FbuZ3EI8PLJPwD1ADhRfGuoPYl/jfZj4fJwHyUPlEfIY8c/e/mn2yfI08a9ezxG/9vlz1KbBFYCU4gJ3J3mjlPpFbVH4+fDz4vdcGzdjowBEE3OeWTLjNnV+B6YuKdtLm6Ne+VLJQQwEYoov4fQXTCdn809KOVi6usSp9wIwJErXhywGXQByij8jXKh8ldAPJF+HRXaOeLt9R8YdouenJIUCEE3MeWbJjNs08RmcNVJmHft/GqfKP4e6xOUp3pv9k+TPW1soAAmFAjAFxb/SHCIvlc/JkEZInYcPVfnQoc/P8mHEa0Tb3yaFAhBNzHlmyYzb4svvFvYuWIpv6pFvc1uOjtZh2Sm7SdfHXCkACYUCMCfF9+nwoZkjxV8avnGQzwPJ13cIvF5ePx/6ebD4fv6DuJeBQgGIJuY8s2TGbTktWvYiUK4pXY5k6MMMN43WZVkpPsZdauyFaVAAEgoFoCWKzyfwITePwe8xO1wQPKbGK8RXQX1RfOKtv5T9b8FD9k56FYz/zn/vx/nxno/n5/l6/l6Ol+flevlej+J3UC1JoQBEE3OeWTLjtjw9WnbtFJ9w9a3RNnbJP7HtHa3TslF8Yltf12FTABIKBWBglDXEr8tVxUMa+8vb//X/9vSFPKSoUACiiTnPLJlxW/aPll0zxTfSmPUSuRJ8vexUH4CLRrmHdDF0dBMKQEIZegHw1Qv5PMaeGj0GdVJWuhKoj8uql7YA+DKxjaJl10rxdeZt3F52Wr488MhoHReZ4uf/eZI/H12jACSUoRcAn5CWz2PsNdFjUCflJclrm7t/9Jg2KUtbAL4ZLbdWiu9V4EEr8u3s09LsvSi+falHR8yfgz5QABLK0AuAx0DI5zH26egxqJPikxPz13jsZtFj2qQsbQFYmGatePAUX8+ab+MQ+OYki3ylxTrigWgulHzb+0IBSChDLwAeuyKfx5iHrG68vSzqoXgnYaXLgTsfT0VZ2gLwJdkrWnYtFN+DwCOe+Sf3fPuG5IMymMGCSlE8Mt33Jd/evlEAEsqgC4ApK12xc3z0GNRF8ail+Ws79svoMW1TlvokQPNPMp3/9DIvxaN3ucTk2zNUHkzEl+x0dgOhtigexnbIzz0FIKHUUABWOnfE91hY6AHLFp1yffG4M/lrO/aS6HFtU5a+AIz5Pv++nnTo15HuLh66ssuR5Ur6suwebVstlKuJx5z/tPgn2nwb+0YBSCg1FABfBrfSe8mH+BbqpOVlofheGN+V/DUd8y+420aPbZtCAch44Ik3yx1lEOPJez3kUPEgGPn61shj4ns4zuo/0BT/476zeGCScyXf1j5QABLK4AuAKb5TXz6vlIfcrv4XtGWieLwDD1yUv5apd0aP7YJCAVjBb8R7276ue7toPdui+Pi+73b3DPFd7fJ1WwQe4et+sjAfaopH//NJgR+SvsYCoAAklFoKwD7JPJos5OBli0o5Lnntmtw8emwXFArAFH4p/ylPlTtIsfGlFR9XdtF4gfgGHD7uly9/UZ0vvnXrjtFzUyvFw6TeWnx890zhboA9UGopAEcl81iJd0quGM0Dw6D4PefblOevXeTR0Ty6oFAA5uST2zzs7ifFP+H5CfVwj/cX33Pb9zH3/ct933KP+OWz9p8vr5K3ik9CdLGI5r2MfJjjIbJwxzsVHy64vTxTPittncdBAUgoNZwD4J+KVzpOnPumXD+aF/ql7Chfk/w1a+LzO3r5FVShAGCQ/OX4bjlQNoneI7VT/AvBzcUnFPqXJZ9/kj8Ps6AAJJQaCoCLYT6f1fgQU+ejx6GZcm+5RPLXajUHRfNrm0IBQBV+Iv6SPFHuJTeQtaP3Tq0UDyW8izxSfMggfw4mRQFIKDUUAJ/gl89nUm+SQdzudlkpm8hrJX9tJvWpaL5tUygAqJZvF3qW+FCKT7bx4ZZtovdTbZRPSL69k/LVCC8Wn3vgww1PFh+WerQ8TB4oPix1iBwkB8itxL9G7Ck++fS6cm3ZSjaXDcVfpNWdsDla7/w5atNUBUDxz//znvPja8xdjhduwK0hUzYS/xu7WPLXZBq+BHSdaBltUigAWDhfkcfJtaL31tAp24hvVpVv11D4w8o/P/v2zz8T3/bY92r/hpwhp8un5KPyATlZ3iZvEJ/7kpYT39N9tXLiEylXKye+C2ZYTpShF4BrJo+dl39+9vO6cbQslKH4tsU+GbzUYTvbIVpWmxQKABaWv0R9OZ6Pr1Zzf3HFX4r5tmAyUTnperjmaQuAf33J5zEvfzH5hOOrRsvEbBSfyOtf1C6S/Dmf1x2jZbZJoQBgKfgM64fLlaP321Ao/jl4qDd2wmSmLQC+6iWfRykuAq8X/4qysDflapOyptxSfGMzjw2TP8eldH45oEIBwFLxsTrfk3uQYw4ovO/rN20B8CGQfB5tuED8gb9ntB74v5TdxJds+wTk/Llsw1Oi9WiTQgHAUvLhgQ+LB3QazOEBxYO85OuKupQsAC+Tj2fTSvie+BDBTtE6LSvFN1nzIbhpxmSYlM+LeWE2LUUBGPPMkhkDbfKH4aNkw+i92BXF94Vf6Y5hqEPJAvAU8eWhHimzrRND/WX3OvHgZdtH67iolOuIhyP3z/vflvy5KcVXaPh1XPG1jtaxTQoFABjxGdTe47pu9J5sm+IP4HydUJ+iBSD5Ow+K1eYx6DHfe8RXbvjKjD1kIcbb8HaMtsfbdZL4JNF820vz6/U/7weFAhBNzHlmyYyBrvkSNg/l3Nl174pvL5yvB+rTSgEY/a33WP1Tcv53bfJVFaeJ71PiSzV9VY1/Ku/8uvVJeL1G6+f19Pp6vb3+Xd+cy6/TdbJ1owBEE3OeWTJjoC8/kMdIq5dTKb6uPV826tRaAUge40Gvur68Mef72HvQKZ+j4PEdfK+Tg8VjNWwqV4jWfV6e72j+Xo6X5+V6+V4Pr4/XK1/XLvkqnoMb1p0CEE3MeWbJjIG++di8h/rcV4qfNKj4hKx8mahT6wXAlHXlaOnisMCsfAdMH1rzz+0u02eLB4ryl/X7xANE+fi7B4fyf/2/Pd3/v//Of+/H+fGeT1d31JyFrzA6RtaLXi9TKADRxJxnlswYGBIPLvMsKXI3NsXX/nue+XJQp04KwJiymfjS1q5/4sZlPIzzK+Rq0euTUigA0cScZ5bMGBgq34vgsbJl9D6ehNLGSHDoT6cFYEzxuPT+RYAy2Y3z5Qky8d1KFQpANDHnmSUzBobOP01+TDyO/QbRe7qJ8hbJ54d69VIAxhRfbuZj45+RfH6Y3xfE96qY+uoIhQIQTcx5ZsmMgZr4p1gfy/SNbFb8kFA8tvi8d4LDsPRaAFKKby/ts+DPk3zemJx/VfGX5e7R8zwphQIQTcx5ZsmMgVr9QnyCUzj8qnKE5I9B3QZTAFLK7uJzV3znxnw5uLxvyTNkt+j5nIVCAYgm5jyzZMbAIvCIa76T2HbJ+/zzkv8d6jbIApBSdhbfztZn2v9F8uUuoz+Kr933cf1WhkhWKADRxJxnlswYWDQ+jvikbBoWw+ALQErxdfX+vPX70ffHKHmP+yHzdp4qfv73lnWj56ek0bLy9RijAIx5ZsmMAaAWVRWAnOLb3/rcgaPEY1/4V6pfSb5uNfm1uHT7ngePEG9fZ6N8jikUgGhizjNLZgwAtai6ADRRNhcPhPVgeZF4uGyPejeUk1i9Hl4fr5fX7yHi75FVr8/vikIBiCbmPLNkxgBQi4UsACtRNpQdxQXBl8g9UnzCoW9v/X7xl7IvS/ySfE18PoyvTPAIfx7J0F/e/q//t6f7//ff+e/9OD/e8/H8PF/P38vx8rzcXu/kOSmFAhBNzHlmyYwBoBZLVwAwGYUCEE3MeWbJjAGgFtMWAI/el89j7OnRY1An5bjktc0dHz2mTQoFAAAKmrYA3Cd5bO6N0WNQJ8V3Lcxf47Ejose0SaEAAEBB0xaAlT7rvhw9BnVSVhqe+fbRY9qkUAAAoKBpC8C2yWNzf5fto8ehLsrWstLtjK8bPa5NCgUAAAqaqgCY4rPe8/mMvTh6DOqiPCd5TXPnRY9pm0IBAICCZikAz0wen/Ne4/7R41AHZT+5VPLXduz50ePaplAAAKCgWQrAjZLHRzyS3bbRYzFsyjXFNwXLX9NUeLOwtikUAAAoaOoCYMopyTwiZ8kVosdimJR1xYMZ5a9l6tTosV1QKAAAUNCsBcAj2v11NI8mb5G1o8djWJS15PWSv4YpH97ZOXp8FxQKAAAUNFMBMGWSD+TPyVbR4zEMytXlk5K/drlXRo/vikIBAICC5ikA/snYd63L55n7pRwQzQP9Um4jP5f8Ncv9l6wfzaMrCgUAAAqauQCYsqVcMJrXSjxGwInCIYEBUPyT/9NlpWv9xy6Ua0Xz6ZJCAQCAguYqAKbsKj8dzW81/sVgt2g+6IZyY/m05K9NxL8O9HLWf06hAABAQXMXAFO2kq+O5jmJ98mNo3mhHcrOcrL415j89Yh8Q7aJ5tUHhQIAAAUVKQCmbCC+D36+jCb+IvIXUm9nli8D5XryTpn0i98+LFeJ5tcXhQIAAAUVKwCmrCkvGM17Uv5iepdcP5onZqP4Us23ySTH+VMvlbWiefZJoQAAQEFFC8CYcqSsNk5AxOcIHCWbR/PFypRN5SHiyy+n2eM3D//78Gi+Q6BQAACgoFYKgCl7iy8fy5c5CX8Z+Wfow+TK0fxxGcWHXu4tH5JZSpf5/I19o/kPhUIBAICCWisApqwhh8oPJV/2pP4gPkRwZ+n1WvShUNaTO8nb5feSP2eT+rHcT9aMljMkCgUAAApqtQCMKevLsfJbyddhGn8W/7z9LDlArhotb9EoG8r+coJ8Rv4k+XMzjUvkeLlitLwhUigAAFBQJwVgTNlMXiaz/lSd8wluXxOfuHaIXCNabm0UD7Dk7XmJ+Of5aU/ka+JDK6+SLaLlDplCAQCAgjotAGPKTvIO8R59vk7zOkd8t8LnyUPldrK9rButS1+8PqP18vp5Pb2+Xm+vf75N8/qLnCTVXmmhUAAAoKBeCsCYsrH4rP9ZTxachveiz5NPyGvlCeK97H1kF9lBriFXlXWi9V2NHzd6vOfj+Xm+nr+X4+V5uV6+16PUXv1KfFvmR8qm0frWRKEAAEBBvRaAlHIDeb78TPL17IP3mi8Snyj3XTlTPisfHf3X/9vT/f/77/z30Xy69gvxl+WNoue5VqNtyrd1VhQAAEtvMAVgTFlbfIa7Rwls4xDBInL5eK/4SomZfr0YOoUCAAAFDa4ApJRNxNe4v1q8t52v/zL7nviQwn1ks+j5WyQKBQAAChp0AcgpVxcfT3+5fEvy7Vlk3t5XyD1ly+j5WWQKBQAACqqqAOSUzeWu4svlzhZf5pZvY428Hd4eb5e3b+mHRlYoAABQUNUFIKf4LHxfWudBc3x1wQvFdyj8pvxR8u3vk9fH6+X183p6fb3eXv+FPI4/D4UCAAAFLVQBWIniYYm3kn3lAfJMeZP42vuPyOfFg+58Xy4Qj5Y36aV6/jv/vR/nx3s+np/n6/l7OV6el+vlez3WiNYTMYUCAAAFLU0BmJVyRfEIhtuKL1XcY/Rf/29Pr2Y43ZopFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCooFAAAKIgCgCoor03et/PaLVpGLpyYUygAAGpEAUAVlA8l79t5bREtIxdOzCkUAAA1ogCgCspZyft2Hn+VNaNl5MKJOYUCAKBGFAAMnnJV8Rd3/v6dxfnRMiLhxJxCAQBQIwoABk+5Z/KendcXo2VEwok5hQIAoEYUAAye8p7kPTuvU6JlRMKJOYUCAKBGFAAMmrK7/H30fi3hhdFyIuHEnEIBAFAjCgAGTflk8n4t4YBoOZFwYk6hAACoEQUAg6U8PnmvlvA7WT9aViScmFMoAABqRAHAICkHyt9G79NSTo6W1SScmFMoAABqRAHA4Cj3kT+N3qMlHRYtr0k4MadQAADUiAKAwVDWl+eN3pulXSqbRMttEk7MKRQAADWiAKB3yhpyqPxQ8vdoKZ+Mlr2ScGJOoQAAqNE9o880oE3KWrKV7C8vlx9L/t4s7fbRuqwknJhTKAAAavUH8Z7XeUAHfir+OT56L7bl49F392rCiTmFAgAAwPB4EKFdo+/u1YQTcwoFAACA4Xlr9L09iXBiTqEAAAAwLH+WbaLv7UmEE3MKBQAAgGF5SvSdPalwYk6hAAAAMBzvlTWi7+xJhRNzCgUAAIBh+JpsEH1fTyOcmFMoAAAA9O8XsnX0XT2tcGJOoQAAANAvn/S3T/Q9PYtwYk6hAAAA0J/fy0HRd/Sswok5hQIAAEA/zpddou/neYQTcwoFAACA7p0uW0TfzfMKJ+YUCgAAAN16k6wXfS+XEE7MKRQAAAC64RsKHR59H5cUTswpFAAAANp1sRwvV4q+i0sLJ+YUCgAAAO34i7xUNo++g9sSTswpFAAAAMo6W54u14m+e9sWTswpFAAAAObzV/mkPEq2jb5vuxROzCkUAAA1+qGcIxfIz4AO/Ei+JKeIf9Z/gtxXbi0bR9+xfQkn5hQKAIAa3Tn6TAOgfx7RxJxCAQBQIwoA0CCcmFO2l3fJGfIbSf+BAcBQUQCABuHE1SibyJ5yT3mSvEE+Iz+Rv0v6DxAA+kIBABqEE+ehXEGuL/8qj5GXyYfle+JrHdN/nADQJgoA0CCc2BZlLdlWfDbkkfIcOVm+KpdI+g8XAOZFAQAahBP7omwue8mh8m/yZvmC/FzSf9QAMAkKANAgnDhEygZyI7mLHC2vlI+Jr/G9VNJ/9ABgFACgQTixNso6ch25nTxUni/vlW/IHyT9QACwPCgAQINw4iJR1pAt5eZyP/G4y28Tj9T0S0k/LAAsFgoA0CCcuEyUDWVXuZscK6+RT4iHEP2bpB8mAOpCAQAahBNxGWU92UnuII+QF8kH5dvyJ0k/aAAMDwUAaBBOxOqUNeWa4mGSD5cT5J3yX3KRpB9CAPpBAQAahBMxP2Vj2UMYLRHoDwUAaBBORLuU8WiJB8qjxbeM/E/5b2G0RKAcCgDQIJyI/igeLXEbuZU8SE6U8WiJF0v64QZgZRQAoEE4EcOl5KMlvkk+Lz+T9IMPAAUAaBRORJ0Uj5Z4QzlIHievkI8KoyViWVEAgAbhRCweZW2JRkv8uvxe0g9NYFFQAIAG4UQsH+Xqso/cV54mb5UvyoWSfqACNaEAAA3CiUBKYbRE1IoCADQIJwKTUtaVHeUAebj8u3xAviV/lPTDGOgaBQBoEE4ESlB8I6atZF9htET0gQIANAgnAl1QxqMl3kOOk9fLp+XHwmiJKIECADQIJwJ9Uzxa4vXkTvIoeYkwWiKmRQEAGoQTgSFTotEST5KzhNESkaIAAA3CiUDNlM3kpnJvebK8UT4njJa4fCgAQINwIrColCtJNFriD+Svkn55oH4UAKBBOBFYRopHS7y23FYeIs+T98jZwmiJdaIAAA3CiQAuT9lCGC2xLhQAoEE4EcB0lKvILnJXOUZeLafJecJoif2hAAANwokAylE8WuIOsr8wWmK3KABAg3AigG4o6WiJD5BnyjvkK/JrSb/MMD0KANAgnAhgGJSNZHc5RJ4orxNGS5wcBQBoEE4EMHzK+pKPlniqfFf+LOkX4bKiAAANwokA6qasKVvLfnKEPFveLWfKbyX9klxkFACgQTgRwGJTmkZLvEDSL9DaUQCABuFEAMtL8WiJO/vLUx4rL5ePyPelttESKQBAg3AiAEQUj5a4nUSjJf5O0i/fIaAAAA3CiQAwC8WjJe4th8lT5S1yuvxC0i/mrlAAgAbhRAAoTfFoiTeWg6Wr0RIpAECDcCIAdElJR0s8Sl4o75dvyjyjJVIAgAbhRAAYCsWjJV5DbiH3l2fI22WS0RIpAECDcCIA1EKJRkv8lJwvB0aPAfCP//f/AVeCd9ZBbQiaAAAAAElFTkSuQmCC",
+ "ImageStream": {},
+ "Name": "SQL Server",
+ "ParentId": "23d5716c-9b10-4b40-a552-6c44c2317269",
+ "Representation": "ParallelLines",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "contains multiple elements within a SoC",
+ "Hidden": "true",
+ "Id": "eed0723d-a3a3-4d8d-bf47-e5472302e622",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "SoC Boundary",
+ "ParentId": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "Representation": "BorderBoundary",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "contains elements within a physical device",
+ "Hidden": "true",
+ "Id": "c59243b4-236c-4159-a42d-6fee44fa4c37",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Device Physical Boundary",
+ "ParentId": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "Representation": "BorderBoundary",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "contains devices communicating within a local network",
+ "Hidden": "true",
+ "Id": "efeb9e28-179c-4803-a2da-6159ebf3e5cd",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Local Network Boundary",
+ "ParentId": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "Representation": "BorderBoundary",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": null,
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "contains a network within company infrastructure",
+ "Hidden": "true",
+ "Id": "3530bb86-0864-4c98-8391-cab381338648",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Company Internet Boundary",
+ "ParentId": "06836650-88ef-4421-a2d8-88cb8befbff0",
+ "Representation": "BorderBoundary",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": [
+ "Bare Metal",
+ "FreeRTOS, Zephyr, etc",
+ "Embedded Linux",
+ "Linux"
+ ]
+ },
+ "DisplayName": "OS",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "eaf886ea-a784-48df-ace5-86adca8957c6",
+ "Type": "List"
+ }
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "Compute Element",
+ "Hidden": "false",
+ "Id": "b3cfab57-1767-4411-b9c1-b9822959a57b",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "MCU",
+ "ParentId": "c8bba3ee-9cdc-426f-89dd-0cea09ba72e8",
+ "Representation": "Rectangle",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": [
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": [
+ "ROM",
+ "RAM"
+ ]
+ },
+ "DisplayName": "ROM or RAM",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "bc1b2b38-014a-4ac5-9d26-6b916ca755de",
+ "Type": "List"
+ },
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": [
+ "no",
+ "yes"
+ ]
+ },
+ "DisplayName": "removable",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "cc2d3b4c-f68e-42a7-b1f6-56445f40a624",
+ "Type": "List"
+ }
+ ]
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "RAM or ROM",
+ "Hidden": "false",
+ "Id": "c5ea0d16-afea-44aa-9d88-6a930d2a58b2",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Memory",
+ "ParentId": "c8bba3ee-9cdc-426f-89dd-0cea09ba72e8",
+ "Representation": "Rectangle",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": [
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": "Network"
+ },
+ "DisplayName": "access vector",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Type": "List"
+ },
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": "Network"
+ },
+ "DisplayName": "access vector",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Type": "List"
+ }
+ ]
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": null,
+ "Hidden": "false",
+ "Id": "8db54467-c913-4deb-b168-052a600461cf",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Wireless Networks",
+ "ParentId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Representation": "Line",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": [
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": "Local Area Network"
+ },
+ "DisplayName": "access vector",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Type": "List"
+ },
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": "Local Area Network"
+ },
+ "DisplayName": "access vector",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Type": "List"
+ }
+ ]
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": null,
+ "Hidden": "false",
+ "Id": "e9e4318e-08e5-48fb-b14f-df22b8db9e82",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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",
+ "ImageStream": {},
+ "Name": "Local Wireless",
+ "ParentId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Representation": "Line",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ },
+ {
+ "IsExtension": "false",
+ "Attributes": {
+ "Attribute": [
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": "Physical"
+ },
+ "DisplayName": "access vector",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Type": "List"
+ },
+ {
+ "IsExtension": "false",
+ "AttributeValues": {
+ "Value": "Physical"
+ },
+ "DisplayName": "access vector",
+ "Inheritance": "Virtual",
+ "Mode": "Dynamic",
+ "Name": "5759969d-af1e-4df6-9e27-1682f7355414",
+ "Type": "List"
+ }
+ ]
+ },
+ "AvailableToBaseModels": null,
+ "Behavior": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Description": "Physical connections",
+ "Hidden": "false",
+ "Id": "1a070361-9847-4ab6-9ca6-9e07036eb7fa",
+ "ImageLocation": "Centered on stencil",
+ "ImageSource": "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F9v59arZ2TUr2VElCoVeCzOmGmWXL1/eGjRo4I4DVrgrsGNl69atbq1eo3lN8T/11FN222232amnnurW5zWiD7s/xiQBD95DwCN6okbZqppv06aNDRw4cHdcpw69JPz11182efJku/322+3ss8+2ihUrht4fY5KAB+8h4BE9MTngr7vuOhs0aNDuiE4dmgFYs2aNLV261IYOHepmBrR3vkWLFnbyySdb/vz53bp/2PPgQSXgwXsIeERPVMDXqFHDFdilVcALjeLlpk2bbPXq1TZhwgR3xoJmCtRIR+v+Yc+DB5WAB+8h4BE9UfvWq1SpYpdffrlrYBMPduzYYfPnz7dRo0a5Qr4rrrjCVdqXK1fOihcv7uoA1Cgn7PlwLwl48J7cgWUCCXjE/1gFa5EiRey4445zLWk1vR6lyO5QaDSvCv1169bZ8uXL3WyBjkVWwadG87S8TZEEPHgPAY/oidrGli9fPitdurTrvbBgwQK3fh4vNJpXxf0vv/xi7733nnXq1MkaNmzolgn0oqGwZ2vdASXgwXsIeESPVKBqJH/hhRda165dbdy4cbvjOH5oNL9582bXCldtbz/77DO3TKBuepxSd0AJePAeAh7RQ0855RS79dZb3clx6kOv0bxG2xp1xwtdf8mSJW7//JNPPmk333yzG81rW52OqFW1PSP6fyXgwXsIeEQP1alwakhz7rnnum1tb731ltvqtn79+risywtdN3k0r7X56dOn20cffWSPP/64276nDnuM6P+VgAfvIeARPVQjZVmtWjW7+uqrrUOHDvbzzz+70bzW5dWONt5oS52q7d9//3275JJLXLV90aJFXZ2Aqu0z+WiegAfvIeARPVYV7ZoeV9GbjpC94IIL3GheLWg10o7nlH3y3nm9UGhrnbrhqe3tLbfcYsWKFfv37Pmw584EEvDgPQQ8YgKoqXFVtVetWtWN5t9++22bPXu2LVy40I3mt2zZEtepe63P//33364mQNX26oKnQ2wKFChguXLlyoxBT8CD9xDwiAmiQlQjeoWqGtNoS1uzZs1syJAhbqubQj6eKOh1iI3W59UNT7MIKgRUnUAmPMCGgAfvIeARE1BNjx9zzDHuhLg33njDbW3TNLpG2Rptq1guXiN6LQuo4G/atGn2/PPP24033uhmFrQ+r+dSR75MMKIn4MF7CHjEBFQFbgrS7Nmz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",
+ "ImageStream": {},
+ "Name": "Local Digital Communication",
+ "ParentId": "480937d2-d4f4-4af0-8282-4cd42bc5b75e",
+ "Representation": "Line",
+ "Shape": {},
+ "StencilConstraints": {
+ "StencilConstraint": {
+ "IsExtension": "false",
+ "SelectedStencilConnection": "Any",
+ "SelectedStencilType": "Any"
+ }
+ }
+ }
+ ]
+ },
+ "ThreatCategories": {
+ "ThreatCategory": [
+ {
+ "IsExtension": "false",
+ "Id": "5694f6a1-f50e-42e2-beff-2c498f001857",
+ "LongDescription": null,
+ "Name": "Spoofing",
+ "ShortDescription": null
+ },
+ {
+ "IsExtension": "false",
+ "Id": "44cfd871-9f96-4c74-8e51-4a83b3c9a773",
+ "LongDescription": null,
+ "Name": "Tampering",
+ "ShortDescription": null
+ },
+ {
+ "IsExtension": "false",
+ "Id": "e62b531c-28c6-47f7-94b2-a82ccbbe6bc3",
+ "LongDescription": null,
+ "Name": "Repudiation",
+ "ShortDescription": null
+ },
+ {
+ "IsExtension": "false",
+ "Id": "09bb1c30-479f-4416-965c-7d4e38207328",
+ "LongDescription": null,
+ "Name": "Information Disclosure",
+ "ShortDescription": null
+ },
+ {
+ "IsExtension": "false",
+ "Id": "5e867abd-7f08-4c39-9097-13d4cf6f2ee1",
+ "LongDescription": null,
+ "Name": "Denial of Service",
+ "ShortDescription": null
+ },
+ {
+ "IsExtension": "false",
+ "Id": "08f2db36-c0f8-46cb-9fa3-e1a536b93a42",
+ "LongDescription": null,
+ "Name": "Elevation of Privilege",
+ "ShortDescription": null
+ }
+ ]
+ },
+ "ThreatMetaData": {
+ "IsPriorityUsed": "true",
+ "IsStatusUsed": "true",
+ "PropertiesMetaData": {
+ "ThreatMetaDatum": [
+ {
+ "Name": "Title",
+ "Label": "Title",
+ "HideFromUI": "false",
+ "Values": {
+ "string": null
+ },
+ "Id": "5533a5cc-219d-4f20-84df-aad12bd386f8",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "UserThreatCategory",
+ "Label": "Category",
+ "HideFromUI": "false",
+ "Values": {},
+ "attrib": [
+ {
+ "nil": "true"
+ },
+ {
+ "nil": "true"
+ }
+ ],
+ "Id": {},
+ "AttributeType": "0"
+ },
+ {
+ "Name": "UserThreatShortDescription",
+ "Label": "Short Description",
+ "HideFromUI": "true",
+ "Values": {
+ "string": null
+ },
+ "Id": "11b4ebe5-1037-4f66-9a5e-ecf0fcf2d73e",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "UserThreatDescription",
+ "Label": "Description",
+ "HideFromUI": "false",
+ "Values": {
+ "string": null
+ },
+ "Id": "6d8e5b6c-ade1-41a9-81ee-b8a6b0762270",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "StateInformation",
+ "Label": "Justification",
+ "HideFromUI": "false",
+ "Values": {
+ "string": null
+ },
+ "Id": "b53f19ea-81aa-42b9-9555-c97494dacb84",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "InteractionString",
+ "Label": "Interaction",
+ "HideFromUI": "false",
+ "Values": {},
+ "attrib": {
+ "nil": "true"
+ },
+ "Id": "f593bd56-5075-4ea5-90a1-41befb787bd9",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Label": "Confidentiality",
+ "HideFromUI": "false",
+ "Values": {
+ "string": [
+ "None",
+ "Public",
+ "Confidential",
+ "Restricted"
+ ]
+ },
+ "Id": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Label": "Integrity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": [
+ "None",
+ "Limited Modification",
+ "Partial Modification",
+ "Total Modification"
+ ]
+ },
+ "Id": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Label": "Availability",
+ "HideFromUI": "false",
+ "Values": {
+ "string": [
+ "None",
+ "Support",
+ "Essential",
+ "Critical"
+ ]
+ },
+ "Id": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Label": "Access Complexity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": [
+ "High",
+ "Medium",
+ "Low"
+ ]
+ },
+ "Id": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Label": "Access Vector",
+ "HideFromUI": "false",
+ "Values": {
+ "string": [
+ "None",
+ "Network",
+ "Local Area Network",
+ "Physical"
+ ]
+ },
+ "Id": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Label": "Authentication",
+ "HideFromUI": "false",
+ "Values": {
+ "string": [
+ "None",
+ "Single",
+ "Multiple"
+ ]
+ },
+ "Id": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Label": "Severity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": [
+ "highest",
+ "medium-high",
+ "medium",
+ "low-medium",
+ "low",
+ "none"
+ ]
+ },
+ "Id": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "bbd0bbd0-96f1-479e-80e7-6f25a2f60aae",
+ "Label": "CVSS Score",
+ "HideFromUI": "false",
+ "Values": {
+ "string": null
+ },
+ "Id": "bbd0bbd0-96f1-479e-80e7-6f25a2f60aae",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "Priority",
+ "Label": "Priority",
+ "HideFromUI": "false",
+ "Values": {
+ "string": [
+ "highest",
+ "high",
+ "medium",
+ "low",
+ "lowest"
+ ]
+ },
+ "Id": "d0b23e75-fbdc-482b-8484-ed9eec277043",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Label": "Mitigation(s)",
+ "HideFromUI": "false",
+ "Values": {
+ "string": null
+ },
+ "Id": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Label": "Compliance Tag(s)",
+ "HideFromUI": "false",
+ "Values": {
+ "string": null
+ },
+ "Id": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "AttributeType": "2"
+ }
+ ]
+ }
+ },
+ "ThreatTypes": {
+ "ThreatType": [
+ {
+ "IsExtension": "false",
+ "Category": "5694f6a1-f50e-42e2-beff-2c498f001857",
+ "Description": "For replay (or playback) attacks, once authentication data is exposed, an attacker can replay and ultimately impersonate a user/device. Make sure to have significant authentication mechinisims. Examples of this attack are: Reusing Session IDs (aka Session Replay) and Principal Spoofing",
+ "GenerationFilters": {
+ "Exclude": "flow.2cf09a2d-575c-4e58-a5a6-08808f673a37 is 'no'",
+ "Include": "flow is '480937d2-d4f4-4af0-8282-4cd42bc5b75e' and flow.2cf09a2d-575c-4e58-a5a6-08808f673a37 is 'yes'"
+ },
+ "Id": "8f2d5f9d-a98e-46aa-bd2e-43b2e344264c",
+ "PropertiesMetaData": {
+ "ThreatMetaDatum": [
+ {
+ "Name": "UserThreatDescription",
+ "Label": "Description",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "For replay (or playback) attacks, once authentication data is exposed, an attacker can replay and ultimately impersonate a user/device. Make sure to have significant authentication mechinisims. Examples of this attack are: Reusing Session IDs (aka Session Replay) and Principal Spoofing"
+ },
+ "Id": "6d8e5b6c-ade1-41a9-81ee-b8a6b0762270",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Label": "Confidentiality",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Label": "Integrity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Label": "Availability",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Label": "Access Complexity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "Low"
+ },
+ "Id": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Label": "Access Vector",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Label": "Authentication",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Label": "Severity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "Priority",
+ "Label": "Priority",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "d0b23e75-fbdc-482b-8484-ed9eec277043",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Label": "Mitigation(s)",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "Limited session tokens/keys, authentication timeouts, denyList and short expiration time for tokens, one-time passwords"
+ },
+ "Id": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Label": "Compliance Tag(s)",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "&lt;a href=&quot;https://capec.mitre.org/data/definitions/60&quot;&gt;https://capec.mitre.org/data/definitions/60&lt;/a&gt; &lt;a href=&quot;https://capec.mitre.org/data/definitions/151&quot;&gt;https://capec.mitre.org/data/definitions/151&lt;/a&gt; &lt;a href=&quot;https://capec.mitre.org/data/definitions/195&quot;&gt;https://capec.mitre.org/data/definitions/195&lt;/a&gt;"
+ },
+ "Id": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "AttributeType": "2"
+ }
+ ]
+ },
+ "RelatedCategory": null,
+ "ShortTitle": "Replay Attack"
+ },
+ {
+ "IsExtension": "false",
+ "Category": "44cfd871-9f96-4c74-8e51-4a83b3c9a773",
+ "Description": "In a MITM attack, the attacker intercepts data between 2 parties. The attacker can view and modify the data. Examples are: ARP Cache Poisoning, DNS Cache Poisoning, HTTPS Spoofing, Wi-Fi Eavesdropping, or Session Hijacking. This attack could look like: Communication Channel Manipulation, Exploiting Incorrectly Configured SSL, Client-Server Protocol Manipulation, etc.",
+ "GenerationFilters": {
+ "Exclude": null,
+ "Include": "flow is '8db54467-c913-4deb-b168-052a600461cf' or flow is 'e9e4318e-08e5-48fb-b14f-df22b8db9e82'"
+ },
+ "Id": "19c4f63f-dd2f-4b71-bca2-46937ce7178b",
+ "PropertiesMetaData": {
+ "ThreatMetaDatum": [
+ {
+ "Name": "UserThreatDescription",
+ "Label": "Description",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "In a MITM attack, the attacker intercepts data between 2 parties. The attacker can view and modify the data. Examples are: ARP Cache Poisoning, DNS Cache Poisoning, HTTPS Spoofing, Wi-Fi Eavesdropping, or Session Hijacking. This attack could look like: Communication Channel Manipulation, Exploiting Incorrectly Configured SSL, Client-Server Protocol Manipulation, etc."
+ },
+ "Id": "6d8e5b6c-ade1-41a9-81ee-b8a6b0762270",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Label": "Confidentiality",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Label": "Integrity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Label": "Availability",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Label": "Access Complexity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "Medium"
+ },
+ "Id": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Label": "Access Vector",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Label": "Authentication",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Label": "Severity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "Priority",
+ "Label": "Priority",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "d0b23e75-fbdc-482b-8484-ed9eec277043",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Label": "Mitigation(s)",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "Cert pinning, certificate validation, hostname validation, preventing connections to unknown or non-trusted proxies"
+ },
+ "Id": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Label": "Compliance Tag(s)",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "<a href="https://capec.mitre.org/data/definitions/216">https://capec.mitre.org/data/definitions/216</a> ; <a href="https://capec.mitre.org/data/definitions/220">https://capec.mitre.org/data/definitions/220</a> ; <a href="https://capec.mitre.org/data/definitions/757">https://capec.mitre.org/data/definitions/757</a>"
+ },
+ "Id": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "AttributeType": "2"
+ }
+ ]
+ },
+ "RelatedCategory": null,
+ "ShortTitle": "Man-in-the-middle Attack"
+ },
+ {
+ "IsExtension": "false",
+ "Category": "09bb1c30-479f-4416-965c-7d4e38207328",
+ "Description": "sniffing (or eavesdropping) is when an attacker passively gathers the contents of digital communication (ex: wireshark packet sniffing). Examples are sniffing attacks, Session Sidejacking, and interception",
+ "GenerationFilters": {
+ "Exclude": null,
+ "Include": "flow is '8db54467-c913-4deb-b168-052a600461cf' or flow is 'e9e4318e-08e5-48fb-b14f-df22b8db9e82'"
+ },
+ "Id": "f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd",
+ "PropertiesMetaData": {
+ "ThreatMetaDatum": [
+ {
+ "Name": "UserThreatDescription",
+ "Label": "Description",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "sniffing (or eavesdropping) is when an attacker passively gathers the contents of digital communication (ex: wireshark packet sniffing). Examples are sniffing attacks, Session Sidejacking, and interception"
+ },
+ "Id": "6d8e5b6c-ade1-41a9-81ee-b8a6b0762270",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "Label": "Confidentiality",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "6f73c3c9-92a4-4cdc-9efa-6596587a5e37",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "Label": "Integrity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "f46fb992-8974-4bbd-8c61-0437d531748a",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "Label": "Availability",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "b659da49-30c2-42c8-8e13-9f72999f8774",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "Label": "Access Complexity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "Low"
+ },
+ "Id": "2ca6aca5-e337-4dc3-a17e-ecc6ee26c939",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "Label": "Access Vector",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "fbf0c6bb-7cc1-43f9-826f-ade9f25ef766",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "Label": "Authentication",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "e590c7fb-a187-4581-890e-34fc93a3c338",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "Label": "Severity",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "6c3c0b32-062f-4702-8511-7aaf55d96cdc",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "Priority",
+ "Label": "Priority",
+ "HideFromUI": "false",
+ "Values": {
+ "string": {},
+ "attrib": {
+ "nil": "true"
+ }
+ },
+ "Id": "d0b23e75-fbdc-482b-8484-ed9eec277043",
+ "AttributeType": "1"
+ },
+ {
+ "Name": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "Label": "Mitigation(s)",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "use encryption. protocol and app layer encryption for best defense in depth"
+ },
+ "Id": "f2f2ba8a-6876-4690-815d-016c3324764f",
+ "AttributeType": "0"
+ },
+ {
+ "Name": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "Label": "Compliance Tag(s)",
+ "HideFromUI": "false",
+ "Values": {
+ "string": "<a href="https://capec.mitre.org/data/definitions/102">CWE-102</a> ; <a href="http://cwe.mitre.org/data/definitions/294">CWE-294</a> ; <a href="http://cwe.mitre.org/data/definitions/614">CWE-614</a>\n<a href="http://cwe.mitre.org/data/definitions/319">CWE-319</a>\n<a href="http://cwe.mitre.org/data/definitions/523">CWE-523</a>\n<a href="http://cwe.mitre.org/data/definitions/522">CWE-522</a>\n<a href="https://capec.mitre.org/data/definitions/157">https://capec.mitre.org/data/definitions/157</a>\n<a href="http://cwe.mitre.org/data/definitions/311">CWE-311</a>\n<a href="https://capec.mitre.org/data/definitions/117">https://capec.mitre.org/data/definitions/117</a>\n<a href="https://cwe.mitre.org/data/definitions/299">CWE-299</a>"
+ },
+ "Id": "2faec1c4-ac90-4d5f-b30f-6df33219382d",
+ "AttributeType": "2"
+ }
+ ]
+ },
+ "RelatedCategory": null,
+ "ShortTitle": "Attacker sniffs a wireless communication"
+ }
+ ]
+ }
+ },
+ "attrib": {
+ "Id": "i19"
+ },
+ "Profile": {
+ "PromptedKb": null
+ }
+ }
+}
\ No newline at end of file
diff --git a/slp_mtmt/tests/resources/test_resource_paths.py b/slp_mtmt/tests/resources/test_resource_paths.py
index 349e1bfd..9ce151a5 100644
--- a/slp_mtmt/tests/resources/test_resource_paths.py
+++ b/slp_mtmt/tests/resources/test_resource_paths.py
@@ -43,6 +43,7 @@
nested_trustzones_tm7 = f'{path}/mtmt/MTMT_nested_tz.tm7'
nested_trustzones_line_tm7 = f'{path}/mtmt/MTMT_nested_tz_line.tm7'
one_trustzone_tm7 = f'{path}/mtmt/one-trustzone.tm7'
+model_with_figures_without_name_file = f'{path}/mtmt/model_with_figures_without_name.tm7'
# OTM
example_position_otm = f'{path}/mtmt/MTMT_example_coordinates.otm'
@@ -52,4 +53,5 @@
missing_position_otm = f'{path}/otm/missing_coordinates.otm'
nested_trustzones_otm = f'{path}/otm/nested_tz.otm'
nested_trustzones_line_otm = f'{path}/otm/nested_tz_line.otm'
+model_mtmt_source_file_otm = f'{path}/otm/test_model_tm7.otm'
diff --git a/slp_mtmt/tests/unit/entity/test_mtmt_entity_border.py b/slp_mtmt/tests/unit/entity/test_mtmt_entity_border.py
index 3dab1dd5..8edb90d9 100644
--- a/slp_mtmt/tests/unit/entity/test_mtmt_entity_border.py
+++ b/slp_mtmt/tests/unit/entity/test_mtmt_entity_border.py
@@ -1,9 +1,13 @@
from slp_mtmt.slp_mtmt.entity.mtmt_entity_border import MTMBorder
-from slp_mtmt.slp_mtmt.tm7_to_json import Tm7ToJson
+from slp_mtmt.slp_mtmt.tm7_to_dict import Tm7ToDict
from slp_mtmt.tests.resources import test_resource_paths
class TestMTMTEntityBorder:
+ dev_phisical_boundary = 'Device Physical Boundary'
+ soc_boundary = 'SoC Boundary'
+ local_network_boundary = 'Local Network Boundary'
+ internet_boundary = 'Company Internet Boundary'
border_attrs_expected_results = [
{'id': '294a595a-174d-452c-b38d-9c434f7f5bac', 'name': 'My_MCU', 'type': 'StencilRectangle',
'generic_type_id': 'c8bba3ee-9cdc-426f-89dd-0cea09ba72e8', 'is_component': True, 'is_trustzone': False,
@@ -11,24 +15,24 @@ class TestMTMTEntityBorder:
{'id': '436f7fa6-8555-4b73-9346-679874c650e7', 'name': 'SD card', 'type': 'StencilRectangle',
'generic_type_id': 'c8bba3ee-9cdc-426f-89dd-0cea09ba72e8', 'is_component': True, 'is_trustzone': False,
'stencil_name': 'Memory'},
- {'id': '241852d1-a5a7-4756-86d5-b400703b6614', 'name': 'Device Physical Boundary', 'type': 'BorderBoundary',
+ {'id': '241852d1-a5a7-4756-86d5-b400703b6614', 'name': dev_phisical_boundary, 'type': 'BorderBoundary',
'generic_type_id': '06836650-88ef-4421-a2d8-88cb8befbff0', 'is_component': False, 'is_trustzone': True,
- 'stencil_name': 'Device Physical Boundary'},
+ 'stencil_name': dev_phisical_boundary},
{'id': '5b0bab1d-89c8-499d-b9aa-a5d19652aa5f', 'name': 'Phone', 'type': 'StencilRectangle',
'generic_type_id': '8db306cc-f8f5-4c07-8be2-48e2a0af38aa', 'is_component': True, 'is_trustzone': False,
'stencil_name': 'Phone'},
- {'id': '26418f1e-db19-41ad-9157-1ea2cebbaec6', 'name': 'SoC Boundary', 'type': 'BorderBoundary',
+ {'id': '26418f1e-db19-41ad-9157-1ea2cebbaec6', 'name': soc_boundary, 'type': 'BorderBoundary',
'generic_type_id': '06836650-88ef-4421-a2d8-88cb8befbff0', 'is_component': False, 'is_trustzone': True,
- 'stencil_name': 'SoC Boundary'},
- {'id': '8688c03a-1943-420c-8411-038d652220ca', 'name': 'Local Network Boundary', 'type': 'BorderBoundary',
+ 'stencil_name': soc_boundary},
+ {'id': '8688c03a-1943-420c-8411-038d652220ca', 'name': local_network_boundary, 'type': 'BorderBoundary',
'generic_type_id': '06836650-88ef-4421-a2d8-88cb8befbff0', 'is_component': False, 'is_trustzone': True,
- 'stencil_name': 'Local Network Boundary'},
+ 'stencil_name': local_network_boundary},
{'id': '158ab95e-f8d0-48d7-84f8-4c57ed40a9f4', 'name': 'Server', 'type': 'StencilRectangle',
'generic_type_id': '8db306cc-f8f5-4c07-8be2-48e2a0af38aa', 'is_component': True, 'is_trustzone': False,
'stencil_name': 'Server'},
- {'id': '086f799f-e4f4-4c70-8f82-e1fd1212e22b', 'name': 'Company Internet Boundary', 'type': 'BorderBoundary',
+ {'id': '086f799f-e4f4-4c70-8f82-e1fd1212e22b', 'name': internet_boundary, 'type': 'BorderBoundary',
'generic_type_id': '06836650-88ef-4421-a2d8-88cb8befbff0', 'is_component': False, 'is_trustzone': True,
- 'stencil_name': 'Company Internet Boundary'},
+ 'stencil_name': internet_boundary},
{'id': 'ca3c7bc2-377f-471f-a45f-a78d511a4184', 'name': 'Attacker', 'type': 'StencilEllipse',
'generic_type_id': 'dd163aaf-713b-46df-bc66-4ace6c033067', 'is_component': True, 'is_trustzone': False,
'stencil_name': 'Attacker'}
@@ -40,7 +44,7 @@ def test_mtmt_entity_border_attrs(self):
xml = f.read()
# AND the parser
- source = Tm7ToJson(xml).to_json()
+ source = Tm7ToDict(xml).to_dict()
borders = []
for border in source['ThreatModel']['DrawingSurfaceList']['DrawingSurfaceModel']['Borders'][
@@ -57,16 +61,18 @@ def test_mtmt_entity_border_attrs(self):
assert borders[index].is_trustzone == self.border_attrs_expected_results[index]['is_trustzone']
assert borders[index].stencil_name == self.border_attrs_expected_results[index]['stencil_name']
+ out_of_scope = 'Out Of Scope'
+ dataflow_order = 'Dataflow Order'
border_properties_expected_results = [
- {'Name': 'My_MCU', 'Out Of Scope': 'false', 'OS': 'Bare Metal'},
- {'Name': 'SD card', 'Out Of Scope': 'false', 'ROM or RAM': 'ROM', 'removable': 'yes'},
- {'Name': 'Device Physical Boundary', 'Dataflow Order': '0'},
- {'Name': 'Phone', 'Out Of Scope': 'false', 'Mobile OS': 'Android'},
- {'Name': 'SoC Boundary', 'Dataflow Order': '0'},
- {'Name': 'Local Network Boundary', 'Dataflow Order': '0'},
- {'Name': 'Server', 'Out Of Scope': 'false'},
- {'Name': 'Company Internet Boundary', 'Dataflow Order': '0'},
- {'Name': 'Attacker', 'Out Of Scope': 'false', 'Threat Agent': 'Curious Attacker'}
+ {'Name': 'My_MCU', out_of_scope: 'false', 'OS': 'Bare Metal'},
+ {'Name': 'SD card', out_of_scope: 'false', 'ROM or RAM': 'ROM', 'removable': 'yes'},
+ {'Name': dev_phisical_boundary, dataflow_order: '0'},
+ {'Name': 'Phone', out_of_scope: 'false', 'Mobile OS': 'Android'},
+ {'Name': soc_boundary, dataflow_order: '0'},
+ {'Name': local_network_boundary, dataflow_order: '0'},
+ {'Name': 'Server', out_of_scope: 'false'},
+ {'Name': internet_boundary, dataflow_order: '0'},
+ {'Name': 'Attacker', out_of_scope: 'false', 'Threat Agent': 'Curious Attacker'}
]
@@ -76,7 +82,7 @@ def test_mtmt_entity_border_properties(self):
xml = f.read()
# AND the parser
- source = Tm7ToJson(xml).to_json()
+ source = Tm7ToDict(xml).to_dict()
borders = []
for border in source['ThreatModel']['DrawingSurfaceList']['DrawingSurfaceModel']['Borders'][
diff --git a/slp_mtmt/tests/unit/entity/test_mtmt_entity_line.py b/slp_mtmt/tests/unit/entity/test_mtmt_entity_line.py
index a0759c57..3ec78218 100644
--- a/slp_mtmt/tests/unit/entity/test_mtmt_entity_line.py
+++ b/slp_mtmt/tests/unit/entity/test_mtmt_entity_line.py
@@ -1,12 +1,12 @@
from slp_mtmt.slp_mtmt.entity.mtmt_entity_line import MTMLine
-from slp_mtmt.slp_mtmt.tm7_to_json import Tm7ToJson
+from slp_mtmt.slp_mtmt.tm7_to_dict import Tm7ToDict
from slp_mtmt.tests.resources import test_resource_paths
def extract_lines(filepath):
with open(filepath, 'r') as file:
xml = file.read()
- json = Tm7ToJson(xml).to_json()
+ json = Tm7ToDict(xml).to_dict()
lines = []
for line in json['ThreatModel']['DrawingSurfaceList']['DrawingSurfaceModel']['Lines']['KeyValueOfguidanyType']:
lines.append(MTMLine(line))
@@ -14,23 +14,26 @@ def extract_lines(filepath):
class TestMTMTLine:
+ internet_boundary = 'Internet Boundary'
+ test_boundary = 'Test Boundary'
line_fields_expected_results = [
{'id': '264aa048-3595-4d94-b7b4-53ac7f447c6a', 'name': 'SQL Server Replication',
'description': 'TLS', 'type': 'Connector', 'is_trustzone': False, 'is_dataflow': True},
- {'id': 'c5c861dd-02be-4817-ab7f-bc6ded1ab80a', 'name': 'Internet Boundary',
- 'description': 'Internet Boundary', 'type': 'LineBoundary', 'is_trustzone': True, 'is_dataflow': False},
- {'id': 'c5c861ff-02ge-4817-ab7f-bc6ded1cd90a', 'name': 'Test Boundary',
- 'description': 'Test Boundary', 'type': 'LineBoundary', 'is_trustzone': True, 'is_dataflow': False}
+ {'id': 'c5c861dd-02be-4817-ab7f-bc6ded1ab80a', 'name': internet_boundary,
+ 'description': internet_boundary, 'type': 'LineBoundary', 'is_trustzone': True, 'is_dataflow': False},
+ {'id': 'c5c861ff-02ge-4817-ab7f-bc6ded1cd90a', 'name': test_boundary,
+ 'description': test_boundary, 'type': 'LineBoundary', 'is_trustzone': True, 'is_dataflow': False}
]
+ configurable_attributes = 'Configurable Attributes'
line_properties_expected_results = [
{'TLS': {}, 'Name': 'SQL Server Replication', 'Dataflow Order': '0', 'Out Of Scope': 'false',
- 'Reason For Out Of Scope': {}, 'Configurable Attributes': {}, 'access vector': 'Physical',
+ 'Reason For Out Of Scope': {}, configurable_attributes: {}, 'access vector': 'Physical',
'As Generic Communication': {}, 'has authentication': 'no'},
- {'Internet Boundary': {}, 'Name': 'Internet Boundary', 'Configurable Attributes': {},
+ {internet_boundary: {}, 'Name': internet_boundary, configurable_attributes: {},
'As Generic Trust Line Boundary': {}},
- {'As Generic Trust Line Boundary': {}, 'Configurable Attributes': {}, 'Name': 'Test Boundary',
- 'TLS Version': '1 3', 'Test Boundary': {}}
+ {'As Generic Trust Line Boundary': {}, configurable_attributes: {}, 'Name': test_boundary,
+ 'TLS Version': '1 3', test_boundary: {}}
]
def test_mtmt_line(self):
diff --git a/slp_mtmt/tests/unit/parse/__init__.py b/slp_mtmt/tests/unit/parse/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/slp_mtmt/tests/unit/test_mtmt_component_parser.py b/slp_mtmt/tests/unit/parse/test_mtmt_component_parser.py
similarity index 89%
rename from slp_mtmt/tests/unit/test_mtmt_component_parser.py
rename to slp_mtmt/tests/unit/parse/test_mtmt_component_parser.py
index 11c19eea..77c9fa14 100644
--- a/slp_mtmt/tests/unit/test_mtmt_component_parser.py
+++ b/slp_mtmt/tests/unit/parse/test_mtmt_component_parser.py
@@ -1,3 +1,5 @@
+from unittest.mock import MagicMock
+
from otm.otm.entity.representation import DiagramRepresentation, RepresentationType
from sl_util.sl_util.file_utils import get_byte_data
from slp_mtmt.slp_mtmt.mtmt_loader import MTMTLoader
@@ -6,7 +8,7 @@
from slp_mtmt.slp_mtmt.parse.mtmt_trustzone_parser import MTMTTrustzoneParser
from slp_mtmt.tests.resources import test_resource_paths
from slp_mtmt.tests.resources.test_resource_paths import mtmt_default_mapping, \
- nested_trustzones_tm7
+ nested_trustzones_tm7, model_with_figures_without_name_file
diagram_representation = DiagramRepresentation(id_='project-test-diagram',
name='Project Test Diagram Representation',
@@ -164,3 +166,25 @@ def test_nested_trust_zones(self):
assert current.id == '9668ae2e-403f-4182-8c4c-d83948ffc31b'
assert current.parent == '351f4038-244d-4de5-bfa0-00c17f2a1fa2'
assert current.parent_type == 'trustZone'
+
+ def test_model_components_without_name_file(self):
+ # GIVEN the provider loader
+ source_file = get_byte_data(model_with_figures_without_name_file)
+ mtmt: MTMTLoader = MTMTLoader(source_file)
+ mtmt.load()
+
+ # AND a valid MTMT mapping file
+ mapping_file = get_byte_data(mtmt_default_mapping)
+
+ # AND the mapping file loaded
+ mtmt_mapping_file_loader = MTMTMappingFileLoader([mapping_file])
+ mtmt_mapping_file_loader.load()
+
+ # WHEN we parse the components
+ mtmt_mapping = mtmt_mapping_file_loader.get_mtmt_mapping()
+ mtmt_data = mtmt.get_mtmt()
+ component_parser = MTMTComponentParser(mtmt_data, mtmt_mapping, MagicMock(), diagram_representation.id)
+ components = component_parser.parse()
+ # THEN no component has None as name
+ for c in components:
+ assert c.name is not None
diff --git a/slp_mtmt/tests/unit/test_mtmt_connector_parser.py b/slp_mtmt/tests/unit/parse/test_mtmt_connector_parser.py
similarity index 91%
rename from slp_mtmt/tests/unit/test_mtmt_connector_parser.py
rename to slp_mtmt/tests/unit/parse/test_mtmt_connector_parser.py
index d6880e12..1d8b58f5 100644
--- a/slp_mtmt/tests/unit/test_mtmt_connector_parser.py
+++ b/slp_mtmt/tests/unit/parse/test_mtmt_connector_parser.py
@@ -1,6 +1,7 @@
+from unittest.mock import MagicMock
+
from pytest import mark
-from otm.otm.entity.representation import DiagramRepresentation, RepresentationType
from sl_util.sl_util.file_utils import get_byte_data
from slp_mtmt.slp_mtmt.entity.mtmt_entity_line import MTMLine
from slp_mtmt.slp_mtmt.mtmt_entity import MTMT
@@ -95,3 +96,15 @@ def test_parse_orphan_connectors(self, source, target, expected):
# Then we check the otm dataflows created
assert len(dataflows) == expected
+
+ def test_model_dataflow_without_name_file(self):
+ # GIVEN a line without name
+ line = MagicMock()
+ line.name = None
+ mtmt = MTMT(None, [line], None, None)
+
+ # WHEN MTMTConnectorParser::parse is invoked
+ dataflows = MTMTConnectorParser(mtmt).parse()
+
+ # THEN no dataflow has None as name
+ assert dataflows[0].name is not None
diff --git a/slp_mtmt/tests/unit/test_mtmt_trustzone_parser.py b/slp_mtmt/tests/unit/parse/test_mtmt_trustzone_parser.py
similarity index 93%
rename from slp_mtmt/tests/unit/test_mtmt_trustzone_parser.py
rename to slp_mtmt/tests/unit/parse/test_mtmt_trustzone_parser.py
index be9232d8..0dcad6e7 100644
--- a/slp_mtmt/tests/unit/test_mtmt_trustzone_parser.py
+++ b/slp_mtmt/tests/unit/parse/test_mtmt_trustzone_parser.py
@@ -158,4 +158,17 @@ def test_mapping_trust_zones_by_name(self, mapping_file):
assert trustzones[0].name == 'The TrustZone'
assert trustzones[0].type == 'f0ba7722-39b6-4c81-8290-a30a248bb8d9'
+ def test_model_trustzones_without_name(self):
+ # GIVEN the Mtmt data with one trustzone
+ mtmt = get_mtmt_from_file(test_resource_paths.model_with_figures_without_name_file)
+
+ # AND the mapping data without the mapping of the trustzone
+ mtmt_mapping = get_mapping_from_file(mtmt_default_mapping)
+
+ # THEN a MtmtMapping is returned with the default trustzone
+ trustzones = MTMTTrustzoneParser(mtmt, mtmt_mapping, diagram_representation.id).parse()
+
+ # THEN no trustzone has None as name
+ for tz in trustzones:
+ assert tz.name is not None
diff --git a/slp_mtmt/tests/unit/test_tm7_to_dict.py b/slp_mtmt/tests/unit/test_tm7_to_dict.py
new file mode 100644
index 00000000..826ba5a5
--- /dev/null
+++ b/slp_mtmt/tests/unit/test_tm7_to_dict.py
@@ -0,0 +1,27 @@
+import json
+from unittest import TestCase
+
+from sl_util.sl_util.dict_utils import compare_dict
+from sl_util.sl_util.file_utils import get_byte_data
+from slp_mtmt.slp_mtmt.tm7_to_dict import Tm7ToDict
+from slp_mtmt.tests.resources.test_resource_paths import model_mtmt_source_file, model_mtmt_source_file_otm
+
+
+class TestTm7ToDict(TestCase):
+
+ def test_to_dict(self):
+ # GIVEN the source MTMT data
+ xml = get_byte_data(model_mtmt_source_file).decode()
+
+ # AND the expected content as json
+ expected_content = json.loads(get_byte_data(model_mtmt_source_file_otm))
+
+ # AND the parser
+ parser = Tm7ToDict(xml)
+
+ # WHEN we convert to json
+ dict_ = parser.to_dict()
+
+ # THEN dict is as expected
+ result, expected = compare_dict(dict_, expected_content)
+ assert result == expected
diff --git a/slp_mtmt/tests/unit/test_tm7_to_json.py b/slp_mtmt/tests/unit/test_tm7_to_json.py
deleted file mode 100644
index 8a020a27..00000000
--- a/slp_mtmt/tests/unit/test_tm7_to_json.py
+++ /dev/null
@@ -1,288 +0,0 @@
-from unittest import TestCase
-
-from slp_mtmt.slp_mtmt.tm7_to_json import Tm7ToJson
-from slp_mtmt.tests.resources import test_resource_paths
-
-
-class TestTm7ToJson(TestCase):
-
- def test_to_json(self):
- # GIVEN the source MTMT data
- with open(test_resource_paths.model_mtmt_source_file, 'r') as f:
- xml = f.read()
-
- # AND the parser
- parser = Tm7ToJson(xml)
-
- # WHEN we convert to json
- json_ = parser.to_json()
-
- # THEN validate the threat model
- assert len(json_) == 1
- model_ = json_['ThreatModel']
- assert len(model_) == 10
- list_ = model_['DrawingSurfaceList']
- assert len(list_) == 2
- surface_model_ = list_['DrawingSurfaceModel']
- assert len(surface_model_) == 8
- borders_ = surface_model_['Borders']
- assert len(borders_) == 1
- types = borders_['KeyValueOfguidanyType']
- assert len(types) == 9
- current_type = types[0]
- assert current_type['Key'] == '294a595a-174d-452c-b38d-9c434f7f5bac'
- assert current_type['Value']['GenericTypeId'] == 'c8bba3ee-9cdc-426f-89dd-0cea09ba72e8'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'MCU'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'My_MCU'
- current_type = types[1]
- assert current_type['Key'] == '436f7fa6-8555-4b73-9346-679874c650e7'
- assert current_type['Value']['GenericTypeId'] == 'c8bba3ee-9cdc-426f-89dd-0cea09ba72e8'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Memory'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'SD card'
- current_type = types[2]
- assert current_type['Key'] == '241852d1-a5a7-4756-86d5-b400703b6614'
- assert current_type['Value']['GenericTypeId'] == '06836650-88ef-4421-a2d8-88cb8befbff0'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Device Physical Boundary'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'Device Physical Boundary'
- current_type = types[3]
- assert current_type['Key'] == '5b0bab1d-89c8-499d-b9aa-a5d19652aa5f'
- assert current_type['Value']['GenericTypeId'] == '8db306cc-f8f5-4c07-8be2-48e2a0af38aa'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Phone'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'Phone'
- current_type = types[4]
- assert current_type['Key'] == '26418f1e-db19-41ad-9157-1ea2cebbaec6'
- assert current_type['Value']['GenericTypeId'] == '06836650-88ef-4421-a2d8-88cb8befbff0'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'SoC Boundary'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'SoC Boundary'
- current_type = types[5]
- assert current_type['Key'] == '8688c03a-1943-420c-8411-038d652220ca'
- assert current_type['Value']['GenericTypeId'] == '06836650-88ef-4421-a2d8-88cb8befbff0'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Local Network Boundary'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'Local Network Boundary'
- current_type = types[6]
- assert current_type['Key'] == '158ab95e-f8d0-48d7-84f8-4c57ed40a9f4'
- assert current_type['Value']['GenericTypeId'] == '8db306cc-f8f5-4c07-8be2-48e2a0af38aa'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Server'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'Server'
- current_type = types[7]
- assert current_type['Key'] == '086f799f-e4f4-4c70-8f82-e1fd1212e22b'
- assert current_type['Value']['GenericTypeId'] == '06836650-88ef-4421-a2d8-88cb8befbff0'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Company Internet Boundary'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'Company Internet Boundary'
- current_type = types[8]
- assert current_type['Key'] == 'ca3c7bc2-377f-471f-a45f-a78d511a4184'
- assert current_type['Value']['GenericTypeId'] == 'dd163aaf-713b-46df-bc66-4ace6c033067'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Attacker'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'Attacker'
- lines = surface_model_['Lines']
- types = lines['KeyValueOfguidanyType']
- assert len(types) == 8
- current_type = types[0]
- assert current_type['Key'] == '8ee98acb-b1b9-44b4-9bdb-ee129fdb072b'
- assert current_type['Value']['GenericTypeId'] == '480937d2-d4f4-4af0-8282-4cd42bc5b75e'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Local Digital Communication'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'SD SPI Out'
- current_type = types[1]
- assert current_type['Key'] == '12acd5a9-0e2d-4833-a28a-bf7ee8e694ce'
- assert current_type['Value']['GenericTypeId'] == '480937d2-d4f4-4af0-8282-4cd42bc5b75e'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Local Digital Communication'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'SD SPI In'
- current_type = types[2]
- assert current_type['Key'] == '4ecea2e4-18da-45d9-9373-a0112766af32'
- assert current_type['Value']['GenericTypeId'] == '480937d2-d4f4-4af0-8282-4cd42bc5b75e'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Wireless Networks'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'HTTPS Out'
- current_type = types[3]
- assert current_type['Key'] == '12cd91c3-e9d9-4523-aa7b-3aab3585249f'
- assert current_type['Value']['GenericTypeId'] == '480937d2-d4f4-4af0-8282-4cd42bc5b75e'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Wireless Networks'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'HTTPS In'
- current_type = types[4]
- assert current_type['Key'] == '7760688a-3514-4d51-9b4e-8f4e336b2c33'
- assert current_type['Value']['GenericTypeId'] == '480937d2-d4f4-4af0-8282-4cd42bc5b75e'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Local Wireless'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'BLE Out'
- current_type = types[5]
- assert current_type['Key'] == '30eea514-cce9-4a5b-a8ff-a2301097b394'
- assert current_type['Value']['GenericTypeId'] == '480937d2-d4f4-4af0-8282-4cd42bc5b75e'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Local Wireless'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'BLE In'
- current_type = types[6]
- assert current_type['Key'] == '2623e7d0-e277-46ad-8d13-6e47d10e3d35'
- assert current_type['Value']['GenericTypeId'] == '480937d2-d4f4-4af0-8282-4cd42bc5b75e'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Local Digital Communication'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'Attacker Out'
- current_type = types[7]
- assert current_type['Key'] == 'bd0b560e-339f-4b24-9e5d-1c3c50b4c6bc'
- assert current_type['Value']['GenericTypeId'] == '480937d2-d4f4-4af0-8282-4cd42bc5b75e'
- assert current_type['Value']['Guid'] == current_type['Key']
- assert current_type['Value']['Properties']['anyType'][0]['DisplayName'] == 'Local Digital Communication'
- assert current_type['Value']['Properties']['anyType'][0]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][0]['Value'] == {}
- assert current_type['Value']['Properties']['anyType'][1]['DisplayName'] == 'Name'
- assert current_type['Value']['Properties']['anyType'][1]['Name'] is None
- assert current_type['Value']['Properties']['anyType'][1]['Value']['text'] == 'Attacker In'
- meta_info = model_['MetaInformation']
- assert len(meta_info) == 7
- assert meta_info['Assumptions'] == 'None'
- assert meta_info['Contributors'] == 'Tyler M'
- assert meta_info['ExternalDependencies'] == 'None'
- assert meta_info['HighLevelSystemDescription'] == 'Test model to test out different electrical components'
- assert meta_info['Owner'] == 'Tyler M'
- assert meta_info['Reviewer'] == 'Tyler M'
- assert meta_info['ThreatModelName'] == 'TestSystem'
- notes = model_['Notes']
- assert len(notes) == 1
- note = notes['Note']
- assert len(note) == 3
- threat_instance = model_['ThreatInstances']
- threats = threat_instance['KeyValueOfstringThreatpc_P0_PhOB']
- assert len(threats) == 10
- current_threat = threats[0]
- assert current_threat['Key'] == '19c4f63f-dd2f-4b71-bca2-46937ce7178b5b0bab1d-89c8-499d-b9aa' \
- '-a5d19652aa5f4ecea2e4-18da-45d9-9373-a0112766af32158ab95e-f8d0-48d7-84f8' \
- '-4c57ed40a9f4'
- assert current_threat['Value']['DrawingSurfaceGuid'] == 'd81aacfd-973b-47f1-b424-dafd887d09c1'
- assert current_threat['Value']['FlowGuid'] == '4ecea2e4-18da-45d9-9373-a0112766af32'
- assert current_threat['Value']['Id'] == '10'
- assert current_threat['Value']['InteractionKey'] == '5b0bab1d-89c8-499d-b9aa-a5d19652aa5f:4ecea2e4-18da-45d9' \
- '-9373-a0112766af32:158ab95e-f8d0-48d7-84f8-4c57ed40a9f4'
- assert current_threat['Value']['InteractionString'] == {}
- assert current_threat['Value']['ModifiedAt'] == '0001-01-01T00:00:00'
- assert current_threat['Value']['Priority'] == 'highest'
- assert len(current_threat['Value']['Properties']) == 1
- assert len(current_threat['Value']['Properties']['KeyValueOfstringstring']) == 15
- assert current_threat['Value']['SourceGuid'] == '5b0bab1d-89c8-499d-b9aa-a5d19652aa5f'
- assert current_threat['Value']['State'] == 'AutoGenerated'
- assert current_threat['Value']['StateInformation'] == {}
- assert current_threat['Value']['TargetGuid'] == '158ab95e-f8d0-48d7-84f8-4c57ed40a9f4'
- assert current_threat['Value']['Title'] == {}
- assert current_threat['Value']['TypeId'] == '19c4f63f-dd2f-4b71-bca2-46937ce7178b'
- assert current_threat['Value']['Upgraded'] == 'false'
- assert current_threat['Value']['UserThreatCategory'] == {}
- assert current_threat['Value']['UserThreatDescription'] == {}
- assert current_threat['Value']['UserThreatShortDescription'] == {}
- assert current_threat['Value']['Wide'] == 'false'
- current_threat = threats[1]
- assert current_threat['Key'] == 'f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd294a595a-174d-452c-b38d' \
- '-9c434f7f5bac7760688a-3514-4d51-9b4e-8f4e336b2c335b0bab1d-89c8-499d-b9aa' \
- '-a5d19652aa5f'
- assert current_threat['Value']['DrawingSurfaceGuid'] == 'd81aacfd-973b-47f1-b424-dafd887d09c1'
- assert current_threat['Value']['FlowGuid'] == '7760688a-3514-4d51-9b4e-8f4e336b2c33'
- assert current_threat['Value']['Id'] == '1'
- assert current_threat['Value']['InteractionKey'] == '294a595a-174d-452c-b38d-9c434f7f5bac:7760688a-3514-4d51' \
- '-9b4e-8f4e336b2c33:5b0bab1d-89c8-499d-b9aa-a5d19652aa5f'
- assert current_threat['Value']['InteractionString'] == {}
- assert current_threat['Value']['ModifiedAt'] == '2021-02-18T13:51:48.7662941-07:00'
- assert current_threat['Value']['Priority'] == 'highest'
- assert len(current_threat['Value']['Properties']) == 1
- assert len(current_threat['Value']['Properties']['KeyValueOfstringstring']) == 15
- assert current_threat['Value']['SourceGuid'] == '294a595a-174d-452c-b38d-9c434f7f5bac'
- assert current_threat['Value']['State'] == 'AutoGenerated'
- assert current_threat['Value']['StateInformation'] == {}
- assert current_threat['Value']['TargetGuid'] == '5b0bab1d-89c8-499d-b9aa-a5d19652aa5f'
- assert current_threat['Value']['Title'] == {}
- assert current_threat['Value']['TypeId'] == 'f05a81cf-b6a1-4ccf-94fc-3ad2af411ecd'
- assert current_threat['Value']['Upgraded'] == 'false'
- assert current_threat['Value']['UserThreatCategory'] == {}
- assert current_threat['Value']['UserThreatDescription'] == {}
- assert current_threat['Value']['UserThreatShortDescription'] == {}
- assert current_threat['Value']['Wide'] == 'false'
- knowlegde_base = model_['KnowledgeBase']
- assert len(knowlegde_base) == 6
- gen_elements = knowlegde_base['GenericElements']
- assert len(gen_elements) == 1
- types = gen_elements['ElementType']
- assert len(types) == 7
- current_type = types[0]
- assert current_type['IsExtension'] == 'false'
- assert current_type['Attributes'] is None
- assert current_type['AvailableToBaseModels'] is None
- assert current_type['Behavior'] == {}
- assert current_type['Description'] is None
- assert current_type['Hidden'] == 'false'
- assert current_type['Id'] == 'dd163aaf-713b-46df-bc66-4ace6c033067'
- assert current_type['ImageStream'] == {}
- assert current_type['Name'] == 'Generic Interaction'
- assert current_type['ParentId'] == 'ROOT'
- assert current_type['Representation'] == 'Ellipse'
diff --git a/slp_tf/tests/resources/otm/calculate_modules/expected_extra_modules.otm b/slp_tf/tests/resources/otm/calculate_modules/expected_extra_modules.otm
index 6c5aa2be..3aa36945 100644
--- a/slp_tf/tests/resources/otm/calculate_modules/expected_extra_modules.otm
+++ b/slp_tf/tests/resources/otm/calculate_modules/expected_extra_modules.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/calculate_modules/expected_mapping_modules.otm b/slp_tf/tests/resources/otm/calculate_modules/expected_mapping_modules.otm
index 9e96da57..067abbca 100644
--- a/slp_tf/tests/resources/otm/calculate_modules/expected_mapping_modules.otm
+++ b/slp_tf/tests/resources/otm/calculate_modules/expected_mapping_modules.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/calculate_trustzones/tf_components_with_trustzones_of_same_type.otm b/slp_tf/tests/resources/otm/calculate_trustzones/tf_components_with_trustzones_of_same_type.otm
index f512dd45..a6fabcd5 100644
--- a/slp_tf/tests/resources/otm/calculate_trustzones/tf_components_with_trustzones_of_same_type.otm
+++ b/slp_tf/tests/resources/otm/calculate_trustzones/tf_components_with_trustzones_of_same_type.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -13,7 +13,16 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "public-cloud-01",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "name": "Public Cloud",
+ "risk": {
+ "trustRating": 10
+ }
+ },
+ {
+ "id": "public-cloud-02",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -25,7 +34,7 @@
"id": "public-cloud-01.aws_vpc-customvpc",
"name": "CustomVPC",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "public-cloud-01"
},
"tags": [
"aws_vpc"
@@ -36,7 +45,7 @@
"id": "public-cloud-02.aws_rds_cluster-rdscluster",
"name": "RDSCluster",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "public-cloud-02"
},
"tags": [
"aws_rds_cluster"
diff --git a/slp_tf/tests/resources/otm/catchall/tf_explicit_mapping_and_catchall_expected.otm b/slp_tf/tests/resources/otm/catchall/tf_explicit_mapping_and_catchall_expected.otm
index ffa533ea..28a92f8b 100644
--- a/slp_tf/tests/resources/otm/catchall/tf_explicit_mapping_and_catchall_expected.otm
+++ b/slp_tf/tests/resources/otm/catchall/tf_explicit_mapping_and_catchall_expected.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/catchall/tf_only_catchall_expected.otm b/slp_tf/tests/resources/otm/catchall/tf_only_catchall_expected.otm
index d6136891..bb8eafd8 100644
--- a/slp_tf/tests/resources/otm/catchall/tf_only_catchall_expected.otm
+++ b/slp_tf/tests/resources/otm/catchall/tf_only_catchall_expected.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/catchall/tf_singleton_and_catchall_expected.otm b/slp_tf/tests/resources/otm/catchall/tf_singleton_and_catchall_expected.otm
index 5e88f2af..3e5cd1c5 100644
--- a/slp_tf/tests/resources/otm/catchall/tf_singleton_and_catchall_expected.otm
+++ b/slp_tf/tests/resources/otm/catchall/tf_singleton_and_catchall_expected.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/catchall/tf_skip_and_catchall_expected.otm b/slp_tf/tests/resources/otm/catchall/tf_skip_and_catchall_expected.otm
index 443af822..0930f8e2 100644
--- a/slp_tf/tests/resources/otm/catchall/tf_skip_and_catchall_expected.otm
+++ b/slp_tf/tests/resources/otm/catchall/tf_skip_and_catchall_expected.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_aws_dataflows.otm b/slp_tf/tests/resources/otm/expected_aws_dataflows.otm
index 843536b6..e721cd7e 100644
--- a/slp_tf/tests/resources/otm/expected_aws_dataflows.otm
+++ b/slp_tf/tests/resources/otm/expected_aws_dataflows.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_aws_parent_children_components.otm b/slp_tf/tests/resources/otm/expected_aws_parent_children_components.otm
index 1e43e6a4..9efa7133 100644
--- a/slp_tf/tests/resources/otm/expected_aws_parent_children_components.otm
+++ b/slp_tf/tests/resources/otm/expected_aws_parent_children_components.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_aws_security_groups_components.otm b/slp_tf/tests/resources/otm/expected_aws_security_groups_components.otm
index 5e4461ca..8b62657e 100644
--- a/slp_tf/tests/resources/otm/expected_aws_security_groups_components.otm
+++ b/slp_tf/tests/resources/otm/expected_aws_security_groups_components.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -21,6 +22,7 @@
},
{
"id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_elb_example.otm b/slp_tf/tests/resources/otm/expected_elb_example.otm
index 5f11da4c..fe5e3a2c 100644
--- a/slp_tf/tests/resources/otm/expected_elb_example.otm
+++ b/slp_tf/tests/resources/otm/expected_elb_example.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -11,6 +11,7 @@
}],
"trustZones": [{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_mapping_skipped_component_without_parent.otm b/slp_tf/tests/resources/otm/expected_mapping_skipped_component_without_parent.otm
index efaa5344..d1646534 100644
--- a/slp_tf/tests/resources/otm/expected_mapping_skipped_component_without_parent.otm
+++ b/slp_tf/tests/resources/otm/expected_mapping_skipped_component_without_parent.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_no_resources.otm b/slp_tf/tests/resources/otm/expected_no_resources.otm
index 1258fd26..c9c40b9b 100644
--- a/slp_tf/tests/resources/otm/expected_no_resources.otm
+++ b/slp_tf/tests/resources/otm/expected_no_resources.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_orphan_component_is_not_mapped.otm b/slp_tf/tests/resources/otm/expected_orphan_component_is_not_mapped.otm
index 90c450f9..a003722e 100644
--- a/slp_tf/tests/resources/otm/expected_orphan_component_is_not_mapped.otm
+++ b/slp_tf/tests/resources/otm/expected_orphan_component_is_not_mapped.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_run_valid_mappings.otm b/slp_tf/tests/resources/otm/expected_run_valid_mappings.otm
index 9262096d..62c074fb 100644
--- a/slp_tf/tests/resources/otm/expected_run_valid_mappings.otm
+++ b/slp_tf/tests/resources/otm/expected_run_valid_mappings.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -11,6 +11,7 @@
}],
"trustZones": [{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/expected_separated_network_components.otm b/slp_tf/tests/resources/otm/expected_separated_network_components.otm
index 033f17b5..72978eeb 100644
--- a/slp_tf/tests/resources/otm/expected_separated_network_components.otm
+++ b/slp_tf/tests/resources/otm/expected_separated_network_components.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -11,12 +11,14 @@
}],
"trustZones": [{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
}
}, {
"id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/mapping_functions/expected_aws_altsource_components.otm b/slp_tf/tests/resources/otm/mapping_functions/expected_aws_altsource_components.otm
index b4629b25..f78c2eb9 100644
--- a/slp_tf/tests/resources/otm/mapping_functions/expected_aws_altsource_components.otm
+++ b/slp_tf/tests/resources/otm/mapping_functions/expected_aws_altsource_components.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/mapping_functions/expected_aws_singleton_components.otm b/slp_tf/tests/resources/otm/mapping_functions/expected_aws_singleton_components.otm
index 32eb2ade..3a6f41da 100644
--- a/slp_tf/tests/resources/otm/mapping_functions/expected_aws_singleton_components.otm
+++ b/slp_tf/tests/resources/otm/mapping_functions/expected_aws_singleton_components.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/minimal_otm_expected_result.otm b/slp_tf/tests/resources/otm/minimal_otm_expected_result.otm
index aa596279..b8b7c15a 100644
--- a/slp_tf/tests/resources/otm/minimal_otm_expected_result.otm
+++ b/slp_tf/tests/resources/otm/minimal_otm_expected_result.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
diff --git a/slp_tf/tests/resources/otm/otm_with_only_default_trustzone_expected_result.otm b/slp_tf/tests/resources/otm/otm_with_only_default_trustzone_expected_result.otm
index 4e64edeb..b850f2b3 100644
--- a/slp_tf/tests/resources/otm/otm_with_only_default_trustzone_expected_result.otm
+++ b/slp_tf/tests/resources/otm/otm_with_only_default_trustzone_expected_result.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/terraform_minimal_content.otm b/slp_tf/tests/resources/otm/terraform_minimal_content.otm
index afe6c445..4673a1f5 100644
--- a/slp_tf/tests/resources/otm/terraform_minimal_content.otm
+++ b/slp_tf/tests/resources/otm/terraform_minimal_content.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -12,8 +12,17 @@
}
],
"trustZones": [
+ {
+ "id": "public-cloud-01",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "name": "Public Cloud",
+ "risk": {
+ "trustRating": 10
+ }
+ },
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_tf/tests/resources/otm/tf-file-referenced-vars-expected-result.otm b/slp_tf/tests/resources/otm/tf-file-referenced-vars-expected-result.otm
index f4f2047e..f5b4a2b9 100644
--- a/slp_tf/tests/resources/otm/tf-file-referenced-vars-expected-result.otm
+++ b/slp_tf/tests/resources/otm/tf-file-referenced-vars-expected-result.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -11,12 +11,14 @@
}],
"trustZones": [{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
}
}, {
"id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
diff --git a/slp_tfplan/resources/schemas/iac_tfplan_mapping_schema.json b/slp_tfplan/resources/schemas/iac_tfplan_mapping_schema.json
index 85b60727..b59c4a14 100644
--- a/slp_tfplan/resources/schemas/iac_tfplan_mapping_schema.json
+++ b/slp_tfplan/resources/schemas/iac_tfplan_mapping_schema.json
@@ -81,7 +81,14 @@
}
},
"catch_all":{
- "type":"string"
+ "anyOf": [
+ {
+ "type":"string"
+ },
+ {
+ "type":"boolean"
+ }
+ ]
}
},
"required":[
diff --git a/slp_tfplan/slp_tfplan/load/resource_data_extractors.py b/slp_tfplan/slp_tfplan/load/resource_data_extractors.py
index 19eaa9ad..c80a1ee5 100644
--- a/slp_tfplan/slp_tfplan/load/resource_data_extractors.py
+++ b/slp_tfplan/slp_tfplan/load/resource_data_extractors.py
@@ -3,9 +3,6 @@
# TODO Consider migrating these functions to use jmespath
-def _get_resource_properties_root(resource: {}, path: Literal['expressions', 'planned_values']) -> Dict:
- return resource['resource_properties'].get(path, {})
-
def _get_referenced_resources(references: List[str]):
valid_references = []
@@ -17,12 +14,7 @@ def _get_referenced_resources(references: List[str]):
return valid_references
-def _get_value_from(resource: Dict, root: Literal['expressions', 'planned_values'], path: List[str]):
- expressions = _get_resource_properties_root(resource, root)
- if not expressions:
- return []
-
- source = expressions
+def _get_value_from_path(source: Dict, path: List[str]):
for i, element in enumerate(path):
source = source.get(element)
if not source:
@@ -37,16 +29,18 @@ def _get_value_from(resource: Dict, root: Literal['expressions', 'planned_values
return source
-def _get_value_from_planned_values(resource: Dict, path: List[str]):
- return _get_value_from(resource, 'planned_values', path)
+def _get_from_values(resource: Dict, path: List[str]):
+ expressions_path = ['resource_values'] + path
+ return _get_value_from_path(resource, expressions_path)
-def _get_value_from_expressions(resource: Dict, path: List[str]):
- return _get_value_from(resource, 'expressions', path)
+def _get_from_expressions(resource: Dict, path: List[str]):
+ expressions_path = ['resource_configuration', 'expressions'] + path
+ return _get_value_from_path(resource, expressions_path)
def _get_references_from_expressions(resource: Dict, path: List[str]) -> List[str]:
- source = _get_value_from_expressions(resource, path)
+ source = _get_from_expressions(resource, path)
if not source or isinstance(source, str):
return []
@@ -68,10 +62,6 @@ def security_groups_ids_from_type_property(resource: {}, cidr_type: Literal['ing
return _get_references_from_expressions(resource, [cidr_type, 'references'])
-def cidr_from_type_property(resource: {}, cidr_type: Literal['ingress', 'egress']) -> List[dict]:
- return _get_value_from_planned_values(resource, [cidr_type])
-
-
def source_security_group_id_from_rule(resource: {}) -> str:
sources_list = _get_references_from_expressions(resource, ['source_security_group_id', 'references'])
if sources_list:
@@ -84,25 +74,29 @@ def security_group_id_from_rule(resource: {}) -> str:
return sg_ids[0]
+def cidr_from_type_property(resource: {}, cidr_type: Literal['ingress', 'egress']) -> List[dict]:
+ return _get_from_values(resource, [cidr_type])
+
+
def description_from_rule(resource: {}) -> str:
- return _get_value_from_planned_values(resource, ['description'])
+ return _get_from_values(resource, ['description'])
def protocol_from_rule(resource: {}) -> str:
- return _get_value_from_planned_values(resource, ['protocol'])
+ return _get_from_values(resource, ['protocol'])
def from_port_from_rule(resource: {}) -> str:
- return _get_value_from_planned_values(resource, ['from_port'])
+ return _get_from_values(resource, ['from_port'])
def to_port_from_rule(resource: {}) -> str:
- return _get_value_from_planned_values(resource, ['to_port'])
+ return _get_from_values(resource, ['to_port'])
def cidr_blocks_from_rule(resource: {}) -> List[str]:
- return _get_value_from_planned_values(resource, ['cidr_blocks'])
+ return _get_from_values(resource, ['cidr_blocks'])
def security_group_rule_type(resource: {}) -> str:
- return _get_value_from_expressions(resource, ['type', 'constant_value'])
+ return _get_from_values(resource, ['type'])
diff --git a/slp_tfplan/slp_tfplan/load/security_groups_loader.py b/slp_tfplan/slp_tfplan/load/security_groups_loader.py
index 8c1ff71c..3ab93f43 100644
--- a/slp_tfplan/slp_tfplan/load/security_groups_loader.py
+++ b/slp_tfplan/slp_tfplan/load/security_groups_loader.py
@@ -1,9 +1,13 @@
from typing import List, Dict, Union
+from networkx import DiGraph
+
+from slp_tfplan.slp_tfplan.graph.relationships_extractor import RelationshipsExtractor
from slp_tfplan.slp_tfplan.load.resource_data_extractors import security_group_id_from_rule, \
description_from_rule, protocol_from_rule, from_port_from_rule, to_port_from_rule, cidr_blocks_from_rule, \
cidr_from_type_property, source_security_group_id_from_rule, \
security_group_rule_type, security_groups_ids_from_type_property
+from slp_tfplan.slp_tfplan.matcher.sg_and_sgrules_matcher import SGAndSGRulesMatcher
from slp_tfplan.slp_tfplan.objects.tfplan_objects import SecurityGroup, TFPlanOTM, SecurityGroupCIDR, \
SecurityGroupCIDRType
@@ -17,7 +21,8 @@ def _get_security_group_rules(resources: List[Dict]) -> List[Dict[str, str]]:
return []
return list(map(lambda sg_rule:
- {'security_group_id': security_group_id_from_rule(sg_rule),
+ {'resource_id': sg_rule.get('resource_id'),
+ 'security_group_id': security_group_id_from_rule(sg_rule),
'description': description_from_rule(sg_rule),
'protocol': protocol_from_rule(sg_rule),
'from_port': from_port_from_rule(sg_rule),
@@ -28,46 +33,35 @@ def _get_security_group_rules(resources: List[Dict]) -> List[Dict[str, str]]:
sg_rules))
-def _get_sg_rules_by_sg_id(sg_id: str, rule_type: SecurityGroupCIDRType, sg_rules: List[Dict[str, str]]
- ) -> List[Dict[str, str]]:
- return list(filter(
- lambda sg_rule:
- sg_rule['security_group_id'] == sg_id and sg_rule['type'] == rule_type.value,
- sg_rules))
-
-
-def _source_security_group_ids_of_type_from_rule(security_group: Dict, rule_type: SecurityGroupCIDRType,
- sg_rules: List[Dict[str, str]]):
- sg_rules_by_sg_id = _get_sg_rules_by_sg_id(security_group['resource_id'], rule_type, sg_rules)
- return list(filter(lambda sg_id: sg_id is not None,
- list(set([r['source_security_group_id'] for r in sg_rules_by_sg_id]))))
-
+def _is_valid_cidr_object(sg_rule: Union[str, Dict[str, str]]) -> bool:
+ if isinstance(sg_rule, str):
+ return False
+ return 'cidr_blocks' in sg_rule
-def _cidr_of_type_from_rule(security_group: Dict, rule_type: SecurityGroupCIDRType,
- sg_rules: List[Dict[str, str]]):
- sg_rules_by_sg_id = _get_sg_rules_by_sg_id(security_group['resource_id'], rule_type, sg_rules)
- return list(filter(lambda sg_rule: sg_rule.get('cidr_blocks', None) is not None, sg_rules_by_sg_id))
+def _filter_sg_rule_by_type(sg_rules: List[Dict], rule_type: SecurityGroupCIDRType):
+ return list(filter(lambda sg_rule: sg_rule['type'] == rule_type.value, sg_rules))
-def _get_sgs_of_type(security_group: Dict, sg_type: SecurityGroupCIDRType,
- sg_rules: List[Dict[str, str]]) -> List[str]:
+def _get_sgs_of_type(security_group: Dict, related_sg_rules: List[Dict],
+ sg_type: SecurityGroupCIDRType) -> List[str]:
return security_groups_ids_from_type_property(security_group, sg_type.value) or \
- _source_security_group_ids_of_type_from_rule(security_group, sg_type, sg_rules)
+ _get_sgs_of_type_from_rule(related_sg_rules, sg_type)
-def __is_valid_cidr_object(sg_rule: Union[str, Dict[str, str]]) -> bool:
- if isinstance(sg_rule, str):
- return False
- return 'cidr_blocks' in sg_rule
+def _get_sgs_of_type_from_rule(related_sg_rules: List[Dict], rule_type: SecurityGroupCIDRType):
+ related_sg_rules_filtered = _filter_sg_rule_by_type(related_sg_rules, rule_type)
+
+ return list(filter(lambda sg_id: sg_id is not None,
+ list(set([r['source_security_group_id'] for r in related_sg_rules_filtered]))))
-def _get_cidr_of_type(security_group: Dict, cidr_type: SecurityGroupCIDRType,
- sg_rules: List[Dict[str, str]]) -> List[SecurityGroupCIDR]:
+def _get_cidr_of_type(security_group: Dict, related_sg_rules: List[Dict],
+ cidr_type: SecurityGroupCIDRType) -> List[SecurityGroupCIDR]:
sg_cidr = cidr_from_type_property(security_group, cidr_type.value) or \
- _cidr_of_type_from_rule(security_group, cidr_type, sg_rules)
+ _get_cidr_of_type_from_rule(related_sg_rules, cidr_type)
- sg_cidr = list(filter(lambda cidr: __is_valid_cidr_object(cidr), sg_cidr))
+ sg_cidr = list(filter(lambda cidr: _is_valid_cidr_object(cidr), sg_cidr))
if not sg_cidr:
return []
@@ -75,6 +69,12 @@ def _get_cidr_of_type(security_group: Dict, cidr_type: SecurityGroupCIDRType,
return list(map(lambda cidr: SecurityGroupCIDRLoader(cidr, cidr_type).load(), sg_cidr))
+def _get_cidr_of_type_from_rule(related_sg_rules: List[Dict], rule_type: SecurityGroupCIDRType):
+ related_sg_rules_filtered = _filter_sg_rule_by_type(related_sg_rules, rule_type)
+
+ return list(filter(lambda sg_rule: sg_rule.get('cidr_blocks', None) is not None, related_sg_rules_filtered))
+
+
class SecurityGroupCIDRLoader:
def __init__(self, security_group_cidr: dict, cidr_type: SecurityGroupCIDRType):
@@ -100,24 +100,28 @@ def load(self):
class SecurityGroupsLoader:
- def __init__(self, otm: TFPlanOTM, tfplan: {}):
+ def __init__(self, otm: TFPlanOTM, tfplan: {}, graph: DiGraph):
self.otm = otm
self._resources = tfplan['resource']
- self._sg_rules: List[Dict[str, str]] = []
+ self._sg_rules: List[Dict[str, str]] = _get_security_group_rules(self._resources)
+
+ self._relationships_extractor = RelationshipsExtractor(
+ mapped_resources_ids=self.otm.mapped_resources_ids,
+ graph=graph)
def load(self):
- self._sg_rules = _get_security_group_rules(self._resources)
for resource in self._resources:
if resource['resource_type'] in SECURITY_GROUPS_TYPES:
self.otm.security_groups.append(self.__build_security_group(resource))
def __build_security_group(self, resource: {}) -> SecurityGroup:
+ related_sg_rules = SGAndSGRulesMatcher(resource, self._sg_rules, self._relationships_extractor).match()
return SecurityGroup(
security_group_id=resource['resource_id'],
name=resource['resource_name'],
- ingress_sgs=_get_sgs_of_type(resource, SecurityGroupCIDRType.INGRESS, self._sg_rules),
- egress_sgs=_get_sgs_of_type(resource, SecurityGroupCIDRType.EGRESS, self._sg_rules),
- ingress_cidr=_get_cidr_of_type(resource, SecurityGroupCIDRType.INGRESS, self._sg_rules),
- egress_cidr=_get_cidr_of_type(resource, SecurityGroupCIDRType.EGRESS, self._sg_rules),
+ ingress_sgs=_get_sgs_of_type(resource, related_sg_rules, SecurityGroupCIDRType.INGRESS),
+ egress_sgs=_get_sgs_of_type(resource, related_sg_rules, SecurityGroupCIDRType.EGRESS),
+ ingress_cidr=_get_cidr_of_type(resource, related_sg_rules, SecurityGroupCIDRType.INGRESS),
+ egress_cidr=_get_cidr_of_type(resource, related_sg_rules, SecurityGroupCIDRType.EGRESS),
)
diff --git a/slp_tfplan/slp_tfplan/load/tfplan_to_resource_dict.py b/slp_tfplan/slp_tfplan/load/tfplan_to_resource_dict.py
index be50df61..e1bba77a 100644
--- a/slp_tfplan/slp_tfplan/load/tfplan_to_resource_dict.py
+++ b/slp_tfplan/slp_tfplan/load/tfplan_to_resource_dict.py
@@ -3,18 +3,6 @@
import sl_util.sl_util.secure_regex as re
-def map_resource_properties(resource: Dict) -> {}:
- return {
- 'resource_mode': resource['mode'],
- 'resource_provider_name': resource['provider_name'],
- 'resource_schema_version': resource['schema_version'],
- 'resource_address': resource['address'],
- # Sensitive and usual values may be overlapped
- **resource.get('sensitive_values', {}),
- **resource.get('values', {})
- }
-
-
def is_not_cloned_resource(resource: Dict) -> bool:
return 'index' not in resource or resource['index'] == '0' or resource['index'] == 'zero'
@@ -78,16 +66,14 @@ def __map_resource(self, resource: Dict, parent: str = None) -> Dict:
'resource_id': get_resource_id(resource),
'resource_name': get_resource_name(resource, parent),
'resource_type': resource['type'],
- 'resource_properties': self.__get_resource_properties(resource)
+ 'resource_values': resource.get('values', {}),
+ 'resource_configuration': {
+ 'expressions': self.__get_resource_configuration_expressions(resource)
+ }
}
- def __get_resource_properties(self, resource: Dict) -> Dict:
- _resource_configuration = self.__get_resource_configuration(resource['address'])
- _resource_properties = map_resource_properties(resource)
- if _resource_configuration:
- _resource_configuration["planned_values"] = _resource_properties
-
- return _resource_configuration or _resource_properties
+ def __get_resource_configuration_expressions(self, resource: Dict) -> Dict:
+ return self.__get_resource_configuration(resource).get('expressions', {})
- def __get_resource_configuration(self, resource_address: str) -> Dict:
- return next(filter(lambda r: r['address'] == resource_address, self.resources_configuration), None)
+ def __get_resource_configuration(self, resource: Dict) -> Dict:
+ return next(filter(lambda r: r['address'] == resource['address'], self.resources_configuration), {})
diff --git a/slp_tfplan/slp_tfplan/matcher/__init__.py b/slp_tfplan/slp_tfplan/matcher/__init__.py
index ca26ca4a..45027192 100644
--- a/slp_tfplan/slp_tfplan/matcher/__init__.py
+++ b/slp_tfplan/slp_tfplan/matcher/__init__.py
@@ -1,5 +1,6 @@
from slp_tfplan.slp_tfplan.matcher.components_and_sgs_matcher import ComponentsAndSGsMatcher
from slp_tfplan.slp_tfplan.matcher.resource_matcher import ResourcesMatcherContainer
+from slp_tfplan.slp_tfplan.matcher.sg_and_sgrules_matcher import SGAndSGRulesMatcher
from slp_tfplan.slp_tfplan.matcher.sgs_matcher import SGsMatcher
from slp_tfplan.slp_tfplan.matcher.strategies.match_strategy import MatchStrategyContainer
@@ -7,5 +8,6 @@
ResourcesMatcherContainer().wire(modules=[
ComponentsAndSGsMatcher.__module__,
- SGsMatcher.__module__
+ SGsMatcher.__module__,
+ SGAndSGRulesMatcher.__module__
])
diff --git a/slp_tfplan/slp_tfplan/matcher/resource_matcher.py b/slp_tfplan/slp_tfplan/matcher/resource_matcher.py
index 0bcba97f..4653156d 100644
--- a/slp_tfplan/slp_tfplan/matcher/resource_matcher.py
+++ b/slp_tfplan/slp_tfplan/matcher/resource_matcher.py
@@ -54,10 +54,15 @@ class ResourcesMatcherContainer(DeclarativeContainer):
sgs_matcher = providers.Singleton(
ResourceMatcher,
- strategies=MatchStrategyContainer.sg_match_strategies
+ strategies=MatchStrategyContainer.sg_sg_match_strategies
)
component_sg_matcher = providers.Singleton(
ResourceMatcher,
strategies=MatchStrategyContainer.component_sg_match_strategies
)
+
+ sg_rule_matcher = providers.Singleton(
+ ResourceMatcher,
+ strategies=MatchStrategyContainer.sg_sg_rule_match_strategies
+ )
diff --git a/slp_tfplan/slp_tfplan/matcher/sg_and_sgrules_matcher.py b/slp_tfplan/slp_tfplan/matcher/sg_and_sgrules_matcher.py
new file mode 100644
index 00000000..ce2f1317
--- /dev/null
+++ b/slp_tfplan/slp_tfplan/matcher/sg_and_sgrules_matcher.py
@@ -0,0 +1,36 @@
+from typing import Dict, List
+
+from dependency_injector.wiring import inject, Provide
+
+from slp_tfplan.slp_tfplan.graph.relationships_extractor import RelationshipsExtractor
+from slp_tfplan.slp_tfplan.matcher.resource_matcher import ResourceMatcher, ResourcesMatcherContainer
+
+
+class SGAndSGRulesMatcher:
+ """
+ This class is responsible for matching security groups and security groups rules.
+ """
+ @inject
+ def __init__(self,
+ security_group: Dict, security_group_rules: List[Dict],
+ relationships_extractor: RelationshipsExtractor,
+ sg_rule_matcher: ResourceMatcher = Provide[ResourcesMatcherContainer.sg_rule_matcher]):
+ # Data structures
+ self._security_group: Dict = security_group
+ self._security_group_rules: List[Dict] = security_group_rules
+ self._relationships_extractor: RelationshipsExtractor = relationships_extractor
+
+ # Injected dependencies
+ self._are_related = sg_rule_matcher.are_related
+
+ def match(self) -> List[Dict]:
+ """
+ Returns a list of security group rules related with the security group.
+ :return: List of security group rules
+ """
+ related_sg_rule = []
+ for sg_rule in self._security_group_rules:
+ if self._are_related(self._security_group, sg_rule, relationships_extractor=self._relationships_extractor):
+ related_sg_rule.append(sg_rule)
+
+ return related_sg_rule
diff --git a/slp_tfplan/slp_tfplan/matcher/strategies/component_security_group_match_strategies.py b/slp_tfplan/slp_tfplan/matcher/strategies/component_sg_match_strategies.py
similarity index 100%
rename from slp_tfplan/slp_tfplan/matcher/strategies/component_security_group_match_strategies.py
rename to slp_tfplan/slp_tfplan/matcher/strategies/component_sg_match_strategies.py
diff --git a/slp_tfplan/slp_tfplan/matcher/strategies/match_strategy.py b/slp_tfplan/slp_tfplan/matcher/strategies/match_strategy.py
index 35a56179..081960a6 100644
--- a/slp_tfplan/slp_tfplan/matcher/strategies/match_strategy.py
+++ b/slp_tfplan/slp_tfplan/matcher/strategies/match_strategy.py
@@ -37,5 +37,6 @@ class MatchStrategyContainer(DeclarativeContainer):
Here are defined a list of instances for each of these groups.
"""
- sg_match_strategies = List()
+ sg_sg_match_strategies = List()
+ sg_sg_rule_match_strategies = List()
component_sg_match_strategies = List()
diff --git a/slp_tfplan/slp_tfplan/matcher/strategies/security_group_match_strategies.py b/slp_tfplan/slp_tfplan/matcher/strategies/sg_sg_match_strategies.py
similarity index 86%
rename from slp_tfplan/slp_tfplan/matcher/strategies/security_group_match_strategies.py
rename to slp_tfplan/slp_tfplan/matcher/strategies/sg_sg_match_strategies.py
index bf0ce5c8..7a4cd535 100644
--- a/slp_tfplan/slp_tfplan/matcher/strategies/security_group_match_strategies.py
+++ b/slp_tfplan/slp_tfplan/matcher/strategies/sg_sg_match_strategies.py
@@ -3,25 +3,26 @@
from slp_tfplan.slp_tfplan.objects.tfplan_objects import SecurityGroup
-
-@register(MatchStrategyContainer.sg_match_strategies)
+@register(MatchStrategyContainer.sg_sg_match_strategies)
class SecurityGroupByConfigurationStrategy(MatchStrategy):
"""
Two Security Groups SG1 and SG2 are related if the ID of SG1 is in the ingress_ids of the SG2 or if the
ID of the SG2 is in the egress_ids of the SG1.
"""
+
def are_related(self, source_security_group: SecurityGroup, target_security_group: SecurityGroup,
**kwargs) -> bool:
return source_security_group.id in target_security_group.ingress_sgs \
- or target_security_group.id in source_security_group.egress_sgs
+ or target_security_group.id in source_security_group.egress_sgs
-@register(MatchStrategyContainer.sg_match_strategies)
+@register(MatchStrategyContainer.sg_sg_match_strategies)
class SecurityGroupByGraphStrategy(MatchStrategy):
"""
Two Security Groups are related if there is a straight relationship between them in the tfgraph. This means that
there is a relationships between a SG1 and a SG2 with no mapped components in the middle.
"""
+
def are_related(self, source_security_group: SecurityGroup, target_security_group: SecurityGroup,
**kwargs) -> bool:
return kwargs['relationships_extractor'].exist_valid_path(target_security_group.id, source_security_group.id)
diff --git a/slp_tfplan/slp_tfplan/matcher/strategies/sg_sg_rule_match_strategies.py b/slp_tfplan/slp_tfplan/matcher/strategies/sg_sg_rule_match_strategies.py
new file mode 100644
index 00000000..3fea3d33
--- /dev/null
+++ b/slp_tfplan/slp_tfplan/matcher/strategies/sg_sg_rule_match_strategies.py
@@ -0,0 +1,29 @@
+from typing import Dict
+
+from sl_util.sl_util.injection import register
+from slp_tfplan.slp_tfplan.matcher.strategies.match_strategy import MatchStrategy, MatchStrategyContainer
+
+
+@register(MatchStrategyContainer.sg_sg_rule_match_strategies)
+class MatchSecurityGroupRuleBySecurityGroupIdStrategy(MatchStrategy):
+ """
+ A security group rule is related with a security group by sg_rule['security_group_id'] being equals
+ to security_group['resource_id'].
+ """
+ def are_related(self, security_group: Dict, security_group_rule: Dict, **kwargs) -> bool:
+ return security_group.get('resource_id') == security_group_rule.get('security_group_id')
+
+
+@register(MatchStrategyContainer.sg_sg_rule_match_strategies)
+class MatchSecurityGroupRuleByGraphStrategy(MatchStrategy):
+ """
+ A security group rule is related with a security group if there is a tfgraph relationship
+ between the security group rule and the security group.
+ """
+
+ def are_related(self, security_group: Dict, security_group_rule: Dict, **kwargs) -> bool:
+ sg_resource_id = security_group.get('resource_id')
+ sg_rule_resource_id = security_group_rule.get('resource_id')
+ relationships_extractor = kwargs['relationships_extractor']
+
+ return relationships_extractor.exist_valid_path(sg_rule_resource_id, sg_resource_id)
diff --git a/slp_tfplan/slp_tfplan/parse/tfplan_parser.py b/slp_tfplan/slp_tfplan/parse/tfplan_parser.py
index 1fdb91d7..2b97b568 100644
--- a/slp_tfplan/slp_tfplan/parse/tfplan_parser.py
+++ b/slp_tfplan/slp_tfplan/parse/tfplan_parser.py
@@ -59,7 +59,7 @@ def __map_tfplan_resources(self):
TFPlanMapper(self.otm, self.tfplan, self.mapping).map()
def __load_auxiliary_resources(self):
- SecurityGroupsLoader(self.otm, self.tfplan).load()
+ SecurityGroupsLoader(self.otm, self.tfplan, self.tfgraph).load()
LaunchTemplatesLoader(self.otm, self.tfplan).load()
VariablesLoader(self.otm, self.tfplan).load()
diff --git a/slp_tfplan/slp_tfplan/transformers/attack_surface_calculator.py b/slp_tfplan/slp_tfplan/transformers/attack_surface_calculator.py
index 3e9ad8a7..8f178af2 100644
--- a/slp_tfplan/slp_tfplan/transformers/attack_surface_calculator.py
+++ b/slp_tfplan/slp_tfplan/transformers/attack_surface_calculator.py
@@ -35,7 +35,7 @@ def _create_client(client_id: str, variables: Dict, security_group_cidr: Securit
component_id=client_id,
name=_generate_client_name(security_group_cidr, variables, attack_surface_configuration.client),
component_type=attack_surface_configuration.client,
- parent=attack_surface_configuration.trustzone.type,
+ parent=attack_surface_configuration.trustzone.id,
parent_type=ParentType.TRUST_ZONE,
tags=[]
)
@@ -191,6 +191,6 @@ def __is_same_dataflow_to_parent(self,
return parent_name == child_name and relations == same_or_ancestor_relationships
def add_attack_surface_trustzone(self):
- if self.otm.exists_component_with_parent(self.attack_surface_configuration.trustzone.type) and \
+ if self.otm.exists_component_with_parent(self.attack_surface_configuration.trustzone.id) and \
not self.otm.exists_trustzone_with_type(self.attack_surface_configuration.trustzone.type):
self.otm.trustzones.append(trustzone_to_otm(self.attack_surface_configuration.trustzone))
diff --git a/slp_tfplan/tests/resources/otm/expected-elb.otm b/slp_tfplan/tests/resources/otm/expected-elb.otm
index 15338ddd..823d39cd 100644
--- a/slp_tfplan/tests/resources/otm/expected-elb.otm
+++ b/slp_tfplan/tests/resources/otm/expected-elb.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -13,7 +13,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "349bc818-8b17-4f6a-b084-6396d932492c",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -59,7 +60,7 @@
"name": "foo",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_vpc"
diff --git a/slp_tfplan/tests/resources/otm/expected-official.otm b/slp_tfplan/tests/resources/otm/expected-official.otm
index 276170e0..4ca526a2 100644
--- a/slp_tfplan/tests/resources/otm/expected-official.otm
+++ b/slp_tfplan/tests/resources/otm/expected-official.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -13,7 +13,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "349bc818-8b17-4f6a-b084-6396d932492c",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -26,7 +27,7 @@
"name": "click-logger-table",
"type": "dynamodb",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_dynamodb_table"
@@ -37,7 +38,7 @@
"name": "click_logger_firehose_delivery_stream",
"type": "kinesis-data-firehose",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_kinesis_firehose_delivery_stream"
@@ -48,7 +49,7 @@
"name": "lambda_clicklogger",
"type": "aws-lambda-function",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_lambda_function"
@@ -59,7 +60,7 @@
"name": "lambda_clicklogger_authorizer",
"type": "aws-lambda-function",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_lambda_function"
@@ -70,7 +71,7 @@
"name": "lambda_clicklogger_stream_consumer",
"type": "aws-lambda-function",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_lambda_function"
@@ -81,7 +82,7 @@
"name": "click_logger_firehose_delivery_s3_bucket",
"type": "s3",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_s3_bucket"
@@ -92,7 +93,7 @@
"name": "api-gateway (grouped)",
"type": "api-gateway",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_api_gateway_authorizer",
@@ -114,7 +115,7 @@
"name": "cloudwatch (grouped)",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_cloudwatch_log_group"
diff --git a/slp_tfplan/tests/resources/otm/expected-sgs.otm b/slp_tfplan/tests/resources/otm/expected-sgs.otm
index 235daf04..07199a45 100644
--- a/slp_tfplan/tests/resources/otm/expected-sgs.otm
+++ b/slp_tfplan/tests/resources/otm/expected-sgs.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "name",
"id": "id"
@@ -13,7 +13,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "349bc818-8b17-4f6a-b084-6396d932492c",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -114,7 +115,7 @@
"name": "CustomVPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "349bc818-8b17-4f6a-b084-6396d932492c"
},
"tags": [
"aws_vpc"
diff --git a/slp_tfplan/tests/resources/tfplan/resources/ingress-cidr-from-property-tfplan-resources.json b/slp_tfplan/tests/resources/tfplan/resources/ingress-cidr-from-property-tfplan-resources.json
index 3401facc..ef3ba575 100644
--- a/slp_tfplan/tests/resources/tfplan/resources/ingress-cidr-from-property-tfplan-resources.json
+++ b/slp_tfplan/tests/resources/tfplan/resources/ingress-cidr-from-property-tfplan-resources.json
@@ -4,12 +4,35 @@
"resource_id":"aws_security_group.alb",
"resource_name":"alb",
"resource_type":"aws_security_group",
- "resource_properties":{
- "address":"aws_security_group.alb",
- "mode":"managed",
- "type":"aws_security_group",
- "name":"alb",
- "provider_config_key":"aws",
+ "resource_values":{
+ "description":"Allow access traffic to ALB",
+ "ingress":[
+ {
+ "cidr_blocks":[
+ "0.0.0.0/32"
+ ],
+ "description":"HTTP access to ALB",
+ "from_port":"80",
+ "ipv6_cidr_blocks":[
+
+ ],
+ "prefix_list_ids":[
+
+ ],
+ "protocol":"tcp",
+ "security_groups":[
+
+ ],
+ "self":"false",
+ "to_port":"80"
+ }
+ ],
+ "name":"ALB SG",
+ "revoke_rules_on_delete":"false",
+ "tags":"null",
+ "timeouts":"null"
+ },
+ "resource_configuration":{
"expressions":{
"description":{
"constant_value":"Allow access traffic to ALB"
@@ -28,357 +51,8 @@
"module.vpc"
]
}
- },
- "schema_version":"1",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"aws_security_group.alb",
- "egress":[
-
- ],
- "ingress":[
- {
- "cidr_blocks":[
- "0.0.0.0/32"
- ],
- "description":"HTTP access to ALB",
- "from_port":"80",
- "ipv6_cidr_blocks":[
-
- ],
- "prefix_list_ids":[
-
- ],
- "protocol":"tcp",
- "security_groups":[
-
- ],
- "self":"false",
- "to_port":"80"
- }
- ],
- "tags_all":{
-
- },
- "description":"Allow access traffic to ALB",
- "name":"ALB SG",
- "revoke_rules_on_delete":"false",
- "tags":"null",
- "timeouts":"null"
}
}
- },
- {
- "resource_id":"module.alb.aws_lb.this",
- "resource_name":"module.alb.this",
- "resource_type":"aws_lb",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.alb.aws_lb.this[0]",
- "access_logs":[
-
- ],
- "security_groups":[
-
- ],
- "subnet_mapping":[
-
- ],
- "subnets":[
-
- ],
- "tags":{
- "Name":"alb"
- },
- "tags_all":{
- "Name":"alb"
- },
- "timeouts":{
- "create":"10m",
- "delete":"10m",
- "update":"10m"
- },
- "customer_owned_ipv4_pool":"null",
- "desync_mitigation_mode":"defensive",
- "drop_invalid_header_fields":"false",
- "enable_cross_zone_load_balancing":"null",
- "enable_deletion_protection":"false",
- "enable_http2":"true",
- "enable_tls_version_and_cipher_suite_headers":"false",
- "enable_waf_fail_open":"false",
- "enable_xff_client_port":"false",
- "idle_timeout":"900",
- "internal":"false",
- "ip_address_type":"ipv4",
- "load_balancer_type":"application",
- "name":"alb",
- "name_prefix":"null",
- "preserve_host_header":"false",
- "xff_header_processing_mode":"append"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_network_acl.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_default_network_acl",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_default_network_acl.this[0]",
- "egress":[
- {
- "action":"allow",
- "cidr_block":"",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"::/0",
- "protocol":"-1",
- "rule_no":"101",
- "to_port":"0"
- },
- {
- "action":"allow",
- "cidr_block":"0.0.0.0/0",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"",
- "protocol":"-1",
- "rule_no":"100",
- "to_port":"0"
- }
- ],
- "ingress":[
- {
- "action":"allow",
- "cidr_block":"",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"::/0",
- "protocol":"-1",
- "rule_no":"101",
- "to_port":"0"
- },
- {
- "action":"allow",
- "cidr_block":"0.0.0.0/0",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"",
- "protocol":"-1",
- "rule_no":"100",
- "to_port":"0"
- }
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "subnet_ids":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_route_table.default",
- "resource_name":"module.vpc.default",
- "resource_type":"aws_default_route_table",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_default_route_table.default[0]",
- "route":[
-
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "timeouts":{
- "create":"5m",
- "update":"5m"
- },
- "propagating_vgws":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_security_group.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_default_security_group",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_default_security_group.this[0]",
- "egress":[
-
- ],
- "ingress":[
-
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "revoke_rules_on_delete":"false"
- }
- },
- {
- "resource_id":"module.vpc.aws_internet_gateway.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_internet_gateway",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_internet_gateway.this[0]",
- "tags":{
- "Name":"VPC"
- },
- "tags_all":{
- "Name":"VPC"
- },
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route.public_internet_gateway",
- "resource_name":"module.vpc.public_internet_gateway",
- "resource_type":"aws_route",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route.public_internet_gateway[0]",
- "timeouts":{
- "create":"5m",
- "delete":"null",
- "update":"null"
- },
- "carrier_gateway_id":"null",
- "core_network_arn":"null",
- "destination_cidr_block":"0.0.0.0/0",
- "destination_ipv6_cidr_block":"null",
- "destination_prefix_list_id":"null",
- "egress_only_gateway_id":"null",
- "local_gateway_id":"null",
- "nat_gateway_id":"null",
- "transit_gateway_id":"null",
- "vpc_endpoint_id":"null",
- "vpc_peering_connection_id":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route_table.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_route_table",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route_table.public[0]",
- "propagating_vgws":[
-
- ],
- "route":[
-
- ],
- "tags":{
- "Name":"VPC-public"
- },
- "tags_all":{
- "Name":"VPC-public"
- },
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route_table_association.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_route_table_association",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route_table_association.public[0]",
- "gateway_id":"null",
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_subnet.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_subnet",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_subnet.public[0]",
- "tags":{
- "Name":"VPC-public-azs"
- },
- "tags_all":{
- "Name":"VPC-public-azs"
- },
- "assign_ipv6_address_on_creation":"false",
- "availability_zone_id":"azs",
- "cidr_block":"10.0.0.0/16",
- "customer_owned_ipv4_pool":"null",
- "enable_dns64":"false",
- "enable_lni_at_device_index":"null",
- "enable_resource_name_dns_a_record_on_launch":"false",
- "enable_resource_name_dns_aaaa_record_on_launch":"false",
- "ipv6_cidr_block":"null",
- "ipv6_native":"false",
- "map_customer_owned_ip_on_launch":"null",
- "map_public_ip_on_launch":"false",
- "outpost_arn":"null",
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_vpc.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_vpc",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_vpc.this[0]",
- "tags":{
- "Name":"VPC"
- },
- "tags_all":{
- "Name":"VPC"
- },
- "assign_generated_ipv6_cidr_block":"null",
- "cidr_block":"10.0.0.0/16",
- "enable_dns_hostnames":"true",
- "enable_dns_support":"true",
- "instance_tenancy":"default",
- "ipv4_ipam_pool_id":"null",
- "ipv4_netmask_length":"null",
- "ipv6_ipam_pool_id":"null",
- "ipv6_netmask_length":"null"
- }
- }
- ],
- "variables":{
- "ingress_tcp_80_cidrs":{
- "value":"0.0.0.0/32"
}
- }
+ ]
}
\ No newline at end of file
diff --git a/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-cidr-from-property-tfplan-resources.json b/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-cidr-from-property-tfplan-resources.json
index 885b7551..29ecbd55 100644
--- a/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-cidr-from-property-tfplan-resources.json
+++ b/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-cidr-from-property-tfplan-resources.json
@@ -4,12 +4,54 @@
"resource_id":"aws_security_group.alb",
"resource_name":"alb",
"resource_type":"aws_security_group",
- "resource_properties":{
- "address":"aws_security_group.alb",
- "mode":"managed",
- "type":"aws_security_group",
- "name":"alb",
- "provider_config_key":"aws",
+ "resource_values":{
+ "description":"Allow access HTTP and SSH traffic",
+ "ingress":[
+ {
+ "cidr_blocks":[
+ "0.0.0.0/32"
+ ],
+ "description":"HTTP access to ALB",
+ "from_port":"80",
+ "ipv6_cidr_blocks":[
+
+ ],
+ "prefix_list_ids":[
+
+ ],
+ "protocol":"tcp",
+ "security_groups":[
+
+ ],
+ "self":"false",
+ "to_port":"80"
+ },
+ {
+ "cidr_blocks":[
+ "255.255.255.0/32"
+ ],
+ "description":"SSH access access to ALB",
+ "from_port":"22",
+ "ipv6_cidr_blocks":[
+
+ ],
+ "prefix_list_ids":[
+
+ ],
+ "protocol":"tcp",
+ "security_groups":[
+
+ ],
+ "self":"false",
+ "to_port":"22"
+ }
+ ],
+ "name":"ALB SG",
+ "revoke_rules_on_delete":"false",
+ "tags":"null",
+ "timeouts":"null"
+ },
+ "resource_configuration":{
"expressions":{
"description":{
"constant_value":"Allow access HTTP and SSH traffic"
@@ -29,379 +71,8 @@
"module.vpc"
]
}
- },
- "schema_version":"1",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"aws_security_group.alb",
- "egress":[
-
- ],
- "ingress":[
- {
- "cidr_blocks":[
- "0.0.0.0/32"
- ],
- "description":"HTTP access to ALB",
- "from_port":"80",
- "ipv6_cidr_blocks":[
-
- ],
- "prefix_list_ids":[
-
- ],
- "protocol":"tcp",
- "security_groups":[
-
- ],
- "self":"false",
- "to_port":"80"
- },
- {
- "cidr_blocks":[
- "255.255.255.0/32"
- ],
- "description":"SSH access access to ALB",
- "from_port":"22",
- "ipv6_cidr_blocks":[
-
- ],
- "prefix_list_ids":[
-
- ],
- "protocol":"tcp",
- "security_groups":[
-
- ],
- "self":"false",
- "to_port":"22"
- }
- ],
- "tags_all":{
-
- },
- "description":"Allow access HTTP and SSH traffic",
- "name":"ALB SG",
- "revoke_rules_on_delete":"false",
- "tags":"null",
- "timeouts":"null"
}
}
- },
- {
- "resource_id":"module.alb.aws_lb.this",
- "resource_name":"module.alb.this",
- "resource_type":"aws_lb",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.alb.aws_lb.this[0]",
- "access_logs":[
-
- ],
- "security_groups":[
-
- ],
- "subnet_mapping":[
-
- ],
- "subnets":[
-
- ],
- "tags":{
- "Name":"alb"
- },
- "tags_all":{
- "Name":"alb"
- },
- "timeouts":{
- "create":"10m",
- "delete":"10m",
- "update":"10m"
- },
- "customer_owned_ipv4_pool":"null",
- "desync_mitigation_mode":"defensive",
- "drop_invalid_header_fields":"false",
- "enable_cross_zone_load_balancing":"null",
- "enable_deletion_protection":"false",
- "enable_http2":"true",
- "enable_tls_version_and_cipher_suite_headers":"false",
- "enable_waf_fail_open":"false",
- "enable_xff_client_port":"false",
- "idle_timeout":"900",
- "internal":"false",
- "ip_address_type":"ipv4",
- "load_balancer_type":"application",
- "name":"alb",
- "name_prefix":"null",
- "preserve_host_header":"false",
- "xff_header_processing_mode":"append"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_network_acl.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_default_network_acl",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_default_network_acl.this[0]",
- "egress":[
- {
- "action":"allow",
- "cidr_block":"",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"::/0",
- "protocol":"-1",
- "rule_no":"101",
- "to_port":"0"
- },
- {
- "action":"allow",
- "cidr_block":"0.0.0.0/32",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"",
- "protocol":"-1",
- "rule_no":"100",
- "to_port":"0"
- }
- ],
- "ingress":[
- {
- "action":"allow",
- "cidr_block":"",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"::/0",
- "protocol":"-1",
- "rule_no":"101",
- "to_port":"0"
- },
- {
- "action":"allow",
- "cidr_block":"0.0.0.0/32",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"",
- "protocol":"-1",
- "rule_no":"100",
- "to_port":"0"
- }
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "subnet_ids":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_route_table.default",
- "resource_name":"module.vpc.default",
- "resource_type":"aws_default_route_table",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_default_route_table.default[0]",
- "route":[
-
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "timeouts":{
- "create":"5m",
- "update":"5m"
- },
- "propagating_vgws":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_security_group.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_default_security_group",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_default_security_group.this[0]",
- "egress":[
-
- ],
- "ingress":[
-
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "revoke_rules_on_delete":"false"
- }
- },
- {
- "resource_id":"module.vpc.aws_internet_gateway.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_internet_gateway",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_internet_gateway.this[0]",
- "tags":{
- "Name":"VPC"
- },
- "tags_all":{
- "Name":"VPC"
- },
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route.public_internet_gateway",
- "resource_name":"module.vpc.public_internet_gateway",
- "resource_type":"aws_route",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route.public_internet_gateway[0]",
- "timeouts":{
- "create":"5m",
- "delete":"null",
- "update":"null"
- },
- "carrier_gateway_id":"null",
- "core_network_arn":"null",
- "destination_cidr_block":"0.0.0.0/32",
- "destination_ipv6_cidr_block":"null",
- "destination_prefix_list_id":"null",
- "egress_only_gateway_id":"null",
- "local_gateway_id":"null",
- "nat_gateway_id":"null",
- "transit_gateway_id":"null",
- "vpc_endpoint_id":"null",
- "vpc_peering_connection_id":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route_table.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_route_table",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route_table.public[0]",
- "propagating_vgws":[
-
- ],
- "route":[
-
- ],
- "tags":{
- "Name":"VPC-public"
- },
- "tags_all":{
- "Name":"VPC-public"
- },
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route_table_association.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_route_table_association",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route_table_association.public[0]",
- "gateway_id":"null",
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_subnet.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_subnet",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_subnet.public[0]",
- "tags":{
- "Name":"VPC-public-azs"
- },
- "tags_all":{
- "Name":"VPC-public-azs"
- },
- "assign_ipv6_address_on_creation":"false",
- "availability_zone_id":"azs",
- "cidr_block":"10.0.0.0/16",
- "customer_owned_ipv4_pool":"null",
- "enable_dns64":"false",
- "enable_lni_at_device_index":"null",
- "enable_resource_name_dns_a_record_on_launch":"false",
- "enable_resource_name_dns_aaaa_record_on_launch":"false",
- "ipv6_cidr_block":"null",
- "ipv6_native":"false",
- "map_customer_owned_ip_on_launch":"null",
- "map_public_ip_on_launch":"false",
- "outpost_arn":"null",
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_vpc.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_vpc",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_vpc.this[0]",
- "tags":{
- "Name":"VPC"
- },
- "tags_all":{
- "Name":"VPC"
- },
- "assign_generated_ipv6_cidr_block":"null",
- "cidr_block":"10.0.0.0/16",
- "enable_dns_hostnames":"true",
- "enable_dns_support":"true",
- "instance_tenancy":"default",
- "ipv4_ipam_pool_id":"null",
- "ipv4_netmask_length":"null",
- "ipv6_ipam_pool_id":"null",
- "ipv6_netmask_length":"null"
- }
- }
- ],
- "variables":{
- "ingress_tcp_22_cidrs":{
- "value":"22.22.22.22/32"
- },
- "ingress_tcp_80_cidrs":{
- "value":"0.0.0.0/32"
}
- }
+ ]
}
\ No newline at end of file
diff --git a/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-cidr-from-rule-tfplan-resources.json b/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-cidr-from-rule-tfplan-resources.json
index b17331c0..bee3ee04 100644
--- a/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-cidr-from-rule-tfplan-resources.json
+++ b/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-cidr-from-rule-tfplan-resources.json
@@ -4,12 +4,14 @@
"resource_id":"aws_security_group.alb",
"resource_name":"alb",
"resource_type":"aws_security_group",
- "resource_properties":{
- "address":"aws_security_group.alb",
- "mode":"managed",
- "type":"aws_security_group",
- "name":"alb",
- "provider_config_key":"aws",
+ "resource_values":{
+ "description":"Allow access traffic to ALB",
+ "name":"ALB SG",
+ "revoke_rules_on_delete":"false",
+ "tags":"null",
+ "timeouts":"null"
+ },
+ "resource_configuration":{
"expressions":{
"description":{
"constant_value":"Allow access traffic to ALB"
@@ -23,27 +25,6 @@
"module.vpc"
]
}
- },
- "schema_version":"1",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"aws_security_group.alb",
- "egress":[
-
- ],
- "ingress":[
-
- ],
- "tags_all":{
-
- },
- "description":"Allow access traffic to ALB",
- "name":"ALB SG",
- "revoke_rules_on_delete":"false",
- "tags":"null",
- "timeouts":"null"
}
}
},
@@ -51,12 +32,22 @@
"resource_id":"aws_security_group_rule.http-ingress-1",
"resource_name":"http-ingress-1",
"resource_type":"aws_security_group_rule",
- "resource_properties":{
- "address":"aws_security_group_rule.http-ingress-1",
- "mode":"managed",
- "type":"aws_security_group_rule",
- "name":"http-ingress-1",
- "provider_config_key":"aws",
+ "resource_values":{
+ "cidr_blocks":[
+ "255.255.255.0/32",
+ "255.255.255.1/32"
+ ],
+ "description":"Allows inbound traffic through port 80",
+ "from_port":"80",
+ "ipv6_cidr_blocks":"null",
+ "prefix_list_ids":"null",
+ "protocol":"tcp",
+ "self":"false",
+ "timeouts":"null",
+ "to_port":"80",
+ "type":"ingress"
+ },
+ "resource_configuration":{
"expressions":{
"cidr_blocks":{
"references":[
@@ -84,26 +75,6 @@
"type":{
"constant_value":"ingress"
}
- },
- "schema_version":"2",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"2",
- "resource_address":"aws_security_group_rule.http-ingress-1",
- "cidr_blocks":[
- "255.255.255.0/32",
- "255.255.255.1/32"
- ],
- "description":"Allows inbound traffic through port 80",
- "from_port":"80",
- "ipv6_cidr_blocks":"null",
- "prefix_list_ids":"null",
- "protocol":"tcp",
- "self":"false",
- "timeouts":"null",
- "to_port":"80",
- "type":"ingress"
}
}
},
@@ -111,12 +82,21 @@
"resource_id":"aws_security_group_rule.http-ingress-2",
"resource_name":"http-ingress-2",
"resource_type":"aws_security_group_rule",
- "resource_properties":{
- "address":"aws_security_group_rule.http-ingress-2",
- "mode":"managed",
- "type":"aws_security_group_rule",
- "name":"http-ingress-2",
- "provider_config_key":"aws",
+ "resource_values":{
+ "cidr_blocks":[
+ "255.255.255.2/32"
+ ],
+ "description":"Allows inbound traffic through port 443",
+ "from_port":"443",
+ "ipv6_cidr_blocks":"null",
+ "prefix_list_ids":"null",
+ "protocol":"tcp",
+ "self":"false",
+ "timeouts":"null",
+ "to_port":"443",
+ "type":"ingress"
+ },
+ "resource_configuration":{
"expressions":{
"cidr_blocks":{
"references":[
@@ -144,25 +124,6 @@
"type":{
"constant_value":"ingress"
}
- },
- "schema_version":"2",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"2",
- "resource_address":"aws_security_group_rule.http-ingress-2",
- "cidr_blocks":[
- "255.255.255.2/32"
- ],
- "description":"Allows inbound traffic through port 443",
- "from_port":"443",
- "ipv6_cidr_blocks":"null",
- "prefix_list_ids":"null",
- "protocol":"tcp",
- "self":"false",
- "timeouts":"null",
- "to_port":"443",
- "type":"ingress"
}
}
},
@@ -170,12 +131,21 @@
"resource_id":"aws_security_group_rule.http-ingress-3",
"resource_name":"http-ingress-3",
"resource_type":"aws_security_group_rule",
- "resource_properties":{
- "address":"aws_security_group_rule.http-ingress-3",
- "mode":"managed",
- "type":"aws_security_group_rule",
- "name":"http-ingress-3",
- "provider_config_key":"aws",
+ "resource_values":{
+ "cidr_blocks":[
+ "0.0.0.0/32"
+ ],
+ "description":"Allows inbound traffic through port 443",
+ "from_port":"0",
+ "ipv6_cidr_blocks":"null",
+ "prefix_list_ids":"null",
+ "protocol":"icmp",
+ "self":"false",
+ "timeouts":"null",
+ "to_port":"0",
+ "type":"ingress"
+ },
+ "resource_configuration":{
"expressions":{
"cidr_blocks":{
"references":[
@@ -203,346 +173,8 @@
"type":{
"constant_value":"ingress"
}
- },
- "schema_version":"2",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"2",
- "resource_address":"aws_security_group_rule.http-ingress-3",
- "cidr_blocks":[
- "0.0.0.0/32"
- ],
- "description":"Allows inbound traffic through port 443",
- "from_port":"0",
- "ipv6_cidr_blocks":"null",
- "prefix_list_ids":"null",
- "protocol":"icmp",
- "self":"false",
- "timeouts":"null",
- "to_port":"0",
- "type":"ingress"
}
}
- },
- {
- "resource_id":"module.alb.aws_lb.this",
- "resource_name":"module.alb.this",
- "resource_type":"aws_lb",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.alb.aws_lb.this[0]",
- "access_logs":[
-
- ],
- "security_groups":[
-
- ],
- "subnet_mapping":[
-
- ],
- "subnets":[
-
- ],
- "tags":{
- "Name":"alb"
- },
- "tags_all":{
- "Name":"alb"
- },
- "timeouts":{
- "create":"10m",
- "delete":"10m",
- "update":"10m"
- },
- "customer_owned_ipv4_pool":"null",
- "desync_mitigation_mode":"defensive",
- "drop_invalid_header_fields":"false",
- "enable_cross_zone_load_balancing":"null",
- "enable_deletion_protection":"false",
- "enable_http2":"true",
- "enable_tls_version_and_cipher_suite_headers":"false",
- "enable_waf_fail_open":"false",
- "enable_xff_client_port":"false",
- "idle_timeout":"900",
- "internal":"false",
- "ip_address_type":"ipv4",
- "load_balancer_type":"application",
- "name":"alb",
- "name_prefix":"null",
- "preserve_host_header":"false",
- "xff_header_processing_mode":"append"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_network_acl.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_default_network_acl",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_default_network_acl.this[0]",
- "egress":[
- {
- "action":"allow",
- "cidr_block":"",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"::/0",
- "protocol":"-1",
- "rule_no":"101",
- "to_port":"0"
- },
- {
- "action":"allow",
- "cidr_block":"0.0.0.0/0",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"",
- "protocol":"-1",
- "rule_no":"100",
- "to_port":"0"
- }
- ],
- "ingress":[
- {
- "action":"allow",
- "cidr_block":"",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"::/0",
- "protocol":"-1",
- "rule_no":"101",
- "to_port":"0"
- },
- {
- "action":"allow",
- "cidr_block":"0.0.0.0/0",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"",
- "protocol":"-1",
- "rule_no":"100",
- "to_port":"0"
- }
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "subnet_ids":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_route_table.default",
- "resource_name":"module.vpc.default",
- "resource_type":"aws_default_route_table",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_default_route_table.default[0]",
- "route":[
-
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "timeouts":{
- "create":"5m",
- "update":"5m"
- },
- "propagating_vgws":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_security_group.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_default_security_group",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_default_security_group.this[0]",
- "egress":[
-
- ],
- "ingress":[
-
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "revoke_rules_on_delete":"false"
- }
- },
- {
- "resource_id":"module.vpc.aws_internet_gateway.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_internet_gateway",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_internet_gateway.this[0]",
- "tags":{
- "Name":"VPC"
- },
- "tags_all":{
- "Name":"VPC"
- },
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route.public_internet_gateway",
- "resource_name":"module.vpc.public_internet_gateway",
- "resource_type":"aws_route",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route.public_internet_gateway[0]",
- "timeouts":{
- "create":"5m",
- "delete":"null",
- "update":"null"
- },
- "carrier_gateway_id":"null",
- "core_network_arn":"null",
- "destination_cidr_block":"0.0.0.0/0",
- "destination_ipv6_cidr_block":"null",
- "destination_prefix_list_id":"null",
- "egress_only_gateway_id":"null",
- "local_gateway_id":"null",
- "nat_gateway_id":"null",
- "transit_gateway_id":"null",
- "vpc_endpoint_id":"null",
- "vpc_peering_connection_id":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route_table.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_route_table",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route_table.public[0]",
- "propagating_vgws":[
-
- ],
- "route":[
-
- ],
- "tags":{
- "Name":"VPC-public"
- },
- "tags_all":{
- "Name":"VPC-public"
- },
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route_table_association.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_route_table_association",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route_table_association.public[0]",
- "gateway_id":"null",
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_subnet.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_subnet",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_subnet.public[0]",
- "tags":{
- "Name":"VPC-public-azs"
- },
- "tags_all":{
- "Name":"VPC-public-azs"
- },
- "assign_ipv6_address_on_creation":"false",
- "availability_zone_id":"azs",
- "cidr_block":"10.0.0.0/16",
- "customer_owned_ipv4_pool":"null",
- "enable_dns64":"false",
- "enable_lni_at_device_index":"null",
- "enable_resource_name_dns_a_record_on_launch":"false",
- "enable_resource_name_dns_aaaa_record_on_launch":"false",
- "ipv6_cidr_block":"null",
- "ipv6_native":"false",
- "map_customer_owned_ip_on_launch":"null",
- "map_public_ip_on_launch":"false",
- "outpost_arn":"null",
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_vpc.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_vpc",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_vpc.this[0]",
- "tags":{
- "Name":"VPC"
- },
- "tags_all":{
- "Name":"VPC"
- },
- "assign_generated_ipv6_cidr_block":"null",
- "cidr_block":"10.0.0.0/16",
- "enable_dns_hostnames":"true",
- "enable_dns_support":"true",
- "instance_tenancy":"default",
- "ipv4_ipam_pool_id":"null",
- "ipv4_netmask_length":"null",
- "ipv6_ipam_pool_id":"null",
- "ipv6_netmask_length":"null"
- }
- }
- ],
- "variables":{
- "ingress_icmp_ip":{
- "value":"0.0.0.0"
- },
- "ingress_tcp_443_ip":{
- "value":"25.0.16.92"
- },
- "ingress_tcp_80_cidrs":{
- "value":[
- "255.255.255.0/32",
- "255.255.255.1/32"
- ]
}
- }
+ ]
}
\ No newline at end of file
diff --git a/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-security-groups-tfplan-resources.json b/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-security-groups-tfplan-resources.json
index e0839b47..57cfa8b3 100644
--- a/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-security-groups-tfplan-resources.json
+++ b/slp_tfplan/tests/resources/tfplan/resources/ingress-multiple-security-groups-tfplan-resources.json
@@ -4,12 +4,23 @@
"resource_id":"aws_security_group.alb",
"resource_name":"alb",
"resource_type":"aws_security_group",
- "resource_properties":{
- "address":"aws_security_group.alb",
- "mode":"managed",
- "type":"aws_security_group",
- "name":"alb",
- "provider_config_key":"aws",
+ "resource_values":{
+ "egress":[
+
+ ],
+ "ingress":[
+
+ ],
+ "tags_all":{
+
+ },
+ "description":"Allow access traffic to ALB",
+ "name":"ALB SG",
+ "revoke_rules_on_delete":"false",
+ "tags":"null",
+ "timeouts":"null"
+ },
+ "resource_configuration":{
"expressions":{
"description":{
"constant_value":"Allow access traffic to ALB"
@@ -23,27 +34,6 @@
"module.vpc"
]
}
- },
- "schema_version":"1",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"aws_security_group.alb",
- "egress":[
-
- ],
- "ingress":[
-
- ],
- "tags_all":{
-
- },
- "description":"Allow access traffic to ALB",
- "name":"ALB SG",
- "revoke_rules_on_delete":"false",
- "tags":"null",
- "timeouts":"null"
}
}
},
@@ -51,12 +41,41 @@
"resource_id":"aws_security_group.alb2",
"resource_name":"alb2",
"resource_type":"aws_security_group",
- "resource_properties":{
- "address":"aws_security_group.alb2",
- "mode":"managed",
- "type":"aws_security_group",
- "name":"alb2",
- "provider_config_key":"aws",
+ "resource_values":{
+ "egress":[
+
+ ],
+ "ingress":[
+ {
+ "cidr_blocks":[
+ "255.255.0.0/32"
+ ],
+ "description":"HTTP access from ALB",
+ "from_port":"80",
+ "ipv6_cidr_blocks":[
+
+ ],
+ "prefix_list_ids":[
+
+ ],
+ "protocol":"tcp",
+ "security_groups":[
+
+ ],
+ "self":"false",
+ "to_port":"80"
+ }
+ ],
+ "tags_all":{
+
+ },
+ "description":"Allow access traffic to ALB",
+ "name":"ALB SG",
+ "revoke_rules_on_delete":"false",
+ "tags":"null",
+ "timeouts":"null"
+ },
+ "resource_configuration":{
"expressions":{
"description":{
"constant_value":"Allow access traffic to ALB"
@@ -87,45 +106,6 @@
"module.vpc"
]
}
- },
- "schema_version":"1",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"aws_security_group.alb2",
- "egress":[
-
- ],
- "ingress":[
- {
- "cidr_blocks":[
- "255.255.0.0/32"
- ],
- "description":"HTTP access from ALB",
- "from_port":"80",
- "ipv6_cidr_blocks":[
-
- ],
- "prefix_list_ids":[
-
- ],
- "protocol":"tcp",
- "security_groups":[
-
- ],
- "self":"false",
- "to_port":"80"
- }
- ],
- "tags_all":{
-
- },
- "description":"Allow access traffic to ALB",
- "name":"ALB SG",
- "revoke_rules_on_delete":"false",
- "tags":"null",
- "timeouts":"null"
}
}
},
@@ -133,12 +113,21 @@
"resource_id":"aws_security_group_rule.http-ingress-1",
"resource_name":"http-ingress-1",
"resource_type":"aws_security_group_rule",
- "resource_properties":{
- "address":"aws_security_group_rule.http-ingress-1",
- "mode":"managed",
- "type":"aws_security_group_rule",
- "name":"http-ingress-1",
- "provider_config_key":"aws",
+ "resource_values":{
+ "cidr_blocks":[
+ "0.0.0.0/24"
+ ],
+ "description":"Allows inbound traffic through port 80",
+ "from_port":"80",
+ "ipv6_cidr_blocks":"null",
+ "prefix_list_ids":"null",
+ "protocol":"tcp",
+ "self":"false",
+ "timeouts":"null",
+ "to_port":"80",
+ "type":"ingress"
+ },
+ "resource_configuration":{
"expressions":{
"cidr_blocks":{
"constant_value":[
@@ -166,332 +155,8 @@
"type":{
"constant_value":"ingress"
}
- },
- "schema_version":"2",
- "planned_values":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"2",
- "resource_address":"aws_security_group_rule.http-ingress-1",
- "cidr_blocks":[
- "0.0.0.0/24"
- ],
- "description":"Allows inbound traffic through port 80",
- "from_port":"80",
- "ipv6_cidr_blocks":"null",
- "prefix_list_ids":"null",
- "protocol":"tcp",
- "self":"false",
- "timeouts":"null",
- "to_port":"80",
- "type":"ingress"
}
}
- },
- {
- "resource_id":"module.alb.aws_lb.this",
- "resource_name":"module.alb.this",
- "resource_type":"aws_lb",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.alb.aws_lb.this[0]",
- "access_logs":[
-
- ],
- "security_groups":[
-
- ],
- "subnet_mapping":[
-
- ],
- "subnets":[
-
- ],
- "tags":{
- "Name":"alb"
- },
- "tags_all":{
- "Name":"alb"
- },
- "timeouts":{
- "create":"10m",
- "delete":"10m",
- "update":"10m"
- },
- "customer_owned_ipv4_pool":"null",
- "desync_mitigation_mode":"defensive",
- "drop_invalid_header_fields":"false",
- "enable_cross_zone_load_balancing":"null",
- "enable_deletion_protection":"false",
- "enable_http2":"true",
- "enable_tls_version_and_cipher_suite_headers":"false",
- "enable_waf_fail_open":"false",
- "enable_xff_client_port":"false",
- "idle_timeout":"900",
- "internal":"false",
- "ip_address_type":"ipv4",
- "load_balancer_type":"application",
- "name":"alb",
- "name_prefix":"null",
- "preserve_host_header":"false",
- "xff_header_processing_mode":"append"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_network_acl.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_default_network_acl",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_default_network_acl.this[0]",
- "egress":[
- {
- "action":"allow",
- "cidr_block":"",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"::/0",
- "protocol":"-1",
- "rule_no":"101",
- "to_port":"0"
- },
- {
- "action":"allow",
- "cidr_block":"0.0.0.0/0",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"",
- "protocol":"-1",
- "rule_no":"100",
- "to_port":"0"
- }
- ],
- "ingress":[
- {
- "action":"allow",
- "cidr_block":"",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"::/0",
- "protocol":"-1",
- "rule_no":"101",
- "to_port":"0"
- },
- {
- "action":"allow",
- "cidr_block":"0.0.0.0/0",
- "from_port":"0",
- "icmp_code":"null",
- "icmp_type":"null",
- "ipv6_cidr_block":"",
- "protocol":"-1",
- "rule_no":"100",
- "to_port":"0"
- }
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "subnet_ids":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_route_table.default",
- "resource_name":"module.vpc.default",
- "resource_type":"aws_default_route_table",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_default_route_table.default[0]",
- "route":[
-
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "timeouts":{
- "create":"5m",
- "update":"5m"
- },
- "propagating_vgws":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_default_security_group.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_default_security_group",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_default_security_group.this[0]",
- "egress":[
-
- ],
- "ingress":[
-
- ],
- "tags":{
- "Name":"VPC-default"
- },
- "tags_all":{
- "Name":"VPC-default"
- },
- "revoke_rules_on_delete":"false"
- }
- },
- {
- "resource_id":"module.vpc.aws_internet_gateway.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_internet_gateway",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_internet_gateway.this[0]",
- "tags":{
- "Name":"VPC"
- },
- "tags_all":{
- "Name":"VPC"
- },
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route.public_internet_gateway",
- "resource_name":"module.vpc.public_internet_gateway",
- "resource_type":"aws_route",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route.public_internet_gateway[0]",
- "timeouts":{
- "create":"5m",
- "delete":"null",
- "update":"null"
- },
- "carrier_gateway_id":"null",
- "core_network_arn":"null",
- "destination_cidr_block":"0.0.0.0/0",
- "destination_ipv6_cidr_block":"null",
- "destination_prefix_list_id":"null",
- "egress_only_gateway_id":"null",
- "local_gateway_id":"null",
- "nat_gateway_id":"null",
- "transit_gateway_id":"null",
- "vpc_endpoint_id":"null",
- "vpc_peering_connection_id":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route_table.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_route_table",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route_table.public[0]",
- "propagating_vgws":[
-
- ],
- "route":[
-
- ],
- "tags":{
- "Name":"VPC-public"
- },
- "tags_all":{
- "Name":"VPC-public"
- },
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_route_table_association.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_route_table_association",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"0",
- "resource_address":"module.vpc.aws_route_table_association.public[0]",
- "gateway_id":"null",
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_subnet.public",
- "resource_name":"module.vpc.public",
- "resource_type":"aws_subnet",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_subnet.public[0]",
- "tags":{
- "Name":"VPC-public-azs"
- },
- "tags_all":{
- "Name":"VPC-public-azs"
- },
- "assign_ipv6_address_on_creation":"false",
- "availability_zone_id":"azs",
- "cidr_block":"10.0.0.0/16",
- "customer_owned_ipv4_pool":"null",
- "enable_dns64":"false",
- "enable_lni_at_device_index":"null",
- "enable_resource_name_dns_a_record_on_launch":"false",
- "enable_resource_name_dns_aaaa_record_on_launch":"false",
- "ipv6_cidr_block":"null",
- "ipv6_native":"false",
- "map_customer_owned_ip_on_launch":"null",
- "map_public_ip_on_launch":"false",
- "outpost_arn":"null",
- "timeouts":"null"
- }
- },
- {
- "resource_id":"module.vpc.aws_vpc.this",
- "resource_name":"module.vpc.this",
- "resource_type":"aws_vpc",
- "resource_properties":{
- "resource_mode":"managed",
- "resource_provider_name":"registry.terraform.io/hashicorp/aws",
- "resource_schema_version":"1",
- "resource_address":"module.vpc.aws_vpc.this[0]",
- "tags":{
- "Name":"VPC"
- },
- "tags_all":{
- "Name":"VPC"
- },
- "assign_generated_ipv6_cidr_block":"null",
- "cidr_block":"10.0.0.0/16",
- "enable_dns_hostnames":"true",
- "enable_dns_support":"true",
- "instance_tenancy":"default",
- "ipv4_ipam_pool_id":"null",
- "ipv4_netmask_length":"null",
- "ipv6_ipam_pool_id":"null",
- "ipv6_netmask_length":"null"
- }
}
]
}
\ No newline at end of file
diff --git a/slp_tfplan/tests/unit/load/test_security_groups_loader.py b/slp_tfplan/tests/unit/load/test_security_groups_loader.py
index 04e0a074..c235c783 100644
--- a/slp_tfplan/tests/unit/load/test_security_groups_loader.py
+++ b/slp_tfplan/tests/unit/load/test_security_groups_loader.py
@@ -1,5 +1,7 @@
import json
-from unittest.mock import MagicMock
+from unittest.mock import MagicMock, patch
+
+from pytest import mark, param
from sl_util.sl_util.file_utils import get_byte_data
from slp_tfplan.slp_tfplan.load.security_groups_loader import SecurityGroupsLoader
@@ -13,9 +15,12 @@ def test_load_ingress_cidr_from_property(self):
# GIVEN a TFPlanOTM and a TFPlanResources
tf_plan_resources = json.loads(get_byte_data(ingress_cidr_from_property))
otm = MagicMock(security_groups=[])
+ graph = MagicMock()
# WHEN the SecurityGroupsLoader is called
- SecurityGroupsLoader(otm, tf_plan_resources).load()
+ sg_loader = SecurityGroupsLoader(otm, tf_plan_resources, graph)
+ with patch('slp_tfplan.slp_tfplan.matcher.sg_and_sgrules_matcher.SGAndSGRulesMatcher.match', return_value=[]):
+ sg_loader.load()
# THEN the TFPlanOTM should have the expected SecurityGroups
assert len(otm.security_groups) == 1
@@ -31,9 +36,12 @@ def test_load_multiple_ingress_cidr_from_property(self):
# GIVEN a TFPlanOTM and a TFPlanResources
tf_plan_resources = json.loads(get_byte_data(ingress_multiple_cidr_from_property))
otm = MagicMock(security_groups=[])
+ graph = MagicMock()
# WHEN the SecurityGroupsLoader is called
- SecurityGroupsLoader(otm, tf_plan_resources).load()
+ sg_loader = SecurityGroupsLoader(otm, tf_plan_resources, graph)
+ with patch('slp_tfplan.slp_tfplan.matcher.sg_and_sgrules_matcher.SGAndSGRulesMatcher.match', return_value=[]):
+ sg_loader.load()
# THEN the TFPlanOTM should have the expected SecurityGroups
assert len(otm.security_groups) == 1
@@ -51,13 +59,22 @@ def test_load_multiple_ingress_cidr_from_property(self):
assert otm.security_groups[0].ingress_cidr[1].from_port == '22'
assert otm.security_groups[0].ingress_cidr[1].to_port == '22'
- def test_load_multiple_ingress_cidr_from_rule(self):
+ @mark.parametrize('sg_rules_related', [param(
+ ["aws_security_group_rule.http-ingress-1",
+ "aws_security_group_rule.http-ingress-2",
+ "aws_security_group_rule.http-ingress-3"], id='sg rules related')])
+ def test_load_multiple_ingress_cidr_from_rule(self, sg_rules_related):
# GIVEN a TFPlanOTM and a TFPlanResources
tf_plan_resources = json.loads(get_byte_data(ingress_multiple_cidr_from_rule))
otm = MagicMock(security_groups=[])
+ graph = MagicMock()
# WHEN the SecurityGroupsLoader is called
- SecurityGroupsLoader(otm, tf_plan_resources).load()
+ sg_loader = SecurityGroupsLoader(otm, tf_plan_resources, graph)
+ with patch('slp_tfplan.slp_tfplan.matcher.sg_and_sgrules_matcher.SGAndSGRulesMatcher.match',
+ return_value=list(filter(lambda sg_rule: sg_rule['resource_id']
+ in sg_rules_related, sg_loader._sg_rules))):
+ sg_loader.load()
# THEN the TFPlanOTM should have the expected SecurityGroups
assert len(otm.security_groups) == 1
@@ -85,9 +102,10 @@ def test_load_multiple_security_groups(self):
# GIVEN a TFPlanOTM and a TFPlanResources
tf_plan_resources = json.loads(get_byte_data(ingress_multiple_security_groups))
otm = MagicMock(security_groups=[])
+ graph = MagicMock()
# WHEN the SecurityGroupsLoader is called
- SecurityGroupsLoader(otm, tf_plan_resources).load()
+ SecurityGroupsLoader(otm, tf_plan_resources, graph).load()
# THEN the TFPlanOTM should have the expected SecurityGroups
assert len(otm.security_groups) == 2
diff --git a/slp_tfplan/tests/unit/load/test_tfplan_loader.py b/slp_tfplan/tests/unit/load/test_tfplan_loader.py
index 70819746..ca0df787 100644
--- a/slp_tfplan/tests/unit/load/test_tfplan_loader.py
+++ b/slp_tfplan/tests/unit/load/test_tfplan_loader.py
@@ -7,12 +7,12 @@
from networkx import DiGraph
from pytest import raises, mark, param, fixture
+from sl_util.sl_util.str_utils import get_bytes
+from slp_base import LoadingIacFileError
from slp_tfplan.slp_tfplan.load.tfplan_loader import TFPlanLoader
from slp_tfplan.tests.resources import test_resource_paths
-from slp_base import LoadingIacFileError
+from slp_tfplan.tests.util.asserts import assert_resource_values
from slp_tfplan.tests.util.builders import build_tfplan, generate_resources, generate_child_modules
-from slp_tfplan.tests.util.asserts import assert_common_properties
-from sl_util.sl_util.str_utils import get_bytes
INVALID_YAML = test_resource_paths.invalid_yaml
TF_FILE_YAML_EXCEPTION = JSONDecodeError('HLC2 cannot be processed as JSON', doc='sample-doc', pos=0)
@@ -77,9 +77,7 @@ def test_load_no_modules(self, yaml_mock):
assert resource['resource_type'] == f'r{i}-type'
assert resource['resource_name'] == f'r{i}-name'
- properties = resource['resource_properties']
- assert_common_properties(properties)
- assert properties['resource_address'] == f'r{i}-addr'
+ assert_resource_values(resource['resource_values'])
@patch('yaml.load')
def test_load_only_modules(self, yaml_mock):
@@ -108,9 +106,7 @@ def test_load_only_modules(self, yaml_mock):
assert resource['resource_type'] == f'r{child_index}-type'
assert resource['resource_name'] == f'{module_address}.r{child_index}-name'
- properties = resource['resource_properties']
- assert properties['resource_address'] == f'r{child_index}-addr'
- assert_common_properties(properties)
+ assert_resource_values(resource['resource_values'])
resource_index += 1
@@ -138,9 +134,7 @@ def test_load_nested_modules(self, yaml_mock):
assert resource['resource_type'] == 'r1-type'
assert resource['resource_name'] == 'cm1-addr.cm1-addr.r1-name'
- properties = resource['resource_properties']
- assert properties['resource_address'] == 'r1-addr'
- assert_common_properties(properties)
+ assert_resource_values(resource['resource_values'])
@patch('yaml.load')
def test_load_complex_structure(self, yaml_mock):
@@ -165,9 +159,7 @@ def test_load_complex_structure(self, yaml_mock):
assert resource['resource_type'] == 'r1-type'
assert resource['resource_name'] == 'r1-name'
- properties = resource['resource_properties']
- assert properties['resource_address'] == 'r1-addr'
- assert_common_properties(properties)
+ assert_resource_values(resource['resource_values'])
# AND resource_type, resource_name and resource_properties from child modules are right
resource = resources[1]
@@ -175,9 +167,7 @@ def test_load_complex_structure(self, yaml_mock):
assert resource['resource_type'] == 'r1-type'
assert resource['resource_name'] == 'cm1-addr.r1-name'
- properties = resource['resource_properties']
- assert properties['resource_address'] == 'r1-addr'
- assert_common_properties(properties)
+ assert_resource_values(resource['resource_values'])
@patch('yaml.load')
def test_load_resources_same_name(self, yaml_mock):
diff --git a/slp_tfplan/tests/unit/matcher/strategies/test_component_security_group_match_strategies.py b/slp_tfplan/tests/unit/matcher/strategies/test_component_sg_match_strategies.py
similarity index 97%
rename from slp_tfplan/tests/unit/matcher/strategies/test_component_security_group_match_strategies.py
rename to slp_tfplan/tests/unit/matcher/strategies/test_component_sg_match_strategies.py
index c8dec675..70af4a24 100644
--- a/slp_tfplan/tests/unit/matcher/strategies/test_component_security_group_match_strategies.py
+++ b/slp_tfplan/tests/unit/matcher/strategies/test_component_sg_match_strategies.py
@@ -3,7 +3,7 @@
from pytest import mark, param
-from slp_tfplan.slp_tfplan.matcher.strategies.component_security_group_match_strategies import \
+from slp_tfplan.slp_tfplan.matcher.strategies.component_sg_match_strategies import \
ComponentMatchStrategySecurityGroupByGraphStrategy, ComponentSecurityGroupByLaunchTemplateStrategyMatchStrategy
diff --git a/slp_tfplan/tests/unit/matcher/strategies/test_match_strategy.py b/slp_tfplan/tests/unit/matcher/strategies/test_match_strategy.py
index 349c3ff8..f01109ec 100644
--- a/slp_tfplan/tests/unit/matcher/strategies/test_match_strategy.py
+++ b/slp_tfplan/tests/unit/matcher/strategies/test_match_strategy.py
@@ -19,11 +19,16 @@ def test_get_strategies(self):
component_sg_match_strategy_instances = match_strategy_container.component_sg_match_strategies
# AND all the instances for sg_match_strategies in MatchStrategyContainer
- sg_match_strategy_instances = match_strategy_container.sg_match_strategies
+ sg_match_strategy_instances = match_strategy_container.sg_sg_match_strategies
+
+ # AND all the instances for sg_rule_match_strategies in MatchStrategyContainer
+ sg_rule_match_strategy_instances = match_strategy_container.sg_sg_rule_match_strategies
# WHEN we merge all instances and extract their classes
- all_instance_classes = get_instance_classes(component_sg_match_strategy_instances) + \
- get_instance_classes(sg_match_strategy_instances)
+ all_instance_classes = \
+ get_instance_classes(component_sg_match_strategy_instances) + \
+ get_instance_classes(sg_match_strategy_instances) + \
+ get_instance_classes(sg_rule_match_strategy_instances)
# THEN the subclasses and the instances match
assert match_strategy_subclasses == all_instance_classes
diff --git a/slp_tfplan/tests/unit/matcher/strategies/test_security_group_match_strategies.py b/slp_tfplan/tests/unit/matcher/strategies/test_sg_sg_match_strategies.py
similarity index 97%
rename from slp_tfplan/tests/unit/matcher/strategies/test_security_group_match_strategies.py
rename to slp_tfplan/tests/unit/matcher/strategies/test_sg_sg_match_strategies.py
index a994fc70..75cc326a 100644
--- a/slp_tfplan/tests/unit/matcher/strategies/test_security_group_match_strategies.py
+++ b/slp_tfplan/tests/unit/matcher/strategies/test_sg_sg_match_strategies.py
@@ -2,7 +2,7 @@
from pytest import mark, param
-from slp_tfplan.slp_tfplan.matcher.strategies.security_group_match_strategies import \
+from slp_tfplan.slp_tfplan.matcher.strategies.sg_sg_match_strategies import \
SecurityGroupByGraphStrategy, SecurityGroupByConfigurationStrategy
from slp_tfplan.slp_tfplan.objects.tfplan_objects import SecurityGroup
diff --git a/slp_tfplan/tests/unit/matcher/strategies/test_sg_sgrule_match_strategies.py b/slp_tfplan/tests/unit/matcher/strategies/test_sg_sgrule_match_strategies.py
new file mode 100644
index 00000000..6e695fc1
--- /dev/null
+++ b/slp_tfplan/tests/unit/matcher/strategies/test_sg_sgrule_match_strategies.py
@@ -0,0 +1,58 @@
+from unittest.mock import Mock
+
+from slp_tfplan.slp_tfplan.matcher.strategies.sg_sg_rule_match_strategies import \
+ MatchSecurityGroupRuleBySecurityGroupIdStrategy, MatchSecurityGroupRuleByGraphStrategy
+
+_sg_1 = {'resource_id': 'SG1'}
+_sg_rule1 = {'resource_id': 'SG_R1', 'security_group_id': 'SG1'}
+_sg_rule2 = {'resource_id': 'SG_R2', 'security_group_id': 'SG2'}
+
+
+class TestMatchSecurityGroupRuleBySecurityGroupIdStrategy:
+
+ def test_is_related(self):
+ # GIVEN a sg rule with the security_group_id is equals to sg resource id
+ # WHEN MatchSecurityGroupRuleBySecurityGroupIdStrategy::are_related is called
+ result = MatchSecurityGroupRuleBySecurityGroupIdStrategy().are_related(_sg_1, _sg_rule1)
+
+ # THEN the strategy returns True
+ assert result is True
+
+ def test_not_related(self):
+ # GIVEN a sg rule with the security_group_id is distinct to sg resource id
+ # WHEN MatchSecurityGroupRuleBySecurityGroupIdStrategy::are_related is called
+ result = MatchSecurityGroupRuleBySecurityGroupIdStrategy().are_related(_sg_1, _sg_rule2)
+
+ # THEN the strategy returns False
+ assert result is False
+
+
+class TestMatchSecurityGroupRuleByGraphStrategy:
+
+ def test_no_graph_relationship_no_match(self):
+ # GIVEN any two mocked SGs
+ mocked_sgs = [Mock(), Mock()]
+
+ # AND a relationships_extractor which returns no relationships between them
+ relationships_extractor = Mock()
+ relationships_extractor.exist_valid_path = lambda sg_a, sg_b: False
+
+ # WHEN MatchSecurityGroupRuleByGraphStrategy::are_related is called
+ result = MatchSecurityGroupRuleByGraphStrategy() \
+ .are_related(*mocked_sgs, relationships_extractor=relationships_extractor)
+
+ # THEN the strategy returns False
+ assert result is False
+
+ def test_match_when_graph_relationship(self):
+ # GIVEN a mocked relationship from _sg_1 to _sg_rule1
+ relationships_extractor = Mock()
+ relationships_extractor.exist_valid_path = lambda sg_r, sg: \
+ (sg_r, sg) == (_sg_rule1['resource_id'], _sg_1['resource_id'])
+
+ # WHEN SecurityGroupByGraphStrategy::are_related is called
+ result = MatchSecurityGroupRuleByGraphStrategy().are_related(
+ _sg_1, _sg_rule1, relationships_extractor=relationships_extractor)
+
+ # THEN the strategy returns True
+ assert result is True
diff --git a/slp_tfplan/tests/unit/matcher/test_sg_and_sgrules_matcher.py b/slp_tfplan/tests/unit/matcher/test_sg_and_sgrules_matcher.py
new file mode 100644
index 00000000..63dd70f7
--- /dev/null
+++ b/slp_tfplan/tests/unit/matcher/test_sg_and_sgrules_matcher.py
@@ -0,0 +1,29 @@
+from unittest.mock import MagicMock
+
+from slp_tfplan.slp_tfplan.matcher import SGAndSGRulesMatcher
+
+sg_1 = MagicMock()
+sg_rule_1 = MagicMock()
+sg_rule_2 = MagicMock()
+
+
+def are_sgs_related(resource_1, resource_2, **kwargs):
+ # 'sg_1' related to 'sg_rule_1'
+ return resource_1 == sg_1 and resource_2 == sg_rule_1
+
+
+class TestSGAndSGRulesMatcher:
+
+ def test_sg_match(self):
+ # GIVEN a security group
+ # AND a list of security group rules
+ # AND a matcher that returns the relationship between them
+ matcher = SGAndSGRulesMatcher(sg_1, [sg_rule_1, sg_rule_2], MagicMock())
+ matcher._are_related = are_sgs_related
+
+ # WHEN SGAndSGRulesMatcher::match is called
+ related_sg_rule = matcher.match()
+
+ # THEN the related sg rules is only sg_rule_1
+ assert len(related_sg_rule) == 1
+ assert related_sg_rule[0] == sg_rule_1
diff --git a/slp_tfplan/tests/unit/transformers/test_attack_surface_calculator.py b/slp_tfplan/tests/unit/transformers/test_attack_surface_calculator.py
index 166de119..a41b1adc 100644
--- a/slp_tfplan/tests/unit/transformers/test_attack_surface_calculator.py
+++ b/slp_tfplan/tests/unit/transformers/test_attack_surface_calculator.py
@@ -2,7 +2,9 @@
from unittest.mock import MagicMock, Mock
import pytest
+from pytest import param
+from otm.otm.entity.trustzone import Trustzone
from slp_tfplan.slp_tfplan.matcher import ComponentsAndSGsMatcher
from slp_tfplan.slp_tfplan.objects.tfplan_objects import SecurityGroupCIDR, TFPlanComponent
from slp_tfplan.slp_tfplan.relationship.component_relationship_calculator import ComponentRelationshipCalculator, \
@@ -202,7 +204,7 @@ def test_ingress_dataflows(self,
# THE second component is the 'client' in the Internet trustzone
assert otm.components[1].id == expected_id
assert otm.components[1].type == 'client'
- assert otm.components[1].parent == 'Internet'
+ assert otm.components[1].parent == 'internet-trustzone-id'
# THE otm has 2 trustzones
assert len(otm.trustzones) == 2
@@ -344,6 +346,10 @@ def test_security_group_cidr_multiple_ips(self,
assert otm.components[1].id == expected_client_id
assert otm.components[1].name == expected_client_name
+ # AND the parents are the expected
+ assert otm.components[1].parent == 'internet-trustzone-id'
+ assert otm.components[0].parent == 'default-trustzone-id'
+
# AND the otm has 2 trustzones
assert len(otm.trustzones) == 2
@@ -455,3 +461,86 @@ def test_remove_parent_dataflows(self,
# AND it generates 1 dataflow
assert len(otm.dataflows) == 1
+
+ @pytest.mark.parametrize('parent_id', [
+ param('internet-trustzone-id', id='component_with_parent_and_no_previous_tz_internet')
+ ])
+ def test_add_attack_surface_trustzone_when_needed(self, parent_id):
+ # GIVEN an extra component with custom parent id
+ generic_client = build_mocked_component({
+ 'component_name': 'component_k',
+ 'tf_type': 'generic-client',
+ 'parent_id': parent_id
+ })
+ # AND the otm with 3 components
+ otm = build_mocked_otm([_component_a, _component_b, generic_client])
+
+ # AND the attack surface calculator
+ calculator = AttackSurfaceCalculator(
+ otm,
+ MagicMock(),
+ attack_surface_configuration)
+ # WHEN we add the attack surface trust zone
+ calculator.add_attack_surface_trustzone()
+ # THEN the trust zones are the expected
+ assert len(otm.trustzones) == 2
+ assert otm.trustzones[0].id == 'default-trustzone-id'
+ assert otm.trustzones[0].name == 'default-trustzone-name'
+ assert otm.trustzones[0].type == 'default-trustzone-type'
+ assert otm.trustzones[1].id == 'internet-trustzone-id'
+ assert otm.trustzones[1].name == 'Internet Trustzone'
+ assert otm.trustzones[1].type == 'Internet'
+ # AND the components are the expected
+ assert len(otm.components) == 3
+ assert otm.components[0].id == 'aws_type.component_a'
+ assert otm.components[0].parent == 'default-trustzone-id'
+ assert otm.components[1].id == 'aws_type.component_b'
+ assert otm.components[1].parent == 'default-trustzone-id'
+ assert otm.components[2].id == 'generic-client.component_k'
+ assert otm.components[2].parent == 'internet-trustzone-id'
+
+ @pytest.mark.parametrize('parent_id,extra_trustzone', [
+ param('internet-trustzone-id', internet_trustzone, id='component_with_parent_but_previous_tz'),
+ param('default-trustzone-id', internet_trustzone, id='no_component_with_parent_and_previous_tz'),
+ param('default-trustzone-id', None, id='no_component_with_parent_and_no_previous_tz_1tz'),
+ param('default-trustzone-id', Trustzone('99', 'dummy', type='00000'),
+ id='no_component_with_parent_and_no_previous_tz_2tz'),
+ ])
+ def test_add_attack_surface_trustzone_when_not_needed(self, parent_id, extra_trustzone: Trustzone):
+ # GIVEN a generic client with internet tz as parent
+ generic_client = build_mocked_component({
+ 'component_name': 'component_k',
+ 'tf_type': 'generic-client',
+ 'parent_id': parent_id
+ })
+ # AND the otm with 3 components
+ otm = build_mocked_otm([_component_a, _component_b, generic_client])
+
+ # AND an extra trust zone
+ if extra_trustzone:
+ otm.trustzones.append(extra_trustzone)
+
+ # AND the attack surface calculator
+ calculator = AttackSurfaceCalculator(
+ otm,
+ MagicMock(),
+ attack_surface_configuration)
+ # WHEN we add the attack surface trust zone
+ calculator.add_attack_surface_trustzone()
+ # THEN the trust zones are the expected
+ assert len(otm.trustzones) == 2 if extra_trustzone else 1
+ assert otm.trustzones[0].id == 'default-trustzone-id'
+ assert otm.trustzones[0].name == 'default-trustzone-name'
+ assert otm.trustzones[0].type == 'default-trustzone-type'
+ if extra_trustzone:
+ assert otm.trustzones[1].id == extra_trustzone.id
+ assert otm.trustzones[1].name == extra_trustzone.name
+ assert otm.trustzones[1].type == extra_trustzone.type
+ # AND the components are the expected
+ assert len(otm.components) == 3
+ assert otm.components[0].id == 'aws_type.component_a'
+ assert otm.components[0].parent == 'default-trustzone-id'
+ assert otm.components[1].id == 'aws_type.component_b'
+ assert otm.components[1].parent == 'default-trustzone-id'
+ assert otm.components[2].id == 'generic-client.component_k'
+ assert otm.components[2].parent == parent_id
diff --git a/slp_tfplan/tests/util/asserts.py b/slp_tfplan/tests/util/asserts.py
index fdc965a5..05d97393 100644
--- a/slp_tfplan/tests/util/asserts.py
+++ b/slp_tfplan/tests/util/asserts.py
@@ -24,13 +24,6 @@ def assert_parent(component: TFPlanComponent, parent_id: str = None):
##########
# TFPLAN #
##########
-def assert_common_properties(properties: {}):
- assert properties['resource_mode'] == 'managed'
- assert properties['resource_provider_name'] == 'registry.terraform.io/hashicorp/aws'
- assert properties['resource_schema_version'] == 0
+def assert_resource_values(properties: {}):
assert properties['val1'] == 'value1'
- assert properties['senval1'] == 'value1'
-
-
-def assert_resource_id(resource: {}):
- assert resource['resource_id'] == resource['properties']['resource_address']
+ assert properties['val2'] == 'value2'
diff --git a/slp_visio/resources/schemas/diagram_mapping_schema.json b/slp_visio/resources/schemas/diagram_mapping_schema.json
index de68385b..a74a22a4 100644
--- a/slp_visio/resources/schemas/diagram_mapping_schema.json
+++ b/slp_visio/resources/schemas/diagram_mapping_schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Mapping File",
"type": "object",
- "required": ["trustzones", "components", "dataflows"],
+ "required": ["trustzones", "components"],
"properties": {
"trustzones": {
"type": "array",
@@ -27,14 +27,9 @@
}
}
},
- "dataflows": {
- "type": "array",
- "items": {
- "type": "object",
- "required": [],
- "properties": {}
- }
- }
+ "configuration":{
+ "$ref":"#/definitions/Configuration"
+ }
},
"definitions": {
"query": {
@@ -73,6 +68,32 @@
"$regex"
],
"title":"RegExClass"
+ },
+ "Configuration":{
+ "type":"object",
+ "additionalProperties":false,
+ "properties":{
+ "catch_all":{
+ "anyOf": [
+ {
+ "type":"string"
+ },
+ {
+ "type":"boolean"
+ }
+ ]
+ },
+ "skip":{
+ "type":"array",
+ "items":{
+ "type":"string"
+ }
+ }
+ },
+ "required":[
+
+ ],
+ "title":"Configuration"
}
}
}
\ No newline at end of file
diff --git a/slp_visio/slp_visio/load/objects/diagram_objects.py b/slp_visio/slp_visio/load/objects/diagram_objects.py
index d84314be..53683ae1 100644
--- a/slp_visio/slp_visio/load/objects/diagram_objects.py
+++ b/slp_visio/slp_visio/load/objects/diagram_objects.py
@@ -34,13 +34,15 @@ def get_component_category(self):
def __str__(self) -> str:
return '{id: ' + str(self.id) + ', ' \
- + 'name: ' + self.name + ', ' \
- + 'parent_id: ' + str(self.parent.id if self.parent else None) + '}'
+ + 'name: ' + self.name + ', ' \
+ + 'type: ' + self.type + ', ' \
+ + 'parent_id: ' + str(self.parent.id if self.parent else None) + '}'
def __repr__(self) -> str:
return '{id: ' + str(self.id) + ', ' \
- + 'name: ' + self.name + ', ' \
- + 'parent_id: ' + str(self.parent.id if self.parent else None) + '}'
+ + 'name: ' + self.name + ', ' \
+ + 'type: ' + self.type + ', ' \
+ + 'parent_id: ' + str(self.parent.id if self.parent else None) + '}'
class DiagramConnector:
diff --git a/slp_visio/slp_visio/load/strategies/component/impl/create_component_by_master_page_name.py b/slp_visio/slp_visio/load/strategies/component/impl/create_component_by_master_page_name.py
index 0c647a3a..28bdffe0 100644
--- a/slp_visio/slp_visio/load/strategies/component/impl/create_component_by_master_page_name.py
+++ b/slp_visio/slp_visio/load/strategies/component/impl/create_component_by_master_page_name.py
@@ -21,12 +21,13 @@ class CreateComponentByMasterPageName(CreateComponentStrategy):
def create_component(self, shape: Shape, origin=None, representer: VisioShapeRepresenter = None) \
-> Optional[DiagramComponent]:
- name = get_shape_text(shape.child_shapes) or ComponentIdentifierByMasterPageName().get_master_page_name(shape)
- if name:
+ if ComponentIdentifierByMasterPageName().get_master_page_name(shape):
+ component_type = self.get_component_type(shape)
+ name = get_shape_text(shape.child_shapes) or normalize_label(component_type)
return DiagramComponent(
id=shape.ID,
name=normalize_label(name),
- type=normalize_label(self.get_component_type(shape)),
+ type=component_type,
origin=origin,
representation=representer.build_representation(shape),
unique_id=get_unique_id_text(shape))
@@ -36,4 +37,4 @@ def get_component_type(shape):
if CreateComponentByShapeText.is_lucid(shape):
return CreateComponentByShapeText.get_lucid_component_type(shape)
else:
- return ComponentIdentifierByMasterPageName().get_master_page_name(shape) #
+ return ComponentIdentifierByMasterPageName().get_master_page_name(shape)
diff --git a/slp_visio/slp_visio/load/strategies/component/impl/create_component_by_shape_text.py b/slp_visio/slp_visio/load/strategies/component/impl/create_component_by_shape_text.py
index be2fb0ef..402b6389 100644
--- a/slp_visio/slp_visio/load/strategies/component/impl/create_component_by_shape_text.py
+++ b/slp_visio/slp_visio/load/strategies/component/impl/create_component_by_shape_text.py
@@ -25,7 +25,7 @@ def create_component(self, shape: Shape, origin=None, representer: VisioShapeRep
return DiagramComponent(
id=shape.ID,
name=normalize_label(name),
- type=normalize_label(self.get_component_type(shape)),
+ type=self.get_component_type(shape),
origin=origin,
representation=representer.build_representation(shape),
unique_id=get_unique_id_text(shape))
diff --git a/slp_visio/slp_visio/load/strategies/connector/impl/create_connector_by_connects.py b/slp_visio/slp_visio/load/strategies/connector/impl/create_connector_by_connects.py
index 6529d2ec..165ba5d9 100644
--- a/slp_visio/slp_visio/load/strategies/connector/impl/create_connector_by_connects.py
+++ b/slp_visio/slp_visio/load/strategies/connector/impl/create_connector_by_connects.py
@@ -6,6 +6,7 @@
from slp_visio.slp_visio.load.objects.diagram_objects import DiagramConnector
from slp_visio.slp_visio.load.strategies.connector.create_connector_strategy import CreateConnectorStrategy, \
CreateConnectorStrategyContainer
+from slp_visio.slp_visio.util.visio import is_bidirectional_connector, connector_has_arrow_in_origin
@register(CreateConnectorStrategyContainer.visio_strategies)
@@ -19,10 +20,10 @@ def create_connector(self, shape: Shape, components=None) -> Optional[DiagramCon
if not self.are_two_different_shapes(connected_shapes):
return None
- if self.is_bidirectional_connector(shape):
+ if is_bidirectional_connector(shape):
return DiagramConnector(shape.ID, connected_shapes[0].shape_id, connected_shapes[1].shape_id, True)
- has_arrow_in_origin = self.connector_has_arrow_in_origin(shape)
+ has_arrow_in_origin = connector_has_arrow_in_origin(shape)
if (not has_arrow_in_origin and self.is_created_from(connected_shapes[0])) \
or (has_arrow_in_origin and self.is_created_from(connected_shapes[1])):
@@ -39,21 +40,6 @@ def are_two_different_shapes(connected_shapes) -> bool:
return False
return True
- # if its master name includes 'Double Arrow' or has arrows defined in both ends
- @staticmethod
- def is_bidirectional_connector(shape) -> bool:
- if shape.master_page.name is not None and 'Double Arrow' in shape.master_page.name:
- return True
- for arrow_value in [shape.cell_value(att) for att in ['BeginArrow', 'EndArrow']]:
- if arrow_value is None or not str(arrow_value).isnumeric() or arrow_value == '0':
- return False
- return True
-
- @staticmethod
- def connector_has_arrow_in_origin(shape) -> bool:
- begin_arrow_value = shape.cell_value('BeginArrow')
- return begin_arrow_value is not None and str(begin_arrow_value).isnumeric() and begin_arrow_value != '0'
-
@staticmethod
def is_created_from(connector) -> bool:
return connector.from_rel == 'BeginX'
diff --git a/slp_visio/slp_visio/load/strategies/connector/impl/create_connector_by_line_coordinates.py b/slp_visio/slp_visio/load/strategies/connector/impl/create_connector_by_line_coordinates.py
index d48d706b..6897bbdd 100644
--- a/slp_visio/slp_visio/load/strategies/connector/impl/create_connector_by_line_coordinates.py
+++ b/slp_visio/slp_visio/load/strategies/connector/impl/create_connector_by_line_coordinates.py
@@ -8,6 +8,7 @@
from slp_visio.slp_visio.load.representation.simple_component_representer import SimpleComponentRepresenter
from slp_visio.slp_visio.load.strategies.connector.create_connector_strategy import CreateConnectorStrategy, \
CreateConnectorStrategyContainer
+from slp_visio.slp_visio.util.visio import is_bidirectional_connector
@register(CreateConnectorStrategyContainer.visio_strategies)
@@ -22,7 +23,7 @@ class CreateConnectorByLineCoordinates(CreateConnectorStrategy):
def __init__(self):
self.tolerance = 0.09
- self.representer: SimpleComponentRepresenter() = SimpleComponentRepresenter()
+ self.representer: SimpleComponentRepresenter = SimpleComponentRepresenter()
def create_connector(self, shape: Shape, components=None) -> Optional[DiagramConnector]:
if not shape.begin_x or not shape.begin_y or not shape.end_x or not shape.end_y:
@@ -40,11 +41,21 @@ def create_connector(self, shape: Shape, components=None) -> Optional[DiagramCon
if not origin or not target:
return None
- return DiagramConnector(shape.ID, origin, target, name=shape.text)
+ return DiagramConnector(
+ id=shape.ID,
+ from_id=origin,
+ to_id=target,
+ bidirectional=is_bidirectional_connector(shape),
+ name=shape.text)
+
+ def __match_component(self, point, components) -> Optional[str]:
+ matching_component = {}
- def __match_component(self, point, components):
for component in components:
polygon = self.representer.build_representation(component)
- distance = polygon.exterior.distance(point)
- if round(distance, 2) <= self.tolerance:
- return component.ID
+ distance = round(polygon.exterior.distance(point), 2)
+ if distance <= matching_component.get('distance', self.tolerance):
+ matching_component['id'] = component.ID
+ matching_component['distance'] = distance
+
+ return matching_component.get('id', None)
diff --git a/slp_visio/slp_visio/load/visio_mapping_loader.py b/slp_visio/slp_visio/load/visio_mapping_loader.py
index f285e369..6c1c9791 100644
--- a/slp_visio/slp_visio/load/visio_mapping_loader.py
+++ b/slp_visio/slp_visio/load/visio_mapping_loader.py
@@ -31,6 +31,7 @@ class VisioMappingFileLoader(MappingLoader):
def __init__(self, mapping_files):
self.component_mappings = None
self.trustzone_mappings = None
+ self.configuration = None
self.default_otm_trustzone = None
mapping = MappingFileLoader(mapping_files).load()
self.mappings = load_mappings(mapping)
@@ -39,6 +40,7 @@ def load(self):
self.default_otm_trustzone = self.__load_default_otm_trustzone()
self.trustzone_mappings = self.mappings['trustzones']
self.component_mappings = self.mappings['components']
+ self.configuration = self.mappings.get('configuration', {})
def __load_default_otm_trustzone(self):
trustzone_mappings_list = jmespath.search("trustzones", self.mappings)
@@ -59,3 +61,6 @@ def get_default_otm_trustzone(self):
def get_component_mappings(self):
return self.component_mappings
+
+ def get_configuration(self):
+ return self.configuration
diff --git a/slp_visio/slp_visio/load/vsdx_parser.py b/slp_visio/slp_visio/load/vsdx_parser.py
index 3609211f..21400ab7 100644
--- a/slp_visio/slp_visio/load/vsdx_parser.py
+++ b/slp_visio/slp_visio/load/vsdx_parser.py
@@ -46,7 +46,6 @@ def parse(self, visio_diagram_filename) -> Diagram:
self.__zone_representer = ZoneComponentRepresenter(diagram_limits)
self._load_page_elements()
- self._calculate_parents()
return Diagram(DiagramType.VISIO, self._visio_components, self._visio_connectors, diagram_limits)
@@ -116,10 +115,6 @@ def _add_connector(self, connector_shape: Shape):
if visio_connector:
self._visio_connectors.append(visio_connector)
- def _calculate_parents(self):
- for component in self._visio_components:
- component.parent = ParentCalculator(component).calculate_parent(self._visio_components)
-
@staticmethod
def _is_group(shape: Shape):
return shape.shape_type == 'Group'
diff --git a/slp_visio/slp_visio/parse/lucid_parser.py b/slp_visio/slp_visio/parse/lucid_parser.py
new file mode 100644
index 00000000..fe4c4c45
--- /dev/null
+++ b/slp_visio/slp_visio/parse/lucid_parser.py
@@ -0,0 +1,74 @@
+from typing import Union, List
+
+from sl_util.sl_util import secure_regex
+from sl_util.sl_util.iterations_utils import remove_keys
+from slp_visio.slp_visio.load.objects.diagram_objects import DiagramComponent, Diagram
+from slp_visio.slp_visio.load.visio_mapping_loader import VisioMappingFileLoader
+from slp_visio.slp_visio.parse.visio_parser import VisioParser, _match_resource
+
+AWS_REGEX = [r".*2017$", r".*AWS19$", r".*AWS2021$"]
+AZURE_REGEX = [r"^AC.*Block$", r"^AE.*Block$", r"^AGS.*Block$", r"^AVM.*Block$", r".*Azure2019$", r".*Azure2021$"]
+LUCID_CATCH_ALL_REGEX = AWS_REGEX + AZURE_REGEX
+
+
+def _get_diagram_component_mapping_by_catch_all(resource: DiagramComponent, catch_all_config: [str]) \
+ -> Union[None, dict]:
+ for regex in LUCID_CATCH_ALL_REGEX:
+ if secure_regex.match(regex, resource.type):
+ return {'label': resource.type, 'type': catch_all_config}
+
+
+class LucidParser(VisioParser):
+
+ def __init__(self, project_id: str, project_name: str, diagram: Diagram, mapping_loader: VisioMappingFileLoader):
+ super().__init__(project_id, project_name, diagram, mapping_loader)
+
+ def _get_component_mappings(self) -> [dict]:
+ """
+ Returns the component mappings.
+ After the component mappings are determined, the catch all mappings is determined.
+ :return:
+ """
+ component_mappings: dict = super()._get_component_mappings()
+ tz_mapped: dict = super()._get_trustzone_mappings()
+ mapped_ids = list(tz_mapped.keys()) + list(component_mappings.keys())
+ catch_all_components = self.__get_catch_all_mappings(ids_to_skip=mapped_ids)
+
+ return self.__prune_skip_components({**catch_all_components, **component_mappings})
+
+ def __get_catch_all_mappings(self, ids_to_skip) -> [dict]:
+ result = {}
+ catch_all_config = self.__get_catch_all_config()
+ if not catch_all_config:
+ return result
+ for diag_component in self.diagram.components:
+ if diag_component.id in ids_to_skip:
+ continue
+ mapping = _get_diagram_component_mapping_by_catch_all(diag_component, catch_all_config)
+ if mapping:
+ result[diag_component.id] = mapping
+ return result
+
+ def __get_catch_all_config(self):
+ catch_all = self.mapping_loader.configuration.get('catch_all', False)
+ if not catch_all or catch_all.lower() == 'false':
+ return
+
+ return catch_all.strip()
+
+ def __get_skip_config(self) -> List[str]:
+ return self.mapping_loader.configuration.get('skip')
+
+ def __prune_skip_components(self, mappings: dict) -> dict:
+ ids_to_skip = self.__get_ids_to_skip()
+ return remove_keys(mappings, ids_to_skip)
+
+ def __get_ids_to_skip(self) -> List[str]:
+ ids_to_skip = []
+ skip_config = self.__get_skip_config()
+ if skip_config:
+ for component in self.diagram.components:
+ for skip in skip_config:
+ if _match_resource(component.type, skip):
+ ids_to_skip.append(component.id)
+ return ids_to_skip
diff --git a/slp_visio/slp_visio/parse/visio_parser.py b/slp_visio/slp_visio/parse/visio_parser.py
index 776e29ab..5e591cc3 100644
--- a/slp_visio/slp_visio/parse/visio_parser.py
+++ b/slp_visio/slp_visio/parse/visio_parser.py
@@ -9,6 +9,7 @@
from otm.otm.otm_builder import OTMBuilder
from slp_base import ProviderParser
from slp_visio.slp_visio.load.objects.diagram_objects import Diagram, DiagramComponent
+from slp_visio.slp_visio.load.parent_calculator import ParentCalculator
from slp_visio.slp_visio.load.visio_mapping_loader import VisioMappingFileLoader
from slp_visio.slp_visio.parse.diagram_pruner import DiagramPruner
from slp_visio.slp_visio.parse.mappers.diagram_component_mapper import DiagramComponentMapper
@@ -103,13 +104,14 @@ def __init__(self, project_id: str, project_name: str, diagram: Diagram, mapping
self.__component_mappings = {}
def build_otm(self):
- self.__trustzone_mappings = self.__get_trustzone_mappings()
- self.__component_mappings = self.__get_component_mappings()
+ self.__trustzone_mappings = self._get_trustzone_mappings()
+ self.__component_mappings = self._get_component_mappings()
# Remove from __component_mappings the trustzones
for key in self.__trustzone_mappings.keys():
self.__component_mappings.pop(key, None)
self.__prune_diagram()
+ self._calculate_parents()
components = self.__map_components()
trustzones = self.__map_trustzones()
@@ -121,10 +123,10 @@ def build_otm(self):
return otm
- def __get_trustzone_mappings(self) -> Dict[str, dict]:
+ def _get_trustzone_mappings(self) -> Dict[str, dict]:
return self.__get_shape_mappings(self.mapping_loader.get_trustzone_mappings())
- def __get_component_mappings(self) -> Dict[str, dict]:
+ def _get_component_mappings(self) -> Dict[str, dict]:
return self.__get_shape_mappings(self.mapping_loader.get_component_mappings())
def __get_shape_mappings(self, mappings: [dict]) -> Dict[str, dict]:
@@ -179,3 +181,7 @@ def __any_default_tz(self, components):
and component.parent == self.__default_trustzone.id:
return True
return False
+
+ def _calculate_parents(self):
+ for component in self.diagram.components:
+ component.parent = ParentCalculator(component).calculate_parent(self.diagram.components)
diff --git a/slp_visio/slp_visio/util/visio.py b/slp_visio/slp_visio/util/visio.py
index 2f834cad..3f5c1966 100644
--- a/slp_visio/slp_visio/util/visio.py
+++ b/slp_visio/slp_visio/util/visio.py
@@ -7,6 +7,7 @@
from slp_visio.slp_visio.parse.shape_position_calculator import ShapePositionCalculator
+
@singledispatch
def get_shape_text(shape):
if not shape:
@@ -18,6 +19,7 @@ def get_shape_text(shape):
return (result or "").strip()
+
@get_shape_text.register(list)
def get_shape_text_from_list(shapes: [Shape]) -> str:
if not shapes:
@@ -25,7 +27,6 @@ def get_shape_text_from_list(shapes: [Shape]) -> str:
return "".join(shape.text or "" for shape in shapes)
-
def get_master_shape_text(shape: Shape) -> str:
if not shape.master_shape:
return ""
@@ -42,6 +43,7 @@ def get_unique_id_text(shape: Shape) -> str:
unique_id = shape.master_page.master_unique_id.strip()
return normalize_unique_id(unique_id)
+
def get_width(shape: Shape) -> float:
if 'Width' in shape.cells:
return float(shape.cells['Width'].value)
@@ -79,6 +81,7 @@ def get_limits(shape: Shape) -> tuple:
return (center_x - (width / 2), center_y - (height / 2)), \
(center_x + (width / 2), center_y + (height / 2))
+
# These expressions are secure, so we can use the standard re lib by performance reason
LUCID_AWS_YEARS_PATTERN = re.compile(r'_?(?:2017|AWS19|AWS19_v2|AWS2021)$')
NON_PRINTABLE_CHARS_PATTERN = re.compile(f'[^{re.escape(string.printable)}]')
@@ -107,5 +110,22 @@ def normalize_label(label: str) -> str:
return label
-def normalize_unique_id(unique_id):
+def normalize_unique_id(unique_id: str):
return re.sub("[{}]", "", unique_id) if unique_id else ""
+
+
+def connector_has_arrow_in_origin(shape: Shape) -> bool:
+ begin_arrow_value = shape.cell_value('BeginArrow')
+ return begin_arrow_value is not None and str(begin_arrow_value).isnumeric() and begin_arrow_value != '0'
+
+
+def is_bidirectional_connector(shape: Shape) -> bool:
+ """
+ If its master name includes 'Double Arrow' or has arrows defined in both ends
+ """
+ if shape.master_shape and shape.master_page.name and 'Double Arrow' in shape.master_page.name:
+ return True
+ for arrow_value in [shape.cell_value(att) for att in ['BeginArrow', 'EndArrow']]:
+ if arrow_value is None or not str(arrow_value).isnumeric() or arrow_value == '0':
+ return False
+ return True
diff --git a/slp_visio/slp_visio/visio_processor.py b/slp_visio/slp_visio/visio_processor.py
index e777cd5d..36823c5b 100644
--- a/slp_visio/slp_visio/visio_processor.py
+++ b/slp_visio/slp_visio/visio_processor.py
@@ -7,6 +7,7 @@
from slp_visio.slp_visio.load.visio_mapping_loader import VisioMappingFileLoader
from slp_visio.slp_visio.lucid.load.lucid_loader import LucidLoader
from slp_visio.slp_visio.lucid.validate.lucid_validator import LucidValidator
+from slp_visio.slp_visio.parse.lucid_parser import LucidParser
from slp_visio.slp_visio.parse.visio_parser import VisioParser
from slp_visio.slp_visio.validate.visio_mapping_file_validator import VisioMappingFileValidator
from slp_visio.slp_visio.validate.visio_validator import VisioValidator
@@ -48,7 +49,8 @@ def get_mapping_loader(self) -> MappingLoader:
return self.mapping_loader
def get_provider_parser(self) -> ProviderParser:
- return VisioParser(self.project_id, self.project_name, self.loader.get_visio(), self.mapping_loader)
+ provider_parser = LucidParser if self.diag_type == DiagramType.LUCID else VisioParser
+ return provider_parser(self.project_id, self.project_name, self.loader.get_visio(), self.mapping_loader)
def _clean_resources(self):
if self.is_temporary_source:
diff --git a/slp_visio/slp_visio/visio_summary.py b/slp_visio/slp_visio/visio_summary.py
new file mode 100644
index 00000000..5adf0f84
--- /dev/null
+++ b/slp_visio/slp_visio/visio_summary.py
@@ -0,0 +1,74 @@
+import logging
+import os
+from typing import List
+
+from otm.otm.entity.otm import OTM
+from slp_base import DiagramType
+from slp_visio import VisioProcessor
+from slp_visio.slp_visio.util.visio import normalize_label
+
+logger = logging.getLogger(__name__)
+
+
+def _find_otm_component_by_id(otm: OTM, _id: str):
+ if not otm or not otm.components:
+ return
+ for c in otm.components:
+ if c.id == _id:
+ return c
+
+
+def _find_otm_tz_by_id(otm: OTM, _id: str):
+ if not otm or not otm.trustzones:
+ return
+ for tz in otm.trustzones:
+ if tz.id == _id:
+ return tz
+
+
+def _get_visio_components(processor: VisioProcessor):
+ """
+ Returns the components array available at the given source file
+ It is needed to reload the provider because the otm process modifies this components array
+ :param processor: The visio processor
+ :return: A visio shape arrays
+ """
+ loader = processor.get_provider_loader()
+ loader.load()
+ return loader.get_visio().components
+
+
+class VisioSummary:
+
+ def __init__(
+ self, source_files: List, mappings: [bytes], diag_type: DiagramType = None):
+ self.__source_files = source_files
+ self.__mappings = mappings
+ self.__diag_type = diag_type
+
+ def __exists_mappings(self):
+ return self.__mappings and len(self.__mappings) > 0
+
+ def get_elements(self) -> List[dict]:
+ elements: List[dict] = []
+ for _file in self.__source_files:
+ file_name = os.path.basename(_file.name)
+ try:
+ processor = VisioProcessor('id', 'name', _file, self.__mappings, diag_type=self.__diag_type)
+ otm = None
+ if self.__exists_mappings():
+ otm = processor.process()
+ for c in _get_visio_components(processor):
+ element = {'SOURCE': file_name, 'SOURCE_ELEMENT_TYPE': normalize_label(c.type),
+ 'SOURCE_ELEMENT_NAME': c.name}
+ if self.__exists_mappings():
+ otm_c = _find_otm_component_by_id(otm, c.id)
+ otm_z = _find_otm_tz_by_id(otm, c.id)
+ element['OTM_MAPPED_TYPE'] = otm_c.type if otm_c else \
+ f'Trustzone[{otm_z.name}]' if otm_z else ''
+ elements.append(element)
+ except Exception as e:
+ logger.error(f'It has been an error when summary the {file_name} file. Error info: {e}')
+ raise e
+
+ return elements
diff --git a/slp_visio/tests/resources/mapping/aws-visio-mapping.yaml b/slp_visio/tests/resources/mapping/aws-visio-mapping.yaml
index 99cb07af..9df19083 100644
--- a/slp_visio/tests/resources/mapping/aws-visio-mapping.yaml
+++ b/slp_visio/tests/resources/mapping/aws-visio-mapping.yaml
@@ -284,5 +284,3 @@ components:
- label: Bucket
type: s3
-
-dataflows: []
\ No newline at end of file
diff --git a/slp_visio/tests/resources/mapping/custom-vpc-mapping.yaml b/slp_visio/tests/resources/mapping/custom-vpc-mapping.yaml
index 598a24ae..c343b3ec 100644
--- a/slp_visio/tests/resources/mapping/custom-vpc-mapping.yaml
+++ b/slp_visio/tests/resources/mapping/custom-vpc-mapping.yaml
@@ -12,5 +12,3 @@ components:
- label: Custom web server
type: empty-component
-
-dataflows: []
\ No newline at end of file
diff --git a/slp_visio/tests/resources/mapping/empty-mapping.yaml b/slp_visio/tests/resources/mapping/empty-mapping.yaml
index f68899a1..a1255c5f 100644
--- a/slp_visio/tests/resources/mapping/empty-mapping.yaml
+++ b/slp_visio/tests/resources/mapping/empty-mapping.yaml
@@ -2,4 +2,4 @@ trustzones: []
components: []
-dataflows: []
\ No newline at end of file
+configuration: {}
\ No newline at end of file
diff --git a/slp_visio/tests/resources/mapping/invalid-mapping-without-dataflows.yaml b/slp_visio/tests/resources/mapping/invalid-mapping-without-components.yaml
similarity index 50%
rename from slp_visio/tests/resources/mapping/invalid-mapping-without-dataflows.yaml
rename to slp_visio/tests/resources/mapping/invalid-mapping-without-components.yaml
index 112235bb..e64c6fd1 100755
--- a/slp_visio/tests/resources/mapping/invalid-mapping-without-dataflows.yaml
+++ b/slp_visio/tests/resources/mapping/invalid-mapping-without-components.yaml
@@ -1,3 +1 @@
trustzones: []
-
-components: []
\ No newline at end of file
diff --git a/slp_visio/tests/resources/mapping/master-unique-id-with-curly-braces.yaml b/slp_visio/tests/resources/mapping/master-unique-id-with-curly-braces.yaml
index e9fb83ea..8b2ff688 100644
--- a/slp_visio/tests/resources/mapping/master-unique-id-with-curly-braces.yaml
+++ b/slp_visio/tests/resources/mapping/master-unique-id-with-curly-braces.yaml
@@ -10,5 +10,3 @@ components:
- label: Amazon Redshift
id: "{0508F4C7-001F-0000-8E40-00608CF305B2}"
type: empty-component
-
-dataflows: []
diff --git a/slp_visio/tests/resources/mapping/master-unique-id-without-curly-braces.yaml b/slp_visio/tests/resources/mapping/master-unique-id-without-curly-braces.yaml
index 0ea4b48d..48fbd072 100644
--- a/slp_visio/tests/resources/mapping/master-unique-id-without-curly-braces.yaml
+++ b/slp_visio/tests/resources/mapping/master-unique-id-without-curly-braces.yaml
@@ -10,5 +10,3 @@ components:
- label: Amazon Redshift
id: 0508F4C7-001F-0000-8E40-00608CF305B2
type: empty-component
-
-dataflows: []
diff --git a/slp_visio/tests/resources/otm/aws-with-tz-and-vpc.otm b/slp_visio/tests/resources/otm/aws-with-tz-and-vpc.otm
index 2960df56..ec91bb2b 100644
--- a/slp_visio/tests/resources/otm/aws-with-tz-and-vpc.otm
+++ b/slp_visio/tests/resources/otm/aws-with-tz-and-vpc.otm
@@ -4,7 +4,7 @@
"id": "1",
"name": "Amazon EC2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -27,7 +27,7 @@
"id": "12",
"name": "Custom machine",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -50,7 +50,7 @@
"id": "30",
"name": "Private Database",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "48"
},
"representations": [
{
@@ -73,7 +73,7 @@
"id": "35",
"name": "Amazon CloudWatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -96,7 +96,7 @@
"id": "41",
"name": "Custom log system",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -142,7 +142,7 @@
"source": "12"
}
],
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"id": "project-id",
"name": "project-name"
@@ -160,7 +160,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "47",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"representations": [
{
@@ -182,7 +183,8 @@
}
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "48",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/bidirectional-connectors.otm b/slp_visio/tests/resources/otm/bidirectional-connectors.otm
index 501883b7..42f29d36 100644
--- a/slp_visio/tests/resources/otm/bidirectional-connectors.otm
+++ b/slp_visio/tests/resources/otm/bidirectional-connectors.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -94,7 +95,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -117,7 +118,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -140,7 +141,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -163,7 +164,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/boundary-and-component-tzs.otm b/slp_visio/tests/resources/otm/boundary-and-component-tzs.otm
index 79c671ba..3dfc3138 100644
--- a/slp_visio/tests/resources/otm/boundary-and-component-tzs.otm
+++ b/slp_visio/tests/resources/otm/boundary-and-component-tzs.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "66",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "64",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -67,7 +69,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "66"
},
"representations": [
{
@@ -90,7 +92,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "64"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/boundary-tz-and-default-tz.otm b/slp_visio/tests/resources/otm/boundary-tz-and-default-tz.otm
index 1e171f11..7255766b 100644
--- a/slp_visio/tests/resources/otm/boundary-tz-and-default-tz.otm
+++ b/slp_visio/tests/resources/otm/boundary-tz-and-default-tz.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "64",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -70,7 +72,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -93,7 +95,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "64"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_aws_shapes.otm b/slp_visio/tests/resources/otm/expected_aws_shapes.otm
index 0096616f..1d87d61f 100644
--- a/slp_visio/tests/resources/otm/expected_aws_shapes.otm
+++ b/slp_visio/tests/resources/otm/expected_aws_shapes.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -94,7 +95,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -117,7 +118,7 @@
"name": "Amazon CloudWatch",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -140,7 +141,7 @@
"name": "Custom log system",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_bidirectional_connectors.otm b/slp_visio/tests/resources/otm/expected_bidirectional_connectors.otm
index aba9121d..98384975 100644
--- a/slp_visio/tests/resources/otm/expected_bidirectional_connectors.otm
+++ b/slp_visio/tests/resources/otm/expected_bidirectional_connectors.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_boundary_tz_and_default_tz.otm b/slp_visio/tests/resources/otm/expected_boundary_tz_and_default_tz.otm
index cd1b0229..25063027 100644
--- a/slp_visio/tests/resources/otm/expected_boundary_tz_and_default_tz.otm
+++ b/slp_visio/tests/resources/otm/expected_boundary_tz_and_default_tz.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -25,6 +26,7 @@
},
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_complex_diagram.otm b/slp_visio/tests/resources/otm/expected_complex_diagram.otm
index de3b0bcb..00e9b173 100644
--- a/slp_visio/tests/resources/otm/expected_complex_diagram.otm
+++ b/slp_visio/tests/resources/otm/expected_complex_diagram.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
diff --git a/slp_visio/tests/resources/otm/expected_empty_mapping_and_visio_files.otm b/slp_visio/tests/resources/otm/expected_empty_mapping_and_visio_files.otm
index 1cb569cf..405666cb 100644
--- a/slp_visio/tests/resources/otm/expected_empty_mapping_and_visio_files.otm
+++ b/slp_visio/tests/resources/otm/expected_empty_mapping_and_visio_files.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
diff --git a/slp_visio/tests/resources/otm/expected_empty_mapping_file.otm b/slp_visio/tests/resources/otm/expected_empty_mapping_file.otm
index d6778745..5db99b7d 100644
--- a/slp_visio/tests/resources/otm/expected_empty_mapping_file.otm
+++ b/slp_visio/tests/resources/otm/expected_empty_mapping_file.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
diff --git a/slp_visio/tests/resources/otm/expected_empty_visio_file.otm b/slp_visio/tests/resources/otm/expected_empty_visio_file.otm
index b71f5294..198ba3de 100644
--- a/slp_visio/tests/resources/otm/expected_empty_visio_file.otm
+++ b/slp_visio/tests/resources/otm/expected_empty_visio_file.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_extraneous_elements.otm b/slp_visio/tests/resources/otm/expected_extraneous_elements.otm
index bc24092f..c8b7a7ee 100644
--- a/slp_visio/tests/resources/otm/expected_extraneous_elements.otm
+++ b/slp_visio/tests/resources/otm/expected_extraneous_elements.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -40,6 +41,7 @@
},
{
"id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_generic_elements.otm b/slp_visio/tests/resources/otm/expected_generic_elements.otm
index 59396586..d874fe67 100644
--- a/slp_visio/tests/resources/otm/expected_generic_elements.otm
+++ b/slp_visio/tests/resources/otm/expected_generic_elements.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_generic_shapes.otm b/slp_visio/tests/resources/otm/expected_generic_shapes.otm
index 4efa45f9..e1cefb57 100644
--- a/slp_visio/tests/resources/otm/expected_generic_shapes.otm
+++ b/slp_visio/tests/resources/otm/expected_generic_shapes.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Custom enterprise GW",
"type": "empty-component",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Custom web server",
"type": "empty-component",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_manually_modified_connectors.otm b/slp_visio/tests/resources/otm/expected_manually_modified_connectors.otm
index db41e9c8..544e5b7c 100644
--- a/slp_visio/tests/resources/otm/expected_manually_modified_connectors.otm
+++ b/slp_visio/tests/resources/otm/expected_manually_modified_connectors.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_master_unique_id.otm b/slp_visio/tests/resources/otm/expected_master_unique_id.otm
index e4517fe7..268f7c8a 100644
--- a/slp_visio/tests/resources/otm/expected_master_unique_id.otm
+++ b/slp_visio/tests/resources/otm/expected_master_unique_id.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Amazon Redshift from AWS Analytics",
"type": "empty-component",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Amazon Redshift from AWS Database",
"type": "redshift",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_multiple_pages_diagram.otm b/slp_visio/tests/resources/otm/expected_multiple_pages_diagram.otm
index d5ab034d..79025088 100644
--- a/slp_visio/tests/resources/otm/expected_multiple_pages_diagram.otm
+++ b/slp_visio/tests/resources/otm/expected_multiple_pages_diagram.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_origin_target_trustzone.otm b/slp_visio/tests/resources/otm/expected_origin_target_trustzone.otm
index bda8c696..892bc572 100644
--- a/slp_visio/tests/resources/otm/expected_origin_target_trustzone.otm
+++ b/slp_visio/tests/resources/otm/expected_origin_target_trustzone.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "11",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -37,6 +38,30 @@
}
}
]
+ },
+ {
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "name": "Public Cloud",
+ "risk": {
+ "trustRating": 10
+ },
+ "representations": [
+ {
+ "name": "Public Cloud Representation",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605-representation",
+ "representation": "project-id-diagram",
+ "size": {
+ "width": 142,
+ "height": 142
+ },
+ "position": {
+ "x": 945,
+ "y": 387
+ }
+ }
+ ],
+ "attributes": {"default": true}
}
],
"components": [
@@ -45,7 +70,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "11"
},
"representations": [
{
@@ -68,7 +93,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_origin_trustzone.otm b/slp_visio/tests/resources/otm/expected_origin_trustzone.otm
index 71f59724..45fc14c9 100644
--- a/slp_visio/tests/resources/otm/expected_origin_trustzone.otm
+++ b/slp_visio/tests/resources/otm/expected_origin_trustzone.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "11",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -37,6 +38,30 @@
}
}
]
+ },
+ {
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "name": "Public Cloud",
+ "risk": {
+ "trustRating": 10
+ },
+ "representations": [
+ {
+ "name": "Public Cloud Representation",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605-representation",
+ "representation": "project-id-diagram",
+ "size": {
+ "width": 142,
+ "height": 142
+ },
+ "position": {
+ "x": 945,
+ "y": 387
+ }
+ }
+ ],
+ "attributes": {"default": true}
}
],
"components": [
@@ -45,7 +70,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "11"
},
"representations": [
{
@@ -68,7 +93,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_overlapped_boundary_tzs.otm b/slp_visio/tests/resources/otm/expected_overlapped_boundary_tzs.otm
index b13b5107..ed664eae 100644
--- a/slp_visio/tests/resources/otm/expected_overlapped_boundary_tzs.otm
+++ b/slp_visio/tests/resources/otm/expected_overlapped_boundary_tzs.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "62",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "64",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -67,7 +69,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "62"
},
"representations": [
{
@@ -90,7 +92,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "64"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_prune_orphan_connectors.otm b/slp_visio/tests/resources/otm/expected_prune_orphan_connectors.otm
index df25fd34..d7a48f39 100644
--- a/slp_visio/tests/resources/otm/expected_prune_orphan_connectors.otm
+++ b/slp_visio/tests/resources/otm/expected_prune_orphan_connectors.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_self_pointing_connectors.otm b/slp_visio/tests/resources/otm/expected_self_pointing_connectors.otm
index f1c67f75..610cc312 100644
--- a/slp_visio/tests/resources/otm/expected_self_pointing_connectors.otm
+++ b/slp_visio/tests/resources/otm/expected_self_pointing_connectors.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -18,6 +18,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/slp_visio/tests/resources/otm/expected_simple_boundary_tzs.otm b/slp_visio/tests/resources/otm/expected_simple_boundary_tzs.otm
index 6422e21f..f8adc33e 100644
--- a/slp_visio/tests/resources/otm/expected_simple_boundary_tzs.otm
+++ b/slp_visio/tests/resources/otm/expected_simple_boundary_tzs.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "62",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "64",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -67,7 +69,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "62"
},
"representations": [
{
@@ -90,7 +92,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "64"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_visio_extraneous_elements.otm b/slp_visio/tests/resources/otm/expected_visio_extraneous_elements.otm
index 5d1df298..9a1d1c02 100644
--- a/slp_visio/tests/resources/otm/expected_visio_extraneous_elements.otm
+++ b/slp_visio/tests/resources/otm/expected_visio_extraneous_elements.otm
@@ -4,7 +4,7 @@
"id": "1",
"name": "Amazon EC2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -27,7 +27,7 @@
"id": "12",
"name": "Custom machine",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -50,7 +50,7 @@
"id": "30",
"name": "Private Database",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "48"
},
"representations": [
{
@@ -73,7 +73,7 @@
"id": "35",
"name": "Amazon CloudWatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -96,7 +96,7 @@
"id": "41",
"name": "Custom log system",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -142,7 +142,7 @@
"source": "12"
}
],
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"id": "project-id",
"name": "project-name"
@@ -160,7 +160,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "47",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"representations": [
{
@@ -182,7 +183,8 @@
}
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "48",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_visio_nested_tzs.otm b/slp_visio/tests/resources/otm/expected_visio_nested_tzs.otm
index 9c0bb00b..dff35bb9 100644
--- a/slp_visio/tests/resources/otm/expected_visio_nested_tzs.otm
+++ b/slp_visio/tests/resources/otm/expected_visio_nested_tzs.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,31 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "64",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "name": "Private Secured Cloud",
+ "risk": {
+ "trustRating": 10
+ },
+ "representations": [
+ {
+ "name": "Private Secured Cloud Representation",
+ "id": "64-representation",
+ "representation": "project-id-diagram",
+ "size": {
+ "width": 142,
+ "height": 142
+ },
+ "position": {
+ "x": 78,
+ "y": 460
+ }
+ }
+ ]
+ },
+ {
+ "id": "65",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,13 +63,14 @@
]
},
{
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "67",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
},
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "65"
},
"representations": [
{
@@ -62,29 +87,8 @@
}
}
]
- },
- {
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
- "name": "Private Secured Cloud",
- "risk": {
- "trustRating": 10
- },
- "representations": [
- {
- "name": "Private Secured Cloud Representation",
- "id": "64-representation",
- "representation": "project-id-diagram",
- "size": {
- "width": 142,
- "height": 142
- },
- "position": {
- "x": 78,
- "y": 460
- }
- }
- ]
}
+
],
"components": [
{
@@ -92,7 +96,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "67"
},
"representations": [
{
@@ -115,7 +119,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "64"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_visio_nested_tzs_inside_component.otm b/slp_visio/tests/resources/otm/expected_visio_nested_tzs_inside_component.otm
index 4218e8a2..5877b18d 100644
--- a/slp_visio/tests/resources/otm/expected_visio_nested_tzs_inside_component.otm
+++ b/slp_visio/tests/resources/otm/expected_visio_nested_tzs_inside_component.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "1",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -42,7 +43,8 @@
]
},
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -73,7 +75,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -96,7 +98,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "1"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/expected_visio_self_pointing_connectors.otm b/slp_visio/tests/resources/otm/expected_visio_self_pointing_connectors.otm
index 766eba6a..330fbfcb 100644
--- a/slp_visio/tests/resources/otm/expected_visio_self_pointing_connectors.otm
+++ b/slp_visio/tests/resources/otm/expected_visio_self_pointing_connectors.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Custom enterprise GW",
"type": "empty-component",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Custom web server",
"type": "empty-component",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/modified-single-connectors.otm b/slp_visio/tests/resources/otm/modified-single-connectors.otm
index f692f97f..a722d94a 100644
--- a/slp_visio/tests/resources/otm/modified-single-connectors.otm
+++ b/slp_visio/tests/resources/otm/modified-single-connectors.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -94,7 +95,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -117,7 +118,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -140,7 +141,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -163,7 +164,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -186,7 +187,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -209,7 +210,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -232,7 +233,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -255,7 +256,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -278,7 +279,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -301,7 +302,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -324,7 +325,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -347,7 +348,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -370,7 +371,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -393,7 +394,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -416,7 +417,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -439,7 +440,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -462,7 +463,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -485,7 +486,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -508,7 +509,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -531,7 +532,7 @@
"name": "Amazon VPC",
"type": "vpc",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/multiple-pages-diagram.otm b/slp_visio/tests/resources/otm/multiple-pages-diagram.otm
index 0eb17968..b2445c8a 100644
--- a/slp_visio/tests/resources/otm/multiple-pages-diagram.otm
+++ b/slp_visio/tests/resources/otm/multiple-pages-diagram.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "62",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "64",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -61,7 +63,8 @@
]
},
{
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "70",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
@@ -89,7 +92,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "62"
},
"representations": [
{
@@ -112,7 +115,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "64"
},
"representations": [
{
@@ -135,7 +138,7 @@
"name": "Internet Machine",
"type": "ec2",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "70"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/otm/visio-orphan-dataflows.otm b/slp_visio/tests/resources/otm/visio-orphan-dataflows.otm
index b62eb2e5..8675efe5 100644
--- a/slp_visio/tests/resources/otm/visio-orphan-dataflows.otm
+++ b/slp_visio/tests/resources/otm/visio-orphan-dataflows.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Bucket",
"type": "s3",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Bucket",
"type": "s3",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -94,7 +95,7 @@
"name": "Amazon MQ",
"type": "CD-MQ",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -117,7 +118,7 @@
"name": "Amazon MQ",
"type": "CD-MQ",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -140,7 +141,7 @@
"name": "Database",
"type": "rds",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -163,7 +164,7 @@
"name": "Amazon MQ",
"type": "CD-MQ",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/slp_visio/tests/resources/test_resource_paths.py b/slp_visio/tests/resources/test_resource_paths.py
index 800a7c5c..245197ef 100644
--- a/slp_visio/tests/resources/test_resource_paths.py
+++ b/slp_visio/tests/resources/test_resource_paths.py
@@ -9,7 +9,7 @@
default_visio_mapping = f'{path}/mapping/aws-visio-mapping.yaml'
custom_vpc_mapping = f'{path}/mapping/custom-vpc-mapping.yaml'
empty_mapping = f'{path}/mapping/empty-mapping.yaml'
-invalid_no_dataflows = f'{path}/mapping/invalid-mapping-without-dataflows.yaml'
+invalid_no_components = f'{path}/mapping/invalid-mapping-without-components.yaml'
nested_tzs_mapping = f'{path}/mapping/nested-tzs.yaml'
nested_tzs_inside_component_mapping = f'{path}/mapping/nested-tz-inside-component.yaml'
master_unique_id_mapping_without_curly_braces = f'{path}/mapping/master-unique-id-without-curly-braces.yaml'
diff --git a/slp_visio/tests/unit/load/strategies/component/impl/test_create_component_by_master_page_name.py b/slp_visio/tests/unit/load/strategies/component/impl/test_create_component_by_master_page_name.py
index 9cb70cfc..376de4ca 100644
--- a/slp_visio/tests/unit/load/strategies/component/impl/test_create_component_by_master_page_name.py
+++ b/slp_visio/tests/unit/load/strategies/component/impl/test_create_component_by_master_page_name.py
@@ -68,12 +68,14 @@ def test_validate_with_master_page_name(self, page_name):
pytest.param(None, '', 'Lambda1', 'Lambda1', id='In last child'),
pytest.param('AWS ', 'Lambda', '', 'AWS Lambda', id='In two'),
pytest.param('AWS ', 'Lambda ', 'Step functions', 'AWS Lambda Step functions', id='In all'),
+ pytest.param(None, None, None, 'AmazonAPIGateway', id='In all'),
})
def test_validate_with_child_shapes(self, text1, text2, text3, expected):
# GIVEN a visio component shape
- shape = MagicMock(ID=1001, shape_name=None, master_page=MagicMock(master_unique_id='777'),
+ shape = MagicMock(ID=1001, shape_name='com.lucidchart.AmazonAPIGatewayAWS2021',
+ master_page=MagicMock(master_unique_id='777'),
center_x_y=(0.5, 2.5), cells={'Width': MagicMock(value=8), 'Height': MagicMock(value=12)})
- shape.master_page = None
+ shape.master_page = MagicMock(name='com.lucidchart.AmazonAPIGatewayAWS2021250.abcde', master_unique_id='989')
shape.child_shapes = [MagicMock(ID=1101), MagicMock(ID=1102), MagicMock(ID=1103)]
shape.child_shapes[0].text = text1
shape.child_shapes[1].text = text2
diff --git a/slp_visio/tests/unit/load/strategies/component/impl/test_create_component_by_shape_text.py b/slp_visio/tests/unit/load/strategies/component/impl/test_create_component_by_shape_text.py
index b1c085bf..4cab981d 100644
--- a/slp_visio/tests/unit/load/strategies/component/impl/test_create_component_by_shape_text.py
+++ b/slp_visio/tests/unit/load/strategies/component/impl/test_create_component_by_shape_text.py
@@ -1,7 +1,7 @@
from unittest.mock import MagicMock
import pytest
-from _pytest.mark import param
+from pytest import param
from slp_visio.slp_visio.load.representation.simple_component_representer import SimpleComponentRepresenter
from slp_visio.slp_visio.load.strategies.component.impl.create_component_by_shape_text import CreateComponentByShapeText
@@ -68,5 +68,30 @@ def test_get_lucid_component_type(self, id_, shape_name, expected):
strategy = CreateComponentByShapeText()
component_type = strategy.get_lucid_component_type(shape)
- # THEN no diagram is returned
+ # THEN the component type is as expected
assert component_type == expected
+
+ @pytest.mark.parametrize('shape_name,expected', {
+ param('com.lucidchart.AmazonElasticContainerServiceAWS19.121', 'AmazonElasticContainerServiceAWS19',
+ id='id==tail'),
+ param('com.lucidchart.AmazonElasticContainerServiceAWS19', 'AmazonElasticContainerServiceAWS19',
+ id='no tail'),
+ param('com.lucidchart.AmazonElasticContainerServiceAWS19.121', 'AmazonElasticContainerServiceAWS19',
+ id='id!=tail'),
+ param('com.lucidchart.AmazonElasticContainerServiceAWS19.121.44', 'AmazonElasticContainerServiceAWS19',
+ id='double tail')
+ })
+ def test_create_component_lucid(self, shape_name, expected):
+ # GIVEN a visio component shape
+ shape = MagicMock(ID='10', shape_name=shape_name, text='My Elastic Container',
+ master_shape=MagicMock(text='Elastic Container Master'),
+ master_page=MagicMock(master_unique_id='777'), center_x_y=(0.5, 2.5),
+ cells={'Width': MagicMock(value=8), 'Height': MagicMock(value=12)})
+
+ # WHEN the component is created
+ strategy = CreateComponentByShapeText()
+ component = strategy.create_component(shape, representer=SimpleComponentRepresenter())
+
+ # THEN the component is as expected
+ assert component.type == expected
+ assert component.name == 'My Elastic Container'
diff --git a/slp_visio/tests/unit/load/strategies/dataflow/impl/test_create_connector_by_line_coordinates.py b/slp_visio/tests/unit/load/strategies/dataflow/impl/test_create_connector_by_line_coordinates.py
index 00cdecad..193f338d 100644
--- a/slp_visio/tests/unit/load/strategies/dataflow/impl/test_create_connector_by_line_coordinates.py
+++ b/slp_visio/tests/unit/load/strategies/dataflow/impl/test_create_connector_by_line_coordinates.py
@@ -1,59 +1,61 @@
-from unittest.mock import MagicMock, Mock
+from unittest.mock import MagicMock, Mock, patch
from pytest import mark, param
from slp_visio.slp_visio.load.strategies.connector.impl.create_connector_by_line_coordinates import \
CreateConnectorByLineCoordinates
+TOLERANCE = 0.09
+
def mock_component(_id, pos):
x, y = pos[0], pos[1]
width, height = pos[2], pos[3]
mocked = MagicMock(ID=_id, begin_x=x, begin_y=y,
- cells={'Width': Mock(value=width), 'Height': Mock(value=height)},
- center_x_y=(float(x) + float(width) / 2, float(y) + float(height) / 2))
- mocked.parent=None
+ cells={'Width': Mock(value=width), 'Height': Mock(value=height)},
+ center_x_y=(float(x) + float(width) / 2, float(y) + float(height) / 2))
+ mocked.parent = None
return mocked
class TestCreateConnectorByLineCoordinates:
@mark.parametrize('line,start,end', [
param(['1040', '-560', '1290', '-560'], ['960', '-600', '80', '80'], ['1290', '-590', '60', '60'],
- id="perfect_match,strings,big_scale"),
+ id="perfect_match,strings,big_scale"),
param([1040, -560, 1290, -560], [960, -600, 80, 80], [1290, -590, 60, 60],
- id="perfect_match,big_scale"),
+ id="perfect_match,big_scale"),
param(['1.04', '-0.56', '1.29', '-0.56'], ['0.96', '-0.6', '0.08', '0.08'], ['1.29', '-0.59', '0.06', '0.06'],
- id="perfect_match,strings"),
+ id="perfect_match,strings"),
param([1.04, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="perfect_match"),
- param([1.04 + 0.09, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected by right tolerance, end connected"),
- param([0.96 - 0.09, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected by left tolerance, end connected"),
- param([1.04, -0.6 - 0.09, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected by top tolerance, end connected"),
- param([1.04, -0.6 + 0.08 + 0.09, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected by bottom tolerance, end connected"),
- param([1.04, -0.56, 1.29 - 0.09, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected, end connected by left tolerance"),
- param([1.04, -0.56, 1.29 + 0.06 + 0.09, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected, end connected by right tolerance"),
- param([1.04, -0.56, 1.29, -0.59 - 0.09], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected, end connected by top tolerance"),
- param([1.04, -0.56, 1.29, -0.59 + 0.06 + 0.09], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected, end connected by bottom tolerance"),
+ id="perfect_match"),
+ param([1.04 + TOLERANCE, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected by right tolerance, end connected"),
+ param([0.96 - TOLERANCE, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected by left tolerance, end connected"),
+ param([1.04, -0.6 - TOLERANCE, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected by top tolerance, end connected"),
+ param([1.04, -0.6 + 0.08 + TOLERANCE, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected by bottom tolerance, end connected"),
+ param([1.04, -0.56, 1.29 - TOLERANCE, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected, end connected by left tolerance"),
+ param([1.04, -0.56, 1.29 + 0.06 + TOLERANCE, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected, end connected by right tolerance"),
+ param([1.04, -0.56, 1.29, -0.59 - TOLERANCE], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected, end connected by top tolerance"),
+ param([1.04, -0.56, 1.29, -0.59 + 0.06 + TOLERANCE], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected, end connected by bottom tolerance"),
])
def test_create_connector_with_line_touching_component(self, line, start, end):
# GIVEN a visio connector shape
- shape = Mock(ID=1111, begin_x=line[0], begin_y=line[1], end_x=line[2], end_y=line[3])
+ shape = MagicMock(ID=1111, begin_x=line[0], begin_y=line[1], end_x=line[2], end_y=line[3])
# AND the start component
start_component = mock_component(222, start)
# AND the end component
end_component = mock_component(333, end)
# WHEN the connector is created
- strategy = CreateConnectorByLineCoordinates()
- diagram_connector = strategy.create_connector(shape, components=[start_component, end_component])
+ diagram_connector = CreateConnectorByLineCoordinates() \
+ .create_connector(shape, components=[start_component, end_component])
# THEN the returned diagram connector has the following properties
assert diagram_connector.id == 1111
@@ -61,24 +63,25 @@ def test_create_connector_with_line_touching_component(self, line, start, end):
assert diagram_connector.to_id == 333
assert not diagram_connector.bidirectional
-
@mark.parametrize('line,start,end', [
- param([1.04 + 0.09 + 0.006, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start not connected by right intolerance, end connected"),
- param([0.96 - 0.09 - 0.006, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start not connected by left intolerance, end connected"),
- param([1.04, -0.6 + 0.08 + 0.09 + 0.006, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start not connected by bottom intolerance, end connected"),
- param([1.04, -0.6 - 0.09 - 0.006, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start not connected by top intolerance, end connected", ),
- param([1.04, -0.56, 1.29 - 0.09 - 0.006, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected, end not connected by left intolerance"),
- param([1.04, -0.56, 1.29 + 0.06 + 0.09 + 0.006, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected, end not connected by right intolerance"),
- param([1.04, -0.56, 1.29, -0.59 - 0.09 - 0.006], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected, end not connected by top intolerance"),
- param([1.04, -0.56, 1.29, -0.59 + 0.06 + 0.09 + 0.006], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
- id="start connected, end not connected by bottom intolerance"),
+ param([1.04 + TOLERANCE + 0.006, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start not connected by right intolerance, end connected"),
+ param([0.96 - TOLERANCE - 0.006, -0.56, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start not connected by left intolerance, end connected"),
+ param([1.04, -0.6 + 0.08 + TOLERANCE + 0.006, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start not connected by bottom intolerance, end connected"),
+ param([1.04, -0.6 - TOLERANCE - 0.006, 1.29, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start not connected by top intolerance, end connected", ),
+ param([1.04, -0.56, 1.29 - TOLERANCE - 0.006, -0.56], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected, end not connected by left intolerance"),
+ param([1.04, -0.56, 1.29 + 0.06 + TOLERANCE + 0.006, -0.56], [0.96, -0.6, 0.08, 0.08],
+ [1.29, -0.59, 0.06, 0.06],
+ id="start connected, end not connected by right intolerance"),
+ param([1.04, -0.56, 1.29, -0.59 - TOLERANCE - 0.006], [0.96, -0.6, 0.08, 0.08], [1.29, -0.59, 0.06, 0.06],
+ id="start connected, end not connected by top intolerance"),
+ param([1.04, -0.56, 1.29, -0.59 + 0.06 + TOLERANCE + 0.006], [0.96, -0.6, 0.08, 0.08],
+ [1.29, -0.59, 0.06, 0.06],
+ id="start connected, end not connected by bottom intolerance"),
])
def test_create_connector_with_line_not_touching(self, line, start, end):
# GIVEN a visio connector shape
@@ -89,19 +92,64 @@ def test_create_connector_with_line_not_touching(self, line, start, end):
end_component = mock_component(555, end)
# WHEN the connector is created
- strategy = CreateConnectorByLineCoordinates()
- diagram_connector = strategy.create_connector(shape, components=[start_component, end_component])
+ diagram_connector = CreateConnectorByLineCoordinates() \
+ .create_connector(shape, components=[start_component, end_component])
# THEN no diagram is returned
assert not diagram_connector
+ def test_create_connector_with_two_components_inside_tolerance_area(self):
+ # GIVEN a visio mocked connector shape
+ shape = MagicMock(ID=11, begin_x=1.04, begin_y=-0.6 - TOLERANCE, end_x=1.29, end_y=-0.59 - TOLERANCE)
+
+ # AND the start_component inside a valid tolerance area
+ start_component = mock_component(44, [0.96, -0.6, 0.08, 0.08])
+ # AND another component inside the start tolerance area, but further away than the other
+ close_to_start_component = mock_component(444, [0.96, -0.6 + 0.01, 0.08, 0.08])
+
+ # AND the end_component inside a valid tolerance area
+ end_component = mock_component(55, [1.29, -0.59, 0.06, 0.06])
+ # AND another component inside the end tolerance area, but further away than the other
+ close_to_end_component = mock_component(555, [1.29, -0.59 + 0.01, 0.06, 0.06])
+
+ # WHEN the connector is created
+ diagram_connector = CreateConnectorByLineCoordinates().create_connector(
+ shape=shape,
+ components=[start_component, close_to_start_component, end_component, close_to_end_component])
+
+ # THEN the returned diagram connector has the following properties
+ assert diagram_connector.id == 11
+ assert diagram_connector.from_id == 44
+ assert diagram_connector.to_id == 55
+ assert not diagram_connector.bidirectional
+
+ def test_create_bidirectional_connector(self, mocker):
+ # GIVEN a visio mocked connector shape
+ shape = MagicMock(ID=1, begin_x=1.04, begin_y=-0.56, end_x=1.29, end_y=-0.56)
+
+ # AND two connected components
+ component_a = mock_component(4, [0.96, -0.6, 0.08, 0.08])
+ component_b = mock_component(5, [1.29, -0.59, 0.06, 0.06])
+
+ # AND a mock for the is_bidirectional_connector function
+ # WHEN the connector is created
+ with patch('slp_visio.slp_visio.load.strategies.connector.impl.create_connector_by_line_coordinates.'
+ 'is_bidirectional_connector', return_value=True):
+ diagram_connector = CreateConnectorByLineCoordinates() \
+ .create_connector(shape=shape, components=[component_a, component_b])
+
+ # THEN the returned diagram connector has the following properties
+ assert diagram_connector.id == 1
+ assert diagram_connector.from_id == 4
+ assert diagram_connector.to_id == 5
+ assert diagram_connector.bidirectional
+
def test_create_connector_without_components(self):
# GIVEN a visio connector shape
shape = Mock(ID=1001, begin_x=0, begin_y=0, end_x=0, end_y=0)
# WHEN the connector is created
- strategy = CreateConnectorByLineCoordinates()
- diagram_connector = strategy.create_connector(shape)
+ diagram_connector = CreateConnectorByLineCoordinates().create_connector(shape)
# THEN no diagram is returned
assert not diagram_connector
@@ -111,8 +159,7 @@ def test_create_connector_invalid_line(self):
shape = Mock(ID=None, begin_x=None, begin_y=None, end_x=None, end_y=None)
# WHEN the connector is created
- strategy = CreateConnectorByLineCoordinates()
- diagram_connector = strategy.create_connector(shape)
+ diagram_connector = CreateConnectorByLineCoordinates().create_connector(shape)
# THEN no diagram is returned
assert not diagram_connector
diff --git a/slp_visio/tests/unit/load/test_vsdx_parse.py b/slp_visio/tests/unit/load/test_vsdx_parse.py
index 3fa261cb..f437fb8a 100644
--- a/slp_visio/tests/unit/load/test_vsdx_parse.py
+++ b/slp_visio/tests/unit/load/test_vsdx_parse.py
@@ -7,30 +7,34 @@
from slp_visio.slp_visio.load.vsdx_parser import VsdxParser
from slp_visio.tests.resources import test_resource_paths
+
class TestVsdxParser:
def test_name_in_child_shape(self):
# GIVEN the parser
parser = VsdxParser(VisioComponentFactory(), VisioConnectorFactory())
# WHEN we parse the vsdx file
- diagram : Diagram = parser.parse(test_resource_paths.visio_complex_stencil_text)
+ diagram: Diagram = parser.parse(test_resource_paths.visio_complex_stencil_text)
# THEN we check the components created
assert diagram.diagram_type == DiagramType.VISIO
- assert len( diagram.connectors) == 0
- assert len( diagram.components) == 1
+ assert len(diagram.connectors) == 0
+ assert len(diagram.components) == 1
assert diagram.components[0].origin == DiagramComponentOrigin.SIMPLE_COMPONENT
assert diagram.components[0].name == 'Custom AWS Step Functions workflow name'
assert diagram.components[0].id == '1'
+ # AND none component has parent because the parents are not calculated in VsdxParser
+ for component in diagram.components:
+ assert not component.parent
def test_name_in_two_master_page_with_children(self):
# GIVEN the parser
parser = VsdxParser(VisioComponentFactory(), VisioConnectorFactory())
# WHEN we parse the vsdx file
- diagram : Diagram = parser.parse(test_resource_paths.visio_two_lambda)
+ diagram: Diagram = parser.parse(test_resource_paths.visio_two_lambda)
# THEN we check the components created
assert diagram.diagram_type == DiagramType.VISIO
- assert len( diagram.connectors) == 0
- assert len( diagram.components) == 4
+ assert len(diagram.connectors) == 0
+ assert len(diagram.components) == 4
for component in diagram.components:
assert component.origin == DiagramComponentOrigin.SIMPLE_COMPONENT
assert diagram.components[0].name == 'First Lambda step-flow'
@@ -39,22 +43,21 @@ def test_name_in_two_master_page_with_children(self):
assert diagram.components[1].id == '45'
assert diagram.components[2].name == 'Lambda Function 1'
assert diagram.components[2].id == '35'
- assert diagram.components[2].parent.id == '1'
assert diagram.components[3].name == 'Lambda Function 2'
assert diagram.components[3].id == '63'
- assert diagram.components[3].parent.id == '45'
-
-
+ # AND none component has parent because the parents are not calculated in VsdxParser
+ for component in diagram.components:
+ assert not component.parent
def test_shape_group(self):
# GIVEN the parser
parser = VsdxParser(VisioComponentFactory(), VisioConnectorFactory())
# WHEN we parse the vsdx file
- diagram : Diagram = parser.parse(test_resource_paths.visio_shape_group)
+ diagram: Diagram = parser.parse(test_resource_paths.visio_shape_group)
# THEN we check the components created
assert diagram.diagram_type == DiagramType.VISIO
- assert len( diagram.connectors) == 0
- assert len( diagram.components) == 3
+ assert len(diagram.connectors) == 0
+ assert len(diagram.components) == 3
for component in diagram.components:
assert component.origin == DiagramComponentOrigin.SIMPLE_COMPONENT
assert diagram.components[0].name == 'My Cloud Menu'
@@ -63,16 +66,19 @@ def test_shape_group(self):
assert diagram.components[1].id == '3'
assert diagram.components[2].name == 'My Keys Menu'
assert diagram.components[2].id == '9'
+ # AND none component has parent because the parents are not calculated in VsdxParser
+ for component in diagram.components:
+ assert not component.parent
def test_children_with_same_relative_coordinates(self):
# GIVEN the parser
parser = VsdxParser(VisioComponentFactory(), VisioConnectorFactory())
# WHEN we parse the vsdx file
- diagram : Diagram = parser.parse(test_resource_paths.lucid_two_children_same_relative_coordinates)
+ diagram: Diagram = parser.parse(test_resource_paths.lucid_two_children_same_relative_coordinates)
# THEN we check the components created
assert diagram.diagram_type == DiagramType.VISIO
- assert len( diagram.connectors) == 0
- assert len( diagram.components) == 6
+ assert len(diagram.connectors) == 0
+ assert len(diagram.components) == 6
for component in diagram.components:
assert component.origin == DiagramComponentOrigin.SIMPLE_COMPONENT
assert diagram.components[0].name == 'VPC1'
@@ -87,4 +93,6 @@ def test_children_with_same_relative_coordinates(self):
assert diagram.components[4].id == '20'
assert diagram.components[5].name == 'GIT/Kubernetes ECS2'
assert diagram.components[5].id == '23'
-
+ # AND none component has parent because the parents are not calculated in VsdxParser
+ for component in diagram.components:
+ assert not component.parent
diff --git a/slp_visio/tests/unit/parse/representation/test_representation_calculator.py b/slp_visio/tests/unit/parse/representation/test_representation_calculator.py
index b32fd2b7..fa776f1b 100644
--- a/slp_visio/tests/unit/parse/representation/test_representation_calculator.py
+++ b/slp_visio/tests/unit/parse/representation/test_representation_calculator.py
@@ -1,5 +1,4 @@
-from _pytest.mark import param
-from pytest import mark
+from pytest import mark, param
from shapely.geometry import Polygon, box
from otm.otm.entity.representation import RepresentationElement
@@ -23,7 +22,7 @@ def create_component(
origin: DiagramComponentOrigin = DiagramComponentOrigin.SIMPLE_COMPONENT,
parent: DiagramComponent = None,
trustzone: bool = False,
- representation: Polygon= None,
+ representation: Polygon = None,
) -> DiagramComponent:
return DiagramComponent(
id=COMPONENT_ID,
@@ -47,7 +46,6 @@ def create_representation(xy: (), wh: ()) -> RepresentationElement:
class TestRepresentationCalculator:
-
LARGER_REPRESENTATION = create_representation((66, 82), (66, 33))
MEDIUM_REPRESENTATION = create_representation((16, 32), (66, 33))
NONE_REPRESENTATION = create_representation((82, 98), (66, 33))
@@ -139,7 +137,6 @@ def test_boundary_trustzone_without_parent(self):
trustzone = create_component(
origin=DiagramComponentOrigin.BOUNDARY,
trustzone=True,
- parent=None,
representation=LARGER_SHAPE
)
@@ -154,7 +151,6 @@ def test_simple_trustzone_without_parent(self):
trustzone = create_component(
origin=DiagramComponentOrigin.SIMPLE_COMPONENT,
trustzone=True,
- parent=None,
representation=LARGER_SHAPE
)
diff --git a/slp_visio/tests/unit/parse/test_lucid_parser.py b/slp_visio/tests/unit/parse/test_lucid_parser.py
new file mode 100644
index 00000000..80d356a5
--- /dev/null
+++ b/slp_visio/tests/unit/parse/test_lucid_parser.py
@@ -0,0 +1,190 @@
+from typing import List
+from unittest.mock import MagicMock, patch
+
+import pytest
+from pytest import fixture
+
+from slp_visio.slp_visio.parse.lucid_parser import LucidParser
+from slp_visio.slp_visio.parse.visio_parser import VisioParser
+
+
+def __get_shapes(shape_ids: List[str]):
+ return lambda _: {key: MagicMock() for key in shape_ids}
+
+
+def __get_lucid_parser_method(method_name):
+ return f"{VisioParser.__module__}.{VisioParser.__name__}.{method_name}"
+
+
+@fixture(autouse=True)
+def mocked_trustzone_mappings():
+ yield []
+
+
+@fixture(autouse=True)
+def mocked_component_mappings():
+ yield []
+
+
+@fixture(autouse=True)
+def mock_get_trustzone_mappings(mocker, mocked_trustzone_mappings):
+ mocker.patch(__get_lucid_parser_method('_get_trustzone_mappings'), __get_shapes(mocked_trustzone_mappings))
+
+
+@fixture(autouse=True)
+def mock_get_component_mappings(mocker, mocked_component_mappings):
+ mocker.patch(__get_lucid_parser_method('_get_component_mappings'), __get_shapes(mocked_component_mappings))
+
+
+def mock_diagram():
+ components = []
+ return MagicMock(components=components)
+
+
+class TestLucidParser:
+
+ @pytest.mark.parametrize('catch_all_config', [
+ pytest.param({}, id='None configuration'),
+ pytest.param({'catch_all': False}, id='Configured as boolean'),
+ pytest.param({'catch_all': 'False'}, id='Configured as string Capital F'),
+ pytest.param({'catch_all': 'false'}, id='Configured as string ')
+ ])
+ def test_none_catch_all_config(self, catch_all_config):
+ # GIVEN a mapping loader with none configuration
+ mapping_loader = MagicMock(configuration=catch_all_config)
+ diagram = MagicMock(components=[MagicMock(id='1', type="AmazonEC22017")])
+ lucid_parser = LucidParser(*(MagicMock(),) * 2, diagram, mapping_loader)
+
+ # WHEN _get_component_mappings is called in LucidParser
+ component_mappings = lucid_parser._get_component_mappings()
+
+ # THEN none components are mapped
+ assert len(component_mappings) == 0
+
+ @pytest.mark.parametrize('shape_type', [
+ pytest.param("AmazonEC22017", id='2017'),
+ pytest.param("DatabaseAWS19", id='AWS19'),
+ pytest.param("AWSCloudAWS2021", id='AWS2021$'),
+ pytest.param("ACAccessControlBlock", id='AC.*Block'),
+ pytest.param("AEAndroidPhoneBlock", id='AE.*Block'),
+ pytest.param("AGSUserBlock", id='AGS.*Block'),
+ pytest.param("AVMActiveDirectoryVMBlock", id='AVM.*Block'),
+ pytest.param("AzureDatabaseforPostgreSQLServersAzure2019", id='Azure2019'),
+ pytest.param("WebApplicationFirewallPoliciesWAFAzure2021", id='Azure2021$'),
+ ])
+ def test_catch_all_by_regex(self, shape_type):
+ # GIVEN a mapping loader with catch_all configuration
+ mapping_loader = MagicMock(configuration={'catch_all': 'empty-component'})
+ # AND a diagram with a shape of the given type
+ diagram = MagicMock(components=[MagicMock(id='1', type=shape_type)])
+ lucid_parser = LucidParser(*(MagicMock(),) * 2, diagram, mapping_loader)
+
+ # WHEN _get_component_mappings is called in LucidParser
+ component_mappings = lucid_parser._get_component_mappings()
+
+ # THEN one component is mapped
+ assert len(component_mappings) == 1
+ # AND shape_id 1 is mapped as catch all
+ assert '1' in component_mappings
+ assert component_mappings['1']['label'] == shape_type
+ assert component_mappings['1']['type'] == 'empty-component'
+
+ @pytest.mark.parametrize('mocked_trustzone_mappings,mocked_component_mappings', [
+ pytest.param(['2'], ['3'], id='one trustzone and one component mapped')
+ ])
+ def test_skip_mapped_shapes(self, mocked_trustzone_mappings, mocked_component_mappings):
+ # GIVEN a mapping loader with catch_all configuration
+ mapping_loader = MagicMock(configuration={'catch_all': 'empty-component'})
+ # AND a diagram with 3 shapes
+ diagram = MagicMock(components=[MagicMock(id='1', type='AmazonEC22017'),
+ MagicMock(id='2', type='trustzone'),
+ MagicMock(id='3', type='component')])
+ lucid_parser = LucidParser(*(MagicMock(),) * 2, diagram, mapping_loader)
+
+ # WHEN _get_component_mappings is called in LucidParser
+ component_mappings = lucid_parser._get_component_mappings()
+
+ # THEN two component is mapped
+ assert len(component_mappings) == 2
+ # AND shape_id 1 is mapped as catch all
+ assert '1' in component_mappings
+ assert component_mappings['1']['label'] == 'AmazonEC22017'
+ assert component_mappings['1']['type'] == 'empty-component'
+ # AND shape_id 3 is mapped by invoking the super method
+ assert '3' in component_mappings
+ assert isinstance(component_mappings['3'], MagicMock)
+
+ @pytest.mark.parametrize('skip_config,expected', [
+ pytest.param({'skip': ['AmazonEC22017', 'AmazonAPIGatewayAWS2021']}, [], id='with version'),
+ pytest.param({'skip': ['AmazonEC2', 'AmazonAPIGateway']}, [], id='without version'),
+ pytest.param({}, ['5', '19'], id='without skip'),
+ pytest.param({'skip': ''}, ['5', '19'], id='empty skip'),
+ pytest.param({'skip': ['amazonEC22017', 'amazonAPIGatewayAWS2021']}, ['5', '19'],
+ id='typo in skip with version'),
+ pytest.param({'skip': ['amazonEC2', 'amazonAPIGatewayAWS']}, ['5', '19'], id='typo in skip without version')
+ ])
+ @patch.object(VisioParser, '_get_component_mappings', return_value={'5': {'label': 'AmazonEC2', 'type': 'ec2'},
+ '19': {'label': 'AmazonAPIGatewayAWS2021',
+ 'type': 'empty-component'}})
+ def test_get_component_mappings_skip_config(self, visio_get_component_mappings, skip_config, expected):
+ """
+ Test the skip config without catch all configuration.
+
+ This test function checks the behavior of remove components present in skip configuration.
+
+ """
+ # GIVEN a mapping loader with skip configuration
+ mapping_loader = MagicMock(configuration=skip_config)
+ # AND the diagram with these components
+ ec2 = MagicMock(id='5', type='AmazonEC22017')
+ apigw = MagicMock(id='19', type='AmazonAPIGatewayAWS2021')
+ diagram = MagicMock(components=[ec2, apigw])
+ # AND the parser
+ lucid_parser = LucidParser(*(MagicMock(),) * 2, diagram, mapping_loader)
+
+ # WHEN _get_component_mappings is called in LucidParser
+ component_mappings = lucid_parser._get_component_mappings()
+
+ # THEN the components mapped are as expected
+ assert sorted(list(component_mappings.keys())) == sorted(expected)
+
+ @pytest.mark.parametrize('skip_config, expected', [
+ pytest.param({}, ['5', '14', '19', '23'], id='no skip'),
+ pytest.param({'skip': ['AmazonEC2']}, ['14', '19', '23'], id='mapped+skip'),
+ pytest.param({'skip': ['Azure Storage', 'AmazonAPIGatewayAWS2021'], 'catch-all': 'empty-component'},
+ ['5', '14'], id='catchall+skip'),
+ pytest.param({'skip': ['AmazonEC2', 'Azure Storage', 'CorporateDataCenterContainer2017'],
+ 'catch-all': 'empty-component'},
+ ['19'], id='mapped+catchall+skip'),
+ ])
+ @patch.object(VisioParser, '_get_component_mappings',
+ return_value={'5': {'label': 'AmazonEC2', 'type': 'ec2'}})
+ @patch.object(LucidParser, '_LucidParser__get_catch_all_mappings',
+ return_value={'14': {'label': 'CorporateDataCenterContainer2017', 'type': 'empty-component'},
+ '19': {'label': 'AmazonAPIGatewayAWS2021', 'type': 'empty-component'},
+ '23': {'label': 'Azure Storage', 'type': 'azure-storage'}})
+ def test_skip_config_with_catch_all_config(self, visio_get_component_mappings, lucid__get_catch_all_mappings,
+ skip_config, expected):
+ """
+ Test the skip config with catch all configuration.
+
+ This test function checks the behavior of remove components present in skip configuration, this also removes
+ components mapped previously by catch all configuration.
+
+ """
+ # GIVEN a mapping loader with skip configuration
+ mapping_loader = MagicMock(configuration=skip_config)
+ # AND the diagram with these components
+ ec2 = MagicMock(id='5', type='AmazonEC22017')
+ datacenter = MagicMock(id='14', type='CorporateDataCenterContainer2017')
+ apigw = MagicMock(id='19', type='AmazonAPIGatewayAWS2021')
+ azure_storage = MagicMock(id='23', type='Azure Storage')
+ diagram = MagicMock(components=[ec2, datacenter, apigw, azure_storage])
+ # AND the parser
+ lucid_parser = LucidParser(*(MagicMock(),) * 2, diagram, mapping_loader)
+
+ # WHEN _get_component_mappings is called in LucidParser
+ component_mappings = lucid_parser._get_component_mappings()
+
+ # THEN the components mapped are as expected
+ assert sorted(list(component_mappings.keys())) == sorted(expected)
diff --git a/slp_visio/tests/unit/parse/test_visio_parser.py b/slp_visio/tests/unit/parse/test_visio_parser.py
index b32e1f80..50dfe8fe 100644
--- a/slp_visio/tests/unit/parse/test_visio_parser.py
+++ b/slp_visio/tests/unit/parse/test_visio_parser.py
@@ -2,6 +2,7 @@
from unittest.mock import MagicMock
import pytest
+from shapely import Polygon
from otm.otm.entity.parent_type import ParentType
from slp_visio.slp_visio.parse.visio_parser import VisioParser, _match_resource_by_dict
@@ -9,29 +10,37 @@
tz1 = MagicMock(id='tz1')
tz1.name = 'AWS Region: us-east-1'
tz1.type = 'RegionAWS2021'
-tz1.parent = None
+tz1.representation = Polygon([[100, 100], [800, 100], [800, 800], [100, 800]])
+
+tz2 = MagicMock(id='tz2')
+tz2.name = 'AWS Region inside tz1'
+tz2.type = 'IgnoredRegion'
+tz2.representation = Polygon([[105, 105], [790, 105], [790, 790], [105, 790]])
+
+tz3 = MagicMock(id='tz3')
+tz3.name = 'Group inside tz2'
+tz3.type = 'IgnoredGroup'
+tz3.representation = Polygon([[107, 107], [780, 107], [780, 780], [107, 780]])
c1 = MagicMock(id='c1')
c1.name = 'EC2 instance'
c1.type = 'AmazonEC2instance2017'
-c1.parent = tz1
+c1.representation = Polygon([[110, 110], [220, 110], [220, 220], [110, 220]])
c2 = MagicMock(id='c2')
c2.name = 'S3'
c2.type = 'AmazonS32017'
-c2.parent = c1
+c2.representation = Polygon([[120, 120], [160, 120], [160, 160], [120, 160]])
c3 = MagicMock(id='c3')
c3.name = 'S3'
c3.type = 'AmazonSimpleStorageServiceS3AWS19'
-c3.parent = None
+c3.representation = Polygon([[1100, 1100], [1200, 1100], [1200, 1200], [1100, 1200]])
c4 = MagicMock(id='c4')
c4.name = 'ignore'
c4.type = 'ignore'
-c4.parent = None
-
-diagram_components = [tz1, c1, c2, c3, c4]
+c4.representation = Polygon([[1400, 1400], [1200, 1400], [1200, 1200], [1400, 1200]])
default_trustzone = MagicMock(id='1', type='default-trustzone')
@@ -110,7 +119,7 @@ def test_build_otm_mapping_by_label(self, mapping_type):
visio_parser = VisioParser(
'project_id',
'project_name',
- MagicMock(components=diagram_components),
+ MagicMock(components=[tz1, c1, c2, c3, c4]),
mapping_loader
)
visio_parser.representations = [MagicMock()]
@@ -159,3 +168,57 @@ def test_match_resource_by_dict(self, label: dict, value: str):
])
def test_no_match_resource_by_dict(self, label: dict, value: str):
assert not _match_resource_by_dict(label, value)
+
+ @pytest.mark.parametrize('diagram_components', [
+ pytest.param([tz1, c1, c2, c3, c4], id="big"),
+ pytest.param([tz2, c1, c2, c3, c4], id="medium"),
+ pytest.param([tz3, c1, c2, c3, c4], id="little"),
+ pytest.param([tz1, tz2, c1, c2, c3, c4], id="big>medium"),
+ pytest.param([tz1, tz3, c1, c2, c3, c4], id="big>little"),
+ pytest.param([tz2, tz3, c1, c2, c3, c4], id="medium>little"),
+ pytest.param([tz1, tz2, tz3, c1, c2, c3, c4], id="big>medium>little"),
+ ])
+ def test_build_otm_nested_parents(self, diagram_components):
+ # GIVEN a mapping loader with the first tz mapped
+ mapped_tz = diagram_components[0]
+ mapping_loader.get_trustzone_mappings = lambda: [{'type': 'type', 'label': mapped_tz.type}]
+ mapping_loader.get_component_mappings = get_component_mappings('label')
+
+ visio_parser = VisioParser(
+ 'project_id',
+ 'project_name',
+ MagicMock(components=diagram_components),
+ mapping_loader
+ )
+ visio_parser.representations = [MagicMock()]
+ visio_parser._representation_calculator = MagicMock()
+
+ # WHEN map_by_label is called
+ otm = visio_parser.build_otm()
+
+ # THEN the OTM is correctly generated
+ # AND the components and trust zones are generated
+ assert len(otm.trustzones) == 2
+ assert otm.trustzones[0].id == mapped_tz.id
+ assert otm.trustzones[0].name == mapped_tz.name
+ assert otm.trustzones[1].id == default_trustzone.id
+ assert otm.trustzones[1].name == default_trustzone.name
+
+ assert len(otm.components) == 3
+ assert otm.components[0].id == c1.id
+ assert otm.components[0].name == c1.name
+ assert otm.components[0].type == 'ec2'
+ assert otm.components[0].parent == mapped_tz.id
+ assert otm.components[0].parent_type == ParentType.TRUST_ZONE
+
+ assert otm.components[1].id == c2.id
+ assert otm.components[1].name == c2.name
+ assert otm.components[1].type == 's3'
+ assert otm.components[1].parent == c1.id
+ assert otm.components[1].parent_type == ParentType.COMPONENT
+
+ assert otm.components[2].id == c3.id
+ assert otm.components[2].name == c3.name
+ assert otm.components[2].type == 's3'
+ assert otm.components[2].parent == default_trustzone.id
+ assert otm.components[2].parent_type == ParentType.TRUST_ZONE
diff --git a/slp_visio/tests/unit/test_visio_processor.py b/slp_visio/tests/unit/test_visio_processor.py
new file mode 100644
index 00000000..22f2aaf6
--- /dev/null
+++ b/slp_visio/tests/unit/test_visio_processor.py
@@ -0,0 +1,27 @@
+from unittest.mock import MagicMock
+
+import pytest
+
+from slp_base import DiagramType
+from slp_visio import VisioProcessor
+from slp_visio.slp_visio.parse.lucid_parser import LucidParser
+from slp_visio.slp_visio.parse.visio_parser import VisioParser
+
+
+class TestVisioProcessor:
+
+ @pytest.mark.parametrize('diag_type, expected_provider_parser', [
+ pytest.param(DiagramType.VISIO, VisioParser, id='with VISIO type'),
+ pytest.param(DiagramType.LUCID, LucidParser, id='with LUCID type'),
+ ])
+ def test_get_provider_parser(self, diag_type, expected_provider_parser):
+ # GIVEN the visio processor initiated with the configured diag_type
+ processor = VisioProcessor(*(MagicMock(),) * 4, diag_type=diag_type)
+ processor.loader = MagicMock()
+ processor.mapping_loader = MagicMock()
+
+ # WHEN getting the provider parser
+ provider_parser = processor.get_provider_parser()
+
+ # THEN the provider parser is as expected
+ assert isinstance(provider_parser, expected_provider_parser)
diff --git a/slp_visio/tests/unit/validate/test_schema.py b/slp_visio/tests/unit/validate/test_schema.py
index 0e5505fb..eda0c471 100644
--- a/slp_visio/tests/unit/validate/test_schema.py
+++ b/slp_visio/tests/unit/validate/test_schema.py
@@ -8,7 +8,7 @@
SCHEMA_FILENAME = VisioMappingFileValidator.schema_filename
VALID_MAPPING_FILE = test_resource_paths.default_visio_mapping
-INVALID_MAPPING_FILE = test_resource_paths.invalid_no_dataflows
+INVALID_MAPPING_FILE = test_resource_paths.invalid_no_components
class TestSchema(TestCase):
@@ -38,4 +38,4 @@ def test_invalid_mapping(self):
mapping_file_schema.validate(mapping_file_data)
assert not mapping_file_schema.valid
- assert mapping_file_schema.errors == "'dataflows' is a required property"
\ No newline at end of file
+ assert mapping_file_schema.errors == "'components' is a required property"
diff --git a/startleft/startleft/cli/cli.py b/startleft/startleft/cli/cli.py
index 3028dbab..d8103e8e 100644
--- a/startleft/startleft/cli/cli.py
+++ b/startleft/startleft/cli/cli.py
@@ -2,12 +2,13 @@
import logging
import re
import sys
+from typing import List, Optional
import click
from _sl_build.modules import PROCESSORS
from otm.otm.entity.otm import OTM
-from sl_util.sl_util.file_utils import get_byte_data
+from sl_util.sl_util.file_utils import get_byte_data, write_list_of_dictionaries_to_csv, get_source_files
from slp_base import CommonError
from slp_base import DiagramType, OTMGenerationError, EtmType
from slp_base import IacType
@@ -16,6 +17,7 @@
from slp_base.slp_base.provider_resolver import ProviderResolver
from slp_cft.slp_cft.cft_searcher import CloudformationSearcher
from slp_tf.slp_tf.tf_searcher import TerraformSearcher
+from slp_visio.slp_visio.visio_summary import VisioSummary
from startleft.startleft._version.version_loader import load_startleft_version
from startleft.startleft.api import fastapi_server
from startleft.startleft.cli.clioptions.exclusion_option import Exclusion
@@ -139,6 +141,24 @@ def parse_etm(etm_type, default_mapping_file, custom_mapping_file, output_file,
get_otm_as_file(otm, output_file)
+def __diagram_summary(source_files: List[str], default_mapping_file: Optional[str], custom_mapping_file: Optional[str],
+ diagram_type: str):
+ __source_files = []
+ __mapping_data_list = []
+ __type = DiagramType(diagram_type.upper()) if diagram_type else DiagramType.VISIO
+
+ for source_file in get_source_files(source_files, ['.vsdx', '.VSDX']):
+ __source_files.append(open(source_file, "r"))
+
+ if default_mapping_file:
+ __mapping_data_list.append(get_byte_data(default_mapping_file))
+
+ if custom_mapping_file:
+ __mapping_data_list.append(get_byte_data(custom_mapping_file))
+
+ return VisioSummary(__source_files, __mapping_data_list, __type).get_elements()
+
+
@cli.command(name='parse')
@click.option(IAC_TYPE_NAME, IAC_TYPE_SHORTNAME,
type=click.Choice(IAC_TYPE_SUPPORTED, case_sensitive=False),
@@ -232,6 +252,31 @@ def search(iac_type, query, source_file):
get_iac_searcher(iac_type, [get_byte_data(sf) for sf in source_file]).search(query)
+@cli.command(name='summary')
+@click.option(DIAGRAM_TYPE_NAME, DIAGRAM_TYPE_SHORTNAME,
+ type=click.Choice(DIAGRAM_TYPE_SUPPORTED, case_sensitive=False),
+ help=DIAGRAM_TYPE_DESC, required=True)
+@click.option(DEFAULT_MAPPING_FILE_NAME, DEFAULT_MAPPING_FILE_SHORTNAME,
+ help=DEFAULT_MAPPING_FILE_DESC,
+ required=False)
+@click.option(CUSTOM_MAPPING_FILE_NAME, CUSTOM_MAPPING_FILE_SHORTNAME,
+ help=CUSTOM_MAPPING_FILE_DESC,
+ required=False)
+@click.option(OUTPUT_FILE_NAME, OUTPUT_FILE_SHORTNAME, default='summary.csv', help=SUMMARY_FILE_DESC)
+@click.argument(SOURCE_FILES_NAME, required=False, nargs=-1)
+def summary(diagram_type: str, default_mapping_file, custom_mapping_file, output_file: str, source_files: List[str]) -> None:
+ """
+ Generates a summary CSV file of the given source files
+ """
+
+ elements = __diagram_summary(source_files, default_mapping_file, custom_mapping_file, diagram_type)
+
+ write_list_of_dictionaries_to_csv(
+ sorted(elements, key=lambda x: (x['SOURCE'], x['SOURCE_ELEMENT_TYPE'])),
+ elements[0].keys() if len(elements) > 0 else [],
+ output_file)
+
+
@cli.command()
@click.option('--host', '-h', default="127.0.0.1", envvar='STARTLEFT_HOST', help='Startleft deployment host.')
@click.option('--port', '-p', default=5000, envvar='STARTLEFT_PORT', help='Startleft deployment port.')
diff --git a/startleft/startleft/messages.py b/startleft/startleft/messages.py
index 4a9b8227..15d01988 100644
--- a/startleft/startleft/messages.py
+++ b/startleft/startleft/messages.py
@@ -23,6 +23,7 @@
# CLI
SOURCE_FILE_NAME = 'source-file'
+SOURCE_FILES_NAME = 'source-files'
IAC_TYPE_NAME = '--iac-type'
IAC_TYPE_SHORTNAME = '-t'
@@ -53,6 +54,7 @@
OUTPUT_FILE_SHORTNAME = '-o'
OUTPUT_FILE_DESC = 'OTM output file.'
OUTPUT_FILE = 'threatmodel.otm'
+SUMMARY_FILE_DESC = 'Summary output file.'
PROJECT_NAME_NAME = '--project-name'
PROJECT_NAME_SHORTNAME = '-n'
diff --git a/startleft/tests/resources/lucid/lucid-aws-with-tz-and-vpc.yaml b/startleft/tests/resources/lucid/lucid-aws-with-tz-and-vpc.yaml
index ad3b3078..f3b82df8 100644
--- a/startleft/tests/resources/lucid/lucid-aws-with-tz-and-vpc.yaml
+++ b/startleft/tests/resources/lucid/lucid-aws-with-tz-and-vpc.yaml
@@ -24,8 +24,3 @@ components:
- label: Custom VPC
type: empty-component
-
-
-
-
-dataflows: []
diff --git a/startleft/tests/resources/lucid/lucid-aws-with-tz.yaml b/startleft/tests/resources/lucid/lucid-aws-with-tz.yaml
index ae75ef28..40dba7ac 100644
--- a/startleft/tests/resources/lucid/lucid-aws-with-tz.yaml
+++ b/startleft/tests/resources/lucid/lucid-aws-with-tz.yaml
@@ -21,6 +21,3 @@ components:
- label: My DynamoDB
type: dynamodb
-
-
-dataflows: []
diff --git a/startleft/tests/resources/visio/aws-visio-mapping.yaml b/startleft/tests/resources/visio/aws-visio-mapping.yaml
index 29ec7d72..b79690e4 100644
--- a/startleft/tests/resources/visio/aws-visio-mapping.yaml
+++ b/startleft/tests/resources/visio/aws-visio-mapping.yaml
@@ -286,5 +286,3 @@ components:
- label: Bucket
type: s3
-
-dataflows: []
\ No newline at end of file
diff --git a/tests/integration/api/controllers/diagram/lucid/test_otm_controller_diagram_lucid.py b/tests/integration/api/controllers/diagram/lucid/test_otm_controller_diagram_lucid.py
index 9c14f9da..9c5316ea 100644
--- a/tests/integration/api/controllers/diagram/lucid/test_otm_controller_diagram_lucid.py
+++ b/tests/integration/api/controllers/diagram/lucid/test_otm_controller_diagram_lucid.py
@@ -8,25 +8,25 @@
from sl_util.sl_util.file_utils import get_byte_data
from slp_base.slp_base.errors import DiagramFileNotValidError, MappingFileNotValidError, LoadingMappingFileError, \
OTMResultError, OTMBuildingError, LoadingDiagramFileError
-from slp_visio.tests.unit.util.test_uuid import is_valid_uuid
+from slp_base.tests.util.otm import validate_and_compare_otm
from startleft.startleft.api import fastapi_server
from startleft.startleft.api.controllers.diagram import diag_create_otm_controller
from tests.resources import test_resource_paths
-from tests.resources.test_resource_paths import visio_aws_with_tz_and_vpc, default_visio_mapping, \
- custom_vpc_mapping
-
-IRIUSRISK_URL = ''
+from tests.resources.test_resource_paths import visio_aws_with_tz_and_vpc, default_visio_mapping
webapp = fastapi_server.webapp
client = TestClient(webapp)
+yaml_mime = 'text/yaml'
+
def get_url():
return diag_create_otm_controller.PREFIX + diag_create_otm_controller.URL
octet_stream = 'application/octet-stream'
+json_mime = 'application/json'
class TestOTMControllerDiagramLucid:
@@ -34,7 +34,7 @@ class TestOTMControllerDiagramLucid:
@responses.activate
def test_create_otm_ok_lucid_aws_with_tz(self):
# Given a project_id
- project_id: str = 'project_A_id'
+ project_id: str = 'test_parse_diagram_file_ok'
# And the source file
diag_file = get_byte_data(test_resource_paths.lucid_aws_with_tz)
@@ -43,148 +43,30 @@ def test_create_otm_ok_lucid_aws_with_tz(self):
mapping_file = get_byte_data(test_resource_paths.default_lucid_mapping)
custom_mapping_file = get_byte_data(test_resource_paths.lucid_aws_with_tz_mapping)
+ # And the expected otm
+ expected_otm = test_resource_paths.lucid_aws_with_tz_otm
+
# When I do post on diagram endpoint
files = {'diag_file': diag_file,
'default_mapping_file': mapping_file,
'custom_mapping_file': custom_mapping_file
}
- body = {'diag_type': 'LUCID', 'id': f'{project_id}', 'name': 'project_A_name'}
+ body = {'diag_type': 'LUCID', 'id': project_id, 'name': project_id}
response = client.post(get_url(), files=files, data=body)
# Then the OTM is returned inside the response as JSON
assert response.status_code == diag_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
otm = json.loads(response.text)
- assert otm['otmVersion'] == '0.1.0'
- assert otm['project']['id'] == project_id
- assert otm['project']['name'] == 'project_A_name'
-
- assert len(otm['representations']) == 1
-
- assert otm['representations'][0]['name'] == f'{project_id} Diagram Representation'
- assert otm['representations'][0]['id'] == f'{project_id}-diagram'
- assert otm['representations'][0]['type'] == 'diagram'
- assert otm['representations'][0]['size']['width'] == 2378
- assert otm['representations'][0]['size']['height'] == 1558
-
- assert len(otm['trustZones']) == 3
-
- assert otm['trustZones'][0]['id'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
- assert otm['trustZones'][0]['name'] == 'Public Cloud'
- assert len(otm['trustZones'][0]['risk']) == 1
- assert otm['trustZones'][0]['risk']['trustRating'] == 10
- assert otm['trustZones'][1]['id'] == '2ab4effa-40b7-4cd2-ba81-8247d29a6f2d'
- assert otm['trustZones'][1]['name'] == 'Private Secured Cloud'
- assert len(otm['trustZones'][1]['risk']) == 1
- assert otm['trustZones'][1]['risk']['trustRating'] == 10
- assert otm['trustZones'][2]['id'] == 'f0ba7722-39b6-4c81-8290-a30a248bb8d9'
- assert otm['trustZones'][2]['name'] == 'Internet'
- assert len(otm['trustZones'][2]['risk']) == 1
- assert otm['trustZones'][2]['risk']['trustRating'] == 10
-
- assert len(otm['components']) == 9
-
- assert otm['components'][0]['id'] == '7'
- assert otm['components'][0]['name'] == 'My EC2'
- assert otm['components'][0]['type'] == 'ec2'
- assert len(otm['components'][0]['parent']) == 1
- assert otm['components'][0]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][1]['id'] == '10'
- assert otm['components'][1]['name'] == 'My CloudWatch'
- assert otm['components'][1]['type'] == 'cloudwatch'
- assert len(otm['components'][1]['parent']) == 1
- assert otm['components'][1]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][2]['id'] == '15'
- assert otm['components'][2]['name'] == 'My API Gateway'
- assert otm['components'][2]['type'] == 'api-gateway'
- assert len(otm['components'][2]['parent']) == 1
- assert otm['components'][2]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][3]['id'] == '24'
- assert otm['components'][3]['name'] == 'My CloudTrail'
- assert otm['components'][3]['type'] == 'cloudtrail'
- assert len(otm['components'][3]['parent']) == 1
- assert otm['components'][3]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][4]['id'] == '27'
- assert otm['components'][4]['name'] == 'My Simple Storage Service (S3)'
- assert otm['components'][4]['type'] == 's3'
- assert len(otm['components'][4]['parent']) == 1
- assert otm['components'][4]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][5]['id'] == '36'
- assert otm['components'][5]['name'] == 'Web browser'
- assert otm['components'][5]['type'] == 'generic-client'
- assert len(otm['components'][5]['parent']) == 1
- assert otm['components'][5]['parent']['trustZone'] == 'f0ba7722-39b6-4c81-8290-a30a248bb8d9'
-
- assert otm['components'][6]['id'] == '42'
- assert otm['components'][6]['name'] == 'Android'
- assert otm['components'][6]['type'] == 'android-device-client'
- assert len(otm['components'][6]['parent']) == 1
- assert otm['components'][6]['parent']['trustZone'] == 'f0ba7722-39b6-4c81-8290-a30a248bb8d9'
-
- assert otm['components'][7]['id'] == '45'
- assert otm['components'][7]['name'] == 'SQL Database'
- assert otm['components'][7]['type'] == 'CD-MICROSOFT-AZURE-SQL-DB'
- assert len(otm['components'][7]['parent']) == 1
- assert otm['components'][7]['parent']['trustZone'] == '2ab4effa-40b7-4cd2-ba81-8247d29a6f2d'
-
- assert otm['components'][8]['id'] == '51'
- assert otm['components'][8]['name'] == 'My DynamoDB'
- assert otm['components'][8]['type'] == 'dynamodb'
- assert len(otm['components'][8]['parent']) == 1
- assert otm['components'][8]['parent']['trustZone'] == '2ab4effa-40b7-4cd2-ba81-8247d29a6f2d'
-
- assert len(otm['dataflows']) == 8
-
- assert otm['dataflows'][0]['id'] == '30'
- assert otm['dataflows'][0]['name'] == 'EC2 Logs'
- assert otm['dataflows'][0]['source'] == '7'
- assert otm['dataflows'][0]['destination'] == '10'
-
- assert otm['dataflows'][1]['id'] == '31'
- assert otm['dataflows'][1]['name'] == 'GW/EC2'
- assert otm['dataflows'][1]['source'] == '15'
- assert otm['dataflows'][1]['destination'] == '7'
-
- assert otm['dataflows'][2]['id'] == '32'
- assert otm['dataflows'][2]['name'] == 'Log trace'
- assert otm['dataflows'][2]['source'] == '15'
- assert otm['dataflows'][2]['destination'] == '24'
-
- assert otm['dataflows'][3]['id'] == '33'
- assert otm['dataflows'][3]['name'] == 'Customer data'
- assert otm['dataflows'][3]['source'] == '15'
- assert otm['dataflows'][3]['destination'] == '27'
-
- assert otm['dataflows'][4]['id'] == '41'
- assert len(otm['dataflows'][4]['name']) == 36
- assert otm['dataflows'][4]['source'] == '36'
- assert otm['dataflows'][4]['destination'] == '15'
-
- assert otm['dataflows'][5]['id'] == '44'
- assert len(otm['dataflows'][5]['name']) == 36
- assert otm['dataflows'][5]['source'] == '42'
- assert otm['dataflows'][5]['destination'] == '15'
-
- assert otm['dataflows'][6]['id'] == '54'
- assert otm['dataflows'][6]['name'] == 'User data'
- assert otm['dataflows'][6]['source'] == '15'
- assert otm['dataflows'][6]['destination'] == '51'
-
- assert otm['dataflows'][7]['id'] == '55'
- assert otm['dataflows'][7]['name'] == 'App data'
- assert otm['dataflows'][7]['source'] == '15'
- assert otm['dataflows'][7]['destination'] == '45'
+ # and the otm is as expected
+ result, expected = validate_and_compare_otm(otm, expected_otm, None)
+ assert result == expected
@responses.activate
def test_create_otm_ok_lucid_aws_with_tz_and_vpc(self):
# Given a project_id
- project_id: str = 'project_A_id'
+ project_id: str = 'test_parse_diagram_file_ok'
# And the source file
diag_file = get_byte_data(test_resource_paths.lucid_aws_with_tz_and_vpc)
@@ -193,233 +75,25 @@ def test_create_otm_ok_lucid_aws_with_tz_and_vpc(self):
mapping_file = get_byte_data(test_resource_paths.default_lucid_mapping)
custom_mapping_file = get_byte_data(test_resource_paths.lucid_aws_with_tz_and_vpc_mapping)
+ # And the expected otm
+ expected_otm = test_resource_paths.lucid_aws_with_tz_and_vpc_otm
+
# When I do post on diagram endpoint
files = {'diag_file': diag_file,
'default_mapping_file': mapping_file,
'custom_mapping_file': custom_mapping_file
}
- body = {'diag_type': 'LUCID', 'id': f'{project_id}', 'name': 'project_A_name'}
+ body = {'diag_type': 'LUCID', 'id': project_id, 'name': project_id}
response = client.post(get_url(), files=files, data=body)
# Then the OTM is returned inside the response as JSON
assert response.status_code == diag_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
otm = json.loads(response.text)
- assert otm['otmVersion'] == '0.1.0'
- assert otm['project']['id'] == project_id
- assert otm['project']['name'] == 'project_A_name'
-
- assert len(otm['representations']) == 1
-
- assert otm['representations'][0]['name'] == f'{project_id} Diagram Representation'
- assert otm['representations'][0]['id'] == f'{project_id}-diagram'
- assert otm['representations'][0]['type'] == 'diagram'
- assert otm['representations'][0]['size']['width'] == 2378
- assert otm['representations'][0]['size']['height'] == 1558
-
- assert len(otm['trustZones']) == 3
-
- assert otm['trustZones'][0]['id'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
- assert otm['trustZones'][0]['name'] == 'Public Cloud'
- assert len(otm['trustZones'][0]['risk']) == 1
- assert otm['trustZones'][0]['risk']['trustRating'] == 10
- assert otm['trustZones'][1]['id'] == '2ab4effa-40b7-4cd2-ba81-8247d29a6f2d'
- assert otm['trustZones'][1]['name'] == 'Private Secured Cloud'
- assert len(otm['trustZones'][1]['risk']) == 1
- assert otm['trustZones'][1]['risk']['trustRating'] == 10
- assert otm['trustZones'][2]['id'] == 'f0ba7722-39b6-4c81-8290-a30a248bb8d9'
- assert otm['trustZones'][2]['name'] == 'Internet'
- assert len(otm['trustZones'][2]['risk']) == 1
- assert otm['trustZones'][2]['risk']['trustRating'] == 10
-
- assert len(otm['components']) == 10
-
- assert otm['components'][0]['id'] == '7'
- assert otm['components'][0]['name'] == 'Custom VPC'
- assert otm['components'][0]['type'] == 'empty-component'
- assert len(otm['components'][0]['parent']) == 1
- assert otm['components'][0]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][1]['id'] == '9'
- assert otm['components'][1]['name'] == 'My EC2'
- assert otm['components'][1]['type'] == 'ec2'
- assert len(otm['components'][1]['parent']) == 1
- assert otm['components'][1]['parent']['component'] == '7'
-
- assert otm['components'][2]['id'] == '12'
- assert otm['components'][2]['name'] == 'My CloudWatch'
- assert otm['components'][2]['type'] == 'cloudwatch'
- assert len(otm['components'][2]['parent']) == 1
- assert otm['components'][2]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][3]['id'] == '17'
- assert otm['components'][3]['name'] == 'My API Gateway'
- assert otm['components'][3]['type'] == 'api-gateway'
- assert len(otm['components'][3]['parent']) == 1
- assert otm['components'][3]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][4]['id'] == '26'
- assert otm['components'][4]['name'] == 'My CloudTrail'
- assert otm['components'][4]['type'] == 'cloudtrail'
- assert len(otm['components'][4]['parent']) == 1
- assert otm['components'][4]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][5]['id'] == '29'
- assert otm['components'][5]['name'] == 'My Simple Storage Service (S3)'
- assert otm['components'][5]['type'] == 's3'
- assert len(otm['components'][5]['parent']) == 1
- assert otm['components'][5]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
-
- assert otm['components'][6]['id'] == '38'
- assert otm['components'][6]['name'] == 'Web browser'
- assert otm['components'][6]['type'] == 'generic-client'
- assert len(otm['components'][6]['parent']) == 1
- assert otm['components'][6]['parent']['trustZone'] == 'f0ba7722-39b6-4c81-8290-a30a248bb8d9'
-
- assert otm['components'][7]['id'] == '44'
- assert otm['components'][7]['name'] == 'Android'
- assert otm['components'][7]['type'] == 'android-device-client'
- assert len(otm['components'][7]['parent']) == 1
- assert otm['components'][7]['parent']['trustZone'] == 'f0ba7722-39b6-4c81-8290-a30a248bb8d9'
-
- assert otm['components'][8]['id'] == '47'
- assert otm['components'][8]['name'] == 'SQL Database'
- assert otm['components'][8]['type'] == 'CD-MICROSOFT-AZURE-SQL-DB'
- assert len(otm['components'][8]['parent']) == 1
- assert otm['components'][8]['parent']['trustZone'] == '2ab4effa-40b7-4cd2-ba81-8247d29a6f2d'
-
- assert otm['components'][9]['id'] == '53'
- assert otm['components'][9]['name'] == 'My DynamoDB'
- assert otm['components'][9]['type'] == 'dynamodb'
- assert len(otm['components'][9]['parent']) == 1
- assert otm['components'][9]['parent']['trustZone'] == '2ab4effa-40b7-4cd2-ba81-8247d29a6f2d'
-
- assert len(otm['dataflows']) == 8
-
- assert otm['dataflows'][0]['id'] == '32'
- assert otm['dataflows'][0]['name'] == 'EC2 Logs'
- assert otm['dataflows'][0]['source'] == '9'
- assert otm['dataflows'][0]['destination'] == '12'
-
- assert otm['dataflows'][1]['id'] == '33'
- assert otm['dataflows'][1]['name'] == 'GW/EC2'
- assert otm['dataflows'][1]['source'] == '17'
- assert otm['dataflows'][1]['destination'] == '9'
-
- assert otm['dataflows'][2]['id'] == '34'
- assert otm['dataflows'][2]['name'] == 'Log trace'
- assert otm['dataflows'][2]['source'] == '17'
- assert otm['dataflows'][2]['destination'] == '26'
-
- assert otm['dataflows'][3]['id'] == '35'
- assert otm['dataflows'][3]['name'] == 'Customer data'
- assert otm['dataflows'][3]['source'] == '17'
- assert otm['dataflows'][3]['destination'] == '29'
-
- assert otm['dataflows'][4]['id'] == '43'
- assert is_valid_uuid((otm['dataflows'][4]['name']))
- assert otm['dataflows'][4]['source'] == '38'
- assert otm['dataflows'][4]['destination'] == '17'
-
- assert otm['dataflows'][5]['id'] == '46'
- assert is_valid_uuid(otm['dataflows'][5]['name'])
- assert otm['dataflows'][5]['source'] == '44'
- assert otm['dataflows'][5]['destination'] == '17'
-
- assert otm['dataflows'][6]['id'] == '56'
- assert otm['dataflows'][6]['name'] == 'User data'
- assert otm['dataflows'][6]['source'] == '17'
- assert otm['dataflows'][6]['destination'] == '53'
-
- assert otm['dataflows'][7]['id'] == '57'
- assert otm['dataflows'][7]['name'] == 'App data'
- assert otm['dataflows'][7]['source'] == '17'
- assert otm['dataflows'][7]['destination'] == '47'
-
- @responses.activate
- def test_create_otm_ok_both_mapping_files(self):
- # Given a project_id
- project_id: str = 'project_A_id'
-
- # When I do post on diagram endpoint
- files = {'diag_file': open(visio_aws_with_tz_and_vpc, 'rb'),
- 'default_mapping_file': open(default_visio_mapping, 'rb'),
- 'custom_mapping_file': open(custom_vpc_mapping, 'rb')}
- body = {'diag_type': 'VISIO', 'id': f'{project_id}', 'name': 'project_A_name'}
- response = client.post(get_url(), files=files, data=body)
-
- # Then the OTM is returned inside the response as JSON
- assert response.status_code == diag_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
- otm = json.loads(response.text)
-
- assert otm['otmVersion'] == '0.1.0'
- assert otm['project']['id'] == project_id
- assert otm['project']['name'] == 'project_A_name'
- assert len(otm['representations']) == 1
- assert otm['representations'][0]['name'] == f'{project_id} Diagram Representation'
- assert otm['representations'][0]['id'] == f'{project_id}-diagram'
- assert otm['representations'][0]['type'] == 'diagram'
- assert otm['representations'][0]['size']['width'] == 1967
- assert otm['representations'][0]['size']['height'] == 1356
- assert len(otm['trustZones']) == 2
- assert otm['trustZones'][0]['id'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
- assert otm['trustZones'][0]['name'] == 'Public Cloud'
- assert len(otm['trustZones'][0]['risk']) == 1
- assert otm['trustZones'][0]['risk']['trustRating'] == 10
- assert otm['trustZones'][1]['id'] == '2ab4effa-40b7-4cd2-ba81-8247d29a6f2d'
- assert otm['trustZones'][1]['name'] == 'Private Secured Cloud'
- assert len(otm['trustZones'][1]['risk']) == 1
- assert otm['trustZones'][1]['risk']['trustRating'] == 10
- assert len(otm['components']) == 6
- assert otm['components'][0]['id'] == '49'
- assert otm['components'][0]['name'] == 'Custom VPC'
- assert otm['components'][0]['type'] == 'empty-component'
- assert len(otm['components'][0]['parent']) == 1
- assert otm['components'][0]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
- assert otm['components'][1]['id'] == '1'
- assert otm['components'][1]['name'] == 'Amazon EC2'
- assert otm['components'][1]['type'] == 'ec2'
- assert len(otm['components'][1]['parent']) == 1
- assert otm['components'][1]['parent']['component'] == '49'
- assert otm['components'][2]['id'] == '12'
- assert otm['components'][2]['name'] == 'Custom machine'
- assert otm['components'][2]['type'] == 'ec2'
- assert len(otm['components'][2]['parent']) == 1
- assert otm['components'][2]['parent']['component'] == '49'
- assert otm['components'][3]['id'] == '30'
- assert otm['components'][3]['name'] == 'Private Database'
- assert otm['components'][3]['type'] == 'rds'
- assert len(otm['components'][3]['parent']) == 1
- assert otm['components'][3]['parent']['trustZone'] == '2ab4effa-40b7-4cd2-ba81-8247d29a6f2d'
- assert otm['components'][4]['id'] == '35'
- assert otm['components'][4]['name'] == 'Amazon CloudWatch'
- assert otm['components'][4]['type'] == 'cloudwatch'
- assert len(otm['components'][4]['parent']) == 1
- assert otm['components'][4]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
- assert otm['components'][5]['id'] == '41'
- assert otm['components'][5]['name'] == 'Custom log system'
- assert otm['components'][5]['type'] == 'cloudwatch'
- assert len(otm['components'][5]['parent']) == 1
- assert otm['components'][5]['parent']['trustZone'] == 'b61d6911-338d-46a8-9f39-8dcd24abfe91'
- assert len(otm['dataflows']) == 4
- assert otm['dataflows'][0]['id'] == '17'
- assert len(otm['dataflows'][0]['name']) == 36
- assert otm['dataflows'][0]['source'] == '1'
- assert otm['dataflows'][0]['destination'] == '12'
- assert otm['dataflows'][1]['id'] == '34'
- assert len(otm['dataflows'][1]['name']) == 36
- assert otm['dataflows'][1]['source'] == '12'
- assert otm['dataflows'][1]['destination'] == '30'
- assert otm['dataflows'][2]['id'] == '40'
- assert len(otm['dataflows'][2]['name']) == 36
- assert otm['dataflows'][2]['source'] == '1'
- assert otm['dataflows'][2]['destination'] == '35'
- assert otm['dataflows'][3]['id'] == '46'
- assert len(otm['dataflows'][3]['name']) == 36
- assert otm['dataflows'][3]['source'] == '12'
- assert otm['dataflows'][3]['destination'] == '41'
+ # and the otm is as expected
+ result, expected = validate_and_compare_otm(otm, expected_otm, None)
+ assert result == expected
@responses.activate
@patch('slp_visio.slp_visio.validate.visio_validator.VisioValidator.validate')
@@ -429,7 +103,7 @@ def test_response_on_validating_diagram_error(self, mock_load_source_data):
# And the request files
diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a DiagramFileNotValidError
error = DiagramFileNotValidError('Invalid size', 'mocked error detail', 'mocked error msg 1')
@@ -442,7 +116,7 @@ def test_response_on_validating_diagram_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'DiagramFileNotValidError'
@@ -458,8 +132,8 @@ def test_response_on_loading_diagram_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = LoadingDiagramFileError('mocked error title', 'mocked error detail', 'mocked error msg 1')
@@ -472,7 +146,7 @@ def test_response_on_loading_diagram_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'LoadingDiagramFileError'
@@ -488,8 +162,8 @@ def test_response_on_validating_mapping_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = MappingFileNotValidError('Mapping file does not comply with the schema', 'Schema error',
@@ -503,7 +177,7 @@ def test_response_on_validating_mapping_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'MappingFileNotValidError'
@@ -519,8 +193,8 @@ def test_response_on_loading_mapping_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = LoadingMappingFileError('Error loading the mapping file. The mapping file ins not valid.',
@@ -534,7 +208,7 @@ def test_response_on_loading_mapping_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'LoadingMappingFileError'
@@ -550,8 +224,8 @@ def test_response_on_otm_result_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = OTMResultError('OTM file does not comply with the schema', 'Schema error', 'mocked error msg')
@@ -564,7 +238,7 @@ def test_response_on_otm_result_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'OTMResultError'
@@ -580,8 +254,8 @@ def test_response_on_otm_building_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = OTMBuildingError('OTM building error', 'Schema error', 'mocked error msg')
@@ -594,7 +268,7 @@ def test_response_on_otm_building_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'OTMBuildingError'
@@ -616,8 +290,8 @@ def test_response_on_invalid_diagram_file(self, diagram_source, detail):
# And the request files
diagram_source = bytes(diagram_source) if isinstance(diagram_source, bytearray) else diagram_source
- diagram_file = (visio_aws_with_tz_and_vpc, diagram_source, 'application/octet-stream')
- mapping_file = ('default_mapping_file', open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, diagram_source, octet_stream)
+ mapping_file = ('default_mapping_file', open(default_visio_mapping, 'rb'), yaml_mime)
# When I do post on diagram endpoint
files = {'diag_file': diagram_file, 'default_mapping_file': mapping_file}
@@ -626,7 +300,7 @@ def test_response_on_invalid_diagram_file(self, diagram_source, detail):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'DiagramFileNotValidError'
@@ -636,7 +310,7 @@ def test_response_on_invalid_diagram_file(self, diagram_source, detail):
assert body_response['errors'][0]['errorMessage'] == detail
@mark.parametrize('mapping_source,msg', [
- (f'small', 'Mapping file does not comply with the schema'),
+ ('small', 'Mapping file does not comply with the schema'),
(b'', 'Mapping files are not valid. Invalid size'),
(bytearray(4), 'Mapping files are not valid. Invalid size'),
(bytearray(1024 * 1024 * 5 + 1), 'Mapping files are not valid. Invalid size')
@@ -648,8 +322,8 @@ def test_response_on_invalid_mapping_file(self, mapping_source, msg):
# And the request files
mapping_source = bytes(mapping_source) if isinstance(mapping_source, bytearray) else mapping_source
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = ('default_mapping_file', mapping_source, 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = ('default_mapping_file', mapping_source, yaml_mime)
# When I do post on diagram endpoint
files = {'diag_file': diagram_file, 'default_mapping_file': mapping_file}
@@ -658,7 +332,7 @@ def test_response_on_invalid_mapping_file(self, mapping_source, msg):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'MappingFileNotValidError'
diff --git a/tests/integration/api/controllers/diagram/visio/test_otm_controller_diagram_visio.py b/tests/integration/api/controllers/diagram/visio/test_otm_controller_diagram_visio.py
index b79095b5..215f9174 100644
--- a/tests/integration/api/controllers/diagram/visio/test_otm_controller_diagram_visio.py
+++ b/tests/integration/api/controllers/diagram/visio/test_otm_controller_diagram_visio.py
@@ -5,17 +5,16 @@
from fastapi.testclient import TestClient
from pytest import mark
+from sl_util.sl_util.file_utils import get_byte_data
from slp_base.slp_base.errors import DiagramFileNotValidError, MappingFileNotValidError, LoadingMappingFileError, \
OTMResultError, OTMBuildingError, LoadingDiagramFileError
-from slp_base.tests.util.otm import validate_and_compare_otm, validate_and_compare
+from slp_base.tests.util.otm import validate_and_compare_otm
from startleft.startleft.api import fastapi_server
from startleft.startleft.api.controllers.diagram import diag_create_otm_controller
from tests.resources import test_resource_paths
from tests.resources.test_resource_paths import visio_aws_with_tz_and_vpc, default_visio_mapping, \
default_visio_mapping_legacy, custom_vpc_mapping, custom_vpc_mapping_legacy, \
- visio_create_otm_ok_only_default_mapping, visio_create_otm_ok_both_mapping_files
-
-IRIUSRISK_URL = ''
+ visio_create_otm_ok_only_default_mapping
webapp = fastapi_server.webapp
@@ -29,6 +28,8 @@ def get_url():
octet_stream = 'application/octet-stream'
+json_mime = 'application/json'
+yaml_mime = 'text/yaml'
class TestOTMControllerDiagramVisio:
@@ -39,20 +40,30 @@ def test_create_otm_ok_only_default_mapping(self, mapping):
# Given a project_id
project_id: str = 'project_A_id'
+ # And the source file
+ diag_file = get_byte_data(test_resource_paths.visio_aws_with_tz_and_vpc)
+
+ # And the mapping file
+ mapping_file = get_byte_data(mapping)
+
+ # And the expected otm
+ expected_otm = visio_create_otm_ok_only_default_mapping
+
# When I do post on diagram endpoint
- files = {'diag_file': open(test_resource_paths.visio_aws_with_tz_and_vpc, 'rb'),
- 'default_mapping_file': open(mapping, 'rb')}
- body = {'diag_type': 'VISIO', 'id': f'{project_id}', 'name': 'project_A_name'}
+ files = {'diag_file': diag_file,
+ 'default_mapping_file': mapping_file}
+ body = {'diag_type': 'VISIO', 'id': project_id, 'name': 'project_A_name'}
response = client.post(get_url(), files=files, data=body)
# Then the OTM is returned inside the response as JSON
assert response.status_code == diag_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
otm = json.loads(response.text)
- result, expected = validate_and_compare_otm(otm, visio_create_otm_ok_only_default_mapping, VALIDATION_EXCLUDED_REGEX)
+ result, expected = validate_and_compare_otm(otm, expected_otm, VALIDATION_EXCLUDED_REGEX)
assert result == expected
+
@mark.parametrize('default_mapping,custom_mapping', [
(default_visio_mapping, custom_vpc_mapping),
(default_visio_mapping_legacy, custom_vpc_mapping_legacy),
@@ -62,21 +73,31 @@ def test_create_otm_ok_only_default_mapping(self, mapping):
@responses.activate
def test_create_otm_ok_both_mapping_files(self, default_mapping, custom_mapping):
# Given a project_id
- project_id: str = 'project_A_id'
+ project_id: str = 'test_parse_diagram_file_ok'
+
+ # And the source file
+ diag_file = get_byte_data(visio_aws_with_tz_and_vpc)
+
+ # And the mapping files
+ mapping_file = get_byte_data(default_mapping)
+ custom_mapping_file = get_byte_data(custom_mapping)
+
+ # And the expected otm
+ expected_otm = test_resource_paths.visio_aws_with_tz_and_vpc_otm_expected
# When I do post on diagram endpoint
- files = {'diag_file': open(visio_aws_with_tz_and_vpc, 'rb'),
- 'default_mapping_file': open(default_mapping, 'rb'),
- 'custom_mapping_file': open(custom_mapping, 'rb')}
- body = {'diag_type': 'VISIO', 'id': f'{project_id}', 'name': 'project_A_name'}
+ files = {'diag_file': diag_file, 'default_mapping_file': mapping_file,
+ 'custom_mapping_file': custom_mapping_file}
+ body = {'diag_type': 'VISIO', 'id': project_id, 'name': project_id}
response = client.post(get_url(), files=files, data=body)
# Then the OTM is returned inside the response as JSON
assert response.status_code == diag_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
otm = json.loads(response.text)
- result, expected = validate_and_compare(otm, visio_create_otm_ok_both_mapping_files, VALIDATION_EXCLUDED_REGEX)
+ # and the otm is as expected
+ result, expected = validate_and_compare_otm(otm, expected_otm, None)
assert result == expected
@responses.activate
@@ -87,7 +108,7 @@ def test_response_on_validating_diagram_error(self, mock_load_source_data):
# And the request files
diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a DiagramFileNotValidError
error = DiagramFileNotValidError('Invalid size', 'mocked error detail', 'mocked error msg 1')
@@ -100,7 +121,7 @@ def test_response_on_validating_diagram_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'DiagramFileNotValidError'
@@ -116,8 +137,8 @@ def test_response_on_loading_diagram_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = LoadingDiagramFileError('mocked error title', 'mocked error detail', 'mocked error msg 1')
@@ -130,7 +151,7 @@ def test_response_on_loading_diagram_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'LoadingDiagramFileError'
@@ -146,8 +167,8 @@ def test_response_on_validating_mapping_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = MappingFileNotValidError('Mapping file does not comply with the schema', 'Schema error',
@@ -161,7 +182,7 @@ def test_response_on_validating_mapping_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'MappingFileNotValidError'
@@ -177,8 +198,8 @@ def test_response_on_loading_mapping_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = LoadingMappingFileError('Error loading the mapping file. The mapping file ins not valid.',
@@ -192,7 +213,7 @@ def test_response_on_loading_mapping_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'LoadingMappingFileError'
@@ -208,8 +229,8 @@ def test_response_on_otm_result_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = OTMResultError('OTM file does not comply with the schema', 'Schema error', 'mocked error msg')
@@ -222,7 +243,7 @@ def test_response_on_otm_result_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'OTMResultError'
@@ -238,8 +259,8 @@ def test_response_on_otm_building_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
- mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
+ mapping_file = (default_visio_mapping, open(default_visio_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingDiagramFileError
error = OTMBuildingError('OTM building error', 'Schema error', 'mocked error msg')
@@ -252,7 +273,7 @@ def test_response_on_otm_building_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'OTMBuildingError'
@@ -274,8 +295,8 @@ def test_response_on_invalid_diagram_file(self, diagram_source, detail):
# And the request files
diagram_source = bytes(diagram_source) if isinstance(diagram_source, bytearray) else diagram_source
- diagram_file = (visio_aws_with_tz_and_vpc, diagram_source, 'application/octet-stream')
- mapping_file = ('default_mapping_file', open(default_visio_mapping, 'rb'), 'text/yaml')
+ diagram_file = (visio_aws_with_tz_and_vpc, diagram_source, octet_stream)
+ mapping_file = ('default_mapping_file', open(default_visio_mapping, 'rb'), yaml_mime)
# When I do post on diagram endpoint
files = {'diag_file': diagram_file, 'default_mapping_file': mapping_file}
@@ -284,7 +305,7 @@ def test_response_on_invalid_diagram_file(self, diagram_source, detail):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'DiagramFileNotValidError'
@@ -294,7 +315,7 @@ def test_response_on_invalid_diagram_file(self, diagram_source, detail):
assert body_response['errors'][0]['errorMessage'] == detail
@mark.parametrize('mapping_source,msg', [
- (f'small', 'Mapping file does not comply with the schema'),
+ ('small', 'Mapping file does not comply with the schema'),
(b'', 'Mapping files are not valid. Invalid size'),
(bytearray(4), 'Mapping files are not valid. Invalid size'),
(bytearray(1024 * 1024 * 5 + 1), 'Mapping files are not valid. Invalid size')
@@ -305,9 +326,9 @@ def test_response_on_invalid_mapping_file(self, mapping_source, msg):
project_id: str = 'project_A_id'
# And the request files
- diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), 'application/octet-stream')
+ diagram_file = (visio_aws_with_tz_and_vpc, open(visio_aws_with_tz_and_vpc, 'rb'), octet_stream)
mapping_source = bytes(mapping_source) if isinstance(mapping_source, bytearray) else mapping_source
- mapping_file = ('default_mapping_file', mapping_source, 'text/yaml')
+ mapping_file = ('default_mapping_file', mapping_source, yaml_mime)
# When I do post on diagram endpoint
files = {'diag_file': diagram_file, 'default_mapping_file': mapping_file}
@@ -316,7 +337,7 @@ def test_response_on_invalid_mapping_file(self, mapping_source, msg):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'MappingFileNotValidError'
diff --git a/tests/integration/api/controllers/iac/cloudformation/test_otm_controller_iac_cloudformation.py b/tests/integration/api/controllers/iac/cloudformation/test_otm_controller_iac_cloudformation.py
index 49027208..16b5fccb 100644
--- a/tests/integration/api/controllers/iac/cloudformation/test_otm_controller_iac_cloudformation.py
+++ b/tests/integration/api/controllers/iac/cloudformation/test_otm_controller_iac_cloudformation.py
@@ -20,28 +20,30 @@
webapp = fastapi_server.webapp
client = TestClient(webapp)
+json_mime = 'application/json'
+
def get_url():
return iac_create_otm_controller.PREFIX + iac_create_otm_controller.URL
+yaml_mime = 'text/yaml'
+
+
class TestOTMControllerIaCCloudformation:
cft_map = default_cloudformation_mapping
wrong_id = cloudformation_malformed_mapping_wrong_id
- app_json = 'application/json'
- text_yaml = 'text/yaml'
- uc_a = (None, 'proj A', example_json, app_json, cft_map, None, 'RequestValidationError')
- uc_b = ('proj_B', None, example_json, app_json, cft_map, None, 'RequestValidationError')
+ uc_a = (None, 'proj A', example_json, json_mime, cft_map, None, 'RequestValidationError')
+ uc_b = ('proj_B', None, example_json, json_mime, cft_map, None, 'RequestValidationError')
uc_c = ('proj_C', 'proj C', None, None, cft_map, None, 'RequestValidationError')
- uc_d = ('proj_D', 'proj D', example_json, app_json, None, None, 'MappingFileNotValidError')
- uc_e = ('proj_E', 'proj E', example_json, app_json, wrong_id, None, 'MappingFileNotValidError')
+ uc_d = ('proj_D', 'proj D', example_json, json_mime, None, None, 'MappingFileNotValidError')
+ uc_e = ('proj_E', 'proj E', example_json, json_mime, wrong_id, None, 'MappingFileNotValidError')
uc_f = ('proj_F', 'proj F', None, None, None, None, 'RequestValidationError')
uc_h = ('proj_H', 'proj H', invalid_yaml, '', cft_map, None, 'IacFileNotValidError')
- uc_i = ('proj_I', 'proj I', invalid_yaml, text_yaml, cft_map, None, 'OTMBuildingError')
+ uc_i = ('proj_I', 'proj I', invalid_yaml, yaml_mime, cft_map, None, 'OTMBuildingError')
uc_j = ('proj_J', 'proj J', invalid_yaml, None, cft_map, None, 'OTMBuildingError')
uc_k = ('proj_K', 'proj K', cloudformation_gz, None, cft_map, None, 'IacFileNotValidError')
- uc_l = ('proj_M', 'proj M', example_json, app_json, cft_map, cft_map, 'MappingFileNotValidError')
-
+ uc_l = ('proj_L', 'proj L', example_json, json_mime, cft_map, cft_map, 'MappingFileNotValidError')
@responses.activate
def test_create_otm_ok(self):
@@ -49,8 +51,8 @@ def test_create_otm_ok(self):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (example_json, open(example_json, 'rb'), 'application/json')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (example_json, open(example_json, 'rb'), json_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# When I do post on cloudformation endpoint
files = {'iac_file': iac_file, 'mapping_file': mapping_file}
@@ -59,12 +61,17 @@ def test_create_otm_ok(self):
# Then the OTM is returned inside the response as JSON
assert response.status_code == iac_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
- assert '"otmVersion": "0.1.0"' in response.text
- assert '"project": ' in response.text
- assert '"name": "project_A_name"' in response.text
- assert '"trustZones": ' in response.text
- assert '"components": ' in response.text
+ assert response.headers.get('content-type') == json_mime
+
+ # And the otm is as expected
+ otm = json.loads(response.text)
+ assert otm['otmVersion'] == '0.2.0'
+ assert otm['project']['id'] == 'project_A_id'
+ assert otm['project']['name'] == 'project_A_name'
+ assert otm['project']['name'] == 'project_A_name'
+ assert len(otm['trustZones']) == 1
+ assert len(otm['components']) == 5
+ assert len(otm['dataflows']) == 0
@mark.parametrize('project_id,project_name,cft_filename,cft_mimetype,mapping_filename,default_mapping_file,error_type',
[uc_a, uc_b, uc_c, uc_d, uc_e, uc_f, uc_h, uc_i, uc_j, uc_k, uc_l])
@@ -78,17 +85,16 @@ def test_create_project_validation_error(self, project_id: str, project_name: st
if cft_filename:
files['iac_file'] = (cft_filename, open(cft_filename, 'rb'), cft_mimetype)
if mapping_filename:
- files['mapping_file'] = (mapping_filename, open(mapping_filename, 'rb'), 'text/yaml')
+ files['mapping_file'] = (mapping_filename, open(mapping_filename, 'rb'), yaml_mime)
if default_mapping_file:
files['default_mapping_file'] = (mapping_filename, open(mapping_filename, 'rb'), 'text/yaml')
-
# When I do post on cloudformation endpoint
response = client.post(get_url(), files=files, data=body)
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers['content-type'] == 'application/json'
+ assert response.headers['content-type'] == json_mime
res_body = json.loads(response.content.decode('utf-8'))
assert res_body['status'] == '400'
assert res_body['error_type'] == error_type
@@ -100,8 +106,8 @@ def test_response_on_validating_iac_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (example_json, open(example_json, 'rb'), 'application/json')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (example_json, open(example_json, 'rb'), json_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = IacFileNotValidError('Invalid size', 'mocked error detail', 'mocked error msg 1')
@@ -114,7 +120,7 @@ def test_response_on_validating_iac_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'IacFileNotValidError'
@@ -130,8 +136,8 @@ def test_response_on_loading_iac_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (example_json, open(example_json, 'rb'), 'application/json')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (example_json, open(example_json, 'rb'), json_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = LoadingIacFileError('mocked error title', 'mocked error detail', 'mocked error msg 1')
@@ -144,7 +150,7 @@ def test_response_on_loading_iac_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'LoadingIacFileError'
@@ -160,8 +166,8 @@ def test_response_on_validating_mapping_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (example_json, open(example_json, 'rb'), 'application/json')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (example_json, open(example_json, 'rb'), json_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = MappingFileNotValidError('Mapping file does not comply with the schema', 'Schema error',
@@ -175,7 +181,7 @@ def test_response_on_validating_mapping_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'MappingFileNotValidError'
@@ -191,8 +197,8 @@ def test_response_on_loading_mapping_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (example_json, open(example_json, 'rb'), 'application/json')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (example_json, open(example_json, 'rb'), json_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = LoadingMappingFileError('Error loading the mapping file. The mapping file ins not valid.',
@@ -206,7 +212,7 @@ def test_response_on_loading_mapping_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'LoadingMappingFileError'
@@ -222,8 +228,8 @@ def test_response_on_otm_result_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (example_json, open(example_json, 'rb'), 'application/json')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (example_json, open(example_json, 'rb'), json_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = OTMResultError('OTM file does not comply with the schema', 'Schema error', 'mocked error msg')
@@ -236,7 +242,7 @@ def test_response_on_otm_result_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'OTMResultError'
@@ -252,8 +258,8 @@ def test_response_on_otm_building_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (example_json, open(example_json, 'rb'), 'application/json')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (example_json, open(example_json, 'rb'), json_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = OTMBuildingError('OTM building error', 'Schema error', 'mocked error msg')
@@ -266,7 +272,7 @@ def test_response_on_otm_building_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'OTMBuildingError'
@@ -287,8 +293,8 @@ def test_response_on_invalid_iac_file(self, iac_source, detail):
# And the request files
iac_source = bytes(iac_source) if isinstance(iac_source, bytearray) else iac_source
- iac_file = (example_json, iac_source, 'application/json')
- mapping_file = ('mapping_file', open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (example_json, iac_source, json_mime)
+ mapping_file = ('mapping_file', open(default_cloudformation_mapping, 'rb'), yaml_mime)
# When I do post on cloudformation endpoint
files = {'iac_file': iac_file, 'mapping_file': mapping_file}
@@ -297,7 +303,7 @@ def test_response_on_invalid_iac_file(self, iac_source, detail):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'IacFileNotValidError'
@@ -307,7 +313,7 @@ def test_response_on_invalid_iac_file(self, iac_source, detail):
assert body_response['errors'][0]['errorMessage'] == detail
@mark.parametrize('mapping_source,msg', [
- (f'small', 'Mapping file does not comply with the schema'),
+ ('small', 'Mapping file does not comply with the schema'),
(b'', 'Mapping files are not valid. Invalid size'),
(bytearray(4), 'Mapping files are not valid. Invalid size'),
(bytearray(1024 * 1024 * 5 + 1), 'Mapping files are not valid. Invalid size')
@@ -318,9 +324,9 @@ def test_response_on_invalid_mapping_file(self, mapping_source, msg):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (example_json, example_json, 'application/json')
+ iac_file = (example_json, example_json, json_mime)
mapping_source = bytes(mapping_source) if isinstance(mapping_source, bytearray) else mapping_source
- mapping_file = ('mapping_file', mapping_source, 'text/yaml')
+ mapping_file = ('mapping_file', mapping_source, yaml_mime)
# When I do post on cloudformation endpoint
files = {'iac_file': iac_file, 'mapping_file': mapping_file}
@@ -329,7 +335,7 @@ def test_response_on_invalid_mapping_file(self, mapping_source, msg):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'MappingFileNotValidError'
@@ -343,23 +349,24 @@ def test_mapping_file_cloudformation_all_functions(self):
project_id: str = 'project_A_id'
# And the request files, containing a mapping file with all cloudformation functions
- iac_file = (cloudformation_all_functions, open(cloudformation_all_functions, 'rb'), 'application/json')
+ iac_file = (cloudformation_all_functions, open(cloudformation_all_functions, 'rb'), json_mime)
mapping_file = (
- cloudformation_mapping_all_functions, open(cloudformation_mapping_all_functions, 'rb'), 'text/yaml')
+ cloudformation_mapping_all_functions, open(cloudformation_mapping_all_functions, 'rb'), yaml_mime)
# When I do post on cloudformation endpoint
files = {'iac_file': iac_file, 'mapping_file': mapping_file}
body = {'iac_type': TESTING_IAC_TYPE, 'id': f'{project_id}', 'name': 'project_A_name'}
response = client.post(get_url(), files=files, data=body)
- # Then the OTM is returned without errors inside the response as JSON
- assert response.status_code == iac_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
- assert '"otmVersion": "0.1.0"' in response.text
- assert '"project": ' in response.text
- assert '"name": "project_A_name"' in response.text
- assert '"trustZones": ' in response.text
- assert '"components": ' in response.text
+ # And the otm is as expected
+ otm = json.loads(response.text)
+ assert otm['otmVersion'] == '0.2.0'
+ assert otm['project']['id'] == 'project_A_id'
+ assert otm['project']['name'] == 'project_A_name'
+ assert otm['project']['name'] == 'project_A_name'
+ assert len(otm['trustZones']) == 1
+ assert len(otm['components']) == 5
+ assert len(otm['dataflows']) == 0
# And all the expected components are mapped
assert len(json.loads(response.text)["components"]) == 5
@@ -372,11 +379,11 @@ def test_create_otm_multiple_files_ok(self):
# And the request files, two definition files, and one mapping file
iac_file_networks = (
cloudformation_multiple_files_networks, open(cloudformation_multiple_files_networks, 'rb'),
- 'application/json')
+ json_mime)
iac_file_resources = (
cloudformation_multiple_files_resources, open(cloudformation_multiple_files_resources, 'rb'),
- 'application/json')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ json_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# When I do post on cloudformation endpoint
files = [('iac_file', iac_file_networks), ('iac_file', iac_file_resources), ('mapping_file', mapping_file)]
@@ -385,15 +392,17 @@ def test_create_otm_multiple_files_ok(self):
# Then the OTM is returned inside the response as JSON
assert response.status_code == iac_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
- assert '"otmVersion": "0.1.0"' in response.text
- assert '"project": ' in response.text
- assert '"name": "project_A_name"' in response.text
- assert '"trustZones": ' in response.text
- assert '"components": ' in response.text
+ assert response.headers.get('content-type') == json_mime
- # And all the expected components are mapped (5 from networks, 17 from resources)
- assert len(json.loads(response.text)["components"]) == 22
+ # And the otm is as expected
+ otm = json.loads(response.text)
+ assert otm['otmVersion'] == '0.2.0'
+ assert otm['project']['id'] == 'project_A_id'
+ assert otm['project']['name'] == 'project_A_name'
+ assert otm['project']['name'] == 'project_A_name'
+ assert len(otm['trustZones']) == 2
+ assert len(otm['components']) == 22
+ assert len(otm['dataflows']) == 22
@responses.activate
def test_create_otm_multiple_files_on_validating_iac_error(self):
@@ -403,9 +412,9 @@ def test_create_otm_multiple_files_on_validating_iac_error(self):
# And the request files, two definition files, and one mapping file
iac_file_valid = (
cloudformation_multiple_files_networks, open(cloudformation_multiple_files_networks, 'rb'),
- 'application/json')
+ json_mime)
iac_file_invalid = ''
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# When I do post on cloudformation endpoint
files = [('iac_file', iac_file_valid), ('iac_file', iac_file_invalid), ('mapping_file', mapping_file)]
@@ -414,7 +423,7 @@ def test_create_otm_multiple_files_on_validating_iac_error(self):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers['content-type'] == 'application/json'
+ assert response.headers['content-type'] == json_mime
res_body = json.loads(response.content.decode('utf-8'))
assert res_body['status'] == '400'
assert res_body['error_type'] == 'IacFileNotValidError'
@@ -427,8 +436,8 @@ def test_yaml_ref_function_is_parsed(self, filename):
project_name: str = 'project_A_name'
# And the request files
- iac_file = (filename, open(filename, 'rb'), 'text/yaml')
- mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), 'text/yaml')
+ iac_file = (filename, open(filename, 'rb'), yaml_mime)
+ mapping_file = (default_cloudformation_mapping, open(default_cloudformation_mapping, 'rb'), yaml_mime)
# When I do post on cloudformation endpoint
files = {'iac_file': iac_file, 'mapping_file': mapping_file}
diff --git a/tests/integration/api/controllers/iac/terraform/test_otm_controller_iac_terraform.py b/tests/integration/api/controllers/iac/terraform/test_otm_controller_iac_terraform.py
index cd4d2ebc..bd6610d1 100644
--- a/tests/integration/api/controllers/iac/terraform/test_otm_controller_iac_terraform.py
+++ b/tests/integration/api/controllers/iac/terraform/test_otm_controller_iac_terraform.py
@@ -21,6 +21,9 @@
webapp = fastapi_server.webapp
client = TestClient(webapp)
+json_mime = 'application/json'
+yaml_mime = 'text/yaml'
+
def get_url():
return iac_create_otm_controller.PREFIX + iac_create_otm_controller.URL
@@ -30,19 +33,17 @@ class TestOTMControllerIaCTerraform:
tf_file = terraform_aws_simple_components
tf_map = terraform_iriusrisk_tf_aws_mapping
wrong_id = terraform_malformed_mapping_wrong_id
- app_json = 'application/json'
- text_yaml = 'text/yaml'
- uc_a = (None, 'proj A', tf_file, app_json, tf_map, None, 'RequestValidationError')
- uc_b = ('proj_B', None, tf_file, app_json, tf_map, None, 'RequestValidationError')
+ uc_a = (None, 'proj A', tf_file, json_mime, tf_map, None, 'RequestValidationError')
+ uc_b = ('proj_B', None, tf_file, json_mime, tf_map, None, 'RequestValidationError')
uc_c = ('proj_C', 'proj C', None, None, tf_map, None, 'RequestValidationError')
- uc_d = ('proj_D', 'proj D', tf_file, app_json, None, None, 'MappingFileNotValidError')
- uc_e = ('proj_E', 'proj E', tf_file, app_json, wrong_id, None, 'MappingFileNotValidError')
+ uc_d = ('proj_D', 'proj D', tf_file, json_mime, None, None, 'MappingFileNotValidError')
+ uc_e = ('proj_E', 'proj E', tf_file, json_mime, wrong_id, None, 'MappingFileNotValidError')
uc_f = ('proj_F', 'proj F', None, None, None, None, 'RequestValidationError')
uc_h = ('proj_H', 'proj H', invalid_tf, '', tf_map, None, 'IacFileNotValidError')
- uc_i = ('proj_I', 'proj I', invalid_tf, text_yaml, tf_map, None, 'IacFileNotValidError')
+ uc_i = ('proj_I', 'proj I', invalid_tf, yaml_mime, tf_map, None, 'IacFileNotValidError')
uc_j = ('proj_J', 'proj J', invalid_tf, None, tf_map, None, 'LoadingIacFileError')
uc_k = ('proj_K', 'proj K', terraform_gz, None, tf_map, None, 'IacFileNotValidError')
- uc_l = ('proj_D', 'proj D', tf_file, app_json, tf_map, tf_map, 'MappingFileNotValidError')
+ uc_l = ('proj_L', 'proj L', tf_file, json_mime, tf_map, tf_map, 'MappingFileNotValidError')
@responses.activate
@pytest.mark.parametrize('filename,break_line', [
@@ -55,8 +56,8 @@ def test_create_otm_ok_all_line_breaks(self, filename: str, break_line: str):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (filename, open(filename, 'rb'), 'application/json')
- mapping_file = (terraform_iriusrisk_tf_aws_mapping, open(terraform_iriusrisk_tf_aws_mapping, 'rb'), 'text/yaml')
+ iac_file = (filename, open(filename, 'rb'), json_mime)
+ mapping_file = (terraform_iriusrisk_tf_aws_mapping, open(terraform_iriusrisk_tf_aws_mapping, 'rb'), yaml_mime)
# And the iac_data with custom line breaks
iac_data = file_utils.get_byte_data(filename).decode().replace('\n', break_line)
@@ -71,12 +72,17 @@ def test_create_otm_ok_all_line_breaks(self, filename: str, break_line: str):
# And the OTM is returned inside the response as JSON
assert response.status_code == iac_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
- assert '"otmVersion": "0.1.0"' in response.text
- assert '"project": ' in response.text
- assert '"name": "project_A_name"' in response.text
- assert '"trustZones": ' in response.text
- assert '"components": ' in response.text
+ assert response.headers.get('content-type') == json_mime
+
+ # And the otm is as expected
+ otm = json.loads(response.text)
+ assert otm['otmVersion'] == '0.2.0'
+ assert otm['project']['id'] == 'project_A_id'
+ assert otm['project']['name'] == 'project_A_name'
+ assert otm['project']['name'] == 'project_A_name'
+ assert len(otm['trustZones']) == 1
+ assert len(otm['components']) == 20
+ assert len(otm['dataflows']) == 0
@mark.parametrize('project_id,project_name,cft_filename,cft_mimetype,mapping_filename,default_mapping_file,error_type',
[uc_a, uc_b, uc_c, uc_d, uc_e, uc_f, uc_h, uc_i, uc_j, uc_k, uc_l])
@@ -90,7 +96,7 @@ def test_create_project_validation_error(self, project_id: str, project_name: st
if cft_filename:
files['iac_file'] = (cft_filename, open(cft_filename, 'rb'), cft_mimetype)
if mapping_filename:
- files['mapping_file'] = (mapping_filename, open(mapping_filename, 'rb'), 'text/yaml')
+ files['mapping_file'] = (mapping_filename, open(mapping_filename, 'rb'), yaml_mime)
if default_mapping_file:
files['default_mapping_file'] = (mapping_filename, open(mapping_filename, 'rb'), 'text/yaml')
@@ -99,7 +105,7 @@ def test_create_project_validation_error(self, project_id: str, project_name: st
# Then
assert response.status_code == 400
- assert response.headers['content-type'] == 'application/json'
+ assert response.headers['content-type'] == json_mime
res_body = json.loads(response.content.decode('utf-8'))
assert res_body['status'] == '400'
assert res_body['error_type'] == error_type
@@ -111,8 +117,8 @@ def test_response_on_validating_iac_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (self.tf_file, open(self.tf_file, 'rb'), 'application/json')
- mapping_file = (self.tf_map, open(self.tf_map, 'rb'), 'text/yaml')
+ iac_file = (self.tf_file, open(self.tf_file, 'rb'), json_mime)
+ mapping_file = (self.tf_map, open(self.tf_map, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = IacFileNotValidError('Invalid size', 'mocked error detail', 'mocked error msg 1')
@@ -125,7 +131,7 @@ def test_response_on_validating_iac_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'IacFileNotValidError'
@@ -141,8 +147,8 @@ def test_response_on_loading_iac_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (self.tf_file, open(self.tf_file, 'rb'), 'application/json')
- mapping_file = (self.tf_map, open(self.tf_map, 'rb'), 'text/yaml')
+ iac_file = (self.tf_file, open(self.tf_file, 'rb'), json_mime)
+ mapping_file = (self.tf_map, open(self.tf_map, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = LoadingIacFileError('mocked error title', 'mocked error detail', 'mocked error msg 1')
@@ -155,7 +161,7 @@ def test_response_on_loading_iac_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'LoadingIacFileError'
@@ -171,8 +177,8 @@ def test_response_on_validating_mapping_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (self.tf_file, open(self.tf_file, 'rb'), 'application/json')
- mapping_file = (self.tf_map, open(self.tf_map, 'rb'), 'text/yaml')
+ iac_file = (self.tf_file, open(self.tf_file, 'rb'), json_mime)
+ mapping_file = (self.tf_map, open(self.tf_map, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = MappingFileNotValidError('Mapping file does not comply with the schema', 'Schema error',
@@ -186,7 +192,7 @@ def test_response_on_validating_mapping_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'MappingFileNotValidError'
@@ -202,8 +208,8 @@ def test_response_on_loading_mapping_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (self.tf_file, open(self.tf_file, 'rb'), 'application/json')
- mapping_file = (self.tf_map, open(self.tf_map, 'rb'), 'text/yaml')
+ iac_file = (self.tf_file, open(self.tf_file, 'rb'), json_mime)
+ mapping_file = (self.tf_map, open(self.tf_map, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = LoadingMappingFileError('Error loading the mapping file. The mapping file ins not valid.',
@@ -217,7 +223,7 @@ def test_response_on_loading_mapping_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'LoadingMappingFileError'
@@ -233,8 +239,8 @@ def test_response_on_otm_result_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (self.tf_file, open(self.tf_file, 'rb'), 'application/json')
- mapping_file = (self.tf_map, open(self.tf_map, 'rb'), 'text/yaml')
+ iac_file = (self.tf_file, open(self.tf_file, 'rb'), json_mime)
+ mapping_file = (self.tf_map, open(self.tf_map, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = OTMResultError('OTM file does not comply with the schema', 'Schema error', 'mocked error msg')
@@ -247,7 +253,7 @@ def test_response_on_otm_result_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'OTMResultError'
@@ -263,8 +269,8 @@ def test_response_on_otm_building_error(self, mock_load_source_data):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (self.tf_file, open(self.tf_file, 'rb'), 'application/json')
- mapping_file = (self.tf_map, open(self.tf_map, 'rb'), 'text/yaml')
+ iac_file = (self.tf_file, open(self.tf_file, 'rb'), json_mime)
+ mapping_file = (self.tf_map, open(self.tf_map, 'rb'), yaml_mime)
# And the mocked method throwing a LoadingIacFileError
error = OTMBuildingError('OTM building error', 'Schema error', 'mocked error msg')
@@ -277,7 +283,7 @@ def test_response_on_otm_building_error(self, mock_load_source_data):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'OTMBuildingError'
@@ -297,8 +303,8 @@ def test_response_on_invalid_iac_file(self, iac_source, detail):
# And the request files
iac_source = bytes(iac_source) if isinstance(iac_source, bytearray) else iac_source
- iac_file = (self.tf_file, iac_source, 'application/json')
- mapping_file = ('mapping_file', open(self.tf_map, 'rb'), 'text/yaml')
+ iac_file = (self.tf_file, iac_source, json_mime)
+ mapping_file = ('mapping_file', open(self.tf_map, 'rb'), yaml_mime)
# When I do post on terraform endpoint
files = {'iac_file': iac_file, 'mapping_file': mapping_file}
@@ -307,7 +313,7 @@ def test_response_on_invalid_iac_file(self, iac_source, detail):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'IacFileNotValidError'
@@ -317,7 +323,7 @@ def test_response_on_invalid_iac_file(self, iac_source, detail):
assert body_response['errors'][0]['errorMessage'] == detail
@mark.parametrize('mapping_source,msg', [
- (f'small', 'Mapping file does not comply with the schema'),
+ ('small', 'Mapping file does not comply with the schema'),
(b'', 'Mapping files are not valid. Invalid size'),
(bytearray(4), 'Mapping files are not valid. Invalid size'),
(bytearray(1024 * 1024 * 5 + 1), 'Mapping files are not valid. Invalid size')
@@ -328,9 +334,9 @@ def test_response_on_invalid_mapping_file(self, mapping_source, msg):
project_id: str = 'project_A_id'
# And the request files
- iac_file = (self.tf_file, open(self.tf_file, 'rb'), 'application/json')
+ iac_file = (self.tf_file, open(self.tf_file, 'rb'), json_mime)
mapping_source = bytes(mapping_source) if isinstance(mapping_source, bytearray) else mapping_source
- mapping_file = ('mapping_file', mapping_source, 'text/yaml')
+ mapping_file = ('mapping_file', mapping_source, yaml_mime)
# When I do post on terraform endpoint
files = {'iac_file': iac_file, 'mapping_file': mapping_file}
@@ -339,7 +345,7 @@ def test_response_on_invalid_mapping_file(self, mapping_source, msg):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers.get('content-type') == 'application/json'
+ assert response.headers.get('content-type') == json_mime
body_response = json.loads(response.text)
assert body_response['status'] == '400'
assert body_response['error_type'] == 'MappingFileNotValidError'
@@ -353,9 +359,9 @@ def test_mapping_file_terraform_specific_functions(self):
project_id: str = 'project_A_id'
# And the request files, containing a mapping file with all terraform specific functions
- iac_file = (terraform_specific_functions, open(terraform_specific_functions, 'rb'), 'application/json')
+ iac_file = (terraform_specific_functions, open(terraform_specific_functions, 'rb'), json_mime)
mapping_file = (
- terraform_mapping_specific_functions, open(terraform_mapping_specific_functions, 'rb'), 'text/yaml')
+ terraform_mapping_specific_functions, open(terraform_mapping_specific_functions, 'rb'), yaml_mime)
# When I do post on terraform endpoint
files = {'iac_file': iac_file, 'mapping_file': mapping_file}
@@ -364,15 +370,17 @@ def test_mapping_file_terraform_specific_functions(self):
# Then the OTM is returned without errors inside the response as JSON
assert response.status_code == iac_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
- assert '"otmVersion": "0.1.0"' in response.text
- assert '"project": ' in response.text
- assert '"name": "project_A_name"' in response.text
- assert '"trustZones": ' in response.text
- assert '"components": ' in response.text
-
- # And all the expected components are mapped
- assert len(json.loads(response.text)["components"]) == 3
+ assert response.headers.get('content-type') == json_mime
+
+ # And the otm is as expected
+ otm = json.loads(response.text)
+ assert otm['otmVersion'] == '0.2.0'
+ assert otm['project']['id'] == 'project_A_id'
+ assert otm['project']['name'] == 'project_A_name'
+ assert otm['project']['name'] == 'project_A_name'
+ assert len(otm['trustZones']) == 1
+ assert len(otm['components']) == 3
+ assert len(otm['dataflows']) == 0
@responses.activate
def test_create_otm_multiple_files_ok(self):
@@ -382,11 +390,11 @@ def test_create_otm_multiple_files_ok(self):
# And the request files, two definition files, and one mapping file
iac_file_one = (
terraform_multiple_files_one, open(terraform_multiple_files_one, 'rb'),
- 'application/json')
+ json_mime)
iac_file_two = (
terraform_multiple_files_two, open(terraform_multiple_files_two, 'rb'),
- 'application/json')
- mapping_file = (terraform_iriusrisk_tf_aws_mapping, open(terraform_iriusrisk_tf_aws_mapping, 'rb'), 'text/yaml')
+ json_mime)
+ mapping_file = (terraform_iriusrisk_tf_aws_mapping, open(terraform_iriusrisk_tf_aws_mapping, 'rb'), yaml_mime)
# When I do post on terraform endpoint
files = [('iac_file', iac_file_one), ('iac_file', iac_file_two), ('mapping_file', mapping_file)]
@@ -395,12 +403,17 @@ def test_create_otm_multiple_files_ok(self):
# Then the OTM is returned inside the response as JSON
assert response.status_code == iac_create_otm_controller.RESPONSE_STATUS_CODE
- assert response.headers.get('content-type') == 'application/json'
- assert '"otmVersion": "0.1.0"' in response.text
- assert '"project": ' in response.text
- assert '"name": "project_A_name"' in response.text
- assert '"trustZones": ' in response.text
- assert '"components": ' in response.text
+ assert response.headers.get('content-type') == json_mime
+
+ # And the otm is as expected
+ otm = json.loads(response.text)
+ assert otm['otmVersion'] == '0.2.0'
+ assert otm['project']['id'] == 'project_A_id'
+ assert otm['project']['name'] == 'project_A_name'
+ assert otm['project']['name'] == 'project_A_name'
+ assert len(otm['trustZones']) == 1
+ assert len(otm['components']) == 12
+ assert len(otm['dataflows']) == 5
# And all the expected components are mapped (3 from first, 28 from second)
assert len(json.loads(response.text)["components"]) == 12
@@ -413,9 +426,9 @@ def test_create_otm_multiple_files_on_validating_iac_error(self):
# And the request files, two definition files, and one mapping file
iac_file_valid = (
terraform_multiple_files_one, open(terraform_multiple_files_one, 'rb'),
- 'application/json')
+ json_mime)
iac_file_invalid = ''
- mapping_file = (terraform_iriusrisk_tf_aws_mapping, open(terraform_iriusrisk_tf_aws_mapping, 'rb'), 'text/yaml')
+ mapping_file = (terraform_iriusrisk_tf_aws_mapping, open(terraform_iriusrisk_tf_aws_mapping, 'rb'), yaml_mime)
files = [('iac_file', iac_file_valid), ('iac_file', iac_file_invalid), ('mapping_file', mapping_file)]
body = {'iac_type': TESTING_IAC_TYPE, 'id': f'{project_id}', 'name': 'project_A_name'}
@@ -423,7 +436,7 @@ def test_create_otm_multiple_files_on_validating_iac_error(self):
# Then the error is returned inside the response as JSON
assert response.status_code == 400
- assert response.headers['content-type'] == 'application/json'
+ assert response.headers['content-type'] == json_mime
res_body = json.loads(response.content.decode('utf-8'))
assert res_body['status'] == '400'
assert res_body['error_type'] == 'IacFileNotValidError'
diff --git a/tests/integration/cli/summary/__init__.py b/tests/integration/cli/summary/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/integration/cli/summary/visio/__init__.py b/tests/integration/cli/summary/visio/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/integration/cli/summary/visio/test_cli_summary_diagram.py b/tests/integration/cli/summary/visio/test_cli_summary_diagram.py
new file mode 100644
index 00000000..aac96cd5
--- /dev/null
+++ b/tests/integration/cli/summary/visio/test_cli_summary_diagram.py
@@ -0,0 +1,86 @@
+import os
+
+import pytest
+from click.testing import CliRunner
+
+from sl_util.sl_util.file_utils import load_csv_into_dict
+from startleft.startleft.cli.cli import summary
+from tests.resources import test_resource_paths
+
+
+class TestCliSummaryDiagram:
+
+ @pytest.mark.parametrize('diagram_type, source_files, default_mapping_file, custom_mapping_file, output_file', [
+ pytest.param('VISIO', test_resource_paths.visio_aws_stencils, None, None, None, id='visio by name'),
+ pytest.param('LUCID', test_resource_paths.lucid_aws_with_tz, None, None, None, id='lucid by name'),
+ pytest.param('LUCID', test_resource_paths.lucid_aws_with_tz, None, None, 'custom-output-file.csv',
+ id='lucid by name with output_file'),
+ pytest.param('LUCID', test_resource_paths.lucid_aws_vsdx_folder, None, None, None, id='lucid by folder'),
+ pytest.param('LUCID', test_resource_paths.lucid_aws_with_tz, test_resource_paths.default_lucid_mapping, None,
+ None, id='lucid by name with default mapping'),
+ pytest.param('LUCID', test_resource_paths.lucid_aws_with_tz, test_resource_paths.default_lucid_mapping,
+ test_resource_paths.lucid_aws_with_tz_mapping, None,
+ id='lucid by name with default and custom mapping'),
+ ])
+ def test_summary_works_ok(self, diagram_type, source_files, default_mapping_file, custom_mapping_file, output_file):
+ """
+ Check Summary Diagram works ok
+ """
+ runner = CliRunner()
+
+ with runner.isolated_filesystem():
+ # Given a list of arguments with
+ # a valid diagram type
+ args = ['--diagram-type', diagram_type]
+
+ # an optional default mapping file
+ if default_mapping_file:
+ args.append('--default-mapping-file')
+ args.append(default_mapping_file)
+
+ # an optional custom mapping file
+ if custom_mapping_file:
+ args.append('--custom-mapping-file')
+ args.append(custom_mapping_file)
+
+ # an optional output file
+ if output_file:
+ args.append('--output-file')
+ args.append(output_file)
+
+ # and a valid source file
+ args.append(source_files)
+
+ # When summary
+ result = runner.invoke(summary, args)
+
+ # Then summary is generated correctly
+ assert result.exit_code == 0
+ # and the file exists
+ assert os.path.isfile(output_file if output_file else 'summary.csv')
+
+ def test_summary_check_csv_content(self):
+ """
+ Check Summary Diagram csv content
+ """
+ runner = CliRunner()
+
+ with runner.isolated_filesystem():
+ # Given a list of arguments with
+ args = [
+ # a valid diagram type
+ '--diagram-type', 'LUCID',
+ # a default mapping file
+ '--default-mapping-file', test_resource_paths.default_lucid_mapping,
+ # a custom mapping file
+ '--custom-mapping-file', test_resource_paths.lucid_aws_with_tz_mapping,
+ # and a valid source file
+ test_resource_paths.lucid_aws_with_tz,
+ ]
+ # When summary
+ result = runner.invoke(summary, args)
+ # Then summary is generated correctly
+ assert result.exit_code == 0
+ summary_csv = load_csv_into_dict('summary.csv')
+ expected_summary_csv = load_csv_into_dict(test_resource_paths.lucid_summary_expected_summary)
+ assert expected_summary_csv == summary_csv
diff --git a/tests/resources/cloudformation/cloudformation_for_mappings_tests.otm b/tests/resources/cloudformation/cloudformation_for_mappings_tests.otm
index 92f97018..4f5ea62f 100644
--- a/tests/resources/cloudformation/cloudformation_for_mappings_tests.otm
+++ b/tests/resources/cloudformation/cloudformation_for_mappings_tests.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/tests/resources/lucid/lucid-aws-with-tz-and-vpc.otm b/tests/resources/lucid/lucid-aws-with-tz-and-vpc.otm
index 17be6f3d..26c9f4bf 100644
--- a/tests/resources/lucid/lucid-aws-with-tz-and-vpc.otm
+++ b/tests/resources/lucid/lucid-aws-with-tz-and-vpc.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "test_parse_diagram_file_ok",
"id": "test_parse_diagram_file_ok"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "1",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "5",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -61,7 +63,8 @@
]
},
{
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "36",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
@@ -89,7 +92,7 @@
"name": "Custom VPC",
"type": "empty-component",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -135,7 +138,7 @@
"name": "My CloudWatch",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -158,7 +161,7 @@
"name": "My API Gateway",
"type": "api-gateway",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -181,7 +184,7 @@
"name": "My CloudTrail",
"type": "cloudtrail",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -204,7 +207,7 @@
"name": "My Simple Storage Service (S3)",
"type": "s3",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -227,7 +230,7 @@
"name": "Web browser",
"type": "generic-client",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "36"
},
"representations": [
{
@@ -250,7 +253,7 @@
"name": "Android",
"type": "android-device-client",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "36"
},
"representations": [
{
@@ -273,7 +276,7 @@
"name": "SQL Database",
"type": "CD-MICROSOFT-AZURE-SQL-DB",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "5"
},
"representations": [
{
@@ -296,7 +299,7 @@
"name": "My DynamoDB",
"type": "dynamodb",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "5"
},
"representations": [
{
@@ -342,13 +345,13 @@
},
{
"id": "43",
- "name": "2114ddb1-f677-4275-a9a2-0b2ac8e11073",
+ "name": "b8161949-a8ba-4a30-b409-9547dfb51740",
"source": "38",
"destination": "17"
},
{
"id": "46",
- "name": "f58ee066-de2c-4464-9ceb-117b5dfa2703",
+ "name": "6ceb010f-8390-4dc5-943b-62d268c34e78",
"source": "44",
"destination": "17"
},
diff --git a/tests/resources/lucid/lucid-aws-with-tz-and-vpc.yaml b/tests/resources/lucid/lucid-aws-with-tz-and-vpc.yaml
index ad3b3078..f3b82df8 100644
--- a/tests/resources/lucid/lucid-aws-with-tz-and-vpc.yaml
+++ b/tests/resources/lucid/lucid-aws-with-tz-and-vpc.yaml
@@ -24,8 +24,3 @@ components:
- label: Custom VPC
type: empty-component
-
-
-
-
-dataflows: []
diff --git a/tests/resources/lucid/lucid-aws-with-tz-default.otm b/tests/resources/lucid/lucid-aws-with-tz-default.otm
index 97e959e6..cb0cf751 100644
--- a/tests/resources/lucid/lucid-aws-with-tz-default.otm
+++ b/tests/resources/lucid/lucid-aws-with-tz-default.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "test_parse_diagram_file_ok",
"id": "test_parse_diagram_file_ok"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "1",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "5",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -59,6 +61,30 @@
}
}
]
+ },
+ {
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "name": "Public Cloud",
+ "risk": {
+ "trustRating": 10
+ },
+ "representations": [
+ {
+ "name": "Public Cloud Representation",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605-representation",
+ "representation": "test_parse_diagram_file_ok-diagram",
+ "size": {
+ "width": 142,
+ "height": 140
+ },
+ "position": {
+ "x": 394,
+ "y": 626
+ }
+ }
+ ],
+ "attributes": {"default": true}
}
],
"components": [
@@ -67,7 +93,7 @@
"name": "My EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -90,7 +116,7 @@
"name": "My CloudWatch",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -113,7 +139,7 @@
"name": "My API Gateway",
"type": "api-gateway",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -136,7 +162,7 @@
"name": "My CloudTrail",
"type": "cloudtrail",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -159,7 +185,7 @@
"name": "My Simple Storage Service (S3)",
"type": "s3",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -182,7 +208,7 @@
"name": "Web browser",
"type": "generic-client",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -205,7 +231,7 @@
"name": "SQL Database",
"type": "CD-MICROSOFT-AZURE-SQL-DB",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "5"
},
"representations": [
{
@@ -228,7 +254,7 @@
"name": "My DynamoDB",
"type": "other-database",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "5"
},
"representations": [
{
diff --git a/tests/resources/lucid/lucid-aws-with-tz.otm b/tests/resources/lucid/lucid-aws-with-tz.otm
index c8af2cdd..76c4c1b4 100644
--- a/tests/resources/lucid/lucid-aws-with-tz.otm
+++ b/tests/resources/lucid/lucid-aws-with-tz.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "test_parse_diagram_file_ok",
"id": "test_parse_diagram_file_ok"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "1",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "5",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -61,7 +63,8 @@
]
},
{
- "id": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
+ "id": "34",
+ "type": "f0ba7722-39b6-4c81-8290-a30a248bb8d9",
"name": "Internet",
"risk": {
"trustRating": 10
@@ -89,7 +92,7 @@
"name": "My EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -112,7 +115,7 @@
"name": "My CloudWatch",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -135,7 +138,7 @@
"name": "My API Gateway",
"type": "api-gateway",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -158,7 +161,7 @@
"name": "My CloudTrail",
"type": "cloudtrail",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -181,7 +184,7 @@
"name": "My Simple Storage Service (S3)",
"type": "s3",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "1"
},
"representations": [
{
@@ -204,7 +207,7 @@
"name": "Web browser",
"type": "generic-client",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "34"
},
"representations": [
{
@@ -227,7 +230,7 @@
"name": "Android",
"type": "android-device-client",
"parent": {
- "trustZone": "f0ba7722-39b6-4c81-8290-a30a248bb8d9"
+ "trustZone": "34"
},
"representations": [
{
@@ -250,7 +253,7 @@
"name": "SQL Database",
"type": "CD-MICROSOFT-AZURE-SQL-DB",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "5"
},
"representations": [
{
@@ -273,7 +276,7 @@
"name": "My DynamoDB",
"type": "dynamodb",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "5"
},
"representations": [
{
@@ -319,13 +322,13 @@
},
{
"id": "41",
- "name": "b0059921-bdba-4a1d-bdd5-f672636e9af3",
+ "name": "ee05d7f5-451f-4b00-9dd9-971033a576c0",
"source": "36",
"destination": "15"
},
{
"id": "44",
- "name": "637b85b3-1a0f-4648-a519-ada47d7192ef",
+ "name": "3491f9b5-dccc-42f3-a364-44a675d6a83e",
"source": "42",
"destination": "15"
},
diff --git a/tests/resources/lucid/lucid-aws-with-tz.yaml b/tests/resources/lucid/lucid-aws-with-tz.yaml
index ae75ef28..40dba7ac 100644
--- a/tests/resources/lucid/lucid-aws-with-tz.yaml
+++ b/tests/resources/lucid/lucid-aws-with-tz.yaml
@@ -21,6 +21,3 @@ components:
- label: My DynamoDB
type: dynamodb
-
-
-dataflows: []
diff --git a/tests/resources/lucid/summary-expected-summary.csv b/tests/resources/lucid/summary-expected-summary.csv
new file mode 100644
index 00000000..cf0214ef
--- /dev/null
+++ b/tests/resources/lucid/summary-expected-summary.csv
@@ -0,0 +1,13 @@
+SOURCE,SOURCE_ELEMENT_TYPE,SOURCE_ELEMENT_NAME,OTM_MAPPED_TYPE
+lucid-aws-with-tz.vsdx,AWSCloud,Public Cloud,Trustzone[Public Cloud]
+lucid-aws-with-tz.vsdx,AWSCloudTrail,My CloudTrail,cloudtrail
+lucid-aws-with-tz.vsdx,AmazonAPIGateway_purple,My API Gateway,api-gateway
+lucid-aws-with-tz.vsdx,AmazonCloudWatch,My CloudWatch,cloudwatch
+lucid-aws-with-tz.vsdx,AmazonEC2,My EC2,ec2
+lucid-aws-with-tz.vsdx,AmazonSimpleStorageServiceS3,My Simple Storage Service (S3),s3
+lucid-aws-with-tz.vsdx,Client,Web browser,generic-client
+lucid-aws-with-tz.vsdx,DatabaseBlock,My DynamoDB,dynamodb
+lucid-aws-with-tz.vsdx,DefaultSquareBlock,Internet,Trustzone[Internet]
+lucid-aws-with-tz.vsdx,Mobileclient,Android,android-device-client
+lucid-aws-with-tz.vsdx,RectangleBlock,Private Secured Cloud,Trustzone[Private Secured Cloud]
+lucid-aws-with-tz.vsdx,SQLDatabaseAzure2021,SQL Database,CD-MICROSOFT-AZURE-SQL-DB
diff --git a/tests/resources/otm/otm_empty_file_cloudformation_example.otm b/tests/resources/otm/otm_empty_file_cloudformation_example.otm
index 7290f6b5..9c99330d 100644
--- a/tests/resources/otm/otm_empty_file_cloudformation_example.otm
+++ b/tests/resources/otm/otm_empty_file_cloudformation_example.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/tests/resources/otm/otm_empty_file_terraform_example.otm b/tests/resources/otm/otm_empty_file_terraform_example.otm
index 95cd746b..d150cc15 100644
--- a/tests/resources/otm/otm_empty_file_terraform_example.otm
+++ b/tests/resources/otm/otm_empty_file_terraform_example.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -14,6 +14,7 @@
"trustZones": [
{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/tests/resources/terraform/aws_simple_components.otm b/tests/resources/terraform/aws_simple_components.otm
index e0e0ff3a..e1ee1227 100644
--- a/tests/resources/terraform/aws_simple_components.otm
+++ b/tests/resources/terraform/aws_simple_components.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "test_parse_terraform_file_ok",
"id": "test_parse_terraform_file_ok"
@@ -11,6 +11,7 @@
}],
"trustZones": [{
"id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
diff --git a/tests/resources/test_resource_paths.py b/tests/resources/test_resource_paths.py
index 15d8db68..247cffee 100644
--- a/tests/resources/test_resource_paths.py
+++ b/tests/resources/test_resource_paths.py
@@ -3,123 +3,125 @@
path = os.path.dirname(__file__)
# GENERIC
-example_json = path + '/example.json'
-example_yaml = path + '/example.yaml'
-invalid_yaml = path + '/invalid-yaml.yaml'
-invalid_tf = path + '/invalid-tf.tf'
-example_gzip = path + '/example.gz'
+example_json = f'{path}/example.json'
+example_yaml = f'{path}/example.yaml'
+invalid_yaml = f'{path}/invalid-yaml.yaml'
+invalid_tf = f'{path}/invalid-tf.tf'
+example_gzip = f'{path}/example.gz'
empty_mapping_file = path + "/empty_mapping_file.yaml"
# OTM
-otm_file_example = path + '/otm/otm_file_example.otm'
-otm_yaml_file_example = path + '/otm/otm_file_example_yaml.otm'
-otm_empty_file_terraform_example = path + '/otm/otm_empty_file_terraform_example.otm'
-otm_empty_file_cloudformation_example = path + '/otm/otm_empty_file_cloudformation_example.otm'
+otm_file_example = f'{path}/otm/otm_file_example.otm'
+otm_yaml_file_example = f'{path}/otm/otm_file_example_yaml.otm'
+otm_empty_file_terraform_example = f'{path}/otm/otm_empty_file_terraform_example.otm'
+otm_empty_file_cloudformation_example = f'{path}/otm/otm_empty_file_cloudformation_example.otm'
# CLOUDFORMATION
-cloudformation_for_mappings_tests_json = path + '/cloudformation/cloudformation_for_mappings_tests.json'
-cloudformation_for_security_group_tests_json = path + '/cloudformation/cloudformation_for_security_group_tests.json'
-cloudformation_for_security_group_tests_2_json = path + '/cloudformation/cloudformation_for_security_group_tests_2.json'
-cloudformation_for_security_groups_mapping = path + '/cloudformation/cloudformation_for_security_group_tests_mapping_definitions.yaml'
-cloudformation_gz = path + '/cloudformation/cloudformation.gz'
-cloudformation_invalid_size = path + '/cloudformation/cloudformation-invalid-size.json'
-cloudformation_malformed_mapping_wrong_id = path + '/cloudformation/cloudformation_malformed_mapping_wrong_id.yaml'
-cloudformation_component_without_parent = path + '/cloudformation/cloudformation_component_without_parent.json'
-cloudformation_skipped_component_without_parent = path + '/cloudformation/cloudformation_component_without_parent_skipped.json'
-cloudformation_unknown_resource = path + '/cloudformation/cloudformation_unknown_resource.json'
-cloudformation_all_functions = path + '/cloudformation/cloudformation_all_functions.json'
-cloudformation_multiple_files_networks = path + '/cloudformation/cloudformation_multiple_files_networks.json'
-cloudformation_multiple_files_resources = path + '/cloudformation/cloudformation_multiple_files_resources.json'
-cloudformation_ref_full_syntax = path + '/cloudformation/cloudformation_ref_full_syntax.yaml'
-cloudformation_ref_short_syntax = path + '/cloudformation/cloudformation_ref_short_syntax.yaml'
+cloudformation_for_mappings_tests_json = f'{path}/cloudformation/cloudformation_for_mappings_tests.json'
+cloudformation_for_security_group_tests_json = f'{path}/cloudformation/cloudformation_for_security_group_tests.json'
+cloudformation_for_security_group_tests_2_json = f'{path}/cloudformation/cloudformation_for_security_group_tests_2.json'
+cloudformation_for_security_groups_mapping = f'{path}/cloudformation/cloudformation_for_security_group_tests_mapping_definitions.yaml'
+cloudformation_gz = f'{path}/cloudformation/cloudformation.gz'
+cloudformation_invalid_size = f'{path}/cloudformation/cloudformation-invalid-size.json'
+cloudformation_malformed_mapping_wrong_id = f'{path}/cloudformation/cloudformation_malformed_mapping_wrong_id.yaml'
+cloudformation_component_without_parent = f'{path}/cloudformation/cloudformation_component_without_parent.json'
+cloudformation_skipped_component_without_parent = f'{path}/cloudformation/cloudformation_component_without_parent_skipped.json'
+cloudformation_unknown_resource = f'{path}/cloudformation/cloudformation_unknown_resource.json'
+cloudformation_all_functions = f'{path}/cloudformation/cloudformation_all_functions.json'
+cloudformation_multiple_files_networks = f'{path}/cloudformation/cloudformation_multiple_files_networks.json'
+cloudformation_multiple_files_resources = f'{path}/cloudformation/cloudformation_multiple_files_resources.json'
+cloudformation_ref_full_syntax = f'{path}/cloudformation/cloudformation_ref_full_syntax.yaml'
+cloudformation_ref_short_syntax = f'{path}/cloudformation/cloudformation_ref_short_syntax.yaml'
# mapping
-default_cloudformation_mapping = path + '/cloudformation/cloudformation_mapping.yaml'
-cloudformation_mapping_component_without_parent = path + '/cloudformation/cloudformation_mapping_component_without_parent.yaml'
-cloudformation_mapping_all_functions = path + '/cloudformation/cloudformation_mapping_all_functions.yaml'
+default_cloudformation_mapping = f'{path}/cloudformation/cloudformation_mapping.yaml'
+cloudformation_mapping_component_without_parent = f'{path}/cloudformation/cloudformation_mapping_component_without_parent.yaml'
+cloudformation_mapping_all_functions = f'{path}/cloudformation/cloudformation_mapping_all_functions.yaml'
# expected otm results
-cloudformation_for_mappings_tests_json_otm_expected = path + '/cloudformation/cloudformation_for_mappings_tests.otm'
+cloudformation_for_mappings_tests_json_otm_expected = f'{path}/cloudformation/cloudformation_for_mappings_tests.otm'
# TERRAFORM
-terraform_for_mappings_tests_json = path + '/terraform/terraform_for_mappings_tests.tf'
-terraform_aws_simple_components = path + '/terraform/aws_simple_components.tf'
-terraform_aws_multiple_components = path + '/terraform/aws_multiple_components.tf'
-terraform_aws_singleton_components = path + '/terraform/aws_singleton_components.tf'
-terraform_aws_altsource_components = path + '/terraform/aws_altsource_components.tf'
-terraform_aws_security_groups_components = path + '/terraform/aws_security_groups_components.tf'
-terraform_aws_dataflows = path + '/terraform/aws_dataflows.tf'
-terraform_aws_parent_children_components = path + '/terraform/aws_parent_children_components.tf'
-terraform_aws_singleton_components_unix_line_breaks = path + '/terraform/aws_singleton_components_unix_line_breaks.tf'
-terraform_component_without_parent = path + '/terraform/aws_component_without_parent.tf'
-terraform_skipped_component_without_parent = path + '/terraform/aws_component_without_parent_skipped.tf'
-terraform_unknown_resource = path + '/terraform/terraform_unknown_resource.tf'
-terraform_unknown_module = path + '/terraform/terraform_unknown_module.tf'
-terraform_no_resources = path + '/terraform/no_resources.tf'
-terraform_gz = path + '/terraform/terraform.gz'
-terraform_specific_functions = path + '/terraform/terraform_specific_functions.tf'
-terraform_modules = path + '/terraform/terraform_modules_sample.tf'
-terraform_extra_modules_sample = path + '/terraform/terraform_extra_modules_sample.tf'
-terraform_multiple_files_one = path + '/terraform/aws_simple_components.tf'
-terraform_multiple_files_two = path + '/terraform/aws_dataflows.tf'
+terraform_for_mappings_tests_json = f'{path}/terraform/terraform_for_mappings_tests.tf'
+terraform_aws_simple_components = f'{path}/terraform/aws_simple_components.tf'
+terraform_aws_multiple_components = f'{path}/terraform/aws_multiple_components.tf'
+terraform_aws_singleton_components = f'{path}/terraform/aws_singleton_components.tf'
+terraform_aws_altsource_components = f'{path}/terraform/aws_altsource_components.tf'
+terraform_aws_security_groups_components = f'{path}/terraform/aws_security_groups_components.tf'
+terraform_aws_dataflows = f'{path}/terraform/aws_dataflows.tf'
+terraform_aws_parent_children_components = f'{path}/terraform/aws_parent_children_components.tf'
+terraform_aws_singleton_components_unix_line_breaks = f'{path}/terraform/aws_singleton_components_unix_line_breaks.tf'
+terraform_component_without_parent = f'{path}/terraform/aws_component_without_parent.tf'
+terraform_skipped_component_without_parent = f'{path}/terraform/aws_component_without_parent_skipped.tf'
+terraform_unknown_resource = f'{path}/terraform/terraform_unknown_resource.tf'
+terraform_unknown_module = f'{path}/terraform/terraform_unknown_module.tf'
+terraform_no_resources = f'{path}/terraform/no_resources.tf'
+terraform_gz = f'{path}/terraform/terraform.gz'
+terraform_specific_functions = f'{path}/terraform/terraform_specific_functions.tf'
+terraform_modules = f'{path}/terraform/terraform_modules_sample.tf'
+terraform_extra_modules_sample = f'{path}/terraform/terraform_extra_modules_sample.tf'
+terraform_multiple_files_one = f'{path}/terraform/aws_simple_components.tf'
+terraform_multiple_files_two = f'{path}/terraform/aws_dataflows.tf'
# mapping
-terraform_iriusrisk_tf_aws_mapping = path + '/terraform/iriusrisk-tf-aws-mapping.yaml'
-terraform_mapping_aws_component_without_parent = path + '/terraform/terraform_mapping_component_without_parent.yaml'
-terraform_malformed_mapping_wrong_id = path + '/terraform/terraform-malformed-mapping-wrong-id.yaml'
-terraform_mapping_specific_functions = path + '/terraform/terraform_mapping_specific_functions.yaml'
-terraform_mapping_modules = path + '/terraform/terraform_mapping_modules.yaml'
-terraform_mapping_extra_modules = path + '/terraform/terraform_mapping_extra_modules.yaml'
+terraform_iriusrisk_tf_aws_mapping = f'{path}/terraform/iriusrisk-tf-aws-mapping.yaml'
+terraform_mapping_aws_component_without_parent = f'{path}/terraform/terraform_mapping_component_without_parent.yaml'
+terraform_malformed_mapping_wrong_id = f'{path}/terraform/terraform-malformed-mapping-wrong-id.yaml'
+terraform_mapping_specific_functions = f'{path}/terraform/terraform_mapping_specific_functions.yaml'
+terraform_mapping_modules = f'{path}/terraform/terraform_mapping_modules.yaml'
+terraform_mapping_extra_modules = f'{path}/terraform/terraform_mapping_extra_modules.yaml'
# expected otm results
-terraform_aws_simple_components_otm_expected = path + '/terraform/aws_simple_components.otm'
+terraform_aws_simple_components_otm_expected = f'{path}/terraform/aws_simple_components.otm'
# VISIO
-visio_aws_with_tz_and_vpc = path + '/visio/aws-with-tz-and-vpc.vsdx'
-visio_aws_shapes = path + '/visio/aws-shapes.vsdx'
-visio_aws_stencils = path + '/visio/aws-stencils.vsdx'
-visio_generic_shapes = path + '/visio/generic-shapes.vsdx'
-visio_self_pointing_connectors = path + '/visio/self-pointing-connectors.vsdx'
-visio_extraneous_elements = path + '/visio/extraneous-elements.vsdx'
-visio_boundaries = path + '/visio/boundaries.vsdx'
-visio_simple_boundary_tzs = path + '/visio/simple-boundary-tzs.vsdx'
-visio_boundary_tz_and_default_tz = path + '/visio/boundary-tz-and-default-tz.vsdx'
-visio_overlapped_boundary_tzs = path + '/visio/overlapped-boundary-tzs.vsdx'
-visio_multiple_pages_diagram = path + '/visio/multiple-pages-diagram.vsdx'
-visio_boundary_and_component_tzs = path + '/visio/boundary-and-component-tzs.vsdx'
-visio_nested_tzs = path + '/visio/nested-tzs.vsdx'
-visio_simple_components = path + '/visio/simple-components.vsdx'
-visio_orphan_dataflows = path + '/visio/visio-orphan-dataflows.vsdx'
-visio_invalid_file_size = path + '/visio/invalid-file-size.vsdx'
-visio_invalid_file_type = path + '/visio/invalid-file-type.pdf'
-visio_modified_single_connectors = path + '/visio/modified-single-connectors.vsdx'
-visio_bidirectional_connectors = path + '/visio/bidirectional-connectors.vsdx'
+visio_aws_vsdx_folder = f'{path}/visio/'
+visio_aws_with_tz_and_vpc = f'{path}/visio/aws-with-tz-and-vpc.vsdx'
+visio_aws_shapes = f'{path}/visio/aws-shapes.vsdx'
+visio_aws_stencils = f'{path}/visio/aws-stencils.vsdx'
+visio_generic_shapes = f'{path}/visio/generic-shapes.vsdx'
+visio_self_pointing_connectors = f'{path}/visio/self-pointing-connectors.vsdx'
+visio_extraneous_elements = f'{path}/visio/extraneous-elements.vsdx'
+visio_boundaries = f'{path}/visio/boundaries.vsdx'
+visio_simple_boundary_tzs = f'{path}/visio/simple-boundary-tzs.vsdx'
+visio_boundary_tz_and_default_tz = f'{path}/visio/boundary-tz-and-default-tz.vsdx'
+visio_overlapped_boundary_tzs = f'{path}/visio/overlapped-boundary-tzs.vsdx'
+visio_multiple_pages_diagram = f'{path}/visio/multiple-pages-diagram.vsdx'
+visio_boundary_and_component_tzs = f'{path}/visio/boundary-and-component-tzs.vsdx'
+visio_nested_tzs = f'{path}/visio/nested-tzs.vsdx'
+visio_simple_components = f'{path}/visio/simple-components.vsdx'
+visio_orphan_dataflows = f'{path}/visio/visio-orphan-dataflows.vsdx'
+visio_invalid_file_size = f'{path}/visio/invalid-file-size.vsdx'
+visio_invalid_file_type = f'{path}/visio/invalid-file-type.pdf'
+visio_modified_single_connectors = f'{path}/visio/modified-single-connectors.vsdx'
+visio_bidirectional_connectors = f'{path}/visio/bidirectional-connectors.vsdx'
# mapping
-default_visio_mapping = path + '/visio/aws-visio-mapping.yaml'
-custom_vpc_mapping = path + '/visio/custom-vpc-mapping.yaml'
+default_visio_mapping = f'{path}/visio/aws-visio-mapping.yaml'
+custom_vpc_mapping = f'{path}/visio/custom-vpc-mapping.yaml'
# legacy mapping
-default_visio_mapping_legacy = path + '/visio/legacy/aws-visio-mapping.yaml'
-custom_vpc_mapping_legacy = path + '/visio/legacy/custom-vpc-mapping.yaml'
+default_visio_mapping_legacy = f'{path}/visio/legacy/aws-visio-mapping.yaml'
+custom_vpc_mapping_legacy = f'{path}/visio/legacy/custom-vpc-mapping.yaml'
# expected otm results
-visio_aws_shapes_otm_expected = path + '/visio/aws-shapes.otm'
-visio_aws_with_tz_and_vpc_otm_expected = path + '/visio/aws-with-tz-and-vpc.otm'
-visio_orphan_dataflows_otm_expected = path + '/visio/visio-orphan-dataflows.otm'
-visio_create_otm_ok_only_default_mapping = path + '/visio/visio_create_otm_ok_only_default_mapping.otm'
-visio_create_otm_ok_both_mapping_files = path + '/visio/visio_create_otm_ok_both_mapping_files.otm'
+visio_aws_shapes_otm_expected = f'{path}/visio/aws-shapes.otm'
+visio_aws_with_tz_and_vpc_otm_expected = f'{path}/visio/aws-with-tz-and-vpc.otm'
+visio_orphan_dataflows_otm_expected = f'{path}/visio/visio-orphan-dataflows.otm'
+visio_create_otm_ok_only_default_mapping = f'{path}/visio/visio_create_otm_ok_only_default_mapping.otm'
MTMT_multiple_trustzones_same_type_ID = f'{path}/otm/MTMT_multiple_trustzones_same_type_ID.otm'
MTMT_multiple_trustzones_same_type_TYPE = f'{path}/otm/MTMT_multiple_trustzones_same_type_TYPE.otm'
# LUCID
-lucid_aws_with_tz = path + '/lucid/lucid-aws-with-tz.vsdx'
-lucid_aws_with_tz_and_vpc = path + '/lucid/lucid-aws-with-tz-and-vpc.vsdx'
+lucid_aws_vsdx_folder = f'{path}/lucid/'
+lucid_aws_with_tz = f'{path}/lucid/lucid-aws-with-tz.vsdx'
+lucid_aws_with_tz_and_vpc = f'{path}/lucid/lucid-aws-with-tz-and-vpc.vsdx'
+lucid_summary_expected_summary = f'{path}/lucid/summary-expected-summary.csv'
# mapping
-default_lucid_mapping = path + '/lucid/default-lucid-mapping.yaml'
-lucid_aws_with_tz_mapping = path + '/lucid/lucid-aws-with-tz.yaml'
-lucid_aws_with_tz_and_vpc_mapping = path + '/lucid/lucid-aws-with-tz-and-vpc.yaml'
+default_lucid_mapping = f'{path}/lucid/default-lucid-mapping.yaml'
+lucid_aws_with_tz_mapping = f'{path}/lucid/lucid-aws-with-tz.yaml'
+lucid_aws_with_tz_and_vpc_mapping = f'{path}/lucid/lucid-aws-with-tz-and-vpc.yaml'
# expected otm results
-lucid_aws_with_tz_default_otm = path + '/lucid/lucid-aws-with-tz-default.otm'
-lucid_aws_with_tz_otm = path + '/lucid/lucid-aws-with-tz.otm'
-lucid_aws_with_tz_and_vpc_otm = path + '/lucid/lucid-aws-with-tz-and-vpc.otm'
+lucid_aws_with_tz_default_otm = f'{path}/lucid/lucid-aws-with-tz-default.otm'
+lucid_aws_with_tz_otm = f'{path}/lucid/lucid-aws-with-tz.otm'
+lucid_aws_with_tz_and_vpc_otm = f'{path}/lucid/lucid-aws-with-tz-and-vpc.otm'
# MTMT
-mtmt_mapping_file_valid = path + '/mtmt/mapping_example.yaml'
-mtmt_mapping_file_invalid = path + '/mtmt/mapping_example_invalid.yaml'
\ No newline at end of file
+mtmt_mapping_file_valid = f'{path}/mtmt/mapping_example.yaml'
+mtmt_mapping_file_invalid = f'{path}/mtmt/mapping_example_invalid.yaml'
diff --git a/tests/resources/visio/aws-shapes.otm b/tests/resources/visio/aws-shapes.otm
index cbf69a3e..9ef91ebc 100644
--- a/tests/resources/visio/aws-shapes.otm
+++ b/tests/resources/visio/aws-shapes.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "test_parse_diagram_file_ok",
"id": "test_parse_diagram_file_ok"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -94,7 +95,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -117,7 +118,7 @@
"name": "Amazon CloudWatch",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -140,7 +141,7 @@
"name": "Custom log system",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/tests/resources/visio/aws-visio-mapping.yaml b/tests/resources/visio/aws-visio-mapping.yaml
index 185fb909..17fea579 100644
--- a/tests/resources/visio/aws-visio-mapping.yaml
+++ b/tests/resources/visio/aws-visio-mapping.yaml
@@ -284,5 +284,3 @@ components:
- label: Bucket
type: s3
-
-dataflows: []
\ No newline at end of file
diff --git a/tests/resources/visio/aws-with-tz-and-vpc.otm b/tests/resources/visio/aws-with-tz-and-vpc.otm
index a1d97a87..57d8fd1d 100644
--- a/tests/resources/visio/aws-with-tz-and-vpc.otm
+++ b/tests/resources/visio/aws-with-tz-and-vpc.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "test_parse_diagram_file_ok",
"id": "test_parse_diagram_file_ok"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "47",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "48",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -67,7 +69,7 @@
"name": "Custom VPC",
"type": "empty-component",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -136,7 +138,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "48"
},
"representations": [
{
@@ -159,7 +161,7 @@
"name": "Amazon CloudWatch",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -182,7 +184,7 @@
"name": "Custom log system",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
diff --git a/tests/resources/visio/visio-orphan-dataflows.otm b/tests/resources/visio/visio-orphan-dataflows.otm
index d00dc129..5f4bd39e 100644
--- a/tests/resources/visio/visio-orphan-dataflows.otm
+++ b/tests/resources/visio/visio-orphan-dataflows.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project-name",
"id": "project-id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "804b664a-7129-4a9e-a08c-16a99669f605",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -48,7 +49,7 @@
"name": "Bucket",
"type": "s3",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -71,7 +72,7 @@
"name": "Bucket",
"type": "s3",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -94,7 +95,7 @@
"name": "Amazon MQ",
"type": "CD-MQ",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -117,7 +118,7 @@
"name": "Amazon MQ",
"type": "CD-MQ",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -140,7 +141,7 @@
"name": "Database",
"type": "rds",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
@@ -163,7 +164,7 @@
"name": "Amazon MQ",
"type": "CD-MQ",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "804b664a-7129-4a9e-a08c-16a99669f605"
},
"representations": [
{
diff --git a/tests/resources/visio/visio_create_otm_ok_both_mapping_files.otm b/tests/resources/visio/visio_create_otm_ok_both_mapping_files.otm
deleted file mode 100644
index f1263038..00000000
--- a/tests/resources/visio/visio_create_otm_ok_both_mapping_files.otm
+++ /dev/null
@@ -1,230 +0,0 @@
-{
- "otmVersion": "0.1.0",
- "project": {
- "name": "project_A_name",
- "id": "project_A_id"
- },
- "representations": [
- {
- "name": "project_A_id Diagram Representation",
- "id": "project_A_id-diagram",
- "type": "diagram",
- "size": {
- "width": 1967,
- "height": 1356
- }
- }
- ],
- "trustZones": [
- {
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
- "name": "Public Cloud",
- "risk": {
- "trustRating": 10
- },
- "representations": [
- {
- "name": "Public Cloud Representation",
- "id": "47-representation",
- "representation": "project_A_id-diagram",
- "size": {
- "width": 590,
- "height": 700
- },
- "position": {
- "x": 328,
- "y": 328
- }
- }
- ]
- },
- {
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
- "name": "Private Secured Cloud",
- "risk": {
- "trustRating": 10
- },
- "representations": [
- {
- "name": "Private Secured Cloud Representation",
- "id": "48-representation",
- "representation": "project_A_id-diagram",
- "size": {
- "width": 523,
- "height": 472
- },
- "position": {
- "x": 1116,
- "y": 421
- }
- }
- ]
- }
- ],
- "components": [
- {
- "id": "49",
- "name": "Custom VPC",
- "type": "empty-component",
- "parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
- },
- "representations": [
- {
- "name": "Custom VPC Representation",
- "id": "49-representation",
- "representation": "project_A_id-diagram",
- "size": {
- "width": 295,
- "height": 406
- },
- "position": {
- "x": 57,
- "y": 29
- }
- }
- ]
- },
- {
- "id": "1",
- "name": "Amazon EC2",
- "type": "ec2",
- "parent": {
- "component": "49"
- },
- "representations": [
- {
- "name": "Amazon EC2 Representation",
- "id": "1-representation",
- "representation": "project_A_id-diagram",
- "size": {
- "width": 82,
- "height": 82
- },
- "position": {
- "x": 82,
- "y": 24
- }
- }
- ]
- },
- {
- "id": "12",
- "name": "Custom machine",
- "type": "ec2",
- "parent": {
- "component": "49"
- },
- "representations": [
- {
- "name": "Custom machine Representation",
- "id": "12-representation",
- "representation": "project_A_id-diagram",
- "size": {
- "width": 82,
- "height": 82
- },
- "position": {
- "x": 82,
- "y": 230
- }
- }
- ]
- },
- {
- "id": "30",
- "name": "Private Database",
- "type": "rds",
- "parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
- },
- "representations": [
- {
- "name": "Private Database Representation",
- "id": "30-representation",
- "representation": "project_A_id-diagram",
- "size": {
- "width": 82,
- "height": 82
- },
- "position": {
- "x": 219,
- "y": 166
- }
- }
- ]
- },
- {
- "id": "35",
- "name": "Amazon CloudWatch",
- "type": "cloudwatch",
- "parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
- },
- "representations": [
- {
- "name": "Amazon CloudWatch Representation",
- "id": "35-representation",
- "representation": "project_A_id-diagram",
- "size": {
- "width": 82,
- "height": 82
- },
- "position": {
- "x": 477,
- "y": 53
- }
- }
- ]
- },
- {
- "id": "41",
- "name": "Custom log system",
- "type": "cloudwatch",
- "parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
- },
- "representations": [
- {
- "name": "Custom log system Representation",
- "id": "41-representation",
- "representation": "project_A_id-diagram",
- "size": {
- "width": 82,
- "height": 82
- },
- "position": {
- "x": 139,
- "y": 516
- }
- }
- ]
- }
- ],
- "dataflows": [
- {
- "destination": "12",
- "id": "17",
- "name": "21830dc6-840d-4254-bb35-f4b2c68561e5",
- "source": "1"
- },
- {
- "destination": "30",
- "id": "34",
- "name": "89ab351c-6ae7-4afb-ad90-0eb045fd801a",
- "source": "12"
- },
- {
- "destination": "35",
- "id": "40",
- "name": "7aecb32c-e39f-4dc2-ad6e-7f5793161a6d",
- "source": "1"
- },
- {
- "destination": "41",
- "id": "46",
- "name": "6ceb010f-8390-4dc5-943b-62d268c34e78",
- "source": "12"
- }
- ]
-}
\ No newline at end of file
diff --git a/tests/resources/visio/visio_create_otm_ok_only_default_mapping.otm b/tests/resources/visio/visio_create_otm_ok_only_default_mapping.otm
index 2d92e5ee..ab18cb1f 100644
--- a/tests/resources/visio/visio_create_otm_ok_only_default_mapping.otm
+++ b/tests/resources/visio/visio_create_otm_ok_only_default_mapping.otm
@@ -1,5 +1,5 @@
{
- "otmVersion": "0.1.0",
+ "otmVersion": "0.2.0",
"project": {
"name": "project_A_name",
"id": "project_A_id"
@@ -17,7 +17,8 @@
],
"trustZones": [
{
- "id": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
+ "id": "47",
+ "type": "b61d6911-338d-46a8-9f39-8dcd24abfe91",
"name": "Public Cloud",
"risk": {
"trustRating": 10
@@ -39,7 +40,8 @@
]
},
{
- "id": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
+ "id": "48",
+ "type": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d",
"name": "Private Secured Cloud",
"risk": {
"trustRating": 10
@@ -67,7 +69,7 @@
"name": "Amazon EC2",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -90,7 +92,7 @@
"name": "Custom machine",
"type": "ec2",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -113,7 +115,7 @@
"name": "Private Database",
"type": "rds",
"parent": {
- "trustZone": "2ab4effa-40b7-4cd2-ba81-8247d29a6f2d"
+ "trustZone": "48"
},
"representations": [
{
@@ -136,7 +138,7 @@
"name": "Amazon CloudWatch",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
@@ -159,7 +161,7 @@
"name": "Custom log system",
"type": "cloudwatch",
"parent": {
- "trustZone": "b61d6911-338d-46a8-9f39-8dcd24abfe91"
+ "trustZone": "47"
},
"representations": [
{
diff --git a/tests/unit/test_otm_unifier.py b/tests/unit/test_otm_unifier.py
deleted file mode 100644
index 711310e6..00000000
--- a/tests/unit/test_otm_unifier.py
+++ /dev/null
@@ -1,48 +0,0 @@
-import json
-
-from otm.otm.entity.component import Component
-from otm.otm.entity.representation import RepresentationType
-from otm.otm.entity.trustzone import Trustzone
-from otm.otm.otm_builder import OTMBuilder
-from otm.otm.provider import Provider
-from sl_util.sl_util.file_utils import get_byte_data
-from slp_base.slp_base.otm_trustzone_unifier import OTMTrustZoneUnifier
-from tests.resources.test_resource_paths import MTMT_multiple_trustzones_same_type_ID
-
-
-class DummyType(str, Provider):
- DUMMY = ("DUMMY", "Dummy", RepresentationType.DIAGRAM)
-
-
-class TestOTMUnifier:
-
- def test_multiple_trustzones_same_type(self):
- # GIVEN an otm with multiple trust zones with the same type
- trustzones: [Trustzone] = [
- Trustzone(trustzone_id='60e82972', type='6376d53e', name='Internet'),
- Trustzone(trustzone_id='250a69a4', type='6376d53e', name='Public'),
- Trustzone(trustzone_id='d6987386', type='6376d53e', name='Intranet'),
- Trustzone(trustzone_id='e85a8516', type='6376d53e', name='Private'),
- Trustzone(trustzone_id='75163eca', type='b61d6911', name='Public Cloud Zone'),
- ]
- components: [Component] = [
- Component('de588d55', 'Public Web App', '', '250a69a4', 'trustZone'),
- Component('6460a14f', 'Browser', '', '60e82972', 'trustZone'),
- Component('348d1acd', 'Web API', '', 'd6987386', 'trustZone'),
- Component('9c7e2caa', 'Intranet Web App', '', 'd6987386', 'trustZone'),
- Component('104c3e42', 'PostgreSQL', '', 'e85a8516', 'trustZone'),
- Component('a2986e26', 'DynamoDB', '', '75163eca', 'trustZone'),
-
- ]
- origin = OTMBuilder('test1', 'Test 1', DummyType.DUMMY).add_trustzones(trustzones).add_components(components) \
- .build()
-
- # AND the expected otm without tz type field
- expected = json.loads(get_byte_data(MTMT_multiple_trustzones_same_type_ID))
-
- # WHEN we unify the trust zones
- OTMTrustZoneUnifier(origin).unify()
-
- # THEN we check the expected result
- assert origin.json() == expected
-