devsecops-engine-tools 1.7.6__py3-none-any.whl → 1.7.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of devsecops-engine-tools might be problematic. Click here for more details.

Files changed (32) hide show
  1. devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +1 -0
  2. devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +5 -0
  3. devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +7 -0
  4. devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +6 -0
  5. devsecops_engine_tools/engine_core/src/domain/model/report.py +13 -0
  6. devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +64 -0
  7. devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +62 -10
  8. devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +31 -1
  9. devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +24 -13
  10. devsecops_engine_tools/engine_risk/__init__.py +0 -0
  11. devsecops_engine_tools/engine_risk/src/__init__.py +0 -0
  12. devsecops_engine_tools/engine_risk/src/applications/__init__.py +0 -0
  13. devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +20 -0
  14. devsecops_engine_tools/engine_risk/src/deployment/__init__.py +0 -0
  15. devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py +0 -0
  16. devsecops_engine_tools/engine_risk/src/domain/__init__.py +0 -0
  17. devsecops_engine_tools/engine_risk/src/domain/model/__init__.py +0 -0
  18. devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py +0 -0
  19. devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py +0 -0
  20. devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +36 -0
  21. devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +16 -0
  22. devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py +0 -0
  23. devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py +0 -0
  24. devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py +0 -0
  25. devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py +31 -0
  26. devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py +0 -0
  27. devsecops_engine_tools/version.py +1 -1
  28. {devsecops_engine_tools-1.7.6.dist-info → devsecops_engine_tools-1.7.7.dist-info}/METADATA +1 -1
  29. {devsecops_engine_tools-1.7.6.dist-info → devsecops_engine_tools-1.7.7.dist-info}/RECORD +32 -13
  30. {devsecops_engine_tools-1.7.6.dist-info → devsecops_engine_tools-1.7.7.dist-info}/WHEEL +0 -0
  31. {devsecops_engine_tools-1.7.6.dist-info → devsecops_engine_tools-1.7.7.dist-info}/entry_points.txt +0 -0
  32. {devsecops_engine_tools-1.7.6.dist-info → devsecops_engine_tools-1.7.7.dist-info}/top_level.txt +0 -0
@@ -41,6 +41,7 @@ def get_inputs_from_cli(args):
41
41
  "engine_secret",
42
42
  "engine_dependencies",
43
43
  "engine_container",
44
+ "engine_risk",
44
45
  ],
45
46
  type=str,
46
47
  required=True,
@@ -7,3 +7,8 @@ class ExceptionFindingsExcepted(Exception):
7
7
  def __init__(self, message):
8
8
  self.message = message
9
9
  super().__init__(self.message)
10
+
11
+ class ExceptionGettingFindings(Exception):
12
+ def __init__(self, message):
13
+ self.message = message
14
+ super().__init__(self.message)
@@ -2,12 +2,19 @@ from abc import ABCMeta, abstractmethod
2
2
  from devsecops_engine_tools.engine_core.src.domain.model.finding import (
3
3
  Finding,
4
4
  )
5
+ from devsecops_engine_tools.engine_core.src.domain.model.report import (
6
+ Report,
7
+ )
5
8
 
6
9
  class PrinterTableGateway(metaclass=ABCMeta):
7
10
  @abstractmethod
8
11
  def print_table_findings(self, finding_list: "list[Finding]"):
9
12
  "print_table_findings"
10
13
 
14
+ @abstractmethod
15
+ def print_table_report(self, report_list: "list[Report]"):
16
+ "print_table_report"
17
+
11
18
  @abstractmethod
12
19
  def print_table_exclusions(self, exclusions_list):
13
20
  "print_table_exclusions"
@@ -15,3 +15,9 @@ class VulnerabilityManagementGateway(metaclass=ABCMeta):
15
15
  self, service, dict_args, secret_tool, config_tool
16
16
  ):
17
17
  "get_findings_excepted"
