prelude-sdk 2.6.36__tar.gz → 2.6.38__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.
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/PKG-INFO +1 -1
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/iam_controller.py +9 -1
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/models/codes.py +22 -3
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk.egg-info/PKG-INFO +1 -1
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/setup.cfg +1 -1
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/test_partner.py +18 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/test_scm.py +11 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/LICENSE +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/README.md +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/__init__.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/__init__.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/build_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/detect_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/export_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/generate_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/http_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/jobs_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/partner_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/probe_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/controllers/scm_controller.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/models/__init__.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk/models/account.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk.egg-info/SOURCES.txt +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk.egg-info/dependency_links.txt +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk.egg-info/requires.txt +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/prelude_sdk.egg-info/top_level.txt +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/pyproject.toml +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/test_build.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/test_detect.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/test_generate.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/test_iam.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/test_probe.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/test_scm_build.py +0 -0
- {prelude_sdk-2.6.36 → prelude_sdk-2.6.38}/tests/testutils.py +0 -0
|
@@ -30,13 +30,21 @@ class IAMAccountController(HttpController):
|
|
|
30
30
|
return res.json()
|
|
31
31
|
|
|
32
32
|
@verify_credentials
|
|
33
|
-
def update_account(
|
|
33
|
+
def update_account(
|
|
34
|
+
self,
|
|
35
|
+
company: str = None,
|
|
36
|
+
inactivity_timeout: int = None,
|
|
37
|
+
mode: Mode = None,
|
|
38
|
+
slug: str = None,
|
|
39
|
+
):
|
|
34
40
|
"""Update properties on an account"""
|
|
35
41
|
body = dict()
|
|
36
42
|
if mode is not None:
|
|
37
43
|
body["mode"] = mode.name
|
|
38
44
|
if company is not None:
|
|
39
45
|
body["company"] = company
|
|
46
|
+
if inactivity_timeout is not None:
|
|
47
|
+
body["inactivity_timeout"] = inactivity_timeout
|
|
40
48
|
if slug is not None:
|
|
41
49
|
body["slug"] = slug
|
|
42
50
|
|
|
@@ -187,6 +187,8 @@ class Control(Enum, metaclass=MissingItem):
|
|
|
187
187
|
INTEL_INTUNE = 28
|
|
188
188
|
CISCO_MERAKI = 29
|
|
189
189
|
CISCO_MERAKI_IDENTITY = 30
|
|
190
|
+
CROWDSTRIKE_VULN = 31
|
|
191
|
+
DEFENDER_VULN = 32
|
|
190
192
|
|
|
191
193
|
@classmethod
|
|
192
194
|
def _missing_(cls, value):
|
|
@@ -295,6 +297,10 @@ class Control(Enum, metaclass=MissingItem):
|
|
|
295
297
|
return "Cisco Meraki"
|
|
296
298
|
case Control.CISCO_MERAKI_IDENTITY:
|
|
297
299
|
return "Cisco Meraki Identity"
|
|
300
|
+
case Control.CROWDSTRIKE_VULN:
|
|
301
|
+
return "CrowdStrike Vulnerability Management"
|
|
302
|
+
case Control.DEFENDER_VULN:
|
|
303
|
+
return "Microsoft Defender Vulnerability Management"
|
|
298
304
|
case _:
|
|
299
305
|
return "Unknown Control"
|
|
300
306
|
|
|
@@ -359,6 +365,8 @@ class ControlCategory(Enum, metaclass=MissingItem):
|
|
|
359
365
|
Control.VECTR,
|
|
360
366
|
],
|
|
361
367
|
ControlCategory.VULN_MANAGER: [
|
|
368
|
+
Control.CROWDSTRIKE_VULN,
|
|
369
|
+
Control.DEFENDER_VULN,
|
|
362
370
|
Control.QUALYS,
|
|
363
371
|
Control.RAPID7,
|
|
364
372
|
Control.TENABLE,
|
|
@@ -418,8 +426,10 @@ class SCMCategory(Enum, metaclass=MissingItem):
|
|
|
418
426
|
Control.AWS_SSM,
|
|
419
427
|
Control.AZURE_VM,
|
|
420
428
|
Control.CROWDSTRIKE,
|
|
429
|
+
Control.CROWDSTRIKE_VULN,
|
|
421
430
|
Control.DEFENDER,
|
|
422
431
|
Control.DEFENDER_DISCOVERY,
|
|
432
|
+
Control.DEFENDER_VULN,
|
|
423
433
|
Control.EC2,
|
|
424
434
|
Control.INTEL_INTUNE,
|
|
425
435
|
Control.INTUNE,
|
|
@@ -533,13 +543,22 @@ class PartnerEvents(Enum, metaclass=MissingItem):
|
|
|
533
543
|
PartnerEvents.MISSING_SERVER_MANAGER: [ControlCategory.ASSET_MANAGER],
|
|
534
544
|
PartnerEvents.MISSING_VULN_MANAGER: [ControlCategory.VULN_MANAGER],
|
|
535
545
|
PartnerEvents.MISSING_VULN_SCAN: [ControlCategory.VULN_MANAGER],
|
|
536
|
-
PartnerEvents.NO_ASR_POLICY: [
|
|
537
|
-
|
|
546
|
+
PartnerEvents.NO_ASR_POLICY: [
|
|
547
|
+
ControlCategory.ASSET_MANAGER,
|
|
548
|
+
ControlCategory.XDR,
|
|
549
|
+
],
|
|
550
|
+
PartnerEvents.NO_AV_POLICY: [
|
|
551
|
+
ControlCategory.ASSET_MANAGER,
|
|
552
|
+
ControlCategory.XDR,
|
|
553
|
+
],
|
|
538
554
|
PartnerEvents.NO_DEVICE_COMPLIANCE_POLICY: [ControlCategory.ASSET_MANAGER],
|
|
539
555
|
PartnerEvents.NO_DISK_ENCRYPTION: [ControlCategory.ASSET_MANAGER],
|
|
540
556
|
PartnerEvents.NO_DISK_ENCRYPTION_POLICY: [ControlCategory.ASSET_MANAGER],
|
|
541
557
|
PartnerEvents.NO_EDR_POLICY: [ControlCategory.XDR],
|
|
542
|
-
PartnerEvents.NO_HOST_FIREWALL_POLICY: [
|
|
558
|
+
PartnerEvents.NO_HOST_FIREWALL_POLICY: [
|
|
559
|
+
ControlCategory.ASSET_MANAGER,
|
|
560
|
+
ControlCategory.XDR,
|
|
561
|
+
],
|
|
543
562
|
PartnerEvents.NO_REGISTERED_DEVICES: [ControlCategory.IDENTITY],
|
|
544
563
|
PartnerEvents.NONCOMPLIANT: [ControlCategory.ASSET_MANAGER],
|
|
545
564
|
PartnerEvents.OUT_OF_DATE_FIRMWARE: [ControlCategory.NETWORK],
|
|
@@ -498,3 +498,21 @@ class TestPartner:
|
|
|
498
498
|
assert res["pagination"]["offset"] == 0
|
|
499
499
|
assert res["pagination"]["total"] > 0
|
|
500
500
|
pytest.crowdstrike_advisory_id = res["advisories"][0]["id"]
|
|
501
|
+
|
|
502
|
+
def test_delete_endpoint(
|
|
503
|
+
self,
|
|
504
|
+
unwrap,
|
|
505
|
+
host,
|
|
506
|
+
edr_id,
|
|
507
|
+
control,
|
|
508
|
+
os,
|
|
509
|
+
platform,
|
|
510
|
+
policy,
|
|
511
|
+
policy_name,
|
|
512
|
+
webhook_keys,
|
|
513
|
+
group_id,
|
|
514
|
+
):
|
|
515
|
+
unwrap(self.detect.delete_endpoint)(self.detect, pytest.endpoint["endpoint_id"])
|
|
516
|
+
res = unwrap(self.detect.list_endpoints)(self.detect)
|
|
517
|
+
sorted_res = {r["serial_num"]: r for r in res}
|
|
518
|
+
assert pytest.endpoint["serial_num"] not in sorted_res
|
|
@@ -200,6 +200,17 @@ class TestScmPerControl:
|
|
|
200
200
|
"endpoint_count",
|
|
201
201
|
"success_count",
|
|
202
202
|
} == evaluation["policies"][0].keys()
|
|
203
|
+
elif control == Control.INTEL_INTUNE:
|
|
204
|
+
evaluation = _wait_for_policies(control, instance_id, "endpoint")
|
|
205
|
+
assert {
|
|
206
|
+
"active_count",
|
|
207
|
+
"excepted",
|
|
208
|
+
"id",
|
|
209
|
+
"name",
|
|
210
|
+
"not_supported_count",
|
|
211
|
+
"supported_count",
|
|
212
|
+
"techniques",
|
|
213
|
+
} == evaluation["policies"][0].keys()
|
|
203
214
|
else:
|
|
204
215
|
assert len(evaluation["policies"]) == 0
|
|
205
216
|
elif "user_evaluation" in evaluation:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|