regscale-cli 6.25.0.0__py3-none-any.whl → 6.25.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.

@@ -3,8 +3,8 @@
3
3
  """Model for a RegScale Security Control Implementation"""
4
4
  # standard python imports
5
5
  import logging
6
- from functools import lru_cache
7
6
  from enum import Enum
7
+ from functools import lru_cache
8
8
  from typing import Any, Callable, Dict, List, Optional, Union
9
9
  from urllib.parse import urljoin
10
10
 
@@ -262,7 +262,7 @@ class ControlImplementation(RegScaleModel):
262
262
  return cls._get_framework_default_responsibility(compliance_setting_id)
263
263
 
264
264
  # Ultimate fallback for unknown compliance settings
265
- return ControlImplementationOrigin.SERVICE_PROVIDER_CORPORATE.value
265
+ return ControlImplementationOrigin.ProviderSS.value
266
266
 
267
267
  @classmethod
268
268
  def _get_framework_default_responsibility(cls, compliance_setting_id: int) -> str:
@@ -3,7 +3,7 @@
3
3
  """Thread handler to create and start threads"""
4
4
 
5
5
  from concurrent.futures import ThreadPoolExecutor, TimeoutError, as_completed
6
- from typing import Any, Callable, List, Tuple, Union
6
+ from typing import Any, Callable, List, Optional, Tuple, Union
7
7
 
8
8
 
9
9
  class ThreadManager:
@@ -98,16 +98,7 @@ def create_threads(process: Callable, args: Tuple, thread_count: int) -> None:
98
98
  :param int thread_count: # of threads needed
99
99
  :rtype: None
100
100
  """
101
- # set max threads
102
- from regscale.core.app.application import Application
103
-
104
- app = Application()
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
101
+ max_threads = _determine_max_threads()
111
102
  if threads := min(thread_count, max_threads):
112
103
  # start the threads with the number of threads allowed
113
104
  with ThreadPoolExecutor(max_workers=threads) as executor:
@@ -127,15 +118,29 @@ def thread_assignment(thread: int, total_items: int) -> list:
127
118
  :return: List of items to process for the given thread
128
119
  :rtype: list
129
120
  """
121
+ max_threads = _determine_max_threads()
122
+
123
+ return [x for x in range(total_items) if x % max_threads == thread]
124
+
125
+
126
+ def _determine_max_threads(default: Optional[int] = 100) -> int:
127
+ """
128
+ Function to determine the max threads to use by checking the Application config
129
+
130
+ :param Optional[int] default: The default max threads to use if the Application config is not set, defaults to 100
131
+ :return: The max threads to use
132
+ :rtype: int
133
+ """
130
134
  from regscale.core.app.application import Application
131
135
 
132
136
  app = Application()
137
+ if app.running_in_airflow:
138
+ default = 20
133
139
  # set max threads
134
- max_threads = app.config.get("maxThreads", 100)
140
+ max_threads = app.config.get("maxThreads", default)
135
141
  if not isinstance(max_threads, int):
136
142
  try:
137
143
  max_threads = int(max_threads)
138
144
  except (ValueError, TypeError):
139
- max_threads = 100
140
-
141
- return [x for x in range(total_items) if x % max_threads == thread]
145
+ max_threads = default
146
+ return max_threads
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: regscale-cli
3
- Version: 6.25.0.0
3
+ Version: 6.25.1.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
@@ -1,5 +1,5 @@
1
1
  regscale/__init__.py,sha256=ZygAIkX6Nbjag1czWdQa-yP-GM1mBE_9ss21Xh__JFc,34
2
- regscale/_version.py,sha256=2VqR4bHAUJozo-V_QrqGicdNxrWhSlj6A87PDDLku9k,1198
2
+ regscale/_version.py,sha256=qXIgTADAR4x7Bs08Sx0ILzqiq6QkTVIVUbXG1Q5wDZQ,1198
3
3
  regscale/regscale.py,sha256=4LzcbkBxPh23cCLANVEEr6uNoZ0sebHec0N-VJm5_vA,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
@@ -112,10 +112,10 @@ regscale/integrations/__init__.py,sha256=Sqthp3Jggo7co_go380cLn3OAb0cHwqL609_4QJ
112
112
  regscale/integrations/api_paginator.py,sha256=73rjaNM9mGv8evHAeoObXEjZPg-bJuGPo60ewCLEil8,33192
