regscale-cli 6.16.2.0__py3-none-any.whl → 6.16.3.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 regscale-cli might be problematic. Click here for more details.
- regscale/__init__.py +1 -1
- regscale/core/app/utils/api_handler.py +4 -11
- regscale/integrations/commercial/crowdstrike.py +0 -1
- regscale/integrations/commercial/qualys.py +50 -61
- regscale/integrations/commercial/servicenow.py +1 -0
- regscale/integrations/commercial/snyk.py +2 -2
- regscale/integrations/commercial/synqly/ticketing.py +29 -0
- regscale/integrations/commercial/veracode.py +1 -1
- regscale/integrations/scanner_integration.py +53 -18
- regscale/models/integration_models/cisa_kev_data.json +50 -7
- regscale/models/integration_models/flat_file_importer/__init__.py +29 -8
- regscale/models/integration_models/snyk.py +141 -15
- regscale/models/integration_models/synqly_models/capabilities.json +1 -1
- regscale/models/integration_models/veracode.py +91 -48
- regscale/models/regscale_models/user.py +3 -4
- regscale/utils/version.py +3 -5
- {regscale_cli-6.16.2.0.dist-info → regscale_cli-6.16.3.0.dist-info}/METADATA +1 -1
- {regscale_cli-6.16.2.0.dist-info → regscale_cli-6.16.3.0.dist-info}/RECORD +22 -22
- {regscale_cli-6.16.2.0.dist-info → regscale_cli-6.16.3.0.dist-info}/LICENSE +0 -0
- {regscale_cli-6.16.2.0.dist-info → regscale_cli-6.16.3.0.dist-info}/WHEEL +0 -0
- {regscale_cli-6.16.2.0.dist-info → regscale_cli-6.16.3.0.dist-info}/entry_points.txt +0 -0
- {regscale_cli-6.16.2.0.dist-info → regscale_cli-6.16.3.0.dist-info}/top_level.txt +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
from typing import List, Optional
|
|
1
|
+
from typing import List, Optional, Union
|
|
2
2
|
|
|
3
3
|
from regscale.core.app.logz import create_logger
|
|
4
4
|
from regscale.core.app.utils.app_utils import get_current_datetime
|
|
5
|
-
from regscale.
|
|
5
|
+
from regscale.integrations.scanner_integration import IntegrationFinding
|
|
6
|
+
from regscale.models import Asset, Vulnerability, ImportValidater, IssueStatus
|
|
6
7
|
from regscale.models.integration_models.flat_file_importer import FlatFileImporter
|
|
7
8
|
|
|
8
9
|
APP_NAME = "@app_name"
|
|
@@ -17,26 +18,34 @@ class Veracode(FlatFileImporter):
|
|
|
17
18
|
self.vuln_title = "PROBLEM_TITLE"
|
|
18
19
|
self.fmt = "%Y-%m-%d"
|
|
19
20
|
self.dt_format = "%Y-%m-%d %H:%M:%S"
|
|
20
|
-
|
|
21
|
+
xlsx_headers = [
|
|
21
22
|
"Source",
|
|
22
23
|
]
|
|
23
24
|
xml_headers = [
|
|
24
25
|
"app_name",
|
|
25
26
|
]
|
|
27
|
+
json_headers = [
|
|
28
|
+
"findings",
|
|
29
|
+
"project_name",
|
|
30
|
+
]
|
|
26
31
|
self.mapping_file = kwargs.get("mappings_path")
|
|
27
32
|
self.disable_mapping = kwargs.get("disable_mapping")
|
|
28
33
|
file_type = kwargs.get("file_type")
|
|
29
|
-
|
|
34
|
+
xml_tag = None
|
|
35
|
+
if "xml" in file_type:
|
|
30
36
|
self.required_headers = xml_headers
|
|
31
37
|
xml_tag = "detailedreport"
|
|
38
|
+
elif "xlsx" in file_type:
|
|
39
|
+
self.required_headers = xlsx_headers
|
|
32
40
|
else:
|
|
33
|
-
self.required_headers =
|
|
34
|
-
xml_tag = None
|
|
41
|
+
self.required_headers = json_headers
|
|
35
42
|
self.validater = ImportValidater(
|
|
36
43
|
self.required_headers, kwargs.get("file_path"), self.mapping_file, self.disable_mapping, xml_tag=xml_tag
|
|
37
44
|
)
|
|
38
45
|
self.headers = self.validater.parsed_headers
|
|
39
46
|
self.mapping = self.validater.mapping
|
|
47
|
+
if file_type == ".json":
|
|
48
|
+
self.asset_identifier = self.mapping.get_value(self.validater.data, "project_name", "")
|
|
40
49
|
super().__init__(
|
|
41
50
|
logger=logger,
|
|
42
51
|
headers=self.headers,
|
|
@@ -57,10 +66,14 @@ class Veracode(FlatFileImporter):
|
|
|
57
66
|
version = None
|
|
58
67
|
# Veracode is a Web Application Security Scanner, so these will be software assets, scanning a
|
|
59
68
|
# single web application
|
|
60
|
-
if "
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
if "xml" in self.attributes.file_type:
|
|
70
|
+
detailed_report_data = dat.get("detailedreport", {})
|
|
71
|
+
name = detailed_report_data.get(APP_NAME, "")
|
|
72
|
+
account_id = detailed_report_data.get(ACCOUNT_ID, "")
|
|
73
|
+
version = detailed_report_data.get(VERSION, "")
|
|
74
|
+
elif "json" in self.attributes.file_type:
|
|
75
|
+
name = self.mapping.get_value(dat, "project_name", "")
|
|
76
|
+
account_id = self.asset_identifier
|
|
64
77
|
else:
|
|
65
78
|
name = self.mapping.get_value(dat, "Source", "")
|
|
66
79
|
account_id = str(self.mapping.get_value(dat, "ID", ""))
|
|
@@ -88,7 +101,7 @@ class Veracode(FlatFileImporter):
|
|
|
88
101
|
)
|
|
89
102
|
return [asset]
|
|
90
103
|
|
|
91
|
-
def create_vuln(self, dat: Optional[dict] = None, **kwargs) -> List[Vulnerability]:
|
|
104
|
+
def create_vuln(self, dat: Optional[dict] = None, **kwargs) -> Union[List[Vulnerability], List[IntegrationFinding]]:
|
|
92
105
|
"""
|
|
93
106
|
Create a RegScale vulnerability from a vulnerability in the Veracode export file
|
|
94
107
|
|
|
@@ -96,30 +109,62 @@ class Veracode(FlatFileImporter):
|
|
|
96
109
|
:return: List of RegScale Vulnerability objects
|
|
97
110
|
:rtype: List[Vulnerability]
|
|
98
111
|
"""
|
|
99
|
-
import_type = "xml" if isinstance(dat, str) else "csv"
|
|
100
112
|
# Veracode is a Web Application Security Scanner, so these will be software assets,
|
|
101
113
|
# scanning a single web application
|
|
102
|
-
if
|
|
103
|
-
|
|
104
|
-
|
|
114
|
+
if "xml" in self.attributes.file_type:
|
|
115
|
+
detailed_report_data = dat.get("detailedreport", {})
|
|
116
|
+
name = detailed_report_data.get(APP_NAME, "")
|
|
117
|
+
all_sev_data = detailed_report_data.get("severity", [])
|
|
105
118
|
severity = self.severity_info(all_sev_data)[0] if all_sev_data else "low"
|
|
106
119
|
if severity_data := self.severity_info(all_sev_data):
|
|
107
|
-
if isinstance(severity_data,
|
|
120
|
+
if isinstance(severity_data, tuple) and len(severity_data) >= 2:
|
|
108
121
|
cwes = [
|
|
109
|
-
f"{c.get('cweid')} {c.get('cwename')}" for c in severity_data[1].get("cwe", [])
|
|
122
|
+
f"{c.get('@cweid')} {c.get('@cwename')}" for c in severity_data[1].get("cwe", [])
|
|
110
123
|
] # Multiple cwes per asset in official XML
|
|
111
124
|
else:
|
|
112
125
|
cwes = []
|
|
113
|
-
|
|
126
|
+
elif "xlsx" in self.attributes.file_type:
|
|
114
127
|
name = self.mapping.get_value(dat, "Source", "")
|
|
115
128
|
severity = self.mapping.get_value(dat, "Sev", "").lower()
|
|
116
129
|
cwes = [self.mapping.get_value(dat, "CWE ID & Name", [])] # Coalfire should flatten data for asset -> cwes
|
|
130
|
+
elif "json" in self.attributes.file_type:
|
|
131
|
+
return self._parse_json_findings(**kwargs)
|
|
117
132
|
|
|
118
|
-
return self.
|
|
133
|
+
return self.process_vuln_data(name, cwes, severity)
|
|
119
134
|
|
|
120
|
-
def
|
|
135
|
+
def _parse_json_findings(self, **kwargs) -> List[IntegrationFinding]:
|
|
121
136
|
"""
|
|
122
|
-
|
|
137
|
+
Parse the JSON findings from the Veracode .json export file
|
|
138
|
+
|
|
139
|
+
:return: List of IntegrationFinding objects
|
|
140
|
+
:rtype: List[IntegrationFinding]
|
|
141
|
+
"""
|
|
142
|
+
findings: List[IntegrationFinding] = []
|
|
143
|
+
for vuln in self.mapping.get_value(kwargs.get("data", self.validater.data), "findings", []):
|
|
144
|
+
if title := vuln.get("issue_type", vuln.get("title", "")):
|
|
145
|
+
findings.append(
|
|
146
|
+
IntegrationFinding(
|
|
147
|
+
title=title,
|
|
148
|
+
description=vuln.get("display_text", "No description available"),
|
|
149
|
+
severity=self.finding_severity_map.get(self.hit_mapping().get(vuln.get("severity", 0)), "Low"),
|
|
150
|
+
status=IssueStatus.Open,
|
|
151
|
+
plugin_name=vuln.get(title, self.name),
|
|
152
|
+
plugin_id=vuln.get("cwe_id", vuln.get("issue_id", "")),
|
|
153
|
+
plugin_text=vuln.get("issue_type", ""),
|
|
154
|
+
asset_identifier=self.asset_identifier,
|
|
155
|
+
first_seen=self.scan_date,
|
|
156
|
+
last_seen=self.scan_date,
|
|
157
|
+
scan_date=self.scan_date,
|
|
158
|
+
category="Software",
|
|
159
|
+
is_cwe=True,
|
|
160
|
+
control_labels=[],
|
|
161
|
+
)
|
|
162
|
+
)
|
|
163
|
+
return findings
|
|
164
|
+
|
|
165
|
+
def process_vuln_data(self, hostname: str, cwes: List[str], severity: str) -> List[Vulnerability]:
|
|
166
|
+
"""
|
|
167
|
+
Process the vulnerability data to create a list of vulnerabilities
|
|
123
168
|
|
|
124
169
|
:param str hostname: The hostname
|
|
125
170
|
:param List[str] cwes: The CWEs
|
|
@@ -137,7 +182,7 @@ class Veracode(FlatFileImporter):
|
|
|
137
182
|
|
|
138
183
|
def create_vulnerability_object(
|
|
139
184
|
self, asset: Asset, hostname: str, cwe: str, severity: str, description: str
|
|
140
|
-
) ->
|
|
185
|
+
) -> IntegrationFinding:
|
|
141
186
|
"""
|
|
142
187
|
Create a vulnerability from a row in the Veracode file
|
|
143
188
|
|
|
@@ -146,33 +191,25 @@ class Veracode(FlatFileImporter):
|
|
|
146
191
|
:param str cwe: The CWE
|
|
147
192
|
:param str severity: The severity
|
|
148
193
|
:param str description: The description
|
|
149
|
-
:return: The
|
|
150
|
-
:rtype:
|
|
151
|
-
"""
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return Vulnerability( # type: ignore
|
|
155
|
-
id=0,
|
|
156
|
-
scanId=0,
|
|
157
|
-
parentId=asset.id,
|
|
158
|
-
parentModule="assets",
|
|
159
|
-
ipAddress="0.0.0.0",
|
|
160
|
-
lastSeen=get_current_datetime(), # No timestamp on Veracode
|
|
161
|
-
firstSeen=get_current_datetime(), # No timestamp on Veracode
|
|
162
|
-
daysOpen=None,
|
|
163
|
-
dns=hostname,
|
|
164
|
-
mitigated=None,
|
|
165
|
-
operatingSystem=asset.operatingSystem,
|
|
166
|
-
severity=severity,
|
|
167
|
-
plugInName=cwe,
|
|
168
|
-
cve="",
|
|
169
|
-
tenantsId=0,
|
|
194
|
+
:return: The equivalent IntegrationFinding object
|
|
195
|
+
:rtype: IntegrationFinding
|
|
196
|
+
"""
|
|
197
|
+
return IntegrationFinding(
|
|
170
198
|
title=f"{cwe} on asset {asset.name}",
|
|
171
|
-
description=
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
199
|
+
description=description,
|
|
200
|
+
status=IssueStatus.Open,
|
|
201
|
+
dns=hostname,
|
|
202
|
+
first_seen=self.scan_date,
|
|
203
|
+
last_seen=self.scan_date,
|
|
204
|
+
scan_date=self.scan_date,
|
|
205
|
+
category="Software",
|
|
206
|
+
is_cwe=True,
|
|
207
|
+
severity=self.finding_severity_map.get(self.hit_mapping().get(severity.title(), "Low")),
|
|
208
|
+
plugin_name=cwe,
|
|
209
|
+
plugin_id=cwe,
|
|
210
|
+
plugin_text=description,
|
|
211
|
+
asset_identifier=hostname,
|
|
212
|
+
control_labels=[],
|
|
176
213
|
)
|
|
177
214
|
|
|
178
215
|
def get_asset(self, hostname: str) -> Optional[Asset]:
|
|
@@ -214,4 +251,10 @@ class Veracode(FlatFileImporter):
|
|
|
214
251
|
"2": "low",
|
|
215
252
|
"1": "low",
|
|
216
253
|
"0": "info",
|
|
254
|
+
5: "Critical",
|
|
255
|
+
4: "High",
|
|
256
|
+
3: "Medium",
|
|
257
|
+
2: "Low",
|
|
258
|
+
1: "Low",
|
|
259
|
+
0: "Low",
|
|
217
260
|
}
|
|
@@ -75,11 +75,10 @@ class User(RegScaleModel):
|
|
|
75
75
|
:param str v: homePageUrl value
|
|
76
76
|
:return: The homePageUrl if the RegScale version is compatible, None otherwise
|
|
77
77
|
"""
|
|
78
|
-
from
|
|
78
|
+
from regscale.utils.version import RegscaleVersion
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if len(regscale_version) >= 10 or Version(regscale_version) >= Version("6.14.0.0"):
|
|
80
|
+
rv = RegscaleVersion()
|
|
81
|
+
if rv.meets_minimum_version("6.14.0.0"):
|
|
83
82
|
return v
|
|
84
83
|
else:
|
|
85
84
|
return None
|
regscale/utils/version.py
CHANGED
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
4
|
import re
|
|
5
|
-
from typing import Optional
|
|
6
5
|
from functools import lru_cache
|
|
7
6
|
|
|
8
7
|
from packaging.version import Version
|
|
9
8
|
|
|
10
9
|
from regscale.core.app.utils.api_handler import APIHandler
|
|
11
|
-
from regscale.utils.decorators import classproperty
|
|
12
10
|
|
|
13
11
|
logger = logging.getLogger(__name__)
|
|
14
12
|
|
|
@@ -32,15 +30,15 @@ class RegscaleVersion:
|
|
|
32
30
|
try:
|
|
33
31
|
api_handler = APIHandler()
|
|
34
32
|
response = api_handler.get("/assets/json/version.json")
|
|
35
|
-
if response.status_code == 200:
|
|
33
|
+
if response.ok and response.status_code == 200:
|
|
36
34
|
version_data = response.json()
|
|
37
35
|
return version_data.get("version", "Unknown")
|
|
38
36
|
else:
|
|
39
37
|
logger.error(f"Failed to fetch version. Status code: {response.status_code}")
|
|
40
|
-
return "
|
|
38
|
+
return "Unknown"
|
|
41
39
|
except Exception as e:
|
|
42
40
|
logger.error(f"Error fetching version: {e}", exc_info=True)
|
|
43
|
-
return "
|
|
41
|
+
return "Unknown"
|
|
44
42
|
|
|
45
43
|
@staticmethod
|
|
46
44
|
def is_valid_version(version: str) -> bool:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
regscale/__init__.py,sha256=
|
|
1
|
+
regscale/__init__.py,sha256=jJ-ZEy_438JmVlyusriDiBL0lTIAVFQSRZYNzLmelSA,25
|
|
2
2
|
regscale/regscale.py,sha256=kztX3Opi2ERFo3PVAE8ZC9fqzyOwHO3jYuNo6VdCRLM,30730
|
|
3
3
|
regscale/airflow/__init__.py,sha256=yMwN0Bz4JbM0nl5qY_hPegxo_O2ilhTOL9PY5Njhn-s,270
|
|
4
4
|
regscale/airflow/click_dags.py,sha256=H3SUR5jkvInNMv1gu-VG-Ja_H-kH145CpQYNalWNAbE,4520
|
|
@@ -54,7 +54,7 @@ regscale/core/app/internal/poam_editor.py,sha256=3PtpSMpV7bqKFuTHD2ACYcTyB3EEtTR
|
|
|
54
54
|
regscale/core/app/internal/workflow.py,sha256=SpgYk1QyzdilVLOK1fFzaKhdLspumaugf5VezgboxhQ,4007
|
|
55
55
|
regscale/core/app/utils/XMLIR.py,sha256=M_RrCsbjznihatkucCKw6dPgHTPQczXyqIdUXWhuCLI,8328
|
|
56
56
|
regscale/core/app/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
-
regscale/core/app/utils/api_handler.py,sha256=
|
|
57
|
+
regscale/core/app/utils/api_handler.py,sha256=T1meKw6Yi3ZAgRbQ1xuKDVh9Q9B8mbMqqN_LrSwIlAM,11765
|
|
58
58
|
regscale/core/app/utils/app_utils.py,sha256=PnZeSU3AJqqe4NtdqABYowH1c3emiPSGDgRUdVp1kDc,36246
|
|
59
59
|
regscale/core/app/utils/file_utils.py,sha256=URKWVEiR9aFnwoW3-Io7R22tBVeROTC3sX1wOZuhqXw,8912
|
|
60
60
|
regscale/core/app/utils/parser_utils.py,sha256=aBEgcFwbJMD-ARf3wzf-tyWwR6NHvzEcdYcPMm8hGqo,2533
|
|
@@ -109,13 +109,13 @@ regscale/exceptions/validation_exception.py,sha256=_DW_GARtPr_Dyy8tolnvC_AYsHRsU
|
|
|
109
109
|
regscale/integrations/__init__.py,sha256=Sqthp3Jggo7co_go380cLn3OAb0cHwqL609_4QJSFBY,58
|
|
110
110
|
regscale/integrations/integration_override.py,sha256=PH7t_bf-RCe_it3FJ61tlKX5UghqHuSEQNJWDfCamAg,5480
|
|
111
111
|
regscale/integrations/jsonl_scanner_integration.py,sha256=ixHAyTpevqusMpp2LS4vkATUbrCKvG4fSqu8VYOh254,38064
|
|
112
|
-
regscale/integrations/scanner_integration.py,sha256=
|
|
112
|
+
regscale/integrations/scanner_integration.py,sha256=8hikqPvcjPSIiuiVQC7s0goXsi-1FFtc3dokTMs3QV8,129339
|
|
113
113
|
regscale/integrations/variables.py,sha256=_knfoweXyvarsDGijvpsy87tXAXIijKGRXk9Hw5gGlQ,1904
|
|
114
114
|
regscale/integrations/commercial/__init__.py,sha256=bRSeNMGQorH-A7Pp6U62ll92WbVG8WTyBv2Lp4jlkBw,13160
|
|
115
115
|
regscale/integrations/commercial/ad.py,sha256=YXSmK8vRf6yi2GnREGa5GrE6GelhFrLj44SY8AO1pK0,15509
|
|
116
116
|
regscale/integrations/commercial/burp.py,sha256=5hK4bVivfnP1H0UnBdTp_A4WfpCgIn2bsjSQ57JF7WQ,2522
|
|
117
117
|
regscale/integrations/commercial/cpe.py,sha256=eXZeDXicnp1yYgKuyKcthQUYxXi2Pgc__UD8lUqr5H0,4924
|
|
118
|
-
regscale/integrations/commercial/crowdstrike.py,sha256=
|
|
118
|
+
regscale/integrations/commercial/crowdstrike.py,sha256=6x7_GlYDRCZvPZwqgrDT5KMnXCa6H4RKO-FNkiYxHgU,40194
|
|
119
119
|
regscale/integrations/commercial/defender.py,sha256=SA3cn4tdRcD6ZjbCZgULl3ts2fAUqnf27RkdDo7ULGM,65920
|
|
120
120
|
regscale/integrations/commercial/dependabot.py,sha256=V4VbHbwrxHfe7eCilJ7U_MBeIO6X3wetGfIo2DJYe_c,7793
|
|
121
121
|
regscale/integrations/commercial/ecr.py,sha256=47iCigssDANlfHYGznU4rfOq6O-1QMGOuP8lBmn7Df0,2693
|
|
@@ -125,14 +125,14 @@ regscale/integrations/commercial/jira.py,sha256=1fBF3y4kotbD9hFtqZxlBIb4Q6iNkhIK
|
|
|
125
125
|
regscale/integrations/commercial/nexpose.py,sha256=lqPw9yk7ywHDoLwPeXKSz9DaLyVzOQIKOotCgayVTNE,2853
|
|
126
126
|
regscale/integrations/commercial/okta.py,sha256=VNwE848xiBxkha4DibkhLJN-fi0T8rLMd30PPAmRjpk,30837
|
|
127
127
|
regscale/integrations/commercial/prisma.py,sha256=shr71NkaSfcg2m-Ak6EVV9ozAFPibiOoehEty24MtyA,2841
|
|
128
|
-
regscale/integrations/commercial/qualys.py,sha256=
|
|
128
|
+
regscale/integrations/commercial/qualys.py,sha256=cMx39E_u0Y-2j6KZO_vknmpJ34cHnoOdDzWxmYEc-JU,53151
|
|
129
129
|
regscale/integrations/commercial/salesforce.py,sha256=vvXWlXxhJMQj45tU7wz7o4YbkhqjPlaMx_6SWYkI3Bs,36671
|
|
130
|
-
regscale/integrations/commercial/servicenow.py,sha256=
|
|
131
|
-
regscale/integrations/commercial/snyk.py,sha256=
|
|
130
|
+
regscale/integrations/commercial/servicenow.py,sha256=nUVZwt8-G1rQhwACX6i2BKIAjkMtd46uskBznxgOOsA,64014
|
|
131
|
+
regscale/integrations/commercial/snyk.py,sha256=j2cN90BzzcZDeORDcnMbuQwL3__FRd-X5JnH3ZpMKJE,2816
|
|
132
132
|
regscale/integrations/commercial/sonarcloud.py,sha256=_E4DuKRZUqXNNPsxS3UJ3q6llVu-5sfw5pTHxe_UMk0,9821
|
|
133
133
|
regscale/integrations/commercial/sqlserver.py,sha256=PcDLmsZ9xU5NlFpwPZyMhhxCgX4JK2Ztn2S6kCG4mws,11614
|
|
134
134
|
regscale/integrations/commercial/synqly_jira.py,sha256=dmw3m_lKtii2OpVcrmtNJ-ClUNThV8-1IOrWyE2RQLE,33002
|
|
135
|
-
regscale/integrations/commercial/veracode.py,sha256=
|
|
135
|
+
regscale/integrations/commercial/veracode.py,sha256=SYJEXRgExwVPTWBcqap2jcsdggp-4TvdETLrSCVEOvo,2919
|
|
136
136
|
regscale/integrations/commercial/xray.py,sha256=egJO6fCQ8jhSpyu6Gj2xczTtUMEiSAJKDz05dT-YZ6M,2734
|
|
137
137
|
regscale/integrations/commercial/amazon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
138
138
|
regscale/integrations/commercial/amazon/common.py,sha256=8ITptlZjJD720_DGfPqmEXeNF4GbAseq8o0s80E4CyY,3252
|
|
@@ -201,7 +201,7 @@ regscale/integrations/commercial/stigv2/click_commands.py,sha256=8cVuq_KXnOCktIm
|
|
|
201
201
|
regscale/integrations/commercial/stigv2/stig_integration.py,sha256=pnR0RMLSJYclJ5DHm-EQJ0Qncc4RJE0dkZhD5W7KfG8,9169
|
|
202
202
|
regscale/integrations/commercial/synqly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
203
203
|
regscale/integrations/commercial/synqly/assets.py,sha256=GcDGe6XvumaAYyo5Af8Ccmg1DzLfgnNFGdsyRdKsiEs,1412
|
|
204
|
-
regscale/integrations/commercial/synqly/ticketing.py,sha256=
|
|
204
|
+
regscale/integrations/commercial/synqly/ticketing.py,sha256=6UhmDa0l-GYTJAyc93HiaS-maCVQD9UtDcGIjQ9n270,4909
|
|
205
205
|
regscale/integrations/commercial/synqly/vulnerabilities.py,sha256=B8GwfKVDdoOIikjZO-4KqDNf-ApXlcJNkwmno0FjDOQ,7842
|
|
206
206
|
regscale/integrations/commercial/tenablev2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
207
207
|
regscale/integrations/commercial/tenablev2/authenticate.py,sha256=ZFtyw26zjt1nky15PSP0Dl1-0WXEydU9s3UaS8oQaZ8,751
|
|
@@ -295,7 +295,7 @@ regscale/models/integration_models/azure_alerts.py,sha256=2etrpvcxa7jVQrc98bJlVG
|
|
|
295
295
|
regscale/models/integration_models/base64.py,sha256=sxV6O5qY1_TstJENX5jBPsSdQwmA83-NNhgJFunXiZE,570
|
|
296
296
|
regscale/models/integration_models/burp.py,sha256=hPQkmmUdC84MBFTE2Di5NvjbGz1ssISSkZdDaVi-ZoQ,16941
|
|
297
297
|
regscale/models/integration_models/burp_models.py,sha256=UytDTAcCaxyu-knFkm_mEUH6UmWK3OTXKSC9Sc6OjVs,3669
|
|
298
|
-
regscale/models/integration_models/cisa_kev_data.json,sha256=
|
|
298
|
+
regscale/models/integration_models/cisa_kev_data.json,sha256=4ucPXc0vgND9_2JgV_17n2vL97bc0dE0VOHmOki7R9A,1151325
|
|
299
299
|
regscale/models/integration_models/defender_data.py,sha256=jsAcjKxiGmumGerj7xSWkFd6r__YpuKDnYX5o7xHDiE,2844
|
|
300
300
|
regscale/models/integration_models/defenderimport.py,sha256=OFwEH0Xu-HFLIZJZ8hP60Ov3lS8RR7KHEsw4wI8QnoE,5766
|
|
301
301
|
regscale/models/integration_models/drf.py,sha256=Aq7AdLa_CH97NrnR-CxaFI22JjVN9uCxVN7Z-BBUaNU,18896
|
|
@@ -307,9 +307,9 @@ regscale/models/integration_models/prisma.py,sha256=83LeS96rUgaZvPzl6ei_FWjTFBoj
|
|
|
307
307
|
regscale/models/integration_models/qualys.py,sha256=PJr9iX7IXH_3dQNzzpf8cmJhIdy_tP3Z8ouVmrKOK2I,26999
|
|
308
308
|
regscale/models/integration_models/qualys_scanner.py,sha256=6rAeCR9qI10MM_LWtZtOhWaT6mERWtII2IxxyvQhfKw,6453
|
|
309
309
|
regscale/models/integration_models/send_reminders.py,sha256=Zon6fyV0nODp8l5KuABe97Rz8l37o4biRb5iML7GHiE,26137
|
|
310
|
-
regscale/models/integration_models/snyk.py,sha256=
|
|
310
|
+
regscale/models/integration_models/snyk.py,sha256=Wk04Dbz67s2uniWkfllRHhlEBrRYiZq5CRwkOpDyHls,11524
|
|
311
311
|
regscale/models/integration_models/trivy_import.py,sha256=R6aZXUaNKf5Gdo1kNxIKM-HMW95XDWVCG_gMrzDYNuQ,9210
|
|
312
|
-
regscale/models/integration_models/veracode.py,sha256=
|
|
312
|
+
regscale/models/integration_models/veracode.py,sha256=qcNllrTstGshpTaWDFm0Z-XYbP-mSVMWWiGoq5karO0,10431
|
|
313
313
|
regscale/models/integration_models/xray.py,sha256=rnDF9kOAYMhTO9xEi1bwmIrQvfTCQAW6ENNp3Hsfaes,5848
|
|
314
314
|
regscale/models/integration_models/amazon_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
315
315
|
regscale/models/integration_models/amazon_models/inspector.py,sha256=AcV_Nk4ZJMJqmRMpmpbu8LDqp4F2D6GD_IcKsh9MYcs,12915
|
|
@@ -317,11 +317,11 @@ regscale/models/integration_models/amazon_models/inspector_scan.py,sha256=A1uaOv
|
|
|
317
317
|
regscale/models/integration_models/ecr_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
318
318
|
regscale/models/integration_models/ecr_models/data.py,sha256=l28DCidXar1JygYBQZL9MYenQA9N-Cx3Skf51IOjZcw,1017
|
|
319
319
|
regscale/models/integration_models/ecr_models/ecr.py,sha256=-s_5mj4BVKImrvfMaOJLT4qc5EqTCbv8qM4uJiH_nKc,9502
|
|
320
|
-
regscale/models/integration_models/flat_file_importer/__init__.py,sha256=
|
|
320
|
+
regscale/models/integration_models/flat_file_importer/__init__.py,sha256=Mq4V3tRa3OK4PBJMyU-nZrk8vsnk1_ZkmXEJWohou_I,44271
|
|
321
321
|
regscale/models/integration_models/sbom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
322
322
|
regscale/models/integration_models/sbom/cyclone_dx.py,sha256=0pFR0BWBrF5c8_cC_8mj2MXvNOMHOdHbBYXvTVfFAh8,4058
|
|
323
323
|
regscale/models/integration_models/synqly_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
324
|
-
regscale/models/integration_models/synqly_models/capabilities.json,sha256=
|
|
324
|
+
regscale/models/integration_models/synqly_models/capabilities.json,sha256=mQHEMe9WyyJBHEWvidOBjw9Hf0VgCszyDeNv6i0Bs-4,232304
|
|
325
325
|
regscale/models/integration_models/synqly_models/connector_types.py,sha256=8nxptkTexpskySnmL0obNAff_iu_fx6tJ7i1-4hJvao,461
|
|
326
326
|
regscale/models/integration_models/synqly_models/ocsf_mapper.py,sha256=vrtto3-VxbEtK5JSHNluypLm8yvmT_IDupyiJIeFedY,14535
|
|
327
327
|
regscale/models/integration_models/synqly_models/param.py,sha256=45zgYUV4U9Ia8-CdIb4TlE3vfDMMtbfA1y5LOiznnH8,2645
|
|
@@ -412,7 +412,7 @@ regscale/models/regscale_models/tag.py,sha256=D4n5ABDzjI7u1ukjRyHgmgyVd8iNTNJlQr
|
|
|
412
412
|
regscale/models/regscale_models/tag_mapping.py,sha256=QtafVsWjpBR8BAxRhabk3FL3E4WI5OdCv95fuvNOrZs,657
|
|
413
413
|
regscale/models/regscale_models/task.py,sha256=eKVdR89Gb6M9E2plhK4fru8teQI3zPJpgtJ0f43FOrY,4919
|
|
414
414
|
regscale/models/regscale_models/threat.py,sha256=4TNZcRnTgmlDwBsYu5Pbh9GRd8ZWAtqqr0Xph3uPNAA,7255
|
|
415
|
-
regscale/models/regscale_models/user.py,sha256=
|
|
415
|
+
regscale/models/regscale_models/user.py,sha256=9kqKKr7KRKylIcqmh8z3q5kqpLqOfTHrPYyrlVqFid8,6493
|
|
416
416
|
regscale/models/regscale_models/user_group.py,sha256=6j-lkhu21zNukof804Dsk7eHPtEwD7779yInWm6lHTs,1860
|
|
417
417
|
regscale/models/regscale_models/vulnerability.py,sha256=VKgWMVvAQ74Sq46myYsivGfIeW63dHq3bv3cRCkDcbg,10960
|
|
418
418
|
regscale/models/regscale_models/vulnerability_mapping.py,sha256=cq44xkkCH7rfp0BJxavr4DLiEAHouyyPmi5EaizH6NI,6261
|
|
@@ -437,7 +437,7 @@ regscale/utils/numbers.py,sha256=0LkZvewuKXogk6_oWF90OAoGIuzK1fjWZ4gRCC9_TlQ,301
|
|
|
437
437
|
regscale/utils/shell.py,sha256=H9Zzwt3zxyzWmfiH3tVrcIoAcEHtF_pXzM5ERd7PAGc,4176
|
|
438
438
|
regscale/utils/string.py,sha256=3TYMjGHr0T98SswyGl6f54jXKB_-zlW5it9ZxTOm6bg,3918
|
|
439
439
|
regscale/utils/synqly_utils.py,sha256=DjkdAxdUJBOU5YfAJ7pFFNBPSP37Gs9NQS10xduaYmA,6324
|
|
440
|
-
regscale/utils/version.py,sha256=
|
|
440
|
+
regscale/utils/version.py,sha256=bOH1vlvOEAt1f-fzzFxtZrg3VcnqL5SA4ud1TjZVQGU,4265
|
|
441
441
|
regscale/utils/threading/__init__.py,sha256=xdaPVA-vab5_grbx_ESD9k_i-FGt5xb9pBJd2xvkExU,254
|
|
442
442
|
regscale/utils/threading/threadhandler.py,sha256=W6Ujc-kf0vOhlQgsMb7MRFImtBuWQ-IsOiCunRAqCuY,4709
|
|
443
443
|
regscale/utils/threading/threadsafe_counter.py,sha256=Dwt-jt4nN-ApMgpxONM7RFll6FU4hMCeZCW54rjDPjs,1037
|
|
@@ -479,9 +479,9 @@ tests/regscale/models/test_regscale_model.py,sha256=ZsrEZkC4EtdIsoQuayn1xv2gEGcV
|
|
|
479
479
|
tests/regscale/models/test_report.py,sha256=eiSvS_zS0aVeL0HBvtmHVvEzcfF9ZFVn2twj5g8KttY,970
|
|
480
480
|
tests/regscale/models/test_tenable_integrations.py,sha256=PNJC2Zu6lv1xj7y6e1yOsz5FktSU3PRKb5x3n5YG3w0,4072
|
|
481
481
|
tests/regscale/models/test_user_model.py,sha256=e9olv28qBApgnvK6hFHOgXjUC-pkaV8aGDirEIWASL4,4427
|
|
482
|
-
regscale_cli-6.16.
|
|
483
|
-
regscale_cli-6.16.
|
|
484
|
-
regscale_cli-6.16.
|
|
485
|
-
regscale_cli-6.16.
|
|
486
|
-
regscale_cli-6.16.
|
|
487
|
-
regscale_cli-6.16.
|
|
482
|
+
regscale_cli-6.16.3.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
|
|
483
|
+
regscale_cli-6.16.3.0.dist-info/METADATA,sha256=3Xut5oxIwSOAFXsP1ORtk4it41rgZoc1nCcBHTQKgzY,30913
|
|
484
|
+
regscale_cli-6.16.3.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
485
|
+
regscale_cli-6.16.3.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
|
|
486
|
+
regscale_cli-6.16.3.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
|
|
487
|
+
regscale_cli-6.16.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|