devsecops-engine-tools 1.58.0__py3-none-any.whl → 1.59.0__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 (20) hide show
  1. devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +11 -1
  2. devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/context_iac.py +13 -0
  3. devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +6 -0
  4. devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +7 -2
  5. devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +6 -5
  6. devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +32 -0
  7. devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py +5 -1
  8. devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py +4 -0
  9. devsecops_engine_tools/engine_sca/engine_container/src/domain/model/context_container.py +23 -0
  10. devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +4 -0
  11. devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +6 -0
  12. devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +4 -0
  13. devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +49 -2
  14. devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +2 -1
  15. devsecops_engine_tools/version.py +1 -1
  16. {devsecops_engine_tools-1.58.0.dist-info → devsecops_engine_tools-1.59.0.dist-info}/METADATA +1 -1
  17. {devsecops_engine_tools-1.58.0.dist-info → devsecops_engine_tools-1.59.0.dist-info}/RECORD +20 -18
  18. {devsecops_engine_tools-1.58.0.dist-info → devsecops_engine_tools-1.59.0.dist-info}/WHEEL +0 -0
  19. {devsecops_engine_tools-1.58.0.dist-info → devsecops_engine_tools-1.59.0.dist-info}/entry_points.txt +0 -0
  20. {devsecops_engine_tools-1.58.0.dist-info → devsecops_engine_tools-1.59.0.dist-info}/top_level.txt +0 -0
@@ -203,6 +203,15 @@ def get_inputs_from_cli(args):
203
203
  help="File path containing the configuration, structured according to the documentation, \
204
204
  for the API or web application to be scanned by the DAST tool."
205
205
  )
206
+ parser.add_argument(
207
+ "-c",
208
+ "--context",
209
+ choices=["true", "false"],
210
+ type=str,
211
+ required=False,
212
+ default="false",
213
+ help="Enable or disable context creation. Applies only to engine_iac and engine_container. Default is false."
214
+ )
206
215
 
207
216
  TOOLS = {
208
217
  "engine_iac": ["checkov", "kics", "kubescape"],
@@ -242,7 +251,8 @@ def get_inputs_from_cli(args):
242
251
  "token_external_checks": args.token_external_checks,
243
252
  "xray_mode": args.xray_mode,
244
253
  "image_to_scan": args.image_to_scan,
245
- "dast_file_path": args.dast_file_path
254
+ "dast_file_path": args.dast_file_path,
255
+ "context": args.context
246
256
  }
247
257
 
248
258
 
@@ -0,0 +1,13 @@
1
+ from dataclasses import dataclass
2
+
3
+ @dataclass
4
+ class ContextIac:
5
+ id: str
6
+ check_name: str
7
+ check_class: str
8
+ severity: str
9
+ where: str
10
+ resource: str
11
+ description: str
12
+ module: str
13
+ tool: str
@@ -4,3 +4,9 @@ class ToolGateway(metaclass=ABCMeta):
4
4
  @abstractmethod
5
5
  def run_tool(self, config_tool, folders_to_scan, **kwargs):
6
6
  "run_tool"
7
+
8
+ @classmethod
9
+ def get_iac_context_from_results(
10
+ self, path_file_results
11
+ ) -> None:
12
+ "get_iac_context_from_results"
@@ -48,13 +48,18 @@ class IacScan:
48
48
  secret_tool=secret_tool,
49
49
  secret_external_checks=dict_args["token_external_checks"],
50
50
  work_folder=self.devops_platform_gateway.get_variable("temp_directory"),
51
- dict_args=dict_args
51
+ dict_args=dict_args,
52
52
  )
53
53
  else:
54
54
  print("Tool skipped by DevSecOps policy")
55
55
  dict_args["send_metrics"] = "false"
56
56
  dict_args["use_vulnerability_management"] = "false"
57
-
57
+
58
+ if dict_args.get("context") == "true":
59
+ self.tool_gateway.get_iac_context_from_results(
60
+ path_file_results
61
+ )
62
+
58
63
  totalized_exclusions = []
