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.
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 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.
AI Generation
Have AI complete code on Windmill.
Roles and Permissions
Control access and manage permissions within your instance and workspaces.
Authentification
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
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.
Webhooks
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.
Jobs
A job represents a past, present or future `task` or `work` to be executed by a worker.
Concurrency Limits
The Concurrency Limits feature allows you to define concurrency limits for scripts, flows and inline scripts within flows.
Caching in Windmill
Caching is used to cache the results of a script, flow, flow step or app inline scripts for a specified number of seconds.
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.
Enterprise & Team Features
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.
Dedicated Workers / Native Performance
Dedicated Workers are workers that are dedicated to a particular script.
Worker Groups Management UI
Manage Worker Groups through Windmill UI.
Deploy to staging/prod web UI
Deploy items to another staging/prod workspace.
CSS Editor
The Global CSS Editor is designed to give styling and theming across your entire app.
Multiplayer
Collaborate on scripts simultaneously.
SAML & SCIM
Configure Okta for both SAML and SCIM.
Script-Specific Features
All details on Scripts can be found in the Script section.
Script Kinds
You can attach additional functionalities to Scripts by specializing them into specific Script kinds.
Customize UI
Some arguments' types can be given advanced settings that will affect the inputs' auto-generated UI and JSON Schema.
Versioning
Windmill creates auto-generated user interfaces for scripts and flows based on their parameters.
Worker Group Tag
Scripts can be assigned custom worker groups for efficient execution on different machines with varying specifications.
Concurrency Limit
The Concurrency Limit feature allows you to define concurrency limits for scripts and inline scripts within flows.
Multiplayer
The Multiplayer feature allows you to collaborate with team members on scripts simultaneously.
Write Scripts on VSCode
The Windmill VSCode extension allows you to run your scripts and preview the output within VSCode.
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.
Branches
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 flows upon a given event with a dedicated trigger script.
Retries
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.
Cache for Steps
Re-use a step's previous results.
Step Mocking
When a step is mocked, it will immediately return the mocked value without performing any computation.
Early Stop / Break
Suspend executions within a flow for a specified time.
Approval Steps in Flows
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.
Custom Timeout for Step
If the execution takes longer than the time limit, the execution of the step will be interrupted.
App-Specific Features
All details on Apps can be found in the Apps section.
List of Components
Use prebuilt interface elements to display data, and manipulate or interact with it based on user actions.
Link your App to scripts and flows
Run any script or flow for your UI.
Group of Components
Components can be grouped within containers.
Styling
Customize the styling of your App according to your own graphical standards.
Public Apps
Apps can be accessed as a standalone app by anyone who has the secret URL