mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-18 16:02:10 +00:00
5670fff32a
* chore(main): release 1.568.0 * Apply automatic changes --------- Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
739 lines
17 KiB
YAML
739 lines
17 KiB
YAML
openapi: "3.0.3"
|
|
|
|
info:
|
|
version: 1.568.0
|
|
title: OpenFlow Spec
|
|
contact:
|
|
name: Ruben Fiszel
|
|
email: ruben@windmill.dev
|
|
url: https://windmill.dev
|
|
|
|
license:
|
|
name: Apache 2.0
|
|
url: https://www.apache.org/licenses/LICENSE-2.0.html
|
|
|
|
paths: {}
|
|
|
|
externalDocs:
|
|
description: documentation portal
|
|
url: https://windmill.dev
|
|
|
|
components:
|
|
schemas:
|
|
OpenFlow:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
value:
|
|
$ref: "#/components/schemas/FlowValue"
|
|
schema:
|
|
type: object
|
|
required:
|
|
- summary
|
|
- value
|
|
|
|
FlowValue:
|
|
type: object
|
|
properties:
|
|
modules:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowModule"
|
|
failure_module:
|
|
$ref: "#/components/schemas/FlowModule"
|
|
preprocessor_module:
|
|
$ref: "#/components/schemas/FlowModule"
|
|
same_worker:
|
|
type: boolean
|
|
concurrent_limit:
|
|
type: number
|
|
concurrency_key:
|
|
type: string
|
|
concurrency_time_window_s:
|
|
type: number
|
|
debounce_delay_s:
|
|
type: number
|
|
debounce_key:
|
|
type: string
|
|
skip_expr:
|
|
type: string
|
|
cache_ttl:
|
|
type: number
|
|
priority:
|
|
type: number
|
|
early_return:
|
|
type: string
|
|
chat_input_enabled:
|
|
type: boolean
|
|
description: Whether this flow accepts chat-style input
|
|
required:
|
|
- modules
|
|
|
|
Retry:
|
|
type: object
|
|
properties:
|
|
constant:
|
|
type: object
|
|
properties:
|
|
attempts:
|
|
type: integer
|
|
seconds:
|
|
type: integer
|
|
exponential:
|
|
type: object
|
|
properties:
|
|
attempts:
|
|
type: integer
|
|
multiplier:
|
|
type: integer
|
|
seconds:
|
|
type: integer
|
|
random_factor:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 100
|
|
retry_if:
|
|
$ref: "#/components/schemas/RetryIf"
|
|
|
|
RetryIf:
|
|
type: object
|
|
properties:
|
|
expr:
|
|
type: string
|
|
required:
|
|
- expr
|
|
|
|
StopAfterIf:
|
|
type: object
|
|
properties:
|
|
skip_if_stopped:
|
|
type: boolean
|
|
expr:
|
|
type: string
|
|
error_message:
|
|
type: string
|
|
required:
|
|
- expr
|
|
|
|
FlowModule:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
value:
|
|
$ref: "#/components/schemas/FlowModuleValue"
|
|
stop_after_if:
|
|
$ref: "#/components/schemas/StopAfterIf"
|
|
stop_after_all_iters_if:
|
|
$ref: "#/components/schemas/StopAfterIf"
|
|
skip_if:
|
|
type: object
|
|
properties:
|
|
expr:
|
|
type: string
|
|
required:
|
|
- expr
|
|
sleep:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
cache_ttl:
|
|
type: number
|
|
timeout:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
delete_after_use:
|
|
type: boolean
|
|
summary:
|
|
type: string
|
|
mock:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
return_value: {}
|
|
suspend:
|
|
type: object
|
|
properties:
|
|
required_events:
|
|
type: integer
|
|
timeout:
|
|
type: integer
|
|
resume_form:
|
|
type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
user_auth_required:
|
|
type: boolean
|
|
user_groups_required:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
self_approval_disabled:
|
|
type: boolean
|
|
hide_cancel:
|
|
type: boolean
|
|
continue_on_disapprove_timeout:
|
|
type: boolean
|
|
priority:
|
|
type: number
|
|
continue_on_error:
|
|
type: boolean
|
|
retry:
|
|
$ref: "#/components/schemas/Retry"
|
|
required:
|
|
- value
|
|
- id
|
|
|
|
InputTransform:
|
|
oneOf:
|
|
- $ref: "#/components/schemas/StaticTransform"
|
|
- $ref: "#/components/schemas/JavascriptTransform"
|
|
discriminator:
|
|
propertyName: type
|
|
mapping:
|
|
static: "#/components/schemas/StaticTransform"
|
|
javascript: "#/components/schemas/JavascriptTransform"
|
|
|
|
StaticTransform:
|
|
type: object
|
|
properties:
|
|
value: {}
|
|
type:
|
|
type: string
|
|
enum:
|
|
- static
|
|
required:
|
|
- type
|
|
|
|
JavascriptTransform:
|
|
type: object
|
|
properties:
|
|
expr:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- javascript
|
|
required:
|
|
- expr
|
|
- type
|
|
|
|
FlowModuleValue:
|
|
oneOf:
|
|
- $ref: "#/components/schemas/RawScript"
|
|
- $ref: "#/components/schemas/PathScript"
|
|
- $ref: "#/components/schemas/PathFlow"
|
|
- $ref: "#/components/schemas/ForloopFlow"
|
|
- $ref: "#/components/schemas/WhileloopFlow"
|
|
- $ref: "#/components/schemas/BranchOne"
|
|
- $ref: "#/components/schemas/BranchAll"
|
|
- $ref: "#/components/schemas/Identity"
|
|
- $ref: "#/components/schemas/AiAgent"
|
|
discriminator:
|
|
propertyName: type
|
|
mapping:
|
|
rawscript: "#/components/schemas/RawScript"
|
|
script: "#/components/schemas/PathScript"
|
|
flow: "#/components/schemas/PathFlow"
|
|
forloopflow: "#/components/schemas/ForloopFlow"
|
|
whileloopflow: "#/components/schemas/WhileloopFlow"
|
|
branchone: "#/components/schemas/BranchOne"
|
|
branchall: "#/components/schemas/BranchAll"
|
|
identity: "#/components/schemas/Identity"
|
|
aiagent: "#/components/schemas/AiAgent"
|
|
|
|
RawScript:
|
|
type: object
|
|
properties:
|
|
# to be made required once migration is over
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
content:
|
|
type: string
|
|
language:
|
|
type: string
|
|
enum:
|
|
- deno
|
|
- bun
|
|
- python3
|
|
- go
|
|
- bash
|
|
- powershell
|
|
- postgresql
|
|
- mysql
|
|
- bigquery
|
|
- snowflake
|
|
- mssql
|
|
- oracledb
|
|
- graphql
|
|
- nativets
|
|
- php
|
|
# TODO: Add missing languages
|
|
path:
|
|
type: string
|
|
lock:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- rawscript
|
|
tag:
|
|
type: string
|
|
concurrent_limit:
|
|
type: number
|
|
concurrency_time_window_s:
|
|
type: number
|
|
custom_concurrency_key:
|
|
type: string
|
|
is_trigger:
|
|
type: boolean
|
|
assets:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- s3object
|
|
- resource
|
|
- ducklake
|
|
access_type:
|
|
type: string
|
|
enum: [r, w, rw]
|
|
alt_access_type:
|
|
type: string
|
|
enum: [r, w, rw]
|
|
required:
|
|
- type
|
|
- content
|
|
- language
|
|
- input_transforms
|
|
|
|
PathScript:
|
|
type: object
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
path:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- script
|
|
tag_override:
|
|
type: string
|
|
is_trigger:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
- path
|
|
- input_transforms
|
|
|
|
PathFlow:
|
|
type: object
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
path:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- flow
|
|
required:
|
|
- type
|
|
- path
|
|
- input_transforms
|
|
|
|
ForloopFlow:
|
|
type: object
|
|
properties:
|
|
modules:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowModule"
|
|
iterator:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
skip_failures:
|
|
type: boolean
|
|
type:
|
|
type: string
|
|
enum:
|
|
- forloopflow
|
|
parallel:
|
|
type: boolean
|
|
parallelism:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
required:
|
|
- modules
|
|
- iterator
|
|
- skip_failures
|
|
- type
|
|
|
|
WhileloopFlow:
|
|
type: object
|
|
properties:
|
|
modules:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowModule"
|
|
skip_failures:
|
|
type: boolean
|
|
type:
|
|
type: string
|
|
enum:
|
|
- whileloopflow
|
|
parallel:
|
|
type: boolean
|
|
parallelism:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
required:
|
|
- modules
|
|
- skip_failures
|
|
- type
|
|
|
|
BranchOne:
|
|
type: object
|
|
properties:
|
|
branches:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
expr:
|
|
type: string
|
|
modules:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowModule"
|
|
required:
|
|
- modules
|
|
- expr
|
|
default:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowModule"
|
|
required: [modules]
|
|
type:
|
|
type: string
|
|
enum:
|
|
- branchone
|
|
required:
|
|
- branches
|
|
- default
|
|
- type
|
|
|
|
BranchAll:
|
|
type: object
|
|
properties:
|
|
branches:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
skip_failure:
|
|
type: boolean
|
|
modules:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowModule"
|
|
required:
|
|
- modules
|
|
type:
|
|
type: string
|
|
enum:
|
|
- branchall
|
|
parallel:
|
|
type: boolean
|
|
required:
|
|
- branches
|
|
- type
|
|
|
|
AgentTool:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
value:
|
|
$ref: "#/components/schemas/ToolValue"
|
|
required:
|
|
- id
|
|
- value
|
|
|
|
ToolValue:
|
|
oneOf:
|
|
- $ref: "#/components/schemas/FlowModuleTool"
|
|
- $ref: "#/components/schemas/McpToolValue"
|
|
discriminator:
|
|
propertyName: tool_type
|
|
mapping:
|
|
flowmodule: "#/components/schemas/FlowModuleTool"
|
|
mcp: "#/components/schemas/McpToolValue"
|
|
|
|
FlowModuleTool:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
tool_type:
|
|
type: string
|
|
enum:
|
|
- flowmodule
|
|
required:
|
|
- tool_type
|
|
- $ref: "#/components/schemas/FlowModuleValue"
|
|
|
|
McpToolValue:
|
|
type: object
|
|
properties:
|
|
tool_type:
|
|
type: string
|
|
enum:
|
|
- mcp
|
|
resource_path:
|
|
type: string
|
|
include_tools:
|
|
type: array
|
|
items:
|
|
type: string
|
|
exclude_tools:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- tool_type
|
|
- resource_path
|
|
|
|
AiAgent:
|
|
type: object
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
tools:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AgentTool"
|
|
type:
|
|
type: string
|
|
enum:
|
|
- aiagent
|
|
parallel:
|
|
type: boolean
|
|
required:
|
|
- tools
|
|
- type
|
|
- input_transforms
|
|
|
|
Identity:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- identity
|
|
flow:
|
|
type: boolean
|
|
|
|
required:
|
|
- type
|
|
|
|
FlowStatus:
|
|
type: object
|
|
properties:
|
|
step:
|
|
type: integer
|
|
modules:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowStatusModule"
|
|
user_states:
|
|
additionalProperties: true
|
|
preprocessor_module:
|
|
allOf:
|
|
- $ref: "#/components/schemas/FlowStatusModule"
|
|
failure_module:
|
|
allOf:
|
|
- $ref: "#/components/schemas/FlowStatusModule"
|
|
- type: object
|
|
properties:
|
|
parent_module:
|
|
type: string
|
|
retry:
|
|
type: object
|
|
properties:
|
|
fail_count:
|
|
type: integer
|
|
failed_jobs:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
required:
|
|
- step
|
|
- modules
|
|
- failure_module
|
|
|
|
FlowStatusModule:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- WaitingForPriorSteps
|
|
- WaitingForEvents
|
|
- WaitingForExecutor
|
|
- InProgress
|
|
- Success
|
|
- Failure
|
|
id:
|
|
type: string
|
|
job:
|
|
type: string
|
|
format: uuid
|
|
count:
|
|
type: integer
|
|
progress:
|
|
type: integer
|
|
iterator:
|
|
type: object
|
|
properties:
|
|
index:
|
|
type: integer
|
|
itered:
|
|
type: array
|
|
items: {}
|
|
args: {}
|
|
flow_jobs:
|
|
type: array
|
|
items:
|
|
type: string
|
|
flow_jobs_success:
|
|
type: array
|
|
items:
|
|
type: boolean
|
|
flow_jobs_duration:
|
|
type: object
|
|
properties:
|
|
started_at:
|
|
type: array
|
|
items:
|
|
type: string
|
|
duration_ms:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
branch_chosen:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [branch, default]
|
|
branch:
|
|
type: integer
|
|
required:
|
|
- type
|
|
branchall:
|
|
type: object
|
|
properties:
|
|
branch:
|
|
type: integer
|
|
len:
|
|
type: integer
|
|
required:
|
|
- branch
|
|
- len
|
|
approvers:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
resume_id:
|
|
type: integer
|
|
approver:
|
|
type: string
|
|
required:
|
|
- resume_id
|
|
- approver
|
|
failed_retries:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
skipped:
|
|
type: boolean
|
|
agent_actions:
|
|
type: array
|
|
items:
|
|
type: object
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
function_name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum: [tool_call]
|
|
module_id:
|
|
type: string
|
|
required:
|
|
- job_id
|
|
- function_name
|
|
- type
|
|
- module_id
|
|
- type: object
|
|
properties:
|
|
call_id:
|
|
type: string
|
|
format: uuid
|
|
function_name:
|
|
type: string
|
|
resource_path:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum: [mcp_tool_call]
|
|
arguments:
|
|
type: object
|
|
required:
|
|
- call_id
|
|
- function_name
|
|
- resource_path
|
|
- type
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [message]
|
|
required:
|
|
- content
|
|
- type
|
|
agent_actions_success:
|
|
type: array
|
|
items:
|
|
type: boolean
|
|
required: [type]
|