@windmill-labs/shared-utils 1.0.3 → 1.0.12

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.
@@ -1,27 +1,97 @@
1
+ /**
2
+ * Top-level flow definition containing metadata, configuration, and the flow structure
3
+ */
1
4
  export type OpenFlow = {
5
+ /**
6
+ * Short description of what this flow does
7
+ */
2
8
  summary: string;
9
+ /**
10
+ * Detailed documentation for this flow
11
+ */
3
12
  description?: string;
4
13
  value: FlowValue;
14
+ /**
15
+ * JSON Schema for flow inputs. Use this to define input parameters, their types, defaults, and validation. For resource inputs, set type to 'object' and format to 'resource-<type>' (e.g., 'resource-stripe')
16
+ */
5
17
  schema?: {
6
18
  [key: string]: unknown;
7
19
  };
8
20
  };
21
+ /**
22
+ * The flow structure containing modules and optional preprocessor/failure handlers
23
+ */
9
24
  export type FlowValue = {
25
+ /**
26
+ * Array of steps that execute in sequence. Each step can be a script, subflow, loop, or branch
27
+ */
10
28
  modules: Array<FlowModule>;
29
+ /**
30
+ * Special module that executes when the flow fails. Receives error object with message, name, stack, and step_id. Must have id 'failure'. Only supports script/rawscript types
31
+ */
11
32
  failure_module?: FlowModule;
33
+ /**
34
+ * Special module that runs before the first step on external triggers. Must have id 'preprocessor'. Only supports script/rawscript types. Cannot reference other step results
35
+ */
12
36
  preprocessor_module?: FlowModule;
37
+ /**
38
+ * If true, all steps run on the same worker for better performance
39
+ */
13
40
  same_worker?: boolean;
41
+ /**
42
+ * Maximum number of concurrent executions of this flow
43
+ */
14
44
  concurrent_limit?: number;
45
+ /**
46
+ * Expression to group concurrent executions (e.g., by user ID)
47
+ */
15
48
  concurrency_key?: string;
49
+ /**
50
+ * Time window in seconds for concurrent_limit
51
+ */
16
52
  concurrency_time_window_s?: number;
53
+ /**
54
+ * Delay in seconds to debounce flow executions
55
+ */
17
56
  debounce_delay_s?: number;
57
+ /**
58
+ * Expression to group debounced executions
59
+ */
18
60
  debounce_key?: string;
61
+ /**
62
+ * Arguments to accumulate across debounced executions
63
+ */
64
+ debounce_args_to_accumulate?: Array<(string)>;
65
+ /**
66
+ * Maximum total time in seconds that a job can be debounced
67
+ */
68
+ max_total_debouncing_time?: number;
69
+ /**
70
+ * Maximum number of times a job can be debounced
71
+ */
72
+ max_total_debounces_amount?: number;
73
+ /**
74
+ * JavaScript expression to conditionally skip the entire flow
75
+ */
19
76
  skip_expr?: string;
77
+ /**
78
+ * Cache duration in seconds for flow results
79
+ */
20
80
  cache_ttl?: number;
81
+ cache_ignore_s3_path?: boolean;
82
+ /**
83
+ * Environment variables available to all steps
84
+ */
21
85
  flow_env?: {
22
86
  [key: string]: (string);
23
87
  };
88
+ /**
89
+ * Execution priority (higher numbers run first)
90
+ */
24
91
  priority?: number;
92
+ /**
93
+ * JavaScript expression to return early from the flow
94
+ */
25
95
  early_return?: string;
26
96
  /**
27
97
  * Whether this flow accepts chat-style input
@@ -32,163 +102,501 @@ export type FlowValue = {
32
102
  */
33
103
  notes?: Array<FlowNote>;
34
104
  };
105
+ /**
106
+ * Retry configuration for failed module executions
107
+ */
35
108
  export type Retry = {
109
+ /**
110
+ * Retry with constant delay between attempts
111
+ */
36
112
  constant?: {
113
+ /**
114
+ * Number of retry attempts
115
+ */
37
116
  attempts?: number;
117
+ /**
118
+ * Seconds to wait between retries
119
+ */
38
120
  seconds?: number;
39
121
  };
122
+ /**
123
+ * Retry with exponential backoff (delay doubles each time)
124
+ */
40
125
  exponential?: {
126
+ /**
127
+ * Number of retry attempts
128
+ */
41
129
  attempts?: number;
130
+ /**
131
+ * Multiplier for exponential backoff
132
+ */
42
133
  multiplier?: number;
134
+ /**
135
+ * Initial delay in seconds
136
+ */
43
137
  seconds?: number;
138
+ /**
139
+ * Random jitter percentage (0-100) to avoid thundering herd
140
+ */
44
141
  random_factor?: number;
45
142
  };
143
+ /**
144
+ * Conditional retry based on error or result
145
+ */
46
146
  retry_if?: {
147
+ /**
148
+ * JavaScript expression that returns true to retry. Has access to 'result' and 'error' variables
149
+ */
47
150
  expr: string;
48
151
  };
49
152
  };
153
+ /**
154
+ * Early termination condition for a module
155
+ */
50
156
  export type StopAfterIf = {
157
+ /**
158
+ * If true, following steps are skipped when this condition triggers
159
+ */
51
160
  skip_if_stopped?: boolean;
161
+ /**
162
+ * JavaScript expression evaluated after the module runs. Can use 'result' (step's result) or 'flow_input'. Return true to stop
163
+ */
52
164
  expr: string;
165
+ /**
166
+ * Custom error message shown when stopping
167
+ */
53
168
  error_message?: string;
54
169
  };
170
+ /**
171
+ * A single step in a flow. Can be a script, subflow, loop, or branch
172
+ */
55
173
  export type FlowModule = {
174
+ /**
175
+ * Unique identifier for this step. Used to reference results via 'results.step_id'. Must be a valid identifier (alphanumeric, underscore, hyphen)
176
+ */
56
177
  id: string;
57
178
  value: FlowModuleValue;
179
+ /**
180
+ * Early termination condition evaluated after this step completes
181
+ */
58
182
  stop_after_if?: StopAfterIf;
183
+ /**
184
+ * For loops only - early termination condition evaluated after all iterations complete
185
+ */
59
186
  stop_after_all_iters_if?: StopAfterIf;
187
+ /**
188
+ * Conditionally skip this step based on previous results or flow inputs
189
+ */
60
190
  skip_if?: {
191
+ /**
192
+ * JavaScript expression that returns true to skip. Can use 'flow_input' or 'results.<step_id>'
193
+ */
61
194
  expr: string;
62
195
  };
196
+ /**
197
+ * Delay before executing this step (in seconds or as expression)
198
+ */
63
199
  sleep?: InputTransform;
200
+ /**
201
+ * Cache duration in seconds for this step's results
202
+ */
64
203
  cache_ttl?: number;
204
+ cache_ignore_s3_path?: boolean;
205
+ /**
206
+ * Maximum execution time in seconds (static value or expression)
207
+ */
65
208
  timeout?: InputTransform;
209
+ /**
210
+ * If true, this step's result is deleted after use to save memory
211
+ */
66
212
  delete_after_use?: boolean;
213
+ /**
214
+ * Short description of what this step does
215
+ */
67
216
  summary?: string;
217
+ /**
218
+ * Mock configuration for testing without executing the actual step
219
+ */
68
220
  mock?: {
221
+ /**
222
+ * If true, return mock value instead of executing
223
+ */
69
224
  enabled?: boolean;
225
+ /**
226
+ * Value to return when mocked
227
+ */
70
228
  return_value?: unknown;
71
229
  };
230
+ /**
231
+ * Configuration for approval/resume steps that wait for user input
232
+ */
72
233
  suspend?: {
234
+ /**
235
+ * Number of approvals required before continuing
236
+ */
73
237
  required_events?: number;
238
+ /**
239
+ * Timeout in seconds before auto-continuing or canceling
240
+ */
74
241
  timeout?: number;
242
+ /**
243
+ * Form schema for collecting input when resuming
244
+ */
75
245
  resume_form?: {
246
+ /**
247
+ * JSON Schema for the resume form
248
+ */
76
249
  schema?: {
77
250
  [key: string]: unknown;
78
251
  };
79
252
  };
253
+ /**
254
+ * If true, only authenticated users can approve
255
+ */
80
256
  user_auth_required?: boolean;
257
+ /**
258
+ * Expression or list of groups that can approve
259
+ */
81
260
  user_groups_required?: InputTransform;
261
+ /**
262
+ * If true, the user who started the flow cannot approve
263
+ */
82
264
  self_approval_disabled?: boolean;
265
+ /**
266
+ * If true, hide the cancel button on the approval form
267
+ */
83
268
  hide_cancel?: boolean;
269
+ /**
270
+ * If true, continue flow on timeout instead of canceling
271
+ */
84
272
  continue_on_disapprove_timeout?: boolean;
85
273
  };
274
+ /**
275
+ * Execution priority for this step (higher numbers run first)
276
+ */
86
277
  priority?: number;
278
+ /**
279
+ * If true, flow continues even if this step fails
280
+ */
87
281
  continue_on_error?: boolean;
282
+ /**
283
+ * Retry configuration if this step fails
284
+ */
88
285
  retry?: Retry;
89
286
  };
287
+ /**
288
+ * Maps input parameters for a step. Can be a static value or a JavaScript expression that references previous results or flow inputs
289
+ */
90
290
  export type InputTransform = StaticTransform | JavascriptTransform;
291
+ /**
292
+ * Static value passed directly to the step. Use for hardcoded values or resource references like '$res:path/to/resource'
293
+ */
91
294
  export type StaticTransform = {
295
+ /**
296
+ * The static value. For resources, use format '$res:path/to/resource'
297
+ */
92
298
  value?: unknown;
93
299
  type: 'static';
94
300
  };
301
+ /**
302
+ * JavaScript expression evaluated at runtime. Can reference previous step results via 'results.step_id' or flow inputs via 'flow_input.property'. Inside loops, use 'flow_input.iter.value' for the current iteration value
303
+ */
95
304
  export type JavascriptTransform = {
305
+ /**
306
+ * JavaScript expression returning the value. Available variables - results (object with all previous step results), flow_input (flow inputs), flow_input.iter (in loops)
307
+ */
96
308
  expr: string;
97
309
  type: 'javascript';
98
310
  };
311
+ /**
312
+ * The actual implementation of a flow step. Can be a script (inline or referenced), subflow, loop, branch, or special module type
313
+ */
99
314
  export type FlowModuleValue = RawScript | PathScript | PathFlow | ForloopFlow | WhileloopFlow | BranchOne | BranchAll | Identity | AiAgent;
315
+ /**
316
+ * Inline script with code defined directly in the flow. Use 'bun' as default language if unspecified. The script receives arguments from input_transforms
317
+ */
100
318
  export type RawScript = {
319
+ /**
320
+ * Map of parameter names to their values (static or JavaScript expressions). These become the script's input arguments
321
+ */
101
322
  input_transforms: {
102
323
  [key: string]: InputTransform;
103
324
  };
325
+ /**
326
+ * The script source code. Should export a 'main' function
327
+ */
104
328
  content: string;
329
+ /**
330
+ * Programming language for this script
331
+ */
105
332
  language: 'deno' | 'bun' | 'python3' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'php';
333
+ /**
334
+ * Optional path for saving this script
335
+ */
106
336
  path?: string;
337
+ /**
338
+ * Lock file content for dependencies
339
+ */
107
340
  lock?: string;
108
341
  type: 'rawscript';
342
+ /**
343
+ * Worker group tag for execution routing
344
+ */
109
345
  tag?: string;
346
+ /**
347
+ * Maximum concurrent executions of this script
348
+ */
110
349
  concurrent_limit?: number;
350
+ /**
351
+ * Time window for concurrent_limit
352
+ */
111
353
  concurrency_time_window_s?: number;
354
+ /**
355
+ * Custom key for grouping concurrent executions
356
+ */
112
357
  custom_concurrency_key?: string;
358
+ /**
359
+ * If true, this script is a trigger that can start the flow
360
+ */
113
361
  is_trigger?: boolean;
362
+ /**
363
+ * External resources this script accesses (S3 objects, resources, etc.)
364
+ */
114
365
  assets?: Array<{
366
+ /**
367
+ * Path to the asset
368
+ */
115
369
  path: string;
116
- kind: 's3object' | 'resource' | 'ducklake';
370
+ /**
371
+ * Type of asset
372
+ */
373
+ kind: 's3object' | 'resource' | 'ducklake' | 'datatable';
374
+ /**
375
+ * Access level for this asset
376
+ */
117
377
  access_type?: 'r' | 'w' | 'rw';
378
+ /**
379
+ * Alternative access level
380
+ */
118
381
  alt_access_type?: 'r' | 'w' | 'rw';
119
382
  }>;
120
383
  };
384
+ /**
385
+ * Reference to an existing script by path. Use this when calling a previously saved script instead of writing inline code
386
+ */
121
387
  export type PathScript = {
388
+ /**
389
+ * Map of parameter names to their values (static or JavaScript expressions). These become the script's input arguments
390
+ */
122
391
  input_transforms: {
123
392
  [key: string]: InputTransform;
124
393
  };
394
+ /**
395
+ * Path to the script in the workspace (e.g., 'f/scripts/send_email')
396
+ */
125
397
  path: string;
398
+ /**
399
+ * Optional specific version hash of the script to use
400
+ */
126
401
  hash?: string;
127
402
  type: 'script';
403
+ /**
404
+ * Override the script's default worker group tag
405
+ */
128
406
  tag_override?: string;
407
+ /**
408
+ * If true, this script is a trigger that can start the flow
409
+ */
129
410
  is_trigger?: boolean;
130
411
  };
412
+ /**
413
+ * Reference to an existing flow by path. Use this to call another flow as a subflow
414
+ */
131
415
  export type PathFlow = {
416
+ /**
417
+ * Map of parameter names to their values (static or JavaScript expressions). These become the subflow's input arguments
418
+ */
132
419
  input_transforms: {
133
420
  [key: string]: InputTransform;
134
421
  };
422
+ /**
423
+ * Path to the flow in the workspace (e.g., 'f/flows/process_user')
424
+ */
135
425
  path: string;
136
426
  type: 'flow';
137
427
  };
428
+ /**
429
+ * Executes nested modules in a loop over an iterator. Inside the loop, use 'flow_input.iter.value' to access the current iteration value, and 'flow_input.iter.index' for the index. Supports parallel execution for better performance on I/O-bound operations
430
+ */
138
431
  export type ForloopFlow = {
432
+ /**
433
+ * Steps to execute for each iteration. These can reference the iteration value via 'flow_input.iter.value'
434
+ */
139
435
  modules: Array<FlowModule>;
436
+ /**
437
+ * JavaScript expression that returns an array to iterate over. Can reference 'results.step_id' or 'flow_input'
438
+ */
140
439
  iterator: InputTransform;
440
+ /**
441
+ * If true, iteration failures don't stop the loop. Failed iterations return null
442
+ */
141
443
  skip_failures: boolean;
142
444
  type: 'forloopflow';
445
+ /**
446
+ * If true, iterations run concurrently (faster for I/O-bound operations). Use with parallelism to control concurrency
447
+ */
143
448
  parallel?: boolean;
449
+ /**
450
+ * Maximum number of concurrent iterations when parallel=true. Limits resource usage. Can be static number or expression
451
+ */
144
452
  parallelism?: InputTransform;
453
+ squash?: boolean;
145
454
  };