113
113
  regscale/integrations/api_paginator_example.py,sha256=lEuYI-xEGcjnXuIzbCobCP0YRuukLF0s8S3d382SAH4,12119
114
114
  regscale/integrations/compliance_integration.py,sha256=as4cb4NWmY9mTaHtu75lvwxScB3OKE3Ge6ki7-zZNBE,91103
115
- regscale/integrations/due_date_handler.py,sha256=qIOeFx4LPvOTpqJx8JV5Hj3FLlx0FoaYAsFoXqxYBcs,8343
115
+ regscale/integrations/due_date_handler.py,sha256=RIT5OuKLeEU2XkSv5i8NIAyrLmJ39ZY4XFLxylw-L34,13861
116
116
  regscale/integrations/integration_override.py,sha256=HjYBCuvNpU3t3FptaqYAkdexLFOZBAFrFE9xU0RD1Nc,5867
117
117
  regscale/integrations/jsonl_scanner_integration.py,sha256=l8nq_T3rE1XX-6HxrNHm3xzxCNWbIjxQvGMdtZWs7KQ,57003
118
- regscale/integrations/scanner_integration.py,sha256=T9AkwDdL1V2e6G31MLFYsbMzkyX4emqmomsp_muOdew,187010
118
+ regscale/integrations/scanner_integration.py,sha256=Owy06vAXzYnq60tXG07oMpZGjThDwsXKngBa5U5MqLg,187636
119
119
  regscale/integrations/variables.py,sha256=MfQ34WuYVN5437A9sZ2ssHRkA3gFhMHfk1DVasceGmY,2336
120
120
  regscale/integrations/commercial/__init__.py,sha256=U2RIsRe4lKufADRwMJY0RhSbL6TX4jLxpCtbcnzvI3k,14607
121
121
  regscale/integrations/commercial/ad.py,sha256=YXSmK8vRf6yi2GnREGa5GrE6GelhFrLj44SY8AO1pK0,15509
@@ -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=c_ixudk6YBhXHhrjOFtSzknaaOQh-nl0GqLPgl7P1AA,49906
129
+ regscale/integrations/commercial/jira.py,sha256=svy64DXn09KEja810W70GfXwsdDRtnGLG5mNTbNW3K0,49915
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
@@ -218,7 +218,7 @@ regscale/integrations/commercial/stigv2/ckl_parser.py,sha256=RPrDGsKqAbTJMsJd3AY
218
218
  regscale/integrations/commercial/stigv2/click_commands.py,sha256=-765vFF03aSjBxU9SYCpca7x8fPaoTDNQtbk4fKuwYw,2792
219
219
  regscale/integrations/commercial/stigv2/stig_integration.py,sha256=-UlfL0BBI3jFGotctOJyTCRAU9zIXW6mwU7ySrRXE9U,11573
220
220
  regscale/integrations/commercial/synqly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
- regscale/integrations/commercial/synqly/assets.py,sha256=2D26tvMvNIpR9YuD0P2h_6oqXfZf5y93xGhb2hPFsn0,6785
221
+ regscale/integrations/commercial/synqly/assets.py,sha256=EY495sxSItKxkc5tp15KU_t8X9-MMt0-JCblv676QTY,7468
222
222
  regscale/integrations/commercial/synqly/edr.py,sha256=4EQSI2-5QnaWXh1idhndToFDOHOb3xycWAdc8NY4Auk,2836
223
223
  regscale/integrations/commercial/synqly/query_builder.py,sha256=1MAheCLG_3zUkvDeXbnCFEBybbG09OV-vUtBD0GLx0o,19306
224
224
  regscale/integrations/commercial/synqly/ticketing.py,sha256=akucc9Ok4cTcivH_rmG927WJetJDhZ0L4IF27OC_KOE,8352
@@ -241,7 +241,7 @@ regscale/integrations/commercial/wizv2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JC
241
241
  regscale/integrations/commercial/wizv2/async_client.py,sha256=CElkHxbSlNfRnvJpf4JTBD293NJxQsR-QaTBuHINrLw,12946
242
242
  regscale/integrations/commercial/wizv2/click.py,sha256=FkoXEUgZGQUyZNMdaDJTyNE8G_oXmIM5z6JlT-QQW8I,19831
243
243
  regscale/integrations/commercial/wizv2/compliance_report.py,sha256=lFTgm78lrTSXJyqGA-wUbKJ2jOnFaHsV8_Ex95iIO-M,68717
