github kestra-io/kestra v1.1.0

latest release: v1.0.10
9 hours ago

Kestra Open-Source Edition Changes

Changelog

πŸš€ Features

ai

ai_copilot

cli

core

documentation panel

editor

execution

  • 263882c add secure variable renderer factory for debug mode

executions

filter

flows

frontend

  • 4fc690b convert DurationPicker component to TypeScript with Composition API (#11724), closes #11724
  • b593c51 convert LabelFilter component to TypeScript with Composition API (#11726), closes #11726

plugin

plugins

  • caffb3b enhance documentation request handling to prevent unnecessary reloads (#11911), closes #11911

retry

runners

script

system

  • 9920d19 add an administration page for concurrency limit, closes #11250
  • c06ffb3 set taskrun attempt to resubmitted when a taskrun is resubmitted to a worker, closes #12481
  • b704a55 Add Gauge Metric to Kestra Metrics System (#12138), closes #12138
  • b43fd14 allow to skip an indexer record

tasks

tests

triggers

ui

global

πŸ“˜ Subtasks

build

  • 9b40665 use remote actions for java report
  • d092556 use remote actions

ci

  • 43e3591 fail-safe update-plugin-kestra-version.sh
  • 438dc9e create branch if not exist on update-plugin-kestra-version.sh
  • 7292837 add LTS tagging (#11131), closes #11131

core

Breaking Changes

All Editions: Required Metadata Migration for KV Store and Secrets

Kestra 1.1 introduces backend improvements to how KV Store and Secrets metadata are indexed and queried in the UI. To complete the upgrade, make sure to run dedicated metadata migration commands to rebuild the new indexes.

What changed:
The backend now indexes KV Store and Secrets metadata to optimize search. This replaces the previous logic that fetched all stored values directly from the storage backend.

Impact:
If the migration is not executed after upgrading to 1.1, the KV Store and Secrets pages in the UI will appear empty. This affects only the UI; flows and tasks will continue to function normally in the backend even without the migration.

Migration:
Run the following commands once after upgrading to version 1.1.0 (or later):

/app/kestra migrate metadata kv
/app/kestra migrate metadata secrets

For Docker Compose deployments, replace the server standalone --worker-thread=128 startup command with the migration commands as follows:

kestra:
    image: registry.kestra.io/docker/kestra:latest
    commands:
        - /app/kestra migrate metadata kv
        - /app/kestra migrate metadata secrets

After the migration completes, revert to the standard startup command to run the server, e.g. server standalone --worker-thread=128.

For Kubernetes deployments, create a one-time pod to run the same migration commands before restarting your regular Kestra server pods.

Note:
Running the migration after the upgrade is safe and will restore the missing UI data immediately.


Enterprise Edition: Task Runs UI Page Removed

The Task Runs page has been removed from the Enterprise Edition UI.

Reason for removal:

  • The page presented confusing granularity (task-level runs displayed on execution-level detail pages)
  • Filters were incomplete, and performance degraded when handling large datasets
  • The feature was only available on the Kafka & Elasticsearch backend, causing confusion among other customers
  • Customer interviews confirmed the page was not being actively used.

Impact:

  • No replacement is required, as all relevant execution and task run details remain accessible through the Execution detail view.
  • If you previously accessed Task Runs, use the Executions page and drill down into individual task runs through Gantt and Logs views for task-level information.

All Editions: Webhook Execution API Return Type Changed

The return type of the Webhook Execution API endpoint has been updated from a typed response to a generic response to support broader use cases and improve extensibility.

What changed: The API method previously returned a strongly typed WebhookResponse object. It now returns a generic HTTP response body (HttpResponse<?>).

Impact: Any custom integrations, SDK consumers, or extensions that previously relied on the WebhookResponse type in the response body will need to adjust their handling logic:

  • Direct access to WebhookResponse methods or fields will no longer compile.
  • You must handle the response body dynamically and verify its type at runtime if necessary.

Migration:

  • Treat the HTTP response body as a generic object.
  • Add runtime type checks before casting if your code depends on specific response fields.
  • Update any logic that assumes a fixed WebhookResponse structure.

This change ensures greater flexibility in future webhook response handling but requires updates to any consuming code that previously depended on a fixed response type.

Reference: https://github.com/kestra-io/kestra/pull/11867/files


All Editions: New prefill Property for Inputs

A new prefill property has been added to input definitions to let users start with an initial value that can be cleared or set to null when the input is not required.

What changed:
Inputs can now define a prefill value, which works like an editable default. Unlike defaults, a prefill value does not persist if the user removes it. This allows workflows to support optional inputs that start with a suggestion but can still be reset to null at runtime.

Impact:
While not a breaking change, this update clarifies how required, defaults, and prefill behave together:

  • prefill and defaults cannot be used on the same input.
  • Use prefill when required: false and the user should be able to clear the value.
  • Use defaults when required: true or when the value must always have a non-null default.
  • If defaults is used with required: false, the value will still reset to the default when cleared, which may not be desired; use prefill rather than defaults for those scenarios.

Example:

inputs:
  - id: nullable_string_with_prefilled_default
    type: STRING
    prefill: "This is a prefilled value you can remove (set to null if needed)"
    required: false

Migration: No migration is required. For optional inputs that previously used defaults but need to allow clearing or null values, switch to using prefill.


All Editions: ForEachItem Iteration Starts at 0

ForEachItem now starts iteration at 0 instead of 1, aligning its behavior with ForEach.

What changed:
Previously, ForEachItem iteration indices began at 1. This has been updated to start at 0 for consistency across iteration constructs.

Impact:
If your flow references {{taskrun.iteration}} inside a ForEachItem, note that the first iteration now returns 0 instead of 1.

Migration:

  • Review any logic, conditions, or expressions that depend on the iteration index.
  • Adjust Pebble expressions that assume a 1-based index.

Reference: #11452 (comment)


Kestra Enterprise Edition Changes

Changelog

πŸš€ Features

API

  • 7e48075 add endpoint to check if there are flows on the main tenant (#5269), closes #5269

ai

  • 4a945cd add PEM Certificate handling to most AI Copilot providers (#5367), closes #5342 #5367
  • e976e87 add open-router implementation for AI Copilot, closes #5101

apps

  • 0f9e810 improvements of apps catalog configuration
  • ce72349 improvements of apps catalog configuration
  • 46a20ec improvements of apps catalog configuration
  • 8cbd6b5 improvements of apps catalog configuration
  • 07a22af improvements of apps catalog configuration
  • 834264e add API to delete apps catalog logo (#5634), closes #5634
  • 2308a8e add titleColor for apps catalog API (#5634), closes #5634
  • e29d7a1 amend design and location of app catalog configuration settings (#5624), closes #5622 #5624
  • 3565950 improve the look and feel of apps catalog configuration page (#5619), closes #5606 #5619
  • 4445e36 add thumbnail images to the catalog view (#5615), closes #4737 #5615
  • 83867b2 introduce custom branding on apps catalog page (#5503), closes #4983 #5503

auditlogs

  • d05e984 add logs for disabled/backfill op on triggers (#5070), closes #5070
  • 9ffb812 add auditlogs for KV stores (#5055), closes #5055
  • 31a6806 support custom blueprints auditlogs (#5059), closes #5059

ci

cli

  • 9b18b6c have separate commands for KV & secrets metadata migrations (#5642), closes #5642

core

  • be3046a force telemetry when license requires it (#5609), closes #5609
  • 7227c07 make the right sidebar usable in offline mode (#5452), closes #4810 #5452
  • 2514c01 add support for brazilian portuguese localization (#5335), closes #5335

executions

  • d65baeb add IN, NOT_IN, CONTAINS LABELS #5617, closes #5617
  • 0e3a0d4 add attempts to flowable tasks
  • 790b2f2 support listing executions by kind
  • 1ffd20b improve performance of PurgeExecutions by batch deleting executions, logs and metrics

filter

  • 61fe57f Introducing new filter system (#5562), closes #5562

flows

  • 9bbce35 add human task icon (#5581), closes #5581
  • 90db34d add truncate parameter for log shipper (#5480), closes #5480

kv

  • 187be51 introduce in-repository KV Metadata (#5563), closes #5563

plugins

  • 4a92e80 support flexible version resolution for plugin (#5090), closes #5090

runner-kafka

  • a30f067 allow set RocksDB deleteObsoleteFilesPeriodMicros (#4886), closes #4886

system

  • 66272ac add an administration page for concurrency limit
  • b6e323d allow to skip an indexer record, closes #5263
  • 2dab703 use nb available core stream threads

test

  • d256f63 use new TestRunnerUtils (#5192), closes #5192

tests

  • 5abf15c add annotation and modify CI to handle flaky tests, play… (#5418), closes #5418

triggers

  • 3337f42 allowing webhook to send only outputs

ui

  • b0c29a5 add authenticated concurrency limits admin page
  • fa8a9a1 including running executions in last executions

global

  • 529467a updated license for tests (#5649), closes #5649
  • 2ab1bdf add global secret search controller + secrets metadata storing(#5456), closes #3476 #5130 #5132 #5456
  • 9f65501 export on instance.auditlogs view (#5491), closes #4572 #5491
  • 5113007 add multipanel and no-code to dashboards (#5359), closes #5359
  • 8891881 implement Flows as a DataSource for dashboards (#5219), closes #5219

πŸ“˜ Subtasks

apps

  • 9f86e40 add reset functionality to catalog configuration fields (#5644), closes #5644
  • 79b593d show custom fields in apps catalog only if they exist (#5616), closes #5616
  • 06a56dd amend label on table column header (#5199), closes #5196 #5199

build

  • 1244ff8 use remote actions for java report
  • 7abbf67 use remote actions

ci

core

  • 7b16792 localize to languages other than english
  • 2ea4bed localize to languages other than english
  • 4cff47d update tenant icon on the instance users page (#5413), closes #5211 #5413
  • 1a6d1da remove unused property mentioning oss version (#5373), closes #5373
  • 8b3de16 remove unused decompress library (#5156), closes #5156
  • b57a8ec improve coloring scheme for dependencies graph (#5135), closes #5135

deps

  • 1a9e51d regular dependency update (#5598), closes #5598
  • 2dc2549 regular dependency update (#5558), closes #5558
  • 7e7b240 regular dependency update (#5538), closes #5538
  • dc13092 regular dependency update (#5410), closes #5410
  • 405ef69 change com.lowagie package to org.openpdf
  • 68fe08d revert monaco-editor update (#5057), closes #5057
  • 9e08946 regular dependency update (#5049), closes #5049

namespaces

  • a32c831 remove the superfluous edit button shown in the header (#5412), closes #5350 #5412
  • 7d501a7 disable all other tabs during namespace creation (#5202), closes #4726 #5202

secrets

  • ca849a1 remove the redundant namespace column from the secrets tab (#5411), closes #5348 #5411

system

  • 1c2f307 executionRunning queue is only used by Kafka queues
  • 335c62a add the unused MultipleConditionEvent queue, closes #4602
  • 8ba1802 move the SkipExecution service to the services package
  • ce42e4d remove the task run page, closes #5174
  • 954aac1 share the application.yaml config file between OSS and EE, closes #4887

tests

  • 00de1cc set human task tests as flaky

version

  • 3d5b216 update to version 'v1.1.0'.
  • f41edcc bump ui-libs for a fix. (#5579), closes #5579
  • caedc37 bump ui-libs version (#5361), closes #5361
  • 64a415e update snapshot version 'v1.1.0-SNAPSHOT'.

global

  • 36d4bfd add utility script to index plugins post 1.0.0

πŸ› Bug Fixes

CLI

  • 484d7dc load only required indexes during ELS tenant migration (#5450), closes #5450

Core

  • d019656 move export to navbar (#5531), closes #5531

admin

  • 7e00f3f show the system overview in admin and search (#5115), closes #5115
  • 321d3f5 add license type and remove redundant. (#5074), closes #5074

ai

  • f8970a1 remove thoughts return from AI Copilot (#5424), closes #5422 #5424
  • ed4eca4 map OpenRouterAiService to OpenRouterConfiguration properly
  • 240d32a introduce maxOutputTokens for Azure OpenAI AI Copilot (#5355), closes #5355
  • 428db6f remove some unsupported parameters on some models for OpenAI, closes #5265
  • 9663064 increase maxOutputToken default

apps

  • 0cd228a catatlog overflow was hidden and better filter look (#5638), closes #5638
  • c3b4e77 show apps in catalog by default when no access defined
  • aaead91 apps with access group not visible (#5454), closes #5454
  • 1660ef5 make public apps accessible without login (#5434), closes #5426 #5434
  • aa3128c add required 'flow' variable for pebble function (#5220), closes #5220
  • 52bdaad ensure app preview retains some side margin (#5204), closes #5100 #5204
  • 851681e add flow id of the app and its route. (#5200), closes #5200
  • 6f7b57d return execution ID on fallback layout (#5003), closes #5003
  • d58621f hide the revision and view flow when creating app. (#5126), closes #5126
  • 5532e7a allow to view flow in new tab from context menu (#5112), closes #5112

audit-logs

  • 05dd5bc restore resources filter, closes #4910

auditlogs

  • f33378e add actor for user login event (#5308), closes #5308
  • 14777f8 detect update of NS files as UPDATE (#5210) (#5213), closes #5210 #5213
  • 8760514 add auditlogs for namespace files (#5056), closes #5056
  • f662437 fix missing auditlogs on execution purge (#5061), closes #5061
  • b68a94b rework resource snapshots computation (#4727), closes #4727

backup

  • 01041a4 backup flow as Map to avoid stackoverflow at restore, closes #5409
  • 343d134 full backup should use instance-level storage methods

ci

  • 5f3ae4b rename and change params to indexing workflow
  • 3772b74 add proper secrets to indexing workflow (#5225), closes #5225
  • a918383 place indexing process after docker release (#5224), closes #5224
  • 5a9af29 add on pull request for release branches

cli

  • eaac910 avoid resaving existing metadata upon migration (#5652), closes #5652

core

  • c4f7d2b use correct valuetype (#5643), closes #5643
  • bf4b12d CrudEvent should not be done on the repository side for secret metadata
  • fc3c7f9 CrudEvent should not be done on the repository side for KV
  • 20a8ea3 rename back secret metadata migration
  • 12927c8 rename back secret metadata migration
  • bd7308e add indices to secret metadata tables (#5541), closes #5541
  • d75fd57 ACLs for Secret metadata repository
  • ed9cc0d add dynamic rowKey for selection handling (#5580), closes #5580
  • f0a27fe bring export audit logs in navbar (#5537), closes #5537
  • 998146c avoid having deleted field check in SecretMetadata repository calls (#5536), closes #5536
  • 765d6ed allow rendering for ns upstream and also kv from another ns. (#5494), closes #5494
  • 131ca4e bring back validation and save (#5408), closes #5408
  • ef1a3eb create a main tenant if oss main tenant has flows. (#5271), closes #5271
  • c176a2c fully collapsed sidebar (#5262), closes #5262
  • f87ff35 add padding on test result (#5216), closes #5216
  • 333d0b6 redesigned workergroups detail. (#5212), closes #5212
  • 640f00c keep the Add at end. (#5209), closes #5209
  • 2a05fd0 properly cast label values to strings in audit logs listing (#5203), closes #4908 #5203
  • c0b54f8 sidebar rendering fix
  • 4c967be update the title (#5164), closes #5164
  • c38c8be update menu generation logic (#5161), closes #5161
  • 02b70ca fix import path (#5157), closes #5157
  • 2fb78be fix black text in light mode on purple bg. (#5096), closes #5096
  • 847b0dd add ability to remap sort keys (#5087), closes #5075 #5087
  • 7b55c94 extra container space (#5077), closes #5077
  • 88f85d8 use axios composable to start EE (#5071), closes #5071
  • 75ce0ac no extra space when embed (#5053), closes #5053

docs

  • 17e208b improve HumanTask docs (#5578), closes #5578

executions

  • ec2051e remove errors and finally tasks when restarting
  • 3132e76 reliable fetchById on executions for Elasticsearch (#5334), c ...

Don't miss a new kestra release

NewReleases is sending notifications on new releases.