18
+
19
+ @abstractmethod
20
+ def get_all_findings(
21
+ self, service, dict_args, secret_tool, config_tool
22
+ ):
23
+ "get_report"
@@ -0,0 +1,13 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class Report:
6
+ def __init__(self, **kwargs):
7
+ self.id = kwargs.get("id", "")
8
+ self.date = kwargs.get("date", "")
9
+ self.where = kwargs.get("where", "")
10
+ self.tags = kwargs.get("tags", [])
11
+ self.severity = kwargs.get("severity", "")
12
+ self.active = kwargs.get("active", "")
13
+ self.status = kwargs.get("status", "")
@@ -0,0 +1,64 @@
1
+ from devsecops_engine_tools.engine_core.src.domain.model.gateway.vulnerability_management_gateway import (
2
+ VulnerabilityManagementGateway,
3
+ )
4
+ from devsecops_engine_tools.engine_core.src.domain.model.gateway.secrets_manager_gateway import (
5
+ SecretsManagerGateway,
6
+ )
7
+ from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
8
+ DevopsPlatformGateway,
9
+ )
10
+ from devsecops_engine_tools.engine_core.src.domain.model.gateway.printer_table_gateway import (
11
+ PrinterTableGateway,
12
+ )
13
+ from devsecops_engine_tools.engine_risk.src.applications.runner_engine_risk import (
14
+ runner_engine_risk,
15
+ )
16
+ from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions import (
17
+ ExceptionGettingFindings,
18
+ )
19
+
20
+ from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
21
+ from devsecops_engine_tools.engine_utilities import settings
22
+
23
+ logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
24
+
25
+
26
+ class HandleRisk:
27
+ def __init__(
28
+ self,
29
+ vulnerability_management: VulnerabilityManagementGateway,
30
+ secrets_manager_gateway: SecretsManagerGateway,
31
+ devops_platform_gateway: DevopsPlatformGateway,
32
+ print_table_gateway: PrinterTableGateway,
33
+ ):
34
+ self.vulnerability_management = vulnerability_management
35
+ self.secrets_manager_gateway = secrets_manager_gateway
36
+ self.devops_platform_gateway = devops_platform_gateway
37
+ self.print_table_gateway = print_table_gateway
38
+
39
+ def get_finding_list(self, dict_args, secret_tool, remote_config):
40
+ try:
41
+ findigs_list = self.vulnerability_management.get_all_findings(
42
+ self.devops_platform_gateway.get_variable("pipeline_name"),
43
+ dict_args,
44
+ secret_tool,
45
+ remote_config,
46
+ )
47
+ return findigs_list
48
+ except ExceptionGettingFindings as e:
49
+ logger.error("Error getting finding list in handle risk: {0}".format(str(e)))
50
+
51
+
52
+ def process(self, dict_args: any, remote_config: any):
53
+ secret_tool = None
54
+ if dict_args["use_secrets_manager"] == "true":
55
+ secret_tool = self.secrets_manager_gateway.get_secret(remote_config)
56
+
57
+ findigs_list = self.get_finding_list(dict_args, secret_tool, remote_config)
58
+
59
+ runner_engine_risk(
60
+ dict_args,
61
+ findigs_list,
62
+ self.devops_platform_gateway,
63
+ self.print_table_gateway
64
+ )
@@ -12,10 +12,12 @@ from devsecops_engine_tools.engine_utilities.defect_dojo import (
12
12
  Finding,
13
13
  )
14
14
  from devsecops_engine_tools.engine_core.src.domain.model.exclusions import Exclusions
15
+ from devsecops_engine_tools.engine_core.src.domain.model.report import Report
15
16
  from devsecops_engine_tools.engine_utilities.utils.session_manager import SessionManager
16
17
  from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions import (
17
18
  ExceptionVulnerabilityManagement,
18
19
  ExceptionFindingsExcepted,
20
+ ExceptionGettingFindings,
19
21
  )
20
22
  from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
21
23
  format_date,
@@ -118,13 +120,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
118
120
 
119
121
  def get_findings_excepted(self, service, dict_args, secret_tool, config_tool):
