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

Commit ac40fc8

Browse files
[client] Add get_all arg in list api for TA (#758)
1 parent 9cf6c2a commit ac40fc8

File tree

3 files changed

+90
-9
lines changed

3 files changed

+90
-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: 30 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,35 @@ 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(
220+
"Listing threatActorsGroup", {"after": after}
221+
)
222+
result = self.opencti.query(
223+
query,
224+
{
225+
"filters": filters,
226+
"search": search,
227+
"first": first,
228+
"after": after,
229+
"orderBy": order_by,
230+
"orderMode": order_mode,
231+
},
232+
)
233+
data = self.opencti.process_multiple(
234+
result["data"]["threatActorsGroup"]
235+
)
236+
final_data = final_data + data
237+
return final_data
238+
else:
239+
return self.opencti.process_multiple(
240+
result["data"]["threatActorsGroup"], with_pagination
241+
)
215242

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

pycti/entities/opencti_threat_actor_individual.py

Lines changed: 34 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,39 @@ 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(
217+
result["data"]["threatActorsIndividuals"]
218+
)
219+
final_data = final_data + data
220+
while result["data"]["threatActorsIndividuals"]["pageInfo"]["hasNextPage"]:
221+
after = result["data"]["threatActorsIndividuals"]["pageInfo"][
222+
"endCursor"
223+
]
224+
self.opencti.app_logger.info(
225+
"Listing threatActorsIndividuals", {"after": after}
226+
)
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(
239+
result["data"]["threatActorsIndividuals"]
240+
)
241+
final_data = final_data + data
242+
return final_data
243+
else:
244+
return self.opencti.process_multiple(
245+
result["data"]["threatActorsIndividuals"], with_pagination
246+
)
216247

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

0 commit comments

Comments
 (0)