455
+ /**
456
+ * Executes nested modules repeatedly while a condition is true. The loop checks the condition after each iteration. Use stop_after_if on modules to control loop termination
457
+ */
146
458
  export type WhileloopFlow = {
459
+ /**
460
+ * Steps to execute in each iteration. Use stop_after_if to control when the loop ends
461
+ */
147
462
  modules: Array<FlowModule>;
463
+ /**
464
+ * If true, iteration failures don't stop the loop. Failed iterations return null
465
+ */
148
466
  skip_failures: boolean;
149
467
  type: 'whileloopflow';
468
+ /**
469
+ * If true, iterations run concurrently (use with caution in while loops)
470
+ */
150
471
  parallel?: boolean;
472
+ /**
473
+ * Maximum number of concurrent iterations when parallel=true
474
+ */
151
475
  parallelism?: InputTransform;
476
+ squash?: boolean;
152
477
  };
478
+ /**
479
+ * Conditional branching where only the first matching branch executes. Branches are evaluated in order, and the first one with a true expression runs. If no branches match, the default branch executes
480
+ */
153
481
  export type BranchOne = {
482
+ /**
483
+ * Array of branches to evaluate in order. The first branch with expr evaluating to true executes
484
+ */
154
485
  branches: Array<{
486
+ /**
487
+ * Short description of this branch condition
488
+ */
155
489
  summary?: string;
490
+ /**
491
+ * JavaScript expression that returns boolean. Can use 'results.step_id' or 'flow_input'. First true expr wins
492
+ */
156
493
  expr: string;
494
+ /**
495
+ * Steps to execute if this branch's expr is true
496
+ */
157
497
  modules: Array<FlowModule>;
158
498
  }>;
499
+ /**
500
+ * Steps to execute if no branch expressions match
501
+ */
159
502
  default: Array<FlowModule>;
160
503
  type: 'branchone';
161
504
  };
505
+ /**
506
+ * Parallel branching where all branches execute simultaneously. Unlike BranchOne, all branches run regardless of conditions. Useful for executing independent tasks concurrently
507
+ */
162
508
  export type BranchAll = {
509
+ /**
510
+ * Array of branches that all execute (either in parallel or sequentially)
511
+ */
163
512
  branches: Array<{
513
+ /**
514
+ * Short description of this branch's purpose
515
+ */
164
516
  summary?: string;
517
+ /**
518
+ * If true, failure in this branch doesn't fail the entire flow
519
+ */
165
520
  skip_failure?: boolean;
521
+ /**
522
+ * Steps to execute in this branch
523
+ */
166
524
  modules: Array<FlowModule>;
167
525
  }>;
168
526
  type: 'branchall';
527
+ /**
528
+ * If true, all branches execute concurrently. If false, they execute sequentially
529
+ */
169
530
  parallel?: boolean;
170
531
  };
532
+ /**
533
+ * AI agent step that can use tools to accomplish tasks. The agent receives inputs and can call any of its configured tools to complete the task
534
+ */
171
535
  export type AiAgent = {
536
+ /**
537
+ * Input parameters for the AI agent mapped to their values
538
+ */
172
539
  input_transforms: {
173
- [key: string]: InputTransform;
540
+ provider: InputTransform;
541
+ output_type: InputTransform;
542
+ user_message: InputTransform;
543
+ system_prompt?: InputTransform;
544
+ streaming?: InputTransform;
545
+ memory?: InputTransform;
546
+ output_schema?: InputTransform;
547
+ user_images?: InputTransform;
548
+ max_completion_tokens?: InputTransform;
549
+ temperature?: InputTransform;
174
550
  };
551
+ /**
552
+ * Array of tools the agent can use. The agent decides which tools to call based on the task
553
+ */
175
554
  tools: Array<{
555
+ /**
556
+ * Unique identifier for this tool. Cannot contain spaces - use underscores instead (e.g., 'get_user_data' not 'get user data')
557
+ */
176
558
  id: string;
559
+ /**
560
+ * Short description of what this tool does (shown to the AI)
561
+ */
177
562
  summary?: string;
563
+ /**
564
+ * The implementation of a tool. Can be a flow module (script/flow) or an MCP tool reference
565
+ */
178
566
  value: {
179
567
  tool_type: 'flowmodule';
180
568
  } & FlowModuleValue | {
181
569
  tool_type: 'mcp';
570
+ /**
571
+ * Path to the MCP resource/server configuration
572
+ */
182
573
  resource_path: string;
574
+ /**
575
+ * Whitelist of specific tools to include from this MCP server
576
+ */
183
577
  include_tools?: Array<(string)>;
578
+ /**
579
+ * Blacklist of tools to exclude from this MCP server
580
+ */
184
581
  exclude_tools?: Array<(string)>;
582
+ } | {
583
+ tool_type: 'websearch';
185
584
  };
186
585
  }>;
187
586
  type: 'aiagent';
587
+ /**
588
+ * If true, the agent can execute multiple tool calls in parallel
589
+ */
188
590
  parallel?: boolean;
189
591
  };
592
+ /**
593
+ * Pass-through module that returns its input unchanged. Useful for flow structure or as a placeholder
594
+ */
190
595
  export type Identity = {
191
596
  type: 'identity';
597
+ /**
598
+ * If true, marks this as a flow identity (special handling)
599
+ */
192
600
  flow?: boolean;
193
601
  };