120
122
  try:
121
- token_dd = dict_args.get(
122
- "token_vulnerability_management"
123
- ) or secret_tool.get("token_defect_dojo")
124
- session_manager = SessionManager(
125
- token_dd,
126
- config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["HOST_DEFECT_DOJO"],
127
- )
123
+ session_manager = self._get_session_manager(dict_args, secret_tool, config_tool)
128
124
 
129
125
  dd_limits_query = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
130
126
  "LIMITS_QUERY"
@@ -168,6 +164,45 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
168
164
  )
169
165
  )
170
166
 
167
+ def get_all_findings(
168
+ self, service, dict_args, secret_tool, config_tool
169
+ ):
170
+ try:
171
+ all_findings_query_params = {
172
+ "limit": config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["LIMITS_QUERY"]
173
+ }
174
+
175
+ findings = self._get_findings(
176
+ self._get_session_manager(dict_args, secret_tool, config_tool),
177
+ service,
178
+ all_findings_query_params
179
+ )
180
+
181
+ maped_list = list(
182
+ map(
183
+ partial(self._create_report, date_fn=self._format_date_to_dd_format),
184
+ findings,
185
+ )
186
+ )
187
+
188
+ return maped_list
189
+
190
+ except Exception as ex:
191
+ raise ExceptionGettingFindings(
192
+ "Error getting all findings with the following error: {0} ".format(
193
+ ex
194
+ )
195
+ )
196
+
197
+ def _get_session_manager(self, dict_args, secret_tool, config_tool):
198
+ token_dd = dict_args.get(
199
+ "token_vulnerability_management"
200
+ ) or secret_tool.get("token_defect_dojo")
201
+ return SessionManager(
202
+ token_dd,
203
+ config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["HOST_DEFECT_DOJO"],
204
+ )
205
+
171
206
  def _get_findings_with_exclusions(
172
207
  self, session_manager, service, query_params, tool, date_fn, reason
173
208
  ):
@@ -199,17 +234,34 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
199
234
  reason=reason,
200
235
  )
201
236
 
237
+ def _create_report(self, finding, date_fn):
238
+ return Report(
239
+ id=finding.vuln_id_from_tool,
240
+ date=date_fn(
241
+ finding.date
242
+ ),
243
+ status=finding.display_status,
244
+ where=self._get_where_report(finding),
245
+ tags=finding.tags,
246
+ severity=finding.severity,
247
+ active=finding.active,
248
+ )
249
+
202
250
  def _format_date_to_dd_format(self, date_string):
203
251
  return (
204
252
  format_date(date_string.split("T")[0], "%Y-%m-%d", "%d%m%Y")
205
253
  if date_string
206
254
  else None
207
255
  )
256
+
257
+ def _get_where_report(self, finding):
258
+ for tag in finding.tags:
259
+ return self._get_where(finding, tag)
208
260
 
209
261
  def _get_where(self, finding, tool):
210
- if tool in ["engine_iac", "engine_secret"]:
211
- return finding.file_path
212
- elif tool in ["engine_container", "engine_dependencies"]:
262
+ if tool in ["engine_container", "engine_dependencies"]:
213
263
  return finding.component_name + ":" + finding.component_version
214
264
  elif tool == "engine_dast":
215
265
  return finding.endpoints
266
+ else:
267
+ return finding.file_path
@@ -6,6 +6,9 @@ from devsecops_engine_tools.engine_core.src.domain.model.gateway.printer_table_g
6
6
  from devsecops_engine_tools.engine_core.src.domain.model.finding import (
7
7
  Finding,
8
8
  )
9
+ from devsecops_engine_tools.engine_core.src.domain.model.report import (
10
+ Report,
11
+ )
9
12
  from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
10
13
  format_date
11
14
  )
@@ -58,7 +61,34 @@ class PrinterPrettyTable(PrinterTableGateway):
58
61
 
59
62
  if len(sorted_table.rows) > 0:
60
63
  print(sorted_table)
