Skip to main content

Changelog

See what's new with Windmill.

4/24/2024 |

Docs

The AgGrid Infinite Table component allows you to display an Ag Grid table with infinite scrolling.

New Features

  • Specific syntax to let component manage rows display.
  • Search function.

Jobs Labels

RunsScriptsFlow Editorv1.316.0

4/24/2024 |

Docs

Labels allow to add static or dynamic tags to jobs with property "wm_labels" followed by an array of strings.

New Features

  • Runs are tagged with labels.
  • Labels can be filtered from Runs menu.
  • Jobs support multiple labels.
  • In Runs menu, click on a Label to filter by it.

4/12/2024 |

Docs

AgGrid and Database Studio rows now support actions, components that will be displayed at each row of the table.

New Features

  • Support the following components:
  • Button
  • Toggle
  • Select

4/2/2024 |

Docs

When enabled, the flow will continue to the next step after going through all the retries (if any) even if this step fails.

New Features

  • The flow will continue to the next step after going through all the retries (if any) even if this step fails.
  • This enables to process the error in a branch one for instance.
  • By default, each step is set to "Stop on error and propagate error up".

4/2/2024 |

Docs

While loops execute a sequence of code indefinitely until the user cancels or a step set to Early Stop stops.

New Features

  • The loop will continue to run until canceled, either manually or with an Early Stop for step or loop.
  • Skip failure mode.
  • Test and iteration.

3/27/2024 |

Docs

Improved the experience with approval steps.

New Features

  • You can now remove the deny button from approval page to force more complex patterns using forms with enums processed in ulterior steps.
  • Now approval steps resume forms at any level will be displayed at the top-level, regardless of their depths.
  • We have updated the default template and there is a new field description to add very clear instructions which support the whole range of of rich display rendering.

3/27/2024 |

Docs

Map support in Rich Display Rendering.

New Features

  • Display a map from lat and long.
  • Marker with specific location and colors.
  • Example: `return { "map": { lat: 40, lon: 0, zoom: 3, markers: [{lat: 50.6, lon: 3.1, title: "Home", radius: 5, color: "yellow", strokeWidth: 3, strokeColor: "Black"}]}`

Markdown support in descriptions

ScriptsFlow EditorResourcesv1.298.0

3/27/2024 |

Docs

We now support GH flavored markdown for description of scripts, flows, resources.

New Features

  • Markdown support for scripts descriptions.
  • Markdown support for flows descriptions.
  • Markdown support for resources descriptions.

3/26/2024 |

Docs

You can set and retrieve a value given a key from any step of flow and it will be available from within the flow globally.

New Features

  • Set custom flow states from any step.
  • Retrieve custom flow states from any step.
  • Supported in TypeScript and Python.

3/23/2024 |

Docs

From Variables tab, admins can create custom contextual variables that will act as env variables for all jobs within a workspace.

New Features

  • Create custom contextual variables that will act as env variables for all jobs within a workspace.
  • For admins only.
  • We still recommend using user-defined variables but in some cases (e.g. your imports depend on env variables), this might be a good escape hatch.

3/23/2024 |

Docs

One of our large scale customers noticed that their database disk usage was much much higher than they anticipated. After investigation, we realized that our use of the database for streaming was very suboptimal in a few ways due to the nature of update in postgres. When you update a row in Postgres, it will actually keep the prior row as a dead tuple until it is collected. It doesn't matter in much case but it will if you're appending a few log lines to a 25MB log row, every 500ms.

We have completely refactored the way we deal with logs in major ways and starting on 1.295.0 you should feel comfortable having extremely large logs on Windmill

First action we took was to extract the logs from the queue table to a separate table. That was to avoid update unrelated to logs creating dead tuples. Second action was to make the streaming rate from the worker adaptive to the the duration of the job, a longer job does not need to update its log every 500ms, every 2.5s is reasonable for jobs of more than 10s, 5s for 60s+, etc...

But that was still not enough, even every 2.5s an update on a 25mb log would create lots of heavy dead tuples. And 25MB is not that large, our customer should feel confident streaming GBs of logs per job with jobs that run for months.

So we completely revisited the way we store logs to only treat the database as a buffer for streaming purpose rather than long term storage. We keep the db as a 5000 char buffer to still provide the same instant preview as before but

1. On EE, the logs will be streamed to S3 if you connected your instance to S3, everything is seamless and you can still download the entire log, Windmill will take care of streaming from S3

2. non EE, the excess log (>10000 chars) will be stored on disk of the worker (mount /tmp/windmill/logs to persist those).

Now the db only stores at most 5Kb of logs per job rows, reducing the pressure on it by order of magnitudes, while users can now run jobs with unlimited logs with minimal impact on the worker or db. And the logs are still as live as before

