diff --git a/pyoaev/contracts/contract_config.py b/pyoaev/contracts/contract_config.py index 56de12f..ac410aa 100644 --- a/pyoaev/contracts/contract_config.py +++ b/pyoaev/contracts/contract_config.py @@ -120,6 +120,15 @@ class ContractConfig: color_light: str +@dataclass +class Domain: + domain_id: str + domain_name: str + domain_color: str + domain_created_at: str + domain_updated_at: str + + @dataclass class Contract: contract_id: str @@ -141,6 +150,7 @@ class Contract: is_atomic_testing: bool = True platforms: List[str] = field(default_factory=list) external_id: str = None + domains: List[Domain] = None def add_attack_pattern(self, var: str): self.contract_attack_patterns_external_ids.append(var) @@ -163,6 +173,7 @@ def to_contract_add_input(self, source_id: str): "contract_content": json.dumps(self, cls=utils.EnhancedJSONEncoder), "is_atomic_testing": self.is_atomic_testing, "contract_platforms": self.platforms, + "contract_domains": self.domains, } def to_contract_update_input(self): @@ -174,6 +185,7 @@ def to_contract_update_input(self): "contract_content": json.dumps(self, cls=utils.EnhancedJSONEncoder), "is_atomic_testing": self.is_atomic_testing, "contract_platforms": self.platforms, + "contract_domains": self.domains, } @@ -203,6 +215,7 @@ def prepare_contracts(contracts): "contract_attack_patterns_external_ids": c.contract_attack_patterns_external_ids, "contract_content": json.dumps(c, cls=utils.EnhancedJSONEncoder), "contract_platforms": c.platforms, + "contract_domains": c.domains, }, contracts, ) diff --git a/pyoaev/security_domain/__init__.py b/pyoaev/security_domain/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pyoaev/security_domain/types.py b/pyoaev/security_domain/types.py new file mode 100644 index 0000000..b43e09c --- /dev/null +++ b/pyoaev/security_domain/types.py @@ -0,0 +1,16 @@ +from enum import Enum + + +class SecurityDomains(Enum): + ENDPOINT = {"domain_name": "Endpoint", "domain_color": "#389CFF"} + NETWORK = {"domain_name": "Network", "domain_color": "#009933"} + WEB_APP = {"domain_name": "Web App", "domain_color": "#FF9933"} + EMAIL_INFILTRATION = { + "domain_name": "E-mail Infiltration", + "domain_color": "#FF6666", + } + DATA_EXFILTRATION = {"domain_name": "Data Exfiltration", "domain_color": "#9933CC"} + URL_FILTERING = {"domain_name": "Url Filtering", "domain_color": "#66CCFF"} + CLOUD = {"domain_name": "Cloud", "domain_color": "#9999CC"} + TABLE_TOP = {"domain_name": "Table Top", "domain_color": "#FFCC33"} + TOCLASSIFY = {"domain_name": "To classify", "domain_color": "#FFFFFF"}