You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/code_editor/assistants.mdx
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -10,17 +10,17 @@ The code assistants in Windmill are integrated into the Monaco code editor. Wind
10
10
11
11
Here's an overview of how the code assistants work:
12
12
13
-
1. Language Server Protocol (LSP): Windmill utilizes the Language Server Protocol, a standardized protocol for communication between code editors and language servers.
13
+
1.**Language Server Protocol (LSP)**: Windmill utilizes the Language Server Protocol, a standardized protocol for communication between code editors and language servers.
14
14
15
-
2. Language Servers: For each supported programming language, Windmill employs dedicated language servers responsible for providing code assistance and language-specific functionality. The following language servers are used by Windmill for each language:
15
+
2.**Language Servers**: For each supported programming language, Windmill employs dedicated language servers responsible for providing code assistance and language-specific functionality. The following language servers are used by Windmill for each language:
16
16
17
17
- Deno: Deno LSP
18
18
- Python: Ruff, Black, Pyright
19
19
- Bash: shellcheck
20
20
- Go: Go LSP
21
21
22
-
3. WebSocket Communication: The language servers communicate with the Windmill backend through websockets, enabling real-time exchange of information between the code editor and the language servers.
22
+
3.**WebSocket Communication**: The language servers communicate with the Windmill backend through websockets, enabling real-time exchange of information between the code editor and the language servers.
23
23
24
-
4. Calculations and Suggestions: As developers write code in the Windmill editor, the language servers process the code, perform calculations, and provide relevant suggestions. These suggestions can include auto-completion, syntax highlighting, linting errors, formatting options, and more.
24
+
4.**Calculations and Suggestions**: As developers write code in the Windmill editor, the language servers process the code, perform calculations, and provide relevant suggestions. These suggestions can include auto-completion, syntax highlighting, linting errors, formatting options, and more.
25
25
26
26
By integrating these code assistants, Windmill enhances the development workflow, enabling developers to write code more efficiently, identify and correct errors, and adhere to best practices specific to each programming language.
Copy file name to clipboardExpand all lines: docs/code_editor/parameter_inference.mdx
+9-1Lines changed: 9 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,18 @@ import DocCard from '@site/src/components/DocCard';
2
2
3
3
# Parameter Inference
4
4
5
-
Windmill ensures that the parameters passed to scripts, flows, and resources match the expected format and type. This mechanism relies heavily on JSON Schema, a standard used to define the structure and validation rules of JSON data.
5
+
Windmill ensures that the parameters passed to scripts, flows, and resources match the expected format and type. This mechanism relies heavily on [JSON Schema](../core_concepts/13_json_schema_and_parsing/index.md), a standard used to define the structure and validation rules of JSON data.
6
6
7
7
As you write your scripts or define flows and resource types in Windmill code editor, JSON Schema is used behind the scenes to construct a comprehensive specification of the expected input parameters. This specification not only defines the types of each parameter but also provides descriptions and sets out any constraints that might apply, such as which parameters are mandatory.
Copy file name to clipboardExpand all lines: docs/core_concepts/22_ai_generation/index.md
+23-1Lines changed: 23 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -30,10 +30,32 @@ Code generation on Windmill from OpenAI only works on GPT-4 so far.
30
30
31
31
:::
32
32
33
-
Then from a code editor (Script, Flow, Apps), click on `AI Gen` and write with a prompt what the script should do. The script will use Windmill's main requirements and features (exposing a main function, importing libraries, using resource types, declaring required parameters with types, leveraging database schema).
33
+
Then from a [code editor](../../code_editor/index.mdx) (Script, Flow, Apps), click on `AI Gen` and write with a prompt what the script should do. The script will use Windmill's main requirements and features (exposing a main function, importing libraries, using resource types, declaring required parameters with types, leveraging database schema).
When in the [code editor](../../code_editor/index.mdx), select the code section you want to edit and the "AI Gen" button will turn into "AI Edit", letting you enter instructions for the AI Assistant.
40
+
41
+
You will then be offered to accept or decline the suggested code.
Upon error when executing code, you will be offered to "AI Fix" it. The assistant will automatically read the code, explain what went wrong, and suggest a way to fix it.
[Codeium](https://codeium.com/) is a code acceleration toolkit built on AI technology. In particular, Codeium has a free [browser extension](https://codeium.com/download) that works as a code completion assistant.
Windmill is an **<ahref="https://github.com/windmill-labs/windmill" >open-source</a>**, blazing fast and scalable alternative to Retool, Airplane, Superblocks, n8n, Airflow, Temporal to **build all your internal tools (endpoints, workflows, UIs) through the combination of code** (in Typescript, Python, Go, Bash, SQL or any docker image) and low code builders. It embeds all-in-one:
7
7
8
-
- an **execution runtime** to execute functions at scale with low-latency and no overhead on a fleet of workers
9
-
- an **orchestrator** to compose functions into powerful flows at low-latency built with a low-code builder (or yaml if that's your thing)
10
-
- an **app builder** to build application and data-intensive dashboards built with low-code or JS frameworks such a React.
8
+
- an [execution runtime](./getting_started/0_scripts_quickstart/index.mdx) to execute functions at scale with low-latency and no overhead on a fleet of workers
9
+
- an [orchestrator](./getting_started/6_flows_quickstart/index.mdx) to compose functions into powerful flows at low-latency built with a low-code builder (or yaml if that's your thing)
10
+
- an [app builder](./getting_started/7_apps_quickstart/index.mdx) to build application and data-intensive dashboards built with low-code or JS frameworks such a React.
11
11
12
12
Windmill can be used solely from its UI through its [webIDE](./getting_started/0_scripts_quickstart/1_typescript_quickstart/index.mdx), and low-code builders but it is also possible to keep using your editor and deploy from a [git repo](./advanced/9_deploy_gh_gl/index.md) using a [CLI](./cli_local_dev/index.md).
'Easily recover from errors and continue your flow or log the error on Slack, Discord, etc.',
68
-
icon: Bug,
69
-
caption: <div>Easily <ahref="/docs/flows/error_handling"target="_blank">recover from errors</a> and continue your flow or log the error on Slack, Discord, etc.</div>,
70
-
video: {
71
-
videoSrc: '/videos/error_handler.mp4',
72
-
altText: 'Branching logic',
73
-
videoLength: '33'
74
-
}
75
-
}
76
72
]
77
73
},
78
74
{
@@ -100,72 +96,122 @@ const tabs = [
100
96
caption: 'Resume Workflows with secret webhooks.',
101
97
imageSrc: '/images/page_arguments.png.webp',
102
98
altText: 'Resume with webhooks'
99
+
},
100
+
{
101
+
title: 'Sleeps / Delays',
102
+
description:
103
+
'Executions within a flow can be suspended for a given time.',
104
+
icon: BedIcon,
105
+
caption: <div>Executions within a flow can be <ahref="/docs/flows/sleep"target="_blank">suspended</a> for a given time.</div>,
106
+
video: {
107
+
videoSrc: '/videos/sleep_step.mp4',
108
+
altText: 'Sleep / Delay',
109
+
}
103
110
}
104
111
]
105
112
},
106
113
{
107
-
label: 'Retries & Cache',
108
-
icon: Repeat,
109
-
id: 'retries',
114
+
label: 'Error Handling',
115
+
icon: ServerCrashIcon,
116
+
id: 'error-handling',
110
117
data: [
111
118
{
112
-
title: 'Customize number of retries for each individual step',
119
+
title: 'Error Handler',
120
+
description:
121
+
'Easily recover from errors and continue your flow or log the error on Slack, Discord, etc.',
122
+
icon: Bug,
123
+
caption: <div>Easily <ahref="/docs/flows/error_handling"target="_blank">recover from errors</a> and continue your flow or log the error on Slack, Discord, etc.</div>,
124
+
video: {
125
+
videoSrc: '/videos/error_handler.mp4',
126
+
altText: 'Branching logic',
127
+
}
128
+
},
129
+
{
130
+
title: 'Retry',
113
131
description:
114
132
'Automatically retry failed steps. Customize the number of retries for each individual step.',
caption: <div><ahref="/docs/flows/cache"target="_blank">Cache the results of a step</a>for a given time.</div>,
143
+
'Define a predicate expression that determines whether the flow should stop early at the end of a step.',
144
+
icon: OctagonIcon,
145
+
caption: <div>Define a predicate expression that determines whether the flow should <ahref="/docs/flows/early_stop"target="_blank">stop early</a>at the end of a step.</div>,
129
146
video: {
130
-
videoSrc: '/videos/cache_for_steps.mp4',
131
-
videoLength: '15',
132
-
altText: 'Customize number of retries'
147
+
videoSrc: '/videos/early_stop.mp4',
148
+
altText: 'Early Stop / Break.'
133
149
}
134
-
}
135
-
]
136
-
},
137
-
/*
138
-
{
139
-
label: 'Hub scripts',
140
-
icon: Globe,
141
-
id: 'hub-scripts',
142
-
data: [
150
+
},
143
151
{
144
-
title: 'Short video of usig a script from the hub',
152
+
title: 'Custom Timeout for Step',
145
153
description:
146
-
'Automatically retry failed steps. Customize the number of retries for each individual step.',
147
-
icon: Code,
148
-
caption: '',
149
-
imageSrc: ''
150
-
}
154
+
'For each step can be defined a timeout. If the execution takes longer than the time limit, the execution of the step will be interrupted.',
155
+
icon: TimerOffIcon,
156
+
caption: <div>For each step can be defined a <ahref="/docs/flows/custom_timeout"target="_blank">timeout</a>. If the execution takes longer than the time limit, the execution of the step will be interrupted.</div>,
157
+
video: {
158
+
videoSrc: '/videos/custom_timeout.mp4',
159
+
altText: 'Custom Timeout for Step'
160
+
}
161
+
},
151
162
]
152
163
},
153
164
{
154
-
label: 'ETL/Data processing',
155
-
icon: Database,
156
-
id: 'etl-data-processing',
165
+
label: 'Integrations',
166
+
icon: ToyBrickIcon,
167
+
id: 'retries',
157
168
data: [
158
169
{
159
-
title: 'Shared folder between folders to write and read heavy data',
170
+
title: 'Connect third-party services',
160
171
description:
161
-
'Automatically retry failed steps. Customize the number of retries for each individual step.',
172
+
'Connect data providers & external APIs together.',
173
+
icon: ToyBrickIcon,
174
+
caption: <div>Connect data providers &<ahref="/docs/integrations/integrations_on_windmill"target="_blank">external APIs</a> together.</div>,
175
+
video: {
176
+
videoSrc: '/videos/flow_integrations.mp4',
177
+
videoLength: '29',
178
+
altText: 'Connect third-party services.'
179
+
}
180
+
},
181
+
{
182
+
title: 'Cache results of steps',
183
+
description:
184
+
'Cache the results of a step for a given time to limit useless calls to external APIs.',
162
185
icon: Database,
163
-
caption: '',
164
-
imageSrc: ''
165
-
}
186
+
caption: <div><ahref="/docs/flows/cache"target="_blank">Cache the results of a step</a> for a given time.</div>,
187
+
video: {
188
+
videoSrc: '/videos/cache_for_steps.mp4',
189
+
videoLength: '15',
190
+
altText: 'Cache results of steps'
191
+
}
192
+
},
193
+
{
194
+
title: 'Step Mocking',
195
+
description:
196
+
'When a step is mocked, it will immediately return the mocked value without performing any computation.',
197
+
icon: Voicemail,
198
+
caption: <div>When a step is <ahref="/docs/flows/step_mocking"target="_blank">mocked</a>, it will immediately return the mocked value without performing any computation.</div>,
199
+
video: {
200
+
videoSrc: '/videos/step_mocking.mp4',
201
+
videoLength: '15',
202
+
altText: 'Step Mocking'
203
+
}
204
+
},
205
+
{
206
+
title: 'Concurrency Limits',
207
+
description:
208
+
'Define concurrency limits for inline scripts to prevent exceeding the API Limit of the targeted API.',
209
+
icon: InfinityIcon,
210
+
caption: <div>Define <ahref="/docs/flows/concurrency_limit"target="_blank">concurrency limits</a> for inline scripts to prevent exceeding the API Limit of the targeted API.</div>,
211
+
imageSrc: '/images/concurrency_limit_flow.png',
212
+
},
166
213
]
167
214
},
168
-
*/
169
215
{
170
216
label: 'Multiple Triggers',
171
217
icon: Play,
@@ -183,9 +229,9 @@ const tabs = [
183
229
184
230
{
185
231
title: 'UI',
186
-
description: 'You can directly trigger a script using the autogenerated UI.',
232
+
description: 'You can directly trigger a flow using the autogenerated UI or Windmill Apps.',
187
233
icon: FormInput,
188
-
caption: <div>You can directly trigger a flow using the <ahref="/docs/core_concepts/auto_generated_uis"target="_blank">autogenerated UI</a>.</div>,
234
+
caption: <div>You can directly trigger a flow using the <ahref="/docs/core_concepts/auto_generated_uis"target="_blank">autogenerated UI</a> or <ahref="/docs/getting_started/apps_quickstart"target="_blank">Windmill Apps</a>.</div>,
0 commit comments