59
64
  (
60
65
  totalized_exclusions.extend(
@@ -5,7 +5,6 @@ from devsecops_engine_tools.engine_core.src.domain.model.finding import (
5
5
  from datetime import datetime
6
6
  from dataclasses import dataclass
7
7
 
8
-
9
8
  @dataclass
10
9
  class CheckovDeserealizator:
11
10
  @classmethod
@@ -17,7 +16,7 @@ class CheckovDeserealizator:
17
16
  for result in results_scan_list:
18
17
  if "failed_checks" in str(result):
19
18
  for scan in result["results"]["failed_checks"]:
20
- check_id = scan.get("check_id")
19
+ check_id = scan.get("check_id")
21
20
  if not rules.get(check_id):
22
21
  description = scan.get("check_name")
23
22
  severity = default_severity.lower()
@@ -40,6 +39,8 @@ class CheckovDeserealizator:
40
39
  requirements=scan.get("guideline"),
41
40
  tool="Checkov"
42
41
  )
43
- list_open_findings.append(finding_open)
44
-
45
- return list_open_findings
42
+ list_open_findings.append(finding_open)
43
+
44
+ return list_open_findings
45
+
46
+
@@ -9,6 +9,7 @@ import threading
9
9
  import json
10
10
  import shutil
11
11
  import platform
12
+ from devsecops_engine_tools.engine_sast.engine_iac.src.domain.model.context_iac import ContextIac
12
13
  from devsecops_engine_tools.engine_sast.engine_iac.src.domain.model.gateways.tool_gateway import (
13
14
  ToolGateway,
14
15
  )
@@ -273,6 +274,37 @@ class CheckovTool(ToolGateway):
273
274
  else:
274
275
  return [], None
275
276
 
277
+ def get_iac_context_from_results(
278
+ self, path_file_results: str
279
+ ):
280
+ with open(path_file_results, "r") as file:
281
+ context_results_scan_list = json.load(file)
282
+ context_iac_list = []
283
+ failed_checks = context_results_scan_list.get("results", {}).get("failed_checks", [])
284
+ for check in failed_checks:
285
+ file_line_range = check.get("file_line_range", ["unknown", "unknown"])
286
+ start_line = file_line_range[0] if len(file_line_range) > 0 else "unknown"
287
+ end_line = file_line_range[1] if len(file_line_range) > 1 else "unknown"
288
+ line_range_str = f"{start_line}-{end_line}" if start_line != end_line else str(start_line)
289
+
290
+ context_iac = ContextIac(
291
+ id=check.get("check_id", "unknown"),
292
+ check_name=check.get("check_name", "unknown"),
293
+ check_class=check.get("check_class", "unknown"),
294
+ severity=check.get("severity").lower(),
295
+ where=f"{check.get('repo_file_path', 'unknown')}: {check.get('resource', 'unknown')} (line {line_range_str})",
296
+ resource=check.get("resource", "unknown"),
297
+ description=check.get("check_name", "unknown"),
298
+ module="engine_iac",
299
+ tool="Checkov"
300
+ )
301
+
302
+ context_iac_list.append(context_iac)
303
+
304
+ print("===== BEGIN CONTEXT OUTPUT =====")
305
+ print(json.dumps({"iac_context": [obj.__dict__ for obj in context_iac_list]}, indent=4))
306
+ print("===== END CONTEXT OUTPUT =====")
307
+
276
308
 
277
309
  def install_binary(self,config_tool):
278
310
  os_platform = platform.system()
@@ -165,4 +165,8 @@ class KicsTool(ToolGateway):
165
165
  finding_list = kics_deserealizator.get_list_finding(filtered_results)
166
166
 
167
167
  return finding_list, path_file
168
- return [], None
168
+ return [], None
169
+
170
+ def get_iac_context_from_results(self, path_file_results):
171
+ #TODO: Implement this method
172
+ pass
@@ -117,3 +117,7 @@ class KubescapeTool(ToolGateway):
117
117
  return finding_list, path_results
118
118
  else:
119
119
  return [], None
120
+
121
+ def get_iac_context_from_results(self, path_file_results):
122
+ #TODO: Implement this method
123
+ pass
@@ -0,0 +1,23 @@
1
+ from dataclasses import dataclass
2
+ from typing import List, Optional
3
+
4
+ @dataclass
5
+ class ContextContainer:
6
+ cve_id: str
7
+ cwe_id: Optional[List[str]]
8
+ vendor_id: Optional[List[str]]
9
+ severity: str
10
+ vulnerability_status: str
11
+ target_image: str
12
+ package_name: str
13
+ installed_version: str
14
+ fixed_version: Optional[str]
15
+ cvss_score: Optional[float]
16
+ cvss_vector: Optional[str]
17
+ description: str
18
+ os_type: str
19
+ layer_digest: Optional[str]
20
+ published_date: Optional[str]
21
+ last_modified_date: Optional[str]
22
+ references: Optional[List[str]]
23
+ source_tool: str
@@ -1,8 +1,12 @@
1
1
  from abc import ABCMeta, abstractmethod
2
2
  from devsecops_engine_tools.engine_core.src.domain.model.finding import Finding
3
+ from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.context_container import ContextContainer
3
4
 
4
5
 
5
6
  class DeseralizatorGateway(metaclass=ABCMeta):
6
7
  @abstractmethod
7
8
  def get_list_findings(self, results_scan_list: list) -> "list[Finding]":
8
9
  "Deseralizator"
10
+
11
+ def get_container_context_from_results(self, results_scan_list: list) -> "list[ContextContainer]":
12
+ "Deseralizator"
@@ -24,6 +24,7 @@ class ContainerScaScan:
24
24
  image_to_scan,
25
25
  exclusions,
26
26
  pipeline_name,
27
+ context,
27
28
  ):
28
29
  self.tool_run = tool_run
29
30
  self.remote_config = remote_config
@@ -35,6 +36,7 @@ class ContainerScaScan:
35
36
  self.image_to_scan = image_to_scan
36
37
  self.exclusions = exclusions
37
38
  self.pipeline_name = pipeline_name
39
+ self.context = context
38
40
 
39
41
  def get_image(self, image_to_scan):
40
42
  """
@@ -137,4 +139,8 @@ class ContainerScaScan:
137
139
  Returns:
138
140
  list: Deserialized list of findings.
139
141
  """
142
+ context_flag = self.context
143
+ if context_flag == "true":
144
+ self.tool_deseralizator.get_container_context_from_results(image_scanned)
145
+
140
146
  return self.tool_deseralizator.get_list_findings(image_scanned)
@@ -67,3 +67,7 @@ class PrismaDeserealizator(DeseralizatorGateway):
67
67
  list_open_vulnerabilities.extend(vulnerabilities)
68
68
 
69
69
  return list_open_vulnerabilities
70
+
71
+ def get_container_context_from_results(self, image_scanned):
72
+ #TODO: Implement this method
73
+ pass
@@ -1,3 +1,4 @@
1
+ from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.context_container import ContextContainer
1
2
  from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.deserealizator_gateway import (
2
3
  DeseralizatorGateway,
3
4
  )
@@ -5,11 +6,10 @@ from devsecops_engine_tools.engine_core.src.domain.model.finding import (
5
6
  Finding,
6
7
  Category,
7
8
  )
8
- from dataclasses import dataclass
9
+ from dataclasses import asdict, dataclass
9
10
  import json
10
11
  from datetime import datetime, timezone
11
12
 
12
-
13
13
  @dataclass
14
14
  class TrivyDeserializator(DeseralizatorGateway):
15
15
  def check_date_format(self, vul):
@@ -61,3 +61,50 @@ class TrivyDeserializator(DeseralizatorGateway):
61
61
  ]
