Skip to main content

Settings

Each script has settings associated with it, enabling it to be defined and configured in depth.

Script settings

Metadata

Metadata is used to define the script's path, summary, description, language and kind.

Summary

Summary (optional) is a short, human-readable summary of the Script. It will be displayed as a title across Windmill. If omitted, the UI will use the path by default.

It can be pre-filled automatically using Windmill AI:

Path

Path is the Script's unique identifier that consists of the script's owner, and the script's name. The owner can be either a user, or a group of users (folder).

Description

This is where you can give instructions to users on how to run your Script. It supports markdown.

Language

Language of the script. Windmill supports:

You can configure the languages that are visible and their order.

The setting applies to scripts, flows and apps and is global to all users within a workspace but only configurable by admins.

Configurable Default Languages

Script kind

You can attach additional functionalities to Scripts by specializing them into specific Script kinds (Actions, Trigger, Approval, Error handler).

Runtime

Runtime settings allow you to configure how your script is executed.

Script runtime

Concurrency limits

The Concurrency limit feature allows you to define concurrency limits for scripts and inline scripts within flows.

Worker group tag

Scripts can be assigned custom worker groups for efficient execution on different machines with varying specifications.

For scripts saved on the script editor, select the corresponding worker group tag in the settings section.

Worker group tag

Cache

Caching a script step means caching the results for a certain duration. If the script is triggered with the same inputs during the given duration, it will return the cached result.

Timeout

Add a custom timeout for this script, for a given duration.

If enabled to execution will be stopped after the timeout.

Perpetual script

Perpetual scripts restart upon ending unless canceled.


Dedicated workers

In this mode, the script is meant to be run on dedicated workers that run the script at native speed. Can reach >1500rps per dedicated worker. Only available on enterprise edition and for Python3, Deno and Bun. For other languages, the efficiency is already on par with deidcated workers since they do not spawn a full runtime.

Delete after use

Delete logs, arguments and results after use.

warning

This settings ONLY applies to synchronous webhooks or when the script is used within a flow. If used individually, this script must be triggered using a synchronous endpoint to have the desired effect.


The logs, arguments and results of the job will be completely deleted from Windmill once it is complete and the result has been returned.


The deletion is irreversible.

High priority script

Jobs within a same job queue can be given a priority between 1 and 100. Jobs with a higher priority value will be given precedence over jobs with a lower priority value in the job queue.

Runs visibility

When this option is enabled, manual executions of this script are invisible to users other than the user running it, including the owner(s). This setting can be overridden when this script is run manually from the advanced menu (available when the script is deployed).

Generated UI

main function's arguments can be given advanced settings that will affect the inputs' auto-generated UI and JSON Schema.

Here is an example on how to define a Python list as an enum of strings using the Generated UI menu.


Triggers

Triggers allow you to automate the execution of your scripts based on various events or conditions.

Script triggers

Webhooks

Each Script and Flow created in Windmill gets autogenerated webhooks. The webhooks depend on how they are triggered, and what their return values are.

Schedules

Schedules let you run your script at specified intervals or times, perfect for recurring tasks or periodic data updates.

Routes

Windmill supports custom HTTP routes to trigger a script or flow.

Websocket

Windmill can connect to websocket servers and trigger runnables (scripts, flows) when a message is received.

Kafka

Windmill can connect to Kafka brokers and trigger scripts or flows when messages are received on specific topics. This enables real-time processing of events from your Kafka ecosystem.

Email

Scripts and flows can be triggered by email messages sent to a specific email address, leveraging SMTP.