61
-
64
+
65
+ def print_table_report(self, report_list: "list[Report]"):
66
+ headers = ["Severity", "ID", "Tag", "Where"]
67
+ table = PrettyTable(headers)
68
+ for report in report_list:
69
+ row_data = [
70
+ report.severity.lower(),
71
+ report.id,
72
+ report.tags,
73
+ report.where,
74
+ ]
75
+ table.add_row(row_data)
76
+
77
+ severity_order = {"critical": 0, "high": 1, "medium": 2, "low": 3, "unknown": 4}
78
+ sorted_table = PrettyTable()
79
+ sorted_table.field_names = table.field_names
80
+ sorted_table.add_rows(
81
+ sorted(table._rows, key=lambda row: severity_order[row[0]])
82
+ )
83
+
84
+ for column in table.field_names:
85
+ sorted_table.align[column] = "l"
86
+
87
+ sorted_table.set_style(DOUBLE_BORDER)
88
+
89
+ if len(sorted_table.rows) > 0:
90
+ print(sorted_table)
91
+
62
92
  def print_table_exclusions(self, exclusions):
63
93
  if (exclusions):
64
94
  headers = ["Severity", "ID", "Where", "Create Date", "Expired Date", "Reason"]
@@ -4,6 +4,9 @@ from devsecops_engine_tools.engine_core.src.domain.usecases.break_build import (
4
4
  from devsecops_engine_tools.engine_core.src.domain.usecases.handle_scan import (
5
5
  HandleScan,
6
6
  )
7
+ from devsecops_engine_tools.engine_core.src.domain.usecases.handle_risk import (
8
+ HandleRisk,
9
+ )
7
10
  from devsecops_engine_tools.engine_core.src.domain.usecases.metrics_manager import (
8
11
  MetricsManager,
9
12
  )
@@ -26,21 +29,29 @@ def init_engine_core(
26
29
  Printers.print_logo_tool(config_tool["BANNER"])
27
30
 
28
31
  if config_tool[args["tool"].upper()]["ENABLED"] == "true":
29
- findings_list, input_core = HandleScan(
30
- vulnerability_management_gateway,
31
- secrets_manager_gateway,
32
- devops_platform_gateway,
33
- ).process(args, config_tool)
32
+ if args["tool"] == "engine_risk":
33
+ HandleRisk(
34
+ vulnerability_management_gateway,
35
+ secrets_manager_gateway,
36
+ devops_platform_gateway,
37
+ print_table_gateway,
38
+ ).process(args, config_tool)
39
+ else:
40
+ findings_list, input_core = HandleScan(
41
+ vulnerability_management_gateway,
42
+ secrets_manager_gateway,
43
+ devops_platform_gateway,
44
+ ).process(args, config_tool)
34
45
 
35
- scan_result = BreakBuild(devops_platform_gateway, print_table_gateway).process(
36
- findings_list,
37
- input_core,
38
- args
39
- )
40
- if args["send_metrics"] == "true":
41
- MetricsManager(devops_platform_gateway, metrics_manager_gateway).process(
42
- config_tool, input_core, args, scan_result
46
+ scan_result = BreakBuild(devops_platform_gateway, print_table_gateway).process(
47
+ findings_list,
48
+ input_core,
49
+ args
43
50
  )
51
+ if args["send_metrics"] == "true":
52
+ MetricsManager(devops_platform_gateway, metrics_manager_gateway).process(
53
+ config_tool, input_core, args, scan_result
54
+ )
44
55
  else:
45
56
  print(
46
57
  devops_platform_gateway.message(
File without changes
File without changes
@@ -0,0 +1,20 @@
1
+ from devsecops_engine_tools.engine_risk.src.infrastructure.entry_points.entry_point_risk import (
2
+ init_engine_risk,
3
+ )
4
+
5
+ from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
6
+ from devsecops_engine_tools.engine_utilities import settings
7
+
8
+
9
+ logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
10
+
11
+
12
+ def runner_engine_risk(
13
+ dict_args, findings, devops_platform_gateway, print_table_gateway
14
+ ):
15
+ init_engine_risk(
16
+ devops_platform_gateway,
17
+ print_table_gateway,
18
+ dict_args,
19
+ findings,
20
+ )
@@ -0,0 +1,36 @@
1
+ from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
2
+ DevopsPlatformGateway,
3
+ )
4
+ from devsecops_engine_tools.engine_core.src.domain.model.gateway.printer_table_gateway import (
5
+ PrinterTableGateway,
6
+ )
7
+ from devsecops_engine_tools.engine_core.src.domain.model.report import (
8
+ Report,
9
+ )
10
+
11
+
12
+ class BreakBuild:
13
+ def __init__(
14
+ self,
15
+ devops_platform_gateway: DevopsPlatformGateway,
16
+ printer_table_gateway: PrinterTableGateway,
17
+ ):
18
+ self.devops_platform_gateway = devops_platform_gateway
19
+ self.printer_table_gateway = printer_table_gateway
20
+
21
+ def process(self, report_list: "list[Report]"):
22
+ devops_platform_gateway = self.devops_platform_gateway
23
+ printer_table_gateway = self.printer_table_gateway
24
+ if len(report_list):
25
+ print(
26
+ "Below are all vulnerabilities from Vulnerability Management Platform"
27
+ )
28
+ printer_table_gateway.print_table_report(
29
+ report_list,
30
+ )
31
+ else:
32
+ print(
33
+ devops_platform_gateway.message(
34
+ "succeeded", "There are no vulnerabilities"
35
+ )
36
+ )
@@ -0,0 +1,16 @@
1
+ class HandleFilters:
2
+ def __init__(
3
+ self,
4
+ remote_config,
5
+ ):
6
+ self.remote_config = remote_config
7
+
8
+ def filter(self, findings):
9
+ tag_list = self.remote_config["TAG_FILTER"]
10
+ return list(
11
+ filter(
12
+ lambda finding: finding.active
13
+ and any(tag in finding.tags for tag in tag_list),
14
+ findings,
15
+ )
16
+ )
@@ -0,0 +1,31 @@
1
+ from devsecops_engine_tools.engine_risk.src.domain.usecases.handle_filters import (
2
+ HandleFilters,
3
+ )
4
+ from devsecops_engine_tools.engine_risk.src.domain.usecases.break_build import (
5
+ BreakBuild,
6
+ )
7
+
8
+ from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
9
+ from devsecops_engine_tools.engine_utilities import settings
10
+
11
+ logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
12
+
13
+
14
+ def init_engine_risk(devops_platform_gateway, print_table_gateway, dict_args, findings):
15
+ remote_config = devops_platform_gateway.get_remote_config(
16
+ dict_args["remote_config_repo"], "engine_risk/ConfigTool.json"
17
+ )
18
+ findings_filtered = []
19
+ if len(findings):
20
+ handle_filters = HandleFilters(
21
+ remote_config,
22
+ )
23
+ findings_filtered = handle_filters.filter(findings)
24
+
25
+ BreakBuild(devops_platform_gateway, print_table_gateway).process(
26
+ findings_filtered,
27
+ )
28
+
29
+ else:
30
+ print("No Findings found in Vulnerability Management Platform")
31
+ logger.info("No Findings found in Vulnerability Management Platform")
@@ -1 +1 @@
1
- version = '1.7.6'
1
+ version = '1.7.7'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.7.6
3
+ Version: 1.7.7
4
4
  Summary: Tool for DevSecOps strategy
5
5
  Home-page: https://github.com/bancolombia/devsecops-engine-tools
6
6
  Author: Bancolombia DevSecOps Team
@@ -1,29 +1,31 @@
1
1
  devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- devsecops_engine_tools/version.py,sha256=flFKIrU5JfrccEBrxVEuIxnE9aiqGa6CHpD-klJyEpc,18
2
+ devsecops_engine_tools/version.py,sha256=3c0qZaOK9yKD7aUT8WdOiEMuvMDNJDrPlNmCmbPi4Ro,18
3
3
  devsecops_engine_tools/engine_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  devsecops_engine_tools/engine_core/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  devsecops_engine_tools/engine_core/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=9aPKhw6vbK5xZzzklF2azkeAzo54CyBXJ-P7QUmzCyM,5142
6
+ devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=N62RsNN9aM2dhLQDNtDqDRRS0oo9zGnyjEotNaPmrMI,5169
7
7
  devsecops_engine_tools/engine_core/src/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  devsecops_engine_tools/engine_core/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  devsecops_engine_tools/engine_core/src/domain/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py,sha256=WH8QDGme7SR9CV-ZuRE4YP6J7wmI_OestEcoxxkC9g0,302
11
+ devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py,sha256=Djiq-FHewZs85snLoJJkZvGjEtXqcpN2EwZuSvQJCUI,449
12
12
  devsecops_engine_tools/engine_core/src/domain/model/exclusions.py,sha256=4Cn65ARrCw2xMAYEwoNlPUYVo5NVO0IPd6tj0wGDZig,498
13
13
  devsecops_engine_tools/engine_core/src/domain/model/finding.py,sha256=MntDksQuPt1L-1Ww3nK7NbMLfVwRjxPGCN_oHYXbbWk,383
14
14
  devsecops_engine_tools/engine_core/src/domain/model/input_core.py,sha256=hc1WMzCwsGxnrlvvk84S5iNYJRDQWbaQP9MwR3N7tVM,422
15
15
  devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py,sha256=ntn_UWqHc6sT5g_LozBdjdewTQxFsp7Kt8M0xqw-k_o,98
16
16
  devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py,sha256=0sySEnFNkS2Y8uF5GUVAYehXw-i2OglUClkVobnSTPc,257
17
+ devsecops_engine_tools/engine_core/src/domain/model/report.py,sha256=eJ4r39OBgB-leNImTVV2fHuublFnpmCMHcvKWvL-hxs,410
17
18
  devsecops_engine_tools/engine_core/src/domain/model/threshold.py,sha256=AQu4NnYBvbUbzW_IkuCVF0_i535O4LeE3ZvBIZ7s9ZM,445
18
19
  devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py,sha256=5RcMHpeqznrTOpkjLuqekA_Bqf2Qr-w6OZ5Eoi3b-bs,465
19
20
  devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
21
  devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py,sha256=ufAe6jd91IX-vKsFtlad2K-WliyY7TiN8wPTNmeHZD0,676
21
22
  devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py,sha256=u_ivbmCyymw0Je7gRFg0uD9iDmZfTbteH5UwcgP0JAs,191
22
- devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py,sha256=ZeMtQyPmGXccAQywx-PzOCE7e59gyBI0la98Q4u0i_I,402
23
+ devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py,sha256=ROBsh7Lyu62a5RqZ4KgGQcwrBzbHRwxAJ9Rj3LoupQc,602
23
24
  devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py,sha256=CTwUIvUWF0NSSzdCqASUFst6KUysW53NV9eatjLGdl8,170
24
- devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py,sha256=F2VfV_-MjPMY-wlkgIviuIfKx0yZoyyXkJRXDPHjU48,533
25
+ devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py,sha256=sn9bEDfaNtRmHHtn49eSVg_JO7Zr2OVyj350KzyGiXo,667
25
26
  devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
27
  devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py,sha256=z6lcd-tnb-3QfZ1yf2ZlaRbovwF0YE6nUmS5V92aszc,15534
28
+ devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py,sha256=EBLEzm-p_lEeB7T8iarn2Fc4_6hY0XAIT1AJATd2JUM,2473
27
29
  devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=CBk6KR2lpZ_ayitIdZERjJ0yasg1_dICHA0Tw97s-eo,6410
28
30
  devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py,sha256=Xi0iNnPrFgqd2cBdAA5E_tgouhxs-BTo016aolnGgv8,2413
29
31
  devsecops_engine_tools/engine_core/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -34,13 +36,13 @@ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secret
34
36
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
37
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=Ot1j5my-iEpU-ZYy9yNXkwmwLOmJ3f95JyyAUcpFN5g,4967
36
38
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=3SWPIEWD9XmLPOUv-yddqOQ-BDSSd3FwPVSu7gwWwSk,9109
39
+ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=YxW1Otev5V7REBr9yCW36XCmk9e_v5Y-blXrmRX_rZU,10748
38
40
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py,sha256=ilsrp-JB1ejM26-ItUuD3JSDqY7K8bzptwAUs_vLhW4,2855
41
+ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py,sha256=Tz056qYuIKrdYGKyoPo7xFdOpfN3A0YMd3cCSAGVrYQ,3828
40
42
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
43
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py,sha256=2eOsZQHegJg3AdZrQK6cJJJhlR-CHrcJxHvapE5eRx8,2565
42
44
  devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py,sha256=_3MPeU0_TpzyWIyKYcTRFwBpIe_av-BUHKJgN2Jh6vQ,1637
45
+ devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py,sha256=v8D9F_MvS2_zQqciDXUEaCHx6oK60ESpSdh-SDz851Y,2082
44
46
  devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
47
  devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py,sha256=wfy_PosHS0rrvkdiUYczxIcc8ZNwfqzWwqVxrmRTCBI,264
46
48
  devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py,sha256=DTruKscu64gBk-0F-xwKcqKu6_Y8HhqemSpBJxd2BTY,382
@@ -56,6 +58,23 @@ devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py,sha256=47DEQpj
56
58
  devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
59
  devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
60
  devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
+ devsecops_engine_tools/engine_risk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ devsecops_engine_tools/engine_risk/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ devsecops_engine_tools/engine_risk/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py,sha256=1_9kBIxFAXAHLIcA8HK9CQrbXZgyANAR-JlDzck8G4w,558
65
+ devsecops_engine_tools/engine_risk/src/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
+ devsecops_engine_tools/engine_risk/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ devsecops_engine_tools/engine_risk/src/domain/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py,sha256=G0uFO59UJspQnq3Np2M5PiXTxWDZUgJqfkVyxcuk3jI,1225
72
+ devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py,sha256=HLS24HrGneeueqp8pQJH3FgGHchxAyAr6Gg_Csc8qn8,415
73
+ devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
+ devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py,sha256=9clAw0ccvz7o8n6E-Uxtn_UKC-cVa_jp_JzIXnoYcmE,1107
77
+ devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
78
  devsecops_engine_tools/engine_sast/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
79
  devsecops_engine_tools/engine_sast/engine_iac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
80
  devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -224,8 +243,8 @@ devsecops_engine_tools/engine_utilities/utils/logger_info.py,sha256=4Mz8Bwlm9Mku
224
243
  devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGaxYSDe0ZRh6VHRf53H4sXPcb-vNP_i81PUn3I,307
225
244
  devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=GAslbWaBpwP3mP6fBsgVl07TTBgcCggQTy8h2M9ibeo,612
226
245
  devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
227
- devsecops_engine_tools-1.7.6.dist-info/METADATA,sha256=2NvBKjF_3SKy21t8bxq9b09EWSELIgGHF8XFmW2_vE0,9926
228
- devsecops_engine_tools-1.7.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
229
- devsecops_engine_tools-1.7.6.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
230
- devsecops_engine_tools-1.7.6.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
231
- devsecops_engine_tools-1.7.6.dist-info/RECORD,,
246
+ devsecops_engine_tools-1.7.7.dist-info/METADATA,sha256=3Cgk97pgyXWQiWFLHKhWqj3apQU0Rg5EHToRsFPflxM,9926
247
+ devsecops_engine_tools-1.7.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
248
+ devsecops_engine_tools-1.7.7.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
249
+ devsecops_engine_tools-1.7.7.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
250
+ devsecops_engine_tools-1.7.7.dist-info/RECORD,,