pluginDefaults.forced Removed from Flows
For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append.mdto anykestra.io/docs/*URL for plain Markdown.
The forced property is removed from flow-level pluginDefaults in Kestra 2.0.
Flows that include forced: true inside a pluginDefaults block fail to parse after upgrading to 2.0.0. Remove this property before upgrading.
pluginDefaults is removed entirely in 2.0.0 — not just forced: true. After removing forced: true, migrate the remaining pluginDefaults entries. See the full pluginDefaults Removed migration guide.
Why the change
forced: true in a flow’s pluginDefaults let a flow author override any value a task explicitly set. This created a security problem: a regular user editing a flow could use forced: true to override plugin defaults that a platform administrator had configured at the namespace or tenant level.
In 2.0, pluginDefaults is removed in favor of Policies (EE), which give platform administrators centralized, enforceable control over plugin configuration.
Migration steps
- Search all flows for
pluginDefaultsblocks that includeforced: true:
grep -rl "forced:" flows/- Remove the
forced: trueline from each flow.
Before:
pluginDefaults: - type: io.kestra.plugin.scripts.runner.docker.Docker forced: true values: pullPolicy: NEVERAfter (as an interim step):
pluginDefaults: - type: io.kestra.plugin.scripts.runner.docker.Docker values: pullPolicy: NEVER- Migrate the remaining
pluginDefaultsentries. See pluginDefaults Removed for the complete guide covering all scopes (flow-level, namespace-level, and global configuration) and the equivalent Policy DSL for Enterprise Edition.
Was this page helpful?