For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append .md to any kestra.io/docs/* URL for plain Markdown.

The forced property is removed from flow-level pluginDefaults in Kestra 2.0.

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

  1. Search all flows for pluginDefaults blocks that include forced: true:
grep -rl "forced:" flows/
  1. Remove the forced: true line from each flow.

Before:

pluginDefaults:
- type: io.kestra.plugin.scripts.runner.docker.Docker
forced: true
values:
pullPolicy: NEVER

After (as an interim step):

pluginDefaults:
- type: io.kestra.plugin.scripts.runner.docker.Docker
values:
pullPolicy: NEVER
  1. Migrate the remaining pluginDefaults entries. 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?