Skip to main content

Enterprise onboarding

Welcome to Windmill Enterprise Edition. This guide provides essential setup information and best practices for new enterprise customers.

Getting started

Container images

Switch your container images from windmill to windmill-ee for both servers and workers to enable Enterprise features.

For Docker Compose deployments:

# Example docker-compose.yml
image: ghcr.io/windmill-labs/windmill-ee:latest

For Kubernetes deployments (recommended for serious deployments), this is done automatically when you enable enterprise in your Helm chart values.yaml:

enterprise:
enabled: true

License key

Your license key is valid for 35 days and auto-renews daily as long as your subscription is active. You can use the same license key across multiple instances (production, staging, development).

Mark non-production instances appropriately in Instance settings so their compute usage isn't counted toward your subscription limits. For dev instances, you can also generate a development license key from the Customer Portal.

Security & compliance

Windmill is SOC 2 Type II compliant. You can download the SOC 2 report from the Customer Portal once your subscription is active.

We prioritize security vulnerabilities and address them promptly. For scanning your own environment, set up container scanning in your CI/CD pipeline.

Authentication

Configure SSO/SAML for user management and authentication. Windmill supports multiple identity providers including Google, Microsoft, Okta, GitHub, GitLab, and custom SAML providers.

SAML includes group synchronization capabilities to automatically manage user permissions based on your identity provider groups.

Note: Windmill Pro is limited to a maximum of 10 users with SSO.

Audit logs

Windmill provides comprehensive audit logs for every operation with side-effects. Track user actions, filter by date, username, action type, and operation.

On Enterprise plans, audit logs are retained with unlimited duration. Logs are stored in Postgres and optionally in object storage for long-term archival.

Note: Audit logs are not available in Windmill Pro.

Infrastructure & operations

Object storage

Workspace object storage

Connect your workspace to S3, Azure Blob Storage, or Google Cloud Storage to enable users to read and write files without direct credential access. Windmill automatically tracks data flows through the Assets feature.

Instance object storage

Configure dedicated S3 storage for large-scale log management and distributed dependency caching across all workers. This significantly improves cold start performance by sharing dependency caches across your worker pool.

Note: Distributed dependency cache backed by S3 is not available in Windmill Pro.

DuckLake + DuckDB for ETL

Ducklake allows you to store massive amounts of data in S3 and query it efficiently using DuckDB with natural SQL language. This is ideal for ETL workloads, data analytics, and large-scale data processing.

With Ducklake, you can:

  • Store data lakes in S3 with efficient columnar format
  • Query data directly from S3 using DuckDB
  • Build data pipelines and transformations with SQL
  • Integrate with Windmill's workflow orchestration for complex ETL jobs

Workers and scaling

Worker configuration

Workers execute one job at a time to use full resources efficiently. Each worker can execute up to 26 million jobs per month if each job lasts 100ms.

Configure worker groups to assign specific jobs to workers with different specifications (GPU, high memory, etc.). Set init scripts and periodic scripts for custom worker configurations.

Make sure your worker setup complies with your subscription limits.

Autoscaling

Configure autoscaling to automatically adjust the number of workers based on workload. Set minimum and maximum workers, and integrate with Kubernetes, ECS, or custom orchestrators.

With autoscaling, worker uptime is measured with minute-level granularity - 10 workers at 2GB for 1/10th of the month costs the same as 1 worker for the full month.

Private registries and dependencies

Private npm and PyPI packages

Configure custom registries for private dependencies. Set environment variables on workers to use private npm registries or PyPI repositories.

Air-gapped environments

For environments without internet access, we provide extended license keys (e.g., 2-month validity) with manual renewal.

Share telemetry manually on a regular basis (typically monthly). The telemetry endpoint is: http://stats.windmill.dev/

Contact us to arrange air-gapped deployment and extended license keys.

Performance benchmarks

Windmill is designed for high performance and scale. Each worker executes one job at a time using full CPU and memory resources.

Actual capacity depends on your job complexity, number, and duration. Workers are extremely efficient for short-running jobs.

Development workflow

