@autoweb/domain-models 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -0
- package/index.d.ts +594 -0
- package/index.js +3 -0
- package/package.json +55 -0
- package/python-models/__init__.py +68 -0
- package/python-models/action-configs.py +1112 -0
- package/python-models/build/lib/floweb_models/__init__.py +194 -0
- package/python-models/build/lib/floweb_models/action_configs.py +783 -0
- package/python-models/build/lib/floweb_models/debug.py +209 -0
- package/python-models/build/lib/floweb_models/debug_models.py +141 -0
- package/python-models/build/lib/floweb_models/environment.py +158 -0
- package/python-models/build/lib/floweb_models/execution_results.py +208 -0
- package/python-models/build/lib/floweb_models/flow.py +345 -0
- package/python-models/build/lib/floweb_models/flow_validation.py +316 -0
- package/python-models/build/lib/floweb_models/parallel_execution.py +258 -0
- package/python-models/build/lib/floweb_models/performance_test.py +605 -0
- package/python-models/build/lib/floweb_models/websocket_communication.py +697 -0
- package/python-models/debug.py +209 -0
- package/python-models/dist/floweb_domain_models-1.0.0-py3-none-any.whl +0 -0
- package/python-models/environment.py +158 -0
- package/python-models/execution-results.py +208 -0
- package/python-models/flow-validation.py +316 -0
- package/python-models/flow.py +369 -0
- package/python-models/floweb_domain_models.egg-info/PKG-INFO +9 -0
- package/python-models/floweb_domain_models.egg-info/SOURCES.txt +16 -0
- package/python-models/floweb_domain_models.egg-info/dependency_links.txt +1 -0
- package/python-models/floweb_domain_models.egg-info/requires.txt +1 -0
- package/python-models/floweb_domain_models.egg-info/top_level.txt +1 -0
- package/python-models/floweb_models/__init__.py +194 -0
- package/python-models/floweb_models/__pycache__/__init__.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/action_configs.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/debug.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/debug_models.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/environment.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/execution_results.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/flow.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/flow_validation.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/parallel_execution.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/performance_test.cpython-312.pyc +0 -0
- package/python-models/floweb_models/__pycache__/websocket_communication.cpython-312.pyc +0 -0
- package/python-models/floweb_models/action_configs.py +1062 -0
- package/python-models/floweb_models/debug.py +209 -0
- package/python-models/floweb_models/debug_models.py +141 -0
- package/python-models/floweb_models/environment.py +158 -0
- package/python-models/floweb_models/execution_results.py +208 -0
- package/python-models/floweb_models/flow.py +345 -0
- package/python-models/floweb_models/flow_validation.py +316 -0
- package/python-models/floweb_models/parallel_execution.py +229 -0
- package/python-models/floweb_models/performance_test.py +605 -0
- package/python-models/floweb_models/websocket_communication.py +697 -0
- package/python-models/floweb_models.egg-info/PKG-INFO +9 -0
- package/python-models/floweb_models.egg-info/SOURCES.txt +16 -0
- package/python-models/floweb_models.egg-info/dependency_links.txt +1 -0
- package/python-models/floweb_models.egg-info/requires.txt +1 -0
- package/python-models/floweb_models.egg-info/top_level.txt +1 -0
- package/python-models/parallel-execution.py +475 -0
- package/python-models/performance-test.py +605 -0
- package/python-models/setup.py +13 -0
- package/python-models/websocket-communication.py +697 -0
- package/schemas/action-configs.json +1501 -0
- package/schemas/debug.json +203 -0
- package/schemas/environment.json +165 -0
- package/schemas/execution-results.json +209 -0
- package/schemas/flow-validation.json +311 -0
- package/schemas/flow.json +381 -0
- package/schemas/parallel-execution.json +219 -0
- package/schemas/performance-test.json +600 -0
- package/schemas/websocket-communication.json +1118 -0
|
@@ -0,0 +1,1501 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://floweb.com/schemas/action-configs.json",
|
|
4
|
+
"title": "Action Configurations",
|
|
5
|
+
"description": "Configuration schemas for all automation actions",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"action_configs": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"patternProperties": {
|
|
11
|
+
".*": {
|
|
12
|
+
"oneOf": [
|
|
13
|
+
{
|
|
14
|
+
"$ref": "#/$defs/ClickConfig"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"$ref": "#/$defs/InputConfig"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"$ref": "#/$defs/SendKeysConfig"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"$ref": "#/$defs/WaitConfig"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"$ref": "#/$defs/NavigateConfig"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"$ref": "#/$defs/ScrollConfig"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"$ref": "#/$defs/ScreenshotConfig"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"$ref": "#/$defs/AssertionConfig"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"$ref": "#/$defs/AssertVisibleConfig"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"$ref": "#/$defs/FormFillConfig"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"$ref": "#/$defs/ClearInputConfig"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"$ref": "#/$defs/OpenNewTabConfig"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"$ref": "#/$defs/SwitchTabConfig"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"$ref": "#/$defs/GoForwardConfig"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"$ref": "#/$defs/GoBackConfig"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"$ref": "#/$defs/RefreshConfig"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"$ref": "#/$defs/GetPageInfoConfig"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"$ref": "#/$defs/JunctionConfig"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"$ref": "#/$defs/ApiCallConfig"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"$ref": "#/$defs/ConditionalConfig"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"$ref": "#/$defs/LoopConfig"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"$ref": "#/$defs/DatabaseQueryConfig"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"$ref": "#/$defs/DatabaseInsertConfig"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"$ref": "#/$defs/CustomCodeConfig"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"$ref": "#/$defs/DragAndDropConfig"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"$ref": "#/$defs/CallToFlowConfig"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"$ref": "#/$defs/SwitchToFrameConfig"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"$ref": "#/$defs/ExitFrameConfig"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"$ref": "#/$defs/SetViewportConfig"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"$ref": "#/$defs/GetElementPropertiesConfig"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"$ref": "#/$defs/HandlePopupConfig"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"$ref": "#/$defs/FileUploadConfig"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"$ref": "#/$defs/FileDownloadConfig"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"$ref": "#/$defs/SubflowConfig"
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"$defs": {
|
|
121
|
+
"BaseActionConfig": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"image": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"description": "Base64 encoded reference image"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"ClickConfig": {
|
|
131
|
+
"allOf": [
|
|
132
|
+
{
|
|
133
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"type": "object",
|
|
137
|
+
"properties": {
|
|
138
|
+
"selector": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"description": "CSS selector for element to click"
|
|
141
|
+
},
|
|
142
|
+
"wait_time": {
|
|
143
|
+
"type": "integer",
|
|
144
|
+
"default": 1000,
|
|
145
|
+
"description": "Wait time in milliseconds"
|
|
146
|
+
},
|
|
147
|
+
"force_click": {
|
|
148
|
+
"type": "boolean",
|
|
149
|
+
"default": false,
|
|
150
|
+
"description": "Force click even if element not clickable"
|
|
151
|
+
},
|
|
152
|
+
"scroll_into_view": {
|
|
153
|
+
"type": "boolean",
|
|
154
|
+
"default": true,
|
|
155
|
+
"description": "Scroll element into view before clicking"
|
|
156
|
+
},
|
|
157
|
+
"wait_for_element": {
|
|
158
|
+
"type": "boolean",
|
|
159
|
+
"default": true,
|
|
160
|
+
"description": "Wait for element to be present"
|
|
161
|
+
},
|
|
162
|
+
"click_type": {
|
|
163
|
+
"type": "string",
|
|
164
|
+
"enum": [
|
|
165
|
+
"left",
|
|
166
|
+
"right"
|
|
167
|
+
],
|
|
168
|
+
"default": "left",
|
|
169
|
+
"description": "Type of click to perform"
|
|
170
|
+
},
|
|
171
|
+
"click_count": {
|
|
172
|
+
"type": "integer",
|
|
173
|
+
"default": 1,
|
|
174
|
+
"minimum": 1,
|
|
175
|
+
"description": "Number of clicks to perform"
|
|
176
|
+
},
|
|
177
|
+
"click_and_hold": {
|
|
178
|
+
"type": "boolean",
|
|
179
|
+
"default": false,
|
|
180
|
+
"description": "Whether to click and hold"
|
|
181
|
+
},
|
|
182
|
+
"hold_duration": {
|
|
183
|
+
"type": "integer",
|
|
184
|
+
"default": 1000,
|
|
185
|
+
"description": "Duration to hold click in milliseconds"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"required": [
|
|
189
|
+
"selector"
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
},
|
|
194
|
+
"InputConfig": {
|
|
195
|
+
"allOf": [
|
|
196
|
+
{
|
|
197
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"type": "object",
|
|
201
|
+
"properties": {
|
|
202
|
+
"selector": {
|
|
203
|
+
"type": "string",
|
|
204
|
+
"description": "CSS selector for input element"
|
|
205
|
+
},
|
|
206
|
+
"text": {
|
|
207
|
+
"type": "string",
|
|
208
|
+
"description": "Text to input"
|
|
209
|
+
},
|
|
210
|
+
"clear_first": {
|
|
211
|
+
"type": "boolean",
|
|
212
|
+
"default": true,
|
|
213
|
+
"description": "Clear field before typing"
|
|
214
|
+
},
|
|
215
|
+
"wait_for_element": {
|
|
216
|
+
"type": "boolean",
|
|
217
|
+
"default": true,
|
|
218
|
+
"description": "Wait for element to be present"
|
|
219
|
+
},
|
|
220
|
+
"scroll_into_view": {
|
|
221
|
+
"type": "boolean",
|
|
222
|
+
"default": true,
|
|
223
|
+
"description": "Scroll element into view"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"required": [
|
|
227
|
+
"selector",
|
|
228
|
+
"text"
|
|
229
|
+
]
|
|
230
|
+
}
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
"NavigateConfig": {
|
|
234
|
+
"allOf": [
|
|
235
|
+
{
|
|
236
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"type": "object",
|
|
240
|
+
"properties": {
|
|
241
|
+
"url": {
|
|
242
|
+
"type": "string",
|
|
243
|
+
"format": "uri",
|
|
244
|
+
"description": "URL to navigate to"
|
|
245
|
+
},
|
|
246
|
+
"wait_for_load": {
|
|
247
|
+
"type": "boolean",
|
|
248
|
+
"default": true,
|
|
249
|
+
"description": "Wait for page to load"
|
|
250
|
+
},
|
|
251
|
+
"take_screenshot": {
|
|
252
|
+
"type": "boolean",
|
|
253
|
+
"default": false,
|
|
254
|
+
"description": "Take screenshot after navigation"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
"required": [
|
|
258
|
+
"url"
|
|
259
|
+
]
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
},
|
|
263
|
+
"WaitConfig": {
|
|
264
|
+
"allOf": [
|
|
265
|
+
{
|
|
266
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"type": "object",
|
|
270
|
+
"properties": {
|
|
271
|
+
"wait_type": {
|
|
272
|
+
"type": "string",
|
|
273
|
+
"enum": [
|
|
274
|
+
"duration",
|
|
275
|
+
"element",
|
|
276
|
+
"interactable"
|
|
277
|
+
],
|
|
278
|
+
"default": "duration",
|
|
279
|
+
"description": "Type of wait to perform"
|
|
280
|
+
},
|
|
281
|
+
"duration": {
|
|
282
|
+
"type": "integer",
|
|
283
|
+
"default": 3000,
|
|
284
|
+
"description": "Duration to wait in milliseconds"
|
|
285
|
+
},
|
|
286
|
+
"selector": {
|
|
287
|
+
"type": "string",
|
|
288
|
+
"description": "CSS selector for element to wait for"
|
|
289
|
+
},
|
|
290
|
+
"timeout": {
|
|
291
|
+
"type": "integer",
|
|
292
|
+
"default": 10000,
|
|
293
|
+
"description": "Maximum time to wait in milliseconds"
|
|
294
|
+
},
|
|
295
|
+
"wait_for_interactable": {
|
|
296
|
+
"type": "boolean",
|
|
297
|
+
"default": false,
|
|
298
|
+
"description": "Wait for element to be interactable"
|
|
299
|
+
},
|
|
300
|
+
"fallback_to_duration": {
|
|
301
|
+
"type": "boolean",
|
|
302
|
+
"default": true,
|
|
303
|
+
"description": "Fallback to duration wait if element wait fails"
|
|
304
|
+
},
|
|
305
|
+
"fallback_duration": {
|
|
306
|
+
"type": "integer",
|
|
307
|
+
"default": 2000,
|
|
308
|
+
"description": "Duration to wait if fallback triggered"
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
]
|
|
313
|
+
},
|
|
314
|
+
"AssertionConfig": {
|
|
315
|
+
"allOf": [
|
|
316
|
+
{
|
|
317
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"type": "object",
|
|
321
|
+
"properties": {
|
|
322
|
+
"selector": {
|
|
323
|
+
"type": "string",
|
|
324
|
+
"description": "CSS selector for element"
|
|
325
|
+
},
|
|
326
|
+
"assert_type": {
|
|
327
|
+
"type": "string",
|
|
328
|
+
"enum": [
|
|
329
|
+
"exists",
|
|
330
|
+
"visible",
|
|
331
|
+
"text",
|
|
332
|
+
"value",
|
|
333
|
+
"attribute"
|
|
334
|
+
],
|
|
335
|
+
"default": "exists",
|
|
336
|
+
"description": "Type of assertion"
|
|
337
|
+
},
|
|
338
|
+
"expected_value": {
|
|
339
|
+
"type": "string",
|
|
340
|
+
"description": "Expected value for assertion"
|
|
341
|
+
},
|
|
342
|
+
"wait_for_element": {
|
|
343
|
+
"type": "boolean",
|
|
344
|
+
"default": true,
|
|
345
|
+
"description": "Wait for element to be present"
|
|
346
|
+
},
|
|
347
|
+
"case_sensitive": {
|
|
348
|
+
"type": "boolean",
|
|
349
|
+
"default": false,
|
|
350
|
+
"description": "Case sensitive comparison"
|
|
351
|
+
},
|
|
352
|
+
"partial_match": {
|
|
353
|
+
"type": "boolean",
|
|
354
|
+
"default": false,
|
|
355
|
+
"description": "Allow partial text matching"
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
"required": [
|
|
359
|
+
"selector",
|
|
360
|
+
"expectedValue"
|
|
361
|
+
]
|
|
362
|
+
}
|
|
363
|
+
]
|
|
364
|
+
},
|
|
365
|
+
"ScreenshotConfig": {
|
|
366
|
+
"allOf": [
|
|
367
|
+
{
|
|
368
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"type": "object",
|
|
372
|
+
"properties": {
|
|
373
|
+
"screenshot_type": {
|
|
374
|
+
"type": "string",
|
|
375
|
+
"enum": [
|
|
376
|
+
"viewport",
|
|
377
|
+
"fullPage",
|
|
378
|
+
"element"
|
|
379
|
+
],
|
|
380
|
+
"default": "viewport",
|
|
381
|
+
"description": "Type of screenshot to capture"
|
|
382
|
+
},
|
|
383
|
+
"selector": {
|
|
384
|
+
"type": "string",
|
|
385
|
+
"description": "CSS selector for element screenshots"
|
|
386
|
+
},
|
|
387
|
+
"filename": {
|
|
388
|
+
"type": "string",
|
|
389
|
+
"default": "screenshot.png",
|
|
390
|
+
"description": "Output filename"
|
|
391
|
+
},
|
|
392
|
+
"save_to_file": {
|
|
393
|
+
"type": "boolean",
|
|
394
|
+
"default": true,
|
|
395
|
+
"description": "Save screenshot to file system"
|
|
396
|
+
},
|
|
397
|
+
"include_timestamp": {
|
|
398
|
+
"type": "boolean",
|
|
399
|
+
"default": true,
|
|
400
|
+
"description": "Include timestamp in filename"
|
|
401
|
+
},
|
|
402
|
+
"format": {
|
|
403
|
+
"type": "string",
|
|
404
|
+
"enum": [
|
|
405
|
+
"png",
|
|
406
|
+
"jpg"
|
|
407
|
+
],
|
|
408
|
+
"default": "png",
|
|
409
|
+
"description": "Output format"
|
|
410
|
+
},
|
|
411
|
+
"wait_for_element": {
|
|
412
|
+
"type": "boolean",
|
|
413
|
+
"default": true,
|
|
414
|
+
"description": "Wait for element to be present"
|
|
415
|
+
},
|
|
416
|
+
"scroll_into_view": {
|
|
417
|
+
"type": "boolean",
|
|
418
|
+
"default": true,
|
|
419
|
+
"description": "Scroll element into view"
|
|
420
|
+
},
|
|
421
|
+
"full_page": {
|
|
422
|
+
"type": "boolean",
|
|
423
|
+
"default": false,
|
|
424
|
+
"description": "Take full page screenshot"
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
]
|
|
429
|
+
},
|
|
430
|
+
"FormField": {
|
|
431
|
+
"type": "object",
|
|
432
|
+
"properties": {
|
|
433
|
+
"selector": {
|
|
434
|
+
"type": "string",
|
|
435
|
+
"description": "CSS selector to target form field"
|
|
436
|
+
},
|
|
437
|
+
"value": {
|
|
438
|
+
"description": "Value to fill"
|
|
439
|
+
},
|
|
440
|
+
"image": {
|
|
441
|
+
"type": "string",
|
|
442
|
+
"description": "Optional screenshot path"
|
|
443
|
+
},
|
|
444
|
+
"name": {
|
|
445
|
+
"type": "string",
|
|
446
|
+
"description": "Human-readable field name"
|
|
447
|
+
},
|
|
448
|
+
"type": {
|
|
449
|
+
"type": "string",
|
|
450
|
+
"enum": [
|
|
451
|
+
"text",
|
|
452
|
+
"password",
|
|
453
|
+
"email",
|
|
454
|
+
"number",
|
|
455
|
+
"tel",
|
|
456
|
+
"textarea",
|
|
457
|
+
"date",
|
|
458
|
+
"time",
|
|
459
|
+
"datetime-local",
|
|
460
|
+
"checkbox",
|
|
461
|
+
"radio",
|
|
462
|
+
"select",
|
|
463
|
+
"file"
|
|
464
|
+
],
|
|
465
|
+
"default": "text",
|
|
466
|
+
"description": "Type of form field"
|
|
467
|
+
},
|
|
468
|
+
"options": {
|
|
469
|
+
"type": "array",
|
|
470
|
+
"items": {
|
|
471
|
+
"$ref": "#/$defs/FormFieldOption"
|
|
472
|
+
},
|
|
473
|
+
"description": "Options for select/radio fields"
|
|
474
|
+
},
|
|
475
|
+
"checked": {
|
|
476
|
+
"type": "boolean",
|
|
477
|
+
"default": false,
|
|
478
|
+
"description": "Whether checkbox is checked"
|
|
479
|
+
},
|
|
480
|
+
"multiple": {
|
|
481
|
+
"type": "boolean",
|
|
482
|
+
"default": false,
|
|
483
|
+
"description": "Whether select allows multiple selections"
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
"required": [
|
|
487
|
+
"selector",
|
|
488
|
+
"value"
|
|
489
|
+
]
|
|
490
|
+
},
|
|
491
|
+
"FormFieldOption": {
|
|
492
|
+
"type": "object",
|
|
493
|
+
"properties": {
|
|
494
|
+
"value": {
|
|
495
|
+
"type": "string",
|
|
496
|
+
"description": "Option value"
|
|
497
|
+
},
|
|
498
|
+
"label": {
|
|
499
|
+
"type": "string",
|
|
500
|
+
"description": "Option label"
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
"required": [
|
|
504
|
+
"value",
|
|
505
|
+
"label"
|
|
506
|
+
]
|
|
507
|
+
},
|
|
508
|
+
"FormFillConfig": {
|
|
509
|
+
"allOf": [
|
|
510
|
+
{
|
|
511
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"type": "object",
|
|
515
|
+
"properties": {
|
|
516
|
+
"fields": {
|
|
517
|
+
"type": "array",
|
|
518
|
+
"items": {
|
|
519
|
+
"$ref": "#/$defs/FormField"
|
|
520
|
+
},
|
|
521
|
+
"description": "Array of form field configurations"
|
|
522
|
+
},
|
|
523
|
+
"wait_for_elements": {
|
|
524
|
+
"type": "boolean",
|
|
525
|
+
"default": true,
|
|
526
|
+
"description": "Wait for all form elements to be present"
|
|
527
|
+
},
|
|
528
|
+
"clear_first": {
|
|
529
|
+
"type": "boolean",
|
|
530
|
+
"default": true,
|
|
531
|
+
"description": "Clear existing values before filling"
|
|
532
|
+
},
|
|
533
|
+
"submit_after_fill": {
|
|
534
|
+
"type": "boolean",
|
|
535
|
+
"default": false,
|
|
536
|
+
"description": "Automatically submit form after filling"
|
|
537
|
+
},
|
|
538
|
+
"smart_field_detection": {
|
|
539
|
+
"type": "boolean",
|
|
540
|
+
"default": true,
|
|
541
|
+
"description": "Automatically detect field types"
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
"required": [
|
|
545
|
+
"fields"
|
|
546
|
+
]
|
|
547
|
+
}
|
|
548
|
+
]
|
|
549
|
+
},
|
|
550
|
+
"ApiCallConfig": {
|
|
551
|
+
"allOf": [
|
|
552
|
+
{
|
|
553
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
"type": "object",
|
|
557
|
+
"properties": {
|
|
558
|
+
"method": {
|
|
559
|
+
"type": "string",
|
|
560
|
+
"enum": [
|
|
561
|
+
"GET",
|
|
562
|
+
"POST",
|
|
563
|
+
"PUT",
|
|
564
|
+
"DELETE",
|
|
565
|
+
"PATCH"
|
|
566
|
+
],
|
|
567
|
+
"default": "GET",
|
|
568
|
+
"description": "HTTP method"
|
|
569
|
+
},
|
|
570
|
+
"url": {
|
|
571
|
+
"type": "string",
|
|
572
|
+
"format": "uri",
|
|
573
|
+
"description": "API endpoint URL"
|
|
574
|
+
},
|
|
575
|
+
"headers": {
|
|
576
|
+
"type": "object",
|
|
577
|
+
"additionalProperties": {
|
|
578
|
+
"type": "string"
|
|
579
|
+
},
|
|
580
|
+
"description": "HTTP headers"
|
|
581
|
+
},
|
|
582
|
+
"body": {
|
|
583
|
+
"type": "string",
|
|
584
|
+
"description": "Request body"
|
|
585
|
+
},
|
|
586
|
+
"output_variable": {
|
|
587
|
+
"type": "string",
|
|
588
|
+
"default": "apiResponse",
|
|
589
|
+
"description": "Variable to store response"
|
|
590
|
+
},
|
|
591
|
+
"timeout": {
|
|
592
|
+
"type": "integer",
|
|
593
|
+
"default": 30000,
|
|
594
|
+
"description": "Request timeout in milliseconds"
|
|
595
|
+
},
|
|
596
|
+
"retry_count": {
|
|
597
|
+
"type": "integer",
|
|
598
|
+
"default": 0,
|
|
599
|
+
"description": "Number of retries"
|
|
600
|
+
},
|
|
601
|
+
"parse_json": {
|
|
602
|
+
"type": "boolean",
|
|
603
|
+
"default": true,
|
|
604
|
+
"description": "Parse response as JSON"
|
|
605
|
+
},
|
|
606
|
+
"validate_status": {
|
|
607
|
+
"type": "boolean",
|
|
608
|
+
"default": true,
|
|
609
|
+
"description": "Validate HTTP status code"
|
|
610
|
+
},
|
|
611
|
+
"follow_redirects": {
|
|
612
|
+
"type": "boolean",
|
|
613
|
+
"default": true,
|
|
614
|
+
"description": "Follow HTTP redirects"
|
|
615
|
+
},
|
|
616
|
+
"verify_ssl": {
|
|
617
|
+
"type": "boolean",
|
|
618
|
+
"default": true,
|
|
619
|
+
"description": "Verify SSL certificates"
|
|
620
|
+
},
|
|
621
|
+
"basic_auth_username": {
|
|
622
|
+
"type": "string",
|
|
623
|
+
"description": "Basic auth username"
|
|
624
|
+
},
|
|
625
|
+
"basic_auth_password": {
|
|
626
|
+
"type": "string",
|
|
627
|
+
"description": "Basic auth password"
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
"required": [
|
|
631
|
+
"url"
|
|
632
|
+
]
|
|
633
|
+
}
|
|
634
|
+
]
|
|
635
|
+
},
|
|
636
|
+
"DatabaseQueryConfig": {
|
|
637
|
+
"allOf": [
|
|
638
|
+
{
|
|
639
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
"type": "object",
|
|
643
|
+
"properties": {
|
|
644
|
+
"connection_string": {
|
|
645
|
+
"type": "string",
|
|
646
|
+
"description": "Database connection string"
|
|
647
|
+
},
|
|
648
|
+
"query": {
|
|
649
|
+
"type": "string",
|
|
650
|
+
"description": "SQL query to execute"
|
|
651
|
+
},
|
|
652
|
+
"output_variable": {
|
|
653
|
+
"type": "string",
|
|
654
|
+
"default": "queryResult",
|
|
655
|
+
"description": "Variable to store result"
|
|
656
|
+
},
|
|
657
|
+
"log_query": {
|
|
658
|
+
"type": "boolean",
|
|
659
|
+
"default": true,
|
|
660
|
+
"description": "Log the query being executed"
|
|
661
|
+
},
|
|
662
|
+
"validate_connection": {
|
|
663
|
+
"type": "boolean",
|
|
664
|
+
"default": true,
|
|
665
|
+
"description": "Validate database connection"
|
|
666
|
+
},
|
|
667
|
+
"timeout": {
|
|
668
|
+
"type": "integer",
|
|
669
|
+
"default": 30000,
|
|
670
|
+
"description": "Query timeout in milliseconds"
|
|
671
|
+
}
|
|
672
|
+
},
|
|
673
|
+
"required": [
|
|
674
|
+
"connectionString",
|
|
675
|
+
"query"
|
|
676
|
+
]
|
|
677
|
+
}
|
|
678
|
+
]
|
|
679
|
+
},
|
|
680
|
+
"DatabaseInsertConfig": {
|
|
681
|
+
"allOf": [
|
|
682
|
+
{
|
|
683
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"type": "object",
|
|
687
|
+
"properties": {
|
|
688
|
+
"connection_string": {
|
|
689
|
+
"type": "string",
|
|
690
|
+
"description": "Database connection string"
|
|
691
|
+
},
|
|
692
|
+
"table": {
|
|
693
|
+
"type": "string",
|
|
694
|
+
"description": "Table name to insert into"
|
|
695
|
+
},
|
|
696
|
+
"data": {
|
|
697
|
+
"type": "object",
|
|
698
|
+
"description": "Data to insert (column-value pairs)"
|
|
699
|
+
},
|
|
700
|
+
"log_operation": {
|
|
701
|
+
"type": "boolean",
|
|
702
|
+
"default": true,
|
|
703
|
+
"description": "Log the insert operation"
|
|
704
|
+
},
|
|
705
|
+
"validate_connection": {
|
|
706
|
+
"type": "boolean",
|
|
707
|
+
"default": true,
|
|
708
|
+
"description": "Validate database connection"
|
|
709
|
+
},
|
|
710
|
+
"rollback_on_error": {
|
|
711
|
+
"type": "boolean",
|
|
712
|
+
"default": true,
|
|
713
|
+
"description": "Rollback transaction on error"
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
"required": [
|
|
717
|
+
"connectionString",
|
|
718
|
+
"table",
|
|
719
|
+
"data"
|
|
720
|
+
]
|
|
721
|
+
}
|
|
722
|
+
]
|
|
723
|
+
},
|
|
724
|
+
"FileUploadConfig": {
|
|
725
|
+
"allOf": [
|
|
726
|
+
{
|
|
727
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"type": "object",
|
|
731
|
+
"properties": {
|
|
732
|
+
"selector": {
|
|
733
|
+
"type": "string",
|
|
734
|
+
"description": "CSS selector for file input"
|
|
735
|
+
},
|
|
736
|
+
"file_path": {
|
|
737
|
+
"type": "string",
|
|
738
|
+
"description": "Path to file to upload"
|
|
739
|
+
},
|
|
740
|
+
"wait_for_element": {
|
|
741
|
+
"type": "boolean",
|
|
742
|
+
"default": true,
|
|
743
|
+
"description": "Wait for element to be present"
|
|
744
|
+
},
|
|
745
|
+
"scroll_into_view": {
|
|
746
|
+
"type": "boolean",
|
|
747
|
+
"default": true,
|
|
748
|
+
"description": "Scroll element into view"
|
|
749
|
+
},
|
|
750
|
+
"validate_file": {
|
|
751
|
+
"type": "boolean",
|
|
752
|
+
"default": true,
|
|
753
|
+
"description": "Validate file exists before upload"
|
|
754
|
+
}
|
|
755
|
+
},
|
|
756
|
+
"required": [
|
|
757
|
+
"selector",
|
|
758
|
+
"filePath"
|
|
759
|
+
]
|
|
760
|
+
}
|
|
761
|
+
]
|
|
762
|
+
},
|
|
763
|
+
"FileDownloadConfig": {
|
|
764
|
+
"allOf": [
|
|
765
|
+
{
|
|
766
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"type": "object",
|
|
770
|
+
"properties": {
|
|
771
|
+
"selector": {
|
|
772
|
+
"type": "string",
|
|
773
|
+
"description": "CSS selector for download link"
|
|
774
|
+
},
|
|
775
|
+
"download_path": {
|
|
776
|
+
"type": "string",
|
|
777
|
+
"description": "Path to save downloaded file"
|
|
778
|
+
},
|
|
779
|
+
"wait_for_element": {
|
|
780
|
+
"type": "boolean",
|
|
781
|
+
"default": true,
|
|
782
|
+
"description": "Wait for element to be present"
|
|
783
|
+
},
|
|
784
|
+
"validate_download": {
|
|
785
|
+
"type": "boolean",
|
|
786
|
+
"default": true,
|
|
787
|
+
"description": "Validate download completed"
|
|
788
|
+
},
|
|
789
|
+
"overwrite_existing": {
|
|
790
|
+
"type": "boolean",
|
|
791
|
+
"default": false,
|
|
792
|
+
"description": "Overwrite existing files"
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
"required": [
|
|
796
|
+
"selector",
|
|
797
|
+
"downloadPath"
|
|
798
|
+
]
|
|
799
|
+
}
|
|
800
|
+
]
|
|
801
|
+
},
|
|
802
|
+
"CustomCodeConfig": {
|
|
803
|
+
"allOf": [
|
|
804
|
+
{
|
|
805
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"type": "object",
|
|
809
|
+
"properties": {
|
|
810
|
+
"code": {
|
|
811
|
+
"type": "string",
|
|
812
|
+
"description": "JavaScript code to execute"
|
|
813
|
+
},
|
|
814
|
+
"output_variable": {
|
|
815
|
+
"type": "string",
|
|
816
|
+
"default": "customResult",
|
|
817
|
+
"description": "Variable to store result"
|
|
818
|
+
},
|
|
819
|
+
"log_execution": {
|
|
820
|
+
"type": "boolean",
|
|
821
|
+
"default": true,
|
|
822
|
+
"description": "Log code execution"
|
|
823
|
+
},
|
|
824
|
+
"catch_errors": {
|
|
825
|
+
"type": "boolean",
|
|
826
|
+
"default": true,
|
|
827
|
+
"description": "Catch and handle errors"
|
|
828
|
+
},
|
|
829
|
+
"timeout": {
|
|
830
|
+
"type": "integer",
|
|
831
|
+
"default": 30000,
|
|
832
|
+
"description": "Execution timeout in milliseconds"
|
|
833
|
+
}
|
|
834
|
+
},
|
|
835
|
+
"required": [
|
|
836
|
+
"code"
|
|
837
|
+
]
|
|
838
|
+
}
|
|
839
|
+
]
|
|
840
|
+
},
|
|
841
|
+
"SubflowConfig": {
|
|
842
|
+
"allOf": [
|
|
843
|
+
{
|
|
844
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"type": "object",
|
|
848
|
+
"properties": {
|
|
849
|
+
"flow_id": {
|
|
850
|
+
"type": "string",
|
|
851
|
+
"description": "ID of flow to call"
|
|
852
|
+
},
|
|
853
|
+
"flow_name": {
|
|
854
|
+
"type": "string",
|
|
855
|
+
"description": "Name of flow to call"
|
|
856
|
+
},
|
|
857
|
+
"input_parameters": {
|
|
858
|
+
"type": "array",
|
|
859
|
+
"items": {
|
|
860
|
+
"type": "object"
|
|
861
|
+
},
|
|
862
|
+
"description": "Input parameters for subflow"
|
|
863
|
+
},
|
|
864
|
+
"output_parameters": {
|
|
865
|
+
"type": "array",
|
|
866
|
+
"items": {
|
|
867
|
+
"type": "object"
|
|
868
|
+
},
|
|
869
|
+
"description": "Output parameters from subflow"
|
|
870
|
+
},
|
|
871
|
+
"output_variable": {
|
|
872
|
+
"type": "string",
|
|
873
|
+
"default": "flowResult",
|
|
874
|
+
"description": "Variable to store result"
|
|
875
|
+
},
|
|
876
|
+
"wait_for_completion": {
|
|
877
|
+
"type": "boolean",
|
|
878
|
+
"default": true,
|
|
879
|
+
"description": "Wait for flow to complete"
|
|
880
|
+
},
|
|
881
|
+
"log_execution": {
|
|
882
|
+
"type": "boolean",
|
|
883
|
+
"default": true,
|
|
884
|
+
"description": "Log flow execution"
|
|
885
|
+
},
|
|
886
|
+
"propagate_errors": {
|
|
887
|
+
"type": "boolean",
|
|
888
|
+
"default": true,
|
|
889
|
+
"description": "Propagate errors from subflow"
|
|
890
|
+
}
|
|
891
|
+
},
|
|
892
|
+
"required": [
|
|
893
|
+
"flowId"
|
|
894
|
+
]
|
|
895
|
+
}
|
|
896
|
+
]
|
|
897
|
+
},
|
|
898
|
+
"SendKeysConfig": {
|
|
899
|
+
"allOf": [
|
|
900
|
+
{
|
|
901
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
902
|
+
},
|
|
903
|
+
{
|
|
904
|
+
"type": "object",
|
|
905
|
+
"properties": {
|
|
906
|
+
"selector": {
|
|
907
|
+
"type": "string",
|
|
908
|
+
"description": "CSS selector for element to send keys to"
|
|
909
|
+
},
|
|
910
|
+
"keys": {
|
|
911
|
+
"type": "string",
|
|
912
|
+
"description": "Keys to send"
|
|
913
|
+
},
|
|
914
|
+
"wait_for_element": {
|
|
915
|
+
"type": "boolean",
|
|
916
|
+
"default": true,
|
|
917
|
+
"description": "Wait for element to be present"
|
|
918
|
+
}
|
|
919
|
+
},
|
|
920
|
+
"required": [
|
|
921
|
+
"keys"
|
|
922
|
+
]
|
|
923
|
+
}
|
|
924
|
+
]
|
|
925
|
+
},
|
|
926
|
+
"ScrollConfig": {
|
|
927
|
+
"allOf": [
|
|
928
|
+
{
|
|
929
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
"type": "object",
|
|
933
|
+
"properties": {
|
|
934
|
+
"direction": {
|
|
935
|
+
"type": "string",
|
|
936
|
+
"enum": [
|
|
937
|
+
"up",
|
|
938
|
+
"down",
|
|
939
|
+
"left",
|
|
940
|
+
"right"
|
|
941
|
+
],
|
|
942
|
+
"default": "down",
|
|
943
|
+
"description": "Scroll direction"
|
|
944
|
+
},
|
|
945
|
+
"distance": {
|
|
946
|
+
"type": "integer",
|
|
947
|
+
"default": 100,
|
|
948
|
+
"description": "Scroll distance in pixels"
|
|
949
|
+
},
|
|
950
|
+
"selector": {
|
|
951
|
+
"type": "string",
|
|
952
|
+
"description": "Element to scroll (optional, defaults to window)"
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
]
|
|
957
|
+
},
|
|
958
|
+
"AssertVisibleConfig": {
|
|
959
|
+
"allOf": [
|
|
960
|
+
{
|
|
961
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
"type": "object",
|
|
965
|
+
"properties": {
|
|
966
|
+
"selector": {
|
|
967
|
+
"type": "string",
|
|
968
|
+
"description": "CSS selector for element to check"
|
|
969
|
+
},
|
|
970
|
+
"timeout": {
|
|
971
|
+
"type": "integer",
|
|
972
|
+
"default": 5000,
|
|
973
|
+
"description": "Timeout in milliseconds"
|
|
974
|
+
},
|
|
975
|
+
"wait_for_element": {
|
|
976
|
+
"type": "boolean",
|
|
977
|
+
"default": true,
|
|
978
|
+
"description": "Wait for element to be present"
|
|
979
|
+
}
|
|
980
|
+
},
|
|
981
|
+
"required": [
|
|
982
|
+
"selector"
|
|
983
|
+
]
|
|
984
|
+
}
|
|
985
|
+
]
|
|
986
|
+
},
|
|
987
|
+
"ClearInputConfig": {
|
|
988
|
+
"allOf": [
|
|
989
|
+
{
|
|
990
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"type": "object",
|
|
994
|
+
"properties": {
|
|
995
|
+
"selector": {
|
|
996
|
+
"type": "string",
|
|
997
|
+
"description": "CSS selector for input element"
|
|
998
|
+
},
|
|
999
|
+
"wait_for_element": {
|
|
1000
|
+
"type": "boolean",
|
|
1001
|
+
"default": true,
|
|
1002
|
+
"description": "Wait for element to be present"
|
|
1003
|
+
}
|
|
1004
|
+
},
|
|
1005
|
+
"required": [
|
|
1006
|
+
"selector"
|
|
1007
|
+
]
|
|
1008
|
+
}
|
|
1009
|
+
]
|
|
1010
|
+
},
|
|
1011
|
+
"OpenNewTabConfig": {
|
|
1012
|
+
"allOf": [
|
|
1013
|
+
{
|
|
1014
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"type": "object",
|
|
1018
|
+
"properties": {
|
|
1019
|
+
"url": {
|
|
1020
|
+
"type": "string",
|
|
1021
|
+
"description": "URL to open in new tab"
|
|
1022
|
+
}
|
|
1023
|
+
},
|
|
1024
|
+
"required": [
|
|
1025
|
+
"url"
|
|
1026
|
+
]
|
|
1027
|
+
}
|
|
1028
|
+
]
|
|
1029
|
+
},
|
|
1030
|
+
"SwitchTabConfig": {
|
|
1031
|
+
"allOf": [
|
|
1032
|
+
{
|
|
1033
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1034
|
+
},
|
|
1035
|
+
{
|
|
1036
|
+
"type": "object",
|
|
1037
|
+
"properties": {
|
|
1038
|
+
"tab_index": {
|
|
1039
|
+
"type": "integer",
|
|
1040
|
+
"minimum": 0,
|
|
1041
|
+
"description": "Tab index to switch to"
|
|
1042
|
+
},
|
|
1043
|
+
"tab_title": {
|
|
1044
|
+
"type": "string",
|
|
1045
|
+
"description": "Tab title to switch to (alternative to index)"
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
]
|
|
1050
|
+
},
|
|
1051
|
+
"GoForwardConfig": {
|
|
1052
|
+
"allOf": [
|
|
1053
|
+
{
|
|
1054
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1055
|
+
},
|
|
1056
|
+
{
|
|
1057
|
+
"type": "object",
|
|
1058
|
+
"properties": {}
|
|
1059
|
+
}
|
|
1060
|
+
]
|
|
1061
|
+
},
|
|
1062
|
+
"GoBackConfig": {
|
|
1063
|
+
"allOf": [
|
|
1064
|
+
{
|
|
1065
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1066
|
+
},
|
|
1067
|
+
{
|
|
1068
|
+
"type": "object",
|
|
1069
|
+
"properties": {}
|
|
1070
|
+
}
|
|
1071
|
+
]
|
|
1072
|
+
},
|
|
1073
|
+
"RefreshConfig": {
|
|
1074
|
+
"allOf": [
|
|
1075
|
+
{
|
|
1076
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1077
|
+
},
|
|
1078
|
+
{
|
|
1079
|
+
"type": "object",
|
|
1080
|
+
"properties": {}
|
|
1081
|
+
}
|
|
1082
|
+
]
|
|
1083
|
+
},
|
|
1084
|
+
"GetPageInfoConfig": {
|
|
1085
|
+
"allOf": [
|
|
1086
|
+
{
|
|
1087
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
"type": "object",
|
|
1091
|
+
"properties": {
|
|
1092
|
+
"output_variable": {
|
|
1093
|
+
"type": "string",
|
|
1094
|
+
"default": "pageInfo",
|
|
1095
|
+
"description": "Variable to store page information"
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
]
|
|
1100
|
+
},
|
|
1101
|
+
"JunctionConfig": {
|
|
1102
|
+
"allOf": [
|
|
1103
|
+
{
|
|
1104
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1105
|
+
},
|
|
1106
|
+
{
|
|
1107
|
+
"type": "object",
|
|
1108
|
+
"properties": {
|
|
1109
|
+
"condition": {
|
|
1110
|
+
"type": "string",
|
|
1111
|
+
"description": "Condition to evaluate"
|
|
1112
|
+
},
|
|
1113
|
+
"true_path": {
|
|
1114
|
+
"type": "string",
|
|
1115
|
+
"description": "Path to take if condition is true"
|
|
1116
|
+
},
|
|
1117
|
+
"false_path": {
|
|
1118
|
+
"type": "string",
|
|
1119
|
+
"description": "Path to take if condition is false"
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
]
|
|
1124
|
+
},
|
|
1125
|
+
"ConditionalConfig": {
|
|
1126
|
+
"allOf": [
|
|
1127
|
+
{
|
|
1128
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
"type": "object",
|
|
1132
|
+
"properties": {
|
|
1133
|
+
"condition": {
|
|
1134
|
+
"type": "string",
|
|
1135
|
+
"description": "JavaScript condition to evaluate"
|
|
1136
|
+
},
|
|
1137
|
+
"then_actions": {
|
|
1138
|
+
"type": "array",
|
|
1139
|
+
"items": {
|
|
1140
|
+
"type": "object",
|
|
1141
|
+
"additionalProperties": true
|
|
1142
|
+
},
|
|
1143
|
+
"description": "Actions to execute if condition is true"
|
|
1144
|
+
},
|
|
1145
|
+
"else_actions": {
|
|
1146
|
+
"type": "array",
|
|
1147
|
+
"items": {
|
|
1148
|
+
"type": "object",
|
|
1149
|
+
"additionalProperties": true
|
|
1150
|
+
},
|
|
1151
|
+
"description": "Actions to execute if condition is false"
|
|
1152
|
+
}
|
|
1153
|
+
},
|
|
1154
|
+
"required": [
|
|
1155
|
+
"condition"
|
|
1156
|
+
]
|
|
1157
|
+
}
|
|
1158
|
+
]
|
|
1159
|
+
},
|
|
1160
|
+
"LoopConfig": {
|
|
1161
|
+
"allOf": [
|
|
1162
|
+
{
|
|
1163
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1164
|
+
},
|
|
1165
|
+
{
|
|
1166
|
+
"type": "object",
|
|
1167
|
+
"properties": {
|
|
1168
|
+
"loop_type": {
|
|
1169
|
+
"type": "string",
|
|
1170
|
+
"enum": [
|
|
1171
|
+
"count",
|
|
1172
|
+
"condition",
|
|
1173
|
+
"foreach"
|
|
1174
|
+
],
|
|
1175
|
+
"default": "count",
|
|
1176
|
+
"description": "Type of loop"
|
|
1177
|
+
},
|
|
1178
|
+
"count": {
|
|
1179
|
+
"type": "integer",
|
|
1180
|
+
"minimum": 1,
|
|
1181
|
+
"description": "Number of iterations (for count loops)"
|
|
1182
|
+
},
|
|
1183
|
+
"condition": {
|
|
1184
|
+
"type": "string",
|
|
1185
|
+
"description": "Condition to continue loop (for condition loops)"
|
|
1186
|
+
},
|
|
1187
|
+
"array_variable": {
|
|
1188
|
+
"type": "string",
|
|
1189
|
+
"description": "Variable containing array to iterate (for foreach loops)"
|
|
1190
|
+
},
|
|
1191
|
+
"item_variable": {
|
|
1192
|
+
"type": "string",
|
|
1193
|
+
"default": "item",
|
|
1194
|
+
"description": "Variable name for current item (for foreach loops)"
|
|
1195
|
+
},
|
|
1196
|
+
"actions": {
|
|
1197
|
+
"type": "array",
|
|
1198
|
+
"items": {
|
|
1199
|
+
"type": "object",
|
|
1200
|
+
"additionalProperties": true
|
|
1201
|
+
},
|
|
1202
|
+
"description": "Actions to execute in each iteration"
|
|
1203
|
+
},
|
|
1204
|
+
"max_iterations": {
|
|
1205
|
+
"type": "integer",
|
|
1206
|
+
"minimum": 1,
|
|
1207
|
+
"default": 100,
|
|
1208
|
+
"description": "Maximum iterations to prevent infinite loops"
|
|
1209
|
+
}
|
|
1210
|
+
},
|
|
1211
|
+
"required": [
|
|
1212
|
+
"actions"
|
|
1213
|
+
]
|
|
1214
|
+
}
|
|
1215
|
+
]
|
|
1216
|
+
},
|
|
1217
|
+
"DragAndDropConfig": {
|
|
1218
|
+
"allOf": [
|
|
1219
|
+
{
|
|
1220
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1221
|
+
},
|
|
1222
|
+
{
|
|
1223
|
+
"type": "object",
|
|
1224
|
+
"properties": {
|
|
1225
|
+
"source_selector": {
|
|
1226
|
+
"type": "string",
|
|
1227
|
+
"description": "CSS selector for element to drag"
|
|
1228
|
+
},
|
|
1229
|
+
"target_selector": {
|
|
1230
|
+
"type": "string",
|
|
1231
|
+
"description": "CSS selector for drop target"
|
|
1232
|
+
},
|
|
1233
|
+
"wait_for_element": {
|
|
1234
|
+
"type": "boolean",
|
|
1235
|
+
"default": true,
|
|
1236
|
+
"description": "Wait for elements to be present"
|
|
1237
|
+
}
|
|
1238
|
+
},
|
|
1239
|
+
"required": [
|
|
1240
|
+
"sourceSelector",
|
|
1241
|
+
"targetSelector"
|
|
1242
|
+
]
|
|
1243
|
+
}
|
|
1244
|
+
]
|
|
1245
|
+
},
|
|
1246
|
+
"CallToFlowConfig": {
|
|
1247
|
+
"allOf": [
|
|
1248
|
+
{
|
|
1249
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
"type": "object",
|
|
1253
|
+
"properties": {
|
|
1254
|
+
"flow_id": {
|
|
1255
|
+
"type": "string",
|
|
1256
|
+
"description": "ID of flow to call"
|
|
1257
|
+
},
|
|
1258
|
+
"input_parameters": {
|
|
1259
|
+
"type": "object",
|
|
1260
|
+
"description": "Input parameters to pass to subflow",
|
|
1261
|
+
"additionalProperties": true
|
|
1262
|
+
},
|
|
1263
|
+
"output_variable": {
|
|
1264
|
+
"type": "string",
|
|
1265
|
+
"default": "flowResult",
|
|
1266
|
+
"description": "Variable to store result"
|
|
1267
|
+
},
|
|
1268
|
+
"wait_for_completion": {
|
|
1269
|
+
"type": "boolean",
|
|
1270
|
+
"default": true,
|
|
1271
|
+
"description": "Wait for subflow to complete"
|
|
1272
|
+
},
|
|
1273
|
+
"async": {
|
|
1274
|
+
"type": "boolean",
|
|
1275
|
+
"default": false,
|
|
1276
|
+
"description": "Execute subflow asynchronously"
|
|
1277
|
+
}
|
|
1278
|
+
},
|
|
1279
|
+
"required": [
|
|
1280
|
+
"flowId"
|
|
1281
|
+
]
|
|
1282
|
+
}
|
|
1283
|
+
]
|
|
1284
|
+
},
|
|
1285
|
+
"SwitchToFrameConfig": {
|
|
1286
|
+
"allOf": [
|
|
1287
|
+
{
|
|
1288
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1289
|
+
},
|
|
1290
|
+
{
|
|
1291
|
+
"type": "object",
|
|
1292
|
+
"properties": {
|
|
1293
|
+
"frame_selector": {
|
|
1294
|
+
"type": "string",
|
|
1295
|
+
"description": "CSS selector or frame name/ID"
|
|
1296
|
+
},
|
|
1297
|
+
"frame_index": {
|
|
1298
|
+
"type": "integer",
|
|
1299
|
+
"minimum": 0,
|
|
1300
|
+
"description": "Frame index (alternative to selector)"
|
|
1301
|
+
}
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
]
|
|
1305
|
+
},
|
|
1306
|
+
"ExitFrameConfig": {
|
|
1307
|
+
"allOf": [
|
|
1308
|
+
{
|
|
1309
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1310
|
+
},
|
|
1311
|
+
{
|
|
1312
|
+
"type": "object",
|
|
1313
|
+
"properties": {}
|
|
1314
|
+
}
|
|
1315
|
+
]
|
|
1316
|
+
},
|
|
1317
|
+
"SetViewportConfig": {
|
|
1318
|
+
"allOf": [
|
|
1319
|
+
{
|
|
1320
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1321
|
+
},
|
|
1322
|
+
{
|
|
1323
|
+
"type": "object",
|
|
1324
|
+
"properties": {
|
|
1325
|
+
"viewport_type": {
|
|
1326
|
+
"type": "string",
|
|
1327
|
+
"enum": [
|
|
1328
|
+
"preset",
|
|
1329
|
+
"device",
|
|
1330
|
+
"responsive",
|
|
1331
|
+
"custom"
|
|
1332
|
+
],
|
|
1333
|
+
"default": "custom",
|
|
1334
|
+
"description": "Type of viewport configuration"
|
|
1335
|
+
},
|
|
1336
|
+
"width": {
|
|
1337
|
+
"type": "integer",
|
|
1338
|
+
"minimum": 1,
|
|
1339
|
+
"description": "Viewport width in pixels"
|
|
1340
|
+
},
|
|
1341
|
+
"height": {
|
|
1342
|
+
"type": "integer",
|
|
1343
|
+
"minimum": 1,
|
|
1344
|
+
"description": "Viewport height in pixels"
|
|
1345
|
+
},
|
|
1346
|
+
"screen_size_preset": {
|
|
1347
|
+
"type": "string",
|
|
1348
|
+
"description": "Preset screen size name"
|
|
1349
|
+
},
|
|
1350
|
+
"device_name": {
|
|
1351
|
+
"type": "string",
|
|
1352
|
+
"description": "Device name for emulation"
|
|
1353
|
+
},
|
|
1354
|
+
"device_scale_factor": {
|
|
1355
|
+
"type": "number",
|
|
1356
|
+
"minimum": 0.1,
|
|
1357
|
+
"maximum": 5,
|
|
1358
|
+
"default": 1.0,
|
|
1359
|
+
"description": "Device scale factor"
|
|
1360
|
+
},
|
|
1361
|
+
"is_mobile": {
|
|
1362
|
+
"type": "boolean",
|
|
1363
|
+
"default": false,
|
|
1364
|
+
"description": "Emulate mobile device"
|
|
1365
|
+
},
|
|
1366
|
+
"has_touch": {
|
|
1367
|
+
"type": "boolean",
|
|
1368
|
+
"default": false,
|
|
1369
|
+
"description": "Enable touch events"
|
|
1370
|
+
},
|
|
1371
|
+
"is_landscape": {
|
|
1372
|
+
"type": "boolean",
|
|
1373
|
+
"default": false,
|
|
1374
|
+
"description": "Use landscape orientation"
|
|
1375
|
+
},
|
|
1376
|
+
"user_agent": {
|
|
1377
|
+
"type": "string",
|
|
1378
|
+
"description": "Custom user agent string"
|
|
1379
|
+
},
|
|
1380
|
+
"wait_after_resize": {
|
|
1381
|
+
"type": "boolean",
|
|
1382
|
+
"default": true,
|
|
1383
|
+
"description": "Wait after viewport resize"
|
|
1384
|
+
},
|
|
1385
|
+
"take_screenshot": {
|
|
1386
|
+
"type": "boolean",
|
|
1387
|
+
"default": false,
|
|
1388
|
+
"description": "Take screenshot after resize"
|
|
1389
|
+
},
|
|
1390
|
+
"preserve_cookies": {
|
|
1391
|
+
"type": "boolean",
|
|
1392
|
+
"default": false,
|
|
1393
|
+
"description": "Preserve cookies across viewport changes"
|
|
1394
|
+
},
|
|
1395
|
+
"preserve_local_storage": {
|
|
1396
|
+
"type": "boolean",
|
|
1397
|
+
"default": false,
|
|
1398
|
+
"description": "Preserve local storage across viewport changes"
|
|
1399
|
+
},
|
|
1400
|
+
"preserve_session_storage": {
|
|
1401
|
+
"type": "boolean",
|
|
1402
|
+
"default": false,
|
|
1403
|
+
"description": "Preserve session storage across viewport changes"
|
|
1404
|
+
}
|
|
1405
|
+
},
|
|
1406
|
+
"required": [
|
|
1407
|
+
"width",
|
|
1408
|
+
"height"
|
|
1409
|
+
]
|
|
1410
|
+
}
|
|
1411
|
+
]
|
|
1412
|
+
},
|
|
1413
|
+
"GetElementPropertiesConfig": {
|
|
1414
|
+
"allOf": [
|
|
1415
|
+
{
|
|
1416
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1417
|
+
},
|
|
1418
|
+
{
|
|
1419
|
+
"type": "object",
|
|
1420
|
+
"properties": {
|
|
1421
|
+
"selector": {
|
|
1422
|
+
"type": "string",
|
|
1423
|
+
"description": "CSS selector for element"
|
|
1424
|
+
},
|
|
1425
|
+
"properties": {
|
|
1426
|
+
"type": "array",
|
|
1427
|
+
"items": {
|
|
1428
|
+
"type": "string",
|
|
1429
|
+
"enum": [
|
|
1430
|
+
"text",
|
|
1431
|
+
"value",
|
|
1432
|
+
"class",
|
|
1433
|
+
"id",
|
|
1434
|
+
"tagName",
|
|
1435
|
+
"innerHTML",
|
|
1436
|
+
"outerHTML",
|
|
1437
|
+
"attributes",
|
|
1438
|
+
"rect",
|
|
1439
|
+
"visible",
|
|
1440
|
+
"enabled",
|
|
1441
|
+
"selected"
|
|
1442
|
+
]
|
|
1443
|
+
},
|
|
1444
|
+
"description": "Properties to retrieve"
|
|
1445
|
+
},
|
|
1446
|
+
"output_variable": {
|
|
1447
|
+
"type": "string",
|
|
1448
|
+
"default": "elementProps",
|
|
1449
|
+
"description": "Variable to store properties"
|
|
1450
|
+
},
|
|
1451
|
+
"wait_for_element": {
|
|
1452
|
+
"type": "boolean",
|
|
1453
|
+
"default": true,
|
|
1454
|
+
"description": "Wait for element to be present"
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
"required": [
|
|
1458
|
+
"selector",
|
|
1459
|
+
"properties"
|
|
1460
|
+
]
|
|
1461
|
+
}
|
|
1462
|
+
]
|
|
1463
|
+
},
|
|
1464
|
+
"HandlePopupConfig": {
|
|
1465
|
+
"allOf": [
|
|
1466
|
+
{
|
|
1467
|
+
"$ref": "#/$defs/BaseActionConfig"
|
|
1468
|
+
},
|
|
1469
|
+
{
|
|
1470
|
+
"type": "object",
|
|
1471
|
+
"properties": {
|
|
1472
|
+
"action": {
|
|
1473
|
+
"type": "string",
|
|
1474
|
+
"enum": [
|
|
1475
|
+
"accept",
|
|
1476
|
+
"dismiss",
|
|
1477
|
+
"text"
|
|
1478
|
+
],
|
|
1479
|
+
"default": "accept",
|
|
1480
|
+
"description": "Action to perform on popup"
|
|
1481
|
+
},
|
|
1482
|
+
"text": {
|
|
1483
|
+
"type": "string",
|
|
1484
|
+
"description": "Text to enter in prompt popup"
|
|
1485
|
+
},
|
|
1486
|
+
"wait_for_popup": {
|
|
1487
|
+
"type": "boolean",
|
|
1488
|
+
"default": true,
|
|
1489
|
+
"description": "Wait for popup to appear"
|
|
1490
|
+
},
|
|
1491
|
+
"timeout": {
|
|
1492
|
+
"type": "integer",
|
|
1493
|
+
"default": 5000,
|
|
1494
|
+
"description": "Timeout in milliseconds"
|
|
1495
|
+
}
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
]
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
}
|