<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://www.windmill.dev/changelog</id>
    <title>Windmill Blog</title>
    <updated>2026-04-13T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://www.windmill.dev/changelog"/>
    <subtitle>Windmill Blog</subtitle>
    <icon>https://www.windmill.dev/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[Automatically test scripts and flows on deploy]]></title>
        <id>https://www.windmill.dev/changelog/ci-test-scripts</id>
        <link href="https://www.windmill.dev/changelog/ci-test-scripts"/>
        <updated>2026-04-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Write test scripts that run automatically every time the script or flow they cover is deployed.]]></summary>
        <category label="Scripts" term="Scripts"/>
        <category label="Flows" term="Flows"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Reassign a user's items when removing them]]></title>
        <id>https://www.windmill.dev/changelog/user-offboarding</id>
        <link href="https://www.windmill.dev/changelog/user-offboarding"/>
        <updated>2026-04-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[When removing a user, reassign all their scripts, flows, apps, resources, schedules, and triggers to another user or folder so nothing breaks.]]></summary>
        <category label="User management" term="User management"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Unified wmill.yaml workspaces config]]></title>
        <id>https://www.windmill.dev/changelog/cli-workspaces-unification</id>
        <link href="https://www.windmill.dev/changelog/cli-workspaces-unification"/>
        <updated>2026-04-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The CLI now uses a single `workspaces` key in `wmill.yaml` instead of `gitBranches`, `environments`, and `git_branches`. Workspace names are human-friendly, `gitBranch` and `workspaceId` default to the key name, and a new `--workspace` flag selects the target. Legacy configs still work — run `wmill config migrate` to convert.]]></summary>
        <category label="wmill CLI" term="wmill CLI"/>
        <category label="Local development" term="Local development"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[DB Health Diagnostic Dashboard]]></title>
        <id>https://www.windmill.dev/changelog/db-health-dashboard</id>
        <link href="https://www.windmill.dev/changelog/db-health-dashboard"/>
        <updated>2026-03-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[New on-demand database diagnostic dashboard for superadmins. Surfaces database size, job retention health, large job results, connection pool status, vacuum/bloat stats, slow queries, and datatable sizes — all from within Instance Settings.]]></summary>
        <category label="Instance Settings" term="Instance Settings"/>
        <category label="Monitoring" term="Monitoring"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[IAM authentication for RDS PostgreSQL resources]]></title>
        <id>https://www.windmill.dev/changelog/iam-rds-auth</id>
        <link href="https://www.windmill.dev/changelog/iam-rds-auth"/>
        <updated>2026-03-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[PostgreSQL resources can now use AWS IAM authentication instead of static passwords. Workers generate short-lived tokens automatically using IRSA, EKS Pod Identity, or EC2 Instance Profiles.]]></summary>
        <category label="PostgreSQL" term="PostgreSQL"/>
        <category label="Resources" term="Resources"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Shared runners for dedicated workers]]></title>
        <id>https://www.windmill.dev/changelog/shared-runners</id>
        <link href="https://www.windmill.dev/changelog/shared-runners"/>
        <updated>2026-03-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Dedicated worker scripts sharing the same workspace dependency and language now automatically run in a single long-lived subprocess.]]></summary>
        <category label="Enterprise" term="Enterprise"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[R language support]]></title>
        <id>https://www.windmill.dev/changelog/r-language-support</id>
        <link href="https://www.windmill.dev/changelog/r-language-support"/>
        <updated>2026-03-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Windmill now supports R scripts with automatic CRAN package dependency management.]]></summary>
        <category label="R" term="R"/>
        <category label="Script editor" term="Script editor"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Workflows as code v2]]></title>
        <id>https://www.windmill.dev/changelog/workflows-as-code-v2</id>
        <link href="https://www.windmill.dev/changelog/workflows-as-code-v2"/>
        <updated>2026-03-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Workflows as code v2 introduces checkpoint-based orchestration with <code>workflow()</code>, <code>task()</code>, <code>step()</code>, <code>sleep()</code>, <code>waitForApproval()</code>, and <code>parallel()</code> primitives. The workflow fully suspends between tasks, releasing its worker slot, eliminating deadlocks and enabling unlimited parallelism on any number of workers. Also adds script modules (<code>__mod/</code> folders), CLI sync support, and a timeline UI for visualizing task execution.]]></summary>
        <category label="Script editor" term="Script editor"/>
        <category label="Flow editor" term="Flow editor"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Self-managed GitHub App support]]></title>
        <id>https://www.windmill.dev/changelog/github-enterprise-app</id>
        <link href="https://www.windmill.dev/changelog/github-enterprise-app"/>
        <updated>2026-03-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Self-managed GitHub App support for GitHub.com and GitHub Enterprise Server instances, enabling Git sync without relying on the Windmill-managed GitHub App.]]></summary>
        <category label="Git Sync" term="Git Sync"/>
        <category label="Enterprise" term="Enterprise"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Unified generate-metadata CLI command]]></title>
        <id>https://www.windmill.dev/changelog/unified-generate-metadata</id>
        <link href="https://www.windmill.dev/changelog/unified-generate-metadata"/>
        <updated>2026-03-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The new `wmill generate-metadata` command consolidates metadata and lockfile generation for scripts, flows, and apps into a single unified command. The previous commands `wmill script generate-metadata`, `wmill flow generate-locks`, and `wmill app generate-locks` are now deprecated.]]></summary>
        <category label="CLI" term="CLI"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Volumes, sandbox annotation, and AI sandbox]]></title>
        <id>https://www.windmill.dev/changelog/volumes-sandbox-annotation-ai-sandbox</id>
        <link href="https://www.windmill.dev/changelog/volumes-sandbox-annotation-ai-sandbox"/>
        <updated>2026-03-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Persistent volumes for scripts via code annotations, per-script sandbox annotation for Python and TypeScript, and AI sandbox for running coding agents with isolation and persistent state.]]></summary>
        <category label="Script editor" term="Script editor"/>
        <category label="Enterprise" term="Enterprise"/>
        <category label="Security" term="Security"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Variables and resources in flow env]]></title>
        <id>https://www.windmill.dev/changelog/flow-env-variables-resources</id>
        <link href="https://www.windmill.dev/changelog/flow-env-variables-resources"/>
        <updated>2026-03-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Flow environment variables now support resources and variables.]]></summary>
        <category label="Flow editor" term="Flow editor"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Token expiration notifications]]></title>
        <id>https://www.windmill.dev/changelog/token-expiration-notifications</id>
        <link href="https://www.windmill.dev/changelog/token-expiration-notifications"/>
        <updated>2026-03-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Windmill now monitors API token expiration and notifies owners via email 7 days before expiry and upon deletion. A new instance setting controls critical alerts for token expiry.]]></summary>
        <category label="Core" term="Core"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Private registries for npm, Maven, and Cargo]]></title>
        <id>https://www.windmill.dev/changelog/private-registries-npm-maven-cargo</id>
        <link href="https://www.windmill.dev/changelog/private-registries-npm-maven-cargo"/>
        <updated>2026-02-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Configure private package registries for npm, Maven, and Cargo from instance settings. Supports .npmrc for npm/Bun/Deno, settings.xml for Maven/Java, and config.toml for Cargo/Rust.]]></summary>
        <category label="Enterprise" term="Enterprise"/>
        <category label="Script editor" term="Script editor"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Native mode for workers]]></title>
        <id>https://www.windmill.dev/changelog/native-mode</id>
        <link href="https://www.windmill.dev/changelog/native-mode"/>
        <updated>2026-02-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[New <code>NATIVE_MODE</code> environment variable to simplify native worker configuration. When enabled, it automatically spawns 8 subworkers and restricts the worker to only accept native jobs (bunnative, nativets, SQL queries, GraphQL) and flow handling. Can be set on any worker group and toggled from the UI.]]></summary>
        <category label="Workers" term="Workers"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Infrastructure as code]]></title>
        <id>https://www.windmill.dev/changelog/infrastructure-as-code</id>
        <link href="https://www.windmill.dev/changelog/infrastructure-as-code"/>
        <updated>2026-02-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Manage Windmill instance configuration declaratively with YAML files, a Kubernetes operator, or the CLI. Version-control, review, and reproduce your setup across environments.]]></summary>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="CLI" term="CLI"/>
        <category label="Enterprise" term="Enterprise"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Native triggers]]></title>
        <id>https://www.windmill.dev/changelog/native-triggers</id>
        <link href="https://www.windmill.dev/changelog/native-triggers"/>
        <updated>2026-02-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Trigger scripts and flows in real-time from Nextcloud, Google Drive, and Google Calendar events via push notifications.]]></summary>
        <category label="Triggers" term="Triggers"/>
        <category label="Nextcloud" term="Nextcloud"/>
        <category label="Google" term="Google"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Force sandboxing]]></title>
        <id>https://www.windmill.dev/changelog/force-sandboxing</id>
        <link href="https://www.windmill.dev/changelog/force-sandboxing"/>
        <updated>2026-02-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Instance-level setting to enforce nsjail sandboxing across all jobs, and per-script <code>#sandbox</code> annotation for bash scripts.]]></summary>
        <category label="Self-hosting" term="Self-hosting"/>
        <category label="Security" term="Security"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Health endpoints]]></title>
        <id>https://www.windmill.dev/changelog/health-endpoints</id>
        <link href="https://www.windmill.dev/changelog/health-endpoints"/>
        <updated>2026-02-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Unauthenticated and authenticated health endpoints for monitoring Windmill instances. Includes Prometheus metrics, Kubernetes readiness probe support, and detailed diagnostics.]]></summary>
        <category label="Self-hosting" term="Self-hosting"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Anthropic AI improvements]]></title>
        <id>https://www.windmill.dev/changelog/anthropic-ai-improvements</id>
        <link href="https://www.windmill.dev/changelog/anthropic-ai-improvements"/>
        <updated>2026-02-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Support for 1M context window and prompt caching for Anthropic models.]]></summary>
        <category label="Windmill AI" term="Windmill AI"/>
    </entry>
</feed>