62
62
  list_open_vulnerabilities.extend(vulnerabilities)
63
63
  return list_open_vulnerabilities
64
+
65
+ def get_container_context_from_results(self, image_scanned) -> "list[ContextContainer]":
66
+ context_container_list = []
67
+
68
+ with open(image_scanned, "rb") as file:
69
+ image_object = file.read()
70
+ json_data = json.loads(image_object)
71
+
72
+ results = json_data.get("Results", [])
73
+
74
+ for result in results:
75
+ vulnerabilities = result.get("Vulnerabilities", [])
76
+ for vul in vulnerabilities:
77
+ context_container = ContextContainer(
78
+ cve_id=vul.get("VulnerabilityID", "unknown"),
79
+ cwe_id=vul.get("CweIDs", "unknown"),
80
+ vendor_id=vul.get("VendorIDs", "unknown"),
81
+ severity=vul.get("Severity", "unknown").lower(),
82
+ vulnerability_status=vul.get("Status", "unknown"),
83
+ target_image=result.get("Target", "unknown"),
84
+ package_name=vul.get("PkgName", "unknown"),
85
+ installed_version=vul.get("InstalledVersion", "unknown"),
86
+ fixed_version=vul.get("FixedVersion", "unknown"),
87
+ cvss_score=next(
88
+ (
89
+ v.get("V3Score", "unknown")
90
+ for v in vul.get("CVSS", {}).values()
91
+ if "V3Score" in v
92
+ ),
93
+ None,
94
+ ),
95
+ cvss_vector=vul.get("CVSS", "unknown"),
96
+ description=vul.get("Description", "unknown").replace("\n", ""),
97
+ os_type=result.get("Type", "unknown"),
98
+ layer_digest=vul.get("Layer", {}).get("DiffID", "unknown"),
99
+ published_date=self.check_date_format(vul)
100
+ if vul.get("PublishedDate")
101
+ else None,
102
+ last_modified_date=vul.get("LastModifiedDate", "unknown"),
103
+ references=vul.get("References", "unknown"),
104
+ source_tool="Trivy",
105
+ )
106
+ context_container_list.append(context_container)
107
+
108
+ print("===== BEGIN CONTEXT OUTPUT =====")
109
+ print(json.dumps({"container_context": [asdict(context) for context in context_container_list]}, indent=2))
110
+ print("===== END CONTEXT OUTPUT =====")
@@ -53,7 +53,8 @@ def init_engine_sca_rm(
53
53
  dict_args["token_engine_container"],
54
54
  image_to_scan,
55
55
  exclusions,
56
- pipeline_name
56
+ pipeline_name,
57
+ context = dict_args["context"]
57
58
  )
