regscale-cli 6.24.0.0__py3-none-any.whl → 6.24.0.1__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/integrations/commercial/jira.py +95 -22
- regscale/integrations/commercial/wizv2/click.py +23 -0
- regscale/integrations/commercial/wizv2/compliance_report.py +115 -26
- regscale/integrations/compliance_integration.py +230 -5
- regscale/models/integration_models/synqly_models/capabilities.json +1 -1
- regscale/models/regscale_models/control_implementation.py +13 -3
- {regscale_cli-6.24.0.0.dist-info → regscale_cli-6.24.0.1.dist-info}/METADATA +9 -9
- {regscale_cli-6.24.0.0.dist-info → regscale_cli-6.24.0.1.dist-info}/RECORD +13 -13
- {regscale_cli-6.24.0.0.dist-info → regscale_cli-6.24.0.1.dist-info}/LICENSE +0 -0
- {regscale_cli-6.24.0.0.dist-info → regscale_cli-6.24.0.1.dist-info}/WHEEL +0 -0
- {regscale_cli-6.24.0.0.dist-info → regscale_cli-6.24.0.1.dist-info}/entry_points.txt +0 -0
- {regscale_cli-6.24.0.0.dist-info → regscale_cli-6.24.0.1.dist-info}/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# standard python imports
|
|
5
5
|
import logging
|
|
6
6
|
from enum import Enum
|
|
7
|
-
from typing import Any, Callable, Dict, List, Optional, Union
|
|
7
|
+
from typing import Any, Callable, Dict, List, Optional, Union
|
|
8
8
|
from urllib.parse import urljoin
|
|
9
9
|
|
|
10
10
|
import requests
|
|
@@ -19,7 +19,6 @@ from regscale.models.regscale_models.implementation_role import ImplementationRo
|
|
|
19
19
|
from regscale.models.regscale_models.regscale_model import RegScaleModel
|
|
20
20
|
from regscale.models.regscale_models.security_control import SecurityControl
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
logger = logging.getLogger("regscale")
|
|
24
23
|
PATCH_CONTENT_TYPE = "application/json-patch+json"
|
|
25
24
|
|
|
@@ -74,6 +73,7 @@ class ControlImplementation(RegScaleModel):
|
|
|
74
73
|
_get_objects_for_list = True
|
|
75
74
|
|
|
76
75
|
controlOwnerId: str = Field(default_factory=RegScaleModel.get_user_id)
|
|
76
|
+
controlOwnersIds: Optional[List[str]] = Field(default=None)
|
|
77
77
|
status: str # Required
|
|
78
78
|
controlID: int # Required foreign key to Security Control
|
|
79
79
|
status_lst: List[ControlImplementationStatus] = []
|
|
@@ -153,9 +153,13 @@ class ControlImplementation(RegScaleModel):
|
|
|
153
153
|
"""
|
|
154
154
|
self.status_lst = self._get_status_enum()
|
|
155
155
|
|
|
156
|
+
# Backwards compatibility: Auto-populate controlOwnersIds if not set but controlOwnerId exists
|
|
157
|
+
if self.controlOwnersIds is None and self.controlOwnerId:
|
|
158
|
+
self.controlOwnersIds = [self.controlOwnerId]
|
|
159
|
+
|
|
156
160
|
def __setattr__(self, name: str, value: Any) -> None:
|
|
157
161
|
"""
|
|
158
|
-
Override __setattr__ to update status_lst when status changes.
|
|
162
|
+
Override __setattr__ to update status_lst when status changes and handle backwards compatibility.
|
|
159
163
|
|
|
160
164
|
:param str name: The attribute name
|
|
161
165
|
:param Any value: The attribute value
|
|
@@ -164,6 +168,12 @@ class ControlImplementation(RegScaleModel):
|
|
|
164
168
|
super().__setattr__(name, value)
|
|
165
169
|
if name == "status":
|
|
166
170
|
self.status_lst = self._get_status_enum()
|
|
171
|
+
elif name == "controlOwnerId" and value:
|
|
172
|
+
# Backwards compatibility: Auto-populate controlOwnersIds when controlOwnerId is set
|
|
173
|
+
if hasattr(self, "controlOwnersIds") and (
|
|
174
|
+
not hasattr(self, "_controlOwnersIds") or self._controlOwnersIds is None
|
|
175
|
+
):
|
|
176
|
+
super().__setattr__("controlOwnersIds", [value])
|
|
167
177
|
|
|
168
178
|
@classmethod
|
|
169
179
|
def _get_additional_endpoints(cls) -> ConfigDict:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: regscale-cli
|
|
3
|
-
Version: 6.24.0.
|
|
3
|
+
Version: 6.24.0.1
|
|
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
|
|
@@ -36,7 +36,7 @@ Requires-Dist: google-cloud-asset ~=3.22
|
|
|
36
36
|
Requires-Dist: google-cloud-securitycenter ~=1.25
|
|
37
37
|
Requires-Dist: gql ~=3.5.0
|
|
38
38
|
Requires-Dist: inflect
|
|
39
|
-
Requires-Dist: jira
|
|
39
|
+
Requires-Dist: jira >=3.8.0
|
|
40
40
|
Requires-Dist: jwcrypto >=1.5.1
|
|
41
41
|
Requires-Dist: lxml ==5.3.0
|
|
42
42
|
Requires-Dist: markdown
|
|
@@ -105,7 +105,7 @@ Requires-Dist: greenlet >=3.0.3 ; extra == 'airflow'
|
|
|
105
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
|
-
Requires-Dist: jira
|
|
108
|
+
Requires-Dist: jira >=3.8.0 ; extra == 'airflow'
|
|
109
109
|
Requires-Dist: jmespath ==1.0.0 ; extra == 'airflow'
|
|
110
110
|
Requires-Dist: jwcrypto >=1.5.1 ; extra == 'airflow'
|
|
111
111
|
Requires-Dist: lxml ==5.3.0 ; extra == 'airflow'
|
|
@@ -189,7 +189,7 @@ Requires-Dist: greenlet >=3.0.3 ; extra == 'airflow-azure'
|
|
|
189
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
|
-
Requires-Dist: jira
|
|
192
|
+
Requires-Dist: jira >=3.8.0 ; extra == 'airflow-azure'
|
|
193
193
|
Requires-Dist: jmespath ==1.0.0 ; extra == 'airflow-azure'
|
|
194
194
|
Requires-Dist: jwcrypto >=1.5.1 ; extra == 'airflow-azure'
|
|
195
195
|
Requires-Dist: lxml ==5.3.0 ; extra == 'airflow-azure'
|
|
@@ -273,7 +273,7 @@ Requires-Dist: greenlet >=3.0.3 ; extra == 'airflow-sqlserver'
|
|
|
273
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
|
-
Requires-Dist: jira
|
|
276
|
+
Requires-Dist: jira >=3.8.0 ; extra == 'airflow-sqlserver'
|
|
277
277
|
Requires-Dist: jmespath ==1.0.0 ; extra == 'airflow-sqlserver'
|
|
278
278
|
Requires-Dist: jwcrypto >=1.5.1 ; extra == 'airflow-sqlserver'
|
|
279
279
|
Requires-Dist: lxml ==5.3.0 ; extra == 'airflow-sqlserver'
|
|
@@ -365,7 +365,7 @@ Requires-Dist: importlib-resources ; extra == 'all'
|
|
|
365
365
|
Requires-Dist: inflect ; extra == 'all'
|
|
366
366
|
Requires-Dist: jinja2 ; extra == 'all'
|
|
367
367
|
Requires-Dist: jinja2 >=3.1.5 ; extra == 'all'
|
|
368
|
-
Requires-Dist: jira
|
|
368
|
+
Requires-Dist: jira >=3.8.0 ; extra == 'all'
|
|
369
369
|
Requires-Dist: jmespath ==1.0.0 ; extra == 'all'
|
|
370
370
|
Requires-Dist: jwcrypto >=1.5.1 ; extra == 'all'
|
|
371
371
|
Requires-Dist: lxml ==5.3.0 ; extra == 'all'
|
|
@@ -440,7 +440,7 @@ Requires-Dist: google-cloud-securitycenter ~=1.25 ; extra == 'ansible'
|
|
|
440
440
|
Requires-Dist: gql ~=3.5.0 ; extra == 'ansible'
|
|
441
441
|
Requires-Dist: inflect ; extra == 'ansible'
|
|
442
442
|
Requires-Dist: jinja2 ; extra == 'ansible'
|
|
443
|
-
Requires-Dist: jira
|
|
443
|
+
Requires-Dist: jira >=3.8.0 ; extra == 'ansible'
|
|
444
444
|
Requires-Dist: jwcrypto >=1.5.1 ; extra == 'ansible'
|
|
445
445
|
Requires-Dist: lxml ==5.3.0 ; extra == 'ansible'
|
|
446
446
|
Requires-Dist: markdown ; extra == 'ansible'
|
|
@@ -506,7 +506,7 @@ Requires-Dist: google-cloud-securitycenter ~=1.25 ; extra == 'dev'
|
|
|
506
506
|
Requires-Dist: gql ~=3.5.0 ; extra == 'dev'
|
|
507
507
|
Requires-Dist: inflect ; extra == 'dev'
|
|
508
508
|
Requires-Dist: isort ; extra == 'dev'
|
|
509
|
-
Requires-Dist: jira
|
|
509
|
+
Requires-Dist: jira >=3.8.0 ; extra == 'dev'
|
|
510
510
|
Requires-Dist: jwcrypto >=1.5.1 ; extra == 'dev'
|
|
511
511
|
Requires-Dist: lxml-stubs ; extra == 'dev'
|
|
512
512
|
Requires-Dist: lxml ==5.3.0 ; extra == 'dev'
|
|
@@ -592,7 +592,7 @@ Requires-Dist: google-cloud-securitycenter ~=1.25 ; extra == 'server'
|
|
|
592
592
|
Requires-Dist: gql ~=3.5.0 ; extra == 'server'
|
|
593
593
|
Requires-Dist: importlib-resources ; extra == 'server'
|
|
594
594
|
Requires-Dist: inflect ; extra == 'server'
|
|
595
|
-
Requires-Dist: jira
|
|
595
|
+
Requires-Dist: jira >=3.8.0 ; extra == 'server'
|
|
596
596
|
Requires-Dist: jwcrypto >=1.5.1 ; extra == 'server'
|
|
597
597
|
Requires-Dist: lxml ==5.3.0 ; extra == 'server'
|
|
598
598
|
Requires-Dist: markdown ; 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=JL218X9JiZcVsnhMIqE9ghaSDLJVxf4wbgCb15r1No0,1198
|
|
3
3
|
regscale/regscale.py,sha256=u25AiF58XIfAG2fKjqxVWDhaAOK8-gZ19Y-eWYlM5TI,31480
|
|
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
|
|
@@ -111,7 +111,7 @@ regscale/exceptions/validation_exception.py,sha256=_DW_GARtPr_Dyy8tolnvC_AYsHRsU
|
|
|
111
111
|
regscale/integrations/__init__.py,sha256=Sqthp3Jggo7co_go380cLn3OAb0cHwqL609_4QJSFBY,58
|
|
112
112
|
regscale/integrations/api_paginator.py,sha256=73rjaNM9mGv8evHAeoObXEjZPg-bJuGPo60ewCLEil8,33192
|
|
113
113
|
regscale/integrations/api_paginator_example.py,sha256=lEuYI-xEGcjnXuIzbCobCP0YRuukLF0s8S3d382SAH4,12119
|
|
114
|
-
regscale/integrations/compliance_integration.py,sha256=
|
|
114
|
+
regscale/integrations/compliance_integration.py,sha256=aKMxTRoJ5J3gDPJhzIvTKfIkamPSFDBvRrvRscEjxms,90212
|
|
115
115
|
regscale/integrations/due_date_handler.py,sha256=qIOeFx4LPvOTpqJx8JV5Hj3FLlx0FoaYAsFoXqxYBcs,8343
|
|
116
116
|
regscale/integrations/integration_override.py,sha256=HjYBCuvNpU3t3FptaqYAkdexLFOZBAFrFE9xU0RD1Nc,5867
|
|
117
117
|
regscale/integrations/jsonl_scanner_integration.py,sha256=l8nq_T3rE1XX-6HxrNHm3xzxCNWbIjxQvGMdtZWs7KQ,57003
|
|
@@ -126,7 +126,7 @@ regscale/integrations/commercial/dependabot.py,sha256=V4VbHbwrxHfe7eCilJ7U_MBeIO
|
|
|
126
126
|
regscale/integrations/commercial/ecr.py,sha256=oQafB_Lx4CbGDLb6fqNtY1oAWci6-XWsm39URNbqgrk,2687
|
|
127
127
|
regscale/integrations/commercial/gitlab.py,sha256=dzfqJQ68QI1ee_BriNMyPuXLkzOhc2vR1hhVfq2j13Y,12496
|
|
128
128
|
regscale/integrations/commercial/ibm.py,sha256=vFloNxSrM2BzoicMSiInYN5dF10BbYHJpJDyyMqZu2I,2766
|
|
129
|
-
regscale/integrations/commercial/jira.py,sha256=
|
|
129
|
+
regscale/integrations/commercial/jira.py,sha256=c_ixudk6YBhXHhrjOFtSzknaaOQh-nl0GqLPgl7P1AA,49906
|
|
130
130
|
regscale/integrations/commercial/nexpose.py,sha256=fx6O__y7eY0GaAbX8p24_V1VTFfOM7oia4r3aa_qVnE,2847
|
|
131
131
|
regscale/integrations/commercial/okta.py,sha256=VNwE848xiBxkha4DibkhLJN-fi0T8rLMd30PPAmRjpk,30837
|
|
132
132
|
regscale/integrations/commercial/prisma.py,sha256=oYS31HlI7GiShUy0r9Luv57Ex3cGqdJcIoVMrwDAC2c,2835
|
|
@@ -238,8 +238,8 @@ regscale/integrations/commercial/trivy/scanner.py,sha256=iiwTvjqRlLRgQvCs_FP0j83
|
|
|
238
238
|
regscale/integrations/commercial/wizv2/WizDataMixin.py,sha256=s7F_rVrP9IZa_x_vh3MswR7W_UBHRfd4kHGVsNX4ips,3606
|
|
239
239
|
regscale/integrations/commercial/wizv2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
240
240
|
regscale/integrations/commercial/wizv2/async_client.py,sha256=CElkHxbSlNfRnvJpf4JTBD293NJxQsR-QaTBuHINrLw,12946
|
|
241
|
-
regscale/integrations/commercial/wizv2/click.py,sha256=
|
|
242
|
-
regscale/integrations/commercial/wizv2/compliance_report.py,sha256=
|
|
241
|
+
regscale/integrations/commercial/wizv2/click.py,sha256=FkoXEUgZGQUyZNMdaDJTyNE8G_oXmIM5z6JlT-QQW8I,19831
|
|
242
|
+
regscale/integrations/commercial/wizv2/compliance_report.py,sha256=iCmTw7P46UOg-yKQJMRaVSU6yI-jG-trSXpA4i3I9PE,67417
|
|
243
243
|
regscale/integrations/commercial/wizv2/constants.py,sha256=emJHsfdsRuHhWTYqADV4-l6sZNJ-nWGj_l1abdFrXxk,49308
|
|
244
244
|
regscale/integrations/commercial/wizv2/data_fetcher.py,sha256=CmJyUCeTQIkYBu2LPicpTNwXJrYkRP3xxM55BJQhr2A,16258
|
|
245
245
|
regscale/integrations/commercial/wizv2/file_cleanup.py,sha256=ENBO9RDXL2kyHkBYaSai83i4kVTUJUF_F0JCj84i-ow,4178
|
|
@@ -359,7 +359,7 @@ regscale/models/integration_models/flat_file_importer/__init__.py,sha256=HYO7mrq
|
|
|
359
359
|
regscale/models/integration_models/sbom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
360
360
|
regscale/models/integration_models/sbom/cyclone_dx.py,sha256=0pFR0BWBrF5c8_cC_8mj2MXvNOMHOdHbBYXvTVfFAh8,4058
|
|
361
361
|
regscale/models/integration_models/synqly_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
362
|
-
regscale/models/integration_models/synqly_models/capabilities.json,sha256=
|
|
362
|
+
regscale/models/integration_models/synqly_models/capabilities.json,sha256=drWHHUXEfKp1ZM1eIHJvDPJc31p0BmQtDdM9yc8bPTE,402957
|
|
363
363
|
regscale/models/integration_models/synqly_models/connector_types.py,sha256=8nxptkTexpskySnmL0obNAff_iu_fx6tJ7i1-4hJvao,461
|
|
364
364
|
regscale/models/integration_models/synqly_models/ocsf_mapper.py,sha256=ftObPhGg9CamnwRZ5z6qi8pW2Gu4JYy8apEo33o7q00,16960
|
|
365
365
|
regscale/models/integration_models/synqly_models/param.py,sha256=Xt5Zm6lC_VkLj7LF2qXo72TJZHysqttsp5ai0NCf1po,2643
|
|
@@ -391,7 +391,7 @@ regscale/models/regscale_models/compliance_settings.py,sha256=e0Ghjozt8iCgzmCPfY
|
|
|
391
391
|
regscale/models/regscale_models/component.py,sha256=zURPe-unWeHpkx6OoVq3AxdOYp7Ci14xXMy-AjYmXik,14149
|
|
392
392
|
regscale/models/regscale_models/component_mapping.py,sha256=g0cbbW4X49SDdlB_YtKMrP4eiK9OkrJqiut0ucdyVDA,2162
|
|
393
393
|
regscale/models/regscale_models/control.py,sha256=mO46F1IfiXnLSb3YhylaS3SyjtT51s-r8b3hjix9Gbc,1072
|
|
394
|
-
regscale/models/regscale_models/control_implementation.py,sha256=
|
|
394
|
+
regscale/models/regscale_models/control_implementation.py,sha256=NI0ygYljT7l0ALbRVs-G7TACK2b2TNtfzGApBDezxWI,51032
|
|
395
395
|
regscale/models/regscale_models/control_objective.py,sha256=qGh8OtATjjc4JS-3bC1AX6TbgtRtz-I0dckbuZ2RzVo,9496
|
|
396
396
|
regscale/models/regscale_models/control_parameter.py,sha256=5VVkbVZTb2Hzy_WiybU2JtrvhQp8DLSWxRcbSKxktiI,3499
|
|
397
397
|
regscale/models/regscale_models/control_test.py,sha256=FG-fLS9JJf8__a84W2LtBXtEjzOH9iq2EO949vBx3eY,949
|
|
@@ -553,9 +553,9 @@ tests/regscale/models/test_regscale_model.py,sha256=ZsrEZkC4EtdIsoQuayn1xv2gEGcV
|
|
|
553
553
|
tests/regscale/models/test_report.py,sha256=IqUq7C__a1_q_mLaz0PE9Lq6fHggBsB14-AzEYNBxLw,4666
|
|
554
554
|
tests/regscale/models/test_tenable_integrations.py,sha256=y1qaW77H094VSGHjZdlvF66UCt-nPEib9Mv3cdwbM94,32435
|
|
555
555
|
tests/regscale/models/test_user_model.py,sha256=e9olv28qBApgnvK6hFHOgXjUC-pkaV8aGDirEIWASL4,4427
|
|
556
|
-
regscale_cli-6.24.0.
|
|
557
|
-
regscale_cli-6.24.0.
|
|
558
|
-
regscale_cli-6.24.0.
|
|
559
|
-
regscale_cli-6.24.0.
|
|
560
|
-
regscale_cli-6.24.0.
|
|
561
|
-
regscale_cli-6.24.0.
|
|
556
|
+
regscale_cli-6.24.0.1.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
|
|
557
|
+
regscale_cli-6.24.0.1.dist-info/METADATA,sha256=vkWjV2W0j1jST2KqNVVh1M5fcForsGgnV3JFzQSK-ag,35027
|
|
558
|
+
regscale_cli-6.24.0.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
559
|
+
regscale_cli-6.24.0.1.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
|
|
560
|
+
regscale_cli-6.24.0.1.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
|
|
561
|
+
regscale_cli-6.24.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|