regscale-cli 6.20.0.0__py3-none-any.whl → 6.20.1.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/integrations/commercial/synqly/assets.py +16 -0
- regscale/integrations/public/fedramp/fedramp_cis_crm.py +5 -3
- regscale/models/integration_models/cisa_kev_data.json +109 -4
- regscale/models/integration_models/synqly_models/capabilities.json +1 -1
- regscale/models/regscale_models/__init__.py +2 -0
- regscale/models/regscale_models/evidence.py +72 -4
- regscale/models/regscale_models/evidence_mapping.py +1 -1
- regscale/models/regscale_models/task.py +14 -1
- {regscale_cli-6.20.0.0.dist-info → regscale_cli-6.20.1.0.dist-info}/METADATA +1 -1
- {regscale_cli-6.20.0.0.dist-info → regscale_cli-6.20.1.0.dist-info}/RECORD +15 -15
- {regscale_cli-6.20.0.0.dist-info → regscale_cli-6.20.1.0.dist-info}/LICENSE +0 -0
- {regscale_cli-6.20.0.0.dist-info → regscale_cli-6.20.1.0.dist-info}/WHEEL +0 -0
- {regscale_cli-6.20.0.0.dist-info → regscale_cli-6.20.1.0.dist-info}/entry_points.txt +0 -0
- {regscale_cli-6.20.0.0.dist-info → regscale_cli-6.20.1.0.dist-info}/top_level.txt +0 -0
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
"""Class for evidence model in RegScale platform"""
|
|
4
4
|
|
|
5
5
|
from typing import Optional
|
|
6
|
+
|
|
6
7
|
from pydantic import ConfigDict, Field
|
|
7
8
|
|
|
9
|
+
from regscale.core.app.utils.app_utils import get_current_datetime
|
|
8
10
|
from regscale.models.regscale_models.regscale_model import RegScaleModel
|
|
9
11
|
|
|
10
12
|
|
|
@@ -12,7 +14,7 @@ class Evidence(RegScaleModel):
|
|
|
12
14
|
"""Evidence Model"""
|
|
13
15
|
|
|
14
16
|
_module_slug = "evidence"
|
|
15
|
-
_unique_fields
|
|
17
|
+
_unique_fields = [["title"]]
|
|
16
18
|
|
|
17
19
|
id: int = 0
|
|
18
20
|
isPublic: Optional[bool] = True
|
|
@@ -20,9 +22,14 @@ class Evidence(RegScaleModel):
|
|
|
20
22
|
title: Optional[str] = None
|
|
21
23
|
description: Optional[str] = None
|
|
22
24
|
evidenceOwnerId: Optional[str] = Field(default_factory=RegScaleModel.get_user_id)
|
|
25
|
+
evidenceApproverId: Optional[str] = Field(default_factory=RegScaleModel.get_user_id)
|
|
26
|
+
status: Optional[str] = None
|
|
23
27
|
updateFrequency: Optional[int] = 365
|
|
24
|
-
lastEvidenceUpdate: Optional[str] =
|
|
25
|
-
dueDate: Optional[str] =
|
|
28
|
+
lastEvidenceUpdate: Optional[str] = Field(default_factory=get_current_datetime)
|
|
29
|
+
dueDate: Optional[str] = Field(default_factory=get_current_datetime)
|
|
30
|
+
dateLastApproved: Optional[str] = Field(default_factory=get_current_datetime)
|
|
31
|
+
|
|
32
|
+
_unique_fields = ["title"]
|
|
26
33
|
|
|
27
34
|
@staticmethod
|
|
28
35
|
def _get_additional_endpoints() -> ConfigDict:
|
|
@@ -42,6 +49,67 @@ class Evidence(RegScaleModel):
|
|
|
42
49
|
get_evidence_by_security_plan="/api/{model_slug}/getEvidenceBySecurityPlan/{intId}",
|
|
43
50
|
filter_evidence="/api/{model_slug}/filterEvidence",
|
|
44
51
|
query_by_custom_field="/api/{model_slug}/queryByCustomField/{strFieldName}/{strValue}",
|
|
45
|
-
mega_api="/api/{model_slug}/megaApi/{intId}",
|
|
46
52
|
get_my_evidence_due_soon="/api/{model_slug}/getMyEvidenceDueSoon/{intDays}/{intPage}/{intPageSize}",
|
|
47
53
|
)
|
|
54
|
+
|
|
55
|
+
@classmethod
|
|
56
|
+
def filter_evidence(
|
|
57
|
+
cls,
|
|
58
|
+
field: Optional[str] = None,
|
|
59
|
+
type: Optional[str] = None,
|
|
60
|
+
operator: Optional[str] = None,
|
|
61
|
+
value: Optional[str] = None,
|
|
62
|
+
page: Optional[int] = 1,
|
|
63
|
+
page_size: Optional[int] = 10,
|
|
64
|
+
) -> list:
|
|
65
|
+
"""
|
|
66
|
+
Filter evidence based on the given filter parameters.
|
|
67
|
+
|
|
68
|
+
:param Optional[str] field: Filter field
|
|
69
|
+
:param Optional[str] type: Filter type
|
|
70
|
+
:param Optional[str] operator: Filter operator
|
|
71
|
+
:param Optional[str] value: Filter value
|
|
72
|
+
:param Optional[int] page: Page number, defaults to 1
|
|
73
|
+
:param Optional[int] page_size: Page size, defaults to 10
|
|
74
|
+
:return: A list of filtered evidence
|
|
75
|
+
:rtype: list
|
|
76
|
+
"""
|
|
77
|
+
query = {
|
|
78
|
+
"parentID": 0,
|
|
79
|
+
"module": "",
|
|
80
|
+
"friendlyName": "",
|
|
81
|
+
"workbench": "",
|
|
82
|
+
"base": "",
|
|
83
|
+
"sort": "dueDate",
|
|
84
|
+
"direction": "Ascending",
|
|
85
|
+
"simpleSearch": "",
|
|
86
|
+
"page": "",
|
|
87
|
+
"pageSize": "",
|
|
88
|
+
"query": {
|
|
89
|
+
"id": 0,
|
|
90
|
+
"viewName": "",
|
|
91
|
+
"module": "",
|
|
92
|
+
"scope": "",
|
|
93
|
+
"createdById": "",
|
|
94
|
+
"dateCreated": "",
|
|
95
|
+
"parameters": [
|
|
96
|
+
{"id": 0, "field": "", "type": "", "operator": "", "value": "", "viewName": "", "name": ""}
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
"groupBy": "",
|
|
100
|
+
"intDays": 0,
|
|
101
|
+
"subTab": False,
|
|
102
|
+
}
|
|
103
|
+
query["page"] = page
|
|
104
|
+
query["pageSize"] = page_size
|
|
105
|
+
query["query"]["parameters"][0]["field"] = field
|
|
106
|
+
query["query"]["parameters"][0]["type"] = type
|
|
107
|
+
query["query"]["parameters"][0]["operator"] = operator
|
|
108
|
+
query["query"]["parameters"][0]["value"] = value
|
|
109
|
+
|
|
110
|
+
response = cls._get_api_handler().post(
|
|
111
|
+
endpoint=cls.get_endpoint("filter_evidence").format(module_slug=cls._module_slug), data=query
|
|
112
|
+
)
|
|
113
|
+
if not response.raise_for_status():
|
|
114
|
+
return response.json()
|
|
115
|
+
return []
|
|
@@ -34,7 +34,7 @@ class EvidenceMapping(RegScaleModel):
|
|
|
34
34
|
:rtype: ConfigDict
|
|
35
35
|
"""
|
|
36
36
|
return ConfigDict(
|
|
37
|
-
|
|
37
|
+
get_all_by_parent="/api/{model_slug}/getAllByEvidence/{intParentID}",
|
|
38
38
|
get_summary_by_evidence="/api/{model_slug}/getSummaryByEvidence/{intID}",
|
|
39
39
|
batch_create="/api/{model_slug}/batchCreate",
|
|
40
40
|
)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
"""Model for Task in the application"""
|
|
4
4
|
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import List, Optional
|
|
6
6
|
|
|
7
7
|
from pydantic import ConfigDict, Field, field_validator
|
|
8
8
|
|
|
@@ -61,6 +61,19 @@ class Task(RegScaleModel):
|
|
|
61
61
|
get_by_date_range="/api/{model_slug}/getByDateRangeAll/{dtStart}/{dtEnd}",
|
|
62
62
|
)
|
|
63
63
|
|
|
64
|
+
@classmethod
|
|
65
|
+
def other_identifier_starts_with(cls, starts_with: str) -> List["Task"]:
|
|
66
|
+
"""
|
|
67
|
+
Get tasks based on otherIdentifier field, starts with.
|
|
68
|
+
|
|
69
|
+
:param str starts_with: The starting characters of a string.
|
|
70
|
+
:return: A list of Task instances matching the query
|
|
71
|
+
:rtype: List[Task]
|
|
72
|
+
"""
|
|
73
|
+
endpoint = cls.get_endpoint("other_identifier_starts_with").format(strId=starts_with)
|
|
74
|
+
response = cls._get_api_handler().get(endpoint=endpoint)
|
|
75
|
+
return cls._handle_list_response(response)
|
|
76
|
+
|
|
64
77
|
@classmethod
|
|
65
78
|
def query_by_custom_field(cls, field_name: str, field_value: str) -> List["Task"]:
|
|
66
79
|
"""
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
regscale/__init__.py,sha256=
|
|
1
|
+
regscale/__init__.py,sha256=r1HF7doFeRDr-9Z5U8VWAY9zd36V0F9ANhhSOPKgxBk,25
|
|
2
2
|
regscale/regscale.py,sha256=t4uLMzy9P_KeKazI9ZTQupTkbgh28uMilLSpmzn7adE,30983
|
|
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
|
|
@@ -204,7 +204,7 @@ regscale/integrations/commercial/stigv2/ckl_parser.py,sha256=RPrDGsKqAbTJMsJd3AY
|
|
|
204
204
|
regscale/integrations/commercial/stigv2/click_commands.py,sha256=Tywelob4WwZuriSZV7-qgCeNzWtChMPimeBI2unYEqo,3552
|
|
205
205
|
regscale/integrations/commercial/stigv2/stig_integration.py,sha256=-UlfL0BBI3jFGotctOJyTCRAU9zIXW6mwU7ySrRXE9U,11573
|
|
206
206
|
regscale/integrations/commercial/synqly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
207
|
-
regscale/integrations/commercial/synqly/assets.py,sha256=
|
|
207
|
+
regscale/integrations/commercial/synqly/assets.py,sha256=V3cDMRCy0nUCD53l9qxQDPe9LIKPUGT8FUyBuhUQ7No,2679
|
|
208
208
|
regscale/integrations/commercial/synqly/edr.py,sha256=Z2gwscLvrFLKcodU83qbVn1jF8eFhwdjXm94LA8EwxQ,2444
|
|
209
209
|
regscale/integrations/commercial/synqly/ticketing.py,sha256=hibFRidMU6UGH6bFaMHiIVU6y-bhd0f9_-AsFWbt1pM,5644
|
|
210
210
|
regscale/integrations/commercial/synqly/vulnerabilities.py,sha256=B8GwfKVDdoOIikjZO-4KqDNf-ApXlcJNkwmno0FjDOQ,7842
|
|
@@ -250,7 +250,7 @@ regscale/integrations/public/fedramp/appendix_parser.py,sha256=u3Q_NHxAvYTQ1RAr1
|
|
|
250
250
|
regscale/integrations/public/fedramp/click.py,sha256=8JbWRidFZ9EFoOTp-bwE584u23TzKqWQIpfxmA0-lGo,14975
|
|
251
251
|
regscale/integrations/public/fedramp/components.py,sha256=z6PMObm-kjRR42bT04EfnjisrEULfXlwxb7576uuMmY,27010
|
|
252
252
|
regscale/integrations/public/fedramp/docx_parser.py,sha256=EA9g1iTlB6-GtOzV9JwGW8x_SruhbaIMOzstCBvjiq8,10526
|
|
253
|
-
regscale/integrations/public/fedramp/fedramp_cis_crm.py,sha256
|
|
253
|
+
regscale/integrations/public/fedramp/fedramp_cis_crm.py,sha256=-mQXCah1WuNJcLMprOBuqlPt313J2MkpssvSGXwRQN0,58795
|
|
254
254
|
regscale/integrations/public/fedramp/fedramp_common.py,sha256=Mdy3_WdCEcTwSXEEKXiODmr2YJTWcTg6jfyWZJWfruQ,115406
|
|
255
255
|
regscale/integrations/public/fedramp/fedramp_docx.py,sha256=GnRjuWEgE9XSe9egPOQSZ8lMjY4CpqcD2IS5paI-xQc,13742
|
|
256
256
|
regscale/integrations/public/fedramp/fedramp_five.py,sha256=F4KIOdnYaRjJrJHJYsN9Bmf6i5s0nus-t_GaAh8A3ow,92645
|
|
@@ -306,7 +306,7 @@ regscale/models/integration_models/azure_alerts.py,sha256=2etrpvcxa7jVQrc98bJlVG
|
|
|
306
306
|
regscale/models/integration_models/base64.py,sha256=sxV6O5qY1_TstJENX5jBPsSdQwmA83-NNhgJFunXiZE,570
|
|
307
307
|
regscale/models/integration_models/burp.py,sha256=hPQkmmUdC84MBFTE2Di5NvjbGz1ssISSkZdDaVi-ZoQ,16941
|
|
308
308
|
regscale/models/integration_models/burp_models.py,sha256=UytDTAcCaxyu-knFkm_mEUH6UmWK3OTXKSC9Sc6OjVs,3669
|
|
309
|
-
regscale/models/integration_models/cisa_kev_data.json,sha256=
|
|
309
|
+
regscale/models/integration_models/cisa_kev_data.json,sha256=EQSN8Z5sWtM0t5LXqhOCrOhKZScjS4LudadDgX38u0I,1196189
|
|
310
310
|
regscale/models/integration_models/defender_data.py,sha256=jsAcjKxiGmumGerj7xSWkFd6r__YpuKDnYX5o7xHDiE,2844
|
|
311
311
|
regscale/models/integration_models/defenderimport.py,sha256=OFwEH0Xu-HFLIZJZ8hP60Ov3lS8RR7KHEsw4wI8QnoE,5766
|
|
312
312
|
regscale/models/integration_models/drf.py,sha256=Aq7AdLa_CH97NrnR-CxaFI22JjVN9uCxVN7Z-BBUaNU,18896
|
|
@@ -332,7 +332,7 @@ regscale/models/integration_models/flat_file_importer/__init__.py,sha256=jtZamIz
|
|
|
332
332
|
regscale/models/integration_models/sbom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
333
333
|
regscale/models/integration_models/sbom/cyclone_dx.py,sha256=0pFR0BWBrF5c8_cC_8mj2MXvNOMHOdHbBYXvTVfFAh8,4058
|
|
334
334
|
regscale/models/integration_models/synqly_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
335
|
-
regscale/models/integration_models/synqly_models/capabilities.json,sha256=
|
|
335
|
+
regscale/models/integration_models/synqly_models/capabilities.json,sha256=K8Z3CFFdOA2N25O53LXSv3DhvS9vKWebWK9KjvpfyiU,290941
|
|
336
336
|
regscale/models/integration_models/synqly_models/connector_types.py,sha256=8nxptkTexpskySnmL0obNAff_iu_fx6tJ7i1-4hJvao,461
|
|
337
337
|
regscale/models/integration_models/synqly_models/ocsf_mapper.py,sha256=e2kTOhWSNRnzbgMchMx-7c21pCgSv2DqWnxvajKEKJM,16960
|
|
338
338
|
regscale/models/integration_models/synqly_models/param.py,sha256=45zgYUV4U9Ia8-CdIb4TlE3vfDMMtbfA1y5LOiznnH8,2645
|
|
@@ -346,7 +346,7 @@ regscale/models/integration_models/synqly_models/connectors/vulnerabilities.py,s
|
|
|
346
346
|
regscale/models/integration_models/tenable_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
347
347
|
regscale/models/integration_models/tenable_models/integration.py,sha256=lplL8zmjTFuhLreW-4y7G1fiCOBgzNAaATq800jgTQc,10271
|
|
348
348
|
regscale/models/integration_models/tenable_models/models.py,sha256=dmG7btkN4YkDWwnfW5Ldc3tWEAGjPiaRgJjrqMOkPEU,15846
|
|
349
|
-
regscale/models/regscale_models/__init__.py,sha256=
|
|
349
|
+
regscale/models/regscale_models/__init__.py,sha256=mkaVXxR2DpJRVcYNPnjkFVi3K2UNLbN38iOrTo3SsJs,2107
|
|
350
350
|
regscale/models/regscale_models/assessment.py,sha256=ekzNlcsfDGBu97PMCi7hBRGbzVgxk7Ij0RfrdGh1Rfw,20440
|
|
351
351
|
regscale/models/regscale_models/assessment_plan.py,sha256=qo2YA5ckSbUKDHnC_2BUc2I9kMTje9Gq-qTCXqvEKCY,1716
|
|
352
352
|
regscale/models/regscale_models/assessment_result.py,sha256=K48yjYKwgY1-d_Y3aQUDcCvaqcTIVYdbKV5Wgicf4Ts,1283
|
|
@@ -374,8 +374,8 @@ regscale/models/regscale_models/data.py,sha256=jxos_D_3ZhCHZuWfnpIvxf6xpgVm18Vuw
|
|
|
374
374
|
regscale/models/regscale_models/data_center.py,sha256=MaLfG0n6cCwsTNEsYOJlq04rY8LSGFWCMScS8NiLpb4,1074
|
|
375
375
|
regscale/models/regscale_models/deviation.py,sha256=wOMY5A6XZpKWJnNIXTj3Ks5pls34eyGWkwgR8R7tj-Y,7855
|
|
376
376
|
regscale/models/regscale_models/email.py,sha256=kgEzXTUZr7uHksMOCextWbXJXYuRKyXO29cNgzoWnog,3441
|
|
377
|
-
regscale/models/regscale_models/evidence.py,sha256=
|
|
378
|
-
regscale/models/regscale_models/evidence_mapping.py,sha256=
|
|
377
|
+
regscale/models/regscale_models/evidence.py,sha256=R78f3eWjmBgusZbv8i9cd5O8Is43KjvxiaJH_CLERqE,4316
|
|
378
|
+
regscale/models/regscale_models/evidence_mapping.py,sha256=eovTJsl1cjZMvbhpOv70nILIHSXmURyU4mg_r09h4VQ,1444
|
|
379
379
|
regscale/models/regscale_models/facility.py,sha256=J3gGv0Tf3zNdyKGhb0iM8WjgjWqJHZLKdcN9n-jDrTA,1059
|
|
380
380
|
regscale/models/regscale_models/file.py,sha256=_95A8ERXkA7CQRmbl3z7dpe2uZyrkEcGlSKDpIYwurg,14360
|
|
381
381
|
regscale/models/regscale_models/filetag.py,sha256=jd99xcQsGheLFfy7PYtZEzT-re_Dp_ZoUF3GWYMsi0Q,1138
|
|
@@ -428,7 +428,7 @@ regscale/models/regscale_models/system_role.py,sha256=cGKhdekD0ZlT_cuUGDhzED9J46
|
|
|
428
428
|
regscale/models/regscale_models/system_role_external_assignment.py,sha256=vCI-paDP4gARkHyGareBUdkmK0hcp1cDSe7yFdYMSug,1333
|
|
429
429
|
regscale/models/regscale_models/tag.py,sha256=D4n5ABDzjI7u1ukjRyHgmgyVd8iNTNJlQrdi55AhYmM,1130
|
|
430
430
|
regscale/models/regscale_models/tag_mapping.py,sha256=QtafVsWjpBR8BAxRhabk3FL3E4WI5OdCv95fuvNOrZs,657
|
|
431
|
-
regscale/models/regscale_models/task.py,sha256=
|
|
431
|
+
regscale/models/regscale_models/task.py,sha256=le3N2GIUCEJrFnNh0DLU7RAcle4ULr8OP4M8qK0ZADE,5469
|
|
432
432
|
regscale/models/regscale_models/threat.py,sha256=4TNZcRnTgmlDwBsYu5Pbh9GRd8ZWAtqqr0Xph3uPNAA,7255
|
|
433
433
|
regscale/models/regscale_models/user.py,sha256=wiU2qKwp3aYtmaHEmTtv8BbMEgFb913dHgc2VnmsAkg,7186
|
|
434
434
|
regscale/models/regscale_models/user_group.py,sha256=vzlXHvPNsgJd38H0R3osi46Oj19QO5oPx0qXntQBKWI,1891
|
|
@@ -505,9 +505,9 @@ tests/regscale/models/test_regscale_model.py,sha256=ZsrEZkC4EtdIsoQuayn1xv2gEGcV
|
|
|
505
505
|
tests/regscale/models/test_report.py,sha256=eiSvS_zS0aVeL0HBvtmHVvEzcfF9ZFVn2twj5g8KttY,970
|
|
506
506
|
tests/regscale/models/test_tenable_integrations.py,sha256=PNJC2Zu6lv1xj7y6e1yOsz5FktSU3PRKb5x3n5YG3w0,4072
|
|
507
507
|
tests/regscale/models/test_user_model.py,sha256=e9olv28qBApgnvK6hFHOgXjUC-pkaV8aGDirEIWASL4,4427
|
|
508
|
-
regscale_cli-6.20.
|
|
509
|
-
regscale_cli-6.20.
|
|
510
|
-
regscale_cli-6.20.
|
|
511
|
-
regscale_cli-6.20.
|
|
512
|
-
regscale_cli-6.20.
|
|
513
|
-
regscale_cli-6.20.
|
|
508
|
+
regscale_cli-6.20.1.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
|
|
509
|
+
regscale_cli-6.20.1.0.dist-info/METADATA,sha256=Kn170Uk2Ya6XcpNsp5fAhIZJRXbfdjUQmODon1GDBHA,34671
|
|
510
|
+
regscale_cli-6.20.1.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
511
|
+
regscale_cli-6.20.1.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
|
|
512
|
+
regscale_cli-6.20.1.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
|
|
513
|
+
regscale_cli-6.20.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|