Skip to main content

Core Concepts

On top of its editors to build endpoints, flows and apps, Windmill comes with a set of features.

Windmill Features

Auto-generated UIs
Windmill creates auto-generated user interfaces for scripts and flows based on their parameters.
Windmill AI
Have AI complete code on Windmill.
JSON Schema and Parsing
JSON Schemas are used for defining the input specification for scripts and flows, and specifying resource types.
Dependency Management & Imports
Windmill's strength lies in its ability to run scripts without having to deal with separate dependency files.
Instant Preview & Testing
Windmill allows users to see and test what they are building directly from the editor, even before deployment.
Persistent Storage
Ensure that your data is safely stored and easily accessible whenever required.
Roles and Permissions
Control access and manage permissions within your instance and workspaces.
Windmill provides flexible authentication options to ensure secure access to the platform.
Error Handling
There are 5 ways to do error handling in Windmill.
Collaboration in Windmill
Collaboration in Windmill is simplified through various features and workflows.
Scheduling allows you to define schedules for Scripts and Flows, automatically running them at set frequencies.
Monitor Past and Future Runs
Get an aggregated view of past and future runs on your workspace.
Trigger scripts and flows from webhooks.
Variables and Secrets
Variables and Secrets are encrypted, dynamic values used for reusing information and securely passing sensitive data within scripts.
Resources and Resource Types
Resources are structured configurations and connections to third-party systems, with Resource Types defining the schema for each Resource.
Groups and Folders
Groups and Folders enable efficient permission management by grouping users with similar access levels.
Workers and Worker Groups
Worker Groups allow users to run scripts and flows on different machines with varying specifications.
Caching is used to cache the results of a script, flow, flow step or app inline scripts for a specified number of seconds.
A job represents a past, present or future `task` or `work` to be executed by a worker.
Workspace Secret Encryption
When updating the encryption key of a workspace, all secrets will be re-encrypted with the new key and the previous key will be replaced by the new one.
Draft and Deploy
Develop and cooperate in a structured way.
Handling Files and Binary Data
In Windmill, JSON is the primary data format used for representing information. When working with binary data, such as files, they are represented as Base64 encoded strings.
Rich Display Rendering
The result renderer in Windmill supports rich display rendering, allowing you to customize the display format of your results.

Windmill for Developers

Code Editor-Specific Features

Script-Specific Features

All details on Scripts can be found in the Script section.

Flow-Specific Features

All details on Flows can be found in the Flows section.

Triggering Flows
Trigger flows on-demand, by schedule or on external events.
Testing Flows
Iterate quickly and get control on your flow testing.
AI-Generated Flows
Generate flows from prompts.
Split the execution of the flow based on a condition.
For loops
Iterate a series of tasks.
Error Handler
Configure a script to handle errors.
Trigger Scripts
Trigger scripts are designed to pull data from an external source and return all of the new items since the last run, without resorting to external webhooks.
Re-try a step in case of error.
Concurrency Limits
The Concurrency Limit feature allows you to define concurrency limits for scripts and inline scripts within flows.
Custom Timeout for Step
If the execution takes longer than the time limit, the execution of the step will be interrupted.
Priority for Steps
Prioritize a flow step in the execution queue.
Lifetime / Delete after Use
The logs, arguments and results of this flow step will be completely deleted from Windmill once the flow is complete.
Cache for Steps
Re-use a step's previous results.
Early Stop / Break
Suspend executions within a flow for a specified time.
Early Return
Define a node at which the flow will return at for sync endpoints. The rest of the flow will continue asynchronously.
Suspend & Approval / Prompts
Suspend a flow until specific event(s) are received, such as approvals or cancellations.
Sleep / Delays in Flows
Stop early a flow based on a step's result.
Step Mocking
When a step is mocked, it will immediately return the mocked value without performing any computation.

App-Specific Features

All details on Apps can be found in the Apps section.

Enterprise & Cloud Features

All details & features on Pricing page.

Support & SLA
Our SLAs are designed to provide timely assistance and address any issues.
Audit Logs
Windmill provides audit logs for every operation and action that has side-effects.
Deploy to Staging/Prod Web UI
Deploy items to another staging/prod workspace.
Git Sync
Connect the Windmill workspace to a Git repository to automatically commit and push scripts, flows and apps to the repository on each deploy.
Worker Groups Management UI
Manage Worker Groups through Windmill UI.
Concurrency Limits
The Concurrency Limits feature allows you to define concurrency limits for scripts, flows and inline scripts within flows.
S3 Distributed Dependency Cache
Leverage a global S3 cache to speed up Python dependency handling by storing and reusing pre-installed package.
OpenID Connect (OIDC)
Use Windmill's OIDC provider to authenticate from scripts to cloud providers and other APIs.
Configure Okta for both SAML and SCIM.
Dedicated Workers / High Throughput
Dedicated Workers are workers that are dedicated to a particular script.
Agent Workers
Agent Workers are a 4th mode of execution of the Windmill binary, but instead of using MODE=worker, we use here MODE=agent.
Content Search
Search any scripts, flows, resources, apps for a specific string similar to GitHub search.
CSS Editor
The Global CSS Editor is designed to give styling and theming across your entire app.
Collaborate on scripts simultaneously.
Workspace Default App
If configured, users who are operators in this workspace will be redirected to this app automatically when logging into this workspace.