devsecops-engine-tools 1.7.12__py3-none-any.whl → 1.7.13__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 (16) hide show
  1. devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +1 -1
  2. devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +4 -4
  3. devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +7 -33
  4. devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +10 -45
  5. devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +31 -55
  6. devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +1 -1
  7. devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py +24 -28
  8. devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +6 -2
  9. devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +4 -1
  10. devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +29 -11
  11. devsecops_engine_tools/version.py +1 -1
  12. {devsecops_engine_tools-1.7.12.dist-info → devsecops_engine_tools-1.7.13.dist-info}/METADATA +1 -1
  13. {devsecops_engine_tools-1.7.12.dist-info → devsecops_engine_tools-1.7.13.dist-info}/RECORD +16 -16
  14. {devsecops_engine_tools-1.7.12.dist-info → devsecops_engine_tools-1.7.13.dist-info}/WHEEL +0 -0
  15. {devsecops_engine_tools-1.7.12.dist-info → devsecops_engine_tools-1.7.13.dist-info}/entry_points.txt +0 -0
  16. {devsecops_engine_tools-1.7.12.dist-info → devsecops_engine_tools-1.7.13.dist-info}/top_level.txt +0 -0
@@ -110,7 +110,7 @@ class HandleScan:
110
110
  else:
111
111
  secret_sca = dict_args["token_engine_container"]
112
112
  findings_list, input_core = runner_engine_container(
113
- dict_args, config_tool, secret_sca, self.devops_platform_gateway
113
+ dict_args, config_tool["ENGINE_CONTAINER"]["TOOL"], secret_sca, self.devops_platform_gateway
114
114
  )
115
115
  if (
116
116
  dict_args["use_vulnerability_management"] == "true"
@@ -18,12 +18,12 @@ from devsecops_engine_tools.engine_sca.engine_container.src.infrastructure.drive
18
18
  )
19
19
 
20
20
 
21
- def runner_engine_container(dict_args, config_tool, token, tool_remote):
21
+ def runner_engine_container(dict_args, tool, token, tool_remote):
22
22
  try:
23
- if config_tool["ENGINE_CONTAINER"]["TOOL"].lower() == "trivy":
23
+ if tool.lower() == "trivy":
24
24
  tool_run = TrivyScan()
25
25
  tool_deseralizator = TrivyDeserializator()
26
- elif config_tool["ENGINE_CONTAINER"]["TOOL"].lower() == "prisma":
26
+ elif tool.lower() == "prisma":
27
27
  tool_run = PrismaCloudManagerScan()
28
28
  tool_deseralizator = PrismaDeserealizator()
29
29
  tool_images = DockerImages()
@@ -34,7 +34,7 @@ def runner_engine_container(dict_args, config_tool, token, tool_remote):
34
34
  tool_deseralizator,
35
35
  dict_args,
36
36
  token,
37
- config_tool,
37
+ tool,
38
38
  )
39
39
 
40
40
  except Exception as e:
@@ -1,6 +1,3 @@
1
- from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
2
- DevopsPlatformGateway,
3
- )
4
1
  from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.tool_gateway import (
5
2
  ToolGateway,
6
3
  )
@@ -11,33 +8,23 @@ from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateway
11
8
  DeseralizatorGateway,
12
9
  )
13
10
 
11
+
14
12
  class ContainerScaScan:
15
13
  def __init__(
16
14
  self,
17
15
  tool_run: ToolGateway,
18
- tool_remote: DevopsPlatformGateway,
16
+ remote_config,
19
17
  tool_images: ImagesGateway,
20
18
  tool_deseralizator: DeseralizatorGateway,
21
- dict_args,
19
+ build_id,
22
20
  token,
23
- skip_flag
24
21
  ):
25
22
  self.tool_run = tool_run
26
- self.tool_remote = tool_remote
23
+ self.remote_config = remote_config
27
24
  self.tool_images = tool_images
28
25
  self.tool_deseralizator = tool_deseralizator
29
- self.dict_args = dict_args
26
+ self.build_id = build_id
30
27
  self.token = token
31
- self.skip_flag = skip_flag
32
-
33
- def get_remote_config(self, file_path):
34
- """
35
- Get remote configuration.
36
-
37
- Returns:
38
- dict: Remote configuration.
39
- """
40
- return self.tool_remote.get_remote_config(self.dict_args["remote_config_repo"], file_path)
41
28
 
42
29
  def scan_image(self):
