prelude-sdk-beta 1426__tar.gz → 1428__tar.gz

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 prelude-sdk-beta might be problematic. Click here for more details.

Files changed (34) hide show
  1. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/PKG-INFO +1 -1
  2. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/models/codes.py +10 -0
  3. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta.egg-info/PKG-INFO +1 -1
  4. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/setup.cfg +1 -1
  5. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/test_scm.py +16 -11
  6. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/LICENSE +0 -0
  7. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/README.md +0 -0
  8. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/__init__.py +0 -0
  9. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/__init__.py +0 -0
  10. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/build_controller.py +0 -0
  11. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/detect_controller.py +0 -0
  12. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/export_controller.py +0 -0
  13. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/generate_controller.py +0 -0
  14. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/http_controller.py +0 -0
  15. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/iam_controller.py +0 -0
  16. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/jobs_controller.py +0 -0
  17. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/partner_controller.py +0 -0
  18. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/probe_controller.py +0 -0
  19. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/controllers/scm_controller.py +0 -0
  20. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/models/__init__.py +0 -0
  21. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta/models/account.py +0 -0
  22. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta.egg-info/SOURCES.txt +0 -0
  23. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta.egg-info/dependency_links.txt +0 -0
  24. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta.egg-info/requires.txt +0 -0
  25. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/prelude_sdk_beta.egg-info/top_level.txt +0 -0
  26. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/pyproject.toml +0 -0
  27. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/test_build.py +0 -0
  28. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/test_detect.py +0 -0
  29. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/test_generate.py +0 -0
  30. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/test_iam.py +0 -0
  31. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/test_partner.py +0 -0
  32. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/test_probe.py +0 -0
  33. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/test_scm_build.py +0 -0
  34. {prelude_sdk_beta-1426 → prelude_sdk_beta-1428}/tests/testutils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prelude-sdk-beta
3
- Version: 1426
3
+ Version: 1428
4
4
  Summary: For interacting with the Prelude API
5
5
  Home-page: https://github.com/preludeorg
6
6
  Author: Prelude Research
@@ -420,6 +420,9 @@ class PartnerEvents(Enum, metaclass=MissingItem):
420
420
  MISSING_DISK_ENCRYPTION_POLICY = 19
421
421
  MISSING_DISK_ENCRYPTION = 20
422
422
  NO_REGISTERED_DEVICES = 21
423
+ MISSING_DEVICE_COMPLIANCE_POLICY = 22
424
+ NONCOMPLIANT_DEVICE = 23
425
+ MISSING_ASR_POLICY = 24
423
426
 
424
427
  @classmethod
425
428
  def _missing_(cls, value):
@@ -434,7 +437,9 @@ class PartnerEvents(Enum, metaclass=MissingItem):
434
437
  ControlCategory.IDENTITY,
435
438
  ControlCategory.XDR,
436
439
  ],
440
+ PartnerEvents.MISSING_ASR_POLICY: [ControlCategory.ASSET_MANAGER],
437
441
  PartnerEvents.MISSING_AV_POLICY: [ControlCategory.XDR],
442
+ PartnerEvents.MISSING_DEVICE_COMPLIANCE_POLICY: [ControlCategory.ASSET_MANAGER],
438
443
  PartnerEvents.MISSING_DISK_ENCRYPTION: [ControlCategory.ASSET_MANAGER],
