v2.0.0
MajorPublished on September 7, 2026
Changelog
🔀 Merge
996466eMerge pull request #15242 from kestra-io/kestra_v2, closes #15242c04ef96Merge branch 'develop' into kestra_wipa5f1e75Merge branch 'develop' into kestra_wipcb9eee1Merge branch 'develop' into kestra_wip
📢 Breaking Changes
core
dd71be7🚨 adopt RFC 9457 problem details as the single API error format (#17912) - *error responses no longer carrymessage,_linksor_embedded.errors[], and are served asapplication/problem+jsonrather thanapplication/json. Bulk endpoints report per-item failures inerrors[]instead ofinvalids[]. Clients must branch ontypeand readdetail.
chore(core): localize to languages other than english
Refs https://github.com/kestra-io/kestra-ee/issues/9671*, closes #17912
flows
d85dbcc🚨 remove forced flag from flow-level pluginDefaults (#15812), closes #15812
🚀 Features
UI
72818bbadd query filter options to IAM UI components (#14956), closes #14956
ai
49922f1note when the AI model is switched mid-conversation (#18538), closes #18538a2f6c3dsupport custom HTTP headers on every copilot model provider (#17992), closes #17992afd1eccexpand copilot page context and note context changes in the chat (#17728), closes #177284938d09animate the Kestra mark in the copilot working indicator (#17666), closes #1766648e95e3revamp ai copilot style (#16545), closes #165453e89076add AI Copilot to No-Code editor (#15209), closes #15209
apps
b933bfcgenerate the JS/TS SDK in-repo (OSS) (#17541), closes #17541cdbec44redesign Settings page and align design system with Figma 2.0 (#16310), closes #1 #2 #43 #631 #9869 #15081 #15967 #16310 #16324 #16467 #23252 #111115 #424256
assets
a895dc7add a layered DAG view and freshness to asset dependencies (#18567), closes #18567 #185691e2699easset editable type (#18352), closes #18352
async
7a7ceaeblocking single-action + async batch for executions and triggers
blueprint
cabfff9migrate community blueprint API to QueryFilter format (#16117), closes #16117
build
f8a4875migrate Docker plugin install to kestractl CI download
cases
975ebb9QueryFilter/JDBC support + UI foundation for Cases (EE) (#17504), closes #17504
charts
92b0d7fallow setting progressDeadlineSeconds on Deployments (#17782), closes #17782
ci
55c10e1replace GH_PERSONAL_TOKEN with GitHub App installation tokens (#16012), closes #16012
cli
cf0816cprint UI URL as the last line once the server is fully ready68e52f4add configuration-schema command for JSON Schema generation (#15753), closes #15753
copilot
2ed2f14add ownAndInheritedSecrets and use it in expression context3227852add ExpressionContextService with typed context, RunVariables introspection, and test coverage
core
307ef7badd a @DurationMin constraint beside @DurationMax (#19001), closes #18676 #190016ca00eereject an external log store outside Enterprise Edition (#18982), closes #189826346960add url to the default SDK authentication (#18605), closes #18605bd9d3b0use 3D artwork on empty states (#18629), closes #1862965270d0add Flow/Custom tabs to the embedded blueprints panel (#18295), closes #182956d3d920add ForbiddenException mapped to HTTP 403add80eaintroduce no data page for custom blueprints (#18202), closes #18202d35b5ccparse kotlp OTLP telemetry in TaskLogLineMatcher (#17873), closes #1787331a9d7cimplement search filter in outputs tab (#17511), closes #5448 #17511b341e66introduceselect alloption to the select component in design system (#17713), closes #17639 #17713b859109add assetFailureBehavior property to AssetsDeclaration (#9467), closes #9467501f0b1add locked query filter field for assets (#9466), closes #946678d4b6aadd ProtectedZipInputStream to guard against ZIP-bomb attacks92bc9a3amend the format of the new flow IDs (#17626), closes #17626cd26c65normalize PostHog event names to surface.object.action (#17573), closes #1757387e9c81add onWebhookMatched hook after webhook key matchingca6cd11OSS enablers for EE Policies3b0d2dagenerate docs for charts, data filters, apps and app blocks (#17030), closes #17030b259dc6census input types by name in the anonymous usage report (#17258), closes #172588264ea0REUSABLE_INPUTS input type, validation, and editor seam (#17042), closes #170425c5c4f4show an icon inside asset dependency nodes (#17207), closes #17207bbdc940disable blueprints that need plugins which are not installed (#17121), closes #17121b8922d7add metric constants for maintenance enter/exit (#16597), closes #16597d0a7fe0attach logs to dynamically-generated taskruns and nest them in the UIc0e0016let task runners emit detail on the failure path050a539add full arg to the secret() pebble function26fbee1addCTRL+Shift+Lshortcut to cycle themes (#16940), closes #16940eaf57eaautocomplete subflow() namespace and id arguments (#16882), closes #1688220fc773add config flag to disable the UI and run the webserver API-only (#16748), closes #16747 #167484d6fedcadd subflow() Pebble functionc05e508make external tooltip follow the cursor and only over bars/slices (#16836), closes #168362fc1229redesigned Gantt. (#16680), closes #166807a9ed14fallback SDK auth to OSS basic auth4a285a4redesign flow blueprints list (#16457), closes #16457248b30fmatch strategy on WorkerSelector + Disposition on WorkerQueueRoutinge0703eaadd maintenance status endpoint (#16181), closes #14455 #16181b37908badd CSRF token protection for cookie-authenticated requests (#16317), closes #16317bbee04dshow version badge with commit info and refactor and unify admin section (#16285), closes #1628566f239bswitch ION serialization to binary format (#16144), closes #3155 #16144d8f2413add isLastWorkingDay() Pebble functionb869c0fautomate all migration scripts (#15601), closes #1560127aff90monitor queue subscriber pause/resume and fix subscribers gauge (#15750), closes #157506949451add translation keys related to enterprise copilot (#15707), closes #157079f63dd4extract reusable copilot component for onboarding pages (#15533), closes #15533d289f9bregexp filter (#15351), closes #15332 #153514bcacf5add kestra.ai.enabled property to disable AI copilot entirely (#15476), closes #15474 #15476ed9db4fopen no-code trigger creation form from flow triggers tab (#15463), closes #15463c231395make sidebar logo destination configurable via prop (#15462), closes #154627bb7272respect timeWindow.default for filter time range (#15461), closes #154618851014redirect logo click to welcome page (#15404), closes #15376 #154045e781f7add secret property type to No-Code editor97da227add @PluginProperty(secret = true) with validation for itab1125aadd PebbleUtil and replace hardcoded Pebble delimiters55240ccAdd support for ServiceInstance (#15173), closes #151738f4b28aintroduce new welcome page with revamped onboarding (#15046), closes #15046bc7d993introduce dependency view filtering (#14972), closes #1497257eea63add separate purge options for execution and trigger logs in PurgeLogs (#14922), closes #14922782a6d6implement SecurityIntegration ENABLED filter. (#14839), closes #1483953db598allow exporting dependency graphs as jpeg or png images (#14941), closes #14941325e186implement BINDING TYPE and NAMESPACE filters (#14829), closes #14829d594be3implement GROUP.NAME filter. (#14812), closes #14812de39702implement INVITATION: NAME, EXPIRED_AT, EMAIL filters. (#14810), closes #14810f0e1051implement Role.NAME filter. (#14808), closes #14808f2ed88dimplement User.group EQUALS and IN filter (#14782), closes #14782a208201Expose service instance metrics via API and add new pending worker messages metric. (#14495), closes #14495dfae1c8remove deprecated runner property in favor or taskRunnercf1cfd6remove Property deprecated methdso and constructors
dashboard
cd56ec0open a preview drawer on chart drill-down instead of a full-page redirect (#17194), closes #17194
dashboards
5512794recycle offscreen dashboard charts and cap their canvas pixel ratio (#18588), closes #14234 #18199 #18588a1f6a8eload charts as they scroll into view and limit concurrent chart requests (#18199), closes #14234 #18199b9d8932custom dashboard to enterprise only (#17942), closes #1794204d0a6dbroaden chart export to all data charts, add CSV/ION format, default dashboard sentinel (#17260), closes #157 #1726022e2b24expandable Top-N + Others Executions per-namespace chart (#17009), closes #17008 #17009bd68963replace "Executions In Progress" with filterable "Executions" widget (#16616), closes #1661627ec04ballow setting a default dashboard
design-system
1336b23let KsSegmented options carry an icon (#18587), closes #185874874533consistent clickable namespace and flow references across tables (#17575), closes #17575aaeac87add square prop to KsButton for icon-only square buttons (#17474), closes #17474659356cenforce font-size scale across the UI (#16993), closes #169939a7963credesign login page [2.0] (#16605), closes #16605d8e8921add sass as a dependency and update package-lock (#16229), closes #16229d81f37bexport color palette CSS vars, add missing EP wrappers and fix build exports (#16145), closes #16145
docs
528607ain app docs 2.0 revamp (#17127), closes #17127
ds
1f21950introduce loader for select
execution
786d23aadapt webhook multipart for EE870a5a5update execution progress component and API for average durationf5eb458add support for allowed and denied list for HTTP tasks96f9166replace execution statistics from the Execution repository to the new ExecutionStatistics repository70d19d4possible NoSuchElementException on State.getEndDatefcd9cfdExecution stat ...