# yaml-language-server: $schema=wmill.schema.json # wmill.yaml — Windmill CLI configuration # Full reference: run "wmill config" # Default TypeScript runtime for new scripts defaultTs: bun # Glob patterns for files to include in sync includes: - "f/**" # Additional glob patterns merged with includes (useful in branch overrides) # extraIncludes: [] # Glob patterns for files to exclude from sync excludes: [] # --- What to sync ----------------------------------------------------- # "skip" options default to false (synced), "include" options default to false (not synced) # Skip syncing variables skipVariables: false # Skip syncing resources skipResources: false # Skip syncing resource types skipResourceTypes: false # Skip syncing secrets (true by default for security) skipSecrets: true # true by default — secrets are not synced for security # Skip syncing scripts skipScripts: false # Skip syncing flows skipFlows: false # Skip syncing apps skipApps: false # Skip syncing folders skipFolders: false # Skip syncing workspace dependencies skipWorkspaceDependencies: false # Uncomment to include these (excluded by default): # Include schedules in sync # includeSchedules: true # Include triggers (http, websocket, kafka, etc.) in sync # includeTriggers: true # Include workspace users in sync # includeUsers: true # Include workspace groups in sync # includeGroups: true # Include workspace settings in sync # includeSettings: true # Include encryption key in sync # includeKey: true # --- Sync behavior ---------------------------------------------------- # Number of parallel operations during sync # parallel: 4 # Require lock files for all scripts # locksRequired: true # Run linting before push # lint: true # Handle secrets as plain text (not recommended) # plainSecrets: false # Default commit message for sync operations # message: "my commit message" # Branch name to use promotion overrides from during sync # promotion: staging # Skip validation that current git branch matches a configured branch # skipBranchValidation: false # Use __flow/__app/__raw_app suffixes instead of .flow/.app/.raw_app nonDottedPaths: true # --- Codebase bundling (shared libraries) ----------------------------- # Bundle TypeScript/JavaScript codebases that scripts import from. # Each entry is bundled and uploaded so scripts can import shared code. # Codebase bundling configurations for shared libraries codebases: [] # codebases: # - relative_path: ./shared # path to the codebase # includes: ["**/*.ts"] # files to include in bundle # excludes: ["node_modules/**"] # files to exclude # format: esm # bundle format: "cjs" or "esm" # external: ["pg", "axios"] # dependencies to leave unbundled # assets: # static files to copy into bundle # - from: ./static # to: ./dist # # customBundler: ./build.ts # custom bundler script (replaces esbuild) # # inject: ["./polyfills.ts"] # files to inject into every entry point # # define: # compile-time constants # # API_URL: '"https://api.example.com"' # # banner: # text prepended to output files # # js: "/* bundled by windmill */" # # loader: # esbuild loader overrides # # ".png": "dataurl" # --- Git branch / environment bindings -------------------------------- # Map git branches to Windmill workspaces and override settings per branch. # Use "environments" as an alias if you prefer environment-based terminology. # Map git branches to workspaces and per-branch sync overrides gitBranches: main: overrides: {} # baseUrl: https://app.windmill.dev # Windmill instance URL for this branch # workspaceId: my-workspace # workspace to sync with # promotionOverrides: # overrides applied during --promotion # skipSecrets: false # specificItems: # only sync these specific items # variables: ["f/my_folder/my_var"] # resources: ["f/my_folder/my_res"] # triggers: ["f/my_folder/my_trigger"] # folders: ["my_folder"] # settings: true # Example: staging branch bound to a different workspace # staging: # baseUrl: https://staging.windmill.dev # workspaceId: staging-workspace # overrides: # skipSecrets: false # includeSchedules: true # Items shared across ALL branches # commonSpecificItems: # variables: ["f/shared/api_key"] # resources: ["f/shared/db_conn"] # folders: ["shared"] # Alias for gitBranches — use if you prefer environment-based terminology # environments: {}