Changelog
📢 Breaking Changes
security
global
🚀 Features
- 02f97df add new plugins
api
cicd
- b544e25 migrate fetching plugins to maven central (#9902), closes #9902
- 5d92300 #4006 add javadoc and sources to cli release, closes #4006
- 2b83fc7 #4006 change signing method (#9854), closes #4006 #9854
- 6a8225d #4006 migrate to maven central (#9807), closes #4006 #9807
- c6e5cdf #4006 migrate sonatype to maven central (#9803), closes #4006 #9803
cli
- d9bdcc5 added skip-deprecated flag in plugindoc command
cluster
- c4e7625 persist maintenance mode in the database
core
- 812c8b5 add a Pebble function to generate KSUID
- 19161cc update titles , add button slot for license (#10218), closes #10218
- 6c48571 implement backend validation for login for configs and also fixes PH event (#10196), closes #10196
- 3f4b39e add troubleshooting button and doc (#10191), closes #10191 #10193
- 3a10a52 hide deprecated elements in doc, autocompletion (only types), nocode (#10020), closes #7206 #8786 #9322 #10020
- 97b01ab introducing OSS authentication user creation and login logout (#9683), closes #9683
- 5677a6b add Pebble HTTP function (#9786), closes #9786
- f402aa7 introduce AI agent (#9733), closes #9733
- 7ba0780 add useDataTableActions composable (#9777), closes #9777
- 9a86bb1 add button to copy all logs to clipboard (#9763), closes #9763
- 1149b8e variables tab under Multipanel (#9498), closes #9498
- 06c67f4 introduce tasksWithState autocompletion (#9485), closes #8350 #9485
- 28d7a0c add release notes for public plugins (#9374), closes #9374
- b4d1549 custom blueprints now in side menu. (#9349), closes #9349
- 50ca1d7 refactor of welcome and overide for card. (#9341), closes #9341
dashboards
- aa3b118 implement the table data export functionality (#9911), closes #9911
- 34af565 introduce the edit icon on hover for each separate dashboard chart (#9908), closes #9908
- abc4e16 initial work on adding buttons to chart cards (#9892), closes #9148 #9368 #9892
devtools
execution
- f97ad45 "Debug Expression" for Trigger Variables (#10242), closes #10242
- fa2bf8f allow to wait for execution completion into a Webhook, closes #10147
- 98d1ab5 add execution ID to the latest execution
executions
- f7c5fd3 use the uploaded file name for inputs of type FILE
- 8319ad7 work on the ui for execution dependencies
- 66889a3 execution dependencies
- fc0b52d add execution outputs inside the expression context
- 05cb79f provide a task run caching mechanism
- efdc29f add preview for local files and namespace fles, closes #9740
- e2571ba Allow unqueuing to states other than RUNNING #5939 (#8381), closes #5939 #8381
- 05b50c2 allow suspending an execution at a breakpoint
- c8aa678 allow using local host files in tasks
filters
flows
- 117f453 warn on runnable only properties on non-runnable tasks, closes #9967 #10500
- 40a67d5 add webhook curl and json field (#10392), closes #10392
- 8b04836 code editor can launch playground (#10359), closes #10359
- 69d2b97 playground (#10042), closes #10042
- 0e8e65a add setting to disable hovers in editor (#10159), closes #10159
- 7ebf598 add an API endpoint for listing flow properties, closes #9524
- 2d27386 allow expanding all flow dependencies at once
- e2c629a allow expanding flow dependencies
- bf8d47f remove worker grou validation, closes #9808
- 8109493 add resumed information to the Pause task
- 5f7ecba allow setting worker group at the flow level
- d44a203 supports the nsfile:// protocol, closes #9741
- 4149ef4 allow reading local files inside the file functions, closes #9739
- cf01f4f support local files as FILE input default value, closes #9681
- 201912f support local files in input files
- d22aeda add a log into the Subflow task when a flow it fail (#9652), closes #9652
- bb6c480 allow to pass a typed object in Data.from()
gemini
- ff66471 add the plugin to .plugins
kv
logs
- 752a927 allow LogShipper to filters on flowId and executionId
- eb22d3f allow purging log by execution ID
namespaces
- 7373f3e #3568 add new folderPerNamespace attribute to namespaceFiles (#9752), closes #3568 #9752
- bafc304 show ns description (#9610), closes #9610
pebble
- ea1603f create a in expression to look for a string in a list (#9817), closes #9813 #9817
- 7bd2188 add millisecond date time format
- 05959ee add a timestampMilli pebble function (#10064), closes #10064
plugin
plugins
scripts
- a1e5344 enable script/cli plugins to override final task state
sifflet
- 7124b53 add new plugin-sifflet
system
- 809c0a2 improve performance of computeSchedulable
- 4996ccd add a between-items timeout on all our SSE connections
- b97f93f use available processor count number of executor threads
- 47b10b4 repoll immediatly when a poll returns resutls in the queue
- 31d372d make Property a string in openapi spec generation
- c047e37 store version in the settings
- 075cc07 don't deepClone maps inside MapUtils.merge
- 69bf11c add server_type as global metrics tags
tenant
tenants
- 94dc1ce provide an endpoint that list all tenants dependencies
tests
- 302ec94 testsuite run persistence
- 770438e use Flow YAML autocompletion
- f57ab7a impl disabling testcase
- b6475d8 allow disabling a TestSuite preventing it to run
- afd4b81 add execution url in test result
triggers
- 0c90d6d add failOnTriggerError to create a failed execution on trigger error, closes #7856
- c4082db avoid clearing selection when refreshing in triggers list
ui
- 387bbb8 added http method autocompletion (#10492), closes #10492
- e75a4a7 introducing OSS auth (#9972), closes #9972
- fc2f89b Add connection properties group sorting (#9644), closes #9644
- 1c3049a Add support for bulk-select and bulk-delete (#8281), closes #8281
- b160361 Allows ContextInfoBar.vue to have dynamic buttons from props (#9613), closes #9613
- e2b2a1f repo star button on right menu (#9526), closes #9526
- 18fe4e9 make version readonly on oss (#9486), closes #9486
- ac97e0a drag and convert tabs to panels (#9198), closes #9198
- 2f9c176 allow to close a tab with mouse middle click like in a navigator/ide (#9434), closes #9434
global
- 83f9253 Trigger Initialization Method Performance Optimization
- 19df58c hide community button on EE edition (#10251), closes #10251
- 12c8db4 action to check if tag is latest in github release
- 02430a0 introduce ui changes for keeping filename on file input
- de8c3fd trigger EE CI when OSS develop branch succeed
- d299ff7 feat(): add Kestra plugin in the list
📘 Subtasks
build
- f9b1040 try to remove the noise for code coverage
core
- 8763730 remove variable and directly assign. (#10554), closes #10554
- c9ce54b localize to languages other than english (#10494), closes #10494
- ccd9bae localize to languages other than english (#10489), closes #10489
- 998087c localize to languages other than english (#10471), closes #10471
- 6d34416 localize to languages other than english (#10410), closes #10410
- a0200cf localize to languages other than english (#10405), closes #10405
- 9a72d37 amend missing property causing console warning in the settings page (#9788), closes #9788
- d7f5e5c localize to languages other than english (#10368), closes #10368
- 4840f72 properly handle environment name set either via config and through the settings page (#10151), closes #10151
- 6dcba16 clean QueryFilter class
- edca56d localize to languages other than english (#10341), closes #10341
- 3cfd5eb localize to languages other than english (#10291), closes #10291
- 87480d8 add missing translation key/value pairs (#10243), closes #10243
- a883810 localize to languages other than english (#10221), closes #10221
- bbb5c2a localize to languages other than english (#10189), closes #10189
- d7d52cb move expand all buttons to the left side (#10186), closes #10186
- 71e3b19 add back the missing translation keys (#10170), closes #10170
- 5457c21 remove non-matching translation keys (#10169), closes #10169
- aa2d88f localize to languages other than english (#10160), closes #10160
- d935333 localize to languages other than english (#10086), closes #10086
- 72341b8 allow displaying topology horizontally (#10012), closes #9980 #10012
- 6bb4264 localize to languages other than english (#9975), closes #9975
- c953e24 localize to languages other than english (#9969), closes #9969
- 750fa4c localize to languages other than english (#9966), closes #9966
- e814c68 localize to languages other than english (#9915), closes #9915
- ad52c59 localize to languages other than english (#9910), closes #9910
- 281e1ef localize to languages other than english (#9901), closes #9901
- 70622ca localize to languages other than english (#9645), closes #9645
- a618533 localize to languages other than english (#9862), closes #9862
- 2735986 localize to languages other than english (#9812), closes #9812
- ab286a1 localize to languages other than english (#9659), closes #9659
- f59def2 add top-level exception ConflictException
- d6047fe add top-level exception NotFoundException
- 9d98911 localize to languages other than english (#9552), closes #9552
- 33404bf localize to languages other than english (#9544), closes #9544
- c37ffe9 localize to languages other than english (#9397), closes #9397
- d70b572 localize to languages other than english (#9347), closes #9347
dashboards
- 63dbff1 improve chart data loading and uniform look on preview tab (#10014), closes #10014
- 932be71 improve the chart editing functionality (#9914), closes #9914
- 2e9a147 add the button tooltip for dashboard edition link (#9909), closes #9909
- 436b770 move store module from vuex to pinia (#9796), closes #9796
- 8c32ff7 always updating chart previews on dashboard creation (#9536), closes #9536
- 3a027fe switch default time series chart scale to integer numbers (#9510), closes #9510
deps
- de177b9 hardcode vue override version
- 694ee7e regular dependency update (#10314), closes #10314
- 68c1abb relocate mysql driver
- 578e34e update the element-plus package and remove patch file for it (#10069), closes #10069
- d1b0252 regular dependency update (#10011), closes #10011
- 90c74fc regular dependency update (#9855), closes #9855
- 9530e82 regular dependency update (#9779), closes #9779
- d00f526 regular dependency update (#9402), closes #9402
- d0fe252 bump vitest to 3.2.3
- 4443ee2 add types for storybook tests
executions
- ceecab1 improve the file input dialog (#9894), closes #9894
- be23ac5 remove cancel button from resume dialog (#10051), closes #10051
flows
- 1d89f53 show small execution charts on flow listing (#10054), closes #10054
- d61d697 remove breadcrumbs (#9877), closes #9877
- 3079230 rename retry maxAttempt to maxAttemps, closes #9729
logs
namespaces
- 54c74a1 add the needed prop for loading all namespaces inside a selector (#10544), closes #10544
- e59d9f6 properly handle file name field on flow run dialog if set from defaults (#10390), closes #10365 #10390
plugins
- 5377d16 simplify the plugins search field (#10373), closes #10300 #10373
- cbd48b0 rename Langchain4j plugin to AI
system
- 4dc1e52 avoid calling allTaskWithChild when computing plugin defaults
- 51f8315 avoid calling TaskRun.toStringState() when not needed
- 5aa1b20 call the close runnable later
- d7c5480 relax again some test on AbstractSettingRepositoryTest
- 5e97e25 relax AbstractSettingRepositoryTest assertion
- 7b44569 remove dedicated JdbcServiceLivenessManager
test
tests
- fb96fc2 add validation on assertions
version
- 9859ea5 update to version '0.24.0'
- 23e35a7 upgrade version to 0.24.0-rc2-SNAPSHOT
- 281a987 upgrade version to 0.24.0-rc1-SNAPSHOT
- d16324f update to version 'v0.24.0-rc0-SNAPSHOT'.
- 9eeffa0 bump ui-libs to version 0.0.222 (#10285), closes #10285
global
- 465e646 update ui-libs (#10391), closes #10391
- 468c321 enforce micronaut open api version until Micronaut Platform works (#10393), closes #10393
- 076434c remove frontend codecov in CI
- a7b07e5 update utility scripts still referencing old maven repo
- 7ec1439 add useful scripts for RC
- 6361357 update ui-libs for documentation collapsible warns (#9954), closes #9954
- a2bbd53 update ui-libs
- 13e1e49 update ui-libs
- b0b158c add script to update gradle kestraVersion prop on plugins
- 0636cc5 upgrade storybook (#9326), closes #9326
🐛 Bug Fixes
ai
- df63fc5 shortcut to submit and for newline (#10325), closes #10325
- bbf22d8 show prompt window only if ai is enabled in configs (#10172), closes #10172
- b72381e refine card styles; add button disabled state colors across UI. (#10142), closes #10142
- 87bb87b update styling for Accept/Decline (#10082), closes #10082
- 2b49c88 move AI popup button to right + gray placeholder, closes #9890
- 8691c90 short-circuit cases where relevant plugin identifier fails to identify ones
api-docs
ci
- 04ba736 workflow build artifact doesn't need the plugin version
- fd6a0a6 bad SNAPSHOT repo URL
- 104c4c9 don't publish docker in build-artifact
- 21cd212 add missing build artifact job
- ee8762e correctly pass GH token to release workflow
- 2109fa8 Avoid retag latest docker image being
true
by default - e015a94 modify job id for end task
- aab3fd4 put back bump helm chart and remove if condition
- c06985c modify actions order
- 28f58e6 remove debug branch for actions checkout step
cli
- 1501456 tenantService was injected directly, this is not working in cli
- a900d8f when picoli was throwing InitializationException the java process was not stopped
- 45291eb #10062 add tenant to load flows properly at the startup (#10290), closes #10062 #10290
- d698ef5 prevent NPE on commands defaulting to help
- 6d9ef2b enforce server command validator (#7418), closes #7418
core
- 056faaa proper state detection from parsed data (#10527), closes #10527
- 066b947 remove icon for inputs in no-code, closes #10520
- b619bf7 ensure instances can read all messages when no consumer group / queue type
- 6a04590 remove top spacing from no execution page and removing the redundant code (#10445), closes #10445
- 04bfb19 avoid follow execution from being discarded too early, closes #7623 #10472
- c913c48 redesign playground run task button (#10423), closes #10389 #10423
- 597f84e topology was no longer working on new flows (#10411), closes #10354 #10411
- 5f3c7ac allow icons api call to take longer than local call (#10412), closes #10412
- c951ba3 make validation less aggressive (#10406), closes #10406
- 02f150f animation on ai agent button (#10379), closes #10379
- e78210b fixes cumbersome operator selection (#10322), closes #10322
- cf3e49a give height to tooltip and use ks tokens (#10372), closes #10372
- 4053392 🚨 amend misc label-related issues (#10044) - *switched from first to last label value override
BREAKING CHANGE: preventing empty key/value labels
BREAKING CHANGE: preventing whitespace in key
-
fix(core): reflect feedback
-
Deduplicated a list inside the
Labels
task. -
Worked around label mutation at
Worker
. -
Attempted to deduplicate labels within
Execution
as possible. -
fix(core): remove irrelevant changes*, closes #10044
- 5feeb41 update state count emission and filter table executions. (#10367), closes #10367
- 31658a1 prevent default if suggestion is active (#10320), closes #10320
- 26bd7da check null uri (#10309), closes #10309
- 6510cdf revert unwanted changes
- a9d2159 do not show release notes button for ee specific plugins (#10235), closes #10235
- d1badab check if logged in before requesting usages (#10194), closes #10194
- ddfe637 adjust word wrap and prevent newlines in input (#10176), closes #10176
- e09a89a update text from user to account. (#10187), closes #10187 #10188
- c7b9e18 improve handling of setup completion and display values (#10141), closes #10141
- 614c7b2 fixes some design tweaks for Ai Agent (#9875), closes #9875
- ec360bd remove icons from no code input selector (#10080), closes #10075 #10080
- 4f2a37c fixes user with no rights is able to access the dashboard route (#9361), closes #9361
- 47955fc remove deprecated properties from no code task selector (#10079), closes #10077 #10079
- ae2ce39 secrets as a tab. (#10072), closes #10072
- 8d652d5 show plugin toc properly (#10068), closes #10068
- 77f0f5b add an exception to avoid popping challenge in case of wrong credentials on login page (#10061), closes #10061
- c688085 add proxy so that origin is the same as request url for workers (#10053), closes #10053
- 0402362 strict samesite for basic auth cookie
- 15d3caf basic auth is now handled through cookies, header then challenge so that SSE sends it (#10043), closes #10043
- 565bee9 login setup failures when baseUrl is empty (#10041), closes #10041
- 44f93c0 streamlining base URL creation (#10039), closes #10039
- e136e1c trim expressions in select & multiselect to be able to use '|' instead of '>-' (#10017), closes #10016 #10017
- d63039f introduce the missing translation key/value pairs for certain languages (#9943), closes #9943
- fdd7906 fix icon size and handle long title (#9916), closes #9916
- 75df4be avoid crashing AI Agent when having multiple versions of same plugin, closes #9871
- 046dc6c update some broken translations
- b57e9ae typo
- 515dbdb remove prerendering + restrict only secret function in debug expression (#9816), closes #9816
- deb2fdc add config from backend that sends whether the AI feature is configured or not
- 0beac5e increase max encode size to avoid icons fetch timeout (#9782), closes #9782
- b19737f remove tenant from plugins URLs
- 076ae2e use namespace prefix instead of equals
- 97b89d3 retry flaky runner test restartForEachItem as it's flaky on CI but always pass locally
- f20f2e7 save disabled , tab not dirty on save (#9560), closes #9560
- 23db6c6 route to namespaces' flow and execution (#9517), closes #9517
- e5b816d robots.txt was not served, closes #9015
- 8e5c5c9 yaml utils migration
- 7bce998 filters was triggering endless refresh, closes #9508
- f76f029 avoid infinite load upon route redirect (#9480), closes #9479 #9480
- 527c549 properly map labels filters from query (#9480), closes #9324 #9480
- b6ad833 prevent incompatible timeRange & start/endDate filters + prevent multiple scope filters (#9480), closes #9240 #9480
- 266b62d amend the problem with running storybook tests (#9470), closes #9470
- b6603a1 plugins docs container background. (#9461), closes #9461
- 06f31dd use Min annotation instead of Positive (#9432), closes #9380 #9432
- aaf1812 handle properly dot in nested keys & commas in quoted filter values (#9410), closes #9410
- 447ea80 remove deprecated Github icon. (#9401), closes #9401
- c00f125 avoid adding invalid keys from query parameters to filter (#9383), closes #9364 #9383
- 6aad4b7 amend core.metric.Publish task icon visibility in dark mode (#9375), closes #9226 #9375
- 7bcf284 add DefaultFilterLanguage as default in KestraFilter, closes #9365
- c6604cd amend positioning of the default tour elements (#9360), closes #9356 #9360
- 649d5fe avoid crashing in case of taskrun having too large value (#9359), closes #9312 #9359
- 6323b03 add missing editor shortcut in the list (#9339), closes #9317 #9339
- 173cb29 larger debounce for filter
- cc86b20 handle whitespaces in label key and value
- 3e470d7 smarter autocomplete order in editor
- 168e2e0 additional plugins are now properly shown in plugin docs (#9329), closes #9329
- 51ce220 avoid suggest widget reset upon typing
dashboard
dashboards
- 6585d24 include required prop to amend pages using dashboard sections component (#9949), closes #9949
- 65316da properly show default charts on logs page (#9800), closes #9612 #9800
docker-compose
- 8637bb8 add info about password policy to docker compose example
- df94a24 cut the removed enabled flag
editor
execution
executions
- 5c95505 avoid SSE error in follow execution dependencies, closes #10560
- 317885b restore execution redirect & subflow logs view from parent, closes #10528 #10551
- f2610ba avoid race condition leading to never-ending follow with non-terminal state
- 053d627 do not rely on monaco to get value (#10515), closes #10515
- 59a17e8 properly handle methods and computed for tabs (#10513), closes #10513
- 631cd16 do not rely on monaco to get value (#10467), closes #10467
- 19d4c64 Don't create outputs from the Subflow task when we didn't wait
- 4ada5fe make columns that are not links normal text (#10460), closes #10460
- 83143fa add default icons to execution dependency view (#10375), closes #10327 #10375
- ab464ff flow concurrency limit not honors when executions are created at a high rate, closes #10167
- f2034f4 race condition inside nested ForEach with concurrency, closes #10167
- 3e70aac breakpoint on ForEach
- 83fb225 update query parameter for state filtering (#10315), closes #10315
- 2a9a0c7 fixes file preview (#10252), closes #10252
- d190522 fixes execution selection action button (#10257), closes #10257
- 0811258 make sure outputs do not overflow over right drawer (#10238), closes #10232 #10238
- c09dafc support unicode file name inside the internal storage, closes #9550
- 75f5348 restore taskruns store (#10090), closes #10090
- a3fa205 add missing uuid property (#10078), closes #10078
executor
filters
flow
- 90d572e autocomplete output values in pebble editor (#10083), closes #10083
- 8d65478 avoid calling icons api more than once (#9784), closes #9784
flows
- aca374a ensure plugin documentation change on flow switch (#10546), closes #10546
- c413ba9 add conditional rendering for restart button based on execution (#10570), closes #10570
- 5c08403 no-code - when changing type message avoid warning (#10498), closes #10498
- 3870eca playground need to use ui-libs (#10506), closes #10506
- afd7c21 route to flow page (#10514), closes #10514
- 97869b9 forget all old taskRunId when a new execution (#10487), closes #10487
- 1c681c1 wait longer for widgets to be rendered (#10485), closes #10485
- de2a446 load flows documentation when coming back to no-code root (#10374), closes #10374
- d778947 add the load errors to the flow errors (#10483), closes #10483
- 3f97845 hide executionkind meta in the logs (#10482), closes #10482
- 1648fa0 playground - implement new designs (#10459), closes #10459
- 4748068 playground align restart button button (#10415), closes #10415
- 65467bd playground clear current execution when clearExecutions() (#10414), closes #10414
- 1d3210f remove text from warning button (#10370), closes #10370
- 4f9e3cd bring back alignment on overview (#10369), closes #10369
- e74010d playground - use all tasks as breakpoints (#10399), closes #10399
- ac09dce wrong warning in FILE input, closes #10361
- d6bed2d file watching flow should delete the flow when the file is deleted while reading for update
- 80a328e better loading pattern (#10345), closes #10345
- ee6a2ae parse JSON when switching from string to object (#10255), closes #10255
- ef4f1bd remove flows date filters UI, they do not exist, closes #10201
- 0de5236 possible NPE at flow validation
- c671414 issue where flows with task IDs longer than the supported database column length would cause the application to shut down.
- 02302fa autocomplete nocode outputs in pebble (#9955), closes #9955
- c6e01a7 bring back clear selection (#9893), closes #9893
- 739a873 make sure expression can accept null values (#9876), closes #9876
- 96163d4 Kill on cascade on SLA violation, closes #9801
- 796be65 include flow count in export success message. (#9860), closes #9860
- 665a413 open subtask from topology (#9804), closes #9804
- 7fcf94f finish YAML_UTILS refactoring (#9795), closes #9795
- 6bcfbaa restore dag open tabs after hard refresh (#9792), closes #9792
- d7f6add make autocomplete work in pebble (#9742), closes #9742
- 59ee76b importing flows will auto update the table without manual refresh. (#9468), closes #9468
- be14d81 #9319 error when puase with timeout trigger an execution (#9334), closes #9319 #9334
gradle
- 0a6bfd1 be able to use publishToMavenLocal (#10047), closes #10047
guides
- 12f3e2e crawl into sub-folders
iam
- 0c9b522 tenant deletion raised error about mandatory tenantID in request context
logs
- 3660e1a update query filter to show logs ns and flowwise (#10248), closes #10248
namespaces
- 8173e8d autocomplete in kv & secrets
- fae0c88 amend problems with namespace secrets and kv pairs (#10543), closes #10543
- b659747 fixes loading of additional ns (#10518), closes #10518
- 40b337c make sure the namespace parameter is properly passed when reading a file (#10384), closes #10363 #10384
- 8cf159b prevent namespace folder highlighting when containing file is selected (#10364), closes #10360 #10364
- c5b9aa1 properly load flows when changing namespace (#9393), closes #9352 #9393
- 5e1b059 reload namespace once the id parameter changes (#9372), closes #9372
pebble
- bc3d534 #8953 add more flexible day number conversion method (#10205), closes #8953 #10205
- 80d394f fix typo
- 30c4f11 fix typo
plugin
- 25adcc4 FileSystems.newFileSystem caused a Path component should be / in plugins tests (#9570), closes #9570
- 8516557 FileSystems.newFileSystem caused a Path component should be / in plugins tests (#9562), closes #9562
plugin-versioning
- 76fc55b replace current JAR if more recent (#9629), closes #9629
plugins
- 1e34707 go to list of plugins from sidebar (#10385), closes #10385
- 393faed adjust font sizes for collapsible body (#10164), closes #10164
- 4a8b3d4 plugin search is now searching in all element types (#9899), closes #9899
- 00b1e32 finish pinia migration of plugins store (#9746), closes #9746
- c67c712 check whether plugin registry support versioning (#9122), closes #9122
podman
- a981a30 do not pass the tag directly to pullImageCmd (withTag) (#9607), closes #9607
repositories
- 251a821 make filter service protected (#10241), closes #10241
runner
- 25f5ccc support floating-point CPU values in Docker runner (#10366), closes #10366
secrets
- 3796497 show namespace column (#10222), closes #10222
- 5b5b616 circle masked input to replace squarefont. (#10088), closes #10088
security
- 8094756 use the login/pass of basicAuth for all api urls (#10027), closes #10027
- 9846333 remove the authorization header (#10025), closes #10025
- d46ebe2 add back www-authenticate header (#10018), closes #10018
system
- f87f2ed avoid potential NPE in ServiceLivenessManager (#10338), closes #10338
- 298a6c7 ignore state transition failure for indexer
- e36925c fix and cleanup StorageInterface (kestra-io/kestra-ee#4488)
- ec7e65d possible NPE when computing flowable task outputs
- d10b11e merge flowable outputs when terminated
- acca4dd EE compilation
- 6a4397f avoid creating multiple worker job queue
- 2a53f55 force running after execution tasks even if the execution is killed, closes #9852
- d22b7e9 fix ExecutionControllerRunnerTest.resumeExecutionPaused()
- 5493f53 revert Property type changed to string in openapi spec
- 9813d60 possible NPE on trigger when computing variables
- ebe1f3f flow graph fail to be created while editting a flow, closes #9551
- b9f224c SettingRepository test
- 695f684 support allowFailure and allowWarning for the Pause task, closes #9416
- 3dbb1d7 allow service to move from CREATED to TERMINATING (#9408), closes #9408
- 5304630 avoid starting two queues for WorkerJob and WorkerTriggerResult, closes #9007
- 1ed60ba import flow should set the tenantId
taskrunner
- 023d005 abstract task runner (#9769), closes #9769
tasks
- 289a26b sleep example are a full one
test
- 2c68c70 flaky test JdbcQueueTest.withGroupAndType()
- 552d55e RestactCaseTest.restartFailedWithFinally() should use executionService.isTerminated()
- 07fd74b flaky ExecutionControllerRunnerTest.triggerExecutionAndFollowDependencies()
tests
- 77c4691 rework basic auth service test (#10409), closes #10409
- 6e0a1c6 increase the sleep inside ExecutionControllerRunnerTest.triggerExecutionAndFollowDependencies()
- 95d95d3 fix assertions in DateFilterTest.now()
- 6b8d3d6 flaky test with wire mock not staring fast enough (#10383), closes #10383
- 60eef29 await for terminated execution instead of sleep in ExecutionControllerRunnerTest.killByIdShouldFailed()
- 20ca7b6 increase wait time to 10 in LogConsumerTests.logs()
- 4c79576 improve JdbcQueueTest flaky tests
- aecd4cc strengthen awaitExecution predicate
- 3a3dadd timezone issue
- eb8c5ec move back wiremock port due to hardcoded in application.yml
- 6e7f3a6 avoid wiremock port collision
- 39e08ab deleted db serialization was broken in recent commit
- bfe4d7b TestSuite fields were almost all required in openapi spec
- 70b9dde testcases were not fully validated
- 01ccd0d test editor was showing previous shown plugin doc
triggers
- ea46505 bulk action on triggers did not take into account this is async (#10307), closes #10307
- c31fae4 ensure clearing the selection. (#10245), closes #10245
- 1331513 only updates the trigger that matches both flow and trigger Id (#10158), closes #10158
- 2543ad7 disable backfill execution based on yaml definition (#10026), closes #10026
- 1d7574b correctly replace the update triggers when disabling
- 5b5cca3 #4110 NPE when disable trigger with empty body (#9635), closes #4110 #9635
ui
- ea6d30d load correctly filters + refresh dashboard on filter change (#10504), closes #10504
- 0c5e190 reorder collapse items and refine connection properties to show only non required in collapsed (#9673), closes #9673
- f826d9a update label styles for better visual (#10070), closes #10070
- c468083 properly update theme switching (#10065), closes #10065
- 1b7034d fixes color for icon and label in light theme (#10032), closes #10032
- 0f6ae24 fixes basic auth handling (#10010), closes #10010
- a7307b6 openGroup to directly open the first plugin element (#9964), closes #9964
- 27d1069 fixes merge snafu and warning lastExecutionByFlowReady (#9962), closes #9962
- dfc0bcb fix types of axios (#9676), closes #9676
- 99fca84 adjust logo in collapsed state (#9761), closes #9761
- aedfbdc remove Close Task button in NoCode editor (#9661), closes #9661
- 4257168 deletion of namespace files depend on node not data (#9666), closes #9666
- 651fdc1 default value for expression cannot be null (#9636), closes #9636
- 105b8ec make file panel appear beside main panel in namespace (#9546), closes #9546
- 1fa1f0c make array and KV Pairs work in nocode
- bb746e5 avoid validation API call when Flow editor is empty (#5387) (#9538), closes #5387 #9538
- 007ace6 nocode API calls on EE needs tenant (#9527), closes #9527
- f700b8a snafu on duplicate input pair (#9514), closes #9514
- 576c5cf [nocode] make dag tasks work (#9506), closes #9506
- 26df3e9 Better duplicate key management in the pair component (#9431), closes #9220 #9431 #9491
- 079874e resolve filter display inconsistency between dark and light themes (#9487), closes #9398 #9487
- a5928fd nocode updating inputs from yaml (#9430), closes #9430
- efed3cb rename namespace field (#9492), closes #9492
- fab1bb0 prevent cursor change in Editor component when modelValue is updated from outside (#9371), closes #9371
- aaea1e0 restore add button as a button
- a09fd76 use type button instead of button
- a3f0001 base the required prop on the requiredProperties list (#9433), closes #9377 #9433
- 5b6311a amend visiblity of labels (#9475), closes #9475
- 5eafa90 make download and preview visible for text ouputs (#8348), closes #8348
- d31d8db variables should work with duplicated keys (#9425), closes #9425
- ee3afb5 add datepicker to nocode string field (#9351), closes #9351
- 1dcccb7 nocode - open onPause in a new tab (#9366), closes #9366
- d83339d Tabs that are not blueprint should appear only once (#9370), closes #9370
- 51afdfd clear selection of retry form radio buttons (#9268), closes #9268
- ad2eb8a allow key of sub-tasks to be other than tasks (#9333), closes #9333
variables
- 7463be3 put fixtures files with arbitrary key and extract it back as root level "files" variable (#9689), closes #9689
webserver
- 910bceb server exceptions were not logged when no message
- 833fa56 fix reason in ErrorController (#9897), closes #9897
global
- 9c6b926 restore InputForm (#10568), closes #10568
- 0357321 Updated InputsForm.vue to clear Radio Button Selection (#9654), closes #9654
- a63cb71 remove debugging value from playground (#10541), closes #10541
- db5d83d add missing webhook releases secrets for github releases
- 1068c9f handle empty flows list in lastExecutions correctly (#10493), closes #10493
- 0d5b593 fix(): fix icons
- c68c1b1 set postgres and mysql queue offset as a bigint (#10344), closes #10344
- b1d41f6 handle label filter with and instead or for flow, closes #4390
- 90eb0ff basePath is now a function
- 4e1c4b7 curl feature needs baseUrl as a function (#10092), closes #10092
- 6fb0858 basic auth commented out by default to load setup page first
- 732f1d9 patch element plus for tabs (#10034), closes #10034
- 9c6b59c bring back lastexecution endpoint (#9973), closes #9973
- 094ab82 avoid failure to deserialize json objects that have unknown fields with http client (#9668), closes #9667 #9668
- 5682d12 correctly use default tenant when synchronizing file with local (#9605), closes #9568 #9605
- 6953e9f cleanup empty metadata to fix variable creation (#9529), closes #9529
- f15919b small tweaks on tabs (#9520), closes #9520
- 92cddfc fix(): display correctly doc/chart preview when editing custom dashboard, closes #9411
- 91983cb properly detect condition fields (#9353), closes #9353
- 367f49d initialize array fields without any value (#9367), closes #9367
🏭 Tests
core
- d08d345 fix falling test on schedule
e2e
- 710f9a3 include E2E tests in PR CI (#10036), closes #10036
executions
- 93b9932 improve reliability of the ExecutionControllerRunnerTest
processor
- 2b33247 add edge-case tests for ServicesFiles utility (#8828), closes #8828
storage
- 8080bbf unflaky StorageTestSuite.filesByPrefix
🔄️ Changes
ai
- 2435223 migrate ai store from Vuex to Pinia (#10174), closes #10174
core
- b720105 migrate misc store module to pinia (#10048), closes #10048
- 7de415e migrating doc store module to pinia (#9882), closes #9882
- 157e942 migrate taskrun to Pinia (#9953), closes #9953
- 3c4c1ed improve translation pull request description (#9938), closes #9938
- ce1f8a5 remove default reviewers on translation pull requests and add frontend team mention (#9935), closes #9935
- c4581d1 change default reviewers on translation pull requests to frontend team (#9931), closes #9931
- 5c9bb7a change default reviewers on translation pull requests (#9929), closes #9929
- c145a02 open translation pull request on the selected branch instead of develop (#9924), closes #9924
- 64121eb open translation pull request on the selected branch instead of develop (#9922), closes #9922
- 250ada9 open translation pull request on the selected branch instead of develop (#9919), closes #9919
- 82a8a11 simlify code in plugin documentation (#9900), closes #9900
- f60cc48 migrates trigger module to pinia (#9896), closes #9896
- c8e61ba migrates core.js to pinia (#9858), closes #9858
- 574d75c properly import github icon to be used in template section (#9403), closes #9403
dashboards
- 25592ec minor improvements of dashboard components code (#10085), closes #10085
- ad87583 strengthen types for dashboard store module (#9917), closes #9917
- 0e2d537 move the dashboard selector to proper place and clean up the code (#9883), closes #9149 #9872 #9883
- 4d4f822 improve process of dashboard creation (#9530), closes #9149 #9530
- e8c6a45 further clean up of the ui code related to dashboards (#9521), closes #9149 #9521
- 839836a add missing translations related to dashboards (#9519), closes #9519
- 7456440 clean up ui code related to dashboards (#9421), closes #9149 #9421
layout
- b2f8c89 migrate layout.js from vuex to Pinia. (#9687), closes #9687
pebble
service
- 1014cde migrate service.js to pinia (#9760), closes #9760
stat
- 8e50da8 migrate stat store from Vuex to Pinia (#9750), closes #9750
store
- 14e853c remove unused graph store module (#10144), closes #10144
- 83e1d77 migrate Blueprints to Pinia (#9735), closes #9735
template
- 1336cca migrate template module to pinia (#10226), closes #10226
ui
- 3637f4f only load the schemaType once per page (#9619), closes #9619
- 2b59d9e migrate bookmarks store to pinia (#9685), closes #9685
- bc8c8d4 load a sample schema while waiting (#9558), closes #9558
global
- b70faea migrate executions store from vuex to pinia (#10093), closes #10093
- d9371c1 integrate vuex & axios with pinia (#9626), closes #9626
- cbd0b8a fix font-size of label (#9634), closes #9634
- 9c052c0 start replacing vuex with pinia (#8430), closes #8430
- bd576d6 remove package lock json added by mistake
- 31e9323 avoid duplicating vite alias
- 2a808be load nocode root form from server schema (#9327), closes #9327
🛠 Build
ci
- 679befa allow downloading the exe from the workflow and not the release
- c39a6a9 fix setversion workflow not making tag push trigger main
core
- 5dafbee Replaced Microsoft Java with Temurin distribution on dev container
deps
- c6310f0 bump com.github.ben-manes.caffeine:caffeine
- 21ba59a bump org.postgresql:postgresql in the gradle group
- 1925d78 bump axios in /ui in the npm_and_yarn group (#10305), closes #10305
- ac9f44b bump flyingSaucerVersion from 9.13.0 to 9.13.1
- c287304 bump com.google.cloud:libraries-bom from 26.63.0 to 26.64.0
- 298e9f3 bump com.microsoft.playwright:playwright
- ebd47b3 bump software.amazon.awssdk:bom from 2.32.1 to 2.32.6
- 48a3a3c bump jacksonVersion from 2.19.1 to 2.19.2
- fc7b773 bump com.mysql:mysql-connector-j from 8.0.33 to 9.3.0
- 06ffa66 bump commons-io:commons-io from 2.19.0 to 2.20.0
- 3d0b2b7 bump the npm_and_yarn group in /ui with 3 updates (#10236), closes #10236
- f54ed8a bump io.micrometer:micrometer-core from 1.15.1 to 1.15.2
- 6a796b0 bump com.gorylenko.gradle-git-properties
- a44b7f7 bump org.opensearch.client:opensearch-java
- 85b5002 bump org.apache.logging.log4j:log4j-to-slf4j
- 4fd66d7 bump com.vanniktech.maven.publish from 0.33.0 to 0.34.0
- 362858e bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0
- 06e4c9f bump software.amazon.awssdk:bom from 2.31.77 to 2.32.1
- a71e461 bump software.amazon.awssdk.crt:aws-crt
- cf4f655 bump software.amazon.awssdk:bom from 2.31.75 to 2.31.77
- aa27241 bump com.github.docker-java:docker-java from 3.5.2 to 3.5.3
- ef098c2 bump aquasecurity/trivy-action from 0.31.0 to 0.32.0
- 882ac34 bump software.amazon.awssdk:bom from 2.31.70 to 2.31.75
- e236909 bump com.azure:azure-sdk-bom from 1.2.35 to 1.2.36
- 67518bc bump com.gradleup.shadow from 8.3.7 to 8.3.8
- b1cad2f bump org.testcontainers:testcontainers
- 0687808 bump com.google.cloud:libraries-bom from 26.62.0 to 26.63.0
- 90d30bb bump com.github.docker-java:docker-java from 3.5.1 to 3.5.2
- fcf5215 bump flyingSaucerVersion from 9.12.1 to 9.13.0
- 856db91 bump com.google.adk:google-adk from 0.1.0 to 0.2.0
- d4891d1 bump opensearchRestVersion from 3.0.0 to 3.1.0
- bff6865 bump software.amazon.awssdk:bom from 2.31.65 to 2.31.70
- ebc8879 bump org.jsoup:jsoup from 1.20.1 to 1.21.1
- 710d2f6 bump com.gradleup.shadow from 8.3.6 to 8.3.7
- 48de33d bump org.testcontainers:testcontainers
- 59b837e bump com.microsoft.playwright:playwright
- 37bd6e1 bump jacksonVersion from 2.19.0 to 2.19.1
- a514500 bump org.apache.logging.log4j:log4j-to-slf4j
- 39d31f4 bump nl.basjes.gitignore:gitignore-reader
- 35eef54 bump software.amazon.awssdk:bom from 2.31.61 to 2.31.65
- f8aa9cc bump org.wiremock:wiremock-jetty12 from 3.13.0 to 3.13.1
- 0218931 bump flyingSaucerVersion from 9.12.0 to 9.12.1
- 369d4ba bump org.jooq:jooq from 3.20.4 to 3.20.5
- 0d1f7a4 bump io.micrometer:micrometer-core from 1.15.0 to 1.15.1
- 7e312b8 bump software.amazon.awssdk.crt:aws-crt
- 250c219 bump software.amazon.awssdk:bom from 2.31.59 to 2.31.61
- c1d40e6 bump com.google.cloud:libraries-bom from 26.61.0 to 26.62.0
- 462550d bump org.owasp.dependencycheck from 12.1.2 to 12.1.3
- b54705e bump com.github.ben-manes.caffeine:caffeine
- 43eee22 bump org.owasp.dependencycheck from 12.1.1 to 12.1.2
- eb1fad4 bump com.azure:azure-sdk-bom from 1.2.34 to 1.2.35
- d68a7c6 bump kafkaVersion from 3.9.0 to 4.0.0
- 9f327d2 bump opensearchRestVersion from 2.19.2 to 3.0.0
- 5a3416d bump org.projectlombok:lombok from 1.18.36 to 1.18.38
- f7be856 bump software.amazon.awssdk.crt:aws-crt
- ced3067 bump aquasecurity/trivy-action from 0.30.0 to 0.31.0
- 32a3d37 bump bouncycastleVersion from 1.80 to 1.81
- 3b74190 bump org.opensearch.client:opensearch-java
- e5083e7 bump software.amazon.awssdk:bom from 2.31.50 to 2.31.59
deps-dev
- 7472023 bump brace-expansion in /ui in the npm_and_yarn group (#9496), closes #9496
- ef65793 bump @vitest/coverage-v8 from 3.1.4 to 3.2.1 in /ui (#9300), closes #9300
- 7c44c76 bump typescript-eslint from 8.32.1 to 8.33.1 in /ui (#9309), closes #9309
- 0052537 bump eslint from 9.27.0 to 9.28.0 in /ui (#9306), closes #9306
- 617e425 bump @typescript-eslint/parser in /ui (#9301), closes #9301
tests
- e97f405 replace workspaces with proper storybook config + working aliases
global
- 6f62988 remove codecov for ui #10038, closes #10038
- 2cb361a lower codecev default targets to make it more pertinent
- 3309f69 fix frontend storybook tests (#9484), closes #9484
📝 Documentation
dashboard-data
- 093ae3a fix indentations for dashboard data plugins (#9918), closes #9918
dashboards
- a152204 fix example indentations (#9802), closes #9790 #9802
schedule
- 0c73084 mention Sunday day-of-the-week alias (#9961), closes #9961
tests,flows
- dcc5c34 set loosely types fields like input and variable as additional properties
- 33f0b53 fix(flows)*: load flow for execution needs to be stored most of the time (#10566), closes #10566
- f717bc4 update frontend-tests (#10380), closes #10380
- 9d82df6 Revert "fix(core): fixes cumbersome operator selection (#10322)" (#10377), closes #10322 #10377
- f0ab8a3 fix(system)*: don't mix constructor injection with field injection
- ca96c7b fix(namespaces)*: prevent overwriting namespace file content with undefined string (#10247), closes #10247
- 6bc1e3e fix(executions)*: restart with finally or afterExecution, closes #10155
- 581442c feat(security) #10180 open basic auth validation endpoint (#10190), closes #10180 #10190
- fe48524 fix(security) #10133 add password validation and save error in database for the front to use (#10177), closes #10133 #10177
- c8d89db fix(security) #10133 server error when no basic auth configuration persisted (#10175), closes #10133 #10175
- 278dbd8 fix(security) #10133 ignore enable=true flag from basic auth config (#10148), closes #10133 #10148
- f2fd9f3 fix(security) #10133 basic auth config always takes priority (#10145), closes #10133 #10145
- 4afa7dc fix(security) #4311 filter only kestra endpoints (#9971), closes #4311 #9971
- b705459 Merge remote-tracking branch 'origin/develop' into develop
- ff8c224 fix(security) #4311 add basic auth whitelist for config and add new c… (#9968), closes #4311 #9966 #9968
- f54c46e Revert "feat(core): introducing OSS authentication user creation and login logout (#9683)", closes #9683
- 475c8d3 fix(webserver)*: bulk set labels remove existing labels, closes #9764
- ae44263 run all tests (#9868), closes #9868
- 05787ef fix(namespaces)*: take pagination into account when browsing namespace flows (#9849), closes #9805 #9849
- c56f377 fix(system)*: mitigate possible deadlock for execution delay and SLA
- 09adee6 Update Request.java multiline JSON example
- c9debbd remove unused constant (#9751), closes #9751
- 1d9b5d2 Fix(UI) execution charts values (#9669), closes #9669
- 9fa5f6d feat(executions)*: add tasks to set and unset execution variables, closes #9555
- a623b4c fix(system)*: runIf inside a WorkingDirectory can crash the Worker, closes #9639
- 1d66f7e Fix/failing backup unit test (#9642), closes #9642
- 1139a16 nocode editor (#9624), closes #9624
- 1e55003 Revert "refactor: start replacing vuex with pinia (#8430)", closes #8430
- 7fc274f Fix/tutorial flows with migration (#9620), closes #9609 #9620
- 185fa80 Feat/clean query filters (#9569), closes #4106 #9569
- f009263 Revert "fix(plugin): FileSystems.newFileSystem caused a Path component should be / in plugins tests (#9562)", closes #9562
- 4557bc8 flows: add e2e create and execute Flow test
- aea8d6e fix storybook tests
- 62fc839 Fix Sidebar Scrollbar and Version Text Wrapping, Minimize Panel Styles (#9528), closes #9528
- 8678d2d fix(core)*: make sure tour always opens with code & topology tabs visible (#9513), closes #9513
- 6d0f6c1 Translations from en.json (#9501), closes #9488 #9501
- cfa5ba5 Feat/rework compatibility layer (#9490), closes #4062 #9490
- edc32f6 fix(core)*: properly display chart colors for logs (#9429), closes #9429
- a92aa03 fixed blueprint redirection in namespace (#9330), closes #9330
- 62e718f e2e: add workflow dispatch to launch manually
- 762b0ec core: add storybook on executions filters (#9354), closes #9354
⚠️ Breaking Changes
All Editions: Executions Endpoint Now Requires filename
for FILE
type Inputs
Starting with 0.24, uploading a file to an input of type FILE
requires using:
- The part name for the input ID → the key must be set to the
id
of yourFILE
-type input and the value to@path
e.g.myfile=@/path/to/test.txt
- The part filename attribute for the file's name → this must include the
filename
keyword as a key, and filename and its extension as value, e.g.filename=test.txt
.
Let’s take the following flow as an example:
id: demo
namespace: company.team
inputs:
- id: myfile
type: FILE
tasks:
- id: print_file_content
type: io.kestra.plugin.core.log.Log
message: "{{ read(inputs.myfile) }}"
To execute that flow via curl
:
- Before 0.24 (now deprecated):
curl -v "http://localhost:8080/api/v1/executions/company.team/demo" \
-H "Content-Type:multipart/form-data" \
-F "files=@/tmp/test.txt;filename=myfile"
- Since 0.24:
curl -v "http://localhost:8080/api/v1/executions/company.team/demo" \
-H "Content-Type:multipart/form-data" \
-F "myfile=@/tmp/test.txt;filename=test.txt"
In short, you must use the input ID as the part name and provide the real file name as the filename attribute. Refer to issue #5987 for details.
OSS: Basic Authentication Now Required
Basic authentication is now mandatory for all open-source Kestra deployments, including local and development environments. The enabled
flag is ignored; users must set both a username and password to access the UI and API.
Credentials can be configured via the Setup Page in the UI or directly in configuration:
kestra:
server:
basicAuth:
username: admin@kestra.io
password: Admin1234
- For new installations, use the Setup Page.
- For upgrades, review the Basic Authentication Troubleshooting guide for migration scenarios.
For production, set a valid email address and a strong password in your configuration.
Enterprise Edition: IAM and API Endpoint Changes
To streamline API usage, reduce ambiguity, and improve security and manageability for large organizations, the IAM and related API endpoints have been significantly revised in 0.24. These changes consolidate user, group, and role management around explicit, well-defined routes and permissions, and remove redundant or confusing API paths.
Global API Changes:
/v1/api/{tenant}/me
moved to/v1/api/me
/v1/api/cluster
moved to/v1/api/instance
- All
/v1/api/{tenant}/users
endpoints are removed:- Use
/v1/api/users
(instance-level, Superadmin only) - Use
/v1/api/{tenant}/tenant-access
for tenant access management - Use
/v1/api/{tenant}/service-accounts
for service account management
- Use
- All Superadmin endpoints under
/v1/api/tenants/{tenant}/groups
,/bindings
,/roles
,/invitations
, and/namespaces
are removed.
Role APIs:
GET /v1/api/tenants/{tenant}/roles/[search|autocomplete]
now only returns operation-relevant fields;tenantId
,deleted
,description
, andpermissions
have been removed.GET /v1/api/tenants/{tenant}/roles/{id}
now only returns relevant fields;tenantId
anddeleted
are removed.POST/PUT /v1/api/tenants/{tenant}/roles
: the request body now excludesid
,tenantId
, anddeleted
.
Group APIs:
GET /v1/api/tenants/{tenant}/groups/[search|autocomplete]
now only returnsid
andname
.GET /v1/api/tenants/{tenant}/groups/{id}
now only returnsid
,name
, anddescription
.POST/PUT /v1/api/tenants/{tenant}/groups
the request body now excludesid
,tenantId
, anddeleted
.GET /v1/api/tenants/{tenant}/groups/{groupId}/members
and/members/{userId}
now return onlyid
,username
,displayName
, andgroups
.
RBAC Updates:
- Permissions
API_TOKEN
andME
are removed. - New permissions:
SERVICE_ACCOUNT
for managing service accountsINVITATION
for managing invitationsTENANT_ACCESS
for managing users in a tenantGROUP_MEMBERSHIP
for group membership management
- The
USER
permission is now only required for SCIM integration.
Action Required for applications built on top of Kestra API:
- Update any API clients or scripts that interact with affected endpoints.
- Review permission assignments and RBAC configurations to use the updated permissions.
- For file uploads, ensure the request format matches the new requirements.
All Editions: LangChain4j Plugin Renamed to Plugin AI
The langchain4j
plugin, which remains in Beta, has been renamed to plugin-ai
to reflect the framework-agnostic, declarative nature of that plugin. The plugin is now accessible from (kestra-io/plugin-ai)[https://github.com/kestra-io/plugin-ai] repository. All flow definitions and references to the previous io.kestra.plugin.langchain4j.*
package must be updated to the new io.kestra.plugin.ai.*
namespace.
Example (0.23):
id: chat_completion
namespace: company.team
inputs:
- id: prompt
type: STRING
tasks:
- id: chat_completion
type: io.kestra.core.plugin.langchain4j.completion.ChatCompletion
provider:
type: io.kestra.plugin.langchain4j.provider.GoogleGemini
apiKey: "{{secret('GOOGLE_API_KEY')}}"
modelName: gemini-2.5-flash
messages:
- type: SYSTEM
content: You are a helpful assistant, answer concisely, avoid overly casual language or unnecessary verbosity.
- type: USER
content: "{{inputs.prompt}}"
Example (0.24):
id: chat_completion
namespace: company.team
inputs:
- id: prompt
type: STRING
tasks:
- id: chat_completion
type: io.kestra.plugin.ai.completion.ChatCompletion
provider:
type: io.kestra.plugin.ai.provider.GoogleGemini
apiKey: "{{ secret('GOOGLE_API_KEY') }}"
modelName: gemini-2.5-flash
messages:
- type: SYSTEM
content: You are a helpful assistant, answer concisely, avoid overly casual language or unnecessary verbosity.
- type: USER
content: "{{inputs.prompt}}"
Make sure to update all flow definitions and provider types to use the new package and repository. For more information, refer to the plugin-ai repository.
Contributors
We'd like to thank the following people for their contributions:
AJ Emerich, Abhilash T, Aditya, Anna Geller, Anusha G H, Bart Ledoux, Barthélémy Ledoux, Biplab Bera, Daniel Rivas, Devesh Kumar, Emil Shakirov, Florian Hussonnois, François Delbrayelle, GitHub, GitHub Action, JAGADEESH E, Karthik D, Karuna Tata, Kelvin Yim, Loïc Mathieu, Ludovic DEHON, Malay Dewangan, Malaydewangan09, MilosPaunovic, Miloš Paunović, Nicolas K., Piyush Bhaskar, Piyush-r-bhaskar, Prayag, Rishi Jat, Roman Acevedo, Sarthak Ladhwe, Satvik Kushwaha, Sjoerd Smink, Tanvir Ahmed, Tijn Koppert, YannC, YannC., ben8t, bishalbera, brian-mulier-p, brian.mulier, dependabot[bot], enumura, github-actions[bot], nKwiatkowski, rajatsingh23, rkitamu, skayliu, weibo1, yashmurthy98, yuri, yuri1969