58
59
  image_scanned, base_image, sbom_components = container_sca_scan.process()
59
60
  if image_scanned:
@@ -1 +1 @@
1
- version = '1.58.0'
1
+ version = '1.59.0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.58.0
3
+ Version: 1.59.0
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,9 +1,9 @@
1
1
  devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- devsecops_engine_tools/version.py,sha256=az0Lu4HqJfr2fFy_Az3mdBs66w7djPHVRbb1T0hjDmQ,19
2
+ devsecops_engine_tools/version.py,sha256=fqW4TgN1SvtQkDbw-jz2NCJAFi7nMwyJ7BIxdWRNRn0,19
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=oGzG_YAnGw1YNOFG_llMMeYzQRXrjmHiBVoPvsjgHeU,9736
6
+ devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=SU6RymOnG-neHGmlujyKVgwqQpSIZHPQna2w9fIwpgw,10055
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
@@ -143,22 +143,23 @@ devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__in
143
143
  devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
144
  devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
145
  devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py,sha256=0QlOyVm6rNwaJ_OleY9sjKJ0y8YuOGx9gMe9TYeexdM,663
146
+ devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/context_iac.py,sha256=shCXfoOGWUs8cJCYd10UE5zJhFYXY63VPVz10qgVM4Q,218
146
147
  devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
- devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py,sha256=ClElxyHbwfDCW0fgcehaNfQLq00zozhO71EnyCjzt-U,182
148
+ devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py,sha256=YH9mkk9NjuXQ3lHSHD2HcNBynq2TvSoakDZhBo-MDgM,323
148
149
  devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py,sha256=NbA3urTxxXVWiPmzWcV2mQctIng3RZSmXLOuiCnQbX0,6244
150
+ devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py,sha256=rEOj2Pp_rkCh86vX7mxQJxsl7pframg0i94ZzMmUWzo,6421
150
151
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
152
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
153
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
154
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py,sha256=TctUDUvNsErWQ7B41eYCJ0REzGTSyMXJl19mFu33Lv4,5245
154
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py,sha256=l_opY909gh1m3k2ud2xDrCVnDTBe3ApYT75juBf_uMk,1836
155
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py,sha256=Nzc3uZPitLT7mKiyM4KxtwmFLVZQIgQ1TaNtejc_4Zs,13048
155
+ devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py,sha256=Z5rpwyGtp3oUyVv68lW2lA4qt3mkO3IGfJqmxMVARIY,1859
156
+ devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py,sha256=ABXgxyNNvOLYGHLh7OqigUHZJsW4vYytB7pympr0Xo4,14828
156
157
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
158
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py,sha256=tZq3jutZL2M9XIxm5K_xd3mWwTCMVmHQPFNvrslCqCM,2092
158
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py,sha256=pVNZclcBKA6Ebm9kUfBWlHFI37ROT58CdqcczeM1UGs,6656
159
+ devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py,sha256=9D1f14TyTFE8FCdQBxVvF7jfKrdWOr91Mf1jd-qL9Ss,6774
159
160
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
161
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_deserealizator.py,sha256=bGOGmsIpJcQzTMxptJPwZCA9_2Woaua3pXmMs4kTnX8,2893
161
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py,sha256=N17glvzoUkGQJ_1icqznpORXuKJRKEq8Ye1IleN5o1g,4544
162
+ devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py,sha256=nGiPC7H_CoDpZzMy--wioakTZ1iM98gaW7vFBf-PnAM,4657
162
163
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
164
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py,sha256=60iaHYZZp5uTngD7a8vsQaQYsTfBzP_kp0xflfPNnk4,305
164
165
  devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -196,12 +197,13 @@ devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py,sh