New Features

  • Logs moved to a separate table to reduce database clutter.
  • Adaptive log update frequency based on job duration to lessen database load.
  • Database used as a buffer for instant log previews, storing up to 5000 characters.
  • S3 streaming for EE users and local storage for non-EE users for extensive logs.
  • Significantly reduced database pressure, supporting unlimited log sizes with minimal impact.

3/22/2024 |

Docs

On self-hosted instances, workspaces can have names and IDs updated from the workspace settings.

New Features

  • Change name and/or ID of each workspace.
  • For admins only.

3/13/2024 |

Docs

Windmill supports many languages, but organizations usually only use a few, now you can configure the languages that are visible and their order.

New Features

  • Applies to scripts, flows and apps.
  • Global to all users within a workspace.
  • Only configurable by admins.

Workflows as Code

ScriptsFlow Editorv1.284.0

3/4/2024 |

Docs

Flows are not the only way to write distributed programs that execute distinct jobs. Another approach is to write a program that defines the jobs and their dependencies, and then execute that program. This is known as workflows as code.

New Features

  • Define workflows as code in a single script intuitive and lightweight syntax.
  • Support for Python.
  • Support for TypeScript.

2/27/2024 |

Docs

Pin database resource path directly within a SQL script instead of filling it through the UI.

New Features

  • Use "-- database resource_path" in your script.
  • Works with PostgreSQL, MySQL, BigQuery, Snowflake, MS SQL, GraphQL.

2/15/2024 |

Docs

All secrets of a workspace are encrypted with a symmetric key unique to that workspace. This key is generated when the workspace is created and is stored in the database in the workspace_settings. You can now manually update the encryption key of a workspace, it will be re-encrypted with the new key and the previous key will be replaced by the new one.

New Features

  • Manually update the encryption key of a workspace.

Flow & Metadata Copilot

Windmill AIFlow EditorScriptsv1.270.0

2/15/2024 |

Docs

The Flow & Metadata Copilot is an assistant powered by an OpenAI resource that simplifies your script & flows building experience by population fields (summaries, descriptions, step input expressions) automatically based on context and prompts.

New Features

  • Fills summary of script & flow steps.
  • Links flow step inputs to previous steps results.
  • Fills flow loops iterator expressions from context.
  • Completes branches predicate expressions from prompts.
  • Defines CRON schedules from prompts.

1/24/2024 |

Docs

If configured, users who are operators in this workspace will be redirected to this app automatically when logging into this workspace.

New Features

  • Set an app to pop up when an operator logs into the workspace.
  • Make sure the default app is shared with all the operators of this workspace before turning this feature on.

Database Studio

App EditorPostgresv1.251.1

1/23/2024 |

Docs

Introducing the Database Studio, a web-based database management tool that leverages Ag Grid for table display and interaction. In apps, interaction with database content made easy; from a SQL resource, display, edit, add rows, delete rows ... and connect to other components.

New Features

  • Display the content of a table.
  • Edit the content of a table by directly editing the cells (only when the cell is editable).
  • Add a new row.
  • Delete a row.
  • Support of Postgresql, MySql, MS Sql, BigQuery, Snowflake.

Rich results render

ScriptsFlow Editorv1.251.1

1/23/2024 |

Docs

Added rich results render for arrays of objects and markdown in scripts and flows.

New Features

  • Support for arrays of objects.
  • Download as CSV and JSON.
  • Pagination.
  • Hide/show columns.
  • Search and filter.
  • Support for markdown.

1/15/2024 |

Docs

Windmill provides a true NodeJS compatibility mode using Bun. This means that you can run your existing NodeJS code without any modifications. Only comment //nodejs on the first line of your Bun script.

New Features

  • Node.js support without any code modification.

Ag Charts

App EditorPostgresv1.239.0

1/11/2024 |

Docs

The Ag Charts component integrates the Ag Charts library, enabling the visualization of data through various chart types. This component is designed to offer a flexible and powerful way to display data graphically within the application.

New Features

  • Chart Display: Leverages the Ag Charts library to present data in a visually appealing chart format.
  • Diverse Chart Types: Supports multiple chart types including Bar, Line, Scatter, and both Area & Range Bar that are exclusive to Enterprise Edition (because Ag Charts key needed).

Decision Tree

App EditorComponentv1.227.0

12/17/2023 |

Docs

This app component allows you to create a decision tree controlled by a flow-like structure. Each node in the tree represents a decision point with a dedicated subgrid and can lead to one or more subsequent nodes based on specified conditions.

New Features

  • Each node has its dedicated container
  • Condition behavior with branches
  • Debug mode
  • setTab to override flow-like structure