43
30
  """
@@ -48,15 +35,6 @@ class ContainerScaScan:
48
35
  """
49
36
  return self.tool_images.list_images()
50
37
 
51
- def get_variable(self, variable):
52
- """
53
- Get variable.
54
-
55
- Returns:
56
- dict: Remote variable.
57
- """
58
- return self.tool_remote.get_variable(variable)
59
-
60
38
  def process(self):
61
39
  """
62
40
  Process SCA scanning.
@@ -65,11 +43,7 @@ class ContainerScaScan:
65
43
  dict: SCA scanning results.
66
44
  """
67
45
  return self.tool_run.run_tool_container_sca(
68
- self.get_remote_config("engine_sca/engine_container/ConfigTool.json"),
69
- self.token,
70
- self.scan_image(),
71
- self.get_variable("build_id"),
72
- self.skip_flag
46
+ self.remote_config, self.token, self.scan_image(), self.build_id
73
47
  )
74
48
 
75
49
  def deseralizator(self, image_scanned):
@@ -79,4 +53,4 @@ class ContainerScaScan:
79
53
  Returns:
80
54
  list: Deserialized list of findings.
81
55
  """
82
- return self.tool_deseralizator.get_list_findings(image_scanned)
56
+ return self.tool_deseralizator.get_list_findings(image_scanned)
@@ -1,67 +1,32 @@
1
1
  import re
2
- from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
3
- DevopsPlatformGateway,
4
- )
5
2
 
6
3
 
7
4
  class HandleRemoteConfigPatterns:
8
- def __init__(
9
- self,
10
- tool_remote: DevopsPlatformGateway,
11
- dict_args,
12
- ):
13
- self.tool_remote = tool_remote
14
- self.dict_args = dict_args
5
+ def __init__(self, remote_config, exclusions, pipeline_name):
6
+ self.remote_config = remote_config
7
+ self.exclusions = exclusions
8
+ self.pipeline_name = pipeline_name
15
9
 
16
- def get_remote_config(self, file_path):
17
- """
18
- Get remote configuration
19
- Return: dict: Remote configuration
20
- """
21
- return self.tool_remote.get_remote_config(
22
- self.dict_args["remote_config_repo"], file_path
23
- )
24
-
25
- def get_variable(self, variable):
26
- """
27
- Get variable.
28
-
29
- Returns:
30
- dict: Remote variable.
31
- """
32
- return self.tool_remote.get_variable(variable)
33
-
34
10
  def ignore_analysis_pattern(self):
35
11
  """
36
12
  Handle analysis pattern.
37
13
  Return: bool: False -> not scan, True -> scan.
38
14
  """
39
- ignore = self.get_remote_config("engine_sca/engine_container/ConfigTool.json")["IGNORE_SEARCH_PATTERN"]
40
- if re.match(ignore, self.get_variable("pipeline_name"), re.IGNORECASE):
15
+ ignore = self.remote_config["IGNORE_SEARCH_PATTERN"]
16
+ if re.match(ignore, self.pipeline_name, re.IGNORECASE):
41
17
  return False
42
18
  else:
43
19
  return True
44
-
45
- def handle_skip_tool(self, exclusions, pipeline_name):
20
+
21
+ def skip_from_exclusion(self):
46
22
  """
47
23
  Handle skip tool.
48
24
 
49
25
  Return: bool: True -> skip tool, False -> not skip tool.