244
- regscale/integrations/commercial/wizv2/constants.py,sha256=emJHsfdsRuHhWTYqADV4-l6sZNJ-nWGj_l1abdFrXxk,49308
244
+ regscale/integrations/commercial/wizv2/constants.py,sha256=q5oxB4bMM0e45K4zQUqS_B-hHsEe8gpT3K9jrkg4_cg,48314
245
245
  regscale/integrations/commercial/wizv2/data_fetcher.py,sha256=CmJyUCeTQIkYBu2LPicpTNwXJrYkRP3xxM55BJQhr2A,16258
246
246
  regscale/integrations/commercial/wizv2/file_cleanup.py,sha256=ENBO9RDXL2kyHkBYaSai83i4kVTUJUF_F0JCj84i-ow,4178
247
247
  regscale/integrations/commercial/wizv2/finding_processor.py,sha256=Rn2dYob4cz24_Ks-UTwNQe-KQ6hmFWS6GB8PQXV0ZPE,11361
@@ -329,7 +329,7 @@ regscale/models/integration_models/azure_alerts.py,sha256=2etrpvcxa7jVQrc98bJlVG
329
329
  regscale/models/integration_models/base64.py,sha256=sxV6O5qY1_TstJENX5jBPsSdQwmA83-NNhgJFunXiZE,570
330
330
  regscale/models/integration_models/burp.py,sha256=FBEBkH3U0Q8vq71FFoWnvgLRF5Hkr9GYmQFmNNHFrVk,16932
331
331
  regscale/models/integration_models/burp_models.py,sha256=UytDTAcCaxyu-knFkm_mEUH6UmWK3OTXKSC9Sc6OjVs,3669
332
- regscale/models/integration_models/cisa_kev_data.json,sha256=ThBF9xf2lRbdlWY1ucsdJU7u6ysXCBqMG80S9MMds2s,1268609
332
+ regscale/models/integration_models/cisa_kev_data.json,sha256=2ex0O40ni9KX_RDUEoGIOEeKPELclHfeVehSDv6DJkM,1273678
333
333
  regscale/models/integration_models/defender_data.py,sha256=jsAcjKxiGmumGerj7xSWkFd6r__YpuKDnYX5o7xHDiE,2844
334
334
  regscale/models/integration_models/defenderimport.py,sha256=Ze4kgwns-IYPyO7sBjEzW8PXWlxwU-DAo2fIyRcTC3k,6242
335
335
  regscale/models/integration_models/drf.py,sha256=Aq7AdLa_CH97NrnR-CxaFI22JjVN9uCxVN7Z-BBUaNU,18896
@@ -360,7 +360,7 @@ regscale/models/integration_models/flat_file_importer/__init__.py,sha256=HYO7mrq
360
360
  regscale/models/integration_models/sbom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
361
361
  regscale/models/integration_models/sbom/cyclone_dx.py,sha256=0pFR0BWBrF5c8_cC_8mj2MXvNOMHOdHbBYXvTVfFAh8,4058
362
362
  regscale/models/integration_models/synqly_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
- regscale/models/integration_models/synqly_models/capabilities.json,sha256=Wcf7dY1zjVfdK5YRRq2lDK_bCPBI9k5TdKKczk4M2Qg,405530
363
+ regscale/models/integration_models/synqly_models/capabilities.json,sha256=wNGPBgqYl1jfBoJzRNcXFoSRtQwK8I2cHUmHov8UYgc,408808
364
364
  regscale/models/integration_models/synqly_models/connector_types.py,sha256=8nxptkTexpskySnmL0obNAff_iu_fx6tJ7i1-4hJvao,461
365
365
  regscale/models/integration_models/synqly_models/filter_parser.py,sha256=8rdnHH7gW1A_uWRTexZXzCH-HzRVy5nlvFgtc7ztcsQ,12160
366
366
  regscale/models/integration_models/synqly_models/ocsf_mapper.py,sha256=ftObPhGg9CamnwRZ5z6qi8pW2Gu4JYy8apEo33o7q00,16960
@@ -393,7 +393,7 @@ regscale/models/regscale_models/compliance_settings.py,sha256=F2q7OQEgYK-HrPmDHM
393
393
  regscale/models/regscale_models/component.py,sha256=Zbl-glM2WYtDRKtnQSyhXRDY9fqBTSSGz_2pMkAsawg,14196
394
394
  regscale/models/regscale_models/component_mapping.py,sha256=g0cbbW4X49SDdlB_YtKMrP4eiK9OkrJqiut0ucdyVDA,2162