194
602
  export type FlowStatus = {
@@ -213,6 +621,7 @@ export type FlowStatusModule = {
213
621
  iterator?: {
214
622
  index?: number;
215
623
  itered?: Array<unknown>;
624
+ itered_len?: number;
216
625
  args?: unknown;
217
626
  };
218
627
  flow_jobs?: Array<(string)>;
@@ -248,6 +657,8 @@ export type FlowStatusModule = {
248
657
  arguments?: {
249
658
  [key: string]: unknown;
250
659
  };
660
+ } | {
661
+ type: 'web_search';
251
662
  } | {
252
663
  type: 'message';
253
664
  })>;
@@ -442,9 +853,26 @@ export type Alert = {
442
853
  alert_cooldown_seconds: number;
443
854
  alert_time_threshold_seconds: number;
444
855
  };
445
- export type Configs = {
446
- alerts?: Array<Alert>;
447
- } | null;
856
+ export type Configs = {
857
+ alerts?: Array<Alert>;
858
+ } | null;
859
+ export type WorkspaceDependencies = {
860
+ id: number;
861
+ archived: boolean;
862
+ name?: string;
863
+ description?: string;
864
+ content: string;
865
+ language: ScriptLang;
866
+ workspace_id: string;
867
+ created_at: string;
868
+ };
869
+ export type NewWorkspaceDependencies = {
870
+ workspace_id: string;
871
+ language: ScriptLang;
872
+ name?: string;
873
+ description?: string;
874
+ content: string;
875
+ };
448
876
  export type Script = {
449
877
  workspace_id?: string;
450
878
  hash: string;
@@ -482,6 +910,9 @@ export type Script = {
482
910
  concurrency_key?: string;
483
911
  debounce_key?: string;
484
912
  debounce_delay_s?: number;
913
+ debounce_args_to_accumulate?: Array<(string)>;
914
+ max_total_debouncing_time?: number;
915
+ max_total_debounces_amount?: number;
485
916
  cache_ttl?: number;
486
917
  dedicated_worker?: boolean;
487
918
  ws_error_handler_muted?: boolean;
@@ -514,6 +945,7 @@ export type NewScript = {
514
945
  concurrent_limit?: number;
515
946
  concurrency_time_window_s?: number;
516
947
  cache_ttl?: number;
948
+ cache_ignore_s3_path?: boolean;
517
949
  dedicated_worker?: boolean;
518
950
  ws_error_handler_muted?: boolean;
519
951
  priority?: number;
@@ -524,6 +956,9 @@ export type NewScript = {
524
956
  concurrency_key?: string;
525
957
  debounce_key?: string;
526
958
  debounce_delay_s?: number;
959
+ debounce_args_to_accumulate?: Array<(string)>;
960
+ max_total_debouncing_time?: number;
961
+ max_total_debounces_amount?: number;
527
962
  visible_to_runner_only?: boolean;
528
963
  no_main_func?: boolean;
529
964
  codebase?: string;
@@ -588,7 +1023,7 @@ export type QueuedJob = {
588
1023
  canceled_by?: string;
589
1024
  canceled_reason?: string;
590
1025
  last_ping?: string;
591
- job_kind: 'script' | 'preview' | 'dependencies' | 'flowdependencies' | 'appdependencies' | 'flow' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlestepflow' | 'flowscript' | 'flownode' | 'appscript' | 'aiagent';
1026
+ job_kind: 'script' | 'preview' | 'dependencies' | 'flowdependencies' | 'appdependencies' | 'flow' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlestepflow' | 'flowscript' | 'flownode' | 'appscript' | 'aiagent' | 'unassigned_script' | 'unassigned_flow' | 'unassigned_singlestepflow';
592
1027
  schedule_path?: string;
593
1028
  /**
594
1029
  * The user (u/userfoo) or group (g/groupfoo) whom
@@ -632,7 +1067,7 @@ export type CompletedJob = {
632
1067
  canceled: boolean;
633
1068
  canceled_by?: string;
634
1069
  canceled_reason?: string;
635
- job_kind: 'script' | 'preview' | 'dependencies' | 'flow' | 'flowdependencies' | 'appdependencies' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlestepflow' | 'flowscript' | 'flownode' | 'appscript' | 'aiagent';
1070
+ job_kind: 'script' | 'preview' | 'dependencies' | 'flow' | 'flowdependencies' | 'appdependencies' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlestepflow' | 'flowscript' | 'flownode' | 'appscript' | 'aiagent' | 'unassigned_script' | 'unassigned_flow' | 'unassigned_singlestepflow';
636
1071
  schedule_path?: string;
637
1072
  /**
638
1073
  * The user (u/userfoo) or group (g/groupfoo) whom
@@ -657,6 +1092,151 @@ export type CompletedJob = {
657
1092
  preprocessed?: boolean;
658
1093
  worker?: string;
659
1094
  };
1095
+ /**
1096
+ * Completed job with full data for export/import operations
1097
+ */
1098
+ export type ExportableCompletedJob = {
1099
+ id: string;
1100
+ parent_job?: string;
1101
+ created_by: string;
1102
+ created_at: string;
1103
+ started_at?: string;
1104
+ completed_at?: string;
1105
+ duration_ms?: number;
1106
+ script_path?: string;
1107
+ script_hash?: string;
1108
+ /**
1109
+ * Full job arguments without size restrictions
1110
+ */
1111
+ args?: {
1112
+ [key: string]: unknown;
1113
+ };
1114
+ /**
1115
+ * Full job result without size restrictions
1116
+ */
1117
+ result?: {
1118
+ [key: string]: unknown;
1119
+ };
1120
+ /**
1121
+ * Complete job logs from v2_job table
1122
+ */
1123
+ logs?: string;
1124
+ raw_code?: string;
1125
+ raw_lock?: string;
1126
+ canceled_by?: string;
1127
+ canceled_reason?: string;
1128
+ job_kind: 'script' | 'preview' | 'dependencies' | 'flow' | 'flowdependencies' | 'appdependencies' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlestepflow' | 'flowscript' | 'flownode' | 'appscript' | 'aiagent' | 'unassigned_script' | 'unassigned_flow' | 'unassigned_singlestepflow';
1129
+ /**
1130
+ * Trigger path for the job (replaces schedule_path)
1131
+ */
1132
+ trigger?: string;
1133
+ trigger_kind?: 'webhook' | 'http' | 'websocket' | 'kafka' | 'email' | 'nats' | 'schedule' | 'app' | 'ui' | 'postgres' | 'sqs' | 'gcp';
1134
+ permissioned_as: string;
1135
+ permissioned_as_email?: string;
1136
+ /**
1137
+ * Flow status from v2_job_status table
1138
+ */
1139
+ flow_status?: {
1140
+ [key: string]: unknown;
1141
+ };
1142
+ workflow_as_code_status?: {
1143
+ [key: string]: unknown;
1144
+ };
1145
+ raw_flow?: {
1146
+ [key: string]: unknown;
1147
+ };
1148
+ is_flow_step?: boolean;
1149
+ language?: ScriptLang;
1150
+ is_skipped?: boolean;
1151
+ email: string;
1152
+ visible_to_owner: boolean;
1153
+ mem_peak?: number;
1154
+ tag?: string;
1155
+ priority?: number;
1156
+ labels?: Array<(string)>;
1157
+ same_worker?: boolean;
1158
+ flow_step_id?: string;
1159
+ flow_innermost_root_job?: string;
1160
+ concurrent_limit?: number;
1161
+ concurrency_time_window_s?: number;
1162
+ timeout?: number;
1163
+ cache_ttl?: number;
1164
+ self_wait_time_ms?: number;
1165
+ aggregate_wait_time_ms?: number;
1166
+ preprocessed?: boolean;
1167
+ worker?: string;
1168
+ /**
1169
+ * Actual job status from database
1170
+ */
1171
+ status?: string;
1172
+ };
1173
+ /**
1174
+ * Queued job with full data for export/import operations
1175
+ */
1176
+ export type ExportableQueuedJob = {
1177
+ id: string;
1178
+ parent_job?: string;
1179
+ created_by: string;
1180
+ created_at: string;
1181
+ started_at?: string;
1182
+ scheduled_for?: string;
1183
+ script_path?: string;
1184
+ script_hash?: string;
1185
+ /**
1186
+ * Full job arguments without size restrictions
1187
+ */
1188
+ args?: {
1189
+ [key: string]: unknown;
1190
+ };
1191
+ /**
1192
+ * Complete job logs from v2_job table
1193
+ */
1194
+ logs?: string;
1195
+ raw_code?: string;
1196
+ raw_lock?: string;
1197
+ canceled_by?: string;
1198
+ canceled_reason?: string;
1199
+ job_kind: 'script' | 'preview' | 'dependencies' | 'flowdependencies' | 'appdependencies' | 'flow' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlestepflow' | 'flowscript' | 'flownode' | 'appscript' | 'aiagent' | 'unassigned_script' | 'unassigned_flow' | 'unassigned_singlestepflow';
1200
+ /**
1201
+ * Trigger path for the job (replaces schedule_path)
1202
+ */
1203
+ trigger?: string;
1204
+ trigger_kind?: 'webhook' | 'http' | 'websocket' | 'kafka' | 'email' | 'nats' | 'schedule' | 'app' | 'ui' | 'postgres' | 'sqs' | 'gcp';
1205
+ permissioned_as: string;
1206
+ permissioned_as_email?: string;
1207
+ /**
1208
+ * Flow status from v2_job_status table
1209
+ */
1210
+ flow_status?: {
1211
+ [key: string]: unknown;
1212
+ };
1213
+ workflow_as_code_status?: {
1214
+ [key: string]: unknown;
1215
+ };
1216
+ raw_flow?: {
1217
+ [key: string]: unknown;
1218
+ };
1219
+ is_flow_step?: boolean;
1220
+ language?: ScriptLang;
1221
+ email: string;
1222
+ visible_to_owner: boolean;
1223
+ mem_peak?: number;
1224
+ tag?: string;
1225
+ priority?: number;
1226
+ labels?: Array<(string)>;
1227
+ same_worker?: boolean;
1228
+ flow_step_id?: string;
1229
+ flow_innermost_root_job?: string;
1230
+ concurrent_limit?: number;
1231
+ concurrency_time_window_s?: number;
1232
+ timeout?: number;
1233
+ cache_ttl?: number;
1234
+ self_wait_time_ms?: number;
1235
+ aggregate_wait_time_ms?: number;
1236
+ preprocessed?: boolean;
1237
+ suspend?: number;
1238
+ suspend_until?: string;
1239
+ };
660
1240
  export type ObscuredJob = {
661
1241
  typ?: string;
662
1242
  started_at?: string;
@@ -703,6 +1283,9 @@ export type Login = {
703
1283
  email: string;
704
1284
  password: string;
705
1285
  };
1286
+ export type PasswordResetResponse = {
1287
+ message: string;
1288
+ };
706
1289
  export type EditWorkspaceUser = {
707
1290
  is_admin?: boolean;
708
1291
  operator?: boolean;
@@ -866,6 +1449,14 @@ export type Preview = {
866
1449
  dedicated_worker?: boolean;
867
1450
  lock?: string;
868
1451
  };
1452
+ export type PreviewInline = {
1453
+ /**
1454
+ * The code to run
1455
+ */
1456
+ content: string;
1457
+ args: ScriptArgs;
1458
+ language: ScriptLang;
1459
+ };
869
1460
  export type WorkflowTask = {
870
1461
  args: ScriptArgs;
871
1462
  };
@@ -1185,6 +1776,14 @@ export type EditSchedule = {
1185
1776
  */
1186
1777
  dynamic_skip?: string;
1187
1778
  };
1779
+ /**
1780
+ * job trigger kind (schedule, http, websocket...)
1781
+ */
1782
+ export type JobTriggerKind = 'webhook' | 'default_email' | 'email' | 'schedule' | 'http' | 'websocket' | 'postgres' | 'kafka' | 'nats' | 'mqtt' | 'sqs' | 'gcp';
1783
+ /**
1784
+ * job trigger mode
1785
+ */
1786
+ export type TriggerMode = 'enabled' | 'disabled' | 'suspended';
1188
1787
  export type TriggerExtraProperty = {
1189
1788
  path: string;
1190
1789
  script_path: string;
@@ -1196,7 +1795,7 @@ export type TriggerExtraProperty = {
1196
1795
  edited_by: string;
1197
1796
  edited_at: string;
1198
1797
  is_flow: boolean;
1199
- enabled: boolean;
1798
+ mode: TriggerMode;
1200
1799
  };
1201
1800
  export type AuthenticationMethod = 'none' | 'windmill' | 'api_key' | 'basic_http' | 'custom_script' | 'signature';
1202
1801
  export type RunnableKind = 'script' | 'flow';
@@ -1281,7 +1880,7 @@ export type NewHttpTrigger = {
1281
1880
  authentication_method: AuthenticationMethod;
1282
1881
  is_static_website: boolean;
1283
1882
  wrap_body?: boolean;
1284
- enabled?: boolean;
1883
+ mode?: TriggerMode;
1285
1884
  raw_string?: boolean;
1286
1885
  error_handler_path?: string;
1287
1886
  error_handler_args?: ScriptArgs;
@@ -1354,7 +1953,7 @@ export type NewWebsocketTrigger = {
1354
1953
  script_path: string;
1355
1954
  is_flow: boolean;
1356
1955
  url: string;
1357
- enabled?: boolean;
1956
+ mode?: TriggerMode;
1358
1957
  filters: Array<{
1359
1958
  key: string;
1360
1959
  value: unknown;
@@ -1431,7 +2030,7 @@ export type NewMqttTrigger = {
1431
2030
  path: string;
1432
2031
  script_path: string;
1433
2032
  is_flow: boolean;
1434
- enabled?: boolean;
2033
+ mode?: TriggerMode;
1435
2034
  error_handler_path?: string;
1436
2035
  error_handler_args?: ScriptArgs;
1437
2036
  retry?: Retry;
@@ -1446,7 +2045,7 @@ export type EditMqttTrigger = {
1446
2045
  path: string;
1447
2046
  script_path: string;
1448
2047
  is_flow: boolean;
1449
- enabled: boolean;
2048
+ mode?: TriggerMode;
1450
2049
  error_handler_path?: string;
1451
2050
  error_handler_args?: ScriptArgs;
1452
2051
  retry?: Retry;
@@ -1485,7 +2084,7 @@ export type GcpTriggerData = {
1485
2084
  path: string;
1486
2085
  script_path: string;
1487
2086
  is_flow: boolean;
1488
- enabled?: boolean;
2087
+ mode?: TriggerMode;
1489
2088
  auto_acknowledge_msg?: boolean;
1490
2089
  /**
1491
2090
  * Time in seconds within which the message must be acknowledged. If not provided, defaults to the subscription's acknowledgment deadline (600 seconds).
@@ -1515,19 +2114,17 @@ export type SqsTrigger = TriggerExtraProperty & {
1515
2114
  retry?: Retry;
1516
2115
  };
1517
2116
  export type LoggedWizardStatus = 'OK' | 'SKIP' | 'FAIL';
1518
- export type DucklakeInstanceCatalogDbStatusLogs = {
2117
+ export type CustomInstanceDbLogs = {
1519
2118
  super_admin?: LoggedWizardStatus;
1520
2119
  database_credentials?: LoggedWizardStatus;
1521
2120
  valid_dbname?: LoggedWizardStatus;
1522
- /**
1523
- * Created database status log
1524
- */
1525
2121
  created_database?: LoggedWizardStatus;
1526
2122
  db_connect?: LoggedWizardStatus;
1527
2123
  grant_permissions?: LoggedWizardStatus;
1528
2124
  };
1529
- export type DucklakeInstanceCatalogDbStatus = {
1530
- logs: DucklakeInstanceCatalogDbStatusLogs;
2125
+ export type CustomInstanceDbTag = 'ducklake' | 'datatable';
2126
+ export type CustomInstanceDb = {
2127
+ logs: CustomInstanceDbLogs;
1531
2128
  /**
1532
2129
  * Whether the operation completed successfully
1533
2130
  */
@@ -1536,6 +2133,7 @@ export type DucklakeInstanceCatalogDbStatus = {
1536
2133
  * Error message if the operation failed
1537
2134
  */
1538
2135
  error?: string | null;
2136
+ tag?: CustomInstanceDbTag;
1539
2137
  };
1540
2138
  export type NewSqsTrigger = {
1541
2139
  queue_url: string;
@@ -1545,7 +2143,7 @@ export type NewSqsTrigger = {
1545
2143
  path: string;
1546
2144
  script_path: string;
1547
2145
  is_flow: boolean;
1548
- enabled?: boolean;
2146
+ mode?: TriggerMode;
1549
2147
  error_handler_path?: string;
1550
2148
  error_handler_args?: ScriptArgs;
1551
2149
  retry?: Retry;
@@ -1558,7 +2156,7 @@ export type EditSqsTrigger = {
1558
2156
  path: string;
1559
2157
  script_path: string;
1560
2158
  is_flow: boolean;
1561
- enabled: boolean;
2159
+ mode?: TriggerMode;
1562
2160
  error_handler_path?: string;
1563
2161
  error_handler_args?: ScriptArgs;
1564
2162
  retry?: Retry;
@@ -1606,7 +2204,7 @@ export type NewPostgresTrigger = {
1606
2204
  path: string;
1607
2205
  script_path: string;
1608
2206
  is_flow: boolean;
1609
- enabled: boolean;
2207
+ mode?: TriggerMode;
1610
2208
  postgres_resource_path: string;
1611
2209
  publication?: PublicationData;
1612
2210
  error_handler_path?: string;
@@ -1619,7 +2217,7 @@ export type EditPostgresTrigger = {
1619
2217
  path: string;
1620
2218
  script_path: string;
1621
2219
  is_flow: boolean;
1622
- enabled: boolean;
2220
+ mode?: TriggerMode;
1623
2221
  postgres_resource_path: string;
1624
2222
  publication?: PublicationData;
1625
2223
  error_handler_path?: string;
@@ -1644,7 +2242,7 @@ export type NewKafkaTrigger = {
1644
2242
  kafka_resource_path: string;
1645
2243
  group_id: string;
1646
2244
  topics: Array<(string)>;
1647
- enabled?: boolean;
2245
+ mode?: TriggerMode;
1648
2246
  error_handler_path?: string;
1649
2247
  error_handler_args?: ScriptArgs;
1650
2248
  retry?: Retry;
@@ -1682,7 +2280,7 @@ export type NewNatsTrigger = {
1682
2280
  stream_name?: string;
1683
2281
  consumer_name?: string;
1684
2282
  subjects: Array<(string)>;
1685
- enabled?: boolean;
2283
+ mode?: TriggerMode;
1686
2284
  error_handler_path?: string;
1687
2285
  error_handler_args?: ScriptArgs;
1688
2286
  retry?: Retry;
@@ -1716,7 +2314,7 @@ export type NewEmailTrigger = {
1716
2314
  error_handler_path?: string;
1717
2315
  error_handler_args?: ScriptArgs;
1718
2316
  retry?: Retry;
1719
- enabled?: boolean;
2317
+ mode?: TriggerMode;
1720
2318
  };
1721
2319
  export type EditEmailTrigger = {
1722
2320
  path: string;
@@ -1823,6 +2421,15 @@ export type DependencyMap = {
1823
2421
  imported_path?: string | null;
1824
2422
  importer_node_id?: string | null;
1825
2423
  };
2424
+ export type DependencyDependent = {
2425
+ importer_path: string;
2426
+ importer_kind: 'script' | 'flow' | 'app';
2427
+ importer_node_ids?: Array<(string)> | null;
2428
+ };
2429
+ export type DependentsAmount = {
2430
+ imported_path: string;
2431
+ count: number;
2432
+ };
1826
2433
  export type WorkspaceInvite = {
1827
2434
  workspace_id: string;
1828
2435
  email: string;
@@ -1887,6 +2494,7 @@ export type RestartedFrom = {
1887
2494
  flow_job_id?: string;
1888
2495
  step_id?: string;
1889
2496
  branch_or_iteration_n?: number;
2497
+ flow_version?: number;
1890
2498
  };
1891
2499
  export type Policy = {
1892
2500
  triggerables?: {
@@ -2024,8 +2632,33 @@ export type DucklakeSettings = {
2024
2632
  storage?: string;
2025
2633
  path: string;
2026
2634
  };
2635
+ extra_args?: string;
2636
+ };
2637
+ };
2638
+ };
2639
+ export type DataTableSettings = {
2640
+ datatables: {
2641
+ [key: string]: {
2642
+ database: {
2643
+ resource_type: 'postgresql' | 'instance';
2644
+ resource_path?: string;
2645
+ };
2646
+ };
2647
+ };
2648
+ };
2649
+ export type DataTableSchema = {
2650
+ datatable_name: string;
2651
+ /**
2652
+ * Hierarchical schema: schema_name -> table_name -> column_name -> compact_type (e.g. 'int4', 'text?', 'int4?=0')
2653
+ */
2654
+ schemas: {
2655
+ [key: string]: {
2656
+ [key: string]: {
2657
+ [key: string]: (string);
2658
+ };
2027
2659
  };
2028
2660
  };
2661
+ error?: string;
2029
2662
  };
2030
2663
  export type DynamicInputData = {
2031
2664
  /**
@@ -2267,6 +2900,96 @@ export type OperatorSettings = {
2267
2900
  */
2268
2901
  workers: boolean;
2269
2902
  } | null;
2903
+ export type WorkspaceComparison = {
2904
+ /**
2905
+ * All items with changes ahead are visible by the user of the request.
2906
+ */
2907
+ all_ahead_items_visible: boolean;
2908
+ /**
2909
+ * All items with changes behind are visible by the user of the request.
2910
+ */
2911
+ all_behind_items_visible: boolean;
2912
+ /**
2913
+ * Whether the comparison was skipped. This happens with old forks that where not being kept track of
2914
+ */
2915
+ skipped_comparison: boolean;
2916
+ /**
2917
+ * List of differences found between workspaces
2918
+ */
2919
+ diffs: Array<WorkspaceItemDiff>;
2920
+ /**
2921
+ * Summary statistics of the comparison
2922
+ */
2923
+ summary: CompareSummary;
2924
+ };
2925
+ export type WorkspaceItemDiff = {
2926
+ /**
2927
+ * Type of the item
2928
+ */
2929
+ kind: 'script' | 'flow' | 'app' | 'resource' | 'variable';
2930
+ /**
2931
+ * Path of the item in the workspace
2932
+ */
2933
+ path: string;
2934
+ /**
2935
+ * Number of versions source is ahead of target
2936
+ */
2937
+ ahead: number;
2938
+ /**
2939
+ * Number of versions source is behind target
2940
+ */
2941
+ behind: number;
2942
+ /**
2943
+ * Whether the item has any differences
2944
+ */
2945
+ has_changes: boolean;
2946
+ /**
2947
+ * If the item exists in the source workspace
2948
+ */
2949
+ exists_in_source: boolean;
2950
+ /**
2951
+ * If the item exists in the fork workspace
2952
+ */
2953
+ exists_in_fork: boolean;
2954
+ };
2955
+ export type CompareSummary = {
2956
+ /**
2957
+ * Total number of items with differences
2958
+ */
2959
+ total_diffs: number;
2960
+ /**
2961
+ * Total number of ahead changes
2962
+ */
2963
+ total_ahead: number;
2964
+ /**
2965
+ * Total number of behind changes
2966
+ */
2967
+ total_behind: number;
2968
+ /**
2969
+ * Number of scripts with differences
2970
+ */
2971
+ scripts_changed: number;
2972
+ /**
2973
+ * Number of flows with differences
2974
+ */
2975
+ flows_changed: number;
2976
+ /**
2977
+ * Number of apps with differences
2978
+ */
2979
+ apps_changed: number;
2980
+ /**
2981
+ * Number of resources with differences
2982
+ */
2983
+ resources_changed: number;
2984
+ /**
2985
+ * Number of variables with differences
2986
+ */
2987
+ variables_changed: number;
2988
+ /**
2989
+ * Number of items that are both ahead and behind (conflicts)
2990
+ */
2991
+ conflicts: number;
2992
+ };
2270
2993
  export type TeamInfo = {
2271
2994
  /**
2272
2995
  * The unique identifier of the Microsoft Teams team
@@ -2315,6 +3038,10 @@ export type GithubInstallations = Array<{
2315
3038
  * Number of repositories loaded per page
2316
3039
  */
2317
3040
  per_page: number;
3041
+ /**
3042
+ * Error message if token retrieval failed
3043
+ */
3044
+ error?: string;
2318
3045
  }>;
2319
3046
  export type WorkspaceGithubInstallation = {
2320
3047
  account_id: string;
@@ -2346,7 +3073,7 @@ export type TeamsChannel = {
2346
3073
  };
2347
3074
  export type AssetUsageKind = 'script' | 'flow';
2348
3075
  export type AssetUsageAccessType = 'r' | 'w' | 'rw';
2349
- export type AssetKind = 's3object' | 'resource' | 'ducklake';
3076
+ export type AssetKind = 's3object' | 'resource' | 'ducklake' | 'datatable';
2350
3077
  export type Asset = {
2351
3078
  path: string;
2352
3079
  kind: AssetKind;
@@ -2381,7 +3108,7 @@ export type ParameterPerPage = number;
2381
3108
  /**
2382
3109
  * trigger kind (schedule, http, websocket...)
2383
3110
  */
2384
- export type ParameterJobTriggerKind = 'webhook' | 'default_email' | 'email' | 'schedule' | 'http' | 'websocket' | 'postgres' | 'kafka' | 'nats' | 'mqtt' | 'sqs' | 'gcp' | 'poll' | 'cli';
3111
+ export type ParameterJobTriggerKind = JobTriggerKind;
2385
3112
  /**
2386
3113
  * order by desc order (default true)
2387
3114
  */
@@ -2443,6 +3170,10 @@ export type ParameterScriptStartPath = string;
2443
3170
  * mask to filter by schedule path
2444
3171
  */
2445
3172
  export type ParameterSchedulePath = string;
3173
+ /**
3174
+ * mask to filter by trigger path
3175
+ */
3176
+ export type ParameterTriggerPath = string;
2446
3177
  /**
2447
3178
  * mask to filter exact matching path
2448
3179
  */
@@ -2553,6 +3284,20 @@ export type BackendVersionResponse = string;
2553
3284
  export type BackendUptodateResponse = string;
2554
3285
  export type GetLicenseIdResponse = string;
2555
3286
  export type GetOpenApiYamlResponse = string;
3287
+ export type QueryDocumentationData = {
3288
+ /**
3289
+ * query to send to the AI documentation assistant
3290
+ */
3291
+ requestBody: {
3292
+ /**
3293
+ * The documentation query to send to the AI assistant
3294
+ */
3295
+ query: string;
3296
+ };
3297
+ };
3298
+ export type QueryDocumentationResponse = {
3299
+ [key: string]: unknown;
3300
+ };
2556
3301
  export type GetAuditLogData = {
2557
3302
  id: number;
2558
3303
  workspace: string;
@@ -2614,6 +3359,26 @@ export type LoginData = {
2614
3359
  };
2615
3360
  export type LoginResponse = string;
2616
3361
  export type LogoutResponse = string;
3362
+ export type IsSmtpConfiguredResponse = boolean;
3363
+ export type RequestPasswordResetData = {
3364
+ /**
3365
+ * email to send password reset link to
3366
+ */
3367
+ requestBody: {
3368
+ email: string;
3369
+ };
3370
+ };
3371
+ export type RequestPasswordResetResponse = PasswordResetResponse;
3372
+ export type ResetPasswordData = {
3373
+ /**
3374
+ * token and new password
3375
+ */
3376
+ requestBody: {
3377
+ token: string;
3378
+ new_password: string;
3379
+ };
3380
+ };
3381
+ export type ResetPasswordResponse = PasswordResetResponse;
2617
3382
  export type GetUserData = {
2618
3383
  username: string;
2619
3384
  workspace: string;
@@ -2747,6 +3512,7 @@ export type RefreshUserTokenData = {
2747
3512
  export type RefreshUserTokenResponse = string;
2748
3513
  export type GetTutorialProgressResponse = {
2749
3514
  progress?: number;
3515
+ skipped_all?: boolean;
2750
3516
  };
2751
3517
  export type UpdateTutorialProgressData = {
2752
3518
  /**
@@ -2754,6 +3520,7 @@ export type UpdateTutorialProgressData = {
2754
3520
  */
2755
3521
  requestBody: {
2756
3522
  progress?: number;
3523
+ skipped_all?: boolean;
2757
3524
  };
2758
3525
  };
2759
3526
  export type UpdateTutorialProgressResponse = string;
@@ -2920,6 +3687,10 @@ export type ImportInstallationResponse = unknown;
2920
3687
  export type ListWorkspacesResponse = Array<Workspace>;
2921
3688
  export type IsDomainAllowedResponse = boolean;
2922
3689
  export type ListUserWorkspacesResponse = UserWorkspaceList;
3690
+ export type GetWorkspaceAsSuperAdminData = {
3691
+ workspace: string;
3692
+ };
3693
+ export type GetWorkspaceAsSuperAdminResponse = Workspace;
2923
3694
  export type ListWorkspacesAsSuperAdminData = {
2924
3695
  /**
2925
3696
  * which page to return (start at 1, default 1)
@@ -3068,6 +3839,22 @@ export type UpdateOperatorSettingsData = {
3068
3839
  workspace: string;
3069
3840
  };
3070
3841
  export type UpdateOperatorSettingsResponse = string;
3842
+ export type CompareWorkspacesData = {
3843
+ /**
3844
+ * The ID of the workspace to compare with
3845
+ */
3846
+ targetWorkspaceId: string;
3847
+ workspace: string;
3848
+ };
3849
+ export type CompareWorkspacesResponse = WorkspaceComparison;
3850
+ export type ResetDiffTallyData = {
3851
+ /**
3852
+ * The ID of the workspace to compare with
3853
+ */
3854
+ forkWorkspaceId: string;
3855
+ workspace: string;
3856
+ };
3857
+ export type ResetDiffTallyResponse = unknown;
3071
3858
  export type ListPendingInvitesData = {
3072
3859
  workspace: string;
3073
3860
  };
@@ -3085,6 +3872,7 @@ export type GetSettingsResponse = {
3085
3872
  teams_team_id?: string;
3086
3873
  teams_command_script?: string;
3087
3874
  teams_team_name?: string;
3875
+ teams_team_guid?: string;
3088
3876
  auto_invite_domain?: string;
3089
3877
  auto_invite_operator?: boolean;
3090
3878
  auto_add?: boolean;
@@ -3102,6 +3890,7 @@ export type GetSettingsResponse = {
3102
3890
  error_handler_muted_on_cancel: boolean;
3103
3891
  large_file_storage?: LargeFileStorage;
3104
3892
  ducklake?: DucklakeSettings;
3893
+ datatable?: DataTableSettings;
3105
3894
  git_sync?: WorkspaceGitSyncSettings;
3106
3895
  deploy_ui?: WorkspaceDeployUISettings;
3107
3896
  default_app?: string;
@@ -3155,7 +3944,23 @@ export type SetThresholdAlertResponse = string;
3155
3944
  export type RebuildDependencyMapData = {
3156
3945
  workspace: string;
3157
3946
  };
3158
- export type RebuildDependencyMapResponse = string;
3947
+ export type RebuildDependencyMapResponse = string;
3948
+ export type GetDependentsData = {
3949
+ /**
3950
+ * The imported path to get dependents for
3951
+ */
3952
+ importedPath: string;
3953
+ workspace: string;
3954
+ };
3955
+ export type GetDependentsResponse = Array<DependencyDependent>;
3956
+ export type GetDependentsAmountsData = {
3957
+ /**
3958
+ * List of imported paths to get dependents counts for
3959
+ */
3960
+ requestBody: Array<(string)>;
3961
+ workspace: string;
3962
+ };
3963
+ export type GetDependentsAmountsResponse = Array<DependentsAmount>;
3159
3964
  export type GetDependencyMapData = {
3160
3965
  workspace: string;
3161
3966
  };
@@ -3207,30 +4012,47 @@ export type EditTeamsCommandData = {
3207
4012
  export type EditTeamsCommandResponse = string;
3208
4013
  export type ListAvailableTeamsIdsData = {
3209
4014
  /**
3210
- * Search teams by name
4015
+ * Pagination cursor URL from previous response. Pass this to fetch the next page of results.
4016
+ */
4017
+ nextLink?: string;
4018
+ /**
4019
+ * Search teams by name. If omitted, returns first page of all teams.
3211
4020
  */
3212
4021
  search?: string;
3213
4022
  workspace: string;
3214
4023
  };
3215
- export type ListAvailableTeamsIdsResponse = Array<{
3216
- team_name?: string;
3217
- team_id?: string;
3218
- }>;
3219
- export type ListAvailableTeamsChannelsData = {
4024
+ export type ListAvailableTeamsIdsResponse = {
4025
+ teams?: Array<{
4026
+ team_name?: string;
4027
+ team_id?: string;
4028
+ }>;
3220
4029
  /**
3221
- * Search channels by name
4030
+ * Total number of teams across all pages
3222
4031
  */
3223
- search?: string;
4032
+ total_count?: number;
4033
+ /**
4034
+ * Number of teams per page (configurable via TEAMS_PER_PAGE env var)
4035
+ */
4036
+ per_page?: number;
4037
+ /**
4038
+ * URL to fetch next page of results. Null if no more pages.
4039
+ */
4040
+ next_link?: string | null;
4041
+ };
4042
+ export type ListAvailableTeamsChannelsData = {
3224
4043
  /**
3225
4044
  * Microsoft Teams team ID
3226
4045
  */
3227
4046
  teamId: string;
3228
4047
  workspace: string;
3229
4048
  };
3230
- export type ListAvailableTeamsChannelsResponse = Array<{
3231
- channel_name?: string;
3232
- channel_id?: string;
3233
- }>;
4049
+ export type ListAvailableTeamsChannelsResponse = {
4050
+ channels?: Array<{
4051
+ channel_name?: string;
4052
+ channel_id?: string;
4053
+ }>;
4054
+ total_count?: number;
4055
+ };
3234
4056
  export type ConnectTeamsData = {
3235
4057
  /**
3236
4058
  * connect teams
@@ -3350,6 +4172,14 @@ export type ListDucklakesData = {
3350
4172
  workspace: string;
3351
4173
  };
3352
4174
  export type ListDucklakesResponse = Array<(string)>;
4175
+ export type ListDataTablesData = {
4176
+ workspace: string;
4177
+ };
4178
+ export type ListDataTablesResponse = Array<(string)>;
4179
+ export type ListDataTableSchemasData = {
4180
+ workspace: string;
4181
+ };
4182
+ export type ListDataTableSchemasResponse = Array<DataTableSchema>;
3353
4183
  export type EditDucklakeConfigData = {
3354
4184
  /**
3355
4185
  * Ducklake settings
@@ -3360,6 +4190,16 @@ export type EditDucklakeConfigData = {
3360
4190
  workspace: string;
3361
4191
  };
3362
4192
  export type EditDucklakeConfigResponse = unknown;
4193
+ export type EditDataTableConfigData = {
4194
+ /**
4195
+ * DataTable settings
4196
+ */
4197
+ requestBody: {
4198
+ settings: DataTableSettings;
4199
+ };
4200
+ workspace: string;
4201
+ };
4202
+ export type EditDataTableConfigResponse = unknown;
3363
4203
  export type EditWorkspaceGitSyncConfigData = {
3364
4204
  /**
3365
4205
  * Workspace Git sync settings
@@ -3485,16 +4325,22 @@ export type GetUsedTriggersResponse = {
3485
4325
  sqs_used: boolean;
3486
4326
  email_used: boolean;
3487
4327
  };
3488
- export type GetDucklakeInstanceCatalogDbStatusResponse = {
3489
- [key: string]: DucklakeInstanceCatalogDbStatus;
4328
+ export type RefreshCustomInstanceUserPwdResponse = {
4329
+ [key: string]: unknown;
4330
+ };
4331
+ export type ListCustomInstanceDbsResponse = {
4332
+ [key: string]: CustomInstanceDb;
3490
4333
  };
3491
- export type SetupDucklakeCatalogDbData = {
4334
+ export type SetupCustomInstanceDbData = {
3492
4335
  /**
3493
4336
  * The name of the database to create
3494
4337
  */
3495
4338
  name: string;
4339
+ requestBody: {
4340
+ tag?: CustomInstanceDbTag;
4341
+ };
3496
4342
  };
3497
- export type SetupDucklakeCatalogDbResponse = DucklakeInstanceCatalogDbStatus;
4343
+ export type SetupCustomInstanceDbResponse = CustomInstanceDb;
3498
4344
  export type GetGlobalData = {
3499
4345
  key: string;
3500
4346
  };
@@ -3650,6 +4496,7 @@ export type WorkspaceMuteCriticalAlertsUiResponse = string;
3650
4496
  export type ListAvailableScopesResponse = Array<ScopeDomain>;
3651
4497
  export type GetOidcTokenData = {
3652
4498
  audience: string;
4499
+ expiresIn?: number;
3653
4500
  workspace: string;
3654
4501
  };
3655
4502
  export type GetOidcTokenResponse = string;
@@ -3808,6 +4655,10 @@ export type CreateAccountData = {
3808
4655
  * OAuth token URL override for resource-level authentication (client_credentials flow only)
3809
4656
  */
3810
4657
  cc_token_url?: string;
4658
+ /**
4659
+ * MCP server URL for MCP OAuth token refresh
4660
+ */
4661
+ mcp_server_url?: string;
3811
4662
  };
3812
4663
  workspace: string;
3813
4664
  };
@@ -4188,6 +5039,12 @@ export type ListFlowsData = {
4188
5039
  *
4189
5040
  */
4190
5041
  withDeploymentMsg?: boolean;
5042
+ /**
5043
+ * (default false)
5044
+ * If true, the description field will be omitted from the response.
5045
+ *
5046
+ */
5047
+ withoutDescription?: boolean;
4191
5048
  workspace: string;
4192
5049
  };
4193
5050
  export type ListFlowsResponse = Array<(Flow & {
@@ -4212,13 +5069,11 @@ export type ListFlowPathsFromWorkspaceRunnableData = {
4212
5069
  };
4213
5070
  export type ListFlowPathsFromWorkspaceRunnableResponse = Array<(string)>;
4214
5071
  export type GetFlowVersionData = {
4215
- path: string;
4216
5072
  version: number;
4217
5073
  workspace: string;
4218
5074
  };
4219
5075
  export type GetFlowVersionResponse = Flow;
4220
5076
  export type UpdateFlowHistoryData = {
4221
- path: string;
4222
5077
  /**
4223
5078
  * Flow deployment message
4224
5079
  */
@@ -4241,6 +5096,7 @@ export type GetFlowDeploymentStatusData = {
4241
5096
  };
4242
5097
  export type GetFlowDeploymentStatusResponse = {
4243
5098
  lock_error_logs?: string;
5099
+ job_id?: string;
4244
5100
  };
4245
5101
  export type GetTriggersCountOfFlowData = {
4246
5102
  path: string;
@@ -4586,6 +5442,12 @@ export type ExecuteComponentData = {
4586
5442
  [key: string]: unknown;
4587
5443
  };
4588
5444
  force_viewer_allow_user_resources?: Array<(string)>;
5445
+ /**
5446
+ * Runnable query parameters
5447
+ */
5448
+ run_query_params?: {
5449
+ [key: string]: unknown;
5450
+ };
4589
5451
  };
4590
5452
  workspace: string;
4591
5453
  };
@@ -4792,6 +5654,12 @@ export type ListScriptsData = {
4792
5654
  *
4793
5655
  */
4794
5656
  withDeploymentMsg?: boolean;
5657
+ /**
5658
+ * (default false)
5659
+ * If true, the description field will be omitted from the response.
5660
+ *
5661
+ */
5662
+ withoutDescription?: boolean;
4795
5663
  workspace: string;
4796
5664
  };
4797
5665
  export type ListScriptsResponse = Array<Script>;
@@ -4935,6 +5803,7 @@ export type GetScriptDeploymentStatusData = {
4935
5803
  export type GetScriptDeploymentStatusResponse = {
4936
5804
  lock?: string;
4937
5805
  lock_error_logs?: string;
5806
+ job_id?: string;
4938
5807
  };
4939
5808
  export type CreateDraftData = {
4940
5809
  requestBody: {
@@ -4978,6 +5847,10 @@ export type ExistsWorkersWithTagsData = {
4978
5847
  * comma separated list of tags
4979
5848
  */
4980
5849
  tags: string;
5850
+ /**
5851
+ * workspace to filter tags visibility (required when TAGS_ARE_SENSITIVE is enabled for non-superadmins)
5852
+ */
5853
+ workspace?: string;
4981
5854
  };
4982
5855
  export type ExistsWorkersWithTagsResponse = {
4983
5856
  [key: string]: (boolean);
@@ -4995,6 +5868,36 @@ export type GetCountsOfJobsWaitingPerTagResponse = {
4995
5868
  export type GetCountsOfRunningJobsPerTagResponse = {
4996
5869
  [key: string]: (number);
4997
5870
  };
5871
+ export type CreateWorkspaceDependenciesData = {
5872
+ /**
5873
+ * New workspace dependencies
5874
+ */
5875
+ requestBody: NewWorkspaceDependencies;
5876
+ workspace: string;
5877
+ };
5878
+ export type CreateWorkspaceDependenciesResponse = string;
5879
+ export type ArchiveWorkspaceDependenciesData = {
5880
+ language: ScriptLang;
5881
+ name?: string;
5882
+ workspace: string;
5883
+ };
5884
+ export type ArchiveWorkspaceDependenciesResponse = unknown;
5885
+ export type DeleteWorkspaceDependenciesData = {
5886
+ language: ScriptLang;
5887
+ name?: string;
5888
+ workspace: string;
5889
+ };
5890
+ export type DeleteWorkspaceDependenciesResponse = unknown;
5891
+ export type ListWorkspaceDependenciesData = {
5892
+ workspace: string;
5893
+ };
5894
+ export type ListWorkspaceDependenciesResponse = Array<WorkspaceDependencies>;
5895
+ export type GetLatestWorkspaceDependenciesData = {
5896
+ language: ScriptLang;
5897
+ name?: string;
5898
+ workspace: string;
5899
+ };
5900
+ export type GetLatestWorkspaceDependenciesResponse = WorkspaceDependencies;
4998
5901
  export type ListSelectedJobGroupsData = {
4999
5902
  /**
5000
5903
  * script args
@@ -5707,10 +6610,6 @@ export type BatchReRunJobsData = {
5707
6610
  };
5708
6611
  export type BatchReRunJobsResponse = string;
5709
6612
  export type RestartFlowAtStepData = {
5710
- /**
5711
- * for branchall or loop, the iteration at which the flow should restart
5712
- */
5713
- branchOrIterationN: number;
5714
6613
  id: string;
5715
6614
  /**
5716
6615
  * List of headers's keys (separated with ',') whove value are added to the args
@@ -5731,9 +6630,22 @@ export type RestartFlowAtStepData = {
5731
6630
  */
5732
6631
  parentJob?: string;
5733
6632
  /**
5734
- * flow args
6633
+ * restart flow parameters
5735
6634
  */
5736
- requestBody: ScriptArgs;
6635
+ requestBody: {
6636
+ /**
6637
+ * step id to restart the flow from
6638
+ */
6639
+ step_id: string;
6640
+ /**
6641
+ * for branchall or loop, the iteration at which the flow should restart (optional)
6642
+ */
6643
+ branch_or_iteration_n?: number;
6644
+ /**
6645
+ * specific flow version to use for restart (optional, uses current version if not specified)
6646
+ */
6647
+ flow_version?: number;
6648
+ };
5737
6649
  /**
5738
6650
  * when to schedule this job (leave empty for immediate run)
5739
6651
  */
@@ -5742,10 +6654,6 @@ export type RestartFlowAtStepData = {
5742
6654
  * schedule the script to execute in the number of seconds starting now
5743
6655
  */
5744
6656
  scheduledInSecs?: number;
5745
- /**
5746
- * step id to restart the flow from
5747
- */
5748
- stepId: string;
5749
6657
  /**
5750
6658
  * Override the tag to use
5751
6659
  */
@@ -5824,6 +6732,14 @@ export type RunScriptPreviewData = {
5824
6732
  workspace: string;
5825
6733
  };
5826
6734
  export type RunScriptPreviewResponse = string;
6735
+ export type RunScriptPreviewInlineData = {
6736
+ /**
6737
+ * preview
6738
+ */
6739
+ requestBody: PreviewInline;
6740
+ workspace: string;
6741
+ };
6742
+ export type RunScriptPreviewInlineResponse = unknown;
5827
6743
  export type RunScriptPreviewAndWaitResultData = {
5828
6744
  /**
5829
6745
  * preview
@@ -5990,6 +6906,14 @@ export type ListQueueData = {
5990
6906
  * filter on jobs with a given tag/worker group
5991
6907
  */
5992
6908
  tag?: string;
6909
+ /**
6910
+ * trigger kind (schedule, http, websocket...)
6911
+ */
6912
+ triggerKind?: JobTriggerKind;
6913
+ /**
6914
+ * mask to filter by trigger path
6915
+ */
6916
+ triggerPath?: string;
5993
6917
  /**
5994
6918
  * worker this job was ran on
5995
6919
  */
@@ -6348,6 +7272,45 @@ export type ListCompletedJobsData = {
6348
7272
  workspace: string;
6349
7273
  };
6350
7274
  export type ListCompletedJobsResponse = Array<CompletedJob>;
7275
+ export type ExportCompletedJobsData = {
7276
+ /**
7277
+ * which page to return (start at 1, default 1)
7278
+ */
7279
+ page?: number;
7280
+ /**
7281
+ * number of items to return for a given page (default 30, max 100)
7282
+ */
7283
+ perPage?: number;
7284
+ workspace: string;
7285
+ };
7286
+ export type ExportCompletedJobsResponse = Array<ExportableCompletedJob>;
7287
+ export type ImportCompletedJobsData = {
7288
+ requestBody: Array<ExportableCompletedJob>;
7289
+ workspace: string;
7290
+ };
7291
+ export type ImportCompletedJobsResponse = string;
7292
+ export type ExportQueuedJobsData = {
7293
+ /**
7294
+ * which page to return (start at 1, default 1)
7295
+ */
7296
+ page?: number;
7297
+ /**
7298
+ * number of items to return for a given page (default 30, max 100)
7299
+ */
7300
+ perPage?: number;
7301
+ workspace: string;
7302
+ };
7303
+ export type ExportQueuedJobsResponse = Array<ExportableQueuedJob>;
7304
+ export type ImportQueuedJobsData = {
7305
+ requestBody: Array<ExportableQueuedJob>;
7306
+ workspace: string;
7307
+ };
7308
+ export type ImportQueuedJobsResponse = string;
7309
+ export type DeleteJobsData = {
7310
+ requestBody: Array<(string)>;
7311
+ workspace: string;
7312
+ };
7313
+ export type DeleteJobsResponse = string;
6351
7314
  export type ListJobsData = {
6352
7315
  /**
6353
7316
  * allow wildcards (*) in the filter of label, tag, worker
@@ -6472,7 +7435,7 @@ export type ListJobsData = {
6472
7435
  /**
6473
7436
  * trigger kind (schedule, http, websocket...)
6474
7437
  */
6475
- triggerKind?: 'webhook' | 'default_email' | 'email' | 'schedule' | 'http' | 'websocket' | 'postgres' | 'kafka' | 'nats' | 'mqtt' | 'sqs' | 'gcp' | 'poll' | 'cli';
7438
+ triggerKind?: JobTriggerKind;
6476
7439
  /**
6477
7440
  * worker this job was ran on
6478
7441
  */
@@ -6598,6 +7561,15 @@ export type GetCompletedJobResultMaybeResponse = {
6598
7561
  success?: boolean;
6599
7562
  started?: boolean;
6600
7563
  };
7564
+ export type GetCompletedJobTimingData = {
7565
+ id: string;
7566
+ workspace: string;
7567
+ };
7568
+ export type GetCompletedJobTimingResponse = {
7569
+ created_at: string;
7570
+ started_at?: string;
7571
+ duration_ms?: number;
7572
+ };
6601
7573
  export type DeleteCompletedJobData = {
6602
7574
  id: string;
6603
7575
  workspace: string;
@@ -6660,6 +7632,10 @@ export type CreateJobSignatureData = {
6660
7632
  export type CreateJobSignatureResponse = string;
6661
7633
  export type GetResumeUrlsData = {
6662
7634
  approver?: string;
7635
+ /**
7636
+ * If true, generate resume URLs for the parent flow instead of the specific step. This allows pre-approvals that can be consumed by any later suspend step in the same flow.
7637
+ */
7638
+ flowLevel?: boolean;
6663
7639
  id: string;
6664
7640
  resumeId: number;
6665
7641
  workspace: string;
@@ -6893,7 +7869,7 @@ export type ListExtendedJobsData = {
6893
7869
  /**
6894
7870
  * trigger kind (schedule, http, websocket...)
6895
7871
  */
6896
- triggerKind?: 'webhook' | 'default_email' | 'email' | 'schedule' | 'http' | 'websocket' | 'postgres' | 'kafka' | 'nats' | 'mqtt' | 'sqs' | 'gcp' | 'poll' | 'cli';
7872
+ triggerKind?: JobTriggerKind;
6897
7873
  workspace: string;
6898
7874
  };
6899
7875
  export type ListExtendedJobsResponse = ExtendedJobs;
@@ -7016,6 +7992,48 @@ export type DeleteRawAppData = {
7016
7992
  workspace: string;
7017
7993
  };
7018
7994
  export type DeleteRawAppResponse = string;
7995
+ export type ResumeSuspendedTriggerJobsData = {
7996
+ /**
7997
+ * Optional list of job IDs to reassign
7998
+ */
7999
+ requestBody?: {
8000
+ /**
8001
+ * Optional list of specific job UUIDs to reassign. If not provided, all suspended jobs for the trigger will be reassigned.
8002
+ */
8003
+ job_ids?: Array<(string)>;
8004
+ };
8005
+ /**
8006
+ * The kind of trigger
8007
+ */
8008
+ triggerKind: JobTriggerKind;
8009
+ /**
8010
+ * The path of the trigger (can contain forward slashes)
8011
+ */
8012
+ triggerPath: string;
8013
+ workspace: string;
8014
+ };
8015
+ export type ResumeSuspendedTriggerJobsResponse = string;
8016
+ export type CancelSuspendedTriggerJobsData = {
8017
+ /**
8018
+ * Optional list of job IDs to cancel
8019
+ */
8020
+ requestBody?: {
8021
+ /**
8022
+ * Optional list of specific job UUIDs to cancel. If not provided, all suspended jobs for the trigger will be canceled.
8023
+ */
8024
+ job_ids?: Array<(string)>;
8025
+ };
8026
+ /**
8027
+ * The kind of trigger
8028
+ */
8029
+ triggerKind: JobTriggerKind;
8030
+ /**
8031
+ * The path of the trigger (can contain forward slashes)
8032
+ */
8033
+ triggerPath: string;
8034
+ workspace: string;
8035
+ };
8036
+ export type CancelSuspendedTriggerJobsResponse = string;
7019
8037
  export type PreviewScheduleData = {
7020
8038
  /**
7021
8039
  * schedule
@@ -7215,14 +8233,14 @@ export type ExistsRouteData = {
7215
8233
  workspace: string;
7216
8234
  };
7217
8235
  export type ExistsRouteResponse = boolean;
7218
- export type SetHttpTriggerEnabledData = {
8236
+ export type SetHttpTriggerModeData = {
7219
8237
  path: string;
7220
8238
  requestBody: {
7221
- enabled: boolean;
8239
+ mode: TriggerMode;
7222
8240
  };
7223
8241
  workspace: string;
7224
8242
  };
7225
- export type SetHttpTriggerEnabledResponse = string;
8243
+ export type SetHttpTriggerModeResponse = string;
7226
8244
  export type CreateWebsocketTriggerData = {
7227
8245
  /**
7228
8246
  * new websocket trigger
@@ -7273,17 +8291,17 @@ export type ExistsWebsocketTriggerData = {
7273
8291
  workspace: string;
7274
8292
  };
7275
8293
  export type ExistsWebsocketTriggerResponse = boolean;
7276
- export type SetWebsocketTriggerEnabledData = {
8294
+ export type SetWebsocketTriggerModeData = {
7277
8295
  path: string;
7278
8296
  /**
7279
8297
  * updated websocket trigger enable
7280
8298
  */
7281
8299
  requestBody: {
7282
- enabled: boolean;
8300
+ mode: TriggerMode;
7283
8301
  };
7284
8302
  workspace: string;
7285
8303
  };
7286
- export type SetWebsocketTriggerEnabledResponse = string;
8304
+ export type SetWebsocketTriggerModeResponse = string;
7287
8305
  export type TestWebsocketConnectionData = {
7288
8306
  /**
7289
8307
  * test websocket connection
@@ -7346,17 +8364,17 @@ export type ExistsKafkaTriggerData = {
7346
8364
  workspace: string;
7347
8365
  };
7348
8366
  export type ExistsKafkaTriggerResponse = boolean;
7349
- export type SetKafkaTriggerEnabledData = {
8367
+ export type SetKafkaTriggerModeData = {
7350
8368
  path: string;
7351
8369
  /**
7352
8370
  * updated kafka trigger enable
7353
8371
  */
7354
8372
  requestBody: {
7355
- enabled: boolean;
8373
+ mode: TriggerMode;
7356
8374
  };
7357
8375
  workspace: string;
7358
8376
  };
7359
- export type SetKafkaTriggerEnabledResponse = string;
8377
+ export type SetKafkaTriggerModeResponse = string;
7360
8378
  export type TestKafkaConnectionData = {
7361
8379
  /**
7362
8380
  * test kafka connection
@@ -7419,17 +8437,17 @@ export type ExistsNatsTriggerData = {
7419
8437
  workspace: string;
7420
8438
  };
7421
8439
  export type ExistsNatsTriggerResponse = boolean;
7422
- export type SetNatsTriggerEnabledData = {
8440
+ export type SetNatsTriggerModeData = {
7423
8441
  path: string;
7424
8442
  /**
7425
8443
  * updated nats trigger enable
7426
8444
  */
7427
8445
  requestBody: {
7428
- enabled: boolean;
8446
+ mode: TriggerMode;
7429
8447
  };
7430
8448
  workspace: string;
7431
8449
  };
7432
- export type SetNatsTriggerEnabledResponse = string;
8450
+ export type SetNatsTriggerModeResponse = string;
7433
8451
  export type TestNatsConnectionData = {
7434
8452
  /**
7435
8453
  * test nats connection
@@ -7492,17 +8510,17 @@ export type ExistsSqsTriggerData = {
7492
8510
  workspace: string;
7493
8511
  };
7494
8512
  export type ExistsSqsTriggerResponse = boolean;
7495
- export type SetSqsTriggerEnabledData = {
8513
+ export type SetSqsTriggerModeData = {
7496
8514
  path: string;
7497
8515
  /**
7498
8516
  * updated sqs trigger enable
7499
8517
  */
7500
8518
  requestBody: {
7501
- enabled: boolean;
8519
+ mode: TriggerMode;
7502
8520
  };
7503
8521
  workspace: string;
7504
8522
  };
7505
- export type SetSqsTriggerEnabledResponse = string;
8523
+ export type SetSqsTriggerModeResponse = string;
7506
8524
  export type TestSqsConnectionData = {
7507
8525
  /**
7508
8526
  * test sqs connection
@@ -7565,17 +8583,17 @@ export type ExistsMqttTriggerData = {
7565
8583
  workspace: string;
7566
8584
  };
7567
8585
  export type ExistsMqttTriggerResponse = boolean;
7568
- export type SetMqttTriggerEnabledData = {
8586
+ export type SetMqttTriggerModeData = {
7569
8587
  path: string;
7570
8588
  /**
7571
8589
  * updated mqtt trigger enable
7572
8590
  */
7573
8591
  requestBody: {
7574
- enabled: boolean;
8592
+ mode: TriggerMode;
7575
8593
  };
7576
8594
  workspace: string;
7577
8595
  };
7578
- export type SetMqttTriggerEnabledResponse = string;
8596
+ export type SetMqttTriggerModeResponse = string;
7579
8597
  export type TestMqttConnectionData = {
7580
8598
  /**
7581
8599
  * test mqtt connection
@@ -7638,17 +8656,17 @@ export type ExistsGcpTriggerData = {
7638
8656
  workspace: string;
7639
8657
  };
7640
8658
  export type ExistsGcpTriggerResponse = boolean;
7641
- export type SetGcpTriggerEnabledData = {
8659
+ export type SetGcpTriggerModeData = {
7642
8660
  path: string;
7643
8661
  /**
7644
8662
  * updated gcp trigger enable
7645
8663
  */
7646
8664
  requestBody: {
7647
- enabled: boolean;
8665
+ mode: TriggerMode;
7648
8666
  };
7649
8667
  workspace: string;
7650
8668
  };
7651
- export type SetGcpTriggerEnabledResponse = string;
8669
+ export type SetGcpTriggerModeResponse = string;
7652
8670
  export type TestGcpConnectionData = {
7653
8671
  /**
7654
8672
  * test gcp connection
@@ -7829,17 +8847,17 @@ export type ExistsPostgresTriggerData = {
7829
8847
  workspace: string;
7830
8848
  };
7831
8849
  export type ExistsPostgresTriggerResponse = boolean;
7832
- export type SetPostgresTriggerEnabledData = {
8850
+ export type SetPostgresTriggerModeData = {
7833
8851
  path: string;
7834
8852
  /**
7835
8853
  * updated postgres trigger enable
7836
8854
  */
7837
8855
  requestBody: {
7838
- enabled: boolean;
8856
+ mode: TriggerMode;
7839
8857
  };
7840
8858
  workspace: string;
7841
8859
  };
7842
- export type SetPostgresTriggerEnabledResponse = string;
8860
+ export type SetPostgresTriggerModeResponse = string;
7843
8861
  export type TestPostgresConnectionData = {
7844
8862
  /**
7845
8863
  * test postgres connection
@@ -7912,14 +8930,14 @@ export type ExistsEmailLocalPartData = {
7912
8930
  workspace: string;
7913
8931
  };
7914
8932
  export type ExistsEmailLocalPartResponse = boolean;
7915
- export type SetEmailTriggerEnabledData = {
8933
+ export type SetEmailTriggerModeData = {
7916
8934
  path: string;
7917
8935
  requestBody: {
7918
- enabled: boolean;
8936
+ mode: TriggerMode;
7919
8937
  };
7920
8938
  workspace: string;
7921
8939
  };
7922
- export type SetEmailTriggerEnabledResponse = string;
8940
+ export type SetEmailTriggerModeResponse = string;
7923
8941
  export type ListInstanceGroupsResponse = Array<InstanceGroup>;
7924
8942
  export type ListInstanceGroupsWithWorkspacesResponse = Array<InstanceGroupWithWorkspaces>;
7925
8943
  export type GetInstanceGroupData = {
@@ -8052,6 +9070,25 @@ export type RemoveUserToGroupData = {
8052
9070
  workspace: string;
8053
9071
  };
8054
9072
  export type RemoveUserToGroupResponse = string;
9073
+ export type GetGroupPermissionHistoryData = {
9074
+ name: string;
9075
+ /**
9076
+ * which page to return (start at 1, default 1)
9077
+ */
9078
+ page?: number;
9079
+ /**
9080
+ * number of items to return for a given page (default 30, max 100)
9081
+ */
9082
+ perPage?: number;
9083
+ workspace: string;
9084
+ };
9085
+ export type GetGroupPermissionHistoryResponse = Array<{
9086
+ id?: number;
9087
+ changed_by?: string;
9088
+ changed_at?: string;
9089
+ change_type?: string;
9090
+ member_affected?: string | null;
9091
+ }>;
8055
9092
  export type ListFoldersData = {
8056
9093
  /**
8057
9094
  * which page to return (start at 1, default 1)
@@ -8148,6 +9185,25 @@ export type RemoveOwnerToFolderData = {
8148
9185
  workspace: string;
8149
9186
  };
8150
9187
  export type RemoveOwnerToFolderResponse = string;
9188
+ export type GetFolderPermissionHistoryData = {
9189
+ name: string;
9190
+ /**
9191
+ * which page to return (start at 1, default 1)
9192
+ */
9193
+ page?: number;
9194
+ /**
9195
+ * number of items to return for a given page (default 30, max 100)
9196
+ */
9197
+ perPage?: number;
9198
+ workspace: string;
9199
+ };
9200
+ export type GetFolderPermissionHistoryResponse = Array<{
9201
+ id?: number;
9202
+ changed_by?: string;
9203
+ changed_at?: string;
9204
+ change_type?: string;
9205
+ affected?: string | null;
9206
+ }>;
8151
9207
  export type ListWorkerGroupsResponse = Array<{
8152
9208
  name: string;
8153
9209
  config: unknown;
@@ -8246,6 +9302,7 @@ export type ListBlacklistedAgentTokensResponse = Array<{
8246
9302
  */
8247
9303
  blacklisted_by: string;
8248
9304
  }>;
9305
+ export type GetMinVersionResponse = string;
8249
9306
  export type GetGranularAclsData = {
8250
9307
  kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger' | 'kafka_trigger' | 'nats_trigger' | 'postgres_trigger' | 'mqtt_trigger' | 'gcp_trigger' | 'sqs_trigger' | 'email_trigger';
8251
9308
  path: string;
@@ -8857,6 +9914,42 @@ export type ListMcpToolsData = {
8857
9914
  workspace: string;
8858
9915
  };
8859
9916
  export type ListMcpToolsResponse = Array<EndpointTool>;
9917
+ export type DiscoverMcpOauthData = {
9918
+ requestBody: {
9919
+ /**
9920
+ * URL of the MCP server to discover OAuth metadata from
9921
+ */
9922
+ mcp_server_url: string;
9923
+ };
9924
+ };
9925
+ export type DiscoverMcpOauthResponse = {
9926
+ scopes_supported?: Array<(string)>;
9927
+ authorization_endpoint?: string;
9928
+ token_endpoint?: string;
9929
+ registration_endpoint?: string;
9930
+ supports_dynamic_registration?: boolean;
9931
+ };
9932
+ export type StartMcpOauthPopupData = {
9933
+ /**
9934
+ * URL of the MCP server to connect to
9935
+ */
9936
+ mcpServerUrl: string;
9937
+ /**
9938
+ * Comma-separated list of OAuth scopes to request
9939
+ */
9940
+ scopes?: string;
9941
+ };
9942
+ export type McpOauthCallbackData = {
9943
+ /**
9944
+ * OAuth authorization code
9945
+ */
9946
+ code: string;
9947
+ /**
9948
+ * CSRF state token
9949
+ */
9950
+ state: string;
9951
+ };
9952
+ export type McpOauthCallbackResponse = string;
8860
9953
  export type $OpenApiTs = {
8861
9954
  '/version': {
8862
9955
  get: {
@@ -8898,6 +9991,33 @@ export type $OpenApiTs = {
8898
9991
  };
8899
9992
  };
8900
9993
  };
9994
+ '/inkeep': {
9995
+ post: {
9996
+ req: {
9997
+ /**
9998
+ * query to send to the AI documentation assistant
9999
+ */
10000
+ requestBody: {
10001
+ /**
10002
+ * The documentation query to send to the AI assistant
10003
+ */
10004
+ query: string;
10005
+ };
10006
+ };
10007
+ res: {
10008
+ /**
10009
+ * AI documentation assistant response
10010
+ */
10011
+ 200: {
10012
+ [key: string]: unknown;
10013
+ };
10014
+ /**
10015
+ * Enterprise Edition required
10016
+ */
10017
+ 403: string;
10018
+ };
10019
+ };
10020
+ };
8901
10021
  '/w/{workspace}/audit/get/{id}': {
8902
10022
  get: {
8903
10023
  req: {
@@ -8956,43 +10076,98 @@ export type $OpenApiTs = {
8956
10076
  */
8957
10077
  resource?: string;
8958
10078
  /**
8959
- * filter on exact username of user
10079
+ * filter on exact username of user
10080
+ */
10081
+ username?: string;
10082
+ workspace: string;
10083
+ };
10084
+ res: {
10085
+ /**
10086
+ * a list of audit logs
10087
+ */
10088
+ 200: Array<AuditLog>;
10089
+ };
10090
+ };
10091
+ };
10092
+ '/auth/login': {
10093
+ post: {
10094
+ req: {
10095
+ /**
10096
+ * credentials
10097
+ */
10098
+ requestBody: Login;
10099
+ };
10100
+ res: {
10101
+ /**
10102
+ * Successfully authenticated. The session ID is returned in a cookie named `token` and as plaintext response. Preferred method of authorization is through the bearer token. The cookie is only for browser convenience.
10103
+ *
10104
+ */
10105
+ 200: string;
10106
+ };
10107
+ };
10108
+ };
10109
+ '/auth/logout': {
10110
+ post: {
10111
+ res: {
10112
+ /**
10113
+ * clear cookies and clear token (if applicable)
8960
10114
  */
8961
- username?: string;
8962
- workspace: string;
10115
+ 200: string;
8963
10116
  };
10117
+ };
10118
+ };
10119
+ '/auth/is_smtp_configured': {
10120
+ get: {
8964
10121
  res: {
8965
10122
  /**
8966
- * a list of audit logs
10123
+ * returns true if SMTP is configured
8967
10124
  */
8968
- 200: Array<AuditLog>;
10125
+ 200: boolean;
8969
10126
  };
8970
10127
  };
8971
10128
  };
8972
- '/auth/login': {
10129
+ '/auth/request_password_reset': {
8973
10130
  post: {
8974
10131
  req: {
8975
10132
  /**
8976
- * credentials
10133
+ * email to send password reset link to
8977
10134
  */
8978
- requestBody: Login;
10135
+ requestBody: {
10136
+ email: string;
10137
+ };
8979
10138
  };
8980
10139
  res: {
8981
10140
  /**
8982
- * Successfully authenticated. The session ID is returned in a cookie named `token` and as plaintext response. Preferred method of authorization is through the bearer token. The cookie is only for browser convenience.
8983
- *
10141
+ * password reset email sent (if user exists)
8984
10142
  */
8985
- 200: string;
10143
+ 200: PasswordResetResponse;
10144
+ /**
10145
+ * SMTP not configured
10146
+ */
10147
+ 400: unknown;
8986
10148
  };
8987
10149
  };
8988
10150
  };
8989
- '/auth/logout': {
10151
+ '/auth/reset_password': {
8990
10152
  post: {
10153
+ req: {
10154
+ /**
10155
+ * token and new password
10156
+ */
10157
+ requestBody: {
10158
+ token: string;
10159
+ new_password: string;
10160
+ };
10161
+ };
8991
10162
  res: {
8992
10163
  /**
8993
- * clear cookies and clear token (if applicable)
10164
+ * password reset successfully
8994
10165
  */
8995
- 200: string;
10166
+ 200: PasswordResetResponse;
10167
+ /**
10168
+ * invalid or expired token
10169
+ */
10170
+ 400: unknown;
8996
10171
  };
8997
10172
  };
8998
10173
  };
@@ -9297,6 +10472,7 @@ export type $OpenApiTs = {
9297
10472
  */
9298
10473
  200: {
9299
10474
  progress?: number;
10475
+ skipped_all?: boolean;
9300
10476
  };
9301
10477
  };
9302
10478
  };
@@ -9307,6 +10483,7 @@ export type $OpenApiTs = {
9307
10483
  */
9308
10484
  requestBody: {
9309
10485
  progress?: number;
10486
+ skipped_all?: boolean;
9310
10487
  };
9311
10488
  };
9312
10489
  res: {
@@ -9733,6 +10910,19 @@ export type $OpenApiTs = {
9733
10910
  };
9734
10911
  };
9735
10912
  };
10913
+ '/w/{workspace}/workspaces/get_as_superadmin': {
10914
+ get: {
10915
+ req: {
10916
+ workspace: string;
10917
+ };
10918
+ res: {
10919
+ /**
10920
+ * workspace
10921
+ */
10922
+ 200: Workspace;
10923
+ };
10924
+ };
10925
+ };
9736
10926
  '/workspaces/list_as_superadmin': {
9737
10927
  get: {
9738
10928
  req: {
@@ -10052,6 +11242,40 @@ export type $OpenApiTs = {
10052
11242
  };
10053
11243
  };
10054
11244
  };
11245
+ '/w/{workspace}/workspaces/compare/{target_workspace_id}': {
11246
+ get: {
11247
+ req: {
11248
+ /**
11249
+ * The ID of the workspace to compare with
11250
+ */
11251
+ targetWorkspaceId: string;
11252
+ workspace: string;
11253
+ };
11254
+ res: {
11255
+ /**
11256
+ * Workspace comparison results
11257
+ */
11258
+ 200: WorkspaceComparison;
11259
+ };
11260
+ };
11261
+ };
11262
+ '/w/{workspace}/workspaces/reset_diff_tally/{fork_workspace_id}': {
11263
+ post: {
11264
+ req: {
11265
+ /**
11266
+ * The ID of the workspace to compare with
11267
+ */
11268
+ forkWorkspaceId: string;
11269
+ workspace: string;
11270
+ };
11271
+ res: {
11272
+ /**
11273
+ * status
11274
+ */
11275
+ 200: unknown;
11276
+ };
11277
+ };
11278
+ };
10055
11279
  '/w/{workspace}/workspaces/list_pending_invites': {
10056
11280
  get: {
10057
11281
  req: {
@@ -10084,6 +11308,7 @@ export type $OpenApiTs = {
10084
11308
  teams_team_id?: string;
10085
11309
  teams_command_script?: string;
10086
11310
  teams_team_name?: string;
11311
+ teams_team_guid?: string;
10087
11312
  auto_invite_domain?: string;
10088
11313
  auto_invite_operator?: boolean;
10089
11314
  auto_add?: boolean;
@@ -10101,6 +11326,7 @@ export type $OpenApiTs = {
10101
11326
  error_handler_muted_on_cancel: boolean;
10102
11327
  large_file_storage?: LargeFileStorage;
10103
11328
  ducklake?: DucklakeSettings;
11329
+ datatable?: DataTableSettings;
10104
11330
  git_sync?: WorkspaceGitSyncSettings;
10105
11331
  deploy_ui?: WorkspaceDeployUISettings;
10106
11332
  default_app?: string;
@@ -10210,6 +11436,40 @@ export type $OpenApiTs = {
10210
11436
  };
10211
11437
  };
10212
11438
  };
11439
+ '/w/{workspace}/workspaces/get_dependents/{imported_path}': {
11440
+ get: {
11441
+ req: {
11442
+ /**
11443
+ * The imported path to get dependents for
11444
+ */
11445
+ importedPath: string;
11446
+ workspace: string;
11447
+ };
11448
+ res: {
11449
+ /**
11450
+ * list of dependents
11451
+ */
11452
+ 200: Array<DependencyDependent>;
11453
+ };
11454
+ };
11455
+ };
11456
+ '/w/{workspace}/workspaces/get_dependents_amounts': {
11457
+ post: {
11458
+ req: {
11459
+ /**
11460
+ * List of imported paths to get dependents counts for
11461
+ */
11462
+ requestBody: Array<(string)>;
11463
+ workspace: string;
11464
+ };
11465
+ res: {
11466
+ /**
11467
+ * list of dependents amounts
11468
+ */
11469
+ 200: Array<DependentsAmount>;
11470
+ };
11471
+ };
11472
+ };
10213
11473
  '/w/{workspace}/workspaces/get_dependency_map': {
10214
11474
  get: {
10215
11475
  req: {
@@ -10313,7 +11573,11 @@ export type $OpenApiTs = {
10313
11573
  get: {
10314
11574
  req: {
10315
11575
  /**
10316
- * Search teams by name
11576
+ * Pagination cursor URL from previous response. Pass this to fetch the next page of results.
11577
+ */
11578
+ nextLink?: string;
11579
+ /**
11580
+ * Search teams by name. If omitted, returns first page of all teams.
10317
11581
  */
10318
11582
  search?: string;
10319
11583
  workspace: string;
@@ -10322,20 +11586,30 @@ export type $OpenApiTs = {
10322
11586
  /**
10323
11587
  * status
10324
11588
  */
10325
- 200: Array<{
10326
- team_name?: string;
10327
- team_id?: string;
10328
- }>;
11589
+ 200: {
11590
+ teams?: Array<{
11591
+ team_name?: string;
11592
+ team_id?: string;
11593
+ }>;
11594
+ /**
11595
+ * Total number of teams across all pages
11596
+ */
11597
+ total_count?: number;
11598
+ /**
11599
+ * Number of teams per page (configurable via TEAMS_PER_PAGE env var)
11600
+ */
11601
+ per_page?: number;
11602
+ /**
11603
+ * URL to fetch next page of results. Null if no more pages.
11604
+ */
11605
+ next_link?: string | null;
11606
+ };
10329
11607
  };
10330
11608
  };
10331
11609
  };
10332
11610
  '/w/{workspace}/workspaces/available_teams_channels': {
10333
11611
  get: {
10334
11612
  req: {
10335
- /**
10336
- * Search channels by name
10337
- */
10338
- search?: string;
10339
11613
  /**
10340
11614
  * Microsoft Teams team ID
10341
11615
  */
@@ -10346,10 +11620,13 @@ export type $OpenApiTs = {
10346
11620
  /**
10347
11621
  * List of channels for the specified team
10348
11622
  */
10349
- 200: Array<{
10350
- channel_name?: string;
10351
- channel_id?: string;
10352
- }>;
11623
+ 200: {
11624
+ channels?: Array<{
11625
+ channel_name?: string;
11626
+ channel_id?: string;
11627
+ }>;
11628
+ total_count?: number;
11629
+ };
10353
11630
  };
10354
11631
  };
10355
11632
  };
@@ -10580,6 +11857,32 @@ export type $OpenApiTs = {
10580
11857
  };
10581
11858
  };
10582
11859
  };
11860
+ '/w/{workspace}/workspaces/list_datatables': {
11861
+ get: {
11862
+ req: {
11863
+ workspace: string;
11864
+ };
11865
+ res: {
11866
+ /**
11867
+ * status
11868
+ */
11869
+ 200: Array<(string)>;
11870
+ };
11871
+ };
11872
+ };
11873
+ '/w/{workspace}/workspaces/list_datatable_schemas': {
11874
+ get: {
11875
+ req: {
11876
+ workspace: string;
11877
+ };
11878
+ res: {
11879
+ /**
11880
+ * schemas of all datatables
11881
+ */
11882
+ 200: Array<DataTableSchema>;
11883
+ };
11884
+ };
11885
+ };
10583
11886
  '/w/{workspace}/workspaces/edit_ducklake_config': {
10584
11887
  post: {
10585
11888
  req: {
@@ -10599,6 +11902,25 @@ export type $OpenApiTs = {
10599
11902
  };
10600
11903
  };
10601
11904
  };
11905
+ '/w/{workspace}/workspaces/edit_datatable_config': {
11906
+ post: {
11907
+ req: {
11908
+ /**
11909
+ * DataTable settings
11910
+ */
11911
+ requestBody: {
11912
+ settings: DataTableSettings;
11913
+ };
11914
+ workspace: string;
11915
+ };
11916
+ res: {
11917
+ /**
11918
+ * status
11919
+ */
11920
+ 200: unknown;
11921
+ };
11922
+ };
11923
+ };
10602
11924
  '/w/{workspace}/workspaces/edit_git_sync_config': {
10603
11925
  post: {
10604
11926
  req: {
@@ -10846,31 +12168,46 @@ export type $OpenApiTs = {
10846
12168
  };
10847
12169
  };
10848
12170
  };
10849
- '/settings/get_ducklake_instance_catalog_db_status': {
12171
+ '/settings/refresh_custom_instance_user_pwd': {
12172
+ post: {
12173
+ res: {
12174
+ /**
12175
+ * Success
12176
+ */
12177
+ 200: {
12178
+ [key: string]: unknown;
12179
+ };
12180
+ };
12181
+ };
12182
+ };
12183
+ '/settings/list_custom_instance_pg_databases': {
10850
12184
  post: {
10851
12185
  res: {
10852
12186
  /**
10853
- * Statuses of all ducklake instance catalog dbs
12187
+ * Statuses of all custom instance dbs
10854
12188
  */
10855
12189
  200: {
10856
- [key: string]: DucklakeInstanceCatalogDbStatus;
12190
+ [key: string]: CustomInstanceDb;
10857
12191
  };
10858
12192
  };
10859
12193
  };
10860
12194
  };
10861
- '/settings/setup_ducklake_catalog_db/{name}': {
12195
+ '/settings/setup_custom_instance_pg_database/{name}': {
10862
12196
  post: {
10863
12197
  req: {
10864
12198
  /**
10865
12199
  * The name of the database to create
10866
12200
  */
10867
12201
  name: string;
12202
+ requestBody: {
12203
+ tag?: CustomInstanceDbTag;
12204
+ };
10868
12205
  };
10869
12206
  res: {
10870
12207
  /**
10871
12208
  * status
10872
12209
  */
10873
- 200: DucklakeInstanceCatalogDbStatus;
12210
+ 200: CustomInstanceDb;
10874
12211
  };
10875
12212
  };
10876
12213
  };
@@ -11227,6 +12564,7 @@ export type $OpenApiTs = {
11227
12564
  post: {
11228
12565
  req: {
11229
12566
  audience: string;
12567
+ expiresIn?: number;
11230
12568
  workspace: string;
11231
12569
  };
11232
12570
  res: {
@@ -11511,6 +12849,10 @@ export type $OpenApiTs = {
11511
12849
  * OAuth token URL override for resource-level authentication (client_credentials flow only)
11512
12850
  */
11513
12851
  cc_token_url?: string;
12852
+ /**
12853
+ * MCP server URL for MCP OAuth token refresh
12854
+ */
12855
+ mcp_server_url?: string;
11514
12856
  };
11515
12857
  workspace: string;
11516
12858
  };
@@ -12233,6 +13575,12 @@ export type $OpenApiTs = {
12233
13575
  *
12234
13576
  */
12235
13577
  withDeploymentMsg?: boolean;
13578
+ /**
13579
+ * (default false)
13580
+ * If true, the description field will be omitted from the response.
13581
+ *
13582
+ */
13583
+ withoutDescription?: boolean;
12236
13584
  workspace: string;
12237
13585
  };
12238
13586
  res: {
@@ -12290,10 +13638,9 @@ export type $OpenApiTs = {
12290
13638
  };
12291
13639
  };
12292
13640
  };
12293
- '/w/{workspace}/flows/get/v/{version}/p/{path}': {
13641
+ '/w/{workspace}/flows/get/v/{version}': {
12294
13642
  get: {
12295
13643
  req: {
12296
- path: string;
12297
13644
  version: number;
12298
13645
  workspace: string;
12299
13646
  };
@@ -12305,10 +13652,9 @@ export type $OpenApiTs = {
12305
13652
  };
12306
13653
  };
12307
13654
  };
12308
- '/w/{workspace}/flows/history_update/v/{version}/p/{path}': {
13655
+ '/w/{workspace}/flows/history_update/v/{version}': {
12309
13656
  post: {
12310
13657
  req: {
12311
- path: string;
12312
13658
  /**
12313
13659
  * Flow deployment message
12314
13660
  */
@@ -12353,6 +13699,7 @@ export type $OpenApiTs = {
12353
13699
  */
12354
13700
  200: {
12355
13701
  lock_error_logs?: string;
13702
+ job_id?: string;
12356
13703
  };
12357
13704
  };
12358
13705
  };
@@ -13009,6 +14356,12 @@ export type $OpenApiTs = {
13009
14356
  [key: string]: unknown;
13010
14357
  };
13011
14358
  force_viewer_allow_user_resources?: Array<(string)>;
14359
+ /**
14360
+ * Runnable query parameters
14361
+ */
14362
+ run_query_params?: {
14363
+ [key: string]: unknown;
14364
+ };
13012
14365
  };
13013
14366
  workspace: string;
13014
14367
  };
@@ -13296,6 +14649,12 @@ export type $OpenApiTs = {
13296
14649
  *
13297
14650
  */
13298
14651
  withDeploymentMsg?: boolean;
14652
+ /**
14653
+ * (default false)
14654
+ * If true, the description field will be omitted from the response.
14655
+ *
14656
+ */
14657
+ withoutDescription?: boolean;
13299
14658
  workspace: string;
13300
14659
  };
13301
14660
  res: {
@@ -13641,6 +15000,7 @@ export type $OpenApiTs = {
13641
15000
  200: {
13642
15001
  lock?: string;
13643
15002
  lock_error_logs?: string;
15003
+ job_id?: string;
13644
15004
  };
13645
15005
  };
13646
15006
  };
@@ -13743,6 +15103,10 @@ export type $OpenApiTs = {
13743
15103
  * comma separated list of tags
13744
15104
  */
13745
15105
  tags: string;
15106
+ /**
15107
+ * workspace to filter tags visibility (required when TAGS_ARE_SENSITIVE is enabled for non-superadmins)
15108
+ */
15109
+ workspace?: string;
13746
15110
  };
13747
15111
  res: {
13748
15112
  /**
@@ -13794,6 +15158,81 @@ export type $OpenApiTs = {
13794
15158
  };
13795
15159
  };
13796
15160
  };
15161
+ '/w/{workspace}/workspace_dependencies/create': {
15162
+ post: {
15163
+ req: {
15164
+ /**
15165
+ * New workspace dependencies
15166
+ */
15167
+ requestBody: NewWorkspaceDependencies;
15168
+ workspace: string;
15169
+ };
15170
+ res: {
15171
+ /**
15172
+ * workspace dependencies created
15173
+ */
15174
+ 201: string;
15175
+ };
15176
+ };
15177
+ };
15178
+ '/w/{workspace}/workspace_dependencies/archive/{language}': {
15179
+ post: {
15180
+ req: {
15181
+ language: ScriptLang;
15182
+ name?: string;
15183
+ workspace: string;
15184
+ };
15185
+ res: {
15186
+ /**
15187
+ * result
15188
+ */
15189
+ 200: unknown;
15190
+ };
15191
+ };
15192
+ };
15193
+ '/w/{workspace}/workspace_dependencies/delete/{language}': {
15194
+ post: {
15195
+ req: {
15196
+ language: ScriptLang;
15197
+ name?: string;
15198
+ workspace: string;
15199
+ };
15200
+ res: {
15201
+ /**
15202
+ * result
15203
+ */
15204
+ 200: unknown;
15205
+ };
15206
+ };
15207
+ };
15208
+ '/w/{workspace}/workspace_dependencies/list': {
15209
+ get: {
15210
+ req: {
15211
+ workspace: string;
15212
+ };
15213
+ res: {
15214
+ /**
15215
+ * All workspace dependencies
15216
+ */
15217
+ 200: Array<WorkspaceDependencies>;
15218
+ };
15219
+ };
15220
+ };
15221
+ '/w/{workspace}/workspace_dependencies/get_latest/{language}': {
15222
+ get: {
15223
+ req: {
15224
+ language: ScriptLang;
15225
+ name?: string;
15226
+ workspace: string;
15227
+ };
15228
+ res: {
15229
+ /**
15230
+ * Latest workspace dependencies
15231
+ */
15232
+ 200: WorkspaceDependencies;
15233
+ };
15234
+ };
15235
+ };
13797
15236
  '/w/{workspace}/jobs/list_selected_job_groups': {
13798
15237
  post: {
13799
15238
  req: {
@@ -14664,13 +16103,9 @@ export type $OpenApiTs = {
14664
16103
  };
14665
16104
  };
14666
16105
  };
14667
- '/w/{workspace}/jobs/restart/f/{id}/from/{step_id}/{branch_or_iteration_n}': {
16106
+ '/w/{workspace}/jobs/restart/f/{id}': {
14668
16107
  post: {
14669
16108
  req: {
14670
- /**
14671
- * for branchall or loop, the iteration at which the flow should restart
14672
- */
14673
- branchOrIterationN: number;
14674
16109
  id: string;
14675
16110
  /**
14676
16111
  * List of headers's keys (separated with ',') whove value are added to the args
@@ -14691,9 +16126,22 @@ export type $OpenApiTs = {
14691
16126
  */
14692
16127
  parentJob?: string;
14693
16128
  /**
14694
- * flow args
16129
+ * restart flow parameters
14695
16130
  */
14696
- requestBody: ScriptArgs;
16131
+ requestBody: {
16132
+ /**
16133
+ * step id to restart the flow from
16134
+ */
16135
+ step_id: string;
16136
+ /**
16137
+ * for branchall or loop, the iteration at which the flow should restart (optional)
16138
+ */
16139
+ branch_or_iteration_n?: number;
16140
+ /**
16141
+ * specific flow version to use for restart (optional, uses current version if not specified)
16142
+ */
16143
+ flow_version?: number;
16144
+ };
14697
16145
  /**
14698
16146
  * when to schedule this job (leave empty for immediate run)
14699
16147
  */
@@ -14702,10 +16150,6 @@ export type $OpenApiTs = {
14702
16150
  * schedule the script to execute in the number of seconds starting now
14703
16151
  */
14704
16152
  scheduledInSecs?: number;
14705
- /**
14706
- * step id to restart the flow from
14707
- */
14708
- stepId: string;
14709
16153
  /**
14710
16154
  * Override the tag to use
14711
16155
  */
@@ -14809,6 +16253,23 @@ export type $OpenApiTs = {
14809
16253
  };
14810
16254
  };
14811
16255
  };
16256
+ '/w/{workspace}/jobs/run_inline/preview': {
16257
+ post: {
16258
+ req: {
16259
+ /**
16260
+ * preview
16261
+ */
16262
+ requestBody: PreviewInline;
16263
+ workspace: string;
16264
+ };
16265
+ res: {
16266
+ /**
16267
+ * script result
16268
+ */
16269
+ 200: unknown;
16270
+ };
16271
+ };
16272
+ };
14812
16273
  '/w/{workspace}/jobs/run_wait_result/preview': {
14813
16274
  post: {
14814
16275
  req: {
@@ -15031,6 +16492,14 @@ export type $OpenApiTs = {
15031
16492
  * filter on jobs with a given tag/worker group
15032
16493
  */
15033
16494
  tag?: string;
16495
+ /**
16496
+ * trigger kind (schedule, http, websocket...)
16497
+ */
16498
+ triggerKind?: JobTriggerKind;
16499
+ /**
16500
+ * mask to filter by trigger path
16501
+ */
16502
+ triggerPath?: string;
15034
16503
  /**
15035
16504
  * worker this job was ran on
15036
16505
  */
@@ -15459,6 +16928,90 @@ export type $OpenApiTs = {
15459
16928
  };
15460
16929
  };
15461
16930
  };
16931
+ '/w/{workspace}/jobs/completed/export': {
16932
+ get: {
16933
+ req: {
16934
+ /**
16935
+ * which page to return (start at 1, default 1)
16936
+ */
16937
+ page?: number;
16938
+ /**
16939
+ * number of items to return for a given page (default 30, max 100)
16940
+ */
16941
+ perPage?: number;
16942
+ workspace: string;
16943
+ };
16944
+ res: {
16945
+ /**
16946
+ * All completed jobs exported
16947
+ */
16948
+ 200: Array<ExportableCompletedJob>;
16949
+ };
16950
+ };
16951
+ };
16952
+ '/w/{workspace}/jobs/completed/import': {
16953
+ post: {
16954
+ req: {
16955
+ requestBody: Array<ExportableCompletedJob>;
16956
+ workspace: string;
16957
+ };
16958
+ res: {
16959
+ /**
16960
+ * Successfully imported completed jobs
16961
+ */
16962
+ 200: string;
16963
+ };
16964
+ };
16965
+ };
16966
+ '/w/{workspace}/jobs/queue/export': {
16967
+ get: {
16968
+ req: {
16969
+ /**
16970
+ * which page to return (start at 1, default 1)
16971
+ */
16972
+ page?: number;
16973
+ /**
16974
+ * number of items to return for a given page (default 30, max 100)
16975
+ */
16976
+ perPage?: number;
16977
+ workspace: string;
16978
+ };
16979
+ res: {
16980
+ /**
16981
+ * All queued jobs exported
16982
+ */
16983
+ 200: Array<ExportableQueuedJob>;
16984
+ };
16985
+ };
16986
+ };
16987
+ '/w/{workspace}/jobs/queue/import': {
16988
+ post: {
16989
+ req: {
16990
+ requestBody: Array<ExportableQueuedJob>;
16991
+ workspace: string;
16992
+ };
16993
+ res: {
16994
+ /**
16995
+ * Successfully imported queued jobs
16996
+ */
16997
+ 200: string;
16998
+ };
16999
+ };
17000
+ };
17001
+ '/w/{workspace}/jobs/delete': {
17002
+ post: {
17003
+ req: {
17004
+ requestBody: Array<(string)>;
17005
+ workspace: string;
17006
+ };
17007
+ res: {
17008
+ /**
17009
+ * Successfully deleted jobs
17010
+ */
17011
+ 200: string;
17012
+ };
17013
+ };
17014
+ };
15462
17015
  '/w/{workspace}/jobs/list': {
15463
17016
  get: {
15464
17017
  req: {
@@ -15585,7 +17138,7 @@ export type $OpenApiTs = {
15585
17138
  /**
15586
17139
  * trigger kind (schedule, http, websocket...)
15587
17140
  */
15588
- triggerKind?: 'webhook' | 'default_email' | 'email' | 'schedule' | 'http' | 'websocket' | 'postgres' | 'kafka' | 'nats' | 'mqtt' | 'sqs' | 'gcp' | 'poll' | 'cli';
17141
+ triggerKind?: JobTriggerKind;
15589
17142
  /**
15590
17143
  * worker this job was ran on
15591
17144
  */
@@ -15853,6 +17406,24 @@ export type $OpenApiTs = {
15853
17406
  };
15854
17407
  };
15855
17408
  };
17409
+ '/w/{workspace}/jobs_u/completed/get_timing/{id}': {
17410
+ get: {
17411
+ req: {
17412
+ id: string;
17413
+ workspace: string;
17414
+ };
17415
+ res: {
17416
+ /**
17417
+ * job timing details
17418
+ */
17419
+ 200: {
17420
+ created_at: string;
17421
+ started_at?: string;
17422
+ duration_ms?: number;
17423
+ };
17424
+ };
17425
+ };
17426
+ };
15856
17427
  '/w/{workspace}/jobs/completed/delete/{id}': {
15857
17428
  post: {
15858
17429
  req: {
@@ -15980,6 +17551,10 @@ export type $OpenApiTs = {
15980
17551
  get: {
15981
17552
  req: {
15982
17553
  approver?: string;
17554
+ /**
17555
+ * If true, generate resume URLs for the parent flow instead of the specific step. This allows pre-approvals that can be consumed by any later suspend step in the same flow.
17556
+ */
17557
+ flowLevel?: boolean;
15983
17558
  id: string;
15984
17559
  resumeId: number;
15985
17560
  workspace: string;
@@ -16306,7 +17881,7 @@ export type $OpenApiTs = {
16306
17881
  /**
16307
17882
  * trigger kind (schedule, http, websocket...)
16308
17883
  */
16309
- triggerKind?: 'webhook' | 'default_email' | 'email' | 'schedule' | 'http' | 'websocket' | 'postgres' | 'kafka' | 'nats' | 'mqtt' | 'sqs' | 'gcp' | 'poll' | 'cli';
17884
+ triggerKind?: JobTriggerKind;
16310
17885
  workspace: string;
16311
17886
  };
16312
17887
  res: {
@@ -16517,6 +18092,66 @@ export type $OpenApiTs = {
16517
18092
  };
16518
18093
  };
16519
18094
  };
18095
+ '/w/{workspace}/trigger/{trigger_kind}/resume_suspended_trigger_jobs/{trigger_path}': {
18096
+ post: {
18097
+ req: {
18098
+ /**
18099
+ * Optional list of job IDs to reassign
18100
+ */
18101
+ requestBody?: {
18102
+ /**
18103
+ * Optional list of specific job UUIDs to reassign. If not provided, all suspended jobs for the trigger will be reassigned.
18104
+ */
18105
+ job_ids?: Array<(string)>;
18106
+ };
18107
+ /**
18108
+ * The kind of trigger
18109
+ */
18110
+ triggerKind: JobTriggerKind;
18111
+ /**
18112
+ * The path of the trigger (can contain forward slashes)
18113
+ */
18114
+ triggerPath: string;
18115
+ workspace: string;
18116
+ };
18117
+ res: {
18118
+ /**
18119
+ * confirmation message
18120
+ */
18121
+ 200: string;
18122
+ };
18123
+ };
18124
+ };
18125
+ '/w/{workspace}/trigger/{trigger_kind}/cancel_suspended_trigger_jobs/{trigger_path}': {
18126
+ post: {
18127
+ req: {
18128
+ /**
18129
+ * Optional list of job IDs to cancel
18130
+ */
18131
+ requestBody?: {
18132
+ /**
18133
+ * Optional list of specific job UUIDs to cancel. If not provided, all suspended jobs for the trigger will be canceled.
18134
+ */
18135
+ job_ids?: Array<(string)>;
18136
+ };
18137
+ /**
18138
+ * The kind of trigger
18139
+ */
18140
+ triggerKind: JobTriggerKind;
18141
+ /**
18142
+ * The path of the trigger (can contain forward slashes)
18143
+ */
18144
+ triggerPath: string;
18145
+ workspace: string;
18146
+ };
18147
+ res: {
18148
+ /**
18149
+ * confirmation message
18150
+ */
18151
+ 200: string;
18152
+ };
18153
+ };
18154
+ };
16520
18155
  '/schedules/preview': {
16521
18156
  post: {
16522
18157
  req: {
@@ -16896,12 +18531,12 @@ export type $OpenApiTs = {
16896
18531
  };
16897
18532
  };
16898
18533
  };
16899
- '/w/{workspace}/http_triggers/setenabled/{path}': {
18534
+ '/w/{workspace}/http_triggers/setmode/{path}': {
16900
18535
  post: {
16901
18536
  req: {
16902
18537
  path: string;
16903
18538
  requestBody: {
16904
- enabled: boolean;
18539
+ mode: TriggerMode;
16905
18540
  };
16906
18541
  workspace: string;
16907
18542
  };
@@ -17017,7 +18652,7 @@ export type $OpenApiTs = {
17017
18652
  };
17018
18653
  };
17019
18654
  };
17020
- '/w/{workspace}/websocket_triggers/setenabled/{path}': {
18655
+ '/w/{workspace}/websocket_triggers/setmode/{path}': {
17021
18656
  post: {
17022
18657
  req: {
17023
18658
  path: string;
@@ -17025,7 +18660,7 @@ export type $OpenApiTs = {
17025
18660
  * updated websocket trigger enable
17026
18661
  */
17027
18662
  requestBody: {
17028
- enabled: boolean;
18663
+ mode: TriggerMode;
17029
18664
  };
17030
18665
  workspace: string;
17031
18666
  };
@@ -17162,7 +18797,7 @@ export type $OpenApiTs = {
17162
18797
  };
17163
18798
  };
17164
18799
  };
17165
- '/w/{workspace}/kafka_triggers/setenabled/{path}': {
18800
+ '/w/{workspace}/kafka_triggers/setmode/{path}': {
17166
18801
  post: {
17167
18802
  req: {
17168
18803
  path: string;
@@ -17170,7 +18805,7 @@ export type $OpenApiTs = {
17170
18805
  * updated kafka trigger enable
17171
18806
  */
17172
18807
  requestBody: {
17173
- enabled: boolean;
18808
+ mode: TriggerMode;
17174
18809
  };
17175
18810
  workspace: string;
17176
18811
  };
@@ -17307,7 +18942,7 @@ export type $OpenApiTs = {
17307
18942
  };
17308
18943
  };
17309
18944
  };
17310
- '/w/{workspace}/nats_triggers/setenabled/{path}': {
18945
+ '/w/{workspace}/nats_triggers/setmode/{path}': {
17311
18946
  post: {
17312
18947
  req: {
17313
18948
  path: string;
@@ -17315,7 +18950,7 @@ export type $OpenApiTs = {
17315
18950
  * updated nats trigger enable
17316
18951
  */
17317
18952
  requestBody: {
17318
- enabled: boolean;
18953
+ mode: TriggerMode;
17319
18954
  };
17320
18955
  workspace: string;
17321
18956
  };
@@ -17452,7 +19087,7 @@ export type $OpenApiTs = {
17452
19087
  };
17453
19088
  };
17454
19089
  };
17455
- '/w/{workspace}/sqs_triggers/setenabled/{path}': {
19090
+ '/w/{workspace}/sqs_triggers/setmode/{path}': {
17456
19091
  post: {
17457
19092
  req: {
17458
19093
  path: string;
@@ -17460,7 +19095,7 @@ export type $OpenApiTs = {
17460
19095
  * updated sqs trigger enable
17461
19096
  */
17462
19097
  requestBody: {
17463
- enabled: boolean;
19098
+ mode: TriggerMode;
17464
19099
  };
17465
19100
  workspace: string;
17466
19101
  };
@@ -17597,7 +19232,7 @@ export type $OpenApiTs = {
17597
19232
  };
17598
19233
  };
17599
19234
  };
17600
- '/w/{workspace}/mqtt_triggers/setenabled/{path}': {
19235
+ '/w/{workspace}/mqtt_triggers/setmode/{path}': {
17601
19236
  post: {
17602
19237
  req: {
17603
19238
  path: string;
@@ -17605,7 +19240,7 @@ export type $OpenApiTs = {
17605
19240
  * updated mqtt trigger enable
17606
19241
  */
17607
19242
  requestBody: {
17608
- enabled: boolean;
19243
+ mode: TriggerMode;
17609
19244
  };
17610
19245
  workspace: string;
17611
19246
  };
@@ -17742,7 +19377,7 @@ export type $OpenApiTs = {
17742
19377
  };
17743
19378
  };
17744
19379
  };
17745
- '/w/{workspace}/gcp_triggers/setenabled/{path}': {
19380
+ '/w/{workspace}/gcp_triggers/setmode/{path}': {
17746
19381
  post: {
17747
19382
  req: {
17748
19383
  path: string;
@@ -17750,7 +19385,7 @@ export type $OpenApiTs = {
17750
19385
  * updated gcp trigger enable
17751
19386
  */
17752
19387
  requestBody: {
17753
- enabled: boolean;
19388
+ mode: TriggerMode;
17754
19389
  };
17755
19390
  workspace: string;
17756
19391
  };
@@ -18140,7 +19775,7 @@ export type $OpenApiTs = {
18140
19775
  };
18141
19776
  };
18142
19777
  };
18143
- '/w/{workspace}/postgres_triggers/setenabled/{path}': {
19778
+ '/w/{workspace}/postgres_triggers/setmode/{path}': {
18144
19779
  post: {
18145
19780
  req: {
18146
19781
  path: string;
@@ -18148,7 +19783,7 @@ export type $OpenApiTs = {
18148
19783
  * updated postgres trigger enable
18149
19784
  */
18150
19785
  requestBody: {
18151
- enabled: boolean;
19786
+ mode: TriggerMode;
18152
19787
  };
18153
19788
  workspace: string;
18154
19789
  };
@@ -18304,12 +19939,12 @@ export type $OpenApiTs = {
18304
19939
  };
18305
19940
  };
18306
19941
  };
18307
- '/w/{workspace}/email_triggers/setenabled/{path}': {
19942
+ '/w/{workspace}/email_triggers/setmode/{path}': {
18308
19943
  post: {
18309
19944
  req: {
18310
19945
  path: string;
18311
19946
  requestBody: {
18312
- enabled: boolean;
19947
+ mode: TriggerMode;
18313
19948
  };
18314
19949
  workspace: string;
18315
19950
  };
@@ -18615,6 +20250,34 @@ export type $OpenApiTs = {
18615
20250
  };
18616
20251
  };
18617
20252
  };
20253
+ '/w/{workspace}/groups_history/get/{name}': {
20254
+ get: {
20255
+ req: {
20256
+ name: string;
20257
+ /**
20258
+ * which page to return (start at 1, default 1)
20259
+ */
20260
+ page?: number;
20261
+ /**
20262
+ * number of items to return for a given page (default 30, max 100)
20263
+ */
20264
+ perPage?: number;
20265
+ workspace: string;
20266
+ };
20267
+ res: {
20268
+ /**
20269
+ * group permission history
20270
+ */
20271
+ 200: Array<{
20272
+ id?: number;
20273
+ changed_by?: string;
20274
+ changed_at?: string;
20275
+ change_type?: string;
20276
+ member_affected?: string | null;
20277
+ }>;
20278
+ };
20279
+ };
20280
+ };
18618
20281
  '/w/{workspace}/folders/list': {
18619
20282
  get: {
18620
20283
  req: {
@@ -18801,6 +20464,34 @@ export type $OpenApiTs = {
18801
20464
  };
18802
20465
  };
18803
20466
  };
20467
+ '/w/{workspace}/folders_history/get/{name}': {
20468
+ get: {
20469
+ req: {
20470
+ name: string;
20471
+ /**
20472
+ * which page to return (start at 1, default 1)
20473
+ */
20474
+ page?: number;
20475
+ /**
20476
+ * number of items to return for a given page (default 30, max 100)
20477
+ */
20478
+ perPage?: number;
20479
+ workspace: string;
20480
+ };
20481
+ res: {
20482
+ /**
20483
+ * folder permission history
20484
+ */
20485
+ 200: Array<{
20486
+ id?: number;
20487
+ changed_by?: string;
20488
+ changed_at?: string;
20489
+ change_type?: string;
20490
+ affected?: string | null;
20491
+ }>;
20492
+ };
20493
+ };
20494
+ };
18804
20495
  '/configs/list_worker_groups': {
18805
20496
  get: {
18806
20497
  res: {
@@ -19009,6 +20700,16 @@ export type $OpenApiTs = {
19009
20700
  };
19010
20701
  };
19011
20702
  };
20703
+ '/agent_workers/get_min_version': {
20704
+ get: {
20705
+ res: {
20706
+ /**
20707
+ * minimum worker version
20708
+ */
20709
+ 200: string;
20710
+ };
20711
+ };
20712
+ };
19012
20713
  '/w/{workspace}/acls/get/{kind}/{path}': {
19013
20714
  get: {
19014
20715
  req: {
@@ -20113,4 +21814,68 @@ export type $OpenApiTs = {
20113
21814
  };
20114
21815
  };
20115
21816
  };
21817
+ '/mcp/oauth/discover': {
21818
+ post: {
21819
+ req: {
21820
+ requestBody: {
21821
+ /**
21822
+ * URL of the MCP server to discover OAuth metadata from
21823
+ */
21824
+ mcp_server_url: string;
21825
+ };
21826
+ };
21827
+ res: {
21828
+ /**
21829
+ * OAuth metadata from MCP server
21830
+ */
21831
+ 200: {
21832
+ scopes_supported?: Array<(string)>;
21833
+ authorization_endpoint?: string;
21834
+ token_endpoint?: string;
21835
+ registration_endpoint?: string;
21836
+ supports_dynamic_registration?: boolean;
21837
+ };
21838
+ };
21839
+ };
21840
+ };
21841
+ '/mcp/oauth/start': {
21842
+ get: {
21843
+ req: {
21844
+ /**
21845
+ * URL of the MCP server to connect to
21846
+ */
21847
+ mcpServerUrl: string;
21848
+ /**
21849
+ * Comma-separated list of OAuth scopes to request
21850
+ */
21851
+ scopes?: string;
21852
+ };
21853
+ res: {
21854
+ /**
21855
+ * Redirect to OAuth provider authorization URL
21856
+ */
21857
+ 302: unknown;
21858
+ };
21859
+ };
21860
+ };
21861
+ '/mcp/oauth/callback': {
21862
+ get: {
21863
+ req: {
21864
+ /**
21865
+ * OAuth authorization code
21866
+ */
21867
+ code: string;
21868
+ /**
21869
+ * CSRF state token
21870
+ */
21871
+ state: string;
21872
+ };
21873
+ res: {
21874
+ /**
21875
+ * HTML page with JavaScript that posts tokens to opener window and closes
21876
+ */
21877
+ 200: string;
21878
+ };
21879
+ };
21880
+ };
20116
21881
  };