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

Commit 16c8fe1

Browse files
[client] Refactor batch list through (#541)
1 parent 5b61722 commit 16c8fe1

39 files changed

+1354
-2329
lines changed

pycti/api/opencti_api_client.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,18 @@ def process_multiple(self, data: dict, with_pagination=False) -> Union[dict, lis
458458
result = []
459459
if data is None:
460460
return result
461+
462+
# Data can be multiple in edges or directly.
463+
# -- When data is directly a listing
464+
if isinstance(data, list):
465+
for row in data:
466+
if with_pagination:
467+
result["entities"].append(self.process_multiple_fields(row))
468+
else:
469+
result.append(self.process_multiple_fields(row))
470+
return result
471+
472+
# -- When data is wrapper in edges
461473
for edge in (
462474
data["edges"] if "edges" in data and data["edges"] is not None else []
463475
):
@@ -466,6 +478,8 @@ def process_multiple(self, data: dict, with_pagination=False) -> Union[dict, lis
466478
result["entities"].append(self.process_multiple_fields(row))
467479
else:
468480
result.append(self.process_multiple_fields(row))
481+
482+
# -- Add page info if required
469483
if with_pagination and "pageInfo" in data:
470484
result["pagination"] = data["pageInfo"]
471485
return result

pycti/entities/opencti_attack_pattern.py

Lines changed: 46 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,9 @@ def __init__(self, opencti):
3333
created
3434
modified
3535
objectLabel {
36-
edges {
37-
node {
38-
id
39-
value
40-
color
41-
}
42-
}
36+
id
37+
value
38+
color
4339
}
4440
}
4541
... on Organization {
@@ -52,28 +48,20 @@ def __init__(self, opencti):
5248
}
5349
}
5450
objectMarking {
55-
edges {
56-
node {
57-
id
58-
standard_id
59-
entity_type
60-
definition_type
61-
definition
62-
created
63-
modified
64-
x_opencti_order
65-
x_opencti_color
66-
}
67-
}
51+
id
52+
standard_id
53+
entity_type
54+
definition_type
55+
definition
56+
created
57+
modified
58+
x_opencti_order
59+
x_opencti_color
6860
}
6961
objectLabel {
70-
edges {
71-
node {
72-
id
73-
value
74-
color
75-
}
76-
}
62+
id
63+
value
64+
color
7765
}
7866
externalReferences {
7967
edges {
@@ -103,18 +91,14 @@ def __init__(self, opencti):
10391
x_mitre_detection
10492
x_mitre_id
10593
killChainPhases {
106-
edges {
107-
node {
108-
id
109-
standard_id
110-
entity_type
111-
kill_chain_name
112-
phase_name
113-
x_opencti_order
114-
created
115-
modified
116-
}
117-
}
94+
id
95+
standard_id
96+
entity_type
97+
kill_chain_name
98+
phase_name
99+
x_opencti_order
100+
created
101+
modified
118102
}
119103
"""
120104
self.properties_with_files = """
@@ -141,13 +125,9 @@ def __init__(self, opencti):
141125
created
142126
modified
143127
objectLabel {
144-
edges {
145-
node {
146-
id
147-
value
148-
color
149-
}
150-
}
128+
id
129+
value
130+
color
151131
}
152132
}
153133
... on Organization {
@@ -160,28 +140,20 @@ def __init__(self, opencti):
160140
}
161141
}
162142
objectMarking {
163-
edges {
164-
node {
165-
id
166-
standard_id
167-
entity_type
168-
definition_type
169-
definition
170-
created
171-
modified
172-
x_opencti_order
173-
x_opencti_color
174-
}
175-
}
143+
id
144+
standard_id
145+
entity_type
146+
definition_type
147+
definition
148+
created
149+
modified
150+
x_opencti_order
151+
x_opencti_color
176152
}
177153
objectLabel {
178-
edges {
179-
node {
180-
id
181-
value
182-
color
183-
}
184-
}
154+
id
155+
value
156+
color
185157
}
186158
externalReferences {
187159
edges {
@@ -224,18 +196,14 @@ def __init__(self, opencti):
224196
x_mitre_detection
225197
x_mitre_id
226198
killChainPhases {
227-
edges {
228-
node {
229-
id
230-
standard_id
231-
entity_type
232-
kill_chain_name
233-
phase_name
234-
x_opencti_order
235-
created
236-
modified
237-
}
238-
}
199+
id
200+
standard_id
201+
entity_type
202+
kill_chain_name
203+
phase_name
204+
x_opencti_order
205+
created
206+
modified
239207
}
240208
importFiles {
241209
edges {

pycti/entities/opencti_campaign.py

Lines changed: 30 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,9 @@ def __init__(self, opencti):
3333
created
3434
modified
3535
objectLabel {
36-
edges {
37-
node {
38-
id
39-
value
40-
color
41-
}
42-
}
36+
id
37+
value
38+
color
4339
}
4440
}
4541
... on Organization {
@@ -52,28 +48,20 @@ def __init__(self, opencti):
5248
}
5349
}
5450
objectMarking {
55-
edges {
56-
node {
57-
id
58-
standard_id
59-
entity_type
60-
definition_type
61-
definition
62-
created
63-
modified
64-
x_opencti_order
65-
x_opencti_color
66-
}
67-
}
51+
id
52+
standard_id
53+
entity_type
54+
definition_type
55+
definition
56+
created
57+
modified
58+
x_opencti_order
59+
x_opencti_color
6860
}
6961
objectLabel {
70-
edges {
71-
node {
72-
id
73-
value
74-
color
75-
}
76-
}
62+
id
63+
value
64+
color
7765
}
7866
externalReferences {
7967
edges {
@@ -126,13 +114,9 @@ def __init__(self, opencti):
126114
created
127115
modified
128116
objectLabel {
129-
edges {
130-
node {
131-
id
132-
value
133-
color
134-
}
135-
}
117+
id
118+
value
119+
color
136120
}
137121
}
138122
... on Organization {
@@ -145,28 +129,20 @@ def __init__(self, opencti):
145129
}
146130
}
147131
objectMarking {
148-
edges {
149-
node {
150-
id
151-
standard_id
152-
entity_type
153-
definition_type
154-
definition
155-
created
156-
modified
157-
x_opencti_order
158-
x_opencti_color
159-
}
160-
}
132+
id
133+
standard_id
134+
entity_type
135+
definition_type
136+
definition
137+
created
138+
modified
139+
x_opencti_order
140+
x_opencti_color
161141
}
162142
objectLabel {
163-
edges {
164-
node {
165-
id
166-
value
167-
color
168-
}
169-
}
143+
id
144+
value
145+
color
170146
}
171147
externalReferences {
172148
edges {

0 commit comments

Comments
 (0)