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

Files changed (37) hide show
  1. regscale/_version.py +1 -1
  2. regscale/core/app/application.py +12 -5
  3. regscale/core/app/internal/set_permissions.py +58 -27
  4. regscale/integrations/commercial/nessus/scanner.py +2 -0
  5. regscale/integrations/commercial/sonarcloud.py +35 -36
  6. regscale/integrations/commercial/synqly/ticketing.py +51 -0
  7. regscale/integrations/integration_override.py +15 -6
  8. regscale/integrations/scanner_integration.py +163 -35
  9. regscale/models/integration_models/amazon_models/inspector_scan.py +32 -57
  10. regscale/models/integration_models/aqua.py +92 -78
  11. regscale/models/integration_models/cisa_kev_data.json +47 -4
  12. regscale/models/integration_models/defenderimport.py +64 -59
  13. regscale/models/integration_models/ecr_models/ecr.py +100 -147
  14. regscale/models/integration_models/flat_file_importer/__init__.py +52 -38
  15. regscale/models/integration_models/ibm.py +29 -47
  16. regscale/models/integration_models/nexpose.py +156 -68
  17. regscale/models/integration_models/prisma.py +46 -66
  18. regscale/models/integration_models/qualys.py +99 -93
  19. regscale/models/integration_models/snyk.py +229 -158
  20. regscale/models/integration_models/synqly_models/capabilities.json +1 -1
  21. regscale/models/integration_models/veracode.py +15 -20
  22. regscale/models/integration_models/xray.py +276 -82
  23. regscale/models/regscale_models/control_implementation.py +14 -12
  24. regscale/models/regscale_models/milestone.py +1 -1
  25. regscale/models/regscale_models/rbac.py +22 -0
  26. {regscale_cli-6.20.10.0.dist-info → regscale_cli-6.21.0.0.dist-info}/METADATA +1 -1
  27. {regscale_cli-6.20.10.0.dist-info → regscale_cli-6.21.0.0.dist-info}/RECORD +37 -36
  28. tests/fixtures/test_fixture.py +58 -2
  29. tests/regscale/core/test_app.py +5 -3
  30. tests/regscale/integrations/test_integration_mapping.py +522 -40
  31. tests/regscale/integrations/test_issue_due_date.py +1 -1
  32. tests/regscale/integrations/test_update_finding_dates.py +336 -0
  33. tests/regscale/models/test_asset.py +406 -50
  34. {regscale_cli-6.20.10.0.dist-info → regscale_cli-6.21.0.0.dist-info}/LICENSE +0 -0
  35. {regscale_cli-6.20.10.0.dist-info → regscale_cli-6.21.0.0.dist-info}/WHEEL +0 -0
  36. {regscale_cli-6.20.10.0.dist-info → regscale_cli-6.21.0.0.dist-info}/entry_points.txt +0 -0
  37. {regscale_cli-6.20.10.0.dist-info → regscale_cli-6.21.0.0.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  regscale/__init__.py,sha256=ZygAIkX6Nbjag1czWdQa-yP-GM1mBE_9ss21Xh__JFc,34
2
- regscale/_version.py,sha256=zh2hrx6vxQltHVLZfPv-UGj5D2ZIuaqi6v3bfQzOVGg,1199
2
+ regscale/_version.py,sha256=17Hr2OW5lfl7oIZmlsvv4nSvqpeEGwYv23YLZ2Wbe9s,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
@@ -36,7 +36,7 @@ regscale/core/lazy_group.py,sha256=S2-nA5tzm47A929NOTqGkzrzKuZQDlq2OAPbNnG1W1Q,2
36
36
  regscale/core/login.py,sha256=-8vy1HVAtv1iARnZh6uzYtwmx8VFYPwLYR0QAf1ttCk,2714
37
37
  regscale/core/app/__init__.py,sha256=nGcCN1vWBAnZzoccIlt0jwWQdegCOrBWOB7LPhQkQSs,96
38
38
  regscale/core/app/api.py,sha256=CSyUCV6haBAQ9IyE1FViJcAfTcoS5GJRaULwnRoAV9U,23499
39
- regscale/core/app/application.py,sha256=8s18603Q8DR0xni2c5Lv-NWzhmFynjD49tPlWkol2Lw,31407
39
+ regscale/core/app/application.py,sha256=-Or42DMJEIzaGWEMrYFVoXXm8i-sWAfbqNfk6Rxe99U,31641
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
@@ -52,7 +52,7 @@ regscale/core/app/internal/login.py,sha256=GsFaBwmSc32liWoRnMFy78m8SuB9pfUV0c1ly
52
52
  regscale/core/app/internal/migrations.py,sha256=wHIzb1uglLVOXawnb-K3Yt70Z5QyfQYb8ZZOMDrNRU4,7983
53
53
  regscale/core/app/internal/model_editor.py,sha256=0sxfg92TJYyECU9KwgHooXeY3ZdaF2i5gGWe1gButFY,61696
54
54
  regscale/core/app/internal/poam_editor.py,sha256=3PtpSMpV7bqKFuTHD2ACYcTyB3EEtTRKuYv-XArjd0A,22929
55
- regscale/core/app/internal/set_permissions.py,sha256=MbUxe-zaAz5hK3BZ4IeY7Xbr8-FZOuJwkCbs_yVBC-k,5666
55
+ regscale/core/app/internal/set_permissions.py,sha256=BfdzT-2l2bBFKgho4lwh5IhcqoDTZbLyxNyliGW-Yv8,6470
56
56
  regscale/core/app/internal/workflow.py,sha256=SpgYk1QyzdilVLOK1fFzaKhdLspumaugf5VezgboxhQ,4007
57
57
  regscale/core/app/utils/XMLIR.py,sha256=M_RrCsbjznihatkucCKw6dPgHTPQczXyqIdUXWhuCLI,8328
58
58
  regscale/core/app/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -111,9 +111,9 @@ 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/integration_override.py,sha256=PH7t_bf-RCe_it3FJ61tlKX5UghqHuSEQNJWDfCamAg,5480
114
+ regscale/integrations/integration_override.py,sha256=HjYBCuvNpU3t3FptaqYAkdexLFOZBAFrFE9xU0RD1Nc,5867
115
115
  regscale/integrations/jsonl_scanner_integration.py,sha256=l8nq_T3rE1XX-6HxrNHm3xzxCNWbIjxQvGMdtZWs7KQ,57003
116
- regscale/integrations/scanner_integration.py,sha256=5-BxYhs2AKMZPT9TBdpMtjW3CkZxgQMdlQN1sd6-0zA,137762
116
+ regscale/integrations/scanner_integration.py,sha256=gxSiwJtukI4MgICaPgGIX2UH1hSvqCanA5lV1XfOIIM,142841
117
117
  regscale/integrations/variables.py,sha256=MfQ34WuYVN5437A9sZ2ssHRkA3gFhMHfk1DVasceGmY,2336
118
118
  regscale/integrations/commercial/__init__.py,sha256=sVbzBnLbKRhnAmRsIw8kRvfbyJojPfVqzH3OlgoxvqM,13927
119
119
  regscale/integrations/commercial/ad.py,sha256=YXSmK8vRf6yi2GnREGa5GrE6GelhFrLj44SY8AO1pK0,15509
@@ -132,7 +132,7 @@ regscale/integrations/commercial/prisma.py,sha256=oYS31HlI7GiShUy0r9Luv57Ex3cGqd
132
132
  regscale/integrations/commercial/salesforce.py,sha256=vvXWlXxhJMQj45tU7wz7o4YbkhqjPlaMx_6SWYkI3Bs,36671
133
133
  regscale/integrations/commercial/servicenow.py,sha256=nUVZwt8-G1rQhwACX6i2BKIAjkMtd46uskBznxgOOsA,64014
134
134
  regscale/integrations/commercial/snyk.py,sha256=CriDWqzZAT9OHYEUNnxBrluzW1C-S4XyoyW2kS4lv4s,3222
135
- regscale/integrations/commercial/sonarcloud.py,sha256=_E4DuKRZUqXNNPsxS3UJ3q6llVu-5sfw5pTHxe_UMk0,9821
135
+ regscale/integrations/commercial/sonarcloud.py,sha256=df_cjj-N8DkneZjc_Mna2hbV9rg49gUHX3JD5TVANhw,10069
136
136
  regscale/integrations/commercial/sqlserver.py,sha256=PcDLmsZ9xU5NlFpwPZyMhhxCgX4JK2Ztn2S6kCG4mws,11614
137
137
  regscale/integrations/commercial/veracode.py,sha256=sKeGXvjqP8LfFP56xavAyx5CxfKxpJIEw-PTxrHJ8bc,3374
138
138
  regscale/integrations/commercial/xray.py,sha256=rsmlGqj4N7hzt6rW5UIKOBZD2maDVwXxOXiYKlI6F8c,2728
@@ -179,7 +179,7 @@ regscale/integrations/commercial/mappings/csf_controls.json,sha256=EHOLWrnFr0oRs
179
179
  regscale/integrations/commercial/mappings/nist_800_53_r5_controls.json,sha256=Vuh8RkKhX84U8VG2zoLG94QL7mvWIF28M-u8B4paxgw,123879
180
180
  regscale/integrations/commercial/nessus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
181
  regscale/integrations/commercial/nessus/nessus_utils.py,sha256=lP1_xVmYeyL17muy0jGMnJ5xdON3mi22BVAyDHa9WfU,13525
182
- regscale/integrations/commercial/nessus/scanner.py,sha256=xz-OBd98ZbKKWnuxsP7oTqTdqa30TQDQMMuPLm82hfU,17335
182
+ regscale/integrations/commercial/nessus/scanner.py,sha256=sQWoO1qCEl43Ww1fjJ3v231AVNWco5bKmuzzUM-Ax4Q,17455
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
@@ -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=RoteG9YUvnArlB5Kvmysc3hPTbzVrvuI_f4CQQSfAy8,6890
214
+ regscale/integrations/commercial/synqly/ticketing.py,sha256=akucc9Ok4cTcivH_rmG927WJetJDhZ0L4IF27OC_KOE,8352
215
215
  regscale/integrations/commercial/synqly/vulnerabilities.py,sha256=qPiw5oWOGQwZadkUIicgLZHwPSTNJpkDA39hooMCkGo,8868
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
@@ -307,42 +307,42 @@ regscale/models/app_models/import_validater.py,sha256=p9ZFqryVxDT1w8RJ5EOKuBQbNF
307
307
  regscale/models/app_models/mapping.py,sha256=tga2kCsEZT-YvnJIgiHy_qRcFp25Xzk0YkbkkZgwSEA,11265
308
308
  regscale/models/app_models/pipeline.py,sha256=qzrkQvvW6d8rqbBjMR8wkT2obez0tnKyY_TxtxLh6VE,909
309
309
  regscale/models/integration_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
310
- regscale/models/integration_models/aqua.py,sha256=qJeNik3gFzF7xHz39vz1nWYYktu2BTmiRSAU64MOwUY,9945
310
+ regscale/models/integration_models/aqua.py,sha256=XR2qrzCOI_bXrFPVcgbxUyaE1m0Oe2NSH7ph1hn8q2w,10697
311
311
  regscale/models/integration_models/azure_alerts.py,sha256=2etrpvcxa7jVQrc98bJlVGd3xPcw-YwJ65c3pfSf0uA,8408
312
312
  regscale/models/integration_models/base64.py,sha256=sxV6O5qY1_TstJENX5jBPsSdQwmA83-NNhgJFunXiZE,570
313
313
  regscale/models/integration_models/burp.py,sha256=FBEBkH3U0Q8vq71FFoWnvgLRF5Hkr9GYmQFmNNHFrVk,16932
314
314
  regscale/models/integration_models/burp_models.py,sha256=UytDTAcCaxyu-knFkm_mEUH6UmWK3OTXKSC9Sc6OjVs,3669
315
- regscale/models/integration_models/cisa_kev_data.json,sha256=jrZaPTEY6JkF7QinRoRT91C7nohLCCM_hm68lOWjWyE,1243393
315
+ regscale/models/integration_models/cisa_kev_data.json,sha256=au0nG1gScjLv7evVJ9pqqtwEtqThCERCD9_9NtxUvAg,1246793
316
316
  regscale/models/integration_models/defender_data.py,sha256=jsAcjKxiGmumGerj7xSWkFd6r__YpuKDnYX5o7xHDiE,2844
317
- regscale/models/integration_models/defenderimport.py,sha256=OFwEH0Xu-HFLIZJZ8hP60Ov3lS8RR7KHEsw4wI8QnoE,5766
317
+ regscale/models/integration_models/defenderimport.py,sha256=Ze4kgwns-IYPyO7sBjEzW8PXWlxwU-DAo2fIyRcTC3k,6242
318
318
  regscale/models/integration_models/drf.py,sha256=Aq7AdLa_CH97NrnR-CxaFI22JjVN9uCxVN7Z-BBUaNU,18896
319
319
  regscale/models/integration_models/grype_import.py,sha256=MgCEK_jCwY7NTXZgxQtnXLbovmH7OuSOmSOm-a7egZg,9710
320
- regscale/models/integration_models/ibm.py,sha256=S2LZkHhxfRBTAS8T2mwiQ_pCfoX1-UwvFXRNz1rb7g0,4760
320
+ regscale/models/integration_models/ibm.py,sha256=mDUz7OUSx0vVhB3Y8NwYh8VSyNCHTyE72fghYGnaBTs,4064
321
321
  regscale/models/integration_models/implementation_results.py,sha256=nJOAFPMS73SudAA2dzxxxRu6h5qagPmr6H9NAOLWzLw,2704
322
322
  regscale/models/integration_models/jira_task_sync.py,sha256=FVfIms0fzc9WLprda7rn1wmFFz7tXCuEFHnzln9qkdE,918
323
- regscale/models/integration_models/nexpose.py,sha256=mfaVZP9GVbCwdqEYGrGZ0pwSdDXCPKjOK4yR7d7I4oU,5654
324
- regscale/models/integration_models/prisma.py,sha256=83LeS96rUgaZvPzl6ei_FWjTFBojsyqzMWoSJ1CnsJ0,8280
325
- regscale/models/integration_models/qualys.py,sha256=YrMKA4i03EQ63LyFdbIsFfPMCRJC9ZWj__gv8Nb3xfo,27913
323
+ regscale/models/integration_models/nexpose.py,sha256=yMcTGR2BnOPhurCosM-WvJ7DkXi2LUphxdjN-qqjQsw,9078
324
+ regscale/models/integration_models/prisma.py,sha256=YJrJoSizkE5lzPjTkNme2akHqAux5BJ1oRXaMATNzrU,7509
325
+ regscale/models/integration_models/qualys.py,sha256=1SMyAf5glPIrUklvSFgaWPliMTohVjlSrUUEFOcaxN8,28198
326
326
  regscale/models/integration_models/qualys_scanner.py,sha256=6rAeCR9qI10MM_LWtZtOhWaT6mERWtII2IxxyvQhfKw,6453
327
327
  regscale/models/integration_models/send_reminders.py,sha256=h9zOX5Hb7e4K7qFmG-FixuNK1cHF0OF4HQl2W9fiIqE,26358
328
- regscale/models/integration_models/snyk.py,sha256=Wk04Dbz67s2uniWkfllRHhlEBrRYiZq5CRwkOpDyHls,11524
328
+ regscale/models/integration_models/snyk.py,sha256=uxPAKcfbMX6GyNaPmKOex1OHJIcSkXTdnLK2TKBkjO4,13986
329
329
  regscale/models/integration_models/trivy_import.py,sha256=R6aZXUaNKf5Gdo1kNxIKM-HMW95XDWVCG_gMrzDYNuQ,9210
330
- regscale/models/integration_models/veracode.py,sha256=qcNllrTstGshpTaWDFm0Z-XYbP-mSVMWWiGoq5karO0,10431
331
- regscale/models/integration_models/xray.py,sha256=rnDF9kOAYMhTO9xEi1bwmIrQvfTCQAW6ENNp3Hsfaes,5848
330
+ regscale/models/integration_models/veracode.py,sha256=kYwsIojZDMxeXdUCio7XyNob4DHM0x-c8jv4zQCWoS0,10147
331
+ regscale/models/integration_models/xray.py,sha256=U2XFPzBXrGhPiYNKSuderJ-ARf1-GcGuMJr2fcXZrs8,12755
332
332
  regscale/models/integration_models/amazon_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
333
333
  regscale/models/integration_models/amazon_models/inspector.py,sha256=AcV_Nk4ZJMJqmRMpmpbu8LDqp4F2D6GD_IcKsh9MYcs,12915
334
- regscale/models/integration_models/amazon_models/inspector_scan.py,sha256=A1uaOvT2r65_oOiZxShNMKJ7ynhoU97Kq3-zVZR8iVI,7584
334
+ regscale/models/integration_models/amazon_models/inspector_scan.py,sha256=xrvDBUW--DPR6Onr47zDiNt8wx9-vkf1LEWN9Q9CvO0,6488
335
335
  regscale/models/integration_models/axonius_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
336
336
  regscale/models/integration_models/axonius_models/connectors/__init__.py,sha256=UjMN_T802sixmbVIBM43v7KDt3yyUZpAKWQ3r_nvalE,63
337
337
  regscale/models/integration_models/axonius_models/connectors/assets.py,sha256=6m9sSyW3z8PEPgtElaI3m6GGQW6STAB4_8liaD3U7i4,4740
338
338
  regscale/models/integration_models/ecr_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
339
  regscale/models/integration_models/ecr_models/data.py,sha256=l28DCidXar1JygYBQZL9MYenQA9N-Cx3Skf51IOjZcw,1017
340
- regscale/models/integration_models/ecr_models/ecr.py,sha256=-s_5mj4BVKImrvfMaOJLT4qc5EqTCbv8qM4uJiH_nKc,9502
341
- regscale/models/integration_models/flat_file_importer/__init__.py,sha256=Z-Gzk6v8h_JzHHuwlUr3R_vrBipLscfM0g_f8yjSVvw,40313
340
+ regscale/models/integration_models/ecr_models/ecr.py,sha256=oAkQ-SDS3Mjrn291dh9qF5LaRYGFJnmuNY28UyrzIfg,7293
341
+ regscale/models/integration_models/flat_file_importer/__init__.py,sha256=IoM8SPjccK0X4reUjc2jH5bA8iDeVwwO4OENSRveCpk,40648
342
342
  regscale/models/integration_models/sbom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
343
343
  regscale/models/integration_models/sbom/cyclone_dx.py,sha256=0pFR0BWBrF5c8_cC_8mj2MXvNOMHOdHbBYXvTVfFAh8,4058
344
344
  regscale/models/integration_models/synqly_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
345
- regscale/models/integration_models/synqly_models/capabilities.json,sha256=2ZTnp6OLOsPd_EKAVf3tlXHA0Gs3-rM83ja38YC9lxg,361465
345
+ regscale/models/integration_models/synqly_models/capabilities.json,sha256=cNRDSSzgsKJM7QDh3VyvE2Sly9dRzbUTyMaGDy1jWNA,378892
346
346
  regscale/models/integration_models/synqly_models/connector_types.py,sha256=8nxptkTexpskySnmL0obNAff_iu_fx6tJ7i1-4hJvao,461
347
347
  regscale/models/integration_models/synqly_models/ocsf_mapper.py,sha256=e2kTOhWSNRnzbgMchMx-7c21pCgSv2DqWnxvajKEKJM,16960
348
348
  regscale/models/integration_models/synqly_models/param.py,sha256=Xt5Zm6lC_VkLj7LF2qXo72TJZHysqttsp5ai0NCf1po,2643
@@ -374,7 +374,7 @@ regscale/models/regscale_models/compliance_settings.py,sha256=e0Ghjozt8iCgzmCPfY
374
374
  regscale/models/regscale_models/component.py,sha256=zURPe-unWeHpkx6OoVq3AxdOYp7Ci14xXMy-AjYmXik,14149
375
375
  regscale/models/regscale_models/component_mapping.py,sha256=g0cbbW4X49SDdlB_YtKMrP4eiK9OkrJqiut0ucdyVDA,2162
376
376
  regscale/models/regscale_models/control.py,sha256=mO46F1IfiXnLSb3YhylaS3SyjtT51s-r8b3hjix9Gbc,1072
377
- regscale/models/regscale_models/control_implementation.py,sha256=mPpoCPxgCK7oYW-wKMfPzBgYeP9qqY9u71jRdSu44gY,50157
377
+ regscale/models/regscale_models/control_implementation.py,sha256=koDSnt2QDrO71Wv4AeXYT13PB_Ca6QKVp9UOcAM6Rn8,50333
378
378
  regscale/models/regscale_models/control_objective.py,sha256=qGh8OtATjjc4JS-3bC1AX6TbgtRtz-I0dckbuZ2RzVo,9496
379
379
  regscale/models/regscale_models/control_parameter.py,sha256=5VVkbVZTb2Hzy_WiybU2JtrvhQp8DLSWxRcbSKxktiI,3499
380
380
  regscale/models/regscale_models/control_test.py,sha256=FG-fLS9JJf8__a84W2LtBXtEjzOH9iq2EO949vBx3eY,949
@@ -406,7 +406,7 @@ regscale/models/regscale_models/line_of_inquiry.py,sha256=Uu0lQEhif0W6yTSkJo27Gy
406
406
  regscale/models/regscale_models/link.py,sha256=lAY4Ig3Menm1EqfcAbVJ7jsCsRO5tWtJIf-9-G9FXT8,6593
407
407
  regscale/models/regscale_models/master_assessment.py,sha256=t03-8vQJ7hnPNgEU0GSC1XGKOgAqHKuIupbt5IjJvtI,7322
408
408
  regscale/models/regscale_models/meta_data.py,sha256=Fg8rrWSTx3K00QkF4glH9UdY9OFWJ4_UqxleLSSbx8I,2482
409
- regscale/models/regscale_models/milestone.py,sha256=CtG_tFIahDBgORGX9Ad2b-IOyI4chc3ZodnEJJ2KPTY,1229
409
+ regscale/models/regscale_models/milestone.py,sha256=ooYVlao19fwwCXErhewwMvXqGjGLWW3EL_PQ_0lYQWY,1229
410
410
  regscale/models/regscale_models/module.py,sha256=a7lalHmVTQ04ZILnJxuFWdHYDtyusBMTtonD4ICL-Wc,7272
411
411
  regscale/models/regscale_models/modules.py,sha256=yeva_tct88o2NFt93_zmqUcXZ3LucVbAv5FvQPru3cQ,8551
412
412
  regscale/models/regscale_models/objective.py,sha256=aJIpmkZ-NscqV2y8SGB4HYzm615b6mklyHnW9bL2ljk,249
@@ -423,7 +423,7 @@ regscale/models/regscale_models/property.py,sha256=gHF-2b_ddBbW9igXRUM6Rcy0GUGfe
423
423
  regscale/models/regscale_models/question.py,sha256=aa3nDy3qs5VdoO_NiQuRxtKMPJcLixS5lWyUwi04u1c,3937
424
424
  regscale/models/regscale_models/questionnaire.py,sha256=QMSXfNpSoaS8tkeo80C7OWLjCcoyr5J2dCIDocyvnzE,3710
425
425
  regscale/models/regscale_models/questionnaire_instance.py,sha256=1LgGTwFACmWx2xOOqUKhAUOms4_3L6NZySzuteg0_sI,8241
426
- regscale/models/regscale_models/rbac.py,sha256=oHzKqwL4bkH2XT4WaslbNlMnWayrSKP9zYbG72e2ijk,4522
426
+ regscale/models/regscale_models/rbac.py,sha256=ulT9BzOpYNNVlBVfOmreGDTTAgzkAY5Si2rQhhIcUmY,5302
427
427
  regscale/models/regscale_models/reference.py,sha256=P_7jT6H-NZIa7TyH3j98N-ZHlB6FsjpZVRZCCpms-D4,3253
428
428
  regscale/models/regscale_models/regscale_model.py,sha256=5B5NOMS9b0Oz8CDoiyU5FDNRWIsYMm1KPeC98QNnKxk,69748
429
429
  regscale/models/regscale_models/requirement.py,sha256=-8PnMbuWAZHol5X1w-fzm-moD784Et0oevSVbz6xLhU,767
@@ -486,7 +486,7 @@ regscale/visualization/click.py,sha256=-fxIwc-RrI3iHdMNTk_dhplC8yUjZXcWuHfZa7ULR
486
486
  tests/fixtures/__init__.py,sha256=sLuJtRNqBRm8lpE2yKvZFIqwtYho5A5O8KbJj_IpKhQ,41
487
487
  tests/fixtures/api.py,sha256=32EY2VZxumbPAP58ZkS0_SH4UewY9Z-ZzWrP2Unwnog,2629
488
488
  tests/fixtures/models.py,sha256=pWKwexocbJDfMGdiuafgHEz1RklO_24znfd3LsgdXEs,3569
489
- tests/fixtures/test_fixture.py,sha256=ndhBx4jR0snD5ONGZhBTUPzn5pRB5s9wxMR-lMRd9XM,6229
489
+ tests/fixtures/test_fixture.py,sha256=Z1DtzrhszeQ-I0sbu8p_fymG3ngAF5eknrPZNCLn_Cs,8222
490
490
  tests/mocks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
491
491
  tests/mocks/objects.py,sha256=KfCpzXpwWl-3zCLihQ3ZrQONW8Jk7F4UbcAgPz2LnnQ,99
492
492
  tests/mocks/response.py,sha256=fUF2jrrxgmGUKXUcWWOSA457yrEyM1EB28G6RqPO9a0,1040
@@ -497,7 +497,7 @@ tests/regscale/test_authorization.py,sha256=fls5ODCYiu0DdkwXFepO_GM-BP6tRaPmMCZW
497
497
  tests/regscale/test_init.py,sha256=O_3Dh7s7ObycIZyd0-Y10NCTKdGnrnotcpU6CUB5pno,4180
498
498
  tests/regscale/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
499
499
  tests/regscale/core/test_api.py,sha256=25AsIT-jg8SrlkPeynUwwm4PvTOrHcRO2Ba_omnNLUY,7512
500
- tests/regscale/core/test_app.py,sha256=4uoFFGRbyBMJCbxE9Ykevg6AUC8Vcu7qu1q-LR8KiN8,42228
500
+ tests/regscale/core/test_app.py,sha256=wvxpp5Wyag2T5-LmPZL02yrYiH8tedVSRle8RhrlB38,42380
501
501
  tests/regscale/core/test_login.py,sha256=Kl7ySS8JU7SzhmupaDexeUH8VOMjtMRJvW8-CimxHqU,1166
502
502
  tests/regscale/core/test_logz.py,sha256=Yf6tAthETLlYOEp3hee3ovDw-WnZ_6fTw3e1rjx4xSw,2621
503
503
  tests/regscale/core/test_sbom_generator.py,sha256=lgzo1HRbkNIIDZIeKiM2JbbIYQsak0BpU0GlvbrcexM,2935
@@ -506,14 +506,15 @@ tests/regscale/core/test_version.py,sha256=q8F2ERXxdToXbYxfOcP9f6lkUYaxF4jEmsPUm
506
506
  tests/regscale/core/test_version_regscale.py,sha256=Amz4RfM6Xm8OnA9F4phAoJdrJMrsgU25b9Q6QxXOLTs,2013
507
507
  tests/regscale/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
508
508
  tests/regscale/integrations/test_api_paginator.py,sha256=42-F8FMkJwkZ1Xlsj7YYVyOb6-rbxwI4F4H6Y4ZI9jA,18973
509
- tests/regscale/integrations/test_integration_mapping.py,sha256=ffl7opp6_IDxScSOfULy8ASqytYUMAqGA5c3PpAu3u8,1981
509
+ tests/regscale/integrations/test_integration_mapping.py,sha256=cXfWuE1h5Wrs-Nb--d83v0fllMQOs_IxYxquBJ90YNg,22549
510
510
  tests/regscale/integrations/test_issue_creation.py,sha256=L4Fjww16S6sst2kqLoE0PK6WYL_pijSMzzxpWzdajRo,12089
511
- tests/regscale/integrations/test_issue_due_date.py,sha256=W8TVOlsB3nIVJdTHm0UKTsBFycTdpVDDji0-eUFXmMg,1448
511
+ tests/regscale/integrations/test_issue_due_date.py,sha256=Dh2JAxgOdbucIOGtxfefsYxGsNQlgx2Gk-g1Vguv_6A,1448
512
512
  tests/regscale/integrations/test_property_and_milestone_creation.py,sha256=2Rx2maM7-4DMYpOH4pV6vcx3NDA84wXfqMwGvaAMVBo,26555
513
+ tests/regscale/integrations/test_update_finding_dates.py,sha256=2cyDpwnZUS965f84hNE4rb8BjuAYOLMK-zuLD6nai9k,13517
513
514
  tests/regscale/integrations/transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
514
515
  tests/regscale/integrations/transformer/test_data_transformer.py,sha256=Na-trXL2n97b6H6V9CwVU4nvqkL8HMy7E2yvAuhKtSo,36584
515
516
  tests/regscale/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
516
- tests/regscale/models/test_asset.py,sha256=eFt-GvH5rkAT04LxtdfnR88LoqSPT6a-1fScMchp8lE,2435
517
+ tests/regscale/models/test_asset.py,sha256=YVQ0wAyjOf6LyhbUnNCHgI5-7VMKlBvb7dU886r7br8,16668
517
518
  tests/regscale/models/test_config.py,sha256=r2mIJJDpmnLYZjw8Nw7yTzwZCsHbmfZD4rHSupfeOec,797
518
519
  tests/regscale/models/test_control_implementation.py,sha256=r3J5B5TnsVJfnKnQq6KlYiJnt7F1kwRr5FzZh58YcFE,1060
519
520
  tests/regscale/models/test_import.py,sha256=wG6KThJOXJe4wlFZpv4J0Lnpe4IBmU7VE13Sl4FT7xw,3949
@@ -524,9 +525,9 @@ tests/regscale/models/test_regscale_model.py,sha256=ZsrEZkC4EtdIsoQuayn1xv2gEGcV
524
525
  tests/regscale/models/test_report.py,sha256=IqUq7C__a1_q_mLaz0PE9Lq6fHggBsB14-AzEYNBxLw,4666
525
526
  tests/regscale/models/test_tenable_integrations.py,sha256=PNJC2Zu6lv1xj7y6e1yOsz5FktSU3PRKb5x3n5YG3w0,4072
526
527
  tests/regscale/models/test_user_model.py,sha256=e9olv28qBApgnvK6hFHOgXjUC-pkaV8aGDirEIWASL4,4427
527
- regscale_cli-6.20.10.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
528
- regscale_cli-6.20.10.0.dist-info/METADATA,sha256=wi7EpqhaNY_S9B4SnF99NjdfdS82RAGbt-xWFO4ab24,34956
529
- regscale_cli-6.20.10.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
530
- regscale_cli-6.20.10.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
531
- regscale_cli-6.20.10.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
532
- regscale_cli-6.20.10.0.dist-info/RECORD,,
528
+ regscale_cli-6.21.0.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
529
+ regscale_cli-6.21.0.0.dist-info/METADATA,sha256=dEQpH991O5ex_8-JIrcn7ZnjWJoRSVsLR0YTq9S7BBE,34955
530
+ regscale_cli-6.21.0.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
531
+ regscale_cli-6.21.0.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
532
+ regscale_cli-6.21.0.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
533
+ regscale_cli-6.21.0.0.dist-info/RECORD,,
@@ -12,10 +12,11 @@ from typing import Optional, Union
12
12
  import pytest
13
13
  import yaml
14
14
 
15
- from regscale.models import SecurityPlan
15
+ from regscale.models import SecurityPlan, Assessment, Issue
16
16
  from regscale.core.app.api import Api
17
17
  from regscale.core.app.application import Application
18
- from regscale.core.app.internal.login import login
18
+ from regscale.core.app.internal.login import login, parse_user_id_from_jwt, validate_user_id
19
+ from regscale.core.app.utils.app_utils import get_current_datetime
19
20
  from tests.conftest_utils import INIT_CONF_PYTEST
20
21
 
21
22
 
@@ -171,3 +172,58 @@ class CLITestFixture:
171
172
  # Cleanup after all tests in the class are done
172
173
  if security_plan:
173
174
  security_plan.delete()
175
+
176
+ @pytest.fixture(scope="class")
177
+ def create_assessment(self, request, generate_uuid, create_security_plan):
178
+ """Create an assessment for testing"""
179
+ assessment = None
180
+ security_plan = create_security_plan
181
+
182
+ app = Application()
183
+ token = os.getenv("REGSCALE_TOKEN") or app.config.get("token")
184
+ if not token:
185
+ pytest.skip("No token found, skipping assessment creation")
186
+
187
+ user_id = parse_user_id_from_jwt(app, token)
188
+
189
+ if not validate_user_id(app, user_id):
190
+ pytest.skip("Invalid user id, skipping assessment creation")
191
+
192
+ try:
193
+ assessment_obj = Assessment(
194
+ parentId=security_plan.id,
195
+ parentModule=security_plan.get_module_string(),
196
+ title=generate_uuid,
197
+ status="In Progress",
198
+ leadAssessorId=user_id,
199
+ assessmentType="Self",
200
+ plannedStart=get_current_datetime(),
201
+ plannedFinish=get_current_datetime(),
202
+ )
203
+ assessment = assessment_obj.create()
204
+
205
+ yield assessment
206
+ finally:
207
+ if assessment:
208
+ assessment.delete()
209
+
210
+ @pytest.fixture(scope="class")
211
+ def create_issue(self, request, generate_uuid, create_security_plan):
212
+ """Create an issue for testing"""
213
+ issue = None
214
+ security_plan = create_security_plan
215
+ try:
216
+ issue = Issue(
217
+ parentId=security_plan.id,
218
+ parentModule=security_plan.get_module_string(),
219
+ title=generate_uuid,
220
+ dueDate=get_current_datetime(),
221
+ status="Open",
222
+ description="Test Issue",
223
+ )
224
+ issue = issue.create()
225
+
226
+ yield issue
227
+ finally:
228
+ if issue:
229
+ issue.delete()
@@ -497,9 +497,11 @@ class TestApplication:
497
497
 
498
498
  def test_gen_config_airflow(self):
499
499
  self.app.running_in_airflow = True
500
- with patch.object(self.app, "_get_airflow_config", return_value={"key": "value"}):
501
- config = self.app._gen_config()
502
- assert config == {"key": "value"}
500
+ test_config = {"key": "value"}
501
+ with patch.object(self.app, "_fetch_config_from_regscale", return_value=test_config):
502
+ config = Application(config=test_config).config
503
+ assert len(config) > len(test_config) # ensure the template values are being added
504
+ assert config["key"] == "value"
503
505
 
504
506
  def test_gen_config_with_provided_config(self):
505
507
  self.app.local_config = True