Files
windmill/cli/wmill.schema.json
T
hugocasaandClaude Opus 5.5 9b46b21f51 feat(cli): include extra paths in codebase digest for monorepo imports (#11327)
* feat(cli): hash codebase extra_digest_paths and warn on uncovered bundle inputs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(cli): cache codebase digest only once complete, skip entry in warning

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(cli): accept string extra_digest_paths, always print uncovered-input warning

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(cli): clarify extra_digest_paths resolution and missing-path error

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 14:54:13 +02:00

577 lines
18 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "wmill.yaml",
"description": "Windmill CLI configuration file. Full reference: wmill config",
"type": "object",
"properties": {
"defaultTs": {
"type": "string",
"enum": [
"bun",
"deno"
],
"description": "Default TypeScript runtime for new scripts"
},
"includes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Glob patterns for files to include in sync"
},
"extraIncludes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional glob patterns merged with includes (useful in workspace overrides)"
},
"excludes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Glob patterns for files to exclude from sync"
},
"skipVariables": {
"type": "boolean",
"description": "Skip syncing variables"
},
"skipResources": {
"type": "boolean",
"description": "Skip syncing resources"
},
"skipResourceTypes": {
"type": "boolean",
"description": "Skip syncing resource types"
},
"skipSecrets": {
"type": "boolean",
"description": "Skip syncing secrets (true by default for security)"
},
"skipScripts": {
"type": "boolean",
"description": "Skip syncing scripts"
},
"skipFlows": {
"type": "boolean",
"description": "Skip syncing flows"
},
"skipApps": {
"type": "boolean",
"description": "Skip syncing apps"
},
"skipFolders": {
"type": "boolean",
"description": "Skip syncing folders"
},
"skipWorkspaceDependencies": {
"type": "boolean",
"description": "Skip syncing workspace dependencies"
},
"skipDatatableMigrations": {
"type": "boolean",
"description": "Skip syncing data table SQL migrations"
},
"includeSchedules": {
"type": "boolean",
"description": "Include schedules in sync"
},
"includeTriggers": {
"type": "boolean",
"description": "Include triggers (http, websocket, kafka, etc.) in sync"
},
"includeUsers": {
"type": "boolean",
"description": "Include workspace users in sync"
},
"includeGroups": {
"type": "boolean",
"description": "Include workspace groups in sync"
},
"includeSettings": {
"type": "boolean",
"description": "Include workspace settings in sync"
},
"includeKey": {
"type": "boolean",
"description": "Include encryption key in sync"
},
"parallel": {
"type": "integer",
"description": "Number of parallel operations during sync"
},
"locksRequired": {
"type": "boolean",
"description": "Require lock files for all scripts"
},
"dedupeLockfiles": {
"type": "boolean",
"description": "Share one lockfile per workspace dependency file (locks/<depfile>.lock), instead of an identical .script.lock per script"
},
"lint": {
"type": "boolean",
"description": "Run linting before push"
},
"plainSecrets": {
"type": "boolean",
"description": "Handle secrets as plain text (not recommended)"
},
"message": {
"type": "string",
"description": "Default commit message for sync operations"
},
"promotion": {
"type": "string",
"description": "Branch name to use promotion overrides from during sync"
},
"skipBranchValidation": {
"type": "boolean",
"description": "Skip validation that current git branch matches a configured branch"
},
"nonDottedPaths": {
"type": "boolean",
"description": "Use __flow/__app/__raw_app suffixes instead of .flow/.app/.raw_app"
},
"syncBehavior": {
"type": "string",
"description": "Sync behavior version — controls ownership handling during push/pull (v1: preserve permissioned_as on update, strip on_behalf_of_email on pull)"
},
"codebases": {
"type": "array",
"description": "Codebase bundling configurations for shared libraries",
"items": {
"type": "object",
"properties": {
"relative_path": {
"type": "string",
"description": "Path to the codebase directory"
},
"extra_digest_paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "Paths outside relative_path that scripts import, relative to wmill.yaml; hashed recursively"
},
"includes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Glob patterns for files to include in bundle"
},
"excludes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Glob patterns for files to exclude from bundle"
},
"format": {
"type": "string",
"enum": [
"cjs",
"esm"
],
"description": "Bundle output format"
},
"external": {
"type": "array",
"items": {
"type": "string"
},
"description": "Dependencies to leave unbundled (externals)"
},
"assets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
]
},
"description": "Static files to copy into the bundle"
},
"customBundler": {
"type": "string",
"description": "Path to a custom bundler script (replaces esbuild)"
},
"inject": {
"type": "array",
"items": {
"type": "string"
},
"description": "Files to inject into every entry point"
},
"define": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Compile-time constant definitions"
},
"banner": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Text to prepend to output files by type"
},
"loader": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "esbuild loader overrides by extension"
}
},
"required": [
"relative_path"
],
"additionalProperties": false
}
},
"workspaces": {
"type": "object",
"description": "Map workspace names to Windmill instances and per-workspace sync overrides",
"properties": {
"commonSpecificItems": {
"type": "object",
"description": "Items to sync per-workspace (stored as <file>.<workspaceName>.<type>.yaml on disk)",
"properties": {
"variables": {
"type": "array",
"items": {
"type": "string"
},
"description": "Variable path patterns to sync per-workspace"
},
"resources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Resource path patterns to sync per-workspace"
},
"triggers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trigger path patterns to sync per-workspace"
},
"folders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Folder path patterns to sync per-workspace"
},
"settings": {
"type": "boolean",
"description": "Whether to sync settings per-workspace"
}
},
"additionalProperties": false
}
},
"additionalProperties": {
"type": "object",
"properties": {
"gitBranch": {
"type": "string",
"description": "Git branch name (defaults to the workspace name/key)"
},
"workspaceId": {
"type": "string",
"description": "Workspace ID to sync with (defaults to the workspace name/key)"
},
"baseUrl": {
"type": "string",
"description": "Windmill instance URL for this workspace"
},
"overrides": {
"type": "object",
"description": "Override any top-level sync option for this workspace"
},
"promotionOverrides": {
"type": "object",
"description": "Overrides applied when using --promotion flag"
},
"specificItems": {
"type": "object",
"description": "Items to sync per-workspace (stored as <file>.<workspaceName>.<type>.yaml on disk)",
"properties": {
"variables": {
"type": "array",
"items": {
"type": "string"
},
"description": "Variable path patterns to sync per-workspace"
},
"resources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Resource path patterns to sync per-workspace"
},
"triggers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trigger path patterns to sync per-workspace"
},
"folders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Folder path patterns to sync per-workspace"
},
"settings": {
"type": "boolean",
"description": "Whether to sync settings per-workspace"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"gitBranches": {
"type": "object",
"description": "[Deprecated] Use 'workspaces' instead. Map git branches to workspaces.",
"properties": {
"commonSpecificItems": {
"type": "object",
"description": "Items to sync per-workspace (stored as <file>.<workspaceName>.<type>.yaml on disk)",
"properties": {
"variables": {
"type": "array",
"items": {
"type": "string"
},
"description": "Variable path patterns to sync per-workspace"
},
"resources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Resource path patterns to sync per-workspace"
},
"triggers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trigger path patterns to sync per-workspace"
},
"folders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Folder path patterns to sync per-workspace"
},
"settings": {
"type": "boolean",
"description": "Whether to sync settings per-workspace"
}
},
"additionalProperties": false
}
},
"additionalProperties": {
"type": "object",
"properties": {
"gitBranch": {
"type": "string",
"description": "Git branch name (defaults to the workspace name/key)"
},
"workspaceId": {
"type": "string",
"description": "Workspace ID to sync with (defaults to the workspace name/key)"
},
"baseUrl": {
"type": "string",
"description": "Windmill instance URL for this workspace"
},
"overrides": {
"type": "object",
"description": "Override any top-level sync option for this workspace"
},
"promotionOverrides": {
"type": "object",
"description": "Overrides applied when using --promotion flag"
},
"specificItems": {
"type": "object",
"description": "Items to sync per-workspace (stored as <file>.<workspaceName>.<type>.yaml on disk)",
"properties": {
"variables": {
"type": "array",
"items": {
"type": "string"
},
"description": "Variable path patterns to sync per-workspace"
},
"resources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Resource path patterns to sync per-workspace"
},
"triggers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trigger path patterns to sync per-workspace"
},
"folders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Folder path patterns to sync per-workspace"
},
"settings": {
"type": "boolean",
"description": "Whether to sync settings per-workspace"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"environments": {
"type": "object",
"description": "[Deprecated] Use 'workspaces' instead.",
"properties": {
"commonSpecificItems": {
"type": "object",
"description": "Items to sync per-workspace (stored as <file>.<workspaceName>.<type>.yaml on disk)",
"properties": {
"variables": {
"type": "array",
"items": {
"type": "string"
},
"description": "Variable path patterns to sync per-workspace"
},
"resources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Resource path patterns to sync per-workspace"
},
"triggers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trigger path patterns to sync per-workspace"
},
"folders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Folder path patterns to sync per-workspace"
},
"settings": {
"type": "boolean",
"description": "Whether to sync settings per-workspace"
}
},
"additionalProperties": false
}
},
"additionalProperties": {
"type": "object",
"properties": {
"gitBranch": {
"type": "string",
"description": "Git branch name (defaults to the workspace name/key)"
},
"workspaceId": {
"type": "string",
"description": "Workspace ID to sync with (defaults to the workspace name/key)"
},
"baseUrl": {
"type": "string",
"description": "Windmill instance URL for this workspace"
},
"overrides": {
"type": "object",
"description": "Override any top-level sync option for this workspace"
},
"promotionOverrides": {
"type": "object",
"description": "Overrides applied when using --promotion flag"
},
"specificItems": {
"type": "object",
"description": "Items to sync per-workspace (stored as <file>.<workspaceName>.<type>.yaml on disk)",
"properties": {
"variables": {
"type": "array",
"items": {
"type": "string"
},
"description": "Variable path patterns to sync per-workspace"
},
"resources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Resource path patterns to sync per-workspace"
},
"triggers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trigger path patterns to sync per-workspace"
},
"folders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Folder path patterns to sync per-workspace"
},
"settings": {
"type": "boolean",
"description": "Whether to sync settings per-workspace"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}