196
197
  devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
198
  devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
199
  devsecops_engine_tools/engine_sca/engine_container/src/domain/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
+ devsecops_engine_tools/engine_sca/engine_container/src/domain/model/context_container.py,sha256=wWMi85UdcBZ8rpr7Lvj4rgRxpJd9IBXf_oNRVul8MOo,600
199
201
  devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
- devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py,sha256=sE7-GnNSNLWbA1H0mvTwXmxcOJXl8uvw-0hxMyX4oMc,290
202
+ devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py,sha256=HJydPGmBDnee7aAcnEs7OfyxcWy6adEOb4P8bex2S9s,533
201
203
  devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py,sha256=U72tVbOdR75FlitYGp4Wrj7_ZPz0WRsSTRA48goG3Ec,411
202
204
  devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py,sha256=2fT2DFb4IPqQczCrAI0qEuWQUb3XsqFhI5M0OzNYalo,286
203
205
  devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
- devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py,sha256=GvXsT-umEqB-2itAZiwlKIR581w78DbIJNknJ0o7EPw,4925
206
+ devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py,sha256=lpsiR4tQG14oBO5_HW71IWjyhBfnPXLH8PNo5PuEaVo,5157
205
207
  devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py,sha256=4wgBTQSDE-C5v01C3Vxzeq0DJKZUSqQ5TVLG7yPZPKs,926
206
208
  devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py,sha256=_JolwotLLrrac1EdO0D86ZduO6XQROhGpsIXC7eyOgs,2666
207
209
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -210,12 +212,12 @@ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_ada
210
212
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py,sha256=0yWqo6AoHFKKGg8rbFOx-BWDra448HEOaWSP5G0B1dg,4991
211
213
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
214
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py,sha256=Qjp5oswbH8y7yVoJ1g6CZjbUybS5XNf0LSOB1pUzSnE,7286
213
- devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py,sha256=oK0NKuPODm38qDgQjf6w40lfNG6NFJS43p5k44wDoMA,2562
215
+ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py,sha256=sMDGoOR7PfoLHlgrFXTSLJT0ysWT4HLc7REZrNRdhUQ,2682
214
216
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
215
- devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py,sha256=LGqnO10Zt-0-TxUW6F1S46jVktlIwxWSYATKSVblCWI,2535
217
+ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py,sha256=dP-7AXLD92Kid-w9WFsFpeBFpehRhL-Teyt1zftdnas,4990
216
218
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py,sha256=7hGrUU37ZqZKHfkiNX2YrhIlDna8XnhJ3F7ONhneexs,5105
217
219
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
- devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py,sha256=SW6cJSc2pK42iRmYiqFz76kU4W2Tbhieq2IrppsgcNw,2666
220
+ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py,sha256=94y92J7TMWMtaL7RDQQn8FqyoEXIAUuNpLgafOZAmZc,2711
219
221
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
220
222
  devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
223
  devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -349,8 +351,8 @@ devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGax
349
351
  devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=amYAr9YQfYgR6jK9a2l26z3oovFPQ3FAKmhq6BKhEBA,623
350
352
  devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=Z0fdhB3r-dxU0nGSD9zW_B4r2Qol1rUnUCkhFR0U-HQ,487
351
353
  devsecops_engine_tools/engine_utilities/utils/utils.py,sha256=HCjS900TBoNcHrC4LaiP-Kf9frVdtagF130qOUgnO2M,6757
352
- devsecops_engine_tools-1.58.0.dist-info/METADATA,sha256=OIufybH_vyGaVr0a4k3V7fhev7UYUgEBQ8dQdZtLepM,11809
353
- devsecops_engine_tools-1.58.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
354
- devsecops_engine_tools-1.58.0.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
355
- devsecops_engine_tools-1.58.0.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
356
- devsecops_engine_tools-1.58.0.dist-info/RECORD,,
354
+ devsecops_engine_tools-1.59.0.dist-info/METADATA,sha256=ZqIYrvh5CRbYON_OeHwnH4T2EwITd55-Jt8ZKvSyOB4,11809
355
+ devsecops_engine_tools-1.59.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
356
+ devsecops_engine_tools-1.59.0.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
357
+ devsecops_engine_tools-1.59.0.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
358
+ devsecops_engine_tools-1.59.0.dist-info/RECORD,,