439
444
  PartnerEvents.MISSING_DISK_ENCRYPTION_POLICY: [
440
445
  ControlCategory.ASSET_MANAGER
@@ -448,6 +453,7 @@ class PartnerEvents(Enum, metaclass=MissingItem):
448
453
  PartnerEvents.NO_REGISTERED_DEVICES: [ControlCategory.IDENTITY],
449
454
  PartnerEvents.NO_SERVER_MANAGER: [ControlCategory.ASSET_MANAGER],
450
455
  PartnerEvents.NO_VULN_MANAGER: [ControlCategory.VULN_MANAGER],
456
+ PartnerEvents.NONCOMPLIANT_DEVICE: [ControlCategory.ASSET_MANAGER],
451
457
  PartnerEvents.OUT_OF_DATE_FIRMWARE: [ControlCategory.NETWORK],
452
458
  PartnerEvents.OUT_OF_DATE_SCAN: [ControlCategory.VULN_MANAGER],
453
459
  PartnerEvents.REDUCED_FUNCTIONALITY_MODE: [ControlCategory.XDR],
@@ -479,6 +485,9 @@ class AlertTypes(Enum, metaclass=MissingItem):
479
485
  NEW_MISSING_DISK_ENCRYPTION_POLICY_ENDPOINTS = 20
480
486
  NEW_MISSING_DISK_ENCRYPTION_ENDPOINTS = 21
481
487
  NEW_NO_REGISTERED_DEVICES_USERS = 22
488
+ NEW_MISSING_DEVICE_COMPLIANCE_POLICY_ENDPOINTS = 23
489
+ NEW_NONCOMPLIANT_DEVICE_ENDPOINTS = 24
490
+ NEW_MISSING_ASR_POLICY_ENDPOINTS = 25
482
491
 
483
492
  @classmethod
484
493
  def _missing_(cls, value):
@@ -506,6 +515,7 @@ class PolicyType(Enum, metaclass=MissingItem):
506
515
  INTEL_TDT = 18
507
516
  INTEL_CHIP = 19
508
517
  DISK_ENCRYPTION = 20
518
+ ASR = 21
509
519
 
510
520
  @classmethod
511
521
  def _missing_(cls, value):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prelude-sdk-beta
3
- Version: 1426
3
+ Version: 1428
4
4
  Summary: For interacting with the Prelude API
5
5
  Home-page: https://github.com/preludeorg
6
6
  Author: Prelude Research
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = prelude-sdk-beta
3
- version = 1426
3
+ version = 1428
4
4
  author = Prelude Research
5
5
  author_email = support@preludesecurity.com
6
6
  description = For interacting with the Prelude API
@@ -168,6 +168,16 @@ class TestScmPerControl:
168
168
  raise e
169
169
 
170
170
  def test_evaluation(self, unwrap, control):
171
+ def _wait_for_policies(control, instance_id, category):
172
+ timeout = time.time() + 300
173
+ while time.time() < timeout:
174
+ evaluation = unwrap(self.scm.evaluation)(self.scm, control, instance_id)
175
+ evaluation = evaluation[f"{category}_evaluation"]
176
+ if len(evaluation["policies"]) > 0:
177
+ return evaluation
178
+ time.sleep(5)
179
+ assert False, "Timed out waiting for policies to show up in evaluation"
180
+
171
181
  instance_id = pytest.controls.get(control.value)
172
182
  assert instance_id
173
183
  evaluation = unwrap(self.scm.evaluation)(self.scm, control, instance_id)
@@ -178,7 +188,7 @@ class TestScmPerControl:
178
188
  control.control_category == ControlCategory.XDR
179
189
  or control == Control.INTUNE
180
190
  ):
181
- assert len(evaluation["policies"]) > 0
191
+ evaluation = _wait_for_policies(control, instance_id, "endpoint")
182
192
  assert {
183
193
  "excepted",
184
194
  "id",
@@ -194,19 +204,14 @@ class TestScmPerControl:
194
204
  elif "user_evaluation" in evaluation:
195
205
  evaluation = evaluation["user_evaluation"]
196
206
  assert {"policies"} == evaluation.keys()
197
- assert len(evaluation["policies"]) > 0
198
- assert {
199
- "excepted",
200
- "id",
201
- "name",
202
- "noncompliant_hostnames",
203
- "settings",
204
- "user_count",
205
- } == evaluation["policies"][0].keys()
207
+ evaluation = _wait_for_policies(control, instance_id, "user")
208
+ assert {"excepted", "id", "name", "settings", "user_count"} == evaluation[
209
+ "policies"
210
+ ][0].keys()
206
211
  elif "inbox_evaluation" in evaluation:
207
212
  evaluation = evaluation["inbox_evaluation"]
208
213
  assert {"policies"} == evaluation.keys()
209
- assert len(evaluation["policies"]) > 0
214
+ evaluation = _wait_for_policies(control, instance_id, "inbox")
210
215
  assert {"excepted", "id", "name", "settings", "inbox_count"} == evaluation[
211
216
  "policies"
212
217
  ][0].keys()
File without changes