50
26
  """
51
- if (pipeline_name in exclusions) and (
52
- exclusions[pipeline_name].get("SKIP_TOOL", 0)
27
+ if (self.pipeline_name in self.exclusions) and (
28
+ self.exclusions[self.pipeline_name].get("SKIP_TOOL", 0)
53
29
  ):
54
30
  return True
55
31
  else:
56
32
  return False
57
-
58
- def process_handle_skip_tool(self):
59
- """
60
- Process handle skip tool.
61
-
62
- Return: bool: True -> skip tool, False -> not skip tool.
63
- """
64
- return self.handle_skip_tool(
65
- self.get_remote_config("engine_sca/engine_container/Exclusions.json"),
66
- self.get_variable("pipeline_name"),
67
- )
@@ -1,54 +1,34 @@
1
1
  from devsecops_engine_tools.engine_core.src.domain.model.input_core import InputCore
2
2
  from devsecops_engine_tools.engine_core.src.domain.model.threshold import Threshold
3
- from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
4
- DevopsPlatformGateway,
5
- )
3
+
6
4
 
7
5
  from devsecops_engine_tools.engine_core.src.domain.model.exclusions import Exclusions
8
6
 
9
7
 
10
8
  class SetInputCore:
11
- def __init__(self, tool_remote: DevopsPlatformGateway, dict_args, config_tool):
12
- self.tool_remote = tool_remote
13
- self.dict_args = dict_args
14
- self.config_tool = config_tool
15
-
16
- def get_remote_config(self, file_path):
17
- """
18
- Get remote configuration.
19
-
20
- Returns:
21
- dict: Remote configuration.
22
- """
23
- return self.tool_remote.get_remote_config(self.dict_args["remote_config_repo"], file_path)
24
-
25
- def get_variable(self, variable):
26
- """
27
- Get variable.
28
-
29
- Returns:
30
- dict: Remote variable.
31
- """
32
- return self.tool_remote.get_variable(variable)
33
-
34
- def get_exclusions(self, exclusions_data, pipeline_name, config_tool):
35
- list_exclusions = []
36
- for key, value in exclusions_data.items():
37
- if (key == "All") or (key == pipeline_name):
38
- exclusions = [
39
- Exclusions(
40
- id=item.get("id", ""),
41
- where=item.get("where", ""),
42
- cve_id=item.get("cve_id", ""),
43
- create_date=item.get("create_date", ""),
44
- expired_date=item.get("expired_date", ""),
45
- severity=item.get("severity", ""),
46
- hu=item.get("hu", ""),
47
- reason=item.get("reason", "Risk acceptance"),
48
- )
49
- for item in value[config_tool["ENGINE_CONTAINER"]["TOOL"]]
50
- ]
51
- list_exclusions.extend(exclusions)
9
+ def __init__(self, remote_config, exclusions, pipeline_name, tool, stage):
10
+ self.remote_config = remote_config
11
+ self.exclusions = exclusions
12
+ self.pipeline_name = pipeline_name
13
+ self.tool = tool
14
+ self.stage = stage
15
+
16
+ def get_exclusions(self, exclusions_data, pipeline_name, tool):
17
+ list_exclusions = [
18
+ Exclusions(
19
+ id=item.get("id", ""),
20
+ where=item.get("where", ""),
21
+ cve_id=item.get("cve_id", ""),
22
+ create_date=item.get("create_date", ""),
23
+ expired_date=item.get("expired_date", ""),
24
+ severity=item.get("severity", ""),
25
+ hu=item.get("hu", ""),
26
+ reason=item.get("reason", "Risk acceptance"),
27
+ )
28
+ for key, value in exclusions_data.items()
29
+ if key in {"All", pipeline_name} and value.get(tool)
30
+ for item in value[tool]
31
+ ]
52
32
  return list_exclusions
53
33
 
54
34
  def set_input_core(self, images_scanned):
@@ -60,17 +40,13 @@ class SetInputCore:
60
40
  """
61
41
  return InputCore(
62
42
  self.get_exclusions(
63
- self.get_remote_config("engine_sca/engine_container/Exclusions.json"),
64
- self.get_variable("pipeline_name"),
65
- self.config_tool,
66
- ),
67
- Threshold(
68
- self.get_remote_config("engine_sca/engine_container/ConfigTool.json")["THRESHOLD"]
43
+ self.exclusions,
44
+ self.pipeline_name,
45
+ self.tool,
69
46
  ),
47
+ Threshold(self.remote_config["THRESHOLD"]),
70
48
  images_scanned[-1] if images_scanned else None,
71
- self.get_remote_config("engine_sca/engine_container/ConfigTool.json")[
72
- "MESSAGE_INFO_ENGINE_CONTAINER"
73
- ],
74
- self.get_variable("pipeline_name"),
75
- self.get_variable("stage").capitalize(),
49
+ self.remote_config["MESSAGE_INFO_ENGINE_CONTAINER"],
50
+ self.pipeline_name,
51
+ self.stage.capitalize(),
76
52
  )
@@ -19,4 +19,4 @@ class DockerImages(ImagesGateway):
19
19
  print("Created date last image:", latest_image.attrs["Created"])
20
20
  return latest_image
21
21
  except subprocess.CalledProcessError as e:
22
- raise ValueError(f"Error listing images:{e.stderr}")
22
+ raise ValueError(f"Error listing images:{e.stderr}")
@@ -3,7 +3,6 @@ import requests
3
3
  import os
4
4
  import subprocess
5
5
  import logging
6
- import re
7
6
  import base64
