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

Commit 70a2284

Browse files
richard-julienJeremyCloarec
authored andcommitted
[client] Add enrichment api
1 parent b872310 commit 70a2284

File tree

3 files changed

+39
-4
lines changed

3 files changed

+39
-4
lines changed

pycti/entities/opencti_stix.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,17 @@ def __init__(self, opencti):
1111

1212
def delete(self, **kwargs):
1313
id = kwargs.get("id", None)
14+
force_delete = kwargs.get("force_delete", True)
1415
if id is not None:
1516
self.opencti.app_logger.info("Deleting Stix element", {"id": id})
1617
query = """
17-
mutation StixEdit($id: ID!) {
18+
mutation StixEdit($id: ID!, $forceDelete: Boolean) {
1819
stixEdit(id: $id) {
19-
delete
20+
delete(forceDelete: $forceDelete)
2021
}
2122
}
2223
"""
23-
self.opencti.query(query, {"id": id})
24+
self.opencti.query(query, {"id": id, "forceDelete": force_delete})
2425
else:
2526
self.opencti.app_logger.error("[opencti_stix] Missing parameters: id")
2627
return None

pycti/entities/opencti_stix_core_object.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1753,6 +1753,34 @@ def rules_rescan(self, **kwargs):
17531753
self.opencti.app_logger.error("[stix_core_object] Missing parameters: id")
17541754
return None
17551755

1756+
"""
1757+
Ask enrichment with multiple connectors
1758+
1759+
:param element_id: the Stix-Core-Object id
1760+
:param connector_ids the connectors
1761+
:return void
1762+
"""
1763+
1764+
def ask_enrichment(self, **kwargs):
1765+
element_id = kwargs.get("element_id", None)
1766+
connector_ids = kwargs.get("connector_ids", None)
1767+
query = """
1768+
mutation StixCoreObjectEdit($id: ID!, $connectorId: [ID!]!) {
1769+
stixCoreObjectEdit(id: $id) {
1770+
askEnrichment(connectorId: $connectorId) {
1771+
id
1772+
}
1773+
}
1774+
}
1775+
"""
1776+
self.opencti.query(
1777+
query,
1778+
{
1779+
"id": element_id,
1780+
"connectorId": connector_ids,
1781+
},
1782+
)
1783+
17561784
"""
17571785
Share element to multiple organizations
17581786

pycti/utils/opencti_stix2.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2487,8 +2487,9 @@ def organization_unshare(self, item):
24872487
self.opencti.stix_core_object.organization_unshare(item["id"], organization_ids)
24882488

24892489
def apply_opencti_operation(self, item, operation):
2490-
if operation == "delete":
2490+
if operation == "delete" or operation == "delete-force":
24912491
delete_id = item["id"]
2492+
force_delete = operation == "delete-force"
24922493
self.opencti.stix.delete(id=delete_id)
24932494
elif operation == "merge":
24942495
target_id = item["merge_target_id"]
@@ -2506,6 +2507,11 @@ def apply_opencti_operation(self, item, operation):
25062507
self.organization_share(item=item)
25072508
elif operation == "unshare":
25082509
self.organization_unshare(item=item)
2510+
elif operation == "enrichment":
2511+
connector_ids = item["connector_ids"]
2512+
self.opencti.stix_core_object.ask_enrichment(
2513+
element_id=item["id"], connector_ids=connector_ids
2514+
)
25092515
else:
25102516
raise ValueError(
25112517
"Not supported opencti_operation",

0 commit comments

Comments
 (0)