Version control with Git sync

Git sync allows your workspace to synchronize with a Git repository for version control of scripts, flows, and apps. This is one of the most commonly requested features for enterprise customers.

Common setup recommendations

We strongly recommend configuring these features for production deployments:

  1. SSO/SAML - Centralized user authentication and management
  2. Workspace object storage - S3 or Azure Blob integration for large data files
  3. Instance object storage - Distributed dependency caching and large-scale log management
  4. Git sync - Version control for scripts, flows, and apps
  5. Worker groups - Dedicated workers for different workload types
  6. Autoscaling - Automatic worker scaling based on demand

Billing

All of our pricing is transparent. It is based on the number of Compute Units you use, and the number of active Seats you have.

Compute Units

A Compute Unit (CU) = 2 worker-GB-month.

  • Standard worker (2GB memory) = 1 CU
  • Large workers (>2GB memory) = 2 CU (capped on self-hosted)
  • 8 native workers = 1 CU

Minimum recommended setup: 3 CUs (2 standard workers at 2GB each + 8 native workers)

Note: Windmill Pro is limited to a maximum of 10 Compute Units.

You can adjust your subscription anytime via the Customer Portal with prorated billing.

Seats

A Seat is a user who is active on the platform. A regular user counts as one Seat, while an operator (who can only execute scripts, flows, and apps) counts as half a Seat. We only count active users, i.e. users who have logged in to the platform in the last 30 days according to the audit logs. Seats are counted across all instances (dev, prod) but Windmill only counts once the same user.

Telemetry and usage tracking

On self-hosted instances, Windmill does not deal with any customer data. Just some lightweight telemetry is collected:

  • version of the instances
  • instance base URL
  • job usage (language, total duration, count)
  • login type usage (login type, count)
  • worker usage (worker, worker instance, vCPUs, memory)
  • user usage (author count, operator count)
  • superadmin email address
  • vCPU usage
  • memory usage
  • development instance status

This telemetry is collected automatically and is used to track usage and billing. The telemetry endpoint is stats.windmill.dev. Mark dev/staging instances as "Non-prod" in Instance settings so they don't count toward compute usage.

You can manually send usage from Instance settings > Telemetry > "Send usage" and check how it converts into Compute Units from the Customer Portal ('Last report').

License key management

If usage exceeds your subscription terms, we'll notify you and provide 35 days to adjust before the key stops auto-renewing. You have three options:

  1. Clarify if telemetry is inaccurate
  2. Adjust your usage
  3. Upgrade your subscription

Customer Portal

Access portal.windmill.dev to:

  • Monitor usage and Compute Units
  • Update subscriptions with prorated billing
  • Manage invoices and payment methods
  • Download SOC 2 report
  • Adjust Seats and Compute Units
  • Create private issues and feature requests and follow their status
  • Grant portal access to team members via 'Contact emails'

License terms

Our license terms are available for self-hosted instances. By using the license key, you agree to the terms in effect at the time of first use. We will notify you if any significant changes are made to the terms. Contact us if you have questions or requests regarding the license terms.

Support & communication

Enterprise customers get access to dedicated support channels via Slack or Discord. Our team provides 24/7 support with a 3-hour SLA response time and direct engineer assistance.

If it hasn't been set up yet, you can request access to the dedicated Slack or Discord channel by contacting us at [email protected].

Note: Windmill Pro customers receive support via email with a 48-hour response time. Dedicated Slack or Discord channels are not available for Pro plans.

Getting help

If you have questions or need assistance:

  • Dedicated channel: Your private Slack or Discord channel
  • Create a private issue through the Customer Portal: Customer Portal > Issues
  • Email: [email protected]
  • Book a call: upon request
  • Documentation: Search our comprehensive docs for guides and references

We're here to ensure your success with Windmill. Don't hesitate to reach out with questions, feedback, or feature requests.

Design partner opportunities

As an Enterprise customer, you're a design partner for our roadmap. We value your feedback on features, use cases, and product direction.

Share your requirements and suggestions via your dedicated support channel or directly with our team.