Skip to content
This repository was archived by the owner on Dec 5, 2025. It is now read-only.

Commit bb5b501

Browse files
committed
[client] now handle operations in extensions
1 parent c0ae4f7 commit bb5b501

File tree

1 file changed

+45
-9
lines changed

1 file changed

+45
-9
lines changed

pycti/utils/opencti_stix2.py

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2492,26 +2492,50 @@ def apply_patch(self, item):
24922492
self.apply_patch_files(item)
24932493

24942494
def rule_apply(self, item):
2495-
rule_id = item["opencti_rule"]
2495+
rule_id = self.opencti.get_attribute_in_extension(
2496+
"opencti_rule", item
2497+
)
2498+
if rule_id is None:
2499+
rule_id = item["opencti_rule"]
24962500
self.opencti.stix_core_object.rule_apply(element_id=item["id"], rule_id=rule_id)
24972501

24982502
def rule_clear(self, item):
2499-
rule_id = item["opencti_rule"]
2503+
rule_id = self.opencti.get_attribute_in_extension(
2504+
"opencti_rule", item
2505+
)
2506+
if rule_id is None:
2507+
rule_id = item["opencti_rule"]
25002508
self.opencti.stix_core_object.rule_clear(element_id=item["id"], rule_id=rule_id)
25012509

25022510
def rules_rescan(self, item):
25032511
self.opencti.stix_core_object.rules_rescan(element_id=item["id"])
25042512

25052513
def organization_share(self, item):
2506-
organization_ids = item["sharing_organization_ids"]
2507-
sharing_direct_container = item["sharing_direct_container"]
2514+
organization_ids = self.opencti.get_attribute_in_extension(
2515+
"sharing_organization_ids", item
2516+
)
2517+
if organization_ids is None:
2518+
organization_ids = item["sharing_organization_ids"]
2519+
sharing_direct_container = self.opencti.get_attribute_in_extension(
2520+
"sharing_direct_container", item
2521+
)
2522+
if sharing_direct_container is None:
2523+
sharing_direct_container = item["sharing_direct_container"]
25082524
self.opencti.stix_core_object.organization_share(
25092525
item["id"], organization_ids, sharing_direct_container
25102526
)
25112527

25122528
def organization_unshare(self, item):
2513-
organization_ids = item["sharing_organization_ids"]
2514-
sharing_direct_container = item["sharing_direct_container"]
2529+
organization_ids = self.opencti.get_attribute_in_extension(
2530+
"sharing_organization_ids", item
2531+
)
2532+
if organization_ids is None:
2533+
organization_ids = item["sharing_organization_ids"]
2534+
sharing_direct_container = self.opencti.get_attribute_in_extension(
2535+
"sharing_direct_container", item
2536+
)
2537+
if sharing_direct_container is None:
2538+
sharing_direct_container = item["sharing_direct_container"]
25152539
self.opencti.stix_core_object.organization_unshare(
25162540
item["id"], organization_ids, sharing_direct_container
25172541
)
@@ -2539,8 +2563,16 @@ def apply_opencti_operation(self, item, operation):
25392563
elif item["opencti_operation"] == "restore":
25402564
self.opencti.trash.restore(item["id"])
25412565
elif item["opencti_operation"] == "merge":
2542-
target_id = item["merge_target_id"]
2543-
source_ids = item["merge_source_ids"]
2566+
target_id = self.opencti.get_attribute_in_extension(
2567+
"merge_target_id", item
2568+
)
2569+
if target_id is None:
2570+
target_id = item["merge_target_id"]
2571+
source_ids = self.opencti.get_attribute_in_extension(
2572+
"merge_source_ids", item
2573+
)
2574+
if source_ids is None:
2575+
source_ids = item["merge_source_ids"]
25442576
self.opencti.stix.merge(id=target_id, object_ids=source_ids)
25452577
elif operation == "patch":
25462578
self.apply_patch(item=item)
@@ -2567,7 +2599,11 @@ def apply_opencti_operation(self, item, operation):
25672599
element_id=item["id"]
25682600
)
25692601
elif item["opencti_operation"] == "enrichment":
2570-
connector_ids = item["connector_ids"]
2602+
connector_ids = self.opencti.get_attribute_in_extension(
2603+
"connector_ids", item
2604+
)
2605+
if connector_ids is None:
2606+
connector_ids = item["connector_ids"]
25712607
self.opencti.stix_core_object.ask_enrichments(
25722608
element_id=item["id"], connector_ids=connector_ids
25732609
)

0 commit comments

Comments
 (0)