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

Commit 97586d9

Browse files
[client] Add get_all arg in list api for TA
1 parent 24e4c31 commit 97586d9

File tree

3 files changed

+78
-9
lines changed

3 files changed

+78
-9
lines changed

pycti/entities/opencti_threat_actor.py

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ def list(self, **kwargs) -> dict:
178178
order_by = kwargs.get("orderBy", None)
179179
order_mode = kwargs.get("orderMode", None)
180180
custom_attributes = kwargs.get("customAttributes", None)
181+
get_all = kwargs.get("getAll", False)
181182
with_pagination = kwargs.get("withPagination", False)
182183

183184
self.opencti.app_logger.info(
@@ -216,9 +217,31 @@ def list(self, **kwargs) -> dict:
216217
"orderMode": order_mode,
217218
},
218219
)
219-
return self.opencti.process_multiple(
220-
result["data"]["threatActors"], with_pagination
221-
)
220+
if get_all:
221+
final_data = []
222+
data = self.opencti.process_multiple(result["data"]["threatActors"])
223+
final_data = final_data + data
224+
while result["data"]["threatActors"]["pageInfo"]["hasNextPage"]:
225+
after = result["data"]["threatActors"]["pageInfo"]["endCursor"]
226+
self.opencti.app_logger.info("Listing threatActors", {"after": after})
227+
result = self.opencti.query(
228+
query,
229+
{
230+
"filters": filters,
231+
"search": search,
232+
"first": first,
233+
"after": after,
234+
"orderBy": order_by,
235+
"orderMode": order_mode,
236+
},
237+
)
238+
data = self.opencti.process_multiple(result["data"]["threatActors"])
239+
final_data = final_data + data
240+
return final_data
241+
else:
242+
return self.opencti.process_multiple(
243+
result["data"]["threatActors"], with_pagination
244+
)
222245

223246
def read(self, **kwargs) -> Union[dict, None]:
224247
"""Read a Threat-Actor object

pycti/entities/opencti_threat_actor_group.py

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ def list(self, **kwargs) -> dict:
171171
order_by = kwargs.get("orderBy", None)
172172
order_mode = kwargs.get("orderMode", None)
173173
custom_attributes = kwargs.get("customAttributes", None)
174+
get_all = kwargs.get("getAll", False)
174175
with_pagination = kwargs.get("withPagination", False)
175176

176177
self.opencti.app_logger.info(
@@ -209,9 +210,31 @@ def list(self, **kwargs) -> dict:
209210
"orderMode": order_mode,
210211
},
211212
)
212-
return self.opencti.process_multiple(
213-
result["data"]["threatActorsGroup"], with_pagination
214-
)
213+
if get_all:
214+
final_data = []
215+
data = self.opencti.process_multiple(result["data"]["threatActorsGroup"])
216+
final_data = final_data + data
217+
while result["data"]["threatActorsGroup"]["pageInfo"]["hasNextPage"]:
218+
after = result["data"]["threatActorsGroup"]["pageInfo"]["endCursor"]
219+
self.opencti.app_logger.info("Listing threatActorsGroup", {"after": after})
220+
result = self.opencti.query(
221+
query,
222+
{
223+
"filters": filters,
224+
"search": search,
225+
"first": first,
226+
"after": after,
227+
"orderBy": order_by,
228+
"orderMode": order_mode,
229+
},
230+
)
231+
data = self.opencti.process_multiple(result["data"]["threatActorsGroup"])
232+
final_data = final_data + data
233+
return final_data
234+
else:
235+
return self.opencti.process_multiple(
236+
result["data"]["threatActorsGroup"], with_pagination
237+
)
215238

216239
def read(self, **kwargs) -> Union[dict, None]:
217240
"""Read a Threat-Actor-Group object

pycti/entities/opencti_threat_actor_individual.py

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ def list(self, **kwargs) -> dict:
171171
order_by = kwargs.get("orderBy", None)
172172
order_mode = kwargs.get("orderMode", None)
173173
custom_attributes = kwargs.get("customAttributes", None)
174+
get_all = kwargs.get("getAll", False)
174175
with_pagination = kwargs.get("withPagination", False)
175176

176177
self.opencti.app_logger.info(
@@ -210,9 +211,31 @@ def list(self, **kwargs) -> dict:
210211
"orderMode": order_mode,
211212
},
212213
)
213-
return self.opencti.process_multiple(
214-
result["data"]["threatActorsIndividuals"], with_pagination
215-
)
214+
if get_all:
215+
final_data = []
216+
data = self.opencti.process_multiple(result["data"]["threatActorsIndividuals"])
217+
final_data = final_data + data
218+
while result["data"]["threatActorsIndividuals"]["pageInfo"]["hasNextPage"]:
219+
after = result["data"]["threatActorsIndividuals"]["pageInfo"]["endCursor"]
220+
self.opencti.app_logger.info("Listing threatActorsIndividuals", {"after": after})
221+
result = self.opencti.query(
222+
query,
223+
{
224+
"filters": filters,
225+
"search": search,
226+
"first": first,
227+
"after": after,
228+
"orderBy": order_by,
229+
"orderMode": order_mode,
230+
},
231+
)
232+
data = self.opencti.process_multiple(result["data"]["threatActorsIndividuals"])
233+
final_data = final_data + data
234+
return final_data
235+
else:
236+
return self.opencti.process_multiple(
237+
result["data"]["threatActorsIndividuals"], with_pagination
238+
)
216239

217240
def read(self, **kwargs) -> Union[dict, None]:
218241
"""Read a Threat-Actor-Individual object

0 commit comments

Comments
 (0)