8
7
  from devsecops_engine_tools.engine_sca.engine_container.src.infrastructure.helpers.images_scanned import (
9
8
  ImagesScanned,
@@ -87,37 +86,34 @@ class PrismaCloudManagerScan(ToolGateway):
87
86
 
88
87
  return images_scanned
89
88
 
90
- def run_tool_container_sca(
91
- self, remoteconfig, prisma_secret_key, image, build_id, skip_flag
92
- ):
89
+ def run_tool_container_sca(self, remoteconfig, prisma_secret_key, image, build_id):
93
90
  images_scanned = []
94
- if not (skip_flag):
95
- try:
96
- file_path = os.path.join(
97
- os.getcwd(), remoteconfig["PRISMA_CLOUD"]["TWISTCLI_PATH"]
98
- )
91
+ try:
92
+ file_path = os.path.join(
93
+ os.getcwd(), remoteconfig["PRISMA_CLOUD"]["TWISTCLI_PATH"]
94
+ )
99
95
 
100
- if not os.path.exists(file_path):
101
- self.download_twistcli(
102
- file_path,
103
- remoteconfig["PRISMA_CLOUD"]["PRISMA_ACCESS_KEY"],
104
- prisma_secret_key,
105
- remoteconfig["PRISMA_CLOUD"]["PRISMA_CONSOLE_URL"],
106
- remoteconfig["PRISMA_CLOUD"]["PRISMA_API_VERSION"],
107
- )
108
- images_scanned.extend(
109
- self.scan_image(
110
- file_path,
111
- image,
112
- remoteconfig,
113
- prisma_secret_key,
114
- build_id,
115
- )
96
+ if not os.path.exists(file_path):
97
+ self.download_twistcli(
98
+ file_path,
99
+ remoteconfig["PRISMA_CLOUD"]["PRISMA_ACCESS_KEY"],
100
+ prisma_secret_key,
101
+ remoteconfig["PRISMA_CLOUD"]["PRISMA_CONSOLE_URL"],
102
+ remoteconfig["PRISMA_CLOUD"]["PRISMA_API_VERSION"],
103
+ )
104
+ images_scanned.extend(
105
+ self.scan_image(
106
+ file_path,
107
+ image,
108
+ remoteconfig,
109
+ prisma_secret_key,
110
+ build_id,
116
111
  )
112
+ )
117
113
 
118
- return images_scanned
114
+ return images_scanned
119
115
 
120
- except Exception as ex:
121
- logger.error(f"An overall error occurred: {ex}")
116
+ except Exception as ex:
117
+ logger.error(f"An overall error occurred: {ex}")
122
118
 
123
119
  return images_scanned
@@ -31,8 +31,12 @@ class PrismaDeserealizator(DeseralizatorGateway):
31
31
  image_object = file.read()
32
32
 
33
33
  json_data = json.loads(image_object)
34
- vulnerabilities_data = json_data["results"][0]["vulnerabilities"] if "vulnerabilities" in json_data["results"][0] else []
35
-
34
+ vulnerabilities_data = (
35
+ json_data["results"][0]["vulnerabilities"]
36
+ if "vulnerabilities" in json_data["results"][0]
37
+ else []
38
+ )
39
+
36
40
  # Create a list of findings instances from the JSON data
37
41
  vulnerabilities = [
38
42
  Finding(
@@ -9,6 +9,7 @@ from dataclasses import dataclass
9
9
  import json
10
10
  from datetime import datetime
11
11
 
12
+
12
13
  @dataclass
13
14
  class TrivyDeserializator(DeseralizatorGateway):
14
15
  def get_list_findings(self, images_scanned: list) -> "list[Finding]":
@@ -34,7 +35,9 @@ class TrivyDeserializator(DeseralizatorGateway):
34
35
  + vul.get("InstalledVersion", ""),
35
36
  description=vul.get("Description", "").replace("\n", ""),
36
37
  severity=vul.get("Severity", "").lower(),
37
- identification_date=datetime.now().strftime("%d-%m-%Y %H:%M:%S"),
38
+ identification_date=datetime.now().strftime(
39
+ "%d-%m-%Y %H:%M:%S"
40
+ ),
38
41
  published_date_cve=vul.get("PublishedDate", ""),
39
42
  module="engine_container",
40
43
  category=Category.VULNERABILITY,
@@ -7,6 +7,10 @@ from devsecops_engine_tools.engine_sca.engine_container.src.domain.usecases.hand
7
7
  from devsecops_engine_tools.engine_sca.engine_container.src.domain.usecases.set_input_core import (
8
8
  SetInputCore,
9
9
  )
10
+ from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
11
+ from devsecops_engine_tools.engine_utilities import settings
12
+
13
+ logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
10
14
 
11
15
 
12
16
  def init_engine_sca_rm(
@@ -16,25 +20,39 @@ def init_engine_sca_rm(
16
20
  tool_deseralizator,
17
21
  dict_args,
18
22
  token,
19
- config_tool,
23
+ tool,
20
24
  ):
21
- handle_remote_config_patterns = HandleRemoteConfigPatterns(tool_remote, dict_args)
22
- flag = handle_remote_config_patterns.ignore_analysis_pattern()
25
+ remote_config = tool_remote.get_remote_config(
26
+ dict_args["remote_config_repo"], "engine_sca/engine_container/ConfigTool.json"
27
+ )
28
+ exclusions = tool_remote.get_remote_config(
29
+ dict_args["remote_config_repo"], "engine_sca/engine_container/Exclusions.json"
30
+ )
31
+ pipeline_name = tool_remote.get_variable("pipeline_name")
32
+ handle_remote_config_patterns = HandleRemoteConfigPatterns(
33
+ remote_config, exclusions, pipeline_name
34
+ )
35
+ skip_flag = handle_remote_config_patterns.skip_from_exclusion()
36
+ scan_flag = handle_remote_config_patterns.ignore_analysis_pattern()
37
+ build_id = tool_remote.get_variable("build_id")
38
+ stage = tool_remote.get_variable("stage")
23
39
  images_scanned = []
24
40
  deseralized = []
25
- if flag:
41
+ input_core = SetInputCore(remote_config, exclusions, pipeline_name, tool, stage)
42
+ if scan_flag and not (skip_flag):
26
43
  container_sca_scan = ContainerScaScan(
27
44
  tool_run,
28
- tool_remote,
45
+ remote_config,
29
46
  tool_images,
30
47
  tool_deseralizator,
31
- dict_args,
48
+ build_id,
32
49
  token,
33
- handle_remote_config_patterns.process_handle_skip_tool(),
34
50
  )
35
51
  images_scanned = container_sca_scan.process()
36
52
  deseralized = container_sca_scan.deseralizator(images_scanned)
37
- input_core = SetInputCore(tool_remote, dict_args, config_tool)
38
-
39
- return deseralized, input_core.set_input_core(images_scanned
40
- )
53
+ else:
54
+ print("Tool skipped by DevSecOps policy")
55
+ logger.info("Tool skipped by DevSecOps policy")
56
+ core_input = input_core.set_input_core(images_scanned)
57
+
58
+ return deseralized, core_input
@@ -1 +1 @@
1
- version = '1.7.12'
1
+ version = '1.7.13'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.7.12
3
+ Version: 1.7.13
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,5 +1,5 @@
1
1
  devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- devsecops_engine_tools/version.py,sha256=XbIhoEEUEJTJUiJEPml2J2LjQIi6Frpqax51My0O9Eg,18
2
+ devsecops_engine_tools/version.py,sha256=Uh22o-ohmw70__1bozvtr1yrWudbnqwNgHxwHKM-Qbg,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
@@ -26,7 +26,7 @@ devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_manage
26
26
  devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py,sha256=z6lcd-tnb-3QfZ1yf2ZlaRbovwF0YE6nUmS5V92aszc,15534
28
28
  devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py,sha256=EBLEzm-p_lEeB7T8iarn2Fc4_6hY0XAIT1AJATd2JUM,2473
29
- devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=bcQV-mBGoMwUENtWWCl245baGJNSmLxOLvd50S0C9zc,6702
29
+ devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=ee9ULqKGYfaxBUO8RNq-Znh4dbojghIauH4YIjYx9QU,6730
30
30
  devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py,sha256=Xi0iNnPrFgqd2cBdAA5E_tgouhxs-BTo016aolnGgv8,2413
31
31
  devsecops_engine_tools/engine_core/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -128,7 +128,7 @@ devsecops_engine_tools/engine_sca/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
128
128
  devsecops_engine_tools/engine_sca/engine_container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
129
  devsecops_engine_tools/engine_sca/engine_container/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
130
  devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
- devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py,sha256=-ExUAX2SCr4FM61mHmm0ezla8u0-FCbw59yEiW4YMUk,1802
131
+ devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py,sha256=tu7FU4taXp9XQFNkNv8jzHIS16pqy6zLDjYBGax4tWU,1718
132
132
  devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
133
  devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
134
  devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -138,21 +138,21 @@ devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/des
138
138
  devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py,sha256=szx-9iO1eSDedr3rw605Mx3jYBEFwRKBM0ts5zImgx0,158
139
139
  devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py,sha256=ADZjrl8u8CQ0hWoVhbnHFcjvyUmUeleffwmhtlg8s30,224
140
140
  devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py,sha256=eu8Sk2F_YLZ5fQ915ms-ebjHmmZrgg5XgQY53lbPHaU,2442
142
- devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py,sha256=SuoYbbJkFIzOY71-ALIxMPnHEM6P4h_nu5F-EH7oXj0,1921
143
- devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py,sha256=luo4pi7PtiH_cUue5DhrnqqABuciwz2w7UWpN-J6e50,2843
141
+ devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py,sha256=zwlYQSmtn7_ms9x5-Dhr3WTilLM5cXdAyslgWRh5xdc,1635
142
+ devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py,sha256=4wgBTQSDE-C5v01C3Vxzeq0DJKZUSqQ5TVLG7yPZPKs,926
143
+ devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py,sha256=Jw2sjrgRS8kjIFLt2nEBXQpF2-Ncm_ltgc6Q7ZIZKw0,1840
144
144
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
145
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
146
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
- devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py,sha256=gnDC8wnG99D3p6K_ph2a9bMtoYGu_5BdGacVOD8swH8,815
147
+ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py,sha256=tdZeW5KbZcLxSMM37-GdmkLItpRDUlR0eAyew6bI2ts,816
148
148
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py,sha256=J92AIpPzIwAO37RFRN7H9x-9QLWatpL7v7bbGadRY6c,4532
150
- devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py,sha256=InUFpFj1LO_rY_8oiKaAXUZ3NP_uASL1wofyd7WPLeQ,2450
149
+ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py,sha256=3KyqbuLSFHMAUO5n9ruLMU8nhiP9BuGeXchN9PHW3M0,4369
150
+ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py,sha256=k6j6ajlHFVfKdxIdvWVak0eryhIknT0IyTvyI2e3gz0,2514
151
151
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
- devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py,sha256=U5FFZsJCCADpH0-VbweeRqZi0aVM8RQqIijv17BWnY0,2114
152
+ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py,sha256=v0XU-KJfnt4BFmoLbpc3IE0RxDVsYN5dzftfJiWR2Fs,2169
153
153
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py,sha256=IBd3fOQmHPDeVud54DQtw0x2o4jm31iwRoiBDTpkqdc,4284
154
154
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
- devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py,sha256=goSKzTRwVbuwMuEkYVy7eoR-OkljFhB3Jj2BD7U5ggg,1334
155
+ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py,sha256=BM8XJI_tlFxurdhBz2N5R33z4WGNLN_mkaG2npYBTiM,2212
156
156
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
157
  devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/images_scanned.py,sha256=V_wE9maXdGlQbYIe6qVgOqEtiWrh-icd8V4dpWDQrXg,590
158
158
  devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -242,8 +242,8 @@ devsecops_engine_tools/engine_utilities/utils/logger_info.py,sha256=4Mz8Bwlm9Mku
242
242
  devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGaxYSDe0ZRh6VHRf53H4sXPcb-vNP_i81PUn3I,307
243
243
  devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=GAslbWaBpwP3mP6fBsgVl07TTBgcCggQTy8h2M9ibeo,612
244
244
  devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
245
- devsecops_engine_tools-1.7.12.dist-info/METADATA,sha256=kpJhqb5u7IYwXEvJf79--U9cddAzxdHCif-kNijLL04,9927
246
- devsecops_engine_tools-1.7.12.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
247
- devsecops_engine_tools-1.7.12.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
248
- devsecops_engine_tools-1.7.12.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
249
- devsecops_engine_tools-1.7.12.dist-info/RECORD,,
245
+ devsecops_engine_tools-1.7.13.dist-info/METADATA,sha256=dmkfv5Qf-s9SoAKRGVC0fYKI3u-Ie-IRHl5E9gsfJrQ,9927
246
+ devsecops_engine_tools-1.7.13.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
247
+ devsecops_engine_tools-1.7.13.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
248
+ devsecops_engine_tools-1.7.13.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
249
+ devsecops_engine_tools-1.7.13.dist-info/RECORD,,