regscale-cli 6.20.7.0__py3-none-any.whl → 6.20.9.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/_version.py +1 -1
- regscale/core/app/api.py +8 -1
- regscale/core/app/application.py +130 -20
- regscale/core/utils/date.py +16 -16
- regscale/integrations/commercial/aqua/aqua.py +1 -1
- regscale/integrations/commercial/aws/cli.py +1 -1
- regscale/integrations/commercial/defender.py +1 -1
- regscale/integrations/commercial/ecr.py +1 -1
- regscale/integrations/commercial/ibm.py +1 -1
- regscale/integrations/commercial/nexpose.py +1 -1
- regscale/integrations/commercial/prisma.py +1 -1
- regscale/integrations/commercial/qualys/__init__.py +150 -77
- regscale/integrations/commercial/qualys/containers.py +2 -1
- regscale/integrations/commercial/qualys/scanner.py +5 -3
- regscale/integrations/commercial/snyk.py +14 -4
- regscale/integrations/commercial/synqly/ticketing.py +23 -11
- regscale/integrations/commercial/veracode.py +15 -4
- regscale/integrations/commercial/xray.py +1 -1
- regscale/integrations/public/cisa.py +7 -1
- regscale/integrations/public/nist_catalog.py +8 -2
- regscale/integrations/scanner_integration.py +18 -36
- regscale/models/integration_models/cisa_kev_data.json +51 -6
- regscale/models/integration_models/flat_file_importer/__init__.py +34 -19
- regscale/models/integration_models/send_reminders.py +8 -2
- regscale/models/integration_models/synqly_models/capabilities.json +1 -1
- regscale/models/regscale_models/control_implementation.py +40 -0
- regscale/models/regscale_models/issue.py +7 -4
- regscale/models/regscale_models/parameter.py +3 -2
- regscale/models/regscale_models/ports_protocol.py +15 -5
- regscale/models/regscale_models/vulnerability.py +1 -1
- regscale/utils/graphql_client.py +3 -6
- regscale/utils/threading/threadhandler.py +12 -2
- {regscale_cli-6.20.7.0.dist-info → regscale_cli-6.20.9.0.dist-info}/METADATA +13 -13
- {regscale_cli-6.20.7.0.dist-info → regscale_cli-6.20.9.0.dist-info}/RECORD +41 -40
- tests/regscale/core/test_app.py +402 -16
- tests/regscale/core/test_version_regscale.py +62 -0
- tests/regscale/test_init.py +2 -0
- {regscale_cli-6.20.7.0.dist-info → regscale_cli-6.20.9.0.dist-info}/LICENSE +0 -0
- {regscale_cli-6.20.7.0.dist-info → regscale_cli-6.20.9.0.dist-info}/WHEEL +0 -0
- {regscale_cli-6.20.7.0.dist-info → regscale_cli-6.20.9.0.dist-info}/entry_points.txt +0 -0
- {regscale_cli-6.20.7.0.dist-info → regscale_cli-6.20.9.0.dist-info}/top_level.txt +0 -0
|
@@ -313,6 +313,46 @@ class ControlImplementation(RegScaleModel):
|
|
|
313
313
|
security_controls.append(ci)
|
|
314
314
|
return security_controls
|
|
315
315
|
|
|
316
|
+
@classmethod
|
|
317
|
+
def get_control_label_map_by_parent(cls, parent_id: int, parent_module: str) -> Dict[str, int]:
|
|
318
|
+
"""
|
|
319
|
+
Get a map of control names to implementation IDs by parent
|
|
320
|
+
|
|
321
|
+
:param int parent_id: The ID of the parent
|
|
322
|
+
:param str parent_module: The module of the parent
|
|
323
|
+
:return: A dictionary mapping control IDs to implementation IDs
|
|
324
|
+
:rtype: Dict[str, int]
|
|
325
|
+
"""
|
|
326
|
+
logger.info("Getting control label map by parent...")
|
|
327
|
+
response = cls._get_api_handler().get(
|
|
328
|
+
endpoint=cls.get_endpoint("get_all_by_parent").format(intParentID=parent_id, strModule=parent_module)
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
if response and response.ok:
|
|
332
|
+
logger.info("Fetched control label map by parent successfully.")
|
|
333
|
+
return {parentheses_to_dot(ci["controlName"]): ci["id"] for ci in response.json()}
|
|
334
|
+
logger.info("Unable to get control label map by parent.")
|
|
335
|
+
return {}
|
|
336
|
+
|
|
337
|
+
@classmethod
|
|
338
|
+
def get_control_id_map_by_parent(cls, parent_id: int, parent_module: str) -> Dict[int, int]:
|
|
339
|
+
"""
|
|
340
|
+
Get a map of control IDs to implementation IDs by parent
|
|
341
|
+
|
|
342
|
+
:param int plan_id: The ID of the plan
|
|
343
|
+
:return: A dictionary mapping control IDs to implementation IDs
|
|
344
|
+
:rtype: Dict[int, int]
|
|
345
|
+
"""
|
|
346
|
+
logger.info("Getting control id map by parent...")
|
|
347
|
+
response = cls._get_api_handler().get(
|
|
348
|
+
endpoint=cls.get_endpoint("get_all_by_parent").format(intParentID=parent_id, strModule=parent_module)
|
|
349
|
+
)
|
|
350
|
+
if response and response.ok:
|
|
351
|
+
logger.info("Fetched control id map by parent successfully.")
|
|
352
|
+
return {ci["controlID"]: ci["id"] for ci in response.json()}
|
|
353
|
+
logger.info("Unable to get control id map by parent.")
|
|
354
|
+
return {}
|
|
355
|
+
|
|
316
356
|
@classmethod
|
|
317
357
|
def get_control_label_map_by_plan(cls, plan_id: int) -> Dict[str, int]:
|
|
318
358
|
"""
|
|
@@ -822,7 +822,9 @@ class Issue(RegScaleModel):
|
|
|
822
822
|
return issues_data, attachments
|
|
823
823
|
|
|
824
824
|
@classmethod
|
|
825
|
-
def get_open_issues_ids_by_implementation_id(
|
|
825
|
+
def get_open_issues_ids_by_implementation_id(
|
|
826
|
+
cls, plan_id: int, is_component: Optional[bool] = False
|
|
827
|
+
) -> Dict[int, List[OpenIssueDict]]:
|
|
826
828
|
"""
|
|
827
829
|
Get all open issues by implementation id for a given security plan
|
|
828
830
|
|
|
@@ -836,8 +838,9 @@ class Issue(RegScaleModel):
|
|
|
836
838
|
take = 50
|
|
837
839
|
skip = 0
|
|
838
840
|
control_issues: Dict[int, List[OpenIssueDict]] = defaultdict(list)
|
|
841
|
+
module_str = "component" if is_component else "security plan"
|
|
839
842
|
logger.info(
|
|
840
|
-
f"Fetching open issues for controls and for
|
|
843
|
+
f"Fetching open issues for controls and for {module_str} {plan_id}...",
|
|
841
844
|
)
|
|
842
845
|
supports_multiple_controls: bool = cls.is_multiple_controls_supported()
|
|
843
846
|
|
|
@@ -858,7 +861,7 @@ class Issue(RegScaleModel):
|
|
|
858
861
|
skip: {skip},
|
|
859
862
|
take: {take},
|
|
860
863
|
where: {{
|
|
861
|
-
securityPlanId: {{eq: {plan_id}}},
|
|
864
|
+
{"componentId" if is_component else "securityPlanId"}: {{eq: {plan_id}}},
|
|
862
865
|
status: {{eq: "Open"}}
|
|
863
866
|
}}
|
|
864
867
|
) {{
|
|
@@ -886,7 +889,7 @@ class Issue(RegScaleModel):
|
|
|
886
889
|
if not response.get(cls.get_module_string(), {}).get("pageInfo", {}).get("hasNextPage", False):
|
|
887
890
|
break
|
|
888
891
|
skip += take
|
|
889
|
-
logger.info("Finished fetching %i open control issue(s) for
|
|
892
|
+
logger.info("Finished fetching %i open control issue(s) for %s %i", len(control_issues), module_str, plan_id)
|
|
890
893
|
return control_issues
|
|
891
894
|
|
|
892
895
|
@classmethod
|
|
@@ -37,7 +37,7 @@ class Parameter(RegScaleModel):
|
|
|
37
37
|
uuid: Optional[str] = None
|
|
38
38
|
name: str
|
|
39
39
|
value: str
|
|
40
|
-
controlImplementationId: int # Required, FK to ControlImplementation
|
|
40
|
+
controlImplementationId: int = Field(alias="controlImplementation") # Required, FK to ControlImplementation
|
|
41
41
|
createdById: str = Field(default_factory=RegScaleModel.get_user_id) # FK to AspNetUsers
|
|
42
42
|
dateCreated: str = Field(default_factory=get_current_datetime) # Required
|
|
43
43
|
lastUpdatedById: str = Field(default_factory=RegScaleModel.get_user_id) # FK to AspNetUsers
|
|
@@ -97,7 +97,8 @@ class Parameter(RegScaleModel):
|
|
|
97
97
|
"""
|
|
98
98
|
response = cls._get_api_handler().get(
|
|
99
99
|
endpoint=cls.get_endpoint("merge").format(
|
|
100
|
-
implementationID=implementation_id,
|
|
100
|
+
implementationID=implementation_id,
|
|
101
|
+
securityControlID=security_control_id,
|
|
101
102
|
)
|
|
102
103
|
)
|
|
103
104
|
if response and response.ok:
|
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
"""Class for a RegScale Ports and Protocols"""
|
|
4
|
-
from
|
|
4
|
+
from enum import Enum
|
|
5
|
+
from typing import Optional, Union
|
|
5
6
|
|
|
6
7
|
from pydantic import ConfigDict
|
|
7
8
|
|
|
8
9
|
from regscale.models.regscale_models.regscale_model import RegScaleModel
|
|
9
10
|
|
|
10
11
|
|
|
12
|
+
class Protocol(str, Enum):
|
|
13
|
+
"""Enumeration for Protocols"""
|
|
14
|
+
|
|
15
|
+
TCP = "TCP"
|
|
16
|
+
UDP = "UDP"
|
|
17
|
+
TCP_UDP = "TCP/UDP"
|
|
18
|
+
OTHER = "Other"
|
|
19
|
+
|
|
20
|
+
|
|
11
21
|
class PortsProtocol(RegScaleModel):
|
|
12
22
|
"""Ports And Protocols"""
|
|
13
23
|
|
|
@@ -27,10 +37,10 @@ class PortsProtocol(RegScaleModel):
|
|
|
27
37
|
endPort: Optional[int] = 0
|
|
28
38
|
parentId: Optional[int] = 0
|
|
29
39
|
parentModule: Optional[str] = ""
|
|
30
|
-
protocol: Optional[str] =
|
|
31
|
-
service: Optional[str] =
|
|
32
|
-
purpose: Optional[str] =
|
|
33
|
-
usedBy: Optional[str] =
|
|
40
|
+
protocol: Optional[Union[str, Protocol]] = Protocol.OTHER
|
|
41
|
+
service: Optional[str] = "N/A"
|
|
42
|
+
purpose: Optional[str] = "N/A"
|
|
43
|
+
usedBy: Optional[str] = "N/A"
|
|
34
44
|
createdById: Optional[str] = None
|
|
35
45
|
lastUpdatedById: Optional[str] = None
|
|
36
46
|
isPublic: Optional[bool] = True
|
|
@@ -86,7 +86,7 @@ class Vulnerability(RegScaleModel):
|
|
|
86
86
|
tenantsId: int = Field(default=0)
|
|
87
87
|
isPublic: bool = Field(default=False)
|
|
88
88
|
dateClosed: Optional[str] = None
|
|
89
|
-
status: Optional[Union[str, IssueStatus]] = Field(default_factory=IssueStatus.Open)
|
|
89
|
+
status: Optional[Union[str, IssueStatus]] = Field(default_factory=lambda: IssueStatus.Open)
|
|
90
90
|
buildVersion: Optional[str] = None
|
|
91
91
|
cvsSv3BaseVector: Optional[str] = None
|
|
92
92
|
cvsSv2BaseVector: Optional[str] = None
|
regscale/utils/graphql_client.py
CHANGED
|
@@ -5,7 +5,7 @@ A module for making paginated GraphQL queries.
|
|
|
5
5
|
import logging
|
|
6
6
|
from typing import List, Dict, Optional, Any
|
|
7
7
|
|
|
8
|
-
from regscale.core.app.utils.app_utils import create_progress_object
|
|
8
|
+
from regscale.core.app.utils.app_utils import create_progress_object, error_and_exit
|
|
9
9
|
|
|
10
10
|
logger = logging.getLogger(__name__)
|
|
11
11
|
|
|
@@ -81,7 +81,6 @@ class PaginatedGraphQLClient:
|
|
|
81
81
|
:param Optional[str] after: The cursor for pagination (optional, defaults to None for the first page).
|
|
82
82
|
:return: A dictionary containing the fetched page of results and pagination information.
|
|
83
83
|
:rtype: Dict[str, Any]
|
|
84
|
-
:raises: Exception if an error occurs during the query execution
|
|
85
84
|
"""
|
|
86
85
|
variables = variables or {}
|
|
87
86
|
variables["after"] = after
|
|
@@ -92,8 +91,7 @@ class PaginatedGraphQLClient:
|
|
|
92
91
|
except Exception as e:
|
|
93
92
|
logger.error(f"An error occurred while executing the query: {str(e)}", exc_info=True)
|
|
94
93
|
logger.error(f"Query: {self.query}")
|
|
95
|
-
|
|
96
|
-
raise
|
|
94
|
+
error_and_exit(f"Variable: {variables}")
|
|
97
95
|
|
|
98
96
|
def fetch_results(self, variables: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
|
99
97
|
"""
|
|
@@ -102,7 +100,6 @@ class PaginatedGraphQLClient:
|
|
|
102
100
|
:param Optional[Dict[str, Any]] variables: Optional query variables.
|
|
103
101
|
:return: A dictionary containing the fetched page of results and pagination information.
|
|
104
102
|
:rtype: Dict[str, Any]
|
|
105
|
-
:raises: Exception if an error occurs during the query execution
|
|
106
103
|
"""
|
|
107
104
|
try:
|
|
108
105
|
result = self.client.execute(self.query, variable_values=variables)
|
|
@@ -111,4 +108,4 @@ class PaginatedGraphQLClient:
|
|
|
111
108
|
logger.error(f"An error occurred while executing the query: {str(e)}", exc_info=True)
|
|
112
109
|
logger.error(f"Query: {self.query}")
|
|
113
110
|
logger.error(f"Variables: {variables}")
|
|
114
|
-
|
|
111
|
+
error_and_exit(f"Variable: {variables}")
|
|
@@ -102,7 +102,12 @@ def create_threads(process: Callable, args: Tuple, thread_count: int) -> None:
|
|
|
102
102
|
from regscale.core.app.application import Application
|
|
103
103
|
|
|
104
104
|
app = Application()
|
|
105
|
-
max_threads = app.config
|
|
105
|
+
max_threads = app.config.get("maxThreads", 100)
|
|
106
|
+
if not isinstance(max_threads, int):
|
|
107
|
+
try:
|
|
108
|
+
max_threads = int(max_threads)
|
|
109
|
+
except (ValueError, TypeError):
|
|
110
|
+
max_threads = 100
|
|
106
111
|
if threads := min(thread_count, max_threads):
|
|
107
112
|
# start the threads with the number of threads allowed
|
|
108
113
|
with ThreadPoolExecutor(max_workers=threads) as executor:
|
|
@@ -126,6 +131,11 @@ def thread_assignment(thread: int, total_items: int) -> list:
|
|
|
126
131
|
|
|
127
132
|
app = Application()
|
|
128
133
|
# set max threads
|
|
129
|
-
max_threads = app.config
|
|
134
|
+
max_threads = app.config.get("maxThreads", 100)
|
|
135
|
+
if not isinstance(max_threads, int):
|
|
136
|
+
try:
|
|
137
|
+
max_threads = int(max_threads)
|
|
138
|
+
except (ValueError, TypeError):
|
|
139
|
+
max_threads = 100
|
|
130
140
|
|
|
131
141
|
return [x for x in range(total_items) if x % max_threads == thread]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: regscale-cli
|
|
3
|
-
Version: 6.20.
|
|
3
|
+
Version: 6.20.9.0
|
|
4
4
|
Summary: Command Line Interface (CLI) for bulk processing/loading data into RegScale
|
|
5
5
|
Home-page: https://github.com/RegScale/regscale-cli
|
|
6
6
|
Author: Travis Howerton
|
|
@@ -51,7 +51,7 @@ Requires-Dist: pathlib ~=1.0.1
|
|
|
51
51
|
Requires-Dist: pdfplumber ==0.7.6
|
|
52
52
|
Requires-Dist: pre-commit
|
|
53
53
|
Requires-Dist: psutil ~=6.1.0
|
|
54
|
-
Requires-Dist: pyTenable
|
|
54
|
+
Requires-Dist: pyTenable >=1.6.3
|
|
55
55
|
Requires-Dist: pydantic ~=2.11.0
|
|
56
56
|
Requires-Dist: pypandoc
|
|
57
57
|
Requires-Dist: pypandoc-binary
|
|
@@ -102,7 +102,7 @@ Requires-Dist: google-cloud-asset ~=3.22 ; extra == 'airflow'
|
|
|
102
102
|
Requires-Dist: google-cloud-securitycenter ~=1.25 ; extra == 'airflow'
|
|
103
103
|
Requires-Dist: gql ~=3.5.0 ; extra == 'airflow'
|
|
104
104
|
Requires-Dist: greenlet >=3.0.3 ; extra == 'airflow'
|
|
105
|
-
Requires-Dist: importlib-metadata
|
|
105
|
+
Requires-Dist: importlib-metadata >=6.5 ; extra == 'airflow'
|
|
106
106
|
Requires-Dist: inflect ; extra == 'airflow'
|
|
107
107
|
Requires-Dist: jinja2 >=3.1.5 ; extra == 'airflow'
|
|
108
108
|
Requires-Dist: jira ==3.8.0 ; extra == 'airflow'
|
|
@@ -132,7 +132,7 @@ Requires-Dist: pre-commit ; extra == 'airflow'
|
|
|
132
132
|
Requires-Dist: protobuf >=4.25.8 ; extra == 'airflow'
|
|
133
133
|
Requires-Dist: psutil ~=6.1.0 ; extra == 'airflow'
|
|
134
134
|
Requires-Dist: psycopg2-binary >=2.9.0 ; extra == 'airflow'
|
|
135
|
-
Requires-Dist: pyTenable ; extra == 'airflow'
|
|
135
|
+
Requires-Dist: pyTenable >=1.6.3 ; extra == 'airflow'
|
|
136
136
|
Requires-Dist: pydantic ~=2.11.0 ; extra == 'airflow'
|
|
137
137
|
Requires-Dist: pypandoc ; extra == 'airflow'
|
|
138
138
|
Requires-Dist: pypandoc-binary ; extra == 'airflow'
|
|
@@ -186,7 +186,7 @@ Requires-Dist: google-cloud-asset ~=3.22 ; extra == 'airflow-azure'
|
|
|
186
186
|
Requires-Dist: google-cloud-securitycenter ~=1.25 ; extra == 'airflow-azure'
|
|
187
187
|
Requires-Dist: gql ~=3.5.0 ; extra == 'airflow-azure'
|
|
188
188
|
Requires-Dist: greenlet >=3.0.3 ; extra == 'airflow-azure'
|
|
189
|
-
Requires-Dist: importlib-metadata
|
|
189
|
+
Requires-Dist: importlib-metadata >=6.5 ; extra == 'airflow-azure'
|
|
190
190
|
Requires-Dist: inflect ; extra == 'airflow-azure'
|
|
191
191
|
Requires-Dist: jinja2 >=3.1.5 ; extra == 'airflow-azure'
|
|
192
192
|
Requires-Dist: jira ==3.8.0 ; extra == 'airflow-azure'
|
|
@@ -217,7 +217,7 @@ Requires-Dist: pre-commit ; extra == 'airflow-azure'
|
|
|
217
217
|
Requires-Dist: protobuf >=4.25.8 ; extra == 'airflow-azure'
|
|
218
218
|
Requires-Dist: psutil ~=6.1.0 ; extra == 'airflow-azure'
|
|
219
219
|
Requires-Dist: psycopg2-binary >=2.9.0 ; extra == 'airflow-azure'
|
|
220
|
-
Requires-Dist: pyTenable ; extra == 'airflow-azure'
|
|
220
|
+
Requires-Dist: pyTenable >=1.6.3 ; extra == 'airflow-azure'
|
|
221
221
|
Requires-Dist: pydantic ~=2.11.0 ; extra == 'airflow-azure'
|
|
222
222
|
Requires-Dist: pypandoc ; extra == 'airflow-azure'
|
|
223
223
|
Requires-Dist: pypandoc-binary ; extra == 'airflow-azure'
|
|
@@ -270,7 +270,7 @@ Requires-Dist: google-cloud-asset ~=3.22 ; extra == 'airflow-sqlserver'
|
|
|
270
270
|
Requires-Dist: google-cloud-securitycenter ~=1.25 ; extra == 'airflow-sqlserver'
|
|
271
271
|
Requires-Dist: gql ~=3.5.0 ; extra == 'airflow-sqlserver'
|
|
272
272
|
Requires-Dist: greenlet >=3.0.3 ; extra == 'airflow-sqlserver'
|
|
273
|
-
Requires-Dist: importlib-metadata
|
|
273
|
+
Requires-Dist: importlib-metadata >=6.5 ; extra == 'airflow-sqlserver'
|
|
274
274
|
Requires-Dist: inflect ; extra == 'airflow-sqlserver'
|
|
275
275
|
Requires-Dist: jinja2 >=3.1.5 ; extra == 'airflow-sqlserver'
|
|
276
276
|
Requires-Dist: jira ==3.8.0 ; extra == 'airflow-sqlserver'
|
|
@@ -300,7 +300,7 @@ Requires-Dist: pre-commit ; extra == 'airflow-sqlserver'
|
|
|
300
300
|
Requires-Dist: protobuf >=4.25.8 ; extra == 'airflow-sqlserver'
|
|
301
301
|
Requires-Dist: psutil ~=6.1.0 ; extra == 'airflow-sqlserver'
|
|
302
302
|
Requires-Dist: psycopg2-binary >=2.9.0 ; extra == 'airflow-sqlserver'
|
|
303
|
-
Requires-Dist: pyTenable ; extra == 'airflow-sqlserver'
|
|
303
|
+
Requires-Dist: pyTenable >=1.6.3 ; extra == 'airflow-sqlserver'
|
|
304
304
|
Requires-Dist: pydantic ~=2.11.0 ; extra == 'airflow-sqlserver'
|
|
305
305
|
Requires-Dist: pymssql ; extra == 'airflow-sqlserver'
|
|
306
306
|
Requires-Dist: pyodbc ; extra == 'airflow-sqlserver'
|
|
@@ -360,7 +360,7 @@ Requires-Dist: google-cloud-asset ~=3.22 ; extra == 'all'
|
|
|
360
360
|
Requires-Dist: google-cloud-securitycenter ~=1.25 ; extra == 'all'
|
|
361
361
|
Requires-Dist: gql ~=3.5.0 ; extra == 'all'
|
|
362
362
|
Requires-Dist: greenlet >=3.0.3 ; extra == 'all'
|
|
363
|
-
Requires-Dist: importlib-metadata
|
|
363
|
+
Requires-Dist: importlib-metadata >=6.5 ; extra == 'all'
|
|
364
364
|
Requires-Dist: importlib-resources ; extra == 'all'
|
|
365
365
|
Requires-Dist: inflect ; extra == 'all'
|
|
366
366
|
Requires-Dist: jinja2 ; extra == 'all'
|
|
@@ -392,7 +392,7 @@ Requires-Dist: pre-commit ; extra == 'all'
|
|
|
392
392
|
Requires-Dist: protobuf >=4.25.8 ; extra == 'all'
|
|
393
393
|
Requires-Dist: psutil ~=6.1.0 ; extra == 'all'
|
|
394
394
|
Requires-Dist: psycopg2-binary >=2.9.0 ; extra == 'all'
|
|
395
|
-
Requires-Dist: pyTenable ; extra == 'all'
|
|
395
|
+
Requires-Dist: pyTenable >=1.6.3 ; extra == 'all'
|
|
396
396
|
Requires-Dist: pydantic ~=2.11.0 ; extra == 'all'
|
|
397
397
|
Requires-Dist: pypandoc ; extra == 'all'
|
|
398
398
|
Requires-Dist: pypandoc-binary ; extra == 'all'
|
|
@@ -455,7 +455,7 @@ Requires-Dist: pathlib ~=1.0.1 ; extra == 'ansible'
|
|
|
455
455
|
Requires-Dist: pdfplumber ==0.7.6 ; extra == 'ansible'
|
|
456
456
|
Requires-Dist: pre-commit ; extra == 'ansible'
|
|
457
457
|
Requires-Dist: psutil ~=6.1.0 ; extra == 'ansible'
|
|
458
|
-
Requires-Dist: pyTenable ; extra == 'ansible'
|
|
458
|
+
Requires-Dist: pyTenable >=1.6.3 ; extra == 'ansible'
|
|
459
459
|
Requires-Dist: pydantic ~=2.11.0 ; extra == 'ansible'
|
|
460
460
|
Requires-Dist: pypandoc ; extra == 'ansible'
|
|
461
461
|
Requires-Dist: pypandoc-binary ; extra == 'ansible'
|
|
@@ -526,7 +526,7 @@ Requires-Dist: pdfplumber ==0.7.6 ; extra == 'dev'
|
|
|
526
526
|
Requires-Dist: pipenv ; extra == 'dev'
|
|
527
527
|
Requires-Dist: pre-commit ; extra == 'dev'
|
|
528
528
|
Requires-Dist: psutil ~=6.1.0 ; extra == 'dev'
|
|
529
|
-
Requires-Dist: pyTenable ; extra == 'dev'
|
|
529
|
+
Requires-Dist: pyTenable >=1.6.3 ; extra == 'dev'
|
|
530
530
|
Requires-Dist: pydantic ~=2.11.0 ; extra == 'dev'
|
|
531
531
|
Requires-Dist: pylint ; extra == 'dev'
|
|
532
532
|
Requires-Dist: pypandoc ; extra == 'dev'
|
|
@@ -607,7 +607,7 @@ Requires-Dist: pathlib ~=1.0.1 ; extra == 'server'
|
|
|
607
607
|
Requires-Dist: pdfplumber ==0.7.6 ; extra == 'server'
|
|
608
608
|
Requires-Dist: pre-commit ; extra == 'server'
|
|
609
609
|
Requires-Dist: psutil ~=6.1.0 ; extra == 'server'
|
|
610
|
-
Requires-Dist: pyTenable ; extra == 'server'
|
|
610
|
+
Requires-Dist: pyTenable >=1.6.3 ; extra == 'server'
|
|
611
611
|
Requires-Dist: pydantic ~=2.11.0 ; extra == 'server'
|
|
612
612
|
Requires-Dist: pypandoc ; extra == 'server'
|
|
613
613
|
Requires-Dist: pypandoc-binary ; extra == 'server'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
regscale/__init__.py,sha256=ZygAIkX6Nbjag1czWdQa-yP-GM1mBE_9ss21Xh__JFc,34
|
|
2
|
-
regscale/_version.py,sha256=
|
|
2
|
+
regscale/_version.py,sha256=gKT5YQ9lUTUBh7pTS4c88lS7iYu1716siI0f5SPm0uc,1198
|
|
3
3
|
regscale/regscale.py,sha256=xcxnTwEwWgfO3Fnp0LVo32SZCJzAswq3WDZgm21nHnI,30914
|
|
4
4
|
regscale/airflow/__init__.py,sha256=yMwN0Bz4JbM0nl5qY_hPegxo_O2ilhTOL9PY5Njhn-s,270
|
|
5
5
|
regscale/airflow/click_dags.py,sha256=H3SUR5jkvInNMv1gu-VG-Ja_H-kH145CpQYNalWNAbE,4520
|
|
@@ -35,8 +35,8 @@ regscale/core/decorators.py,sha256=YuX9VCbCJh76qlc_6ungu0nD4VT1VsV2spXH_bsDTfY,8
|
|
|
35
35
|
regscale/core/lazy_group.py,sha256=S2-nA5tzm47A929NOTqGkzrzKuZQDlq2OAPbNnG1W1Q,2046
|
|
36
36
|
regscale/core/login.py,sha256=-8vy1HVAtv1iARnZh6uzYtwmx8VFYPwLYR0QAf1ttCk,2714
|
|
37
37
|
regscale/core/app/__init__.py,sha256=nGcCN1vWBAnZzoccIlt0jwWQdegCOrBWOB7LPhQkQSs,96
|
|
38
|
-
regscale/core/app/api.py,sha256=
|
|
39
|
-
regscale/core/app/application.py,sha256=
|
|
38
|
+
regscale/core/app/api.py,sha256=CSyUCV6haBAQ9IyE1FViJcAfTcoS5GJRaULwnRoAV9U,23499
|
|
39
|
+
regscale/core/app/application.py,sha256=6EHkTkx9u9Y1CBz6HYJMGbui4S2Nq8kqIngZfnWkZfg,31407
|
|
40
40
|
regscale/core/app/logz.py,sha256=8AdBKmquv45JGi5fCMc38JqQg6-FpUONGmqfd5EGwrI,2583
|
|
41
41
|
regscale/core/app/internal/__init__.py,sha256=rod4nmE7rrYDdbuYF4mCWz49TK_2r-v4tWy1UHW63r0,4808
|
|
42
42
|
regscale/core/app/internal/admin_actions.py,sha256=hOdma7QGwFblmxEj9UTjiWWmZGUS5_ZFtxL2qZdhf-Q,7443
|
|
@@ -94,7 +94,7 @@ regscale/core/static/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
94
94
|
regscale/core/static/regex.py,sha256=KLg-do2oPuUD6bQG9usqqSy5sxqlSEAEuUUbGVkZ6eU,384
|
|
95
95
|
regscale/core/utils/__init__.py,sha256=Eyvc210t-KRqvTcV5DNWRjKO99CdWy_dC57wfggFWcw,3876
|
|
96
96
|
regscale/core/utils/click_utils.py,sha256=y6vAbaPoT0Abb8siS1tvJxJQTm4sbWQTeq5nTDIgBtI,375
|
|
97
|
-
regscale/core/utils/date.py,sha256=
|
|
97
|
+
regscale/core/utils/date.py,sha256=yGte1ttWRwKRKfU0LT5yPNfr62xn5YnDo4zMgAhua7k,10114
|
|
98
98
|
regscale/core/utils/graphql.py,sha256=oXGBcAuDa0uasMnD4CokIzzKKa-IgExdKXLwtaK2_tA,8386
|
|
99
99
|
regscale/core/utils/urls.py,sha256=ZcU9OJqDmVQXgu6BrLESIp2KMkkUuzTZZ_wHsZMzfA4,687
|
|
100
100
|
regscale/dev/__init__.py,sha256=wVP59B1iurp36ul8pD_CjmunJLHOdKWWodz1r5loNvw,190
|
|
@@ -113,35 +113,35 @@ regscale/integrations/api_paginator.py,sha256=73rjaNM9mGv8evHAeoObXEjZPg-bJuGPo6
|
|
|
113
113
|
regscale/integrations/api_paginator_example.py,sha256=lEuYI-xEGcjnXuIzbCobCP0YRuukLF0s8S3d382SAH4,12119
|
|
114
114
|
regscale/integrations/integration_override.py,sha256=PH7t_bf-RCe_it3FJ61tlKX5UghqHuSEQNJWDfCamAg,5480
|
|
115
115
|
regscale/integrations/jsonl_scanner_integration.py,sha256=l8nq_T3rE1XX-6HxrNHm3xzxCNWbIjxQvGMdtZWs7KQ,57003
|
|
116
|
-
regscale/integrations/scanner_integration.py,sha256=
|
|
116
|
+
regscale/integrations/scanner_integration.py,sha256=sojtfRJShtUcvZtRncq6mP7x6vI7yw_Yxdy9Sq1B5y4,135113
|
|
117
117
|
regscale/integrations/variables.py,sha256=AyaG286U-ek2uQ4qeYBAG3eh_QnlBlth1PKZI5Je5sc,2212
|
|
118
118
|
regscale/integrations/commercial/__init__.py,sha256=sVbzBnLbKRhnAmRsIw8kRvfbyJojPfVqzH3OlgoxvqM,13927
|
|
119
119
|
regscale/integrations/commercial/ad.py,sha256=YXSmK8vRf6yi2GnREGa5GrE6GelhFrLj44SY8AO1pK0,15509
|
|
120
120
|
regscale/integrations/commercial/burp.py,sha256=3BLNKLfwL1x7jfhd8MJD6hdHEpj58pOEtrtCkn2hcWA,3344
|
|
121
121
|
regscale/integrations/commercial/cpe.py,sha256=eXZeDXicnp1yYgKuyKcthQUYxXi2Pgc__UD8lUqr5H0,4924
|
|
122
122
|
regscale/integrations/commercial/crowdstrike.py,sha256=6x7_GlYDRCZvPZwqgrDT5KMnXCa6H4RKO-FNkiYxHgU,40194
|
|
123
|
-
regscale/integrations/commercial/defender.py,sha256=
|
|
123
|
+
regscale/integrations/commercial/defender.py,sha256=EptT5e5vBZFJc93douDenT-dJRUGWdRwPvYsvb9Aik4,66033
|
|
124
124
|
regscale/integrations/commercial/dependabot.py,sha256=V4VbHbwrxHfe7eCilJ7U_MBeIO6X3wetGfIo2DJYe_c,7793
|
|
125
|
-
regscale/integrations/commercial/ecr.py,sha256=
|
|
125
|
+
regscale/integrations/commercial/ecr.py,sha256=oQafB_Lx4CbGDLb6fqNtY1oAWci6-XWsm39URNbqgrk,2687
|
|
126
126
|
regscale/integrations/commercial/gitlab.py,sha256=dzfqJQ68QI1ee_BriNMyPuXLkzOhc2vR1hhVfq2j13Y,12496
|
|
127
|
-
regscale/integrations/commercial/ibm.py,sha256=
|
|
127
|
+
regscale/integrations/commercial/ibm.py,sha256=vFloNxSrM2BzoicMSiInYN5dF10BbYHJpJDyyMqZu2I,2766
|
|
128
128
|
regscale/integrations/commercial/jira.py,sha256=QRYuWfD_3dj87ImZr-eRwOGWrE7-gC7jvvd94F2YQdE,46322
|
|
129
|
-
regscale/integrations/commercial/nexpose.py,sha256=
|
|
129
|
+
regscale/integrations/commercial/nexpose.py,sha256=fx6O__y7eY0GaAbX8p24_V1VTFfOM7oia4r3aa_qVnE,2847
|
|
130
130
|
regscale/integrations/commercial/okta.py,sha256=VNwE848xiBxkha4DibkhLJN-fi0T8rLMd30PPAmRjpk,30837
|
|
131
|
-
regscale/integrations/commercial/prisma.py,sha256=
|
|
131
|
+
regscale/integrations/commercial/prisma.py,sha256=oYS31HlI7GiShUy0r9Luv57Ex3cGqdJcIoVMrwDAC2c,2835
|
|
132
132
|
regscale/integrations/commercial/salesforce.py,sha256=vvXWlXxhJMQj45tU7wz7o4YbkhqjPlaMx_6SWYkI3Bs,36671
|
|
133
133
|
regscale/integrations/commercial/servicenow.py,sha256=nUVZwt8-G1rQhwACX6i2BKIAjkMtd46uskBznxgOOsA,64014
|
|
134
|
-
regscale/integrations/commercial/snyk.py,sha256=
|
|
134
|
+
regscale/integrations/commercial/snyk.py,sha256=CriDWqzZAT9OHYEUNnxBrluzW1C-S4XyoyW2kS4lv4s,3222
|
|
135
135
|
regscale/integrations/commercial/sonarcloud.py,sha256=_E4DuKRZUqXNNPsxS3UJ3q6llVu-5sfw5pTHxe_UMk0,9821
|
|
136
136
|
regscale/integrations/commercial/sqlserver.py,sha256=PcDLmsZ9xU5NlFpwPZyMhhxCgX4JK2Ztn2S6kCG4mws,11614
|
|
137
|
-
regscale/integrations/commercial/veracode.py,sha256=
|
|
138
|
-
regscale/integrations/commercial/xray.py,sha256=
|
|
137
|
+
regscale/integrations/commercial/veracode.py,sha256=sKeGXvjqP8LfFP56xavAyx5CxfKxpJIEw-PTxrHJ8bc,3374
|
|
138
|
+
regscale/integrations/commercial/xray.py,sha256=rsmlGqj4N7hzt6rW5UIKOBZD2maDVwXxOXiYKlI6F8c,2728
|
|
139
139
|
regscale/integrations/commercial/amazon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
140
140
|
regscale/integrations/commercial/amazon/common.py,sha256=qX0GkUzl0PSwOPTtEH94Qgixi8D5s_Xbo2yMmQhcWnY,3343
|
|
141
141
|
regscale/integrations/commercial/aqua/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
|
-
regscale/integrations/commercial/aqua/aqua.py,sha256=
|
|
142
|
+
regscale/integrations/commercial/aqua/aqua.py,sha256=bdwqyir9ztGRwqZlWBQIHjtBEo2utSy5HJoraAx823I,2656
|
|
143
143
|
regscale/integrations/commercial/aws/__init__.py,sha256=Pii3CMGvIwZnTSenuvDvuybWXBtIRdGyvF02sykzg1A,203
|
|
144
|
-
regscale/integrations/commercial/aws/cli.py,sha256=
|
|
144
|
+
regscale/integrations/commercial/aws/cli.py,sha256=B_Ol7p5PmaNqQK4Y5GVyONZZBbtadTSJAq70YRD6hBs,9227
|
|
145
145
|
regscale/integrations/commercial/aws/scanner.py,sha256=E3antyGd1HG0cMAM6hurKeij6li7mCstKFQTl3XZ_z4,33600
|
|
146
146
|
regscale/integrations/commercial/aws/inventory/__init__.py,sha256=nBWBRs_lTbp3tfCcnmN855qQpnXtwyJ5miTXlD7Uhcs,4302
|
|
147
147
|
regscale/integrations/commercial/aws/inventory/base.py,sha256=KL1Ntz0h0WGDu84LQf3y92uLl9a0sl4yIFi6-ZIFAMI,2068
|
|
@@ -183,10 +183,10 @@ regscale/integrations/commercial/nessus/scanner.py,sha256=xz-OBd98ZbKKWnuxsP7oTq
|
|
|
183
183
|
regscale/integrations/commercial/opentext/__init__.py,sha256=zqCPb_4rYRZZPXfeKn4AoZyyYyQ6MU4C0lCs2ysOBhc,251
|
|
184
184
|
regscale/integrations/commercial/opentext/commands.py,sha256=TTClFg16EzlXQOjdQQ6AdWuVuh7H2zO0V9rXd73-ni0,2572
|
|
185
185
|
regscale/integrations/commercial/opentext/scanner.py,sha256=QAb9FPiYeQCEnqL3dnFBFe64LydwLaR8HWpYmabgcbE,22581
|
|
186
|
-
regscale/integrations/commercial/qualys/__init__.py,sha256=
|
|
187
|
-
regscale/integrations/commercial/qualys/containers.py,sha256=
|
|
186
|
+
regscale/integrations/commercial/qualys/__init__.py,sha256=wavc61vUdLTGyVmj3JKqv6dRs6HbZAVo2x-tc0U8PtQ,92060
|
|
187
|
+
regscale/integrations/commercial/qualys/containers.py,sha256=UBLx37xU-pam544xnwr_nzFIvokDmLiB7mF9ZoMwU3c,12047
|
|
188
188
|
regscale/integrations/commercial/qualys/qualys_error_handler.py,sha256=2nlxeNLQMOpkiTij39VTsZg-2AFQsM6-rwlBW2pVpKY,18594
|
|
189
|
-
regscale/integrations/commercial/qualys/scanner.py,sha256=
|
|
189
|
+
regscale/integrations/commercial/qualys/scanner.py,sha256=X-TvrDigfvSdJ-3GsDivlrEuVzZZwTQEF-PLSMsCvws,56554
|
|
190
190
|
regscale/integrations/commercial/qualys/variables.py,sha256=TPoIW5_yNmU6c0AlLOpHQdxp6OrH8jUmMJikqT7YYz8,962
|
|
191
191
|
regscale/integrations/commercial/sap/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
192
192
|
regscale/integrations/commercial/sap/click.py,sha256=pWgjUOA_4WKkDUWcE8z4EshnJUdrTl15NKUfKpKyqzE,522
|
|
@@ -211,7 +211,7 @@ regscale/integrations/commercial/stigv2/stig_integration.py,sha256=-UlfL0BBI3jFG
|
|
|
211
211
|
regscale/integrations/commercial/synqly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
212
212
|
regscale/integrations/commercial/synqly/assets.py,sha256=wAyoMaR5MizBifnKUnNrx6ZlnmneP07LEBjJuf1POZs,3329
|
|
213
213
|
regscale/integrations/commercial/synqly/edr.py,sha256=IvObVzz5Y2a8iNjCP9dTfKUEv2ZAboCzcFqxI00Y6Do,2978
|
|
214
|
-
regscale/integrations/commercial/synqly/ticketing.py,sha256=
|
|
214
|
+
regscale/integrations/commercial/synqly/ticketing.py,sha256=RoteG9YUvnArlB5Kvmysc3hPTbzVrvuI_f4CQQSfAy8,6890
|
|
215
215
|
regscale/integrations/commercial/synqly/vulnerabilities.py,sha256=bLYECK4G3K-j_gXrfEwlse6Rc1ao4TTFezBYxW11CXM,7689
|
|
216
216
|
regscale/integrations/commercial/tenablev2/__init__.py,sha256=UpSY_oww83kz9c7amdbptJKwDB1gAOBQDS-Q9WFp588,295
|
|
217
217
|
regscale/integrations/commercial/tenablev2/authenticate.py,sha256=VPTmxaVCaah2gJYNeU9P1KoQ734ohGQ-wcVy6JfqDTE,1247
|
|
@@ -243,11 +243,11 @@ regscale/integrations/integration/integration.py,sha256=pr_fbqBieYbqp3PdBjuqKuZC
|
|
|
243
243
|
regscale/integrations/integration/inventory.py,sha256=gHL1a6VSV3zf4DTmksEy8qXNrqhIun8TwLxhRpuEMqY,341
|
|
244
244
|
regscale/integrations/integration/issue.py,sha256=HaCF_5F_U_E5ecYlMgOZiM-yhXnt7OLj47OAJkf9X3g,3507
|
|
245
245
|
regscale/integrations/public/__init__.py,sha256=_TpTkqySBuI7GqMiRHtcQS-g9rAG5fcdd8EpCDWmrZ0,2949
|
|
246
|
-
regscale/integrations/public/cisa.py,sha256=
|
|
246
|
+
regscale/integrations/public/cisa.py,sha256=EE2rN4GWWEk5VLt4iMVwGMYB6yYPxe6KyW_tLs8dDmA,21870
|
|
247
247
|
regscale/integrations/public/criticality_updater.py,sha256=bekadBBJkym5Dd9JZFNQmY3I0e1xgBvxkyVwgCNOKus,2806
|
|
248
248
|
regscale/integrations/public/emass.py,sha256=culHHuXUlVYkB6DcVcnUvpBzU1eRyyVGgsJ3KqC8HOw,13672
|
|
249
249
|
regscale/integrations/public/emass_slcm_import.py,sha256=9nvS2XWjSr65Y120tK_Dxd4uy7Tv_RUKpl__GKZmrWE,23974
|
|
250
|
-
regscale/integrations/public/nist_catalog.py,sha256=
|
|
250
|
+
regscale/integrations/public/nist_catalog.py,sha256=lHevdsSBTwwVzynJl_ckCyQ4cFOYc2XaxG0TpzYfphM,10272
|
|
251
251
|
regscale/integrations/public/oscal.py,sha256=GcPqRQqCmijCp7TmjBG4303YcJ7U4hfu6KiFSb9QC7Y,72675
|
|
252
252
|
regscale/integrations/public/otx.py,sha256=i6mukISHLYmFJkxkkxhTkqtgcmXioZ00xLQ9YMg2Yzo,5401
|
|
253
253
|
regscale/integrations/public/fedramp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -311,7 +311,7 @@ regscale/models/integration_models/azure_alerts.py,sha256=2etrpvcxa7jVQrc98bJlVG
|
|
|
311
311
|
regscale/models/integration_models/base64.py,sha256=sxV6O5qY1_TstJENX5jBPsSdQwmA83-NNhgJFunXiZE,570
|
|
312
312
|
regscale/models/integration_models/burp.py,sha256=FBEBkH3U0Q8vq71FFoWnvgLRF5Hkr9GYmQFmNNHFrVk,16932
|
|
313
313
|
regscale/models/integration_models/burp_models.py,sha256=UytDTAcCaxyu-knFkm_mEUH6UmWK3OTXKSC9Sc6OjVs,3669
|
|
314
|
-
regscale/models/integration_models/cisa_kev_data.json,sha256=
|
|
314
|
+
regscale/models/integration_models/cisa_kev_data.json,sha256=sgYHr73aP2OTKC55f05J-HtI9bZPEkrp3GcFn8xyM4o,1243169
|
|
315
315
|
regscale/models/integration_models/defender_data.py,sha256=jsAcjKxiGmumGerj7xSWkFd6r__YpuKDnYX5o7xHDiE,2844
|
|
316
316
|
regscale/models/integration_models/defenderimport.py,sha256=OFwEH0Xu-HFLIZJZ8hP60Ov3lS8RR7KHEsw4wI8QnoE,5766
|
|
317
317
|
regscale/models/integration_models/drf.py,sha256=Aq7AdLa_CH97NrnR-CxaFI22JjVN9uCxVN7Z-BBUaNU,18896
|
|
@@ -323,7 +323,7 @@ regscale/models/integration_models/nexpose.py,sha256=mfaVZP9GVbCwdqEYGrGZ0pwSdDX
|
|
|
323
323
|
regscale/models/integration_models/prisma.py,sha256=83LeS96rUgaZvPzl6ei_FWjTFBojsyqzMWoSJ1CnsJ0,8280
|
|
324
324
|
regscale/models/integration_models/qualys.py,sha256=YrMKA4i03EQ63LyFdbIsFfPMCRJC9ZWj__gv8Nb3xfo,27913
|
|
325
325
|
regscale/models/integration_models/qualys_scanner.py,sha256=6rAeCR9qI10MM_LWtZtOhWaT6mERWtII2IxxyvQhfKw,6453
|
|
326
|
-
regscale/models/integration_models/send_reminders.py,sha256=
|
|
326
|
+
regscale/models/integration_models/send_reminders.py,sha256=h9zOX5Hb7e4K7qFmG-FixuNK1cHF0OF4HQl2W9fiIqE,26358
|
|
327
327
|
regscale/models/integration_models/snyk.py,sha256=Wk04Dbz67s2uniWkfllRHhlEBrRYiZq5CRwkOpDyHls,11524
|
|
328
328
|
regscale/models/integration_models/trivy_import.py,sha256=R6aZXUaNKf5Gdo1kNxIKM-HMW95XDWVCG_gMrzDYNuQ,9210
|
|
329
329
|
regscale/models/integration_models/veracode.py,sha256=qcNllrTstGshpTaWDFm0Z-XYbP-mSVMWWiGoq5karO0,10431
|
|
@@ -337,11 +337,11 @@ regscale/models/integration_models/axonius_models/connectors/assets.py,sha256=6m
|
|
|
337
337
|
regscale/models/integration_models/ecr_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
338
338
|
regscale/models/integration_models/ecr_models/data.py,sha256=l28DCidXar1JygYBQZL9MYenQA9N-Cx3Skf51IOjZcw,1017
|
|
339
339
|
regscale/models/integration_models/ecr_models/ecr.py,sha256=-s_5mj4BVKImrvfMaOJLT4qc5EqTCbv8qM4uJiH_nKc,9502
|
|
340
|
-
regscale/models/integration_models/flat_file_importer/__init__.py,sha256=
|
|
340
|
+
regscale/models/integration_models/flat_file_importer/__init__.py,sha256=Z-Gzk6v8h_JzHHuwlUr3R_vrBipLscfM0g_f8yjSVvw,40313
|
|
341
341
|
regscale/models/integration_models/sbom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
342
342
|
regscale/models/integration_models/sbom/cyclone_dx.py,sha256=0pFR0BWBrF5c8_cC_8mj2MXvNOMHOdHbBYXvTVfFAh8,4058
|
|
343
343
|
regscale/models/integration_models/synqly_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
344
|
-
regscale/models/integration_models/synqly_models/capabilities.json,sha256=
|
|
344
|
+
regscale/models/integration_models/synqly_models/capabilities.json,sha256=kpHT6EWkFvjSmCOj1UErmPPIPuLhh-AjUjtvAewX36s,356796
|
|
345
345
|
regscale/models/integration_models/synqly_models/connector_types.py,sha256=8nxptkTexpskySnmL0obNAff_iu_fx6tJ7i1-4hJvao,461
|
|
346
346
|
regscale/models/integration_models/synqly_models/ocsf_mapper.py,sha256=e2kTOhWSNRnzbgMchMx-7c21pCgSv2DqWnxvajKEKJM,16960
|
|
347
347
|
regscale/models/integration_models/synqly_models/param.py,sha256=Xt5Zm6lC_VkLj7LF2qXo72TJZHysqttsp5ai0NCf1po,2643
|
|
@@ -372,7 +372,7 @@ regscale/models/regscale_models/compliance_settings.py,sha256=e0Ghjozt8iCgzmCPfY
|
|
|
372
372
|
regscale/models/regscale_models/component.py,sha256=zURPe-unWeHpkx6OoVq3AxdOYp7Ci14xXMy-AjYmXik,14149
|
|
373
373
|
regscale/models/regscale_models/component_mapping.py,sha256=g0cbbW4X49SDdlB_YtKMrP4eiK9OkrJqiut0ucdyVDA,2162
|
|
374
374
|
regscale/models/regscale_models/control.py,sha256=mO46F1IfiXnLSb3YhylaS3SyjtT51s-r8b3hjix9Gbc,1072
|
|
375
|
-
regscale/models/regscale_models/control_implementation.py,sha256=
|
|
375
|
+
regscale/models/regscale_models/control_implementation.py,sha256=mPpoCPxgCK7oYW-wKMfPzBgYeP9qqY9u71jRdSu44gY,50157
|
|
376
376
|
regscale/models/regscale_models/control_objective.py,sha256=qGh8OtATjjc4JS-3bC1AX6TbgtRtz-I0dckbuZ2RzVo,9496
|
|
377
377
|
regscale/models/regscale_models/control_parameter.py,sha256=5VVkbVZTb2Hzy_WiybU2JtrvhQp8DLSWxRcbSKxktiI,3499
|
|
378
378
|
regscale/models/regscale_models/control_test.py,sha256=FG-fLS9JJf8__a84W2LtBXtEjzOH9iq2EO949vBx3eY,949
|
|
@@ -397,7 +397,7 @@ regscale/models/regscale_models/implementation_role.py,sha256=ZjJOhjM3dVlulsGx3l
|
|
|
397
397
|
regscale/models/regscale_models/incident.py,sha256=jsS4MfigzjwFphvdIrBk62GfvbceQ8VL-AhfQSQM460,6028
|
|
398
398
|
regscale/models/regscale_models/inherited_control.py,sha256=RuQJgVyZgfoIrUG_vvwQYHECb3wsFjDH-zPj-bIFBNU,2007
|
|
399
399
|
regscale/models/regscale_models/interconnection.py,sha256=B8Y4I6KnN-T_gid08QM_o50OwGZcFfO8SJFY2uB68Ak,1256
|
|
400
|
-
regscale/models/regscale_models/issue.py,sha256=
|
|
400
|
+
regscale/models/regscale_models/issue.py,sha256=P37yGe-d67tzFN34rbZINNuCz3mK5x7Cf8WDUh5Z1BU,49225
|
|
401
401
|
regscale/models/regscale_models/leveraged_authorization.py,sha256=OUrL8JQV3r7T3ldHlL6Y_ZLv6KuQIC-3eZW5wZ7XFUk,4192
|
|
402
402
|
regscale/models/regscale_models/line_of_inquiry.py,sha256=Uu0lQEhif0W6yTSkJo27GyQGmExSngJvyqGBTr4Q8Fg,1713
|
|
403
403
|
regscale/models/regscale_models/link.py,sha256=lAY4Ig3Menm1EqfcAbVJ7jsCsRO5tWtJIf-9-G9FXT8,6593
|
|
@@ -407,9 +407,9 @@ regscale/models/regscale_models/module.py,sha256=a7lalHmVTQ04ZILnJxuFWdHYDtyusBM
|
|
|
407
407
|
regscale/models/regscale_models/modules.py,sha256=yeva_tct88o2NFt93_zmqUcXZ3LucVbAv5FvQPru3cQ,8551
|
|
408
408
|
regscale/models/regscale_models/objective.py,sha256=aJIpmkZ-NscqV2y8SGB4HYzm615b6mklyHnW9bL2ljk,249
|
|
409
409
|
regscale/models/regscale_models/organization.py,sha256=E3Y5bwtgaIRL4rbKxU3DyfFVYUzP3d-1umG_CIUG3gE,714
|
|
410
|
-
regscale/models/regscale_models/parameter.py,sha256=
|
|
410
|
+
regscale/models/regscale_models/parameter.py,sha256=IEOVGaTUxRVNfwc6vN_y6eN45P5R1C4O4mz3uukiCSA,3915
|
|
411
411
|
regscale/models/regscale_models/policy.py,sha256=IQ-niE1PP8L2OavYfOQQsvSInw1sw371mkJrGFyWZ94,2382
|
|
412
|
-
regscale/models/regscale_models/ports_protocol.py,sha256=
|
|
412
|
+
regscale/models/regscale_models/ports_protocol.py,sha256=RGdXdNTn2C_elWPBZxwu7cs8v24oSgTiTjPnLk_tCiI,2347
|
|
413
413
|
regscale/models/regscale_models/privacy.py,sha256=iADeNOyU7h0XQQQCtWRxxVD1fmYOCzmt8ZSn-LsThZw,2897
|
|
414
414
|
regscale/models/regscale_models/profile.py,sha256=BY2_yhhbDC2UbtGtMSRnRWq5R_ik0rdqmAWY8-1G4bI,2692
|
|
415
415
|
regscale/models/regscale_models/profile_link.py,sha256=Nxs4HgpRMC-ftSztelWqKf5J2x3NnEa3X9D4cAJh054,2213
|
|
@@ -443,7 +443,7 @@ regscale/models/regscale_models/task.py,sha256=le3N2GIUCEJrFnNh0DLU7RAcle4ULr8OP
|
|
|
443
443
|
regscale/models/regscale_models/threat.py,sha256=4TNZcRnTgmlDwBsYu5Pbh9GRd8ZWAtqqr0Xph3uPNAA,7255
|
|
444
444
|
regscale/models/regscale_models/user.py,sha256=wiU2qKwp3aYtmaHEmTtv8BbMEgFb913dHgc2VnmsAkg,7186
|
|
445
445
|
regscale/models/regscale_models/user_group.py,sha256=vzlXHvPNsgJd38H0R3osi46Oj19QO5oPx0qXntQBKWI,1891
|
|
446
|
-
regscale/models/regscale_models/vulnerability.py,sha256=
|
|
446
|
+
regscale/models/regscale_models/vulnerability.py,sha256=CyR1hkt07Inn8U7Ac-DTntgJXeKM3RluldKy1RWTYIA,11050
|
|
447
447
|
regscale/models/regscale_models/vulnerability_mapping.py,sha256=k14azHU7VwryHfXaJdvAMWXs3AqHDr7rnj602bscWQM,6260
|
|
448
448
|
regscale/models/regscale_models/workflow.py,sha256=uMNVVAn5qR8wxjMP5PHbcvMmvPRe1gn1oclVUpbv52s,1873
|
|
449
449
|
regscale/models/regscale_models/workflow_action.py,sha256=zMHrvUkTQJlkCj6Xx6wadozBwsVPpObj5GD81LI2VZc,925
|
|
@@ -460,7 +460,7 @@ regscale/utils/decorators.py,sha256=3QLjZ4_QfUSdJYYMw4nGE7EPdo2P7P3AERZxHHVgXDI,
|
|
|
460
460
|
regscale/utils/dict_utils.py,sha256=2iCUMUZP8urkmpzB3BpnaSMrEQtrT9u4HINLSXGiXyI,2468
|
|
461
461
|
regscale/utils/files.py,sha256=LtOca6DK4yZxBE037fRi1lsJeHmBmXLBkDq_er3Uhmw,2410
|
|
462
462
|
regscale/utils/fxns.py,sha256=dLmxVkeoYXljAs0JbWaehBqZ2BxrdZ9ilH9FGvWRWx4,914
|
|
463
|
-
regscale/utils/graphql_client.py,sha256=
|
|
463
|
+
regscale/utils/graphql_client.py,sha256=IqN7IHSH8bE5w9SVRqib_9sLFDPCMp4hWAdkSS-tDZ8,4484
|
|
464
464
|
regscale/utils/lists.py,sha256=CuxSVJNSFQ5TXtzXh5LQqL4yOZhuCmfcKbeQgjeBjok,459
|
|
465
465
|
regscale/utils/numbers.py,sha256=0LkZvewuKXogk6_oWF90OAoGIuzK1fjWZ4gRCC9_TlQ,301
|
|
466
466
|
regscale/utils/shell.py,sha256=H9Zzwt3zxyzWmfiH3tVrcIoAcEHtF_pXzM5ERd7PAGc,4176
|
|
@@ -468,7 +468,7 @@ regscale/utils/string.py,sha256=pY4eMcXRruCfGRaWKPN5NTWj6bXiKytxmU6XSxK4y6k,4198
|
|
|
468
468
|
regscale/utils/synqly_utils.py,sha256=DjkdAxdUJBOU5YfAJ7pFFNBPSP37Gs9NQS10xduaYmA,6324
|
|
469
469
|
regscale/utils/version.py,sha256=bOH1vlvOEAt1f-fzzFxtZrg3VcnqL5SA4ud1TjZVQGU,4265
|
|
470
470
|
regscale/utils/threading/__init__.py,sha256=AuPiT3EijkUL4BSxtEQw3TrSvFW6oIfQzxtdy5sBCkk,296
|
|
471
|
-
regscale/utils/threading/threadhandler.py,sha256=
|
|
471
|
+
regscale/utils/threading/threadhandler.py,sha256=5lp9US6bKwh372UqrTvvHWIIodCcPIUmpcfGeCwG3VM,5061
|
|
472
472
|
regscale/utils/threading/threadsafe_counter.py,sha256=Dwt-jt4nN-ApMgpxONM7RFll6FU4hMCeZCW54rjDPjs,1037
|
|
473
473
|
regscale/utils/threading/threadsafe_dict.py,sha256=XCVN5DoJsgZj-0tkDYAZb2QTLTZF9wS_ve-XKFJiywg,7656
|
|
474
474
|
regscale/utils/threading/threadsafe_list.py,sha256=-ltEj-MQH0dN0z_5aalptwJw2_EAU6nn4RX32BDrhyI,2274
|
|
@@ -489,15 +489,16 @@ tests/mocks/xml.py,sha256=WYeZRZfyYmOi4TTvF7I53l3gKF4x1DE1dqy08szPkfQ,261
|
|
|
489
489
|
tests/regscale/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
490
490
|
tests/regscale/test_about.py,sha256=32YZC8XJW5QkIYIfwEVGIdIxQNUIbyzn3OzVcX_5X24,635
|
|
491
491
|
tests/regscale/test_authorization.py,sha256=fls5ODCYiu0DdkwXFepO_GM-BP6tRaPmMCZWX6VD2e8,1899
|
|
492
|
-
tests/regscale/test_init.py,sha256=
|
|
492
|
+
tests/regscale/test_init.py,sha256=O_3Dh7s7ObycIZyd0-Y10NCTKdGnrnotcpU6CUB5pno,4180
|
|
493
493
|
tests/regscale/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
494
494
|
tests/regscale/core/test_api.py,sha256=25AsIT-jg8SrlkPeynUwwm4PvTOrHcRO2Ba_omnNLUY,7512
|
|
495
|
-
tests/regscale/core/test_app.py,sha256=
|
|
495
|
+
tests/regscale/core/test_app.py,sha256=naFMgYRXWSHmYghhd8zsRJf1MsZwu0F1DClujmp-gtU,40593
|
|
496
496
|
tests/regscale/core/test_login.py,sha256=Kl7ySS8JU7SzhmupaDexeUH8VOMjtMRJvW8-CimxHqU,1166
|
|
497
497
|
tests/regscale/core/test_logz.py,sha256=Yf6tAthETLlYOEp3hee3ovDw-WnZ_6fTw3e1rjx4xSw,2621
|
|
498
498
|
tests/regscale/core/test_sbom_generator.py,sha256=lgzo1HRbkNIIDZIeKiM2JbbIYQsak0BpU0GlvbrcexM,2935
|
|
499
499
|
tests/regscale/core/test_validation_utils.py,sha256=5GHQfSVEr3f1HzEatI5CyCgGriyc-OPyKbc1YQ9zRjI,5464
|
|
500
500
|
tests/regscale/core/test_version.py,sha256=q8F2ERXxdToXbYxfOcP9f6lkUYaxF4jEmsPUmduMo9U,3216
|
|
501
|
+
tests/regscale/core/test_version_regscale.py,sha256=Amz4RfM6Xm8OnA9F4phAoJdrJMrsgU25b9Q6QxXOLTs,2013
|
|
501
502
|
tests/regscale/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
502
503
|
tests/regscale/integrations/test_api_paginator.py,sha256=42-F8FMkJwkZ1Xlsj7YYVyOb6-rbxwI4F4H6Y4ZI9jA,18973
|
|
503
504
|
tests/regscale/integrations/test_integration_mapping.py,sha256=ffl7opp6_IDxScSOfULy8ASqytYUMAqGA5c3PpAu3u8,1981
|
|
@@ -517,9 +518,9 @@ tests/regscale/models/test_regscale_model.py,sha256=ZsrEZkC4EtdIsoQuayn1xv2gEGcV
|
|
|
517
518
|
tests/regscale/models/test_report.py,sha256=eiSvS_zS0aVeL0HBvtmHVvEzcfF9ZFVn2twj5g8KttY,970
|
|
518
519
|
tests/regscale/models/test_tenable_integrations.py,sha256=PNJC2Zu6lv1xj7y6e1yOsz5FktSU3PRKb5x3n5YG3w0,4072
|
|
519
520
|
tests/regscale/models/test_user_model.py,sha256=e9olv28qBApgnvK6hFHOgXjUC-pkaV8aGDirEIWASL4,4427
|
|
520
|
-
regscale_cli-6.20.
|
|
521
|
-
regscale_cli-6.20.
|
|
522
|
-
regscale_cli-6.20.
|
|
523
|
-
regscale_cli-6.20.
|
|
524
|
-
regscale_cli-6.20.
|
|
525
|
-
regscale_cli-6.20.
|
|
521
|
+
regscale_cli-6.20.9.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
|
|
522
|
+
regscale_cli-6.20.9.0.dist-info/METADATA,sha256=JMEea5DFwZ0PLNWKrLxGzq6yKwrMCWTrp5qPxYCydR4,34955
|
|
523
|
+
regscale_cli-6.20.9.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
524
|
+
regscale_cli-6.20.9.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
|
|
525
|
+
regscale_cli-6.20.9.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
|
|
526
|
+
regscale_cli-6.20.9.0.dist-info/RECORD,,
|