395
395
  regscale/models/regscale_models/control.py,sha256=mO46F1IfiXnLSb3YhylaS3SyjtT51s-r8b3hjix9Gbc,1072
396
- regscale/models/regscale_models/control_implementation.py,sha256=xLvc8hO48VI1kDKVP3ixdu0SVxnsMbFnYFzi89wR7w0,56338
396
+ regscale/models/regscale_models/control_implementation.py,sha256=GMCY3mK_3Kt1qj_oKZqp6aOr3AKvMNzgStlDfxJQATY,56322
397
397
  regscale/models/regscale_models/control_objective.py,sha256=qGh8OtATjjc4JS-3bC1AX6TbgtRtz-I0dckbuZ2RzVo,9496
398
398
  regscale/models/regscale_models/control_parameter.py,sha256=5VVkbVZTb2Hzy_WiybU2JtrvhQp8DLSWxRcbSKxktiI,3499
399
399
  regscale/models/regscale_models/control_test.py,sha256=FG-fLS9JJf8__a84W2LtBXtEjzOH9iq2EO949vBx3eY,949
@@ -493,7 +493,7 @@ regscale/utils/string.py,sha256=pY4eMcXRruCfGRaWKPN5NTWj6bXiKytxmU6XSxK4y6k,4198
493
493
  regscale/utils/synqly_utils.py,sha256=DjkdAxdUJBOU5YfAJ7pFFNBPSP37Gs9NQS10xduaYmA,6324
494
494
  regscale/utils/version.py,sha256=bOH1vlvOEAt1f-fzzFxtZrg3VcnqL5SA4ud1TjZVQGU,4265
495
495
  regscale/utils/threading/__init__.py,sha256=AuPiT3EijkUL4BSxtEQw3TrSvFW6oIfQzxtdy5sBCkk,296
496
- regscale/utils/threading/threadhandler.py,sha256=5lp9US6bKwh372UqrTvvHWIIodCcPIUmpcfGeCwG3VM,5061
496
+ regscale/utils/threading/threadhandler.py,sha256=6K3f74A8nMCRhtz3XlCA0_Wqhx1L1pizYwdwoQLI4I8,5255
497
497
  regscale/utils/threading/threadsafe_counter.py,sha256=Dwt-jt4nN-ApMgpxONM7RFll6FU4hMCeZCW54rjDPjs,1037
498
498
  regscale/utils/threading/threadsafe_dict.py,sha256=XCVN5DoJsgZj-0tkDYAZb2QTLTZF9wS_ve-XKFJiywg,7656
499
499
  regscale/utils/threading/threadsafe_list.py,sha256=-ltEj-MQH0dN0z_5aalptwJw2_EAU6nn4RX32BDrhyI,2274
@@ -555,9 +555,9 @@ tests/regscale/models/test_regscale_model.py,sha256=ZsrEZkC4EtdIsoQuayn1xv2gEGcV
555
555
  tests/regscale/models/test_report.py,sha256=IqUq7C__a1_q_mLaz0PE9Lq6fHggBsB14-AzEYNBxLw,4666
556
556
  tests/regscale/models/test_tenable_integrations.py,sha256=y1qaW77H094VSGHjZdlvF66UCt-nPEib9Mv3cdwbM94,32435
557
557
  tests/regscale/models/test_user_model.py,sha256=e9olv28qBApgnvK6hFHOgXjUC-pkaV8aGDirEIWASL4,4427
558
- regscale_cli-6.25.0.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
559
- regscale_cli-6.25.0.0.dist-info/METADATA,sha256=O9zALayXiFJ3iPJ4BIgCxIpx1xHG1DpdL4Z7BJo8zBg,35027
560
- regscale_cli-6.25.0.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
561
- regscale_cli-6.25.0.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
562
- regscale_cli-6.25.0.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
563
- regscale_cli-6.25.0.0.dist-info/RECORD,,
558
+ regscale_cli-6.25.1.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
559
+ regscale_cli-6.25.1.0.dist-info/METADATA,sha256=VTNaM1w0tCru4UYRJFjuEBku-SEdjzRF0ITFAW2WMkE,35027
560
+ regscale_cli-6.25.1.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
561
+ regscale_cli-6.25.1.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
562
+ regscale_cli-6.25.1.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
563
+ regscale_cli-6.25.1.0.dist-info/RECORD,,