Compare commits

..

1900 Commits

Author SHA1 Message Date
Roman Acevedo
01af20ad6d fix(executions): make state_duration generated on queries
- fixes https://github.com/kestra-io/kestra/issues/11593
2025-10-06 10:11:44 +02:00
Ankit Anand
fa5108a6e9 chore(core): add a drop shadow behind the ai copilot prompt dialog (#11740)
Closes https://github.com/kestra-io/kestra/issues/11424.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-10-06 10:01:20 +02:00
Loïc Mathieu
a566c527cc fix(system): rename back to listKeysWithInheritence()
As changing a controller method name is a BC
2025-10-06 09:48:57 +02:00
Loïc Mathieu
d0c3c1daa0 Revert "fix(core): properly encode filenames with spaces in URI (#11599)"
This reverts commit aff8fde79d.
2025-10-06 09:20:48 +02:00
Pablo Carvalho
5542aeef01 chore(core): improve the namespace files and folders deletion process (#11747)
Relates to https://github.com/kestra-io/kestra/issues/8423.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-06 09:19:45 +02:00
Will Russell
cf706a670e fix(readme): safari rendering (#11722)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-04 11:04:31 +01:00
Muhammad Ali Khan
f91f28f2a5 refactor(core): convert vue component to typescript and composition api (#11730)
Closes https://github.com/kestra-io/kestra/issues/11716.

Co-authored-by: alikhan0616 <m.alikhan0616@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-04 09:49:26 +02:00
zhou yong kang
db49b03269 refactor(core): convert vue component to typescript and composition api (#11732)
Closes https://github.com/kestra-io/kestra/issues/11715.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-04 09:46:37 +02:00
Carlos Longhi
e96da8ee43 refactor(core): convert vue component to typescript and composition api (#11734)
Closes https://github.com/kestra-io/kestra/issues/11714.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-10-04 09:43:20 +02:00
Miloš Paunović
e501fcb8cb build(core): remove unused node script (#11706) 2025-10-04 08:00:33 +02:00
Roman Acevedo
9a8e84d460 ci: fix main build missing some secrets (#11727) 2025-10-03 16:42:41 +02:00
Loïc Mathieu
f2b290dc32 fix(executions): purge executions by 100 by default
As 500 may be too much if executions are huge as the batch will be loaded in memory.
2025-10-03 16:37:24 +02:00
Roman Acevedo
a1b5d1b8e8 ci: migrate CI to kestra-io/actions (#11577)
- advance on CI migration https://github.com/kestra-io/kestra-ee/issues/4856
2025-10-03 16:26:30 +02:00
Barthélémy Ledoux
f541d77f0d fix: update the topology when updating code or no-code (#11675) 2025-10-03 16:05:19 +02:00
Karuna Tata
57ad7bdd96 add cmd+s (#11643) 2025-10-03 16:01:14 +02:00
Loïc Mathieu
6ee910a2ec feat(executions): improve performance of PurgeExecutions by batch deleting executions, logs and metrics
Closes #11680
2025-10-03 15:24:44 +02:00
vivekkumar04-max
289a159dfd chore(executions): ensure gantt task duration is never invisible in width (#11564)
Closes https://github.com/kestra-io/kestra/issues/10787.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-03 15:03:44 +02:00
Loïc Mathieu
7e24495f71 fix(system): potential NPE in Execution.withTaskRun()
This should never happen as normally we should have taskrun already in place whenever we call this method.

But a user report seeing it and I also already seen it once or two. I think it can happen when there is an unexpected event (like a restart or a bug somewhere else that lead to an execution in an unexpected state) so it's better to fix it to be more resilient.

Fixes #11703
2025-10-03 14:28:40 +02:00
Vedant794
aff8fde79d fix(core): properly encode filenames with spaces in URI (#11599)
* Fix the issue of downloading the file with space in name

* fix(core): encode filenames with spaces in URI and add test

* fix: Indent Issue and remove the empty unnecessary lines

* Resolve the error in DownloadFileTest

* Fix: DownloadFileTest issue

* resolve the weirdName issue
2025-10-03 14:16:59 +02:00
github-actions[bot]
104d1c859c chore(core): localize to languages other than english (#11711)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-10-03 14:05:14 +02:00
Kishore Kumar D
e20da7d5be chore(core): set a fixed width for the state column in the table (#11702)
Closes https://github.com/kestra-io/kestra/issues/11697.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-03 12:11:23 +02:00
brian.mulier
c0f4bda10e fix(tests): new namespace was introduced 2025-10-03 12:04:08 +02:00
brian.mulier
b608c5a3b8 chore(deps): bump langchain4j from 1.6.0 to 1.7.1 2025-10-03 12:04:08 +02:00
Karan Manickam
69c12874e4 chore(namespaces): prevent creating a new directory if one with the same name already exists (#11679)
Closes https://github.com/kestra-io/kestra/issues/11653.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-03 11:46:47 +02:00
Loïc Mathieu
5c24308e71 fix(executions): evaluate multiple conditions in a separate queue
By evaluating multiple condition in a separate queue, we serialize their evaluation which avoir races when we compute the outputs for flow triggers.
This is because evaluation is a multi step process: first you get the existing condtion, then you evaluate, then you store the result. As this is not guarded by a lock you must not do it concurrently.

The race can still occurs if muiltiple executors run but this is less probable. A re-implementation would be needed probably in 2.0 for that.

Fixes https://github.com/kestra-io/kestra-ee/issues/4602
2025-10-03 10:35:49 +02:00
Jéssica de Brito
8fee5fc172 fix(core): make multi-selection of namespace files work (#11694)
Closes https://github.com/kestra-io/kestra/issues/11677.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-03 09:56:18 +02:00
Florian Hussonnois
f633766bb9 fix(core): catch any exception on schema generation 2025-10-03 09:36:44 +02:00
brian-mulier-p
f38b57ca4b fix(core): avoid crashing UI in case of multiline function autocomplete (#11684) 2025-10-03 09:36:09 +02:00
YannC
9c3bf2c26b fix: set Label schema definition as list of label only, deprecate old… (#11648)
* fix: set Label schema definition as list of label only, deprecate old serdes for it and add schema definition for label

related to kestra-io/client-sdk#62

* fix: Modified the @Schema to avoid remove the map.class definition in schema annotation
2025-10-03 09:04:15 +02:00
YannC
3a4e683685 fix: use filters query instead of deprecated prop to filter by triggerExecutionId when clicking on failed execution of a ForEachItem (#11690) 2025-10-02 23:50:59 +02:00
mustafatarek
a50c2c9ceb refactor(kv): update namespace filtering for readability 2025-10-02 17:42:32 +02:00
mustafatarek
e4c35806cf fix(test): update test assertion for listKeysWithInheritance() to be on ancestor keys only 2025-10-02 17:42:32 +02:00
mustafatarek
2431567ee0 fix(core): exclude current namespace in listKeysWithInheritance
- Returns only ancestor namespaces
- Handles single-level namespace edge case
- Verified with KVControllerTest
2025-10-02 17:42:32 +02:00
Jéssica de Brito
f6a496fb74 chore(core): make the table's select-all functionality reactive within the mixin (#11674)
Closes https://github.com/kestra-io/kestra/issues/11654.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-10-02 15:27:03 +02:00
Sanket Mundra
612e17a510 chore(core): make the table's select-all functionality reactive within the composable (#11672)
Closes https://github.com/kestra-io/kestra/issues/11654.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-10-02 15:26:36 +02:00
Carlos Longhi
2814f8f159 chore(executions): auto-expand all cascading fields inside the execution overview page (#11673)
Closes https://github.com/kestra-io/kestra/issues/11289.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-02 14:39:19 +02:00
aditya jha
279442bc8e chore(core): update cursor style of the validation button in flows (#11664)
Closes https://github.com/kestra-io/kestra/issues/11382.

Co-authored-by: aditya-jha-material <141742732+aditya-jha-material@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-02 13:16:54 +02:00
Barthélémy Ledoux
d671f04de2 fix(flows): when user select nocode as default editor, add buttons need to work (#11591) 2025-10-02 10:10:09 +02:00
Florian Hussonnois
b7262f8f01 fix(core): properly publish CrudEvent for killed execution
Fixes: kestra-io/kestra-ee#5165
2025-10-01 16:54:18 +02:00
Loïc Mathieu
af00ee94f9 fix(flows): flow validation could NPE when the id is not set
This is because contains on an unmodified collection throws NPE is the param is null
2025-10-01 16:46:27 +02:00
Pablo Carvalho
b628c3a218 feat(core): add support for brazilian portuguese localization (#11596)
Closes https://github.com/kestra-io/kestra/issues/11527.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-10-01 15:31:03 +02:00
Syed Mohammad Anas Faaiz
0ed8193314 fix(flows): amend option to select all flows in the table (#11604)
Closes https://github.com/kestra-io/kestra/issues/11565.
Closes https://github.com/kestra-io/kestra/issues/11567.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-10-01 14:39:03 +02:00
Roman Acevedo
513e302bb2 fix(executions): try to mitigate SSE and debug log SSE errors
- advance on https://github.com/kestra-io/kestra/issues/11608
2025-10-01 13:15:11 +02:00
YannC
296fb2fb7a feat: implement Flows as a DataSource for dashboards (#11439)
* feat: implement Flows as a DataSource for dashboards

* chore: review changes

* fix: method signature changes from another commit apply in new flow fetchData method
2025-10-01 12:57:25 +02:00
Ludovic DEHON
5d883e0850 test(flows): add a bulk unit test 2025-10-01 11:50:36 +01:00
Piyush Bhaskar
8d31d5407c fix(core): remove bg color (#11651) 2025-10-01 16:13:30 +05:30
Miloš Paunović
f0720412d9 fix(core): amend add/edit actions from topology view (#11589)
Closes https://github.com/kestra-io/kestra/issues/11408.
Closes https://github.com/kestra-io/kestra/issues/11417.
2025-10-01 12:14:53 +02:00
Loïc Mathieu
cb3ff02057 fix(executions): killing queued exec. didn't respect concurrency limit
There was two issues here:
- When killing a queued execution, the associated ExecutionQueued record was not deleted
- When terminating a killed execution that has concurrency limit, we poped an execution even if the execution was not running (no associated ExecutionRunning record) which may exceed concurrency limit

Fixes #11574

I also fix the TestRunnerUtils that should test the predicate before returning the last execution not after.
2025-10-01 12:11:53 +02:00
Kishore Kumar D
06ec05026e fix(executions): Changed the iteration value of ForEachItem to 0 instead of 1 (#11518)
* using element plus native splitter el-splitter for resing the side panel

* chore

* ForEachItem iteration now starts with 0 instead of 1

* updated the tests for "ForEachItem" to handle iteration starting from 0

* update TaskRun.java to start iteration with 0

* forEachItem test case fixed

* Resolved task also need to starts iteration at 0

---------

Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
2025-10-01 12:02:30 +02:00
dependabot[bot]
6a0929a050 build(deps): bump com.github.ben-manes.versions from 0.52.0 to 0.53.0
Bumps com.github.ben-manes.versions from 0.52.0 to 0.53.0.

---
updated-dependencies:
- dependency-name: com.github.ben-manes.versions
  dependency-version: 0.53.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:48:25 +02:00
Roman Acevedo
7f714c0ffb test: disable flaky shouldReEmitTasksWhenWorkerIsDetectedAsNonResponding 2025-10-01 11:31:48 +02:00
Mustafa Tarek
83b4d285b1 feat(tests): introduce JUnit test support for triggers (#11579)
* fix(core): Add warning logs for mismatched (Parent-Subflow) inputs for subflow plugin.

* feat(test): added JUnit support for trigger testing via @EvaluateTrigger annotation

* refactor(test): improve test to assert on Execution Creation
2025-10-01 11:26:15 +02:00
dependabot[bot]
bc137f2895 build(deps): bump com.google.cloud:libraries-bom from 26.68.0 to 26.69.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.68.0 to 26.69.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.68.0...v26.69.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.69.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:22:29 +02:00
dependabot[bot]
04052f3cbf build(deps): bump dev.langchain4j:langchain4j-community-bom
Bumps [dev.langchain4j:langchain4j-community-bom](https://github.com/langchain4j/langchain4j-community) from 1.5.0-beta11 to 1.6.0-beta12.
- [Release notes](https://github.com/langchain4j/langchain4j-community/releases)
- [Commits](https://github.com/langchain4j/langchain4j-community/compare/1.5.0-beta11...1.6.0-beta12)

---
updated-dependencies:
- dependency-name: dev.langchain4j:langchain4j-community-bom
  dependency-version: 1.6.0-beta12
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:22:19 +02:00
dependabot[bot]
08875d5292 build(deps): bump com.fasterxml.uuid:java-uuid-generator
Bumps [com.fasterxml.uuid:java-uuid-generator](https://github.com/cowtowncoder/java-uuid-generator) from 5.1.0 to 5.1.1.
- [Commits](https://github.com/cowtowncoder/java-uuid-generator/compare/java-uuid-generator-5.1.0...java-uuid-generator-5.1.1)

---
updated-dependencies:
- dependency-name: com.fasterxml.uuid:java-uuid-generator
  dependency-version: 5.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:21:40 +02:00
YannC
189ad6090a fix: allows numerator to be empty for KPI (#11438) 2025-10-01 11:19:35 +02:00
dependabot[bot]
02c896c3c5 build(deps): bump org.apache.httpcomponents.client5:httpclient5
Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.5 to 5.5.1.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.5.1/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.5...rel/v5.5.1)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: 5.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:06:52 +02:00
dependabot[bot]
154754e19c build(deps): bump software.amazon.awssdk:bom from 2.34.2 to 2.34.7
Bumps software.amazon.awssdk:bom from 2.34.2 to 2.34.7.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.34.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:05:57 +02:00
dependabot[bot]
f2c3489f70 build(deps): bump com.h2database:h2 from 2.3.232 to 2.4.240
Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.3.232 to 2.4.240.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.3.232...version-2.4.240)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-version: 2.4.240
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:04:46 +02:00
dependabot[bot]
b741f7e3e7 build(deps): bump dev.langchain4j:langchain4j-bom from 1.5.0 to 1.6.0
Bumps [dev.langchain4j:langchain4j-bom](https://github.com/langchain4j/langchain4j) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/langchain4j/langchain4j/releases)
- [Commits](https://github.com/langchain4j/langchain4j/compare/1.5.0...1.6.0)

---
updated-dependencies:
- dependency-name: dev.langchain4j:langchain4j-bom
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:04:23 +02:00
dependabot[bot]
4d931df726 build(deps): bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0
Bumps org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-version: 3.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 11:00:31 +02:00
Piyush Bhaskar
ff742bfdd4 fix(core): properly delete flows (#11642) 2025-10-01 13:39:50 +05:30
Roman Acevedo
f0451df46f test(kafka): disable flowWaitSuccess and flowTriggerWithConcurrencyLimit 2025-09-30 18:34:33 +02:00
Roman Acevedo
63b8e62b3f test: disable flaky shouldReEmitTriggerWhenWorkerIsDetectedAsNonResponding 2025-09-30 17:55:15 +02:00
Nicolas K.
d243ba65e9 fix(tests): add sleep before restarting to make sure the queue is clean (#11597)
* fix(tests): add sleep before restarting to make sure the queue is clean

* fix(tests): add retry on a flaky test

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-09-30 17:07:27 +02:00
Roman Acevedo
8771aa86a6 test: unflaky other shouldGetReport test 2025-09-30 17:03:39 +02:00
Piyush Bhaskar
8a1cf71b63 fix(core): properly show flow doc in multipanel with the plugin doc (#11590) 2025-09-30 18:00:46 +05:30
Eleftheria Batsou
4b9de17824 chore(core): amend highlight colors of the monaco diff editor (#11458)
Closes https://github.com/kestra-io/kestra/issues/11429.

Co-authored-by: Genie <genie@cosine.sh>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-30 14:00:09 +02:00
Jay-0511
9bc2a9f8f2 fix(core): restore flow export functionality (#11570)
Closes https://github.com/kestra-io/kestra/issues/11532.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-30 13:07:01 +02:00
Loïc Mathieu
0fce77cc8d chore(system): move the SkipExecution service to the services package
It was there before so it will be easier to backport the change if it moves there.
2025-09-30 11:46:20 +02:00
brian-mulier-p
04779e60c3 fix(blueprints): repair blueprints browser (#11578)
closes #11530
2025-09-30 10:29:47 +02:00
YannC
615502c58b fix(ui): avoid having a authentication dialog open when credentials are wrong (#11576) 2025-09-30 08:59:59 +02:00
YannC
08ac558e46 fix(dashboard): show startDate instead of duration in defaults, and avoid formatting date in JDBC if there is no aggregations (#11467)
close #5867
2025-09-29 17:49:10 +02:00
Loïc Mathieu
b43fd14625 feat(system): allow to skip an indexer record
Part-of: https://github.com/kestra-io/kestra-ee/issues/5263
2025-09-29 17:35:43 +02:00
Anna Geller
c5d1e5bd38 feat(documentation panel): enhance markdown in the documentation panel (#11557)
* feat(documentation panel): enhance markdown in documentation panel

- improve rendering of basic.md
- fix outdated docs
- add docs for inputs

* fix: truncated flow examples

* fix: sort pebble functions alphabetically

* fix: pebble expressions cleanup

* fix(ui): resolve conflicts

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-29 16:39:07 +02:00
Barthélémy Ledoux
4d89c5a9e1 refactor: progress on vue-stc (#11561) 2025-09-29 16:21:30 +02:00
Nicolas K.
5154127643 fix(API): implement the exist for tenant method with no ACL filter (#11563)
* fix(API): implement the exist for tenant method with no ACL filter

* clean(API): change method name to include the no acl information

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-09-29 16:11:51 +02:00
Florian Hussonnois
d205159e7e fix(triggers): do not resolve recoverMissedSchedule when enabling back a trigger
Add some refactoring to allow some methods to be overrided
2025-09-29 13:56:08 +02:00
vivekkumar04-max
4f05198ae3 chore(core): ensure chart labels are responsive on smaller screens (#11387)
Closes https://github.com/kestra-io/kestra/issues/10507.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-29 13:50:26 +02:00
Piyush Bhaskar
799500d4d1 feat(plugin): introducing breadcrumb based plugin doc in multipanel flow view (#11544) 2025-09-29 17:07:38 +05:30
Emmanuel Adeniyi Adekeye
9066063037 chore(core): add back star icon for bookmarks in the left menu (#11466)
Closes https://github.com/kestra-io/kestra/issues/11427.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-29 12:51:03 +02:00
YannC
3b0f231eb5 fix: do not provide a enddate by default to avoid running executions being filtered (#11465) 2025-09-29 11:54:01 +02:00
Sandip Mandal
f5a0dcc024 chore(core): make sure kv listing is filterable (#11536)
Closes https://github.com/kestra-io/kestra/issues/11413.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-29 09:30:09 +02:00
Satvik Kushwaha
5c079b8b6b chore(namespaces): update page title on single namespace page (#11551)
Closes https://github.com/kestra-io/kestra/issues/11428.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-29 09:21:26 +02:00
Barthélémy Ledoux
343d6b4eb9 refactor(plugins): update documentation to use typescript and composition api (#11543) 2025-09-27 09:33:26 +01:00
Kenneth Rabe
d34d547412 fix(pebble): correct return format of timestampMicro 2025-09-26 16:51:35 +02:00
Nicolas K.
7a542a24e2 fix(executor): remove debug log (#11548)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-09-26 15:03:08 +02:00
Nicolas K.
5b1db68752 fix(test): flaky test with unwanted repeat test annotation (#11547)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-09-26 14:50:26 +02:00
Nicolas K.
5b07b643d3 fix(test): disable flaky test and add configuration to the ELS indexe… (#11539)
* fix(test): disable flaky test and add configuration to the ELS indexer poll duration

* fix(test): retry a flaky test and fix a flaky

* feat(test): disable a test until we have time to fix the bug

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-09-26 14:19:20 +02:00
Barthélémy Ledoux
0e059772e4 chore: remove posthog in dev mode (#11540) 2025-09-26 10:49:27 +01:00
Loïc Mathieu
f72e294e54 chore(system): log machine information at startup
This will log this kind of line at startup, helping to understand possible infrastructure limitation by looking at the starting logs.

```
14:38:17.018 INFO  main         i.k.c.c.s.AbstractServerCommand Machine information: 16 available cpu(s), 2048MB max memory, Java version 21.0.5+11-LTS
```
2025-09-26 10:55:05 +02:00
Loïc Mathieu
98dd884149 chore(executions): always log errors from the executor
- Logs errors from the Executor catched execution
- Logs errors from the Scheduler catched execution
- Avoid most places where the warning "unable to change state already..." could occur
- Log using the run context logger flow issues from executable tasks so they appears inside execution logs
2025-09-26 10:43:05 +02:00
Loïc Mathieu
26c4f080fd chore(deps): use the version of bcpkix-jdk18on from the platform 2025-09-26 10:42:47 +02:00
yuri1969
01293de91c fix(core): enable runIf at execution updating tasks 2025-09-25 10:23:13 +02:00
Mustafa Tarek
892b69f10e fix(core): Add warning logs for mismatched (Parent-Subflow) inputs (#11431)
* fix(core): Add warning logs for mismatched (Parent-Subflow) inputs for subflow plugin.

* feat: add check and log to FlowInputOutput.java

* enhancement: avoid unnecessary input validation in ExecutableUtils.subflowExecution() when no mismatches exist
2025-09-25 10:08:37 +02:00
yuri1969
6f70d4d275 fix(core): amend test
Adjusted to e1d2c30e which made the execution fail on empty value.
2025-09-25 09:49:19 +02:00
yuri1969
b41d2e456f fix(core): do not allow empty labels
* Filtered empty  entries on Labels task.
* Checking empty Flow labels via validation.
* Adjusted UI to disallow setting empty labels.
2025-09-25 09:49:19 +02:00
UncleBigBay
5ec08eda8c feat (layout): new sidebar total collapse behaviour (#11471)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
Co-authored-by: Piyush Bhaskar <impiyush0012@gmail.com>
2025-09-25 12:06:24 +05:30
dependabot[bot]
7ed6b883ff build(deps): bump io.micronaut.openapi:micronaut-openapi-bom
Bumps [io.micronaut.openapi:micronaut-openapi-bom](https://github.com/micronaut-projects/micronaut-openapi) from 6.18.0 to 6.18.1.
- [Release notes](https://github.com/micronaut-projects/micronaut-openapi/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-openapi/compare/v6.18.0...v6.18.1)

---
updated-dependencies:
- dependency-name: io.micronaut.openapi:micronaut-openapi-bom
  dependency-version: 6.18.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:22:28 +02:00
dependabot[bot]
eb166c9321 build(deps): bump jakarta.mail:jakarta.mail-api from 2.1.4 to 2.1.5
Bumps [jakarta.mail:jakarta.mail-api](https://github.com/jakartaee/mail-api) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/jakartaee/mail-api/releases)
- [Commits](https://github.com/jakartaee/mail-api/compare/2.1.4...2.1.5)

---
updated-dependencies:
- dependency-name: jakarta.mail:jakarta.mail-api
  dependency-version: 2.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:22:05 +02:00
dependabot[bot]
57aad1b931 build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.13 to 0.39.0.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.13...v0.39.0)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:21:47 +02:00
dependabot[bot]
60fe5b5c76 build(deps): bump org.apache.logging.log4j:log4j-to-slf4j
Bumps org.apache.logging.log4j:log4j-to-slf4j from 2.25.1 to 2.25.2.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-to-slf4j
  dependency-version: 2.25.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:21:29 +02:00
dependabot[bot]
98c69b53bb build(deps): bump software.amazon.awssdk:bom from 2.33.11 to 2.34.2
Bumps software.amazon.awssdk:bom from 2.33.11 to 2.34.2.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.34.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:21:10 +02:00
dependabot[bot]
d5d38559b4 build(deps): bump com.github.oshi:oshi-core from 6.8.3 to 6.9.0
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.8.3 to 6.9.0.
- [Release notes](https://github.com/oshi/oshi/releases)
- [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.8.3...oshi-parent-6.9.0)

---
updated-dependencies:
- dependency-name: com.github.oshi:oshi-core
  dependency-version: 6.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:20:50 +02:00
dependabot[bot]
4273ddc4f6 build(deps): bump org.apache.httpcomponents.core5:httpcore5-h2
Bumps [org.apache.httpcomponents.core5:httpcore5-h2](https://github.com/apache/httpcomponents-core) from 5.3.5 to 5.3.6.
- [Changelog](https://github.com/apache/httpcomponents-core/blob/rel/v5.3.6/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-core/compare/rel/v5.3.5...rel/v5.3.6)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.core5:httpcore5-h2
  dependency-version: 5.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:20:10 +02:00
dependabot[bot]
980c573a30 build(deps): bump org.eclipse.angus:jakarta.mail from 2.0.4 to 2.0.5
Bumps org.eclipse.angus:jakarta.mail from 2.0.4 to 2.0.5.

---
updated-dependencies:
- dependency-name: org.eclipse.angus:jakarta.mail
  dependency-version: 2.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:18:43 +02:00
dependabot[bot]
27109015f9 build(deps): bump org.projectlombok:lombok from 1.18.40 to 1.18.42
Bumps [org.projectlombok:lombok](https://github.com/projectlombok/lombok) from 1.18.40 to 1.18.42.
- [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown)
- [Commits](https://github.com/projectlombok/lombok/compare/v1.18.40...v1.18.42)

---
updated-dependencies:
- dependency-name: org.projectlombok:lombok
  dependency-version: 1.18.42
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:18:15 +02:00
dependabot[bot]
eba7d4f375 build(deps): bump bouncycastleVersion from 1.81 to 1.82
Bumps `bouncycastleVersion` from 1.81 to 1.82.

Updates `org.bouncycastle:bcprov-jdk18on` from 1.81 to 1.82
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.bouncycastle:bcpg-jdk18on` from 1.81 to 1.82
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.bouncycastle:bcpkix-jdk18on` from 1.81 to 1.82
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

---
updated-dependencies:
- dependency-name: org.bouncycastle:bcprov-jdk18on
  dependency-version: '1.82'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcpg-jdk18on
  dependency-version: '1.82'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcpkix-jdk18on
  dependency-version: '1.82'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 16:17:53 +02:00
dependabot[bot]
655a1172ee build(deps): bump org.assertj:assertj-core from 3.27.4 to 3.27.6
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.4 to 3.27.6.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.4...assertj-build-3.27.6)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-version: 3.27.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 15:45:31 +02:00
dependabot[bot]
6e49a85acd build(deps): bump org.owasp.dependencycheck from 12.1.3 to 12.1.5
Bumps org.owasp.dependencycheck from 12.1.3 to 12.1.5.

---
updated-dependencies:
- dependency-name: org.owasp.dependencycheck
  dependency-version: 12.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 15:44:40 +02:00
Barthélémy Ledoux
4515bad6bd fix(flows): delete flows should work (#11469) 2025-09-24 09:35:47 +02:00
Loïc Mathieu
226dbd30c9 fix(tests): fix test flow namespace and id 2025-09-24 09:19:31 +02:00
mustafatarek
6b0c190edc feat: added test case covering ForEach Iteration 2025-09-24 09:19:31 +02:00
mustafatarek
c64df40a36 refactor: change iteration to start with 0 2025-09-24 09:19:31 +02:00
mustafatarek
8af22d1bb2 fix(core): fix ForEach plugin task.iteration property to show the correct number of Iteration 2025-09-24 09:19:31 +02:00
Nicolas K.
b294457953 feat(tests): rework runner utils to not use the queue during testing (#11380)
* feat(tests): rework runner utils to not use the queue during testing

* feat(tests): rework runner utils to not use the queue during testing

* test: rework RetryCaseTest to not rely on executionQueue

* fix(tests): don't catch the Queue exception

* fix(tests): don't catch the Queue exception

* fix compile

* fix(test): concurrency error and made runner test parallel ready

* fix(tests): remove test instance

* feat(tests): use Test Runner Utils

* fix(tests): flaky tests

* fix(test): flaky tests

* feat(tests): rework runner utils to not use the queue during testing

* feat(tests): rework runner utils to not use the queue during testing

* test: rework RetryCaseTest to not rely on executionQueue

* fix(tests): don't catch the Queue exception

* fix(tests): don't catch the Queue exception

* fix compile

* fix(test): concurrency error and made runner test parallel ready

* fix(tests): remove test instance

* feat(tests): use Test Runner Utils

* fix(tests): flaky tests

* fix(test): flaky tests

* fix(tests): flaky set test

* fix(tests): remove RunnerUtils

* fix(tests): fix flaky

* feat(test): rework runner tests to remove the queue usage

* feat(test): fix a flaky and remove parallelism from mysql test suit

* fix(tests): flaky tests

* clean(tests): unwanted test

* add debug exec when fail

* feat(tests): add thread to mysql thread pool

* fix(test): flaky and disable a test

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
2025-09-24 08:18:02 +02:00
Loïc Mathieu
02d9c589fb chore(system): remove the task run page
Part-of: https://github.com/kestra-io/kestra-ee/issues/5174
2025-09-23 14:48:30 +02:00
Sanjay Ramsinghani
6340d1c72f chore(core): align toggle icon in failed execution collapse element (#11430)
Closes https://github.com/kestra-io/kestra/issues/11406.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-23 14:14:24 +02:00
Raj Gupta
f439bd53d7 chore(system): clean up filters config (#11405)
closes #11378
2025-09-23 14:11:00 +02:00
github-actions[bot]
e54e3d5308 chore(core): localize to languages other than english (#11464)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-09-23 13:43:37 +02:00
Emmanuel Adeniyi Adekeye
d084f2cd26 chore(core): improve display format in dashboard charts (#11456)
Closes https://github.com/kestra-io/kestra/issues/11171.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-23 13:41:55 +02:00
Ritoban Dutta
015960c78e chore(core): update background color of context panel menu (#11441)
Closes https://github.com/kestra-io/kestra/issues/11426.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-23 12:57:12 +02:00
yummyash
39a09ecb67 chore(core): replace illustration on multi-panel empty screen (#11457)
Closes https://github.com/kestra-io/kestra/issues/11244.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-23 12:54:19 +02:00
Miloš Paunović
45ce878d65 fix(executions): properly parse defaults for json-type inputs (#11459)
Closes https://github.com/kestra-io/kestra/issues/11449.
2025-09-23 12:48:05 +02:00
Miloš Paunović
3ee647b9a8 feat(triggers): show dialog when clicking the backfill button (#11445)
Closes https://github.com/kestra-io/kestra/issues/11433.
2025-09-23 12:24:57 +02:00
github-actions[bot]
7a7cb006bf chore(core): localize to languages other than english (#11455)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-09-23 11:06:08 +02:00
Piyush Bhaskar
911e6d5705 fix(core): fix pagination load data changes (#11453) 2025-09-23 14:25:20 +05:30
brian-mulier-p
bf1458dde7 fix(ai): avoid moving cursor twice after using AI Copilot (#11451)
closes #11314
2025-09-23 10:30:37 +02:00
yuri1969
bd31e0eebd fix(tests): sanitize E2E control scripts 2025-09-23 10:16:06 +02:00
Florian Hussonnois
de02e4dd70 fix(triggers): handle RecoverMissedSchedules on trigger batch update
* Fix and clean code in TriggerController
* Remove duplicate code in Trigger class
2025-09-23 10:06:03 +02:00
Karuna Tata
ec235b91fc feat: add fix with AI button for error tasks (#11416) 2025-09-23 11:53:07 +05:30
brian.mulier
ff1efa9958 fix(system): avoid trigger locking after scheduler restart
closes #11434
2025-09-22 19:26:58 +02:00
brian.mulier
e43c8ce387 fix(ci): add on pull request for release branches 2025-09-22 19:05:05 +02:00
Barthélémy Ledoux
2bd4e82b42 chore: make a lot of progress on the typescript front (#11234)
Co-authored-by: Piyush Bhaskar <impiyush0012@gmail.com>
2025-09-22 13:39:52 +02:00
Jeffrey Ricker
e63d6d1d86 feat(flows): add Pebble nanoId function
* nanoid function

* nanoid function

* Update core/src/main/java/io/kestra/core/runners/pebble/functions/NanoIDFunction.java

Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>

* Update core/src/test/java/io/kestra/core/runners/pebble/functions/NanoIDFuntionTest.java

Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>

* fix: nanoId to parse Long to work with Kestra yaml

---------

Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
2025-09-22 11:30:44 +02:00
Florian Hussonnois
a9752e65f2 chore(websever): make kvStore method in KVController protected
Related-to: kestra-io/kestra-ee#5055
2025-09-22 11:30:10 +02:00
Florian Hussonnois
151c56f3de feat(core): add new findMetadataAndValue to KVStore
Related-to: kestra-io/kestra-ee#5055
2025-09-22 11:30:10 +02:00
Piyush Bhaskar
d562ce3e65 fix: fix ci build error 2025-09-22 11:06:59 +02:00
Florian Hussonnois
681386a05b fix(kvstores): fix description not set when editing 2025-09-22 11:06:59 +02:00
Sehnya
51ddfaf155 chore(core): remove shadow above the user selector (#11364)
Closes https://github.com/kestra-io/kestra/issues/11352.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-22 09:26:24 +02:00
Pratyush Kumar
caee0a293f Add feature to also show an Outputs column in the summary table (#11412)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-09-22 12:25:21 +05:30
github-actions[bot]
ba92880fa3 chore(core): localize to languages other than english (#11414)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-09-22 08:48:58 +02:00
rhodemilk
36b27510fb chore(executions): rename label in overview page (#11363)
Closes https://github.com/kestra-io/kestra/issues/11287.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-22 08:46:48 +02:00
Siddharthrane07
da2907e096 fix(core): show proper light mode tooltip. (#11407)
Co-authored-by: Piyush Bhaskar <impiyush0012@gmail.com>
2025-09-22 12:01:12 +05:30
Ludovic DEHON
9b40665e64 chore(build): use remote actions for java report 2025-09-19 23:56:32 +02:00
Ludovic DEHON
0d35b5b355 fix(system): make skip flow and namespace resilient to errors 2025-09-19 23:53:17 +02:00
Roman Acevedo
339eb79854 ci: migrate kestra-devtools to npm 2025-09-19 16:59:59 +02:00
brian-mulier-p
0ee753529b fix(tests): enforce closing consumers after each tests (#11399) 2025-09-19 16:27:37 +02:00
Miloš Paunović
84668fdfb9 chore(namespaces): add disabled attribute to typescript interface for namespace tabs (#11398)
Related to https://github.com/kestra-io/kestra-ee/issues/4726.
2025-09-19 13:54:37 +02:00
Miloš Paunović
9802f046e8 chore(triggers): amend labels on table column header and switch element (#11395)
Closes https://github.com/kestra-io/kestra-ee/issues/5196.
2025-09-19 11:40:38 +02:00
brian-mulier-p
848b4d6577 fix(core): avoid ClassCastException when doing secret decryption (#11393)
closes kestra-io/kestra-ee#5191
2025-09-19 11:24:39 +02:00
github-actions[bot]
1159bc5eb9 chore(core): localize to languages other than english (#11394)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-09-19 11:05:14 +02:00
Sandip Mandal
9b7ef37d14 fix(core: webhook curl coomand needs tenant. (#11391)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-19 14:06:08 +05:30
Piyush Bhaskar
89dfd18658 fix(admin): humanize label for trigger keys (#11377)
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-19 12:08:20 +05:30
Loïc Mathieu
13ed2252bc fix(executions): computing subflow outputs could fail when the executioin is failing or killing
Fixes https://github.com/kestra-io/kestra/issues/11379
2025-09-18 17:41:13 +02:00
Barthélémy Ledoux
c73b103bb3 fix: restore sidebar icon zindex (#11371) 2025-09-18 14:36:45 +02:00
Will Russell
396a077942 docs(overview): new video (#11374) 2025-09-18 12:56:30 +01:00
Miloš Paunović
68e6fa2a4c feat(flows): save editor panel layout after creation (#11276)
Closes https://github.com/kestra-io/kestra/issues/9887.

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-09-18 12:47:31 +02:00
Piyush Bhaskar
a18748b3b2 refactor(core): remove TaskRuns page (#11366) 2025-09-18 15:58:20 +05:30
Loïc Mathieu
236fcff7b4 fix(executions): concurrency limit should update the executioin
As if it's not updated in the database, it would not be detected as changed so that terminal actions (like purge) would not be done.

Fixes  #11022
Fixes #11025
Fixes #8143
2025-09-18 12:08:54 +02:00
Roman Acevedo
cbbd697732 ci: hide by default error logs in test report PR (#11354) 2025-09-18 12:04:30 +02:00
Loïc Mathieu
6b84737651 fix(executions): the Exit task was not correctly ends parent tasks
Fixes https://github.com/kestra-io/kestra-ee/issues/5168
2025-09-18 11:36:23 +02:00
Florian Hussonnois
6ee7ecbd6b fix(core): fix NPE in JackMapping.applyPatchesOnJsonNode method 2025-09-18 10:57:00 +02:00
Roman Acevedo
504f925085 test: make AbstractExecutionRepositoryTest parallelizable (#11295)
* test: make AbstractExecutionRepositoryTest parallelizable

* feat(tests): play jdbc h2 tests in parallel

* fix(tests): failing unit tests

* tests: add await until timeout on some tests

* fix(tests): failing unit tests

* fix(tests): failing unit tests

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Nicolas K. <nk_mikmak@hotmail.com>
2025-09-17 17:41:10 +02:00
Loïc Mathieu
7d37d2be93 fix(executions): possible NPE on dynamic taskrun
Fixes https://github.com/kestra-io/kestra-ee/issues/5166
2025-09-17 15:55:52 +02:00
brian.mulier
94751a3b21 fix(core): filters weren't applying anymore 2025-09-17 12:55:17 +02:00
Piyush Bhaskar
ba83b91680 fix(core): conditionally disable current route (#11353) 2025-09-17 15:51:12 +05:30
Piyush Bhaskar
56f62fb89f fix(core): show subgroups card only if exist, else show main group (#11348)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-17 15:18:21 +05:30
Loïc Mathieu
a0efe4b1f3 fix(system): properly pass Micronaut env 2025-09-17 11:35:59 +02:00
dependabot[bot]
9af6338ae5 build(deps): bump dev.langchain4j:langchain4j-bom from 1.4.0 to 1.5.0
Bumps [dev.langchain4j:langchain4j-bom](https://github.com/langchain4j/langchain4j) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/langchain4j/langchain4j/releases)
- [Commits](https://github.com/langchain4j/langchain4j/compare/1.4.0...1.5.0)

---
updated-dependencies:
- dependency-name: dev.langchain4j:langchain4j-bom
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 11:32:55 +02:00
dependabot[bot]
d53b933bdf build(deps): bump jakarta.xml.bind:jakarta.xml.bind-api
Bumps [jakarta.xml.bind:jakarta.xml.bind-api](https://github.com/jakartaee/jaxb-api) from 4.0.2 to 4.0.4.
- [Release notes](https://github.com/jakartaee/jaxb-api/releases)
- [Commits](https://github.com/jakartaee/jaxb-api/compare/4.0.2...4.0.4)

---
updated-dependencies:
- dependency-name: jakarta.xml.bind:jakarta.xml.bind-api
  dependency-version: 4.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 11:32:43 +02:00
dependabot[bot]
a35c2816c5 build(deps): bump dev.langchain4j:langchain4j-community-bom
Bumps [dev.langchain4j:langchain4j-community-bom](https://github.com/langchain4j/langchain4j-community) from 1.4.0-beta10 to 1.5.0-beta11.
- [Release notes](https://github.com/langchain4j/langchain4j-community/releases)
- [Commits](https://github.com/langchain4j/langchain4j-community/compare/1.4.0-beta10...1.5.0-beta11)

---
updated-dependencies:
- dependency-name: dev.langchain4j:langchain4j-community-bom
  dependency-version: 1.5.0-beta11
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 11:31:47 +02:00
Loïc Mathieu
d88eb9974c fix(system): use the Langchain Gemini lib version from the platform 2025-09-17 11:14:11 +02:00
Florian Hussonnois
af3d5a384a fix(core): fix plugin stable version resolution (kestra-io/kestra-ee#5129)
Rename incremental field to patch

Fixes: kestra-io/kestra-ee#5129
2025-09-17 11:10:40 +02:00
Miloš Paunović
e9ad352ccf chore(core): remove unused decompress library (#11346) 2025-09-17 11:04:36 +02:00
yuri
1a95b83fb7 chore(logs): make search queries case-insensitive (#11313)
Execution logs' filter query used to be case-sensitive - for example, the `hello` query did not match `Hello World` log lines.
2025-09-17 11:04:07 +02:00
dependabot[bot]
095939ff7a build(deps): bump software.amazon.awssdk:bom from 2.33.5 to 2.33.11
Bumps software.amazon.awssdk:bom from 2.33.5 to 2.33.11.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.33.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 10:46:42 +02:00
Piyush Bhaskar
094f523874 fix(core): remove object Object from tab title. (#11347) 2025-09-17 14:08:50 +05:30
brian.mulier
c7efb2514a fix(core): avoid filters from overlapping on other pages when changing query params 2025-09-17 10:36:20 +02:00
brian.mulier
887537d8c1 fix(core): avoid clearing filters when reclicking on current left menu item
closes #9476
2025-09-17 10:36:20 +02:00
brian.mulier
0630b741b9 fix(core): avoid undefined error on refresh chart 2025-09-17 10:36:20 +02:00
dependabot[bot]
d2b7e723e1 build(deps): bump io.qameta.allure:allure-bom from 2.29.1 to 2.30.0
Bumps [io.qameta.allure:allure-bom](https://github.com/allure-framework/allure-java) from 2.29.1 to 2.30.0.
- [Release notes](https://github.com/allure-framework/allure-java/releases)
- [Commits](https://github.com/allure-framework/allure-java/compare/2.29.1...2.30.0)

---
updated-dependencies:
- dependency-name: io.qameta.allure:allure-bom
  dependency-version: 2.30.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 10:22:27 +02:00
dependabot[bot]
080ceadf37 build(deps): bump org.jooq:jooq from 3.20.6 to 3.20.7
Bumps org.jooq:jooq from 3.20.6 to 3.20.7.

---
updated-dependencies:
- dependency-name: org.jooq:jooq
  dependency-version: 3.20.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 10:21:49 +02:00
dependabot[bot]
a89d902bc2 build(deps): bump andrcuns/allure-publish-action from 2.9.0 to 2.10.0
Bumps [andrcuns/allure-publish-action](https://github.com/andrcuns/allure-publish-action) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/andrcuns/allure-publish-action/releases)
- [Commits](https://github.com/andrcuns/allure-publish-action/compare/v2.9.0...v2.10.0)

---
updated-dependencies:
- dependency-name: andrcuns/allure-publish-action
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 10:20:02 +02:00
dependabot[bot]
e2ef7d412a build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.11 to 0.38.13.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.11...v0.38.13)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 10:19:13 +02:00
dependabot[bot]
54c667ec4b build(deps): bump com.google.cloud:libraries-bom from 26.67.0 to 26.68.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.67.0 to 26.68.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.67.0...v26.68.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.68.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 10:18:19 +02:00
Piyush Bhaskar
1c53758d33 refactor(core): composable equivalent for mixins (#11277)
* refactor(core): composable equivalent for mixins

* fix: few tweaks

* fix: remove extension
2025-09-17 11:31:20 +05:30
Ludovic DEHON
d092556bc2 chore(build): use remote actions 2025-09-16 18:09:54 +02:00
Roman Acevedo
308106d532 ci: make generated test report retrocompatible with older releases (#11308)
* ci: make generated test report retrocompatible with older realeases

* ci: fix cli
2025-09-16 15:21:56 +02:00
Piyush Bhaskar
8fe8f96278 refactor(core): use el-splitter instead of custom sliders (#11309)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-16 18:35:57 +05:30
Miloš Paunović
a5cad6d87c chore(core): improve coloring scheme for dependencies graph (#11306) 2025-09-16 14:26:15 +02:00
Loïc Mathieu
199d67fbe2 chore(system): share the application.yaml config file between OSS and EE 2025-09-16 10:53:53 +02:00
Loïc Mathieu
558a2e3f01 fix(flows): properly coompute flow dependencies with preconditions
When both upstream flows and where are set, it should be a AND between the two as dependencies must match the upstream flows.

Fixes #11164
2025-09-16 10:43:55 +02:00
HARSH THAKARE
e1d2c30e54 fix(core): add validation to prevent empty label values in Labels task (#11273)
part of #11227

---------

Co-authored-by: harshinfomaticae <harsh.thakare@infomaticae.co.in>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-16 10:26:46 +02:00
Loïc Mathieu
700c6de411 fix(system): allow flattening a map with duplicated keys 2025-09-16 10:24:43 +02:00
Florian Hussonnois
2b838a5012 fix(executions): add missing CrudEvent on purge execution
Related-to: kestra-io/kestra-ee#5061
2025-09-16 09:34:19 +02:00
Loïc Mathieu
617daa79db fix(executions): truncate the execution_running table as in 0.24 there was an issue in the purge
This table contains executions for flows that have a concurrency that are currently running.
It has been added in 0.24 but in that release there was a bug that may prevent some records to being correctly removed from this table.
To fix that, we truncate it once.
2025-09-15 17:29:28 +02:00
Roman Acevedo
1791127acb test: unflaky FileChangedEventListener and PluginDefaultServiceTest, debug log on JdbcServiceLivenessCoordinatorTest
* test: parallelize AbstractRunnerTest

* test: add TestsUtils.randomTenant(..) function

* test: i think i found a bug

* revert debug

* test: add comment on potential bug, make test pass

* test: fix test metadata

* test: unflaky PluginDefaultServiceTest by separating class

* test: add log on JdbcServiceLivenessCoordinatorTest to debug

* test: cleanup debug log

* fix
2025-09-15 17:07:37 +02:00
brian-mulier-p
7feb571fb3 fix(test): add tenant-in-path storage test (#11292)
part of kestra-io/storage-s3#166
2025-09-15 16:49:02 +02:00
brian-mulier-p
a315bd0e1c fix(security): enhance basic auth security (#11285)
closes kestra-io/kestra-ee#5111
2025-09-15 16:27:14 +02:00
Roman Acevedo
e2ac1e7e98 ci: prevent commenting PR test report when cancelled 2025-09-15 16:01:07 +02:00
Miloš Paunović
c6f40eff52 fix(core): adjust positioning of default tour elements (#11286)
The problem occurred when `No Code` was selected as the `Default Editor Type` in `Settings`. This `PR` resolves the issue.

Closes https://github.com/kestra-io/kestra/issues/9556.
2025-09-15 14:55:00 +02:00
Miloš Paunović
ccd42f7a1a chore(core): remove superfluous button attribute in settings page (#11283) 2025-09-15 12:27:19 +02:00
Florian Hussonnois
ef08c8ac30 fix(plugins): remove regex validation on version property
Changes:
* Fixes stable method in Version class
* Remove regex validation on 'version' property

Related-to: kestra-io/kestra-ee#5090
2025-09-15 11:54:10 +02:00
github-actions[bot]
7b527c85a9 chore(core): localize to languages other than english (#11280)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-09-15 11:09:17 +02:00
Hamza
d121867066 chore(flows): trigger editor autocompletion when backspace is pressed (#10797)
Closes https://github.com/kestra-io/kestra/issues/10776.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-15 11:07:20 +02:00
Roman Acevedo
a084a9f6f0 ci: fix Summary report test path 2025-09-15 10:50:25 +02:00
Karthik D
f6fff11081 chore(core): add reset to defaults option to settings page (#11226)
Closes https://github.com/kestra-io/kestra/issues/10640.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-15 10:45:11 +02:00
Roman Acevedo
3d5015938f ci: add total header to generateTestReportSummary 2025-09-15 10:32:22 +02:00
Florian Hussonnois
951c93cedb fix(core): fix CrudEvent model for DELETE operation
Refactor XxxRepository class to use new factory methods
from the CrudEvent class

Related-to: kestra-io/kestra-ee#4727
2025-09-15 10:06:52 +02:00
Antoine Gauthier
9c06b37989 chore(core): resolve button text overflow on system overview page (#11271)
Closes https://github.com/kestra-io/kestra/issues/11245.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-15 09:57:10 +02:00
Anna Geller
a916a03fdd fix(stats): update edition comparison with latest features and improved descriptions (#11272) 2025-09-14 12:35:26 +02:00
Roman Acevedo
4e728da331 test: disable one last test 2025-09-12 20:24:08 +02:00
Roman Acevedo
166a3932c9 test: do not parallelize yet AbstractRunnerTest 2025-09-12 20:24:08 +02:00
Roman Acevedo
0a21971bbf ci: only comment PR with test report in PR 2025-09-12 20:24:08 +02:00
Roman Acevedo
8c4d7c0f9e test: disable failing tests, they will be fixed soon
- will be treated in https://github.com/kestra-io/kestra/issues/11269
2025-09-12 20:24:08 +02:00
Nicolas K.
b709913071 test: run core tests in parallel (#11265)
- advance on #11264

* feat(ci-cd): play tests in parallel and synchronize plugin registry init

* fix(tests): change memory to h2 because the configuration have changed

* feat(tests): use tenant id to run runner tests in parallel

* run AbstractRunnerTest test methods in parallel

* feat(tests): use tenant id to run runner tests in parallel

* feat(tests): remove unwanted generated files

---------

Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-09-12 19:29:38 +02:00
Roman Acevedo
5be401d23c ci: add a kestra-devtools cli, and comment PR with failed tests
this is a POC, I think it can already be useful. Next step will be to move kestra-devtools to a separate repo and publish it to npm
2025-09-12 18:48:12 +02:00
Roman Acevedo
bb9f4be8c2 Revert "chore(sanitycheck): refactor PurgeCurrentExecutionFiles (#11115)"
This reverts commit fc690bf7cd.
Python task cannot be used here, it is not available. This commit was
wrongly merged with a red CI
2025-09-12 17:49:02 +02:00
François Delbrayelle
01e8e46b77 Revert "feat(retry): use the retry policy on HttpClient (#10922)" (#11263)
This reverts commit a236688be6.
2025-09-12 17:46:28 +02:00
Miloš Paunović
d00f4b0768 chore(core): ensure editor suggestion widget renders above other elements (#11258)
Closes https://github.com/kestra-io/kestra/issues/10702.
Closes https://github.com/kestra-io/kestra/issues/11033.
2025-09-12 14:48:56 +02:00
Barthélémy Ledoux
279f59c874 fix(core): only display close all tabs when there is more than one tab (#11257) 2025-09-12 14:20:54 +02:00
Barthélémy Ledoux
d897509726 fix(flows): clear tasks list when last task is deleted (#11255) 2025-09-12 14:20:42 +02:00
Pradumna Saraf
0d592342af chore(sanitycheck): add for OutputValues (#11105) 2025-09-12 16:53:13 +05:30
Pradumna Saraf
fc690bf7cd chore(sanitycheck): refactor PurgeCurrentExecutionFiles (#11115) 2025-09-12 16:52:37 +05:30
Antoine Gauthier
0a1b919863 chore(logs): display copy button only on row hover (#11254)
Closes https://github.com/kestra-io/kestra/issues/11220.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-12 12:00:08 +02:00
Piyush Bhaskar
2f4e981a29 fix(core): add gradient at footer to avoid hard cut (#11252) 2025-09-12 14:35:47 +05:30
brian-mulier-p
5e7739432e fix(core): add ability to remap sort keys (#11233)
part of kestra-io/kestra-ee#5075
2025-09-12 09:43:39 +02:00
Miloš Paunović
8aba863b8c feat(core): introduce close all panels functionality (#11225)
Closes https://github.com/kestra-io/kestra/issues/10785.
2025-09-12 09:01:24 +02:00
dependabot[bot]
7eaa43c50f build(deps): bump axios (#11243)
Bumps the npm_and_yarn group with 1 update in the /ui directory: [axios](https://github.com/axios/axios).


Updates `axios` from 1.11.0 to 1.12.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-12 08:36:02 +02:00
Piyush Bhaskar
267ff78bfe fix(admin): change the header and add description on hover (#11241)
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-12 12:00:41 +05:30
François Delbrayelle
7272cfe01f feat(ai_copilot): gray italic placeholder + rename AiAgent to AiCopilot (#11235) 2025-09-11 20:24:04 +02:00
brian.mulier
91e2fdb2cc fix(ai): increase maxOutputToken default 2025-09-11 18:11:52 +02:00
François Delbrayelle
a236688be6 feat(retry): use the retry policy on HttpClient (#10922) 2025-09-11 15:00:25 +02:00
Antoine Gauthier
81763d40ae fix(docs): center main container in DocsLayout (#11222)
Co-authored-by: Piyush Bhaskar <impiyush0012@gmail.com>
2025-09-11 16:18:12 +05:30
Miloš Paunović
677efb6739 fix(namespaces): open details page at top (#11221)
Closes https://github.com/kestra-io/kestra/issues/10536.
2025-09-11 10:52:47 +02:00
Nicolas K.
b35924fef1 fix(tests): add server type mock in the kestra context (#11176)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-09-11 09:45:51 +02:00
Jaem Dessources
9dd93294b6 fix(core): align copy logs button to each row’s right edge (#11216)
Closes https://github.com/kestra-io/kestra/issues/10898.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-11 08:55:01 +02:00
Piyush Bhaskar
fac6dfe9a0 fix(core): update router usage in loadAutocomplete. (#11219) 2025-09-11 12:13:05 +05:30
Bisesh
3bf9764505 fix(core): make sidebar tab color consistent when unfocused (#11217)
Closes https://github.com/kestra-io/kestra/issues/11156.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-11 08:33:57 +02:00
Piyush Bhaskar
c35cea5d19 fix(core): override the ns module. (#11218) 2025-09-11 11:53:00 +05:30
Barthélémy Ledoux
4d8e9479f1 refactor: finally get rid of vuex (#11211) 2025-09-10 22:44:21 +02:00
Florian Hussonnois
3f24e8e838 fix(core): make CRC32 for plugin JARs lazy
Make CRC32 calculation for lazy plugin JAR files
to avoid excessive startup time and performance impact.

Avoid byte buffer reallocation while computing CRC32.
2025-09-10 17:42:02 +02:00
Miloš Paunović
7175fcb666 fix(executions): refactor link creation to ensure the id is rendered as a clickable link (#11209)
Related to https://github.com/kestra-io/kestra/issues/10906.
2025-09-10 15:01:29 +02:00
Barthélémy Ledoux
2ddfa13b1b refactor: make-axios-composable (#11177) 2025-09-10 14:54:00 +02:00
Barthélémy Ledoux
ba2a5dfec8 chore: revert monaco update (#11207) 2025-09-10 13:34:33 +02:00
Loïc Mathieu
f84441dac7 fix(ci): disable publishing docker image on fork
I should have not trusted an AI for this but copy/paste what I know work: the Quarkus CI!
2025-09-10 12:17:25 +02:00
Barthélémy Ledoux
433b788e4a chore: a bunch of performance fixes detected by oxlint (eslint-unicorn) (#10050) 2025-09-10 11:35:07 +02:00
dependabot[bot]
65c5fd6331 build(deps): bump org.projectlombok:lombok from 1.18.38 to 1.18.40
Bumps [org.projectlombok:lombok](https://github.com/projectlombok/lombok) from 1.18.38 to 1.18.40.
- [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown)
- [Commits](https://github.com/projectlombok/lombok/compare/v1.18.38...v1.18.40)

---
updated-dependencies:
- dependency-name: org.projectlombok:lombok
  dependency-version: 1.18.40
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 11:12:24 +02:00
dependabot[bot]
421ab40276 build(deps): bump io.micrometer:micrometer-core from 1.15.3 to 1.15.4
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-version: 1.15.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 11:11:48 +02:00
dependabot[bot]
efb2779693 build(deps): bump flyingSaucerVersion from 9.13.3 to 10.0.0
Bumps `flyingSaucerVersion` from 9.13.3 to 10.0.0.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.13.3 to 10.0.0
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.13.3...v10.0.0)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.13.3 to 10.0.0
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.13.3...v10.0.0)

---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 11:10:59 +02:00
dependabot[bot]
74d371c0ca build(deps): bump com.azure:azure-sdk-bom from 1.2.37 to 1.2.38
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.37 to 1.2.38.
- [Release notes](https://github.com/azure/azure-sdk-for-java/releases)
- [Commits](https://github.com/azure/azure-sdk-for-java/compare/azure-sdk-bom_1.2.37...azure-sdk-bom_1.2.38)

---
updated-dependencies:
- dependency-name: com.azure:azure-sdk-bom
  dependency-version: 1.2.38
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 11:10:10 +02:00
Loïc Mathieu
90a7869020 fixsystem): always load netty from the app classloader
As Netty is used in core and a lot of plugins, and we already load project reactor from the app classloader that depends in Netty.

Fixes https://github.com/kestra-io/kestra-ee/issues/5038
2025-09-10 10:50:22 +02:00
dependabot[bot]
d9ccb50b0f build(deps): bump actions/github-script from 7 to 8
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 10:47:40 +02:00
dependabot[bot]
aea0b87ef8 build(deps): bump aquasecurity/trivy-action from 0.33.0 to 0.33.1
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.33.0 to 0.33.1.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.33.0...0.33.1)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.33.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 10:47:17 +02:00
Loïc Mathieu
9a144fc3fe fix(system): we don't need to advance the parser anymore to the first token 2025-09-10 10:46:44 +02:00
Loïc Mathieu
ddd9cebc63 chore(deps): upgrade to Jackson 2.20.0
Jackson annotation now uses a version scheme without micro version so it has been updated to 2.20.

Closes #11069
2025-09-10 10:46:44 +02:00
dependabot[bot]
1bebbb9b73 build(deps): bump com.gorylenko.gradle-git-properties
Bumps com.gorylenko.gradle-git-properties from 2.5.2 to 2.5.3.

---
updated-dependencies:
- dependency-name: com.gorylenko.gradle-git-properties
  dependency-version: 2.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 10:46:26 +02:00
dependabot[bot]
8de4dc867e build(deps): bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 10:46:08 +02:00
dependabot[bot]
fc49694e76 build(deps): bump actions/setup-node from 4 to 5
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 10:45:47 +02:00
dependabot[bot]
152300abae build(deps): bump io.micronaut.openapi:micronaut-openapi-bom
Bumps [io.micronaut.openapi:micronaut-openapi-bom](https://github.com/micronaut-projects/micronaut-openapi) from 6.17.3 to 6.18.0.
- [Release notes](https://github.com/micronaut-projects/micronaut-openapi/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-openapi/compare/v6.17.3...v6.18.0)

---
updated-dependencies:
- dependency-name: io.micronaut.openapi:micronaut-openapi-bom
  dependency-version: 6.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 10:45:13 +02:00
dependabot[bot]
1ff5dda4e1 build(deps): bump software.amazon.awssdk:bom from 2.33.2 to 2.33.5
Bumps software.amazon.awssdk:bom from 2.33.2 to 2.33.5.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.33.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 10:44:50 +02:00
Miloš Paunović
84f9b8876d chore(deps): regular dependency update (#11200)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-09-10 10:18:33 +02:00
brian-mulier-p
575955567f fix(flows): avoid failing flow dependencies with dynamic defaults (#11166)
closes #11117
2025-09-10 09:59:51 +02:00
brian-mulier-p
d6d2580b45 fix(namespaces): avoid adding 'company.team' as default ns (#11174)
closes #11168
2025-09-09 17:13:48 +02:00
Miloš Paunović
070e54b902 chore(flows): display correct flow dependency count (#11169)
Closes https://github.com/kestra-io/kestra/issues/11127.
2025-09-09 13:56:17 +02:00
Roman Acevedo
829ca4380f fix(flows): topology would not load when having many flows and cyclic relations
- this will probably fix https://github.com/kestra-io/kestra-ee/issues/4980

the issue was recursiveFlowTopology was returning a lot of duplicates, it was aggravated when having many Flows and multiple Flow triggers
2025-09-09 13:06:20 +02:00
Karthik D
381c7a75ad chore(core): use simple search input on blueprints listing (#11034)
Closes https://github.com/kestra-io/kestra/issues/11002.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-09 12:54:58 +02:00
louispy
1688c489a9 chore(flows): improve visibility of horizontal scroll bar on listing (#11163)
Closes https://github.com/kestra-io/kestra/issues/11158.

Co-authored-by: louispy <louisleslie98@gmail.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-09-09 12:40:28 +02:00
AKSHAT GUPTA
93ccbf5f9b chore(core): separate data loading from graph node rendering on dependency view (#11155)
Relates to https://github.com/kestra-io/kestra/issues/11125.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-09 12:25:58 +02:00
Barthélémy Ledoux
ac1cb235e5 refactor: avoid importing all of lodash when we only need groupBy (#10870) 2025-09-09 11:34:13 +02:00
dependabot[bot]
9d3d3642e8 build(deps): bump kafkaVersion from 4.0.0 to 4.1.0
Bumps `kafkaVersion` from 4.0.0 to 4.1.0.

Updates `org.apache.kafka:kafka-clients` from 4.0.0 to 4.1.0

Updates `org.apache.kafka:kafka-streams` from 4.0.0 to 4.1.0

Updates `org.apache.kafka:kafka-streams-test-utils` from 4.0.0 to 4.1.0

---
updated-dependencies:
- dependency-name: org.apache.kafka:kafka-clients
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.kafka:kafka-streams
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.kafka:kafka-streams-test-utils
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 09:56:38 +02:00
Suguresh
3d306a885e feat(core): add extra date format options (#10237)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-09 09:31:49 +02:00
Antoine Gauthier
ef193c5774 feat(core): add a new date format option with milliseconds (#11108)
Closes https://github.com/kestra-io/kestra/issues/11028.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-09 09:20:37 +02:00
AmbarMishra973
d0f46169f4 feat(executions): make the id field a link that can be opened in a new tab (#10963)
Closes https://github.com/kestra-io/kestra/issues/10906.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-09-09 09:13:49 +02:00
François Delbrayelle
3005ab527c fix(outputs): open external file was not working (#11154) 2025-09-08 17:45:19 +02:00
Barthélémy Ledoux
688e2af12b chore: update eslint config for vue files (#9891) 2025-09-08 16:42:33 +02:00
Nicolas K.
4c0a05f484 fix(test): flaky Scheduler trigger change test (#11153)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-09-08 16:33:23 +02:00
zaib shamsi
108f8fc2c7 feat(executions): nicer exception message for the HttpFunction
### What I did

- Improved the exception message in HttpFunction.java to make debugging easier.

### Why

- The original message was too generic. This change makes it clearer where the issue occurs.
2025-09-08 15:04:12 +02:00
Barthélémy Ledoux
8b81a37559 refactor: make folder structure of no-code use "no-code" (#11122) 2025-09-08 14:15:04 +02:00
Barthélémy Ledoux
9222f97d63 fix(core): multipanel split creates super big panels (#11123) 2025-09-08 14:14:40 +02:00
brian.mulier
43e3591417 chore(ci): fail-safe update-plugin-kestra-version.sh 2025-09-08 12:02:28 +02:00
brian.mulier
438dc9ecf6 chore(ci): create branch if not exist on update-plugin-kestra-version.sh 2025-09-08 11:45:15 +02:00
brian-mulier-p
7292837c58 chore(ci): add LTS tagging (#11131) 2025-09-08 11:13:16 +02:00
brian.mulier
7fa93d7764 chore(version): update to version 'v1.1.0-SNAPSHOT'. 2025-09-08 10:08:34 +02:00
brian.mulier
a3c9b35b25 fix(ci): no more RC semver check on plugins 2025-09-08 09:56:11 +02:00
brian.mulier
2c03101422 fix(ci): no more RC semver check on plugins 2025-09-08 09:54:42 +02:00
brian.mulier
7ee2cca3ae fix(ci): no more RC semver check 2025-09-08 09:54:42 +02:00
brian.mulier
ddb48a4384 fix(ci): no more RC semver check 2025-09-08 09:51:31 +02:00
AJ Emerich
a62c5ab637 fix(docs): correct core properties and other docs (#11026)
* fix(docs): correct core properties and other docs

Correct grammar, punctuation, and consistency

* Apply suggestions from code review

Co-authored-by: Anna Geller <anna.m.geller@gmail.com>

* Apply suggestions from code review

Co-authored-by: Anna Geller <anna.m.geller@gmail.com>

* Apply suggestions from code review

Co-authored-by: Anna Geller <anna.m.geller@gmail.com>

---------

Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
2025-09-05 17:44:04 +02:00
AJ Emerich
1b934d31f1 fix(docs): fix trigger docs#11018 2025-09-05 17:40:02 +02:00
Miloš Paunović
f887f53c25 fix(core): allow triggering the task from playground again after a 422 error (#11112)
Closes https://github.com/kestra-io/kestra/issues/11109.
2025-09-05 15:43:43 +02:00
Roman Acevedo
098fa5a4ef fix(topology): prevent flowTopology failing on a Flow for bugged relation
- fixes https://github.com/kestra-io/kestra/issues/11096
2025-09-05 15:16:00 +02:00
Barthélémy Ledoux
c833ab6bc1 fix(flows): avoid updating code if no-code has not changed (#11094) 2025-09-05 14:14:08 +02:00
Krie
dfb7c61455 docs: clarify java version on devcontainer 2025-09-05 13:56:13 +02:00
Florian Hussonnois
ed509d4461 fix(plugins): fix registration of a same plugins and doc reload
Compute a quick CRC32 of each plugin based on the Central Directory
of the JarFile to ensure change detection - allowing re-upload
of a same plugin version (EE)

Fix: kestra-io/kestra-ee#4925
Fix: kestra-io/kestra-ee#4882
2025-09-05 12:55:19 +02:00
dependabot[bot]
8b50f191d8 build(deps): bump mermaid in /ui in the npm_and_yarn group (#10833)
Bumps the npm_and_yarn group in /ui with 1 update: [mermaid](https://github.com/mermaid-js/mermaid).


Updates `mermaid` from 11.8.1 to 11.10.0
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.8.1...mermaid@11.10.0)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.10.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 12:36:38 +02:00
Piyush Bhaskar
7c5b531117 fix(core): export flow from settings (#11111) 2025-09-05 14:03:18 +05:30
Miloš Paunović
810579bce9 chore(core): amend dependency graph coloring scheme (#11107) 2025-09-05 09:59:46 +02:00
Piyush Bhaskar
a0e7c50b28 fix(core): show inherited kv pairs button only on kv tab (#11104) 2025-09-05 11:40:50 +05:30
François Delbrayelle
bfbc3f70a4 build(main): add skip-test as an option for workflows (#11103) 2025-09-04 19:33:06 +02:00
Ludovic DEHON
9b5c4b0052 feat(build): allow skip test on main ci 2025-09-04 18:55:03 +02:00
AJ Emerich
b7063d986b docs(flow-trigger): add example with conditions (#11099)
Closes https://github.com/kestra-io/kestra/issues/10197
2025-09-04 18:33:37 +02:00
brian.mulier
46ec0ae701 fix(ai): move maxOutputToken default from 50000 to 4000 2025-09-04 18:28:02 +02:00
brian.mulier
ba0615ba01 fix(ai): add some properties to Posthog events 2025-09-04 18:28:02 +02:00
Florian Hussonnois
0a26098a91 fix(core): add method to DefaultPluginRegistry to override of plugin registration 2025-09-04 17:55:56 +02:00
Barthélémy Ledoux
0e2863e6fd feat(flows): update DEFAULT_ACTIVE_TABS to follow settings (#11095) 2025-09-04 16:55:55 +02:00
brian-mulier-p
4b6559203c fix(dashboards): blueprints working for dashboards (#11082)
part of #11076
2025-09-04 15:39:23 +02:00
Malaydewangan09
b6993d71f2 feat(plugins): add plugins 2025-09-04 18:59:28 +05:30
Barthélémy Ledoux
ea6daf381d fix(core): Multipanel layout fixes (#11092) 2025-09-04 15:23:57 +02:00
dependabot[bot]
0649c1309b build(deps): bump software.amazon.awssdk:bom from 2.32.31 to 2.33.1
Bumps software.amazon.awssdk:bom from 2.32.31 to 2.33.1.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.33.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 15:01:05 +02:00
François Delbrayelle
6e21d650f9 feat(plugin): add new priority attr on Plugin annotation (#10975) 2025-09-04 14:21:38 +02:00
Piyush Bhaskar
88acc91323 chore(version): update @kestra-io/ui-libs to version 0.0.244 (#11088) 2025-09-04 17:44:45 +05:30
Miloš Paunović
a822f3b372 fix(flow)*: properly handle tab closing by clicking the cross icon in the corner of the panel (#11086)
Closes https://github.com/kestra-io/kestra/issues/10981.
2025-09-04 14:11:34 +02:00
github-actions[bot]
4a3c6ee9e9 chore(core): remove empty lines at the end of translation files (#11089) 2025-09-04 14:07:38 +02:00
Loïc Mathieu
0ed4e5853d fix(deps): add worker to the platform 2025-09-04 13:33:42 +02:00
Loïc Mathieu
71cdd02230 fix(executions): add logs in case of concurrency limit failure
Fixes #11004
2025-09-04 13:03:00 +02:00
brian.mulier
fedddcde00 fix(ai): move back to Gemini as default 2025-09-04 12:49:18 +02:00
Ludovic DEHON
03f256cb9b chore(deps): follow platform on com.microsoft.playwright:playwright 2025-09-04 11:37:01 +02:00
dependabot[bot]
f9317ba8ea build(deps): bump google-github-actions/setup-gcloud from 2 to 3
Bumps [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) from 2 to 3.
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/setup-gcloud/compare/v2...v3)

---
updated-dependencies:
- dependency-name: google-github-actions/setup-gcloud
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 11:35:56 +02:00
dependabot[bot]
eefca3d7a4 build(deps): bump google-github-actions/auth from 2 to 3
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 2 to 3.
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/auth/compare/v2...v3)

---
updated-dependencies:
- dependency-name: google-github-actions/auth
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 11:35:37 +02:00
dependabot[bot]
96b9e3c74b build(deps): bump mailchecker from 6.0.17 to 6.0.18 in /ui
Bumps [mailchecker](https://github.com/FGRibreau/mailchecker) from 6.0.17 to 6.0.18.
- [Changelog](https://github.com/FGRibreau/mailchecker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FGRibreau/mailchecker/compare/v6.0.17...v6.0.18)

---
updated-dependencies:
- dependency-name: mailchecker
  dependency-version: 6.0.18
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 11:34:34 +02:00
dependabot[bot]
0a78778e5c build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.9 to 0.38.11.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.9...v0.38.11)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 11:27:48 +02:00
dependabot[bot]
5342948bfb build(deps): bump aquasecurity/trivy-action from 0.32.0 to 0.33.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.32.0 to 0.33.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.32.0...0.33.0)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 11:26:05 +02:00
brian.mulier
f9beb0f4af fix(ai): add model-name to configuration example when Copilot is not configured 2025-09-04 11:25:21 +02:00
Ludovic DEHON
70c1621025 chore(deps): update most of js deps 2025-09-04 11:24:37 +02:00
Loïc Mathieu
a9098e7dc9 fix(tests): reduce test duration 2025-09-04 11:04:13 +02:00
Loïc Mathieu
249839833c chore(system): move the standalone runner to the cli module 2025-09-04 11:04:13 +02:00
Loïc Mathieu
97ec24fc6a chore(system): merge Indexer with the IndexerInterface 2025-09-04 11:04:13 +02:00
Loïc Mathieu
be5e24217b chore(system): extract the scheduler to its own module 2025-09-04 11:04:13 +02:00
Loïc Mathieu
a5724bcb18 chore(system): extract the executor to its own module 2025-09-04 11:04:13 +02:00
Loïc Mathieu
f3057d2d57 chore(system): extract the worker to its own module 2025-09-04 11:04:13 +02:00
Roman Acevedo
e8a953fc6b test: disable flaky test AbstractRunnerTest.flowTriggerWithConcurrencyLimit
- sometimes fails on Kafka tests: https://github.com/kestra-io/kestra-ee/actions/runs/17382883576/attempts/1#summary-49344101977
- it will be fixed during cooldown here https://github.com/kestra-io/kestra/issues/10758
2025-09-04 10:42:17 +02:00
Barthélémy Ledoux
267f4fcc86 fix(flow): cleanup executions' graph and flow on execution reset (#11075)
* fix: typescript issue in LowCodeEditor

* fix(flow): cleanup executions' graph and flow on execution reset

* add tsexpect error
2025-09-04 10:17:48 +02:00
github-actions[bot]
af1e2e3059 chore(core): localize to languages other than english (#11074)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-09-04 09:51:32 +02:00
Anna Geller
638d58697b fix: too long sidebar names (#11073) 2025-09-04 09:44:36 +02:00
brian-mulier-p
0ae9374bf5 fix(ai): optional flowYaml in generateFlow endpoint (#10974)
closes kestra-io/kestra-ee#4286
2025-09-03 14:50:59 +02:00
Miloš Paunović
6a0344a09e chore(core): improve dependency graph user experience (#10994)
Closes https://github.com/kestra-io/kestra/issues/10925.
Closes https://github.com/kestra-io/kestra-ee/issues/4865.
2025-09-03 14:41:40 +02:00
Miloš Paunović
e46b4a75d1 fix(flows): pass proper namespace id on flow creation (#11031) 2025-09-03 13:57:04 +02:00
Ludovic DEHON
8fe1bae739 chore(deps): remove unrequired deps from MakeFile 2025-09-03 12:54:57 +02:00
Ludovic DEHON
9ef59fdd23 chore(deps): upgrade some platform deps 2025-09-03 12:54:09 +02:00
Roman Acevedo
79ab4415ad fix(storage): avoid NPE in PurgeKV when no metadata or expiration date
- fixes https://github.com/kestra-io/kestra/issues/11019
2025-09-03 12:52:20 +02:00
brian.mulier
dd3829cc48 fix(ai): enhance FlowYamlBuilder prompt (#11027) 2025-09-03 12:08:54 +02:00
brian.mulier
fa187904f9 fix(ai): remove @Requires on API key as it's already done transitively (#11027) 2025-09-03 12:08:54 +02:00
brian.mulier
c659599b1f chore(deps): add langchain4j version to platform (#11027) 2025-09-03 12:08:54 +02:00
Florian Hussonnois
85db1eafa7 fix(plugins): add plugin registry hash to invalidate cache
Fixes: kestra-io/kestra-ee#4882
2025-09-03 11:51:39 +02:00
Florian Hussonnois
9863f0807f fix(flows): fix dynamic default inputs (#11014)
Fixes: #11014
2025-09-03 10:25:33 +02:00
brian-mulier-p
b3b0d630cf feat(ai): langchain4j implementation of AI Copilot (#10995)
closes kestra-io/kestra-ee#4710
2025-09-03 10:04:07 +02:00
Florian Hussonnois
97665449a8 fix(system): rename service EMPTY state to INACTIVE (kestra-io/kestra-ee#4838)
Related-to: kestra-io/kestra-ee#4838
2025-09-03 09:11:36 +02:00
AJ Emerich
2e1ed792e9 fix(docs): fix grammar and punctuation in core storage (#11020)
* fix(docs): fix grammar and punctuation in core storage

* Apply suggestions from code review

Co-authored-by: Anna Geller <anna.m.geller@gmail.com>

---------

Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
2025-09-02 23:49:01 +02:00
Ludovic DEHON
59e3ae5922 chore(deps): use a common http5 client 2025-09-02 22:49:53 +02:00
Anna Geller
d46b54746a fix(docs): improve grammar and examples (#11017)
* fix(docs): improve grammar and examples

* fix: comma and whitespace issues in CI
2025-09-02 20:04:44 +02:00
Ludovic DEHON
4fbaed744b chore(deps): bump micronaut to 4.9.3 2025-09-02 19:44:19 +02:00
AJ Emerich
b0638437d5 fix(kv-purge): clean up the docs (#11016) 2025-09-02 19:21:01 +02:00
Ludovic DEHON
e3f9d0f8ff chore(deps): bump org.sonarqube from 6.2.0.5505 to 6.3.1.5724 2025-09-02 18:23:30 +02:00
Barthélémy Ledoux
ae80738f33 fix(docs): remove url hash change when opening a docs (#11000) 2025-09-02 15:44:55 +02:00
Barthélémy Ledoux
2b4f208569 refactor(namespaces): less code in namespace files editor (#9912) 2025-09-02 14:41:24 +02:00
Barthélémy Ledoux
8acbc8ba03 fix(nocode): KeyValue Pairs have a bug (#10998) 2025-09-02 14:19:55 +02:00
github-actions[bot]
d92cc099c7 chore(core): localize to languages other than english (#11012)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-09-02 14:07:51 +02:00
Piyush Bhaskar
3d806022bc feat(executions): allow changing the value of input before replaying an execution (#11010) 2025-09-02 16:39:28 +05:30
Roman Acevedo
b72bafe344 Revert "chore(deps): bump com.gradleup.shadow to 9.1.0"
This reverts commit 55c89244b4.
2025-09-02 12:22:05 +02:00
Barthélémy Ledoux
5e2063aa57 fix(no-code): explore allOf clauses for $deprecated flags (#10999) 2025-09-02 11:35:46 +02:00
Miloš Paunović
3838f8c87f fix(executions): clear errors on selected value change in outputs tab (#11007)
Closes https://github.com/kestra-io/kestra/issues/10979.
2025-09-02 11:16:59 +02:00
Ludovic DEHON
55c89244b4 chore(deps): bump com.gradleup.shadow to 9.1.0 2025-09-02 10:02:03 +02:00
Roman Acevedo
59c9ae57b7 ci: fix setversion-tag.yml not triggering a main.yml job on a pushed tag
the missing token: ${{ secrets.GH_PERSONAL_TOKEN }} is the only difference between this CI and EE CI, so it is probably the right fix
2025-09-01 16:25:04 +02:00
Roman Acevedo
1b8a2cd19a tests: add default false value to ui-anonymous-usage-report.enabled
to avoid having to configure it in tests
2025-09-01 16:02:17 +02:00
Miloš Paunović
16992626d2 fix(core): allow removal of block items from no code editor (#10992)
Closes https://github.com/kestra-io/kestra-ee/issues/4862.

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-09-01 10:50:06 +02:00
Ludovic DEHON
2c94922736 feat(core): add thread http client, deadlock and virtual thread metrics 2025-08-31 23:57:34 +02:00
Ludovic DEHON
b45c0b13be refactor(ui): posthog as composable and option for ui telemetry
relate to kestra-io/kestra-ee#4831
2025-08-29 19:36:58 +02:00
Nicolas K.
aed055dcb1 fix(storage): delete the metadata with the key when we delete an KV s… (#10990)
* fix(storage): delete the metadata with the key when we delete an KV store entry

* Update core/src/main/java/io/kestra/core/storages/kv/InternalKVStore.java

Co-authored-by: brian-mulier-p <bmmulier@hotmail.fr>

* fix(storage): fix typo

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: brian-mulier-p <bmmulier@hotmail.fr>
2025-08-29 17:28:39 +02:00
Nicolas K.
cfe107705b feat(storage): add purge kv task (#10964)
* feat(storage): add purge kv task

* feat(storage): add purge kv task

* feat(storage): add sanity check

* feat(storage): clean code

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-29 16:24:41 +02:00
brian-mulier-p
58da5fe7d8 fix(flows): add version autocompletion (#10973)
closes kestra-io/kestra-ee#4702
2025-08-29 15:34:37 +02:00
brian.mulier
869f7c718c fix(secrets): base64-encoded secrets value obfuscation
closes kestra-io/kestra-ee#4639
2025-08-29 15:33:52 +02:00
brian.mulier
985ed2ac89 fix(secrets): empty secrets ignored in secret obfuscation
closes #10526
2025-08-29 15:33:52 +02:00
Loïc Mathieu
bf0361778d fix(executions): clear errors/finally/afterExecution branches when changing the state of a taskrun
As changing the state of a taskrun will restart the flow, if we didn't clear those branches, the flow would not resart properly.

Fixes https://github.com/kestra-io/kestra-ee/issues/3211
2025-08-29 15:13:06 +02:00
Miloš Paunović
04a6adf012 chore(executions): make dependency graph table links navigate to execution pages (#10988)
Closes https://github.com/kestra-io/kestra-ee/issues/4866.
2025-08-29 14:27:08 +02:00
Piyush Bhaskar
0ffb71c25d fix(ui): do not allow white space in password (#10987) 2025-08-29 16:47:45 +05:30
Miloš Paunović
63659eca79 chore(executions): optimize dependency graph state updates (#10985)
Closes https://github.com/kestra-io/kestra/issues/10795.
2025-08-29 12:58:03 +02:00
Loïc Mathieu
357d4e0d69 feat(executions): allow flow trigger on concurrency limit
Closes https://github.com/kestra-io/kestra-ee/issues/3270

This allow listening to the QUEUED state on the flow trigger.
This also fixes an issue that when concurrency limit is setup, you would not listen to the RUNNING state.
2025-08-29 11:07:43 +02:00
Piyush Bhaskar
cf301a1192 chore(core): fix border color of validation btn and add loading state in Action button (#10982) 2025-08-29 14:08:23 +05:30
Ludovic DEHON
bc08fc7d07 fix(core): disable useless health check 2025-08-28 20:47:02 +02:00
Ludovic DEHON
85ac124740 feat(core): add netty metrics on micrometer 2025-08-28 20:46:28 +02:00
Ludovic DEHON
8021257bf4 fix(core): align open source & ee configuration 2025-08-28 20:45:50 +02:00
dependabot[bot]
c4022d2e3c build(deps): bump flyingSaucerVersion from 9.13.2 to 9.13.3
Bumps `flyingSaucerVersion` from 9.13.2 to 9.13.3.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.13.2 to 9.13.3
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.13.2...v9.13.3)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.13.2 to 9.13.3
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.13.2...v9.13.3)

---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 9.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 9.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 16:10:35 +02:00
dependabot[bot]
ee48865706 build(deps): bump software.amazon.awssdk:bom from 2.32.26 to 2.32.31
Bumps software.amazon.awssdk:bom from 2.32.26 to 2.32.31.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.32.31
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 14:34:54 +02:00
dependabot[bot]
f7a23ae459 build(deps): bump org.jsoup:jsoup from 1.21.1 to 1.21.2
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.21.1 to 1.21.2.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.21.1...jsoup-1.21.2)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-version: 1.21.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 14:33:28 +02:00
Miloš Paunović
a13909337e feat(namespaces): introduce inherited key/value pairs drawer (#10967)
Closes https://github.com/kestra-io/kestra-ee/issues/2830.
2025-08-28 13:06:10 +02:00
Piyush Bhaskar
502f0362e3 fix(flows): properly delete task from topology to reflect everywhere (#10924)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-08-28 16:17:18 +05:30
brian-mulier-p
dbaa35370f fix(plugins): hide "apps", "appBlocks", "charts", "dataFilters", "dataFiltersKPI" types in Plugins page (#10965)
closes #10464
2025-08-28 11:36:50 +02:00
dependabot[bot]
59a93b2ab9 build(deps): bump com.github.ksuid:ksuid from 1.1.3 to 1.1.4
Bumps [com.github.ksuid:ksuid](https://github.com/ksuid/ksuid) from 1.1.3 to 1.1.4.
- [Release notes](https://github.com/ksuid/ksuid/releases)
- [Commits](https://github.com/ksuid/ksuid/compare/ksuid-1.1.3...ksuid-1.1.4)

---
updated-dependencies:
- dependency-name: com.github.ksuid:ksuid
  dependency-version: 1.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 11:03:27 +02:00
dependabot[bot]
bff8026ebb build(deps): bump actions/setup-java from 4 to 5
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 11:02:21 +02:00
dependabot[bot]
4481318023 build(deps): bump jakarta.mail:jakarta.mail-api from 2.1.3 to 2.1.4
Bumps [jakarta.mail:jakarta.mail-api](https://github.com/jakartaee/mail-api) from 2.1.3 to 2.1.4.
- [Release notes](https://github.com/jakartaee/mail-api/releases)
- [Commits](https://github.com/jakartaee/mail-api/compare/2.1.3...2.1.4)

---
updated-dependencies:
- dependency-name: jakarta.mail:jakarta.mail-api
  dependency-version: 2.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 10:59:56 +02:00
dependabot[bot]
c8b33dd690 build(deps): bump net.thisptr:jackson-jq from 1.4.0 to 1.5.0
Bumps [net.thisptr:jackson-jq](https://github.com/eiiches/jackson-jq) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/eiiches/jackson-jq/releases)
- [Commits](https://github.com/eiiches/jackson-jq/compare/1.4.0...1.5.0)

---
updated-dependencies:
- dependency-name: net.thisptr:jackson-jq
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 10:58:36 +02:00
Nicolas K.
05b485e6cc feat(API): add a new endpoint to replay and execution / task with new… (#10868)
* feat(API): add a new endpoint to replay and execution / task with new inputs

* clean(API): code review

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-28 10:35:39 +02:00
brian-mulier-p
78a489882f feat(executions): add autoselectFirst property to select inputs (#10919)
closes #9691
2025-08-28 09:39:05 +02:00
github-actions[bot]
b872223995 chore(core): localize to languages other than english (#10933)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-08-28 08:26:32 +02:00
YannC
e3d2b93c6b feat: export auditlogs through a streamed file (#10569) 2025-08-27 23:44:34 +02:00
brian.mulier
1699403c95 fix(dashboard): working dashboard edit 2025-08-27 22:36:15 +02:00
brian.mulier
b3fa5ead6d fix(dashboard): don't duplicate id on source retrieval 2025-08-27 21:04:02 +02:00
YannC.
d4e7b0cde4 fix: throw an error when trying to create a flow with a reserved keyword id
close #5832
2025-08-27 19:17:04 +02:00
brian-mulier-p
5da4d88738 feat(dashboard): mandatory id + add autogenerated id to source for legacy handling (#10912)
closes kestra-io/kestra-ee#4484
2025-08-27 14:10:28 +02:00
Miloš Paunović
d60ec87375 chore(core): align flow options in tour to the top of the page (#10920)
Closes https://github.com/kestra-io/kestra/issues/10915.
2025-08-27 13:54:07 +02:00
brian-mulier-p
cf87145bb9 fix(docs): move proxy target from kestra to localhost and add UI README.md (#10916)
closes #10902
2025-08-27 11:50:19 +02:00
brian.mulier
0e2ddda6c7 fix(core): allow some left menu methods inheritance
part of kestra-io/kestra-ee#4728
2025-08-27 10:47:29 +02:00
brian-mulier-p
3b17b741f1 fix(doc): remove .env.development.local instructions as it's no longer required
closes #10902
2025-08-27 10:22:28 +02:00
Miloš Paunović
21c43e79e2 feat(core): implement improved graph for namespace dependencies view (#10909)
Closes https://github.com/kestra-io/kestra/issues/10634.
2025-08-27 08:34:24 +02:00
Piyush Bhaskar
810e80d989 fix(plugins): improve plugin documentation update logic for element selection (#10908) 2025-08-26 16:53:30 +05:30
Loïc Mathieu
2aafe15124 chore: add JacksonMapperTest.toMap() 2025-08-26 10:38:22 +02:00
Loïc Mathieu
cf866c059a fix: pause tasks didn't process erros or onFinally tasks
Fixes #9794

The Pause task was previously immediatly termindated without taken into account any errors or finally block.
To allow processing those blocks, we need to store the terminated state in the output, then use it to resolve the final state.
2025-08-26 10:38:22 +02:00
Loïc Mathieu
370fe210e5 fix: allow timeout on the Pause task 2025-08-26 10:38:22 +02:00
Abdur Rahman S
83e98be413 chore(executions): add parent execution link to execution overview page (#10810)
Closes https://github.com/kestra-io/kestra/issues/10745.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-08-26 10:12:37 +02:00
Piyush Bhaskar
7d4d1631d2 fix(core): do not overflow the version selection on release notes (#10903) 2025-08-26 13:25:58 +05:30
github-actions[bot]
98534f16e2 chore(core): localize to languages other than english (#10904)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-08-26 09:48:43 +02:00
Barthélémy Ledoux
b308697449 refactor(flows): generalize no code editor (#10873) 2025-08-26 09:33:21 +02:00
Piyush Bhaskar
62e0550efd fix(ui): bring better small chart and tooltip. (#10839)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-08-26 12:59:16 +05:30
YannC
1711e7fa05 fix: allow to enforce editor view when list is unreadable, also truncate too long column (#10885) 2025-08-26 09:10:39 +02:00
github-actions[bot]
04a3978fd2 chore(core): localize to languages other than english (#10901)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-08-26 08:47:39 +02:00
Biplab Bera
2d348786c3 chore(core): added closing button for horizontal panel in playground (#10777)
Closes https://github.com/kestra-io/kestra/issues/10660.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-08-26 08:45:08 +02:00
Miloš Paunović
041a31e022 chore(core): make playground feature enabled by default (#10891)
Related to https://github.com/kestra-io/kestra-ee/issues/4555.
2025-08-26 08:30:44 +02:00
brian.mulier
11a6189bb8 fix(logs): emitAsync is now keeping messages order 2025-08-25 16:31:46 +02:00
brian.mulier
5c864eecc8 fix(logs): higher max message length to keep stacktraces in a single log 2025-08-25 16:31:46 +02:00
brian.mulier
af6d15dd13 chore(deps): bump Micronaut platform to 4.9.2
closes #10626
closes #10788
2025-08-25 16:31:46 +02:00
Piyush Bhaskar
0b555b3773 fix(core): return URI as string (#10892) 2025-08-25 18:55:54 +05:30
Piyush Bhaskar
6ed4c5af7e fix(core): show the logs for the task from topology graph. (#10890) 2025-08-25 18:39:30 +05:30
Barthélémy Ledoux
3752481756 chore(flows): load dependencies only once (#10782)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-08-25 14:59:30 +02:00
Karthik D
94dc62aee1 chore(core): prevent running the invalid flow in playground (#10869)
Closes https://github.com/kestra-io/kestra/issues/10659.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-08-25 14:51:04 +02:00
Piyush Bhaskar
09c79f76d7 fix(core): show the proper origin in webhook curl command (#10878)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-08-25 14:20:04 +05:30
Piyush Bhaskar
086fd2a4cb fix(core): scope the styling to fix overflow of trigger render. (#10880) 2025-08-25 14:18:00 +05:30
YannC
3f9a2d9a57 feat: add action to merge release note between OSS and EE (#10882) 2025-08-25 10:41:53 +02:00
YannC
119bd51170 fix: do no trim . in file path when it starts with one when creating namespace file (#10876) 2025-08-25 10:18:41 +02:00
Anna Geller
552b3d7476 docs: add agents guidelines (#10875) 2025-08-25 08:53:17 +02:00
Florian Hussonnois
795f9c9a17 fix(core): add missing equals/hashcode methods on UnitTest 2025-08-22 13:29:13 +02:00
Florian Hussonnois
df430ded61 fix(system): fix count in AbstractJdbcRepository 2025-08-22 13:29:13 +02:00
Roman Acevedo
a6844e0ecf ci: fix by making inputs accept both dispatch and callable 2025-08-22 11:13:58 +02:00
Roman Acevedo
f71574cfb5 ci: simplify docker ci and push minor semver (#10848)
This PR modify our existing CI to allow publishing our docker image with 2 semver tags.
Example: for a CI on a tag v0.24.99 it will push both tags v0.24.99 and v0.24.

When this CI is settled on this repo (after one micro release for example), I will do the same for EE.

What has been done:

merge docker.yml into workflow-publish-docker.yml
make workflow-publish-docker.yml handle both tags (releases) and develop CI
when in a tag CI, extract the minor version, push it as well as the full vMAJOR.MINOR.PATCH version (see the related issue Add Multiple Semantic Version (SemVer) Tags for Docker Images #10575)
2025-08-22 10:41:59 +02:00
Nicolas K.
c5341e56e9 fix(tests): flaky consumer test (#10853)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-22 09:37:43 +02:00
Piyush Bhaskar
88b0723147 fix(flows): fixes revision restore for a flow (#10841) 2025-08-22 12:50:13 +05:30
Piyush Bhaskar
f79fcf5734 chore(versions) : bump the ui-libs (#10862) 2025-08-22 12:45:12 +05:30
Barthélémy Ledoux
cf27827f20 fix(core): when refreshing a multipanel editor, sizes are not kept (#10858) 2025-08-22 12:16:51 +05:30
Barthélémy Ledoux
408b6b97a7 fix(flows): in no-code refreshing a message will update its value (#10851) 2025-08-21 22:32:39 +02:00
Piyush Bhaskar
d57753e62b fix(core): Choose File button and hover on btn text in light theme (#10857) 2025-08-21 23:20:27 +05:30
Nicolas K.
2571eaf56c fix: #4442 extract tenant id from file path (#10850)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-21 17:40:10 +02:00
Florian Hussonnois
37ea7f31a0 feat(flows): add pebble expression support for all input defaults (#9762)
Fix: #9762
2025-08-21 17:14:15 +02:00
Roman Acevedo
478c911718 fix(tests): a TestSuite with any ERROR could not end in ERROR 2025-08-21 16:43:16 +02:00
Piyush Bhaskar
1bce0d673f fix(core): update params for flow navigation (#10847) 2025-08-21 19:43:26 +05:30
Florian Hussonnois
609a5b8066 feat(flow): add support for optional flow outputs
Add the new required property to the flow output
model. By default, all flow's outputs are required

Fixes: kestra-io/kestra-ee#3969
2025-08-21 16:09:22 +02:00
Florian Hussonnois
6182015a6f feat(system): report additional server events
Part-of: kestra-io/kestra-ee#3014
2025-08-21 14:50:11 +02:00
brian.mulier
6f8044f347 fix(ai): make sure accept / decline AI banner doesn't hide code editor (#10835)
closes kestra-io/kestra-ee#4273
2025-08-21 14:45:32 +02:00
brian.mulier
b3b7596bf4 fix(ai): AI Copilot instructions for better results (#10835)
closes kestra-io/kestra-ee#4273
2025-08-21 14:45:32 +02:00
brian.mulier
36b1c14424 fix(ai): add instructions for AI Copilot configuration if not enabled yet (#10835)
closes kestra-io/kestra-ee#4273
2025-08-21 14:45:32 +02:00
brian-mulier-p
1aef9578d9 fix(kv): Set task should convert numbers to string if kvType == STRING (#10836) 2025-08-21 09:33:03 +02:00
Piyush Bhaskar
6a07e3c048 fix(core): truncate the overflowing text from button when zoomed #10775 2025-08-21 01:14:28 +05:30
Owen Warnack
b643954921 fix(ui): show lock icon for namespace in No-Code editor (#10667)
Co-authored-by: Piyush Bhaskar <impiyush0012@gmail.com>
2025-08-21 00:06:23 +05:30
Piyush Bhaskar
fe1ae290d0 fix(core): show validation button icon 2025-08-20 23:48:14 +05:30
Hamza
6ae2fde78f fix(core): truncate the overflowing text from button when zoomed (#10775)
Co-authored-by: Piyush Bhaskar <impiyush0012@gmail.com>
2025-08-20 23:28:53 +05:30
Loïc Mathieu
260f5c427b fix(system): properly close the ScheduledExecutorService tasks
This avoids having running threads while the component is supposed to be closed.
2025-08-20 14:23:13 +02:00
dependabot[bot]
f2dbc41cdb build(deps): bump opensearchRestVersion from 3.1.0 to 3.2.0
Bumps `opensearchRestVersion` from 3.1.0 to 3.2.0.

Updates `org.opensearch.client:opensearch-rest-client` from 3.1.0 to 3.2.0
- [Release notes](https://github.com/opensearch-project/OpenSearch/releases)
- [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/OpenSearch/compare/3.1.0...3.2.0)

Updates `org.opensearch.client:opensearch-rest-high-level-client` from 3.1.0 to 3.2.0
- [Release notes](https://github.com/opensearch-project/OpenSearch/releases)
- [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/OpenSearch/compare/3.1.0...3.2.0)

---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-rest-client
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.opensearch.client:opensearch-rest-high-level-client
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 14:00:48 +02:00
dependabot[bot]
39fdb7ed5d build(deps): bump com.github.oshi:oshi-core from 6.8.2 to 6.8.3
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.8.2 to 6.8.3.
- [Release notes](https://github.com/oshi/oshi/releases)
- [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.8.2...oshi-parent-6.8.3)

---
updated-dependencies:
- dependency-name: com.github.oshi:oshi-core
  dependency-version: 6.8.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 13:57:41 +02:00
dependabot[bot]
c6b9c445c5 build(deps): bump com.github.docker-java:docker-java-transport-httpclient5
Bumps [com.github.docker-java:docker-java-transport-httpclient5](https://github.com/docker-java/docker-java) from 3.5.3 to 3.6.0.
- [Release notes](https://github.com/docker-java/docker-java/releases)
- [Changelog](https://github.com/docker-java/docker-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/docker-java/docker-java/compare/3.5.3...3.6.0)

---
updated-dependencies:
- dependency-name: com.github.docker-java:docker-java-transport-httpclient5
  dependency-version: 3.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 13:57:10 +02:00
dependabot[bot]
da8992f130 build(deps): bump com.google.cloud:libraries-bom from 26.65.0 to 26.66.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.65.0 to 26.66.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.65.0...v26.66.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.66.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 13:56:43 +02:00
dependabot[bot]
e448690086 build(deps): bump software.amazon.awssdk:bom from 2.32.21 to 2.32.26
Bumps software.amazon.awssdk:bom from 2.32.21 to 2.32.26.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.32.26
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 13:56:21 +02:00
Florian Hussonnois
3929bf6172 feat(system): add distinct server-events for reporting
Refactor the services used to generate periodic reports on server usage.

Related-to: kestra-io/kestra-ee#3014
2025-08-20 12:20:31 +02:00
Piyush Bhaskar
ab9951466d feat(core): implement tab tracking on editor events (#10781) 2025-08-20 14:26:46 +05:30
brian.mulier
ef59a6de26 fix(tests): add test on task runners to assert they can work and transmit their wdir 2025-08-20 09:55:01 +02:00
lizi3
0a64ae7e63 perf(sql):Optimize SQL performance by replacing SQL_CALC_FOUND_ROWS with COUNT(*) 2025-08-20 09:54:39 +02:00
lizi3
8c3cd2856a perf(sql):Optimize SQL performance by replacing SQL_CALC_FOUND_ROWS with COUNT(*) 2025-08-20 09:54:39 +02:00
AJ Emerich
6def8ef831 fix(webhook-trigger): fix documentation typos (#10790) 2025-08-20 09:18:42 +02:00
Piyush Bhaskar
0cc1bffc20 refactor(core): new No Data page when no versioned plugins (#10751)
* refactor(core): new No Data page when no versioned plugins

* chore(core): localize to languages other than english (#10752)

Co-authored-by: GitHub Action <actions@github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
2025-08-20 12:23:51 +05:30
Barthélémy Ledoux
3bdf55a649 refactor(flows): rename MultiPanelFlowEditorView and extract MultiPanelEditorTabs component (#10783) 2025-08-19 16:31:34 +02:00
Barthélémy Ledoux
767a375292 fix(ui): update context docs menu links and section titles (#10768) 2025-08-19 16:24:16 +02:00
brian.mulier
1509ce9b98 fix(core): change cache policy on files returned by webserver that needs to stay fresh
closes #7499
2025-08-19 11:52:48 +02:00
brian.mulier
5a3f3d3312 fix(namespaces): properly send editor content upon creating / updating ns file
part of #7499
2025-08-19 11:52:48 +02:00
Roman Acevedo
6394c337ae fix(tests): filter out ExecutionKind.TEST from FlowTriggers
- fixes Silence flow trigger on TEST-kind executions kestra-ee#4689
2025-08-19 11:03:48 +02:00
Piyush Bhaskar
be4518466f fix(kv): fixes KV creation using authStore 2025-08-19 11:39:29 +05:30
Piyush Bhaskar
543bed48c9 feat(core): changes to introduce Namespace Context (#10750) 2025-08-19 11:06:58 +05:30
Barthélémy Ledoux
5e57d11b73 refactor: make auth store use pinia (#10558)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
Co-authored-by: Piyush-r-bhaskar <impiyush0012@gmail.com>
2025-08-18 15:32:13 +02:00
Piyush Bhaskar
98189392a2 fix(core): show flow graph inside blueprint detail (#10771) 2025-08-18 17:59:13 +05:30
Piyush Bhaskar
ac9a01964a refactor(executions): implement splitter for execution outputs (#10677) 2025-08-18 17:58:50 +05:30
Piyush Bhaskar
8479323f97 refactor: migrate Splitpanes for Element Plus el-splitter. (#10669)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-08-18 16:05:34 +05:30
brian.mulier
4b80b92423 refacto(namespaces): uniformize namespaces usage & retrieval
closes kestra-io/kestra-ee#3500
closes kestra-io/kestra-ee#3356
closes kestra-io/kestra-ee#3163
closes kestra-io/kestra-ee#4713
closes kestra-io/kestra-ee#3210
closes kestra-io/kestra#10700
related to kestra-io/kestra#10701
2025-08-18 12:18:47 +02:00
brian.mulier
2e7d714bcb chore(deps): bump ui-libs from 0.0.237 to 0.0.238 2025-08-18 12:18:47 +02:00
Roman Acevedo
73cf7f04fb test(e2e): make sure used docker image is local 2025-08-18 12:03:44 +02:00
Roman Acevedo
ac0ab7e8fa Revert "build(deps): bump com.gradleup.shadow from 8.3.9 to 9.0.1"
This reverts commit fa6da9bd0b.
2025-08-18 12:03:44 +02:00
Roman Acevedo
c1876e69ed test(e2e): print logs if backend failed to start 2025-08-18 12:03:44 +02:00
Roman Acevedo
cf73a80f2e test(e2e): fix e2e marked as cancelled when near timeout 2025-08-18 12:03:44 +02:00
Barthélémy Ledoux
53687f4a1f fix(core): avoid triggering hundreds of reactivity updates for each icon (#10766) 2025-08-18 11:37:37 +02:00
Florian Hussonnois
749bf94125 fix(core): fix preconditions rendering for ExecutionOutputs (#10651)
Ensure that preconditions are always re-rendered for any
new executions

Changes:
* add new fluent skipCache methods on RunContextProperty and Property
  classes

Fix: #10651
2025-08-18 09:24:58 +02:00
Nicolas K.
25a7994f63 fix(test): disable kafka concurrency queue test (#10755)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-14 16:59:21 +02:00
Anna Geller
e03c894f3a fix: spelling 2025-08-14 15:27:09 +02:00
Piyush Bhaskar
99772c1a48 fix(ui): fixes logo cut off on no permission interface (#10739) 2025-08-14 18:43:28 +05:30
Roman Acevedo
93d6b816bf fix(tests): namespace binding was breaking filtering in Flow page
fixes https://github.com/kestra-io/kestra-ee/issues/4691

the additional namespace binding in Tabs was added in PR https://github.com/kestra-io/kestra/pull/10543 to solve the special case of Namespace creation
2025-08-14 13:39:42 +02:00
Nicolas K.
a3b0512bec feat(storages): #10636 add tenant id to mock trigger (#10749)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-14 12:07:21 +02:00
Loïc Mathieu
265f72b629 fix(execution): parallel flowable may not ends all child flowable
Parallel flowable tasks like `Parallel`, `Dag` and `ForEach` are racy. When a task fail in a branch, other concurrent branches that have flowable may never ends.
We make sure that all children are terminated when a flowable is itself terminated.

Fixes #6780
2025-08-14 12:06:15 +02:00
YannC
07a8d9a665 fix: avoid file being displayed as diff in namespace file editor (#10746)
close #10744
2025-08-14 10:38:33 +02:00
Piyush Bhaskar
59bd607db2 refactor(misc): add misc module to override (#10737) 2025-08-14 13:48:29 +05:30
Nicolas K.
1618815df4 Feat/add get path without tenant (#10741)
* feat(storages): #10636 add get path without tenant id

* feat(storages): #10636 remove first / from get path method

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-13 17:48:03 +02:00
Nicolas K.
a2c3799ab7 feat(storages): #10636 add get path without tenant id (#10740)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-13 16:51:09 +02:00
Loïc Mathieu
986a2b4d11 chore(ci): don't run docker PR image workflow on forks 2025-08-13 15:32:41 +02:00
Loïc Mathieu
cdd591dab7 fix(tests): makes JdbcQueueTest less flaky 2025-08-13 14:56:39 +02:00
Malaydewangan09
9f5cf5aeb9 fix(): subgroups for better readability 2025-08-13 14:41:47 +05:30
Nicolas K.
cc5f73ae06 wip(storages): add non tenant dependant method to storage interface (#10637)
* wip(storages): add non tenant dependant method to storage interface

* feat(storages): #10636 add instance method to retrieve resources without the tenant id

* fix(stores): #4353 failing unit tests after now that tenant id can't be null

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-13 11:00:25 +02:00
dependabot[bot]
e461e46a1c build(deps): bump io.micrometer:micrometer-core from 1.15.2 to 1.15.3
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.15.2 to 1.15.3.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.15.2...v1.15.3)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 10:52:52 +02:00
dependabot[bot]
fa6da9bd0b build(deps): bump com.gradleup.shadow from 8.3.9 to 9.0.1
Bumps [com.gradleup.shadow](https://github.com/GradleUp/shadow) from 8.3.9 to 9.0.1.
- [Release notes](https://github.com/GradleUp/shadow/releases)
- [Commits](https://github.com/GradleUp/shadow/compare/8.3.9...9.0.1)

---
updated-dependencies:
- dependency-name: com.gradleup.shadow
  dependency-version: 9.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 10:52:21 +02:00
dependabot[bot]
3cb6815eac build(deps): bump org.assertj:assertj-core from 3.27.3 to 3.27.4
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.3 to 3.27.4.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.3...assertj-build-3.27.4)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-version: 3.27.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 10:19:45 +02:00
dependabot[bot]
bde9972b26 build(deps): bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 10:09:06 +02:00
dependabot[bot]
bc828efec9 build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.8 to 0.38.9.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.8...v0.38.9)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 10:07:37 +02:00
dependabot[bot]
c62f503f1a build(deps): bump software.amazon.awssdk:bom from 2.32.16 to 2.32.21
Bumps software.amazon.awssdk:bom from 2.32.16 to 2.32.21.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.32.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 10:06:21 +02:00
dependabot[bot]
15a6323122 build(deps): bump flyingSaucerVersion from 9.13.1 to 9.13.2
Bumps `flyingSaucerVersion` from 9.13.1 to 9.13.2.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.13.1 to 9.13.2
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.13.1...v9.13.2)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.13.1 to 9.13.2
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.13.1...v9.13.2)

---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 9.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 9.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 10:05:10 +02:00
dependabot[bot]
21cb7b497d build(deps): bump org.jooq:jooq from 3.20.5 to 3.20.6
Bumps org.jooq:jooq from 3.20.5 to 3.20.6.

---
updated-dependencies:
- dependency-name: org.jooq:jooq
  dependency-version: 3.20.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 10:03:54 +02:00
Loïc Mathieu
26cb6ef9ad fix(execution): concurrency limit didn't work with afterExecutions
This is because the execution is never considered fully terminated so concurrency limit is not handled properly.
This should also affect SLA, trigger lock, and other cleaning stuff.

The root issue is that, with a worker task from afterExecution, there are no other update on the execution itself (as it's already terminated) so no execution messages are again processed by the executor.

Because of that, the worker task result message from the afterExecution block is the last message, but unfortunatly as messages from the worker task result have no flow attached, the computation of the final termination is incorrect.
The solution is to load the flow if null inside the executor and the execution is terminated which should only occurs inside afterExecution.

Fixes #10657
Fixes #8459
Fixes #8609
2025-08-13 09:29:46 +02:00
Piyush Bhaskar
95c438515d fix(core): pass viewTypes to initYamlSource (#10704) 2025-08-13 12:32:17 +05:30
Florian Hussonnois
194ae826e5 chore(system): add WorkerJobQueueInterface to properly pass workerId on subscribe 2025-08-12 19:26:31 +02:00
Prayag
31dbecec77 fix(core): Enter key is now validating filter / refreshing data (#9630)
closes #9471

---------

Co-authored-by: brian.mulier <bmmulier@hotmail.fr>
2025-08-12 17:23:10 +02:00
Anna Geller
b39bcce2e8 fix(translation): close https://github.com/kestra-io/kestra/issues/9857 2025-08-12 13:00:14 +02:00
github-actions[bot]
95ac5ce8a7 chore(core): localize to languages other than english (#10697)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-08-12 12:54:34 +02:00
Piyush Bhaskar
90f913815d fix(core): fix misc store to access configs. (#10692) 2025-08-12 16:24:17 +05:30
Anna Geller
5944db5cc8 fix: translation for sample prompt (#10696) 2025-08-12 12:51:10 +02:00
Loïc Mathieu
577f813eef fix(executions): SLA monitor should take into account restarted executions 2025-08-12 11:46:58 +02:00
Loïc Mathieu
06a9f13676 fix(executions): concurrency limit exceeded when restarting an execution
Fixes #7880
2025-08-12 11:46:58 +02:00
Loïc Mathieu
1fd6e23f96 feat(flows): Flow SLA out of beta
Part-of: https://github.com/kestra-io/kestra-ee/issues/4555
2025-08-12 11:29:32 +02:00
Piyush Bhaskar
9a32780c8c fix(flow): fixes flow deletion inside actions (#10693) 2025-08-12 14:56:31 +05:30
Nicolas K.
af140baa66 Feat/add filters to repositories (#10629)
* wip(repositories): use query filter in the log repository

* feat(repositories): #10628 refactor query builder engine

* fix(repositories): #10628 add sort to findAsych query

* Update core/src/main/java/io/kestra/core/utils/ListUtils.java

Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
2025-08-12 11:17:47 +02:00
Florian Hussonnois
54b0183b95 fix(system): avoid unsupported type error on ServiceType enum 2025-08-12 10:01:30 +02:00
Loïc Mathieu
64de3d5fa8 fix(executions): correctly fail the request when trying to resume an execution with the wrong inputs
Fixes #9959
2025-08-12 09:39:02 +02:00
Piyush Bhaskar
4c17aadb81 fix(ui): more visible color for deafult edge (#10690) 2025-08-12 12:44:20 +05:30
Piyush Bhaskar
bf424fbf53 fix(core): reduce size of code block text and padding (#10689) 2025-08-12 11:46:52 +05:30
brian.mulier
edcdb88559 fix(dashboard): avoid duplicate dashboard calls + properly refresh dashboards on refresh button + don't discard component entirely on refresh 2025-08-11 22:28:19 +02:00
brian.mulier
9a9d0b995a fix(dashboard): properly use time filters in queries
closes kestra-io/kestra-ee#4389
2025-08-11 22:28:19 +02:00
brian-mulier-p
5c5d313fb0 fix(metrics): restore autocompletion on metrics filter (#10688) 2025-08-11 21:08:56 +02:00
Nicolas K.
dfd4d87867 feat(releases): add test jar to meven central deployment (#10675)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-11 15:56:51 +02:00
Piyush Bhaskar
367d773a86 fix(flows): enable the save and makes tab dirty when have unsaved changes in no code (#10671) 2025-08-11 18:35:56 +05:30
brian.mulier
c819f15c66 tests(core): add a test to taskrunners to ensure it's working multiple times on the same working directory
part of kestra-io/plugin-ee-kubernetes#45
2025-08-11 14:59:15 +02:00
Loïc Mathieu
673b5c994c feat(flows): add upstream dependencies in flow dependencies
Closes #10638
2025-08-11 12:43:33 +02:00
Loïc Mathieu
2acf37e0e6 fix(executions): properly fail the task if it contains unsupported unicode sequence
This occurs in Postgres using the `\u0000` unicode sequence. Postgres refuse to store any JSONB with this sequence as it has no textual representation.
We now properly detect that and fail the task.

Fixes #10326
2025-08-11 11:53:39 +02:00
Ludovic DEHON
0d7fcbb936 build(core): create a docker image for each pull request (#10644)
relate to kestra-io/kestra#10643
2025-08-09 00:18:28 +02:00
Miloš Paunović
42b01d6951 chore(core): reload number of dependencies on flow save action (#10663)
Closes https://github.com/kestra-io/kestra/issues/10484.
2025-08-08 15:11:41 +02:00
Miloš Paunović
9edfb01920 chore(core): uniform dependency table namespace label (#10655) 2025-08-08 13:14:53 +02:00
Miloš Paunović
7813337f48 fix(core): ensure dependency table updates occur after dom is fully rendered (#10654)
Closes https://github.com/kestra-io/kestra/issues/10639.
2025-08-08 12:52:16 +02:00
Miloš Paunović
ea0342f82a refactor(core): remove revision property from flow nodes in dependency graph (#10650)
Related to https://github.com/kestra-io/kestra/issues/10633.
2025-08-08 12:21:01 +02:00
Piyush Bhaskar
ca8f25108e fix(core): update flow store usage. (#10649) 2025-08-08 11:34:09 +02:00
Miloš Paunović
49b6c331a6 chore(core): amend edge color scheme in execution dependency graph (#10648)
Related to https://github.com/kestra-io/kestra/issues/10639.
2025-08-08 11:29:11 +02:00
Miloš Paunović
e409fb7ac0 chore(core): lower the wheel sensitivity on zooming of dependency graph (#10647)
Relates to https://github.com/kestra-io/kestra/issues/10639.
2025-08-08 10:27:51 +02:00
Miloš Paunović
0b64c29794 fix(flows): properly import pinia store into a dependency graph composable (#10646) 2025-08-08 10:25:58 +02:00
Piyush Bhaskar
c4665460aa fix(flows): copy trigger url propely. (#10645) 2025-08-08 12:57:41 +05:30
Barthélémy Ledoux
5423b6e3a7 refactor: move flow store to pinia (#10620) 2025-08-08 09:04:33 +02:00
Vanshika Kumar
114669e1b5 chore(core): add padding around user image in left sidebar (#10553)
Co-authored-by: Vanshika Kumar <vanshika.kumar-ext@infra.market>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-08-08 08:34:23 +02:00
Loïc Mathieu
d75f0ced38 fix(executions): allow caching tasks that use the 'workingDir' variable
Fixes #10253
2025-08-07 17:26:24 +02:00
brian.mulier
0a788d8429 fix(core): ensure props with defaults are not marked as required in generated doc 2025-08-07 15:07:00 +02:00
brian.mulier
8c25d1bbd7 fix(core): wrong @NotNull import leading to key not being marked as required
closes #9287
2025-08-07 15:07:00 +02:00
YannC
4e2e8f294f fix: avoid calling nextExecutionDate if value is null when resetting trigger (#10547) 2025-08-07 14:51:27 +02:00
Barthélémy Ledoux
2c34804ce2 fix(core): update necessary node viewer in gradle build (#10624) 2025-08-07 13:38:29 +02:00
Piyush Bhaskar
bab4eef790 refactor(namespace): migrate namespace module to pinia (#10571)
* refactor(namespace): migrate namespace module to pinia

* refactor(namespaces): override the store and fix the test

* fix:  test in good way

* refactor: rename action as ee

* refactor: state and action is different

* refactor:  namespaces store in composition  API and composable to use the common state, actions

* fix: export validate
2025-08-07 16:20:51 +05:30
Miloš Paunović
94aa628ac1 feat(core): implement different graph type for dependencies view (#10240)
Closes https://github.com/kestra-io/kestra/issues/5350.
Closes https://github.com/kestra-io/kestra/issues/10446.
Closes https://github.com/kestra-io/kestra/issues/10563.
Closes https://github.com/kestra-io/kestra-ee/issues/3431.
Closes https://github.com/kestra-io/kestra-ee/issues/4509.

Relates to https://github.com/kestra-io/kestra/issues/10484.
Relates to https://github.com/kestra-io/kestra-ee/issues/3550.
2025-08-07 12:12:12 +02:00
Loïc Mathieu
da180fbc00 chore(system): add a note on MapUtils.nestedToFlattenMap() method 2025-08-07 12:01:31 +02:00
Anna Geller
c7bd592bc7 fix(ai-agent): add prompt suggestion 2025-08-07 10:42:35 +02:00
Florian Hussonnois
693d174960 chore(system): provide a more useful Either utility class
Rewrite and add tests to Either class to be a bit
more useable
2025-08-07 10:31:28 +02:00
Florian Hussonnois
8ee492b9c5 fix(system): fix consumer commit on JDBC queue
Ensure that JDBC queue records are committed to the consumer
after processing. This fixes a rare issue where executions could be blocked after a runner crash.
2025-08-07 10:31:17 +02:00
Loïc Mathieu
d6b8ba34ea chore(system): provide a MapUtils.nestedToFlattenMap() method
It will be used to nest a previously flatten map when needed.
2025-08-07 10:00:13 +02:00
dependabot[bot]
08cc853e00 build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.7 to 0.38.8.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.7...v0.38.8)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 09:19:01 +02:00
dependabot[bot]
4f68715483 build(deps): bump org.apache.commons:commons-compress
Bumps [org.apache.commons:commons-compress](https://github.com/apache/commons-compress) from 1.27.1 to 1.28.0.
- [Changelog](https://github.com/apache/commons-compress/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-compress/compare/rel/commons-compress-1.27.1...rel/commons-compress-1.28.0)

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-version: 1.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 09:18:02 +02:00
Karthik D
edde1b6730 fix(core): fixes overflow of outputs content
* fix

* fix

* fix: minor tweaks

* fix: scope the style

---------

Co-authored-by: Piyush-r-bhaskar <impiyush0012@gmail.com>
2025-08-07 12:37:44 +05:30
Biplab Bera
399446f52e feat: disabled the preview button in output tabs for zip files (#10535)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-08-07 11:56:58 +05:30
Florian Hussonnois
c717890fbc fix(build): fix and enhance release-plugins.sh
Skip gradle release when tag already exists
Check for staging files before commiting
2025-08-06 17:17:50 +02:00
Barthélémy Ledoux
5328b0c574 fix(flows): allow date inputs in playground (#10611) 2025-08-06 15:36:29 +02:00
Barthélémy Ledoux
de14cae1f0 fix(flows): playground only clear highlighted lines on leave task (#10612) 2025-08-06 15:36:17 +02:00
Miloš Paunović
d8a3e703e7 feat(core): add animated edges to topology graph (#10616)
Closes kestra-io/kestra#10614.
2025-08-06 14:49:31 +02:00
dependabot[bot]
90659bc320 build(deps): bump com.azure:azure-sdk-bom from 1.2.36 to 1.2.37
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.36 to 1.2.37.
- [Release notes](https://github.com/azure/azure-sdk-for-java/releases)
- [Commits](https://github.com/azure/azure-sdk-for-java/compare/azure-sdk-bom_1.2.36...azure-sdk-bom_1.2.37)

---
updated-dependencies:
- dependency-name: com.azure:azure-sdk-bom
  dependency-version: 1.2.37
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 12:55:33 +02:00
dependabot[bot]
37d1d8856e build(deps): bump software.amazon.awssdk:bom from 2.32.11 to 2.32.16
Bumps software.amazon.awssdk:bom from 2.32.11 to 2.32.16.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.32.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 11:56:59 +02:00
Florian Hussonnois
93a4eb5cbc build: add plugin-datagen to plugin list 2025-08-06 11:11:46 +02:00
Miloš Paunović
de160c8a2d chore(deps): regular dependency update (#10607)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-08-06 10:20:32 +02:00
dependabot[bot]
28458b59eb build(deps): bump com.mysql:mysql-connector-j from 9.3.0 to 9.4.0
Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 9.3.0 to 9.4.0.
- [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES)
- [Commits](https://github.com/mysql/mysql-connector-j/compare/9.3.0...9.4.0)

---
updated-dependencies:
- dependency-name: com.mysql:mysql-connector-j
  dependency-version: 9.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 09:50:39 +02:00
dependabot[bot]
2a256d9505 build(deps): bump org.eclipse.angus:jakarta.mail from 2.0.3 to 2.0.4
Bumps org.eclipse.angus:jakarta.mail from 2.0.3 to 2.0.4.

---
updated-dependencies:
- dependency-name: org.eclipse.angus:jakarta.mail
  dependency-version: 2.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 09:50:20 +02:00
dependabot[bot]
9008b21007 build(deps): bump com.google.cloud:libraries-bom from 26.64.0 to 26.65.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.64.0 to 26.65.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.64.0...v26.65.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.65.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 09:49:35 +02:00
dependabot[bot]
8c13bf6a71 build(deps): bump com.gradleup.shadow from 8.3.8 to 8.3.9
Bumps [com.gradleup.shadow](https://github.com/GradleUp/shadow) from 8.3.8 to 8.3.9.
- [Release notes](https://github.com/GradleUp/shadow/releases)
- [Commits](https://github.com/GradleUp/shadow/compare/8.3.8...8.3.9)

---
updated-dependencies:
- dependency-name: com.gradleup.shadow
  dependency-version: 8.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 09:49:06 +02:00
dependabot[bot]
43888cc3dd build(deps): bump actions/download-artifact from 4 to 5
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 09:48:47 +02:00
Piyush Bhaskar
c94093d9f6 fix(flows): ensure plugin documentation change on flow switch (#10546)
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-08-05 14:29:36 +05:30
Barthélémy Ledoux
8779dec28a fix(flows): add conditional rendering for restart button based on execution (#10570) 2025-08-05 10:22:13 +02:00
Nicolas K.
41614c3a6e feat(stores): #4353 list all KV for namespace and parent namespaces (#10470)
* feat(stores): #4353 list all KV for namespace and parent namespaces

* feat(stores): #4353 list all KV for namespace and parent namespaces

* feat(stores): #4353 list all KV for namespace and parent namespaces

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-08-05 09:55:41 +02:00
Barthélémy Ledoux
6b4fdd0688 fix: restore InputForm (#10568) 2025-08-05 09:44:39 +02:00
Loïc Mathieu
0319f3d267 feat(system): set the default number of worker threads to 8x available cpu cores
This is a better default for mixed workloads and provides better tail latency.
This is also what we advise to our customer.
2025-08-05 09:19:14 +02:00
brian.mulier
0b37fe2cb8 fix(namespaces): autocomplete in kv & secrets
related to kestra-io/kestra-ee#4559
2025-08-04 20:29:56 +02:00
brian.mulier
e623dd7729 fix(executions): avoid SSE error in follow execution dependencies
closes #10560
2025-08-04 20:22:32 +02:00
Barthélémy Ledoux
db4f7cb4ff fix(flows)*: load flow for execution needs to be stored most of the time (#10566) 2025-08-04 18:54:01 +02:00
Abhilash T
b14b16db0e fix: Updated InputsForm.vue to clear Radio Button Selection (#9654)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-08-04 16:03:25 +02:00
brian.mulier
77f6cec0e4 fix(executions): restore execution redirect & subflow logs view from parent
closes #10528
closes #10551
2025-08-04 15:46:48 +02:00
Piyush Bhaskar
1748b18d66 chore(core): remove variable and directly assign. (#10554) 2025-08-04 18:45:19 +05:30
Piyush Bhaskar
32f96348c1 fix(core): proper state detection from parsed data (#10527) 2025-08-04 18:41:05 +05:30
Barthélémy Ledoux
07db0a8c80 fix(flows): no-code - when changing type message avoid warning (#10498) 2025-08-04 14:57:28 +02:00
Barthélémy Ledoux
2035fd42c3 refactor: use composition api and ts on revision component (#10529) 2025-08-04 14:56:36 +02:00
Barthélémy Ledoux
2856bf07e8 refactor: move editor from vuex to pinia (#10533)
Co-authored-by: Piyush-r-bhaskar <impiyush0012@gmail.com>
2025-08-04 14:55:55 +02:00
Barthélémy Ledoux
f5327cec33 fix: remove debugging value from playground (#10541) 2025-08-04 14:54:45 +02:00
Anna Geller
42955936b2 fix: demo no longer exists 2025-08-04 14:38:13 +02:00
Miloš Paunović
771b98e023 chore(namespaces): add the needed prop for loading all namespaces inside a selector (#10544) 2025-08-04 12:44:38 +02:00
Miloš Paunović
b80e8487e3 fix(namespaces): amend problems with namespace secrets and kv pairs (#10543)
Closes https://github.com/kestra-io/kestra-ee/issues/4584.
2025-08-04 12:19:52 +02:00
YannC.
f35a0b6d60 fix: add missing webhook releases secrets for github releases 2025-08-01 23:21:27 +02:00
brian.mulier
0c9ed17f1c fix(core): remove icon for inputs in no-code
closes #10520
2025-08-01 16:32:08 +02:00
brian.mulier
7ca20371f8 fix(executions): avoid race condition leading to never-ending follow with non-terminal state 2025-08-01 13:12:14 +02:00
brian.mulier
8ff3454cbd fix(core): ensure instances can read all messages when no consumer group / queue type 2025-08-01 13:12:14 +02:00
Piyush Bhaskar
09593d9fd2 fix(namespaces): fixes loading of additional ns (#10518) 2025-08-01 16:28:01 +05:30
Loïc Mathieu
d3cccf36f0 feat(flow): pull up description to the FlowInterface
This avoid the need to parse the flow for ex by AI to get the description.
2025-08-01 12:43:49 +02:00
Loïc Mathieu
eeb91cd9ed fix(tests): RunContextLoggerTest.secrets(): wrong number of logs in awaitLogs() 2025-08-01 12:41:41 +02:00
Loïc Mathieu
2679b0f067 feat(flows): warn on runnable only properties on non-runnable tasks
Closes #9967
Closes #10500
2025-08-01 12:41:08 +02:00
Piyush Bhaskar
54281864c8 fix(executions): do not rely on monaco to get value (#10515) 2025-08-01 13:23:43 +05:30
Loïc Mathieu
e4f9b11d0c fix(ci): workflow build artifact doesn't need the plugin version 2025-08-01 09:41:48 +02:00
Barthélémy Ledoux
12cef0593c fix(flows): playground need to use ui-libs (#10506) 2025-08-01 09:06:11 +02:00
Piyush Bhaskar
c6cf8f307f fix(flows): route to flow page (#10514) 2025-08-01 12:10:56 +05:30
Piyush Bhaskar
3b4eb55f84 fix(executions): properly handle methods and computed for tabs (#10513) 2025-08-01 12:10:27 +05:30
YannC
d32949985d fix: handle empty flows list in lastExecutions correctly (#10493) 2025-08-01 07:21:00 +02:00
YannC
c051ca2e66 fix(ui): load correctly filters + refresh dashboard on filter change (#10504) 2025-08-01 07:15:46 +02:00
Piyush Bhaskar
93a456963b fix(editor): adjust padding for editor (#10497)
* fix(editor): adjust padding for editor

* fix: make padding 16px
2025-07-31 19:10:46 +05:30
YannC.
9a45f17680 fix(ci): do not run github release on tag 2025-07-31 14:37:51 +02:00
github-actions[bot]
5fb6806d74 chore(core): localize to languages other than english (#10494)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-31 17:44:10 +05:30
Barthélémy Ledoux
f3cff72edd fix(flows): forget all old taskRunId when a new execution (#10487) 2025-07-31 13:41:57 +02:00
Barthélémy Ledoux
0abc660e7d fix(flows): wait longer for widgets to be rendered (#10485) 2025-07-31 13:41:46 +02:00
Barthélémy Ledoux
f09ca3d92e fix(flows): load flows documentation when coming back to no-code root (#10374) 2025-07-31 13:41:36 +02:00
YannC
9fd778fca1 feat(ui): added http method autocompletion (#10492) 2025-07-31 13:28:59 +02:00
Loïc Mathieu
667af25e1b fix(executions): Don't create outputs from the Subflow task when we didn't wait
As, well, if we didn't wait for the subflow execution, we cannot have access to its outputs.
2025-07-31 13:06:58 +02:00
github-actions[bot]
1b1aed5ff1 chore(core): localize to languages other than english (#10489)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-31 12:14:37 +02:00
Barthélémy Ledoux
da1bb58199 fix(flows): add the load errors to the flow errors (#10483) 2025-07-31 11:53:43 +02:00
Loïc Mathieu
d3e661f9f8 feat(system): improve performance of computeSchedulable
- Store flowIds in a list to avoid computing the multiple times
- Storeg triggers by ID in a map to avoid iterating the list of triggers for each flow
2025-07-31 11:35:01 +02:00
yuri1969
2126c8815e feat(core): validate URL configuration
Used the `ServerCommandValidator` style.

BREAKING CHANGE: app won't start due invalid `kestra.url`
2025-07-31 11:24:21 +02:00
yuri1969
6cfc5b8799 fix(build): reduce Gradle warnings 2025-07-31 11:21:01 +02:00
Barthélémy Ledoux
16d44034f0 fix(flows): hide executionkind meta in the logs (#10482) 2025-07-31 10:50:34 +02:00
Barthélémy Ledoux
f76e62a4af fix(executions): do not rely on monaco to get value (#10467) 2025-07-31 09:28:33 +02:00
Piyush Bhaskar
f6645da94c fix(core): remove top spacing from no execution page and removing the redundant code (#10445)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-31 12:03:58 +05:30
github-actions[bot]
93b2bbf0d0 chore(core): localize to languages other than english (#10471)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-31 08:23:08 +02:00
Piyush Bhaskar
9d46e2aece fix(executions): make columns that are not links normal text (#10460)
* fix(executions): make it normal text

* fix(executions): use monospace font only
2025-07-31 10:33:33 +05:30
brian.mulier
133315a2a5 chore(deps): hardcode vue override version 2025-07-30 19:25:50 +02:00
brian.mulier
b96b9bb414 fix(core): avoid follow execution from being discarded too early
closes #10472
closes #7623
2025-07-30 19:25:50 +02:00
Barthélémy Ledoux
9865d8a7dc fix(flows): playground - implement new designs (#10459)
Co-authored-by: brian.mulier <bmmulier@hotmail.fr>
2025-07-30 17:54:46 +02:00
brian-mulier-p
29f22c2f81 fix(core): redesign playground run task button (#10423)
closes #10389
2025-07-30 15:23:33 +02:00
dependabot[bot]
3e69469381 build(deps): bump net.thisptr:jackson-jq from 1.3.0 to 1.4.0
Bumps [net.thisptr:jackson-jq](https://github.com/eiiches/jackson-jq) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/eiiches/jackson-jq/releases)
- [Commits](https://github.com/eiiches/jackson-jq/compare/1.3.0...1.4.0)

---
updated-dependencies:
- dependency-name: net.thisptr:jackson-jq
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 15:08:39 +02:00
dependabot[bot]
38c24ccf7f build(deps): bump software.amazon.awssdk:bom from 2.32.6 to 2.32.11
Bumps software.amazon.awssdk:bom from 2.32.6 to 2.32.11.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.32.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 15:07:49 +02:00
Loïc Mathieu
12cf41a309 fix(ci): don't publish docker in build-artifact 2025-07-30 14:42:16 +02:00
Malaydewangan09
7b8ea0d885 feat(plugins): add script plugins 2025-07-30 17:27:48 +05:30
Barthélémy Ledoux
cf88bbcb12 fix(flows): playground align restart button button (#10415) 2025-07-30 11:57:24 +02:00
Loïc Mathieu
6abe7f96e7 fix(ci): add missing build artifact job 2025-07-30 11:47:10 +02:00
Loïc Mathieu
e73ac78d8b build(ci): allow downloading the exe from the workflow and not the release
This would allow running the workflow even if the release step fail
2025-07-30 11:23:43 +02:00
François Delbrayelle
b0687eb702 fix(): fix icons 2025-07-30 10:28:10 +02:00
weibo1
85f9070f56 feat: Trigger Initialization Method Performance Optimization 2025-07-30 09:23:48 +02:00
YannC
0a42ab40ec fix(dashboard): pageSize & pageNumber is now correctly pass when fetching a chart (#10413) 2025-07-30 08:45:20 +02:00
Piyush Bhaskar
856d2d1d51 refactor(flows): remove execution chart (#10425) 2025-07-30 11:54:35 +05:30
YannC.
a7d6dbc8a3 feat(ci): allow to run github release ci on dispatch 2025-07-29 15:04:50 +02:00
YannC.
cf82109da6 fix(ci): correctly pass GH token to release workflow 2025-07-29 15:01:36 +02:00
Barthélémy Ledoux
d4168ba424 fix(flows): playground clear current execution when clearExecutions() (#10414) 2025-07-29 14:43:11 +02:00
Loïc Mathieu
46a294f25a chore(version): upgrade to v1.0.0-SNAPSHOT 2025-07-29 14:23:19 +02:00
Loïc Mathieu
a229036d8d chore(version): update to version 'v0.24.0-rc0-SNAPSHOT'. 2025-07-29 14:21:49 +02:00
François Delbrayelle
a518fefecd feat(plugins): add plugin-deepseek 2025-07-29 13:58:11 +02:00
Barthélémy Ledoux
1d3210fd7d fix(flows): remove text from warning button (#10370) 2025-07-29 11:27:37 +02:00
brian-mulier-p
597f84ecb7 fix(core): topology was no longer working on new flows (#10411)
closes #10354
2025-07-29 11:19:05 +02:00
Barthélémy Ledoux
5f3c7ac9f0 fix(core): allow icons api call to take longer than local call (#10412) 2025-07-29 11:13:12 +02:00
Nicolas K.
77c4691b04 fix(tests): rework basic auth service test (#10409)
* fix(tests): rework basic auth service test

* fix(tests): clean basic auth service test

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-29 10:59:43 +02:00
github-actions[bot]
6d34416529 chore(core): localize to languages other than english (#10410)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-29 13:55:25 +05:30
Piyush Bhaskar
40a67d5dcd feat(flows): add webhook curl and json field (#10392) 2025-07-29 13:48:28 +05:30
Loïc Mathieu
2c68c704f6 fix(test): flaky test JdbcQueueTest.withGroupAndType() 2025-07-29 09:35:28 +02:00
Miloš Paunović
e59d9f622c chore(namespaces): properly handle file name field on flow run dialog if set from defaults (#10390)
Closes https://github.com/kestra-io/kestra/issues/10365.
2025-07-29 08:29:08 +02:00
Piyush Bhaskar
c951ba39a7 fix(core): make validation less aggressive (#10406) 2025-07-29 11:41:38 +05:30
github-actions[bot]
a0200cfacb chore(core): localize to languages other than english (#10405)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-28 20:50:23 +02:00
dependabot[bot]
c6310f0697 build(deps): bump com.github.ben-manes.caffeine:caffeine
Bumps [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/ben-manes/caffeine/releases)
- [Commits](https://github.com/ben-manes/caffeine/compare/v3.2.1...v3.2.2)

---
updated-dependencies:
- dependency-name: com.github.ben-manes.caffeine:caffeine
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 17:28:31 +02:00
dependabot[bot]
21ba59a525 build(deps): bump org.postgresql:postgresql in the gradle group
Bumps the gradle group with 1 update: [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc).


Updates `org.postgresql:postgresql` from 42.7.6 to 42.7.7
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.6...REL42.7.7)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-version: 42.7.7
  dependency-type: direct:production
  dependency-group: gradle
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 17:26:23 +02:00
Barthélémy Ledoux
4f9e3cd06c fix(flows): bring back alignment on overview (#10369) 2025-07-28 17:22:55 +02:00
Barthélémy Ledoux
e74010d1a4 fix(flows): playground - use all tasks as breakpoints (#10399) 2025-07-28 17:22:23 +02:00
Barthélémy Ledoux
465e6467e9 chore: update ui-libs (#10391) 2025-07-28 17:12:56 +02:00
YannC
c68c1b16d9 fix: set postgres and mysql queue offset as a bigint (#10344) 2025-07-28 16:28:09 +02:00
YannC
468c32156e chore: enforce micronaut open api version until Micronaut Platform works (#10393) 2025-07-28 16:27:59 +02:00
Loïc Mathieu
6e0a1c61ef fix(tests): increase the sleep inside ExecutionControllerRunnerTest.triggerExecutionAndFollowDependencies()
I'm not happy with that but I ran 3x 100 repetitions and all passed
2025-07-28 16:23:40 +02:00
Loïc Mathieu
552d55ef6b fix(test): RestactCaseTest.restartFailedWithFinally() should use executionService.isTerminated() 2025-07-28 16:23:40 +02:00
skayliu
08b0b682bf refactor(pebble): add more timestamp data time format 2025-07-28 16:17:55 +02:00
ben8t
cff90c93bb feat(plugin): add Notion plugin (#10049) 2025-07-28 16:09:01 +02:00
Roman Acevedo
ea465056d0 fix(triggers): bulk action on triggers did not take into account this is async (#10307) 2025-07-28 15:21:03 +02:00
Piyush Bhaskar
02f150f0b0 fix(core): animation on ai agent button (#10379)
* fix(core): animation on ai agent button

* reafctor(ai): add AITriggerButton component.
2025-07-28 18:48:34 +05:30
Loïc Mathieu
95d95d3d3c fix(tests): fix assertions in DateFilterTest.now() 2025-07-28 14:51:41 +02:00
Nicolas K.
6b8d3d6928 fix(tests): flaky test with wire mock not staring fast enough (#10383)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-28 14:07:48 +02:00
Piyush Bhaskar
1e347073ca fix(plugins): go to list of plugins from sidebar (#10385)
* fix(plugins): go to list of plugins from sidebar

* fix: update route to use path.
2025-07-28 17:24:09 +05:30
Loïc Mathieu
ac09dcecd9 fix(flows): wrong warning in FILE input
As we deprecate the `extension` property but still have a default for it, the warning is always disaply.
Removing the default and applying only when needed fixes the issue.

Fixes #10361
2025-07-28 13:40:11 +02:00
Miloš Paunović
40b337cd22 fix(namespaces): make sure the namespace parameter is properly passed when reading a file (#10384)
Relates to https://github.com/kestra-io/kestra/issues/10363.
Relates to https://github.com/kestra-io/kestra-ee/issues/4514.
2025-07-28 12:35:44 +02:00
Karthik D
5377d16036 chore(plugins): simplify the plugins search field (#10373)
Closes https://github.com/kestra-io/kestra/issues/10300.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-28 12:15:08 +02:00
Barthélémy Ledoux
f717bc413f tests: update frontend-tests (#10380) 2025-07-28 12:02:32 +02:00
Loïc Mathieu
d6bed2d235 fix(flows): file watching flow should delete the flow when the file is deleted while reading for update
When you use flow watching, a file can be updated then deleted, if it occurs quickly you could have a modified event, read the file then have a file not found exception as it has been deleted.
We should delete the flow in this case.

This has been detected because the related tests are flaky, doing that reduce falkiness of the related tests
2025-07-28 12:00:30 +02:00
Loïc Mathieu
07fd74b238 fix(test): flaky ExecutionControllerRunnerTest.triggerExecutionAndFollowDependencies() 2025-07-28 11:50:57 +02:00
Loïc Mathieu
60eef29de2 fix(tests): await for terminated execution instead of sleep in ExecutionControllerRunnerTest.killByIdShouldFailed() 2025-07-28 11:50:57 +02:00
Loïc Mathieu
20ca7b6380 fix(tests): increase wait time to 10 in LogConsumerTests.logs()
This  should reduce flakiness
2025-07-28 11:50:57 +02:00
Piyush Bhaskar
9d82df61c6 Revert "fix(core): fixes cumbersome operator selection (#10322)" (#10377)
This reverts commit e78210b5eb.
2025-07-28 14:52:58 +05:30
Piyush Bhaskar
e78210b5eb fix(core): fixes cumbersome operator selection (#10322) 2025-07-28 14:29:42 +05:30
Miloš Paunović
83143fae83 fix(executions): add default icons to execution dependency view (#10375)
Closes https://github.com/kestra-io/kestra/issues/10327.
2025-07-28 10:58:12 +02:00
Malay Dewangan
25f5ccc6b5 fix(runner): support floating-point CPU values in Docker runner (#10366) 2025-07-28 14:21:23 +05:30
Piyush Bhaskar
cf3e49a284 fix(core): give height to tooltip and use ks tokens (#10372) 2025-07-28 13:49:42 +05:30
JAGADEESH E
9a72d378df chore(core): amend missing property causing console warning in the settings page (#9788)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-28 09:49:14 +02:00
Loïc Mathieu
752a927fac feat(logs): allow LogShipper to filters on flowId and executionId
Closes https://github.com/kestra-io/kestra-ee/issues/4468
2025-07-28 09:40:36 +02:00
yuri
4053392921 fix(core): amend misc label-related issues (#10044)
* fix(core): amend misc label-related issues

* re-enabled bulk update of label value
* re-enabled merging flow-execution labels by key
* made duplicated keys rejection readable
* forced multiple validations within `RequestUtils`
* ensured existing labels can be overriden
* added multiple tests validating complex scenarios

BREAKING CHANGE: 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
2025-07-28 09:38:38 +02:00
Barthélémy Ledoux
8b0483643a feat(flows): code editor can launch playground (#10359) 2025-07-28 09:15:39 +02:00
Piyush Bhaskar
5feeb41c7a fix(core): update state count emission and filter table executions. (#10367) 2025-07-28 12:42:20 +05:30
github-actions[bot]
d7f5e5c05d chore(core): localize to languages other than english (#10368)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-28 09:09:32 +02:00
Aditya
4840f723fc chore(core): properly handle environment name set either via config and through the settings page (#10151)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-28 09:06:34 +02:00
Devesh Kumar
8cf159b281 fix(namespaces): prevent namespace folder highlighting when containing file is selected (#10364)
Closes https://github.com/kestra-io/kestra/issues/10360.
2025-07-28 08:47:25 +02:00
Loïc Mathieu
4c79576113 fix(tests): improve JdbcQueueTest flaky tests 2025-07-25 12:50:27 +02:00
Florian Hussonnois
f87f2ed753 fix(system): avoid potential NPE in ServiceLivenessManager (#10338)
Avoid a potential NPE in ServiceLivenessManager when
a local service is unregistered during shutdown before the liveness probe completes

Fix: #10338
2025-07-25 12:33:18 +02:00
Florian Hussonnois
298a6c7ca8 fix(system): ignore state transition failure for indexer
Fix: kestra-io/kestra-ee#4474
2025-07-25 11:35:09 +02:00
Loïc Mathieu
ab464fff6e fix(executions): flow concurrency limit not honors when executions are created at a high rate
This is due to the fact that we now process the execution queue concurrently so there is a race when counting currently running executions. This can be seen easily using a ForEachItem as it could create tens or hundreds of executions almost instantly leading to almost all those executions started as they would all see 0 executions running...

Using a dedicated execution running queue, as done in EE, would serialize the messages and fix the issue.

However, if using multiple executor instances and concurrency limit = 1, there is a theoretical race as no locks will be done if no execution is running. A max surge of executions could be as high as the number of executor but this race is less probable to happen in real world scenario.

Fixes #10167
2025-07-25 11:35:00 +02:00
Florian Hussonnois
6dcba16314 chore(core): clean QueryFilter class 2025-07-25 11:34:09 +02:00
Barthélémy Ledoux
80a328e87e fix(flows): better loading pattern (#10345) 2025-07-25 10:14:07 +02:00
Loïc Mathieu
f2034f4975 fix(executions): race condition inside nested ForEach with concurrency
Fixes #10167
2025-07-25 09:45:29 +02:00
github-actions[bot]
edca56d168 chore(core): localize to languages other than english (#10341)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-24 23:21:03 +02:00
Roman Acevedo
076434cc7c chore: remove frontend codecov in CI 2025-07-24 18:44:44 +02:00
Barthélémy Ledoux
69d2b97416 feat(flows): playground (#10042)
Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
2025-07-24 18:00:13 +02:00
Roman Acevedo
a7b07e5556 chore: update utility scripts still referencing old maven repo 2025-07-24 16:16:41 +02:00
Barthélémy Ledoux
ee6a2ae9a3 fix(flows): parse JSON when switching from string to object (#10255) 2025-07-24 15:48:52 +02:00
Florian Hussonnois
e36925c879 fix(system): fix and cleanup StorageInterface (kestra-io/kestra-ee#4488)
Allow tenantId to be null in storage for cluster-wide
operations on object storage

Related-to: kestra-io/kestra-ee#4488
2025-07-24 15:40:00 +02:00
Piyush Bhaskar
df63fc56fc fix(ai): shortcut to submit and for newline (#10325) 2025-07-24 19:01:18 +05:30
Loïc Mathieu
eb22d3f6ee feat(logs): allow purging log by execution ID
Part-of: https://github.com/kestra-io/kestra-ee/issues/4468
2025-07-24 15:12:27 +02:00
Roman Acevedo
150145692f fix(cli): tenantService was injected directly, this is not working in cli 2025-07-24 13:56:04 +02:00
Roman Acevedo
a900d8f5bb fix(cli): when picoli was throwing InitializationException the java process was not stopped 2025-07-24 13:56:04 +02:00
Loïc Mathieu
3e70aacb9c fix(executions): breakpoint on ForEach
We should be able to put a breakpoint without value, easier for the playground
2025-07-24 13:46:51 +02:00
Piyush Bhaskar
31658a1862 fix(core): prevent default if suggestion is active (#10320) 2025-07-24 16:18:25 +05:30
Miloš Paunović
694ee7ed86 chore(deps): regular dependency update (#10314)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-07-24 12:09:22 +02:00
Piyush Bhaskar
83fb225577 fix(executions): update query parameter for state filtering (#10315) 2025-07-24 14:40:24 +05:30
Miloš Paunović
1d89f53526 chore(flows): show small execution charts on flow listing (#10054)
Co-authored-by: YannC. <ycoornaert@kestra.io>
2025-07-24 10:18:27 +02:00
Roman Acevedo
6d72804a54 fix(filters): left menu current page disabling was not working
- fixes https://github.com/kestra-io/kestra/issues/9476
2025-07-24 10:01:52 +02:00
Piyush Bhaskar
26bd7dab97 fix(core): check null uri (#10309) 2025-07-24 12:46:15 +05:30
dependabot[bot]
1925d7832c build(deps): bump axios in /ui in the npm_and_yarn group (#10305)
Bumps the npm_and_yarn group in /ui with 1 update: [axios](https://github.com/axios/axios).


Updates `axios` from 1.10.0 to 1.11.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.11.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-24 08:42:03 +02:00
Piyush Bhaskar
379649785d fix(secrets): show namespace column (#10222)
* fix(secrets): show namespace column

* fix(secrets): update condition
2025-07-24 11:02:41 +05:30
Roman Acevedo
302ec94bee feat(tests): testsuite run persistence 2025-07-23 20:16:03 +02:00
Malaydewangan09
02f97dfd88 feat(*): add new plugins 2025-07-23 19:52:51 +05:30
dependabot[bot]
ac9f44b766 build(deps): bump flyingSaucerVersion from 9.13.0 to 9.13.1
---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 9.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 9.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 16:18:32 +02:00
dependabot[bot]
c287304264 build(deps): bump com.google.cloud:libraries-bom from 26.63.0 to 26.64.0
---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.64.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 16:17:37 +02:00
Loïc Mathieu
6510cdfbdc fix(core): revert unwanted changes
These changes should not have been added to https://github.com/kestra-io/kestra/pull/10230.

They have not been properly tested even if they seem to be meaningful
2025-07-23 16:16:39 +02:00
dependabot[bot]
298e9f3ab7 build(deps): bump com.microsoft.playwright:playwright
---
updated-dependencies:
- dependency-name: com.microsoft.playwright:playwright
  dependency-version: 1.54.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 15:37:11 +02:00
Nicolas K.
45291eb2c4 fix(cli): #10062 add tenant to load flows properly at the startup (#10290)
* fix(cli): #10062 add tenant to load flows properly at the startup

* fix(cli): #10062 add fallback tenant to ee service

* fix(cli): #10062 use tenant id in all cli

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-23 15:36:10 +02:00
dependabot[bot]
ebd47b31b1 build(deps): bump software.amazon.awssdk:bom from 2.32.1 to 2.32.6
Bumps software.amazon.awssdk:bom from 2.32.1 to 2.32.6.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.32.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 15:35:36 +02:00
dependabot[bot]
48a3a3cbbf build(deps): bump jacksonVersion from 2.19.1 to 2.19.2
Bumps `jacksonVersion` from 2.19.1 to 2.19.2.

Updates `com.fasterxml.jackson:jackson-bom` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.19.1...jackson-bom-2.19.2)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.19.1...jackson-core-2.19.2)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-parameter-names` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-modules-java8/compare/jackson-modules-java8-2.19.1...jackson-modules-java8-2.19.2)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-yaml` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.19.1...jackson-dataformats-text-2.19.2)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-smile` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.19.1...jackson-dataformats-binary-2.19.2)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-cbor` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.19.1...jackson-dataformats-binary-2.19.2)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-ion` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-dataformat-ion/commits)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.19.1...jackson-dataformat-xml-2.19.2)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-guava` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-datatypes-collections/compare/jackson-datatypes-collections-2.19.1...jackson-datatypes-collections-2.19.2)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.19.1 to 2.19.2

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jdk8` from 2.19.1 to 2.19.2

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.module:jackson-module-parameter-names
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-smile
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-cbor
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-ion
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-xml
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-guava
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 15:34:08 +02:00
dependabot[bot]
fc7b7738bd build(deps): bump com.mysql:mysql-connector-j from 8.0.33 to 9.3.0
Bumps [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.0.33 to 9.3.0.
- [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/9.x/CHANGES)
- [Commits](https://github.com/mysql/mysql-connector-j/compare/8.0.33...9.3.0)

---
updated-dependencies:
- dependency-name: com.mysql:mysql-connector-j
  dependency-version: 9.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 15:33:48 +02:00
dependabot[bot]
06ffa6602b build(deps): bump commons-io:commons-io from 2.19.0 to 2.20.0
---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-version: 2.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 15:33:10 +02:00
Piyush Bhaskar
1336cca81a refactor(template): migrate template module to pinia (#10226) 2025-07-23 18:33:38 +05:30
Loïc Mathieu
f0ab8a3067 fix(system)*: don't mix constructor injection with field injection
Field injection are resolved after constructor injection so setting threadCount was never used.
2025-07-23 13:31:06 +02:00
github-actions[bot]
3cfd5ebe4d chore(core): localize to languages other than english (#10291)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-23 16:39:21 +05:30
Piyush Bhaskar
f97ad45cef feat(execution): "Debug Expression" for Trigger Variables (#10242)
* feat(execution): "Debug Expression" for Trigger Variables

* fix(ui): improve layout and text.

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-23 16:00:33 +05:30
Piyush Bhaskar
2a9a0c7484 fix(executions): fixes file preview (#10252)
* fix(executions): fixes file preview

* fix: remove stored file preview

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-07-23 15:49:17 +05:30
Piyush Bhaskar
9eeffa089c chore(version): bump ui-libs to version 0.0.222 (#10285) 2025-07-23 12:46:03 +05:30
YannC
19df58c6da feat: hide community button on EE edition (#10251) 2025-07-23 08:57:19 +02:00
Piyush Bhaskar
d190522bfd fix(executions): fixes execution selection action button (#10257) 2025-07-23 12:00:17 +05:30
Loïc Mathieu
cbd48b0075 chore(plugins): rename Langchain4j plugin to AI 2025-07-22 16:07:27 +02:00
YannC
ea1603f051 feat(pebble): create a in expression to look for a string in a list (#9817)
* feat(pebble): create a in expression to look for a string in a list

close #9813
2025-07-22 15:43:25 +02:00
YannC
d24f6059d9 chore(test): Improved TestsUtils and added more tests for coverage in… (#9776)
* chore(test): Improved TestsUtils and added more tests for coverage in ExecutionControllerRunnerTest

* fix: revert testUtils + reduce sleep time

* fix: replace 2s sleep to 250ms
2025-07-22 15:08:49 +02:00
YannC.
12c8db40ae feat: action to check if tag is latest in github release 2025-07-22 14:45:38 +02:00
Piyush Bhaskar
3660e1a990 fix(logs): update query filter to show logs ns and flowwise (#10248) 2025-07-22 17:54:20 +05:30
Miloš Paunović
ca96c7b5dc fix(namespaces)*: prevent overwriting namespace file content with undefined string (#10247) 2025-07-22 14:23:44 +02:00
bishalbera
d9bdcc5b20 feat(cli): added skip-deprecated flag in plugindoc command 2025-07-22 13:38:48 +02:00
Piyush Bhaskar
c31fae4cc9 fix(triggers): ensure clearing the selection. (#10245) 2025-07-22 15:58:49 +05:30
Miloš Paunović
87480d81b8 chore(core): add missing translation key/value pairs (#10243) 2025-07-22 11:44:53 +02:00
Nicolas K.
251a821322 fix(repositories): make filter service protected (#10241)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-22 11:36:57 +02:00
dependabot[bot]
3d0b2b7f01 build(deps): bump the npm_and_yarn group in /ui with 3 updates (#10236)
---
updated-dependencies:
- dependency-name: vue-i18n
  dependency-version: 11.1.10
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: "@intlify/core-base"
  dependency-version: 11.1.10
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-22 10:37:07 +02:00
Miloš Paunović
0811258d2e fix(executions): make sure outputs do not overflow over right drawer (#10238)
Closes https://github.com/kestra-io/kestra/issues/10232.
2025-07-22 10:12:02 +02:00
Loïc Mathieu
aecd4cc5dd fix(tests): strengthen awaitExecution predicate
In some test situation, awaitExecution may receive old messages so we strenghten the predicate to be sure to wait for the correct execution: the one that ends successfully
2025-07-22 10:08:00 +02:00
YannC.
b1d41f6f47 fix: handle label filter with and instead or for flow
close #4390
2025-07-22 09:42:45 +02:00
Piyush Bhaskar
a9d215996b fix(core): do not show release notes button for ee specific plugins (#10235)
* fix(core): do not show button for ee specific plugins

* fix(core): refactor for improved readability
2025-07-22 12:16:49 +05:30
Emil Shakirov
812c8b5718 feat(core): add a Pebble function to generate KSUID 2025-07-21 18:17:58 +02:00
Nicolas K.
bc3d534ba6 fix(pebble): #8953 add more flexible day number conversion method (#10205)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-21 15:25:09 +02:00
Roman Acevedo
ef4f1bdd1f fix(flows): remove flows date filters UI, they do not exist
- fixes https://github.com/kestra-io/kestra/issues/10201
2025-07-21 12:46:35 +02:00
Loïc Mathieu
6bc1e3ec4d fix(executions)*: restart with finally or afterExecution
When a flow fail and is restarted and contains either a finally or an afterExecution block, those are not resetted so the restart will skip all task and terminate the flow.
The fix will reset the status of those tasks so they are restarted.

Fixes #10155
2025-07-21 12:21:25 +02:00
skayliu
80d394fd6a fix(pebble): fix typo 2025-07-21 12:17:18 +02:00
skayliu
30c4f11b8a fix(pebble): fix typo 2025-07-21 12:17:18 +02:00
skayliu
7bd21887d1 feat(pebble): add millisecond date time format 2025-07-21 12:17:18 +02:00
Roman Acevedo
770438eb66 feat(tests): use Flow YAML autocompletion
- fixes https://github.com/kestra-io/kestra-ee/issues/3900
2025-07-21 11:50:42 +02:00
github-actions[bot]
a8838102ec chore(core): localize to languages other than english (#10221)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-21 11:15:10 +02:00
Piyush Bhaskar
19161cc078 feat(core): update titles , add button slot for license (#10218) 2025-07-21 13:31:45 +05:30
Piyush Bhaskar
6c48571101 feat(core): implement backend validation for login for configs and also fixes PH event (#10196)
* feat(core): implement backend validation for login for configs

* fix(auth): simplify authentication check  and api route

* fix: access auth properly

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>

* fix(ui): improve  auth validation handling and routing

* fix(core): fixes PH event  and initialization for setup process.

---------

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-07-21 13:21:17 +05:30
Loïc Mathieu
c09dafca01 fix(executions): support unicode file name inside the internal storage
Fixes #9550
2025-07-21 09:51:07 +02:00
yuri1969
3a3dadd8e9 fix(tests): timezone issue
Test failed at certain moments when runnin in a non-`Europe/Lisbon` TZ.
2025-07-21 09:03:21 +02:00
skayliu
68c1abb6f2 chore(deps): relocate mysql driver 2025-07-18 12:29:43 +02:00
skayliu
cfea378104 refactor(pebble): Stronger the uuid function from v4 to v7 2025-07-18 12:29:43 +02:00
Barthélémy Ledoux
d1badab05b fix(core): check if logged in before requesting usages (#10194)
* fix(core): check if logged in before requesting usages

* fix: avoid calls to get resources when auth not initialized yet
2025-07-18 15:37:49 +05:30
Nicolas K.
581442c427 feat(security) #10180 open basic auth validation endpoint (#10190)
* feat(security) #10180 open basic auth validation endpoint

* feat(security) #10180 add unit test

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-18 11:23:30 +02:00
MilosPaunovic
02430a00b5 feat: introduce ui changes for keeping filename on file input 2025-07-18 11:16:25 +02:00
Loïc Mathieu
f7c5fd3984 feat(executions): use the uploaded file name for inputs of type FILE
Use the part name for the input ID, this is a BC.
Use the filename attribute of the part for creating the file inside the internal storage.
Detect previous usage of part name and filename and emit a deprecation warning.
2025-07-18 11:16:25 +02:00
Piyush Bhaskar
3f4b39ec4f feat(core): add troubleshooting button and doc (#10191)
* feat(core): add troubleshooting button and doc

* fix: add ?

* fix: type warn

* chore(core): localize to languages other than english (#10193)

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
2025-07-18 14:42:28 +05:30
Piyush Bhaskar
ddfe637828 fix(core): adjust word wrap and prevent newlines in input (#10176)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-18 13:58:16 +05:30
Piyush Bhaskar
e09a89ac03 fix(core): update text from user to account. (#10187)
* fix(core): update text from user to account.

* chore(core): localize to languages other than english (#10188)

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-18 13:47:37 +05:30
github-actions[bot]
bbb5c2a6e0 chore(core): localize to languages other than english (#10189)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-18 10:07:50 +02:00
Piyush Bhaskar
bbf22d8813 fix(ai): show prompt window only if ai is enabled in configs (#10172) 2025-07-18 13:19:47 +05:30
Piyush Bhaskar
243522372d refactor(ai): migrate ai store from Vuex to Pinia (#10174) 2025-07-18 13:14:15 +05:30
Roman Acevedo
2a24e29bd9 feat(filters): prevent saving a search with duplicated label
- fixes https://github.com/kestra-io/kestra/issues/9026
2025-07-18 09:19:55 +02:00
Miloš Paunović
d7d52cba5a chore(core): move expand all buttons to the left side (#10186)
Closes https://github.com/kestra-io/kestra-ee/issues/4394.
2025-07-18 08:46:44 +02:00
MilosPaunovic
8319ad7439 feat(executions): work on the ui for execution dependencies 2025-07-17 17:45:15 +02:00
Loïc Mathieu
4996ccdefd feat(system): add a between-items timeout on all our SSE connections
This avoid potential connection leak by closing them if nothing happen inside it.
These is very unlickly to happen but as some follow endpoint may have races, for ex an execution ends between the time we fetch it and start listening to its event, this is better to add this as a safety net.
2025-07-17 17:45:15 +02:00
Loïc Mathieu
66889a3d92 feat(executions): execution dependencies
Part-of: https://github.com/kestra-io/kestra-ee/issues/4230
2025-07-17 17:45:15 +02:00
Loïc Mathieu
fc0b52dbd0 feat(executions): add execution outputs inside the expression context
Closes https://github.com/kestra-io/kestra-ee/issues/3999
2025-07-17 17:44:55 +02:00
Piyush Bhaskar
c7b9e1846e fix(core): improve handling of setup completion and display values (#10141) 2025-07-17 16:30:39 +02:00
Nicolas K.
fe485243f7 fix(security) #10133 add password validation and save error in database for the front to use (#10177)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-17 16:29:57 +02:00
Anna Geller
8637bb847f fix(docker-compose): add info about password policy to docker compose example 2025-07-17 16:12:08 +02:00
Nicolas K.
c8d89dbdd4 fix(security) #10133 server error when no basic auth configuration persisted (#10175)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-17 15:28:15 +02:00
Miloš Paunović
71e3b19f02 chore(core): add back the missing translation keys (#10170) 2025-07-17 13:04:33 +02:00
Miloš Paunović
5457c216c8 chore(core): remove non-matching translation keys (#10169) 2025-07-17 13:01:10 +02:00
github-actions[bot]
aa2d88fcbb chore(core): localize to languages other than english (#10160)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-17 12:31:16 +02:00
Piyush Bhaskar
393faed512 fix(plugins): adjust font sizes for collapsible body (#10164) 2025-07-17 15:29:20 +05:30
Barthélémy Ledoux
0e8e65af7c feat(flows): add setting to disable hovers in editor (#10159) 2025-07-17 10:54:04 +02:00
Piyush Bhaskar
133151377f fix(triggers): only updates the trigger that matches both flow and trigger Id (#10158) 2025-07-17 14:19:21 +05:30
Loïc Mathieu
fa2bf8fc5c feat(execution): allow to wait for execution completion into a Webhook
Closes #10147
2025-07-17 10:47:53 +02:00
Piyush Bhaskar
614c7b2226 fix(core): fixes some design tweaks for Ai Agent (#9875)
* fix(core): fixes some design tweaks for Ai Agent

* minor tweaks

* fix: show prompt only  when AI is enabled.

* fix: dark button

* remove

* fix(core): repair GlobalSearch

* fix(ai): swap shortcut to CTRL + ALT + SHIFT + K to avoid collisions

* fix: add key shortcuts in dropdown

* fix(ui): update AI width , toggle shortcut and editor top spacing

* fix: en.json

---------

Co-authored-by: brian.mulier <bmmulier@hotmail.fr>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-17 12:48:45 +05:30
Loïc Mathieu
05cb79f4b6 feat(executions): provide a task run caching mechanism
Closes https://github.com/kestra-io/kestra-ee/issues/3580
2025-07-17 09:16:55 +02:00
Nicolas K.
278dbd8b82 fix(security) #10133 ignore enable=true flag from basic auth config (#10148)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-16 17:28:48 +02:00
Loïc Mathieu
98d1ab57cc feat(execution): add execution ID to the latest execution
Needed for the new playground functionality.
2025-07-16 16:54:45 +02:00
Nicolas K.
f2fd9f398d fix(security) #10133 basic auth config always takes priority (#10145)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-16 15:27:34 +02:00
Piyush Bhaskar
b72381e2cb fix(ai): refine card styles; add button disabled state colors across UI. (#10142) 2025-07-16 18:40:20 +05:30
Piyush Bhaskar
14e853ce40 refactor(store): remove unused graph store module (#10144) 2025-07-16 18:39:21 +05:30
Loïc Mathieu
7ebf5989a5 feat(flows): add an API endpoint for listing flow properties
Closes #9524

The new endpoint allow for properties only JSON schema for all base types.
2025-07-16 14:36:19 +02:00
Barthélémy Ledoux
b70faea505 refactor: migrate executions store from vuex to pinia (#10093)
Co-authored-by: Piyush-r-bhaskar <impiyush0012@gmail.com>
2025-07-16 14:14:38 +02:00
dependabot[bot]
f54ed8a488 build(deps): bump io.micrometer:micrometer-core from 1.15.1 to 1.15.2
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.15.1 to 1.15.2.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.15.1...v1.15.2)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 12:48:13 +02:00
dependabot[bot]
6a796b0a25 build(deps): bump com.gorylenko.gradle-git-properties
Bumps com.gorylenko.gradle-git-properties from 2.5.0 to 2.5.2.

---
updated-dependencies:
- dependency-name: com.gorylenko.gradle-git-properties
  dependency-version: 2.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 12:14:00 +02:00
Loïc Mathieu
ec7e65d794 fix(system): possible NPE when computing flowable task outputs 2025-07-16 11:22:38 +02:00
Piyush Bhaskar
0c5e190350 fix(ui): reorder collapse items and refine connection properties to show only non required in collapsed (#9673) 2025-07-16 14:49:13 +05:30
Piyush Bhaskar
1014cdefeb refactor(service): migrate service.js to pinia (#9760)
* refactor(service): migrate service.js to pinia

* fix scope of i18n

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>

---------

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-07-16 14:48:51 +05:30
Loïc Mathieu
efdc29f30a feat(executions): add preview for local files and namespace fles
Closes #9740
2025-07-16 11:05:13 +02:00
dependabot[bot]
a44b7f78fb build(deps): bump org.opensearch.client:opensearch-java
---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-java
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 10:57:57 +02:00
Bart Ledoux
90eb0ffa4f fix: basePath is now a function 2025-07-16 10:27:33 +02:00
dependabot[bot]
85b5002acf build(deps): bump org.apache.logging.log4j:log4j-to-slf4j
Bumps org.apache.logging.log4j:log4j-to-slf4j from 2.25.0 to 2.25.1.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-to-slf4j
  dependency-version: 2.25.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 09:54:02 +02:00
dependabot[bot]
4fd66d7781 build(deps): bump com.vanniktech.maven.publish from 0.33.0 to 0.34.0
Bumps [com.vanniktech.maven.publish](https://github.com/vanniktech/gradle-maven-publish-plugin) from 0.33.0 to 0.34.0.
- [Release notes](https://github.com/vanniktech/gradle-maven-publish-plugin/releases)
- [Changelog](https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.33.0...0.34.0)

---
updated-dependencies:
- dependency-name: com.vanniktech.maven.publish
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 09:53:25 +02:00
dependabot[bot]
362858e4d7 build(deps): bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0
Bumps org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-version: 3.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 09:52:56 +02:00
dependabot[bot]
06e4c9f110 build(deps): bump software.amazon.awssdk:bom from 2.31.77 to 2.32.1
Bumps software.amazon.awssdk:bom from 2.31.77 to 2.32.1.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.32.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 09:52:09 +02:00
dependabot[bot]
a71e46169f build(deps): bump software.amazon.awssdk.crt:aws-crt
---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 09:51:23 +02:00
Barthélémy Ledoux
4e1c4b7708 fix: curl feature needs baseUrl as a function (#10092) 2025-07-15 18:43:12 +02:00
Barthélémy Ledoux
75f5348db1 fix(executions): restore taskruns store (#10090) 2025-07-15 15:37:34 +02:00
Piyush Bhaskar
5b5b616def fix(secrets): circle masked input to replace squarefont. (#10088) 2025-07-15 19:05:24 +05:30
Miloš Paunović
ec360bd658 fix(core): remove icons from no code input selector (#10080)
Closes https://github.com/kestra-io/kestra/issues/10075.

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-07-15 15:05:48 +02:00
Piyush Bhaskar
4f2a37c31f fix(core): fixes user with no rights is able to access the dashboard route (#9361)
* fix(core): allow custom logo slot in sidebar.

* fix: use boolean prop instead of slot
2025-07-15 18:11:35 +05:30
Barthélémy Ledoux
90d572ef33 fix(flow): autocomplete output values in pebble editor (#10083) 2025-07-15 14:25:56 +02:00
Biplab Bera
ceecab1811 chore(executions): improve the file input dialog (#9894)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-15 13:35:25 +02:00
Miloš Paunović
25592ec203 refactor(dashboards): minor improvements of dashboard components code (#10085) 2025-07-15 13:24:35 +02:00
github-actions[bot]
d935333c5b chore(core): localize to languages other than english (#10086)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-15 13:11:07 +02:00
Malay Dewangan
e2571ba523 feat(executions): Allow unqueuing to states other than RUNNING #5939 (#8381)
* feat(executions): added the ui part for being able to unqueue exeution to different state

---------

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-07-15 16:18:35 +05:30
Loïc Mathieu
94dc1cea25 feat(tenants): provide an endpoint that list all tenants dependencies
Part-of: https://github.com/kestra-io/kestra-ee/issues/3515
2025-07-15 12:39:17 +02:00
Piyush Bhaskar
87bb87bbbc fix(ai): update styling for Accept/Decline (#10082) 2025-07-15 16:04:30 +05:30
Miloš Paunović
47955fc3c3 fix(core): remove deprecated properties from no code task selector (#10079)
Closes https://github.com/kestra-io/kestra/issues/10077.
Closes https://github.com/kestra-io/kestra-ee/issues/4355.
2025-07-15 11:33:14 +02:00
Anusha G H
be23ac591c chore(executions): remove cancel button from resume dialog (#10051)
Co-authored-by: Anusha G H <anushah@sahaj.ai>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-15 10:56:36 +02:00
Miloš Paunović
578e34ee17 chore(deps): update the element-plus package and remove patch file for it (#10069) 2025-07-15 10:41:06 +02:00
skayliu
05959ee28c feat(pebble): add a timestampMilli pebble function (#10064)
* feat(pebble): add a timestampMilli pebble function

* feat(test): add a timestampMilli pebble function test

* fix(docs): fix typo

* feat(docs): add a timestampMilli pebble function docs

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-15 10:32:44 +02:00
Piyush Bhaskar
ae2ce394c9 fix(core): secrets as a tab. (#10072) 2025-07-15 13:30:44 +05:30
Miloš Paunović
a3fa2051ce fix(executions): add missing uuid property (#10078) 2025-07-15 08:50:46 +02:00
Anna Geller
6fb0858710 fix: basic auth commented out by default to load setup page first 2025-07-14 14:19:49 +02:00
Anna Geller
df94a248e2 fix(docker-compose): cut the removed enabled flag 2025-07-14 14:08:30 +02:00
Piyush Bhaskar
f826d9ac8e fix(ui): update label styles for better visual (#10070)
* fix(ui): update label styles for better visual

* fix: remove light color
2025-07-14 16:35:20 +05:30
Piyush Bhaskar
8d652d5185 fix(core): show plugin toc properly (#10068) 2025-07-14 12:13:01 +05:30
Piyush Bhaskar
c4680836a6 fix(ui): properly update theme switching (#10065) 2025-07-12 19:15:15 +05:30
brian-mulier-p
77f0f5bb87 fix(core): add an exception to avoid popping challenge in case of wrong credentials on login page (#10061) 2025-07-11 17:22:07 +02:00
brian-mulier-p
c68808582b fix(core): add proxy so that origin is the same as request url for workers (#10053) 2025-07-11 16:44:03 +02:00
brian-mulier-p
3a10a52320 feat(core): hide deprecated elements in doc, autocompletion (only types), nocode (#10020)
closes #7206
closes #8786
closes #9322
2025-07-11 16:41:45 +02:00
François Delbrayelle
0a6bfd1389 fix(gradle): be able to use publishToMavenLocal (#10047) 2025-07-11 16:20:20 +02:00
Piyush Bhaskar
b7201055a8 refactor(core): migrate misc store module to pinia (#10048) 2025-07-11 19:13:38 +05:30
Roman Acevedo
710f9a3373 test(e2e): include E2E tests in PR CI (#10036)
* test(e2e): include E2E tests in PR CI

* Update e2e.yml to fix report

* tests(e2e): video and trace on failure

* tests(e2e): unflaky assertion exec

* tests(e2e): slowMo 100ms
2025-07-11 14:31:10 +02:00
brian.mulier
0402362499 fix(core): strict samesite for basic auth cookie 2025-07-11 12:07:49 +02:00
brian-mulier-p
15d3caf62c fix(core): basic auth is now handled through cookies, header then challenge so that SSE sends it (#10043) 2025-07-11 10:56:12 +02:00
Loïc Mathieu
4dc1e52b08 chore(system): avoid calling allTaskWithChild when computing plugin defaults 2025-07-11 09:38:34 +02:00
Roman Acevedo
6f62988135 build: remove codecov for ui #10038
As discussed with Bart it is not helping us, it is often red and the conf is not right, and anyway he believes codecov on frontend is not easy and perfect

from Bart: Nuance: I believe that having code coverage on Frontend is a great tool to see where we should track more, but having it as a metric is very unproductive.

The only thing I care about being tested are:

if a component renders at all
what it looks like
... interactions
None of this is covered by code lines.

We could have a demand for 10% coverage of every patch and that's it.
2025-07-11 09:09:27 +02:00
Roman Acevedo
8080bbf964 test(storage): unflaky StorageTestSuite.filesByPrefix 2025-07-11 09:06:32 +02:00
Barthélémy Ledoux
565bee96c9 fix(core): login setup failures when baseUrl is empty (#10041)
Co-authored-by: Piyush-r-bhaskar <impiyush0012@gmail.com>
2025-07-10 16:29:45 +02:00
Piyush Bhaskar
44f93c0b13 fix(core): streamlining base URL creation (#10039)
* refactor(core): streamlining base URL creation

* fix: less changes

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-07-10 19:50:04 +05:30
Loïc Mathieu
51f831586a chore(system): avoid calling TaskRun.toStringState() when not needed
This methods do a lot of potentialy big String concatenation so it's better to not call it unless necessary.
2025-07-10 16:06:39 +02:00
Loïc Mathieu
93b9932469 test(executions): improve reliability of the ExecutionControllerRunnerTest 2025-07-10 16:06:26 +02:00
Loïc Mathieu
d10b11ed1f fix(system): merge flowable outputs when terminated
A flowable may compute its outputs before it is terminated. In this case, they can be wiped out when we compute the outputs when terminated.
So we need to merge the maps.
2025-07-10 16:06:26 +02:00
Roman Acevedo
f57ab7a828 feat(tests): impl disabling testcase 2025-07-10 15:32:47 +02:00
Loïc Mathieu
b97f93f2f9 feat(system): use available processor count number of executor threads 2025-07-10 14:59:48 +02:00
Nicolas K.
8094756601 fix(security): use the login/pass of basicAuth for all api urls (#10027)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-07-10 13:51:27 +02:00
Loïc Mathieu
0de5236f8a fix(flows): possible NPE at flow validation 2025-07-10 12:40:45 +02:00
Piyush Bhaskar
1b7034d154 fix(ui): fixes color for icon and label in light theme (#10032) 2025-07-10 15:50:59 +05:30
Barthélémy Ledoux
732f1d95d7 fix: patch element plus for tabs (#10034) 2025-07-10 11:49:11 +02:00
Miloš Paunović
aa3b118cb5 feat(dashboards): implement the table data export functionality (#9911)
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
2025-07-10 10:13:25 +02:00
Piyush Bhaskar
2543ad7216 fix(triggers): disable backfill execution based on yaml definition (#10026) 2025-07-10 13:35:33 +05:30
Nicolas K.
98463335aa fix(security): remove the authorization header (#10025)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-10 09:49:07 +02:00
Nicolas K.
d46ebe2b4a fix(security): add back www-authenticate header (#10018)
* fix(security): add back www-authenticate header

* fix basic auth again

* fix: if setup is not done go to setup

* fix(security): don't persist basic auth config if already persisted

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-07-10 09:27:42 +02:00
Roman Acevedo
fb96fc2f05 chore(tests): add validation on assertions 2025-07-09 18:25:36 +02:00
Roman Acevedo
910bceb900 fix(webserver): server exceptions were not logged when no message
some libraries or even java code throw Exceptions with a 'null' message (but with a stacktrace), in this case our logger was not logging anything
2025-07-09 17:18:58 +02:00
Roman Acevedo
b6475d8552 feat(tests): allow disabling a TestSuite preventing it to run 2025-07-09 17:08:08 +02:00
brian-mulier-p
e136e1ca9a fix(core): trim expressions in select & multiselect to be able to use '|' instead of '>-' (#10017)
closes #10016
2025-07-09 16:36:24 +02:00
Piyush Bhaskar
0f6ae24b8e fix(ui): fixes basic auth handling (#10010)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-07-09 15:18:39 +02:00
brian-mulier-p
cc7f1e25e3 feat(kv): add an optional description (#9886)
closes #9606
2025-07-09 15:08:12 +02:00
Miloš Paunović
63dbff1e7a chore(dashboards): improve chart data loading and uniform look on preview tab (#10014) 2025-07-09 14:53:23 +02:00
YannC
9c6b59c362 fix: bring back lastexecution endpoint (#9973) 2025-07-09 13:48:47 +02:00
Miloš Paunović
72341b8090 chore(core): allow displaying topology horizontally (#10012)
Closes https://github.com/kestra-io/kestra/issues/9980.
2025-07-09 13:11:17 +02:00
yuri
0c730843c6 docs(schedule): mention Sunday day-of-the-week alias (#9961) 2025-07-09 11:39:28 +02:00
Loïc Mathieu
05b50c22e3 feat(executions): allow suspending an execution at a breakpoint
- When creating an execution, you can pass a breakpoint of the form `taskId.value` and an execution kind.
- An execution with a breakpoint will be suspended in the `BREAKPOINT` state when arriving at the point where the breakpoint task should be executed
- You can resume an execution from a breakpoint, this would resume the execution and remove the existing breakpoint. At this time a new breakpoint can be passed.
- You can pass a breakpoint when replaying an execution.

Part-of: https://github.com/kestra-io/kestra-ee/issues/1547
2025-07-09 10:56:00 +02:00
dependabot[bot]
cf4f6554e6 build(deps): bump software.amazon.awssdk:bom from 2.31.75 to 2.31.77
Bumps software.amazon.awssdk:bom from 2.31.75 to 2.31.77.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.77
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 10:55:39 +02:00
Roman Acevedo
7ec1439bb7 chore: add useful scripts for RC 2025-07-09 10:19:05 +02:00
Miloš Paunović
d1b025253a chore(deps): regular dependency update (#10011)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-07-09 10:02:12 +02:00
dependabot[bot]
aa272418cf build(deps): bump com.github.docker-java:docker-java from 3.5.2 to 3.5.3
---
updated-dependencies:
- dependency-name: com.github.docker-java:docker-java
  dependency-version: 3.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 09:22:56 +02:00
dependabot[bot]
ef098c2489 build(deps): bump aquasecurity/trivy-action from 0.31.0 to 0.32.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.31.0 to 0.32.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.31.0...0.32.0)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 09:21:47 +02:00
Devesh Kumar
c671414958 fix(flows): issue where flows with task IDs longer than the supported database column length would cause the application to shut down. 2025-07-08 17:28:06 +02:00
github-actions[bot]
6bb42641a1 chore(core): localize to languages other than english (#9975)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-08 16:24:28 +02:00
Loïc Mathieu
acca4ddd55 fix(system): EE compilation 2025-07-08 15:40:32 +02:00
Piyush Bhaskar
e75a4a7500 feat(ui): introducing OSS auth (#9972)
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-07-08 15:29:58 +02:00
Nicolas K.
4afa7dc969 fix(security) #4311 filter only kestra endpoints (#9971)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-08 15:13:33 +02:00
github-actions[bot]
c953e24931 chore(core): localize to languages other than english (#9969)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-08 18:19:14 +05:30
nKwiatkowski
b70545967e Merge remote-tracking branch 'origin/develop' into develop 2025-07-08 14:15:31 +02:00
Barthélémy Ledoux
02302fa54c fix(flows): autocomplete nocode outputs in pebble (#9955) 2025-07-08 14:10:11 +02:00
Nicolas K.
ff8c224554 fix(security) #4311 add basic auth whitelist for config and add new c… (#9968)
* chore(core): localize to languages other than english (#9966)

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>

* fix(security) #4311 add basic auth whitelist for config and add new config parameter for basic auth initialized

* fix(security) #4311 failing unit tests

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-08 14:02:17 +02:00
Piyush-r-bhaskar
f54c46e238 Revert "feat(core): introducing OSS authentication user creation and login logout (#9683)"
This reverts commit 97b01ab6a4.
2025-07-08 16:51:43 +05:30
github-actions[bot]
750fa4cc8c chore(core): localize to languages other than english (#9966)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-08 11:40:44 +02:00
Piyush Bhaskar
97b01ab6a4 feat(core): introducing OSS authentication user creation and login logout (#9683)
* feat(core): introducing OSS authentication

* use pinia

* fix: error message

* fix logo

* fix import

* fix: i18n

* feat: show dialog fter 30days and send to login page if basicauth is true

* fix: minor tweaks

* fix(ui): ensure email and password are required.
2025-07-08 14:12:32 +05:30
Nicolas K.
eafaf32938 feat(security)!: make basic auth required on OSS (#9688)
* feat(security)!: make basic auth required on OSS

* clean(security)!: put the auth filter code into a publisher

* clean(security)!: add unit tests

* fix(core): merge

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-08 10:41:47 +02:00
Loïc Mathieu
6a4397fdfd fix(system): avoid creating multiple worker job queue
We created miltiple worker job queue because the bean was in the prototype scope.
This was needed only for tests as they are closing it.
Switching to singleton and rebuilding the context of the test that needs it fixes the issue.
2025-07-08 10:35:50 +02:00
YannC.
2109fa8116 fix(ci): Avoid retag latest docker image being true by default 2025-07-08 10:19:34 +02:00
Piyush Bhaskar
7de415e54f refactor(core): migrating doc store module to pinia (#9882) 2025-07-08 13:37:01 +05:30
Piyush Bhaskar
a7307b6a0c fix(ui): openGroup to directly open the first plugin element (#9964) 2025-07-08 13:36:19 +05:30
Barthélémy Ledoux
63613572a5 chore: update ui-libs for documentation collapsible warns (#9954) 2025-07-08 09:08:07 +02:00
Piyush Bhaskar
157e942499 refactor(core): migrate taskrun to Pinia (#9953)
* refactor(core): migrate taskrun to Pinia

* refactor(core): migrate taskrun to Pinia
2025-07-08 12:33:34 +05:30
Piyush Bhaskar
27d1069acd fix(ui): fixes merge snafu and warning lastExecutionByFlowReady (#9962) 2025-07-08 11:54:37 +05:30
brian-mulier-p
4a8b3d4d7d fix(plugins): plugin search is now searching in all element types (#9899) 2025-07-07 20:05:27 +02:00
Loïc Mathieu
475c8d3ce2 fix(webserver)*: bulk set labels remove existing labels
FIxes #9764
2025-07-07 15:21:47 +02:00
AJ Emerich
093ae3ae39 docs(dashboard-data): fix indentations for dashboard data plugins (#9918)
Closes https://github.com/kestra-io/kestra-ee/issues/3646
2025-07-07 15:10:17 +02:00
Piyush Bhaskar
6585d2446a fix(dashboards): include required prop to amend pages using dashboard sections component (#9949)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-07-07 13:36:04 +02:00
Loïc Mathieu
2a53f55c3d fix(system): force running after execution tasks even if the execution is killed
Fixes #9852
2025-07-07 12:38:08 +02:00
Ludovic DEHON
f9b10407f0 chore(build): try to remove the noise for code coverage 2025-07-07 12:34:05 +02:00
Miloš Paunović
d63039f7f9 fix(core): introduce the missing translation key/value pairs for certain languages (#9943) 2025-07-07 12:23:31 +02:00
Miloš Paunović
3c4c1ed275 refactor(core): improve translation pull request description (#9938) 2025-07-07 12:05:09 +02:00
Miloš Paunović
ce1f8a5cc3 refactor(core): remove default reviewers on translation pull requests and add frontend team mention (#9935) 2025-07-07 12:00:17 +02:00
Miloš Paunović
c4581d1442 refactor(core): change default reviewers on translation pull requests to frontend team (#9931) 2025-07-07 11:47:32 +02:00
Miloš Paunović
5c9bb7a110 refactor(core): change default reviewers on translation pull requests (#9929) 2025-07-07 11:42:33 +02:00
Miloš Paunović
c145a0224b refactor(core): open translation pull request on the selected branch instead of develop (#9924) 2025-07-07 11:37:53 +02:00
Miloš Paunović
64121eb24d refactor(core): open translation pull request on the selected branch instead of develop (#9922) 2025-07-07 11:33:21 +02:00
Piyush Bhaskar
fdd7906412 fix(core): fix icon size and handle long title (#9916) 2025-07-07 14:58:27 +05:30
Miloš Paunović
ad87583939 refactor(dashboards): strengthen types for dashboard store module (#9917) 2025-07-07 11:24:21 +02:00
Miloš Paunović
250ada9689 refactor(core): open translation pull request on the selected branch instead of develop (#9919) 2025-07-07 11:22:58 +02:00
github-actions[bot]
e814c68703 chore(core): localize to languages other than english (#9915)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-07 10:58:44 +02:00
Miloš Paunović
932be71d47 chore(dashboards): improve the chart editing functionality (#9914) 2025-07-07 10:56:55 +02:00
Roman Acevedo
0c9b5222d6 fix(iam): tenant deletion raised error about mandatory tenantID in request context 2025-07-07 10:41:52 +02:00
github-actions[bot]
ad52c59f2e chore(core): localize to languages other than english (#9910)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-07 10:39:56 +02:00
Miloš Paunović
2e9a1478e8 chore(dashboards): add the button tooltip for dashboard edition link (#9909) 2025-07-07 10:38:06 +02:00
Florian Hussonnois
833fa56270 fix(webserver): fix reason in ErrorController (#9897)
The exception message is already included in the payload returned from the response, so we don't have to include it in the HTTP Reason phrase. This leads to a wrong error message format in the UI which is in the form {Reason}: {Error Message}. With the current code Reason=Error Message
2025-07-07 10:12:06 +02:00
Miloš Paunović
34af565257 feat(dashboards): introduce the edit icon on hover for each separate dashboard chart (#9908)
Closes https://github.com/kestra-io/kestra-ee/issues/3419.
2025-07-07 10:07:36 +02:00
Piyush Bhaskar
d61d697665 chore(flows): remove breadcrumbs (#9877)
* chore(core): remove Breadcrumbs

* chore(core): remove no code breadcrumbs related code and logic

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-07 13:29:54 +05:30
yuri1969
d698ef56bf fix(cli): prevent NPE on commands defaulting to help 2025-07-07 09:22:47 +02:00
Nicolas K.
b544e257c3 feat(cicd): migrate fetching plugins to maven central (#9902)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-04 17:15:14 +02:00
brian.mulier
2b49c88eab fix(ai): move AI popup button to right + gray placeholder
closes #9890
2025-07-04 17:05:27 +02:00
Miloš Paunović
82a8a118c0 refactor(core): simlify code in plugin documentation (#9900) 2025-07-04 16:24:32 +02:00
yuri
6d9ef2bb38 fix(cli): enforce server command validator (#7418)
With addition of the eagerly initialized BasicAuth bean the validator's order needed to be enforced.
2025-07-04 16:20:56 +02:00
Daniel Rivas
2b3324797b test(processor): add edge-case tests for ServicesFiles utility (#8828) 2025-07-04 16:17:22 +02:00
github-actions[bot]
281e1ef979 chore(core): localize to languages other than english (#9901)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-04 16:09:40 +02:00
Barthélémy Ledoux
3637f4f646 perf(ui): only load the schemaType once per page (#9619) 2025-07-04 15:56:20 +02:00
Barthélémy Ledoux
dfc0bcbb45 fix(ui): fix types of axios (#9676) 2025-07-04 15:40:53 +02:00
Barthélémy Ledoux
c6e01a7ecd fix(flows): bring back clear selection (#9893) 2025-07-04 15:39:13 +02:00
Piyush Bhaskar
f60cc48230 refactor(core): migrates trigger module to pinia (#9896) 2025-07-04 17:17:59 +05:30
Miloš Paunović
abc4e16372 feat(dashboards): initial work on adding buttons to chart cards (#9892)
Relates to https://github.com/kestra-io/kestra/issues/9148.
Relates to https://github.com/kestra-io/kestra/issues/9368.
Relates to https://github.com/kestra-io/kestra-ee/issues/3419.
2025-07-04 09:43:22 +02:00
Miloš Paunović
0e2d5376b7 refactor(dashboards): move the dashboard selector to proper place and clean up the code (#9883)
Relates to https://github.com/kestra-io/kestra/issues/9149.
Closes https://github.com/kestra-io/kestra/issues/9872.
2025-07-04 08:29:47 +02:00
brian.mulier
eb8c5ec494 fix(tests): move back wiremock port due to hardcoded in application.yml 2025-07-03 17:52:41 +02:00
nKwiatkowski
5d92300849 feat(cicd): #4006 add javadoc and sources to cli release 2025-07-03 14:58:40 +02:00
brian.mulier
75df4be0ef fix(core): avoid crashing AI Agent when having multiple versions of same plugin
closes #9871
2025-07-03 14:55:24 +02:00
Barthélémy Ledoux
739a873cb2 fix(flows): make sure expression can accept null values (#9876) 2025-07-03 11:55:23 +02:00
Bart Ledoux
046dc6cac8 fix(core): update some broken translations 2025-07-03 11:26:36 +02:00
Barthélémy Ledoux
ae442632a9 tests: run all tests (#9868) 2025-07-03 10:30:00 +02:00
github-actions[bot]
70622ca176 chore(core): localize to languages other than english (#9645)
Co-authored-by: GitHub Action <actions@github.com>
2025-07-03 10:15:19 +02:00
Loïc Mathieu
0c90d6d548 feat(triggers): add failOnTriggerError to create a failed execution on trigger error
Closes #7856
2025-07-03 09:55:23 +02:00
MilosPaunovic
2d27386c77 feat(flows): allow expanding all flow dependencies at once 2025-07-03 09:54:22 +02:00
Loïc Mathieu
e2c629a0d7 feat(flows): allow expanding flow dependencies
Part-of: https://github.com/kestra-io/kestra-ee/issues/4229
2025-07-03 09:54:22 +02:00
Loïc Mathieu
96163d4e6f fix(flows): Kill on cascade on SLA violation
FIxes #9801
2025-07-03 09:16:36 +02:00
YannC
6ec08bd9c8 fix!: Remove stats controllers (#9861)
* fix: Remove stats controllers

* fix: clean frontend + tests
2025-07-02 17:02:22 +02:00
brian.mulier
8691c90c9c fix(ai): short-circuit cases where relevant plugin identifier fails to identify ones 2025-07-02 16:37:48 +02:00
brian.mulier
b57e9ae7a0 fix(core): typo 2025-07-02 15:25:39 +02:00
github-actions[bot]
a61853332d chore(core): localize to languages other than english (#9862)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-02 18:30:18 +05:30
Piyush Bhaskar
796be656fa fix(flows): include flow count in export success message. (#9860) 2025-07-02 18:22:49 +05:30
brian.mulier
6e7f3a681a fix(tests): avoid wiremock port collision 2025-07-02 14:06:58 +02:00
Barthélémy Ledoux
665a413d84 fix(flows): open subtask from topology (#9804) 2025-07-02 13:33:30 +02:00
Piyush Bhaskar
c8e61ba3e1 refactor(core): migrates core.js to pinia (#9858)
* refactor(core): migrates core.js to pinia

* fix: remove declaration

* fix: message in axios
2025-07-02 16:44:30 +05:30
Loïc Mathieu
bf8d47f19d feat(flows): remove worker grou validation
No longer invalidate a flow if a task or a trigger set a worker group.

Closes #9808
2025-07-02 13:02:49 +02:00
Roman Acevedo
dcc5c34493 docs(tests,flows): set loosely types fields like input and variable as additional properties
this make the generated openapi spec match batter the existing API
2025-07-02 12:31:15 +02:00
dependabot[bot]
882ac34768 build(deps): bump software.amazon.awssdk:bom from 2.31.70 to 2.31.75
Bumps software.amazon.awssdk:bom from 2.31.70 to 2.31.75.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.75
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 12:16:21 +02:00
dependabot[bot]
e236909e33 build(deps): bump com.azure:azure-sdk-bom from 1.2.35 to 1.2.36
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.35 to 1.2.36.
- [Release notes](https://github.com/azure/azure-sdk-for-java/releases)
- [Commits](https://github.com/azure/azure-sdk-for-java/compare/azure-sdk-bom_1.2.35...azure-sdk-bom_1.2.36)

---
updated-dependencies:
- dependency-name: com.azure:azure-sdk-bom
  dependency-version: 1.2.36
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 11:59:51 +02:00
dependabot[bot]
67518bc2cb build(deps): bump com.gradleup.shadow from 8.3.7 to 8.3.8
Bumps [com.gradleup.shadow](https://github.com/GradleUp/shadow) from 8.3.7 to 8.3.8.
- [Release notes](https://github.com/GradleUp/shadow/releases)
- [Commits](https://github.com/GradleUp/shadow/compare/8.3.7...8.3.8)

---
updated-dependencies:
- dependency-name: com.gradleup.shadow
  dependency-version: 8.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 11:58:27 +02:00
Miloš Paunović
05787efd90 fix(namespaces)*: take pagination into account when browsing namespace flows (#9849)
Closes https://github.com/kestra-io/kestra/issues/9805.
2025-07-02 11:47:48 +02:00
Miloš Paunović
90c74fceb2 chore(deps): regular dependency update (#9855)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-07-02 11:46:42 +02:00
dependabot[bot]
b1cad2fd93 build(deps): bump org.testcontainers:testcontainers
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.21.2 to 1.21.3.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.21.2...1.21.3)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-version: 1.21.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 11:44:30 +02:00
dependabot[bot]
0687808430 build(deps): bump com.google.cloud:libraries-bom from 26.62.0 to 26.63.0
---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.63.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 11:42:20 +02:00
dependabot[bot]
90d30bb920 build(deps): bump com.github.docker-java:docker-java from 3.5.1 to 3.5.2
Bumps [com.github.docker-java:docker-java](https://github.com/docker-java/docker-java) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/docker-java/docker-java/releases)
- [Changelog](https://github.com/docker-java/docker-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/docker-java/docker-java/compare/3.5.1...3.5.2)

---
updated-dependencies:
- dependency-name: com.github.docker-java:docker-java
  dependency-version: 3.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 11:41:39 +02:00
dependabot[bot]
fcf5215ccc build(deps): bump flyingSaucerVersion from 9.12.1 to 9.13.0
---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 9.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 9.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 11:40:10 +02:00
dependabot[bot]
856db91609 build(deps): bump com.google.adk:google-adk from 0.1.0 to 0.2.0
---
updated-dependencies:
- dependency-name: com.google.adk:google-adk
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 11:39:44 +02:00
Nicolas K.
2b83fc7d4d feat(cicd): #4006 change signing method (#9854)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-02 11:13:23 +02:00
Loïc Mathieu
d22b7e9b98 fix(system): fix ExecutionControllerRunnerTest.resumeExecutionPaused() 2025-07-02 11:00:26 +02:00
brian-mulier-p
515dbdbf54 fix(core): remove prerendering + restrict only secret function in debug expression (#9816) 2025-07-02 10:52:14 +02:00
github-actions[bot]
2735986c57 chore(core): localize to languages other than english (#9812)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-07-01 18:25:58 +02:00
brian.mulier
deb2fdcd9e fix(core): add config from backend that sends whether the AI feature is configured or not 2025-07-01 16:30:08 +02:00
brian-mulier-p
5677a6bdbe feat(core): add Pebble HTTP function (#9786)
closes kestra-io/kestra-ee#4218
2025-07-01 16:27:13 +02:00
Nicolas K.
6a8225d2fb feat(cicd): #4006 migrate to maven central (#9807)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-01 16:17:08 +02:00
brian-mulier-p
f402aa7643 feat(core): introduce AI agent (#9733)
closes kestra-io/kestra-ee#3458
2025-07-01 15:43:54 +02:00
Miloš Paunović
65316da4e8 fix(dashboards): properly show default charts on logs page (#9800)
Closes https://github.com/kestra-io/kestra/issues/9612.
2025-07-01 15:28:43 +02:00
AJ Emerich
a152204f55 docs(dashboards): fix example indentations (#9802)
Closes https://github.com/kestra-io/kestra/issues/9790
2025-07-01 15:21:23 +02:00
Nicolas K.
c6e5cdfd93 feat(cicd): #4006 migrate sonatype to maven central (#9803)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-07-01 15:00:34 +02:00
Barthélémy Ledoux
7fcf94f12a fix(flows): finish YAML_UTILS refactoring (#9795) 2025-07-01 14:29:37 +02:00
YannC.
c4082dbc1b feat(triggers): avoid clearing selection when refreshing in triggers list 2025-07-01 14:20:55 +02:00
YannC.
1d7574b155 fix(triggers): correctly replace the update triggers when disabling 2025-07-01 14:18:13 +02:00
Miloš Paunović
436b770d21 chore(dashboards): move store module from vuex to pinia (#9796) 2025-07-01 14:07:23 +02:00
Piyush Bhaskar
0e382b2492 chore(logs): remove double scrollbar on the logs page (#9670)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-01 13:21:41 +02:00
Loïc Mathieu
47b10b4a79 feat(system): repoll immediatly when a poll returns resutls in the queue 2025-07-01 12:11:52 +02:00
Loïc Mathieu
30792302aa chore(flows): rename retry maxAttempt to maxAttemps
Keep maxAttempt as deprecated to avoid any breaking changes.

Closes #9729
2025-07-01 11:25:46 +02:00
Barthélémy Ledoux
6bcfbaa1df fix(flows): restore dag open tabs after hard refresh (#9792) 2025-07-01 10:16:02 +02:00
Barthélémy Ledoux
8d6547865d fix(flow): avoid calling icons api more than once (#9784) 2025-07-01 10:15:49 +02:00
Piyush Bhaskar
7ba0780b4f feat(core): add useDataTableActions composable (#9777)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-07-01 12:40:55 +05:30
Roman Acevedo
5493f53892 fix(system): revert Property type changed to string in openapi spec
this may cause issue with jsonSchema generation. So, to not take any risk I reverted it and will do a hack in SDK
2025-06-30 18:46:35 +02:00
Roman Acevedo
39e08abf26 fix(tests): deleted db serialization was broken in recent commit 2025-06-30 18:43:22 +02:00
François Delbrayelle
ff66471f37 feat(gemini): add the plugin to .plugins 2025-06-30 17:00:02 +02:00
Loïc Mathieu
8109493f19 feat(flows): add resumed information to the Pause task
Add who resume the Pause task and when.
Part-of: https://github.com/kestra-io/kestra-ee/issues/2806
2025-06-30 16:22:34 +02:00
Barthélémy Ledoux
2b59d9ec21 refactor(ui): migrate bookmarks store to pinia (#9685) 2025-06-30 16:15:10 +02:00
brian-mulier-p
0beac5e9f2 fix(core): increase max encode size to avoid icons fetch timeout (#9782) 2025-06-30 15:40:10 +02:00
Loïc Mathieu
5f7ecba4c7 feat(flows): allow setting worker group at the flow level
Part-of: https://github.com/kestra-io/kestra-ee/issues/4141
2025-06-30 14:58:45 +02:00
Loïc Mathieu
c56f377019 fix(system)*: mitigate possible deadlock for execution delay and SLA
In case multiple instances of the executor are started, the execution delay loop and the monitoring SLA loop have a risk of duplicate execution resume or execution SLA violation computation.
This could create some race conditions and duplicate execution update.
But this may also risk to create some deadlocks as two instances of the executor may try to lock the same exection to restart it (or fail it due to SLA).
2025-06-30 14:33:06 +02:00
Miloš Paunović
9530e820e8 chore(deps): regular dependency update (#9779)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-06-30 13:21:27 +02:00
Sjoerd Smink
09adee6017 Update Request.java multiline JSON example 2025-06-30 11:21:22 +02:00
yashmurthy98
12f3e2ea68 fix(guides): crawl into sub-folders 2025-06-30 11:05:21 +02:00
rajatsingh23
8c32ff74c9 chore(dashboards): always updating chart previews on dashboard creation (#9536)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-06-30 10:23:06 +02:00
François Delbrayelle
023d005e63 fix(taskrunner): abstract task runner (#9769) 2025-06-30 09:19:32 +02:00
Piyush Bhaskar
9a86bb1125 feat(core): add button to copy all logs to clipboard (#9763) 2025-06-30 11:24:48 +05:30
Piyush Bhaskar
99fca84e31 fix(ui): adjust logo in collapsed state (#9761) 2025-06-30 11:22:51 +05:30
Roman Acevedo
bfe4d7b983 fix(tests): TestSuite fields were almost all required in openapi spec 2025-06-27 17:37:58 +02:00
Roman Acevedo
31d372df55 feat(system): make Property a string in openapi spec generation
we already return Serialize as a string, we need to indicated to openapi generator that it is in fact Serialized as such
2025-06-27 17:30:20 +02:00
Roman Acevedo
70b9ddee28 fix(tests): testcases were not fully validated 2025-06-27 15:52:40 +02:00
Loïc Mathieu
d44a203bed feat(flows): supports the nsfile:// protocol
Automatically fetch namespace files from URI with the 'nsfile' scheme.
The authority allow to fetch file from another namespace.

The following has been done:
- Supports using nsfile inside `from`
- Supports using nsfile inside input files
- Supports using nsfile as a FILE input defaults
- Supports using nsfile inside the Pebble files functions

Closes: #9741
2025-06-27 15:26:38 +02:00
Roman Acevedo
2cb361a7c6 build: lower codecev default targets to make it more pertinent 2025-06-27 11:07:52 +02:00
brian.mulier
b19737f20a fix(core): remove tenant from plugins URLs 2025-06-27 10:52:28 +02:00
Nicolas K.
7373f3ee5b feat(namespaces): #3568 add new folderPerNamespace attribute to namespaceFiles (#9752)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-27 10:46:14 +02:00
Nicolas K.
f8670ef216 feat(api): #4108 remove tenant id from trigger body and plugin URL (#9749)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-27 10:42:17 +02:00
Barthélémy Ledoux
c9debbd869 remove unused constant (#9751) 2025-06-27 10:32:03 +02:00
Loïc Mathieu
4149ef4f3e feat(flows): allow reading local files inside the file functions
Supports the 'file://' protocol inside the read(), isFileEmpty(), fileExists() and fileSize() Pebble functions.

Closes #9739
2025-06-27 09:45:34 +02:00
Piyush Bhaskar
8e50da83c3 refactor(stat): migrate stat store from Vuex to Pinia (#9750) 2025-06-26 16:39:40 +02:00
Barthélémy Ledoux
00b1e320b9 fix(plugins): finish pinia migration of plugins store (#9746) 2025-06-26 16:39:18 +02:00
Loïc Mathieu
c4e762506c feat(cluster): persist maintenance mode in the database
Part-of: https://github.com/kestra-io/kestra-ee/issues/3735
2025-06-26 14:31:05 +02:00
Barthélémy Ledoux
d7f6addb79 fix(flows): make autocomplete work in pebble (#9742) 2025-06-26 11:00:55 +02:00
Piyush Bhaskar
b2f8c89e02 refactor(layout): migrate layout.js from vuex to Pinia. (#9687)
* refactor(layout): migrate layout.js from vuex to Pinia.

* refactor(layout): replace getters with direct state access.
2025-06-26 13:37:43 +05:30
Piyush Bhaskar
83e1d77230 refactor(store): migrate Blueprints to Pinia (#9735)
* refactor(store): migrate Blueprints to Pinia

* fix: remove blueprints from declaration
2025-06-26 13:32:02 +05:30
Piyush Bhaskar
dafebc76a3 feat(tenant): all routes on /main tenant (#9664)
* feat(tenant): all  routes on /main tenant

* fix: remove params

* fix: setup tenant router in main
2025-06-26 11:35:44 +05:30
Malaydewangan09
a1e53443a5 feat(scripts): enable script/cli plugins to override final task state 2025-06-25 23:17:44 +05:30
brian.mulier
076ae2e933 fix(core): use namespace prefix instead of equals
On the namespace/flows, namespace/executions pages and when having a default namespace on Logs page

closes kestra-io/kestra-ee#4200
2025-06-25 17:48:21 +02:00
François Delbrayelle
bb7b9edaf2 feat(devtools): copy plugin jars to plugins dir (#9738) 2025-06-25 17:01:31 +02:00
Loïc Mathieu
5aa1b20138 chore(system): call the close runnable later 2025-06-25 14:34:14 +02:00
Loïc Mathieu
cf01f4f0e8 feat(flows): support local files as FILE input default value
Closes #9681
2025-06-25 13:55:49 +02:00
Loïc Mathieu
201912fa22 feat(flows): support local files in input files
Closes https://github.com/kestra-io/plugin-scripts/issues/268
2025-06-25 10:49:10 +02:00
dependabot[bot]
d4891d1c11 build(deps): bump opensearchRestVersion from 3.0.0 to 3.1.0
Bumps `opensearchRestVersion` from 3.0.0 to 3.1.0.

Updates `org.opensearch.client:opensearch-rest-client` from 3.0.0 to 3.1.0
- [Release notes](https://github.com/opensearch-project/OpenSearch/releases)
- [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/OpenSearch/compare/3.0.0...3.1.0)

Updates `org.opensearch.client:opensearch-rest-high-level-client` from 3.0.0 to 3.1.0
- [Release notes](https://github.com/opensearch-project/OpenSearch/releases)
- [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/OpenSearch/compare/3.0.0...3.1.0)

---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-rest-client
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.opensearch.client:opensearch-rest-high-level-client
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 10:30:40 +02:00
dependabot[bot]
bff6865806 build(deps): bump software.amazon.awssdk:bom from 2.31.65 to 2.31.70
Bumps software.amazon.awssdk:bom from 2.31.65 to 2.31.70.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.70
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 10:30:25 +02:00
dependabot[bot]
ebc887908c build(deps): bump org.jsoup:jsoup from 1.20.1 to 1.21.1
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.20.1 to 1.21.1.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.20.1...jsoup-1.21.1)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-version: 1.21.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 10:30:07 +02:00
dependabot[bot]
710d2f6c2b build(deps): bump com.gradleup.shadow from 8.3.6 to 8.3.7
Bumps [com.gradleup.shadow](https://github.com/GradleUp/shadow) from 8.3.6 to 8.3.7.
- [Release notes](https://github.com/GradleUp/shadow/releases)
- [Commits](https://github.com/GradleUp/shadow/compare/8.3.6...8.3.7)

---
updated-dependencies:
- dependency-name: com.gradleup.shadow
  dependency-version: 8.3.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 10:29:48 +02:00
dependabot[bot]
48de33d04b build(deps): bump org.testcontainers:testcontainers
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.21.1 to 1.21.2.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.21.1...1.21.2)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-version: 1.21.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 10:29:24 +02:00
dependabot[bot]
59b837e873 build(deps): bump com.microsoft.playwright:playwright
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.52.0 to 1.53.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.52.0...v1.53.0)

---
updated-dependencies:
- dependency-name: com.microsoft.playwright:playwright
  dependency-version: 1.53.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 10:29:02 +02:00
brian-mulier-p
7463be3496 fix(variables): put fixtures files with arbitrary key and extract it back as root level "files" variable (#9689) 2025-06-24 17:29:39 +02:00
Rishi Jat
aedfbdc46a fix(ui): remove Close Task button in NoCode editor (#9661)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-06-24 15:22:02 +02:00
Anna Geller
9a8363ce69 fix(api-docs): tenant info in API docs (#9675)
* fix(api-docs): tenant info in API docs

* fix: descriptions
2025-06-23 19:26:16 +02:00
Ludovic DEHON
d08d345719 test(core): fix falling test on schedule 2025-06-23 18:52:51 +02:00
Loïc Mathieu
9813d60954 fix(system): possible NPE on trigger when computing variables 2025-06-23 18:12:09 +02:00
Barthélémy Ledoux
4257168818 fix(ui): deletion of namespace files depend on node not data (#9666) 2025-06-23 14:02:40 +02:00
Loïc Mathieu
d22aedaaa5 feat(flows): add a log into the Subflow task when a flow it fail (#9652) 2025-06-23 12:40:09 +02:00
brian-mulier-p
094ab828e7 fix: avoid failure to deserialize json objects that have unknown fields with http client (#9668)
closes #9667
2025-06-23 12:21:42 +02:00
Satvik Kushwaha
1d9b5d26ce Fix(UI) execution charts values (#9669)
* added steps in bar chart

* date issue fixed

* cohre: minor tweak

* added stepsize for Bar.ue as well

---------

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-06-23 11:47:12 +02:00
Barthélémy Ledoux
d9371c1fd2 refactor: integrate vuex & axios with pinia (#9626) 2025-06-23 10:56:07 +02:00
Loïc Mathieu
9fa5f6df56 feat(executions)*: add tasks to set and unset execution variables
Closes #9555
2025-06-23 10:43:03 +02:00
Loïc Mathieu
97b89d3a38 fix(core): retry flaky runner test restartForEachItem as it's flaky on CI but always pass locally 2025-06-23 10:27:49 +02:00
github-actions[bot]
ab286a1ec1 chore(core): localize to languages other than english (#9659)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-06-20 18:58:59 +02:00
Loïc Mathieu
9c702d3186 fix(execution): parent flow never ends when subflow fail due to SLA
This is because the executor didn't have the flow inside it so the execution is not correctly terminated.
It may fix other issues (like flow triggers, purge, ...)

Fixes #9618
2025-06-20 16:44:23 +02:00
Piyush-r-bhaskar
a2bbd53502 chore: update ui-libs 2025-06-20 19:25:09 +05:30
Piyush Bhaskar
fc2f89bb53 feat(ui): Add connection properties group sorting (#9644) 2025-06-20 18:35:51 +05:30
Loïc Mathieu
ebe1f3f189 fix(system): flow graph fail to be created while editting a flow
Fixes #9551

It is not the validation per se that fail, it's the graph dependency computation that is also done while editing a flow that fail.
2025-06-20 12:07:41 +02:00
Loïc Mathieu
a623b4c478 fix(system)*: runIf inside a WorkingDirectory can crash the Worker
Fixes #9639
2025-06-20 12:07:25 +02:00
Nicolas K.
1d66f7e1cc Fix/failing backup unit test (#9642)
* test(core): fix failing unit tests

* test(core): fix failing unit tests

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-20 11:32:18 +02:00
Loïc Mathieu
b9f224ca91 fix(system): SettingRepository test 2025-06-20 11:31:04 +02:00
Tijn Koppert
1c3049a881 feat(ui): Add support for bulk-select and bulk-delete (#8281)
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-06-20 11:18:01 +02:00
Barthélémy Ledoux
651fdc1322 fix(ui): default value for expression cannot be null (#9636) 2025-06-20 11:11:54 +02:00
Loïc Mathieu
bb6c480046 feat(flows): allow to pass a typed object in Data.from()
This would facilitate dev experience as he would be able to directly use a typed object not a Map.
This will not be used inside a Kestra instance as deserialization would always deserialize to a Map as the `from` attribute is an Object.
2025-06-20 10:43:54 +02:00
Nicolas K.
5b5cca33f0 fix(triggers): #4110 NPE when disable trigger with empty body (#9635)
* fix(triggers): #4110 NPE when disable trigger with empty body

* fix(triggers): #4110 unit tests

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-20 10:27:33 +02:00
Piyush Bhaskar
bafc3047d9 feat(namespaces): show ns description (#9610)
* feat(namespaces): show ns description

* add slot and data for description
2025-06-20 13:55:20 +05:30
Barthélémy Ledoux
cbd0b8a74a style: fix font-size of label (#9634) 2025-06-20 09:32:01 +02:00
François Delbrayelle
76fc55bbd9 fix(plugin-versioning): replace current JAR if more recent (#9629) 2025-06-19 18:43:41 +02:00
Loïc Mathieu
d7c54809e9 chore(system): relax again some test on AbstractSettingRepositoryTest
Again because in ES there is the version settings and not in JDBC.
2025-06-19 17:53:29 +02:00
YannC.
e015a94c95 fix(ci): modify job id for end task 2025-06-19 17:19:54 +02:00
Loïc Mathieu
5e97e25658 chore(system): relax AbstractSettingRepositoryTest assertion
There is a discrepiancy between JDBC and ES, as it's not important and I dind't find a quik way to fix the test I relax the assertion.
2025-06-19 16:44:32 +02:00
Loïc Mathieu
c8aa678ef8 feat(executions): allow using local host files in tasks
Closes https://github.com/kestra-io/kestra-ee/issues/3469
2025-06-19 15:48:57 +02:00
Loïc Mathieu
695f684613 fix(system): support allowFailure and allowWarning for the Pause task
Fixes #9416
2025-06-19 14:56:42 +02:00
Florian Hussonnois
f59def2c7d chore(core): add top-level exception ConflictException 2025-06-19 14:35:49 +02:00
Barthélémy Ledoux
1139a16d17 tests: nocode editor (#9624) 2025-06-19 14:20:45 +02:00
Bart Ledoux
1e55003e3f Revert "refactor: start replacing vuex with pinia (#8430)"
This reverts commit 9c052c0a41.
2025-06-19 13:24:42 +02:00
Loïc Mathieu
c047e37c01 feat(system): store version in the settings 2025-06-19 12:22:08 +02:00
Barthélémy Ledoux
bc8c8d4ee1 perf(ui): load a sample schema while waiting (#9558) 2025-06-19 11:33:18 +02:00
YannC.
de8c3fd0b7 feat: trigger EE CI when OSS develop branch succeed 2025-06-19 10:55:58 +02:00
Nicolas K.
7fc274fe1a Fix/tutorial flows with migration (#9620)
* fix(core): #9609 delete tutorial flows and triggers before migrating the database

* fix(core): #9609 delete tutorial flows and triggers before migrating the database for EE version

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-19 10:53:18 +02:00
Barthélémy Ledoux
9c052c0a41 refactor: start replacing vuex with pinia (#8430) 2025-06-19 10:52:55 +02:00
YannC
5682d12ee8 fix: correctly use default tenant when synchronizing file with local (#9605)
close #9568
2025-06-19 10:04:39 +02:00
YannC
b160361f9e feat(ui): Allows ContextInfoBar.vue to have dynamic buttons from props (#9613) 2025-06-19 09:46:19 +02:00
François Delbrayelle
a981a309d6 fix(podman): do not pass the tag directly to pullImageCmd (withTag) (#9607) 2025-06-18 18:05:16 +02:00
Nicolas K.
185fa80058 Feat/clean query filters (#9569)
* feat(repositories): clean and fix query filters

* fix(core): #4106 Clean and add unit tests to query filters

* clean(core): format string more cleanly

* fix(core): unit test failing on mysql flow repository

* feat(core): #4106 update ui filters

* fix(ui): add date filter on flows back

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-18 17:40:56 +02:00
Florian Hussonnois
d6047fea96 chore(core): add top-level exception NotFoundException 2025-06-18 16:32:15 +02:00
dependabot[bot]
37bd6e16a1 build(deps): bump jacksonVersion from 2.19.0 to 2.19.1
Bumps `jacksonVersion` from 2.19.0 to 2.19.1.

Updates `com.fasterxml.jackson:jackson-bom` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.19.0...jackson-bom-2.19.1)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.19.0...jackson-core-2.19.1)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-parameter-names` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-modules-java8/compare/jackson-modules-java8-2.19.0...jackson-modules-java8-2.19.1)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-yaml` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.19.0...jackson-dataformats-text-2.19.1)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-smile` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.19.0...jackson-dataformats-binary-2.19.1)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-cbor` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.19.0...jackson-dataformats-binary-2.19.1)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-ion` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-dataformat-ion/commits)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.19.0...jackson-dataformat-xml-2.19.1)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-guava` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-datatypes-collections/compare/jackson-datatypes-collections-2.19.0...jackson-datatypes-collections-2.19.1)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.19.0 to 2.19.1

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jdk8` from 2.19.0 to 2.19.1

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.module:jackson-module-parameter-names
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-smile
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-cbor
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-ion
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-xml
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-guava
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 13:44:14 +02:00
dependabot[bot]
a514500244 build(deps): bump org.apache.logging.log4j:log4j-to-slf4j
Bumps org.apache.logging.log4j:log4j-to-slf4j from 2.24.3 to 2.25.0.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-to-slf4j
  dependency-version: 2.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 13:42:32 +02:00
François Delbrayelle
25adcc492a fix(plugin): FileSystems.newFileSystem caused a Path component should be / in plugins tests (#9570) 2025-06-18 13:07:56 +02:00
dependabot[bot]
39d31f4a1a build(deps): bump nl.basjes.gitignore:gitignore-reader
Bumps [nl.basjes.gitignore:gitignore-reader](https://github.com/nielsbasjes/codeowners) from 1.11.3 to 1.12.0.
- [Release notes](https://github.com/nielsbasjes/codeowners/releases)
- [Changelog](https://github.com/nielsbasjes/codeowners/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nielsbasjes/codeowners/compare/v1.11.3...v1.12.0)

---
updated-dependencies:
- dependency-name: nl.basjes.gitignore:gitignore-reader
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 10:44:14 +02:00
dependabot[bot]
35eef54d74 build(deps): bump software.amazon.awssdk:bom from 2.31.61 to 2.31.65
Bumps software.amazon.awssdk:bom from 2.31.61 to 2.31.65.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.65
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 10:07:02 +02:00
dependabot[bot]
f8aa9cc9dd build(deps): bump org.wiremock:wiremock-jetty12 from 3.13.0 to 3.13.1
Bumps [org.wiremock:wiremock-jetty12](https://github.com/wiremock/wiremock) from 3.13.0 to 3.13.1.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.13.0...3.13.1)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-jetty12
  dependency-version: 3.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 10:06:35 +02:00
dependabot[bot]
0218931596 build(deps): bump flyingSaucerVersion from 9.12.0 to 9.12.1
Bumps `flyingSaucerVersion` from 9.12.0 to 9.12.1.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.12.0 to 9.12.1
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.12.0...v9.12.1)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.12.0 to 9.12.1
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.12.0...v9.12.1)

---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 9.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 9.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 10:05:33 +02:00
dependabot[bot]
369d4ba39f build(deps): bump org.jooq:jooq from 3.20.4 to 3.20.5
Bumps org.jooq:jooq from 3.20.4 to 3.20.5.

---
updated-dependencies:
- dependency-name: org.jooq:jooq
  dependency-version: 3.20.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 10:05:05 +02:00
François Delbrayelle
f009263035 Revert "fix(plugin): FileSystems.newFileSystem caused a Path component should be / in plugins tests (#9562)"
This reverts commit 8516557553.
2025-06-17 17:37:38 +02:00
Roman Acevedo
bd576d65f9 refactor: remove package lock json added by mistake 2025-06-17 16:40:07 +02:00
Roman Acevedo
4557bc8f40 tests(flows): add e2e create and execute Flow test
* tests: add e2e create and execute Flow test

* various fixes

---------

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-06-17 16:26:54 +02:00
Piyush Bhaskar
f20f2e7a0e fix(core): save disabled , tab not dirty on save (#9560) 2025-06-17 18:13:01 +05:30
François Delbrayelle
8516557553 fix(plugin): FileSystems.newFileSystem caused a Path component should be / in plugins tests (#9562) 2025-06-17 14:22:47 +02:00
Bart Ledoux
13e1e49ebb chore: update ui-libs 2025-06-17 11:19:46 +02:00
github-actions[bot]
9d989115ad chore(core): localize to languages other than english (#9552)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-06-16 17:20:35 +02:00
Ludovic DEHON
289a26ba87 fix(tasks): sleep example are a full one 2025-06-16 15:01:42 +02:00
Barthélémy Ledoux
105b8ece17 fix(ui): make file panel appear beside main panel in namespace (#9546) 2025-06-16 14:44:40 +02:00
Sarthak Ladhwe
e2b2a1f19f feat(ui): repo star button on right menu (#9526)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-06-16 18:07:04 +05:30
Bart Ledoux
aea8d6e52e tests: fix storybook tests 2025-06-16 13:31:10 +02:00
github-actions[bot]
33404bfa3b chore(core): localize to languages other than english (#9544)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-06-16 13:22:27 +02:00
Prayag
62fc839d64 Fix Sidebar Scrollbar and Version Text Wrapping, Minimize Panel Styles (#9528)
* fix(ui): hide sidebar scrollbar while enabling scrolling and fix version text wrapping

* minor tweak

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-06-16 16:15:25 +05:30
Bart Ledoux
1fa1f0c3d6 fix(ui): make array and KV Pairs work in nocode 2025-06-16 12:19:05 +02:00
rkitamu
bb746e5dad fix(ui): avoid validation API call when Flow editor is empty (#5387) (#9538)
* fix(ui): avoid validation API call when editor is empty

* fix(ui): Replace hardcoded "No data" with translatable message for empty flow validation
2025-06-16 08:56:37 +02:00
Piyush Bhaskar
23db6c60f7 fix(core): route to namespaces' flow and execution (#9517) 2025-06-16 10:44:01 +05:30
Ludovic DEHON
e5b816d723 fix(core): robots.txt was not served
close kestra-io/kestra#9015
2025-06-13 23:00:40 +02:00
Florian Hussonnois
7b44569efc chore(system): remove dedicated JdbcServiceLivenessManager 2025-06-13 17:41:56 +02:00
brian.mulier
8e5c5c97fa fix(core): yaml utils migration 2025-06-13 17:10:02 +02:00
Barthélémy Ledoux
6953e9fa58 fix: cleanup empty metadata to fix variable creation (#9529) 2025-06-13 16:38:54 +02:00
Barthélémy Ledoux
007ace6360 fix(ui): nocode API calls on EE needs tenant (#9527) 2025-06-13 16:38:38 +02:00
Miloš Paunović
4d4f8220ca refactor(dashboards): improve process of dashboard creation (#9530)
Related to https://github.com/kestra-io/kestra/issues/9149.

Companion of https://github.com/kestra-io/kestra-ee/pull/4081.
2025-06-13 16:37:40 +02:00
Florian Hussonnois
d97879f813 fix(executor): delete WorkerJobRunning for any terminated task (#9493)
Make ExecutorService responsible for deleting WorkerJobRunning
when a terminated TaskRun is added to an execution.

Changes:
 - Remove unecessary read before delete on WorkerJobRunning table.

Close: #9493
2025-06-13 16:29:12 +02:00
brian.mulier
7bce99845c fix(core): filters was triggering endless refresh
closes #9508
2025-06-13 16:24:11 +02:00
Miloš Paunović
e8c6a4511b refactor(dashboards): further clean up of the ui code related to dashboards (#9521)
Related to https://github.com/kestra-io/kestra/issues/9149.

Companion of https://github.com/kestra-io/kestra-ee/pull/4079.
2025-06-13 14:32:45 +02:00
Satvik Kushwaha
3a027fef36 chore(dashboards): switch default time series chart scale to integer numbers (#9510)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-06-13 13:57:10 +02:00
Barthélémy Ledoux
f15919ba2e fix: small tweaks on tabs (#9520) 2025-06-13 13:54:32 +02:00
Miloš Paunović
839836a9e9 refactor(dashboards): add missing translations related to dashboards (#9519) 2025-06-13 13:29:27 +02:00
Barthélémy Ledoux
f700b8a1c5 fix(ui): snafu on duplicate input pair (#9514) 2025-06-13 12:09:33 +02:00
Miloš Paunović
7456440de6 refactor(dashboards): clean up ui code related to dashboards (#9421)
Related to https://github.com/kestra-io/kestra/issues/9149.

Companion of https://github.com/kestra-io/kestra-ee/pull/4023.
2025-06-13 10:15:10 +02:00
Barthélémy Ledoux
576c5cfef9 fix(ui): [nocode] make dag tasks work (#9506) 2025-06-13 09:11:08 +02:00
Miloš Paunović
8678d2d49b fix(core)*: make sure tour always opens with code & topology tabs visible (#9513)
Closes https://github.com/kestra-io/kestra-ee/issues/4073.
2025-06-13 08:53:26 +02:00
Piyush Bhaskar
1149b8e8ac feat(core): variables tab under Multipanel (#9498)
* feat(core): variables tab under Multipanel

* add unstaged changes

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-06-13 11:28:01 +05:30
Barthélémy Ledoux
18fe4e94a9 feat(ui): make version readonly on oss (#9486)
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-12 16:14:05 +02:00
github-actions[bot]
6d0f6c15fe Translations from en.json (#9501)
* fix: move type back to left

* make version field always readonly

* fix: add final touches

* fix: prefill anyof with current value type

* chore(core): localize to languages other than english (#9488)

Co-authored-by: GitHub Action <actions@github.com>

* fix: title of string pebble

* fix translations

* chore(core): localize to languages other than english

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
2025-06-12 13:39:32 +02:00
YannC
26df3e98af fix(ui): Better duplicate key management in the pair component (#9431)
* fix(ui): Better duplicate key mananage in the pair component

close #9220

* fix(ui): add a have-error prop on inputText that show a red shadow

* refactor: simplify inputpair component (#9491)

* fix: only show lock if disabled

* alertState define order

---------

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-06-12 13:27:49 +02:00
Roman Acevedo
01ccd0db7b fix(tests): test editor was showing previous shown plugin doc
fixes https://github.com/kestra-io/kestra-ee/issues/4066
2025-06-12 13:20:37 +02:00
brian-mulier-p
06c67f491b feat(core): introduce tasksWithState autocompletion (#9485)
part of #8350
2025-06-12 09:55:21 +02:00
Kelvin Yim
079874e4ca fix(ui): resolve filter display inconsistency between dark and light themes (#9487)
* fix: resolve filter display inconsistency between dark and light themes

Updates KestraFilter.vue styling to ensure search criteria display
consistently across both theme modes.

Fixes #9398

* fix: resolve filter display inconsistency between dark and light themes

Updates KestraFilter.vue styling to ensure search criteria display
consistently across both theme modes.

* fix: resolve filter display inconsistency between dark and light themes

Updates KestraFilter.vue styling to ensure search criteria display
consistently across both theme modes.

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-06-12 13:16:18 +05:30
Barthélémy Ledoux
a5928fd016 fix(ui): nocode updating inputs from yaml (#9430) 2025-06-12 09:44:03 +02:00
Barthélémy Ledoux
efed3cb247 fix(ui): rename namespace field (#9492) 2025-06-12 09:38:41 +02:00
Barthélémy Ledoux
fab1bb0186 fix(ui): prevent cursor change in Editor component when modelValue is updated from outside (#9371) 2025-06-12 09:38:27 +02:00
Nicolas K.
cfa5ba5925 Feat/rework compatibility layer (#9490)
* feat(core): rework compatibility layer

* feat(core): #4062 rework compatibility layer

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-12 09:20:37 +02:00
dependabot[bot]
74720231b8 build(deps-dev): bump brace-expansion in /ui in the npm_and_yarn group (#9496)
Bumps the npm_and_yarn group in /ui with 1 update: [brace-expansion](https://github.com/juliangruber/brace-expansion).


Updates `brace-expansion` from 1.1.11 to 1.1.12
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-12 08:23:20 +02:00
Tanvir Ahmed
5dafbeee06 build(core): Replaced Microsoft Java with Temurin distribution on dev container 2025-06-11 23:00:37 +02:00
brian.mulier
f76f02952d fix(core): avoid infinite load upon route redirect (#9480)
closes #9479
2025-06-11 17:02:33 +02:00
brian.mulier
527c549522 fix(core): properly map labels filters from query (#9480)
closes #9324
2025-06-11 17:02:33 +02:00
brian.mulier
b6ad8331d4 fix(core): prevent incompatible timeRange & start/endDate filters + prevent multiple scope filters (#9480)
closes #9240
2025-06-11 17:02:33 +02:00
Karuna Tata
ac97e0aa72 feat(ui): drag and convert tabs to panels (#9198)
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-06-11 16:48:39 +02:00
Barthélémy Ledoux
3309f69ee4 ci: fix frontend storybook tests (#9484) 2025-06-11 15:36:12 +02:00
Bart Ledoux
aaea1e0dd9 fix(ui): restore add button as a button 2025-06-11 14:17:07 +02:00
YannC.
a09fd76105 fix(ui): use type button instead of button 2025-06-11 14:11:13 +02:00
Roman Acevedo
afd4b811d6 feat(tests): add execution url in test result 2025-06-11 14:11:04 +02:00
YannC
a3f0001bca fix(ui): base the required prop on the requiredProperties list (#9433)
close #9377
2025-06-11 13:08:53 +02:00
Loïc Mathieu
075cc07b7a feat(system): don't deepClone maps inside MapUtils.merge 2025-06-11 11:38:20 +02:00
yuri
5b6311a612 fix(ui): amend visiblity of labels (#9475)
Currently labels just blend with the table row's background. This makes selecting labels slightly unpleasant.

This change makes labels a bit more visible, but still not as much visible as in e.g. v0.20.
2025-06-11 14:45:39 +05:30
dependabot[bot]
0d1f7a4db5 build(deps): bump io.micrometer:micrometer-core from 1.15.0 to 1.15.1
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.15.0 to 1.15.1.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.15.0...v1.15.1)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-version: 1.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 10:36:46 +02:00
Satvik Kushwaha
5eafa90f2f fix(ui): make download and preview visible for text ouputs (#8348)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-06-11 10:20:49 +02:00
Piyush Bhaskar
59ee76b1c5 fix(flows): importing flows will auto update the table without manual refresh. (#9468) 2025-06-11 13:34:07 +05:30
dependabot[bot]
7e312b8146 build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.4 to 0.38.5.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.4...v0.38.5)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 10:00:39 +02:00
Miloš Paunović
266b62db8f fix(core): amend the problem with running storybook tests (#9470) 2025-06-11 09:52:09 +02:00
Barthélémy Ledoux
d31d8dbd55 fix(ui): variables should work with duplicated keys (#9425) 2025-06-11 09:45:34 +02:00
Barthélémy Ledoux
ee3afb575f fix(ui): add datepicker to nocode string field (#9351)
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-11 09:45:17 +02:00
dependabot[bot]
250c219839 build(deps): bump software.amazon.awssdk:bom from 2.31.59 to 2.31.61
Bumps software.amazon.awssdk:bom from 2.31.59 to 2.31.61.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.61
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 09:44:10 +02:00
dependabot[bot]
c1d40e6496 build(deps): bump com.google.cloud:libraries-bom from 26.61.0 to 26.62.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.61.0 to 26.62.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.61.0...v26.62.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.62.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 09:43:45 +02:00
dependabot[bot]
462550d59a build(deps): bump org.owasp.dependencycheck from 12.1.2 to 12.1.3
Bumps org.owasp.dependencycheck from 12.1.2 to 12.1.3.

---
updated-dependencies:
- dependency-name: org.owasp.dependencycheck
  dependency-version: 12.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 09:43:26 +02:00
Miloš Paunović
d00f52649a chore(deps): regular dependency update (#9402)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-06-11 09:29:33 +02:00
Piyush Bhaskar
b6603a161d fix(core): plugins docs container background. (#9461) 2025-06-11 12:57:40 +05:30
YannC
2f9c176440 feat(ui): allow to close a tab with mouse middle click like in a navigator/ide (#9434) 2025-06-11 08:44:19 +02:00
YannC
06f31dda33 fix(core): use Min annotation instead of Positive (#9432)
close #9380
2025-06-10 17:14:39 +02:00
Miloš Paunović
edc32f6548 fix(core)*: properly display chart colors for logs (#9429) 2025-06-10 13:51:35 +02:00
YannC.
d299ff77fe feat(): add Kestra plugin in the list 2025-06-10 12:43:26 +02:00
brian-mulier-p
aaf1812764 fix(core): handle properly dot in nested keys & commas in quoted filter values (#9410) 2025-06-10 11:42:29 +02:00
Florian Hussonnois
c67c71213d fix(plugins): check whether plugin registry support versioning (#9122) 2025-06-10 11:10:39 +02:00
Bart Ledoux
31e9323fba refactor: avoid duplicating vite alias 2025-06-10 10:44:18 +02:00
brian.mulier
d0fe252f5c chore(deps): bump vitest to 3.2.3 2025-06-10 10:44:18 +02:00
brian.mulier
e97f4054ac build(tests): replace workspaces with proper storybook config + working aliases 2025-06-10 10:44:18 +02:00
Florian Hussonnois
3dbb1d7c9a fix(system): allow service to move from CREATED to TERMINATING (#9408)
Fix: #9408
2025-06-10 10:11:27 +02:00
YannC.
92cddfc96a fix(): display correctly doc/chart preview when editing custom dashboard
close #9411
2025-06-10 09:46:48 +02:00
Loïc Mathieu
5304630b30 fix(system): avoid starting two queues for WorkerJob and WorkerTriggerResult
We previously starts 2 queues: one for emit, and a specific one for receive wich handle WorkerJobRunning under the cover.

We can replace by using a single queue that will transparently handle WorkerJobRunning. As queues starts thread pools their cost is not negligeable.

Fixes #9007
2025-06-10 09:36:54 +02:00
Ludovic DEHON
69bf11c935 feat(system): add server_type as global metrics tags 2025-06-10 09:22:19 +02:00
Miloš Paunović
574d75c0f1 refactor(core): properly import github icon to be used in template section (#9403) 2025-06-10 08:31:20 +02:00
Roman Acevedo
c39a6a9413 build(ci): fix setversion workflow not making tag push trigger main 2025-06-09 16:27:45 +02:00
Piyush Bhaskar
447ea8088d fix(core): remove deprecated Github icon. (#9401)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-06-09 18:14:18 +05:30
Florian Hussonnois
b0b158c204 chore: add script to update gradle kestraVersion prop on plugins 2025-06-09 14:30:20 +02:00
Loïc Mathieu
1ed60ba87e fix(system): import flow should set the tenantId 2025-06-09 13:51:14 +02:00
github-actions[bot]
c37ffe9c13 chore(core): localize to languages other than english (#9397)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-06-09 13:14:56 +02:00
Miloš Paunović
c5b9aa1f2e fix(namespaces): properly load flows when changing namespace (#9393)
Closes https://github.com/kestra-io/kestra/issues/9352.
2025-06-09 12:33:53 +02:00
Piyush Bhaskar
28d7a0cfa7 feat(core): add release notes for public plugins (#9374)
* feat(core): add release notes for public plugins

* fix(core): use pluginType for url construct from api.
2025-06-09 16:03:36 +05:30
brian-mulier-p
c00f125c16 fix(core): avoid adding invalid keys from query parameters to filter (#9383)
closes #9364
2025-06-09 12:25:13 +02:00
dependabot[bot]
b54705e641 build(deps): bump com.github.ben-manes.caffeine:caffeine
Bumps [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/ben-manes/caffeine/releases)
- [Commits](https://github.com/ben-manes/caffeine/compare/v3.2.0...v3.2.1)

---
updated-dependencies:
- dependency-name: com.github.ben-manes.caffeine:caffeine
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 12:05:07 +02:00
dependabot[bot]
43eee222bf build(deps): bump org.owasp.dependencycheck from 12.1.1 to 12.1.2
Bumps org.owasp.dependencycheck from 12.1.1 to 12.1.2.

---
updated-dependencies:
- dependency-name: org.owasp.dependencycheck
  dependency-version: 12.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 11:26:46 +02:00
dependabot[bot]
eb1fad4193 build(deps): bump com.azure:azure-sdk-bom from 1.2.34 to 1.2.35
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.34 to 1.2.35.
- [Release notes](https://github.com/azure/azure-sdk-for-java/releases)
- [Commits](https://github.com/azure/azure-sdk-for-java/compare/azure-sdk-bom_1.2.34...azure-sdk-bom_1.2.35)

---
updated-dependencies:
- dependency-name: com.azure:azure-sdk-bom
  dependency-version: 1.2.35
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:51:31 +02:00
dependabot[bot]
d68a7c6431 build(deps): bump kafkaVersion from 3.9.0 to 4.0.0
Bumps `kafkaVersion` from 3.9.0 to 4.0.0.

Updates `org.apache.kafka:kafka-clients` from 3.9.0 to 4.0.0

Updates `org.apache.kafka:kafka-streams` from 3.9.0 to 4.0.0

Updates `org.apache.kafka:kafka-streams-test-utils` from 3.9.0 to 4.0.0

---
updated-dependencies:
- dependency-name: org.apache.kafka:kafka-clients
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: org.apache.kafka:kafka-streams
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: org.apache.kafka:kafka-streams-test-utils
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:36:42 +02:00
dependabot[bot]
9f327d24b1 build(deps): bump opensearchRestVersion from 2.19.2 to 3.0.0
Bumps `opensearchRestVersion` from 2.19.2 to 3.0.0.

Updates `org.opensearch.client:opensearch-rest-client` from 2.19.2 to 3.0.0
- [Release notes](https://github.com/opensearch-project/OpenSearch/releases)
- [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/OpenSearch/compare/2.19.2...3.0.0)

Updates `org.opensearch.client:opensearch-rest-high-level-client` from 2.19.2 to 3.0.0
- [Release notes](https://github.com/opensearch-project/OpenSearch/releases)
- [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/OpenSearch/compare/2.19.2...3.0.0)

---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-rest-client
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: org.opensearch.client:opensearch-rest-high-level-client
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:36:26 +02:00
dependabot[bot]
5a3416db62 build(deps): bump org.projectlombok:lombok from 1.18.36 to 1.18.38
Bumps [org.projectlombok:lombok](https://github.com/projectlombok/lombok) from 1.18.36 to 1.18.38.
- [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown)
- [Commits](https://github.com/projectlombok/lombok/compare/v1.18.36...v1.18.38)

---
updated-dependencies:
- dependency-name: org.projectlombok:lombok
  dependency-version: 1.18.38
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:06:30 +02:00
dependabot[bot]
f7be8568cd build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.3 to 0.38.4.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.3...v0.38.4)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:05:40 +02:00
dependabot[bot]
ced3067646 build(deps): bump aquasecurity/trivy-action from 0.30.0 to 0.31.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.30.0 to 0.31.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.30.0...0.31.0)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.31.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:05:23 +02:00
dependabot[bot]
32a3d37618 build(deps): bump bouncycastleVersion from 1.80 to 1.81
Bumps `bouncycastleVersion` from 1.80 to 1.81.

Updates `org.bouncycastle:bcprov-jdk18on` from 1.80 to 1.81
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.bouncycastle:bcpg-jdk18on` from 1.80 to 1.81
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.bouncycastle:bcpkix-jdk18on` from 1.80 to 1.81
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

---
updated-dependencies:
- dependency-name: org.bouncycastle:bcprov-jdk18on
  dependency-version: '1.81'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcpg-jdk18on
  dependency-version: '1.81'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcpkix-jdk18on
  dependency-version: '1.81'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:05:04 +02:00
dependabot[bot]
3b74190b2c build(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.23.0 to 3.1.0.
- [Release notes](https://github.com/opensearch-project/opensearch-java/releases)
- [Changelog](https://github.com/opensearch-project/opensearch-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/opensearch-java/compare/v2.23.0...v3.1.0)

---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-java
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:04:43 +02:00
dependabot[bot]
e5083e7cab build(deps): bump software.amazon.awssdk:bom from 2.31.50 to 2.31.59
Bumps software.amazon.awssdk:bom from 2.31.50 to 2.31.59.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.59
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 10:04:24 +02:00
enumura
6aad4b7023 fix(core): amend core.metric.Publish task icon visibility in dark mode (#9375)
Closes https://github.com/kestra-io/kestra/issues/9226.
2025-06-06 15:27:11 +02:00
Miloš Paunović
5e1b059dee fix(namespaces): reload namespace once the id parameter changes (#9372)
Closes https://github.com/kestra-io/kestra-ee/issues/3630.
2025-06-06 12:14:45 +02:00
Barthélémy Ledoux
91983cbd29 fix: properly detect condition fields (#9353) 2025-06-06 11:23:46 +02:00
Barthélémy Ledoux
1dcccb706d fix(ui): nocode - open onPause in a new tab (#9366) 2025-06-06 11:23:22 +02:00
brian.mulier
4443ee235e chore(deps): add types for storybook tests 2025-06-06 11:20:08 +02:00
Barthélémy Ledoux
d83339dfcb fix(ui): Tabs that are not blueprint should appear only once (#9370) 2025-06-06 10:18:39 +02:00
dependabot[bot]
ef65793cf6 build(deps-dev): bump @vitest/coverage-v8 from 3.1.4 to 3.2.1 in /ui (#9300)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 09:58:49 +02:00
dependabot[bot]
7c44c7694d build(deps-dev): bump typescript-eslint from 8.32.1 to 8.33.1 in /ui (#9309)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 09:58:16 +02:00
dependabot[bot]
005253766c build(deps-dev): bump eslint from 9.27.0 to 9.28.0 in /ui (#9306)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 09:57:36 +02:00
dependabot[bot]
617e425bb0 build(deps-dev): bump @typescript-eslint/parser in /ui (#9301)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 09:57:14 +02:00
Barthélémy Ledoux
0636cc5e6a chore: upgrade storybook (#9326) 2025-06-06 09:54:50 +02:00
Barthélémy Ledoux
367f49d457 fix: initialize array fields without any value (#9367) 2025-06-06 09:42:15 +02:00
Piyush Bhaskar
b4d15494c1 feat(core): custom blueprints now in side menu. (#9349) 2025-06-06 12:07:38 +05:30
Satvik Kushwaha
a92aa030f5 fixed blueprint redirection in namespace (#9330)
* fixed blueprint redirection in namespace

* removed unnecessary changes
2025-06-06 12:06:42 +05:30
brian.mulier
7bcf284497 fix(core): add DefaultFilterLanguage as default in KestraFilter
closes #9365
2025-06-05 17:42:11 +02:00
Roman Acevedo
62e718fc12 tests(e2e): add workflow dispatch to launch manually 2025-06-05 14:39:27 +02:00
Roman Acevedo
762b0ec89c tests(core): add storybook on executions filters (#9354)
* tests(core): add storybook on executions filters

* refactor(core): reformat storybook executions filters

* Update ui/src/components/inputs/MonacoEditor.vue

Co-authored-by: brian-mulier-p <bmmulier@hotmail.fr>

* tests(core): stop using monaco class and expect color is red dominant

* tests(core): monacoFilter const

---------

Co-authored-by: brian-mulier-p <bmmulier@hotmail.fr>
2025-06-05 14:29:33 +02:00
Miloš Paunović
c6604cda32 fix(core): amend positioning of the default tour elements (#9360)
Closes https://github.com/kestra-io/kestra/issues/9356.
2025-06-05 14:22:28 +02:00
Barthélémy Ledoux
2a808be985 refactor: load nocode root form from server schema (#9327) 2025-06-05 14:12:46 +02:00
brian-mulier-p
649d5fee6e fix(core): avoid crashing in case of taskrun having too large value (#9359)
closes #9312
2025-06-05 14:08:20 +02:00
Karuna Tata
51afdfd396 fix(ui): clear selection of retry form radio buttons (#9268)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
thank you so much for this geat work ! ❤️
2025-06-05 12:19:36 +02:00
Barthélémy Ledoux
ad2eb8a8b8 fix(ui): allow key of sub-tasks to be other than tasks (#9333) 2025-06-05 12:17:52 +02:00
François Delbrayelle
7124b53b7b feat(sifflet): add new plugin-sifflet 2025-06-05 10:54:57 +02:00
github-actions[bot]
d70b572257 chore(core): localize to languages other than english (#9347)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-06-05 10:26:11 +02:00
Piyush Bhaskar
50ca1d7946 feat(core): refactor of welcome and overide for card. (#9341)
* feat(core): refactor of welcome and overide for card.

* fix: remove type ignore
2025-06-05 13:42:48 +05:30
Nicolas K.
be14d818e6 fix(flows): #9319 error when puase with timeout trigger an execution (#9334)
* fix(flows): #9319 error when puase with timeout trigger an execution even after it's terminated

* fix(flows): only skip paused flow when execution is terminated

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-05 10:07:59 +02:00
YannC.
aab3fd408f fix(ci): put back bump helm chart and remove if condition 2025-06-05 08:49:06 +02:00
yuri
6323b0369b fix(core): add missing editor shortcut in the list (#9339)
Closes https://github.com/kestra-io/kestra/issues/9317.
2025-06-05 08:38:38 +02:00
YannC.
c06985cba8 fix(ci): modify actions order 2025-06-04 21:13:46 +02:00
brian.mulier
173cb29f56 fix(core): larger debounce for filter 2025-06-04 17:22:03 +02:00
brian.mulier
cc86b2064e fix(core): handle whitespaces in label key and value 2025-06-04 17:19:37 +02:00
brian.mulier
3e470d7674 fix(core): smarter autocomplete order in editor 2025-06-04 16:24:29 +02:00
brian-mulier-p
168e2e0db4 fix(core): additional plugins are now properly shown in plugin docs (#9329)
closes kestra-io/plugin-langchain4j#61
2025-06-04 15:42:32 +02:00
brian.mulier
51ce2208de fix(core): avoid suggest widget reset upon typing 2025-06-04 15:39:40 +02:00
YannC.
28f58e63d7 fix(ci): remove debug branch for actions checkout step 2025-06-04 14:59:09 +02:00
Loïc Mathieu
f544bc9f85 fix(system)*: don't include yourself as def in the JSONSchema
For AdditionalPlugin, as we resolves subtypes using isAssignable, we will resolve ourself as a subtype which leads to infinite loop while parsing the schema.
2025-06-04 13:18:36 +02:00
Piyush Bhaskar
f06998571d fix(core): update background for plugin-doc in EE Apps and alert-info block styling in plugin doc. (#9323) 2025-06-04 16:10:01 +05:30
Piyush Bhaskar
2a27f031e2 fix(triggers): update link color in triggers (#9257) 2025-06-04 16:09:32 +05:30
YannC.
7e4a030fa3 fix(): add mising checkout in workflow github release 2025-06-04 12:25:32 +02:00
Loïc Mathieu
979b271638 fix(system)*: correctly resolve additional plugin subtypes so autocompletion work
Part-of: https://github.com/kestra-io/plugin-langchain4j/issues/61
2025-06-04 11:06:59 +02:00
Florian Hussonnois
bfc8556024 fix(build): fix deve-tool release-plugins script 2025-06-04 10:20:40 +02:00
Roman Acevedo
ca10215540 fix: langchain4j with wrong repo name in .plugins 2025-06-04 10:16:47 +02:00
Piyush Bhaskar
4bd3a50f9d fix(flow): update flow revision restoration (#9311) 2025-06-04 13:25:28 +05:30
Piyush Bhaskar
cfa239a7df fix(core): improve theme handling in Monaco editor (#9294) 2025-06-04 13:25:15 +05:30
brian.mulier
e163d91122 fix(core): rename NAMESPACE_PREFIX comparator to PREFIX 2025-06-04 09:32:29 +02:00
Miloš Paunović
8980c23895 chore(core): add an extra storage key constant for maintenance mode (#9310)
Related to https://github.com/kestra-io/kestra-ee/issues/3961.
2025-06-04 09:19:08 +02:00
Miloš Paunović
1c1bc18d91 fix(core): if task array has enum options, show select box instead of input (#9270)
Closes https://github.com/kestra-io/kestra/issues/9208.
Closes https://github.com/kestra-io/kestra/issues/9255.
2025-06-04 08:07:32 +02:00
brian.mulier
282cd766e2 fix(core): restore theme colors from Monaco editor 2025-06-03 20:37:55 +02:00
brian.mulier
ea0c3b9b22 fix(core): remove text filter for dashboards 2025-06-03 17:52:39 +02:00
brian.mulier
43ad5aa3fd fix(core): regex is not yet supported for text so we remove it for now 2025-06-03 17:46:31 +02:00
Anna Geller
581d5e4961 docs: clarify log level on the log task (#9277) 2025-06-03 15:58:44 +02:00
Roman Acevedo
8de568e7ac chore(version): update snapshot version 'v0.24.0-SNAPSHOT'. 2025-06-03 15:51:39 +02:00
Roman Acevedo
29eb0eb9c2 chore(version): update to version 'v0.23.0-rc0-SNAPSHOT'. 2025-06-03 15:49:49 +02:00
brian.mulier
83c6333c6f fix(core): change naming from STARTS_WITH_NAMESPACE_PREFIX to NAMESPACE_PREFIX 2025-06-03 15:32:42 +02:00
Florian Hussonnois
ccb871aec5 fix(ci): fix workflow gradle-release 2025-06-03 15:18:04 +02:00
Barthélémy Ledoux
3fe4556dd5 refactor: remove the theme and chartColor from schemes (#7296) 2025-06-03 15:00:35 +02:00
Barthélémy Ledoux
4a0d449106 refactor: remove nocode components registration from global scope (#9211) 2025-06-03 14:58:55 +02:00
Barthélémy Ledoux
c787ce3b4c fix: only load default values when changing type (#9272) 2025-06-03 14:58:41 +02:00
Roman Acevedo
cd9fdcd3d3 tests(system): make restartForEachItem test more deterministic 2025-06-03 14:27:48 +02:00
brian-mulier-p
e580c3590c feat(executions): add filter bar to flow concurrency tab (#9269)
closes #5825
2025-06-03 14:24:51 +02:00
brian.mulier
786be667a2 fix(core): remove REGEX filter for text search 2025-06-03 14:04:06 +02:00
Piyush Bhaskar
e2373448ff fix(core): update save button disabled logic. (#9267) 2025-06-03 17:17:16 +05:30
Miloš Paunović
23499a627a chore(core): remove sort buttons in no code if the block type is plugin defaults (#9265)
Closes https://github.com/kestra-io/kestra/issues/9217.
2025-06-03 12:36:27 +02:00
Miloš Paunović
24c4eebaf4 chore(core): remove margin from blueprints if used in combined view (#9264)
Closes https://github.com/kestra-io/kestra/issues/8503.
2025-06-03 12:28:00 +02:00
Piyush Bhaskar
3606a563f3 feat(flows): add global save functionality (#9262) 2025-06-03 15:55:30 +05:30
Anna Geller
22131f8c49 fix(assertions): fix assertions grammar (#9173) 2025-06-03 12:24:16 +02:00
YannC
c3d5811c86 fix: now correctly handles State filter for executions (#9223) 2025-06-03 12:15:44 +02:00
YannC
317621e7bb fix(ui): allows even embed table to be sorted (#9261)
close #9230
2025-06-03 12:09:16 +02:00
Daniel Rivas
598582fa76 test(cli): add return code and YAML-output tests for ConfigPropertiesCommand (#8827) 2025-06-03 12:00:43 +02:00
Loïc Mathieu
9bd87d7492 feat(flow): allow grouping plugin properties
Closes #7199
2025-06-03 11:59:10 +02:00
Roman Acevedo
712a3753f6 fix(triggers): bulk actions for Triggers with new Filter 2025-06-03 11:34:51 +02:00
Nicolas K.
49bb93b4db feat(tenants): change the tenant migration command name (#9253)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-03 11:32:18 +02:00
Miloš Paunović
f10b289d76 fix(dashboards): include pagination parameters in default dashboard tables (#9251)
Closes https://github.com/kestra-io/kestra/issues/9250.
2025-06-03 11:08:29 +02:00
brian.mulier
7f677211af fix(core): avoid adding incomplete key.{subKey} as text filter
closes #9243
2025-06-03 10:53:08 +02:00
Roman Acevedo
066a5f09fe fix(flows,executions): filtering QUERY NOT_EQUALS was not handled in jdbc 2025-06-03 10:44:32 +02:00
YannC
5145cf0567 fix(secrets): display all namespaces (#9248)
close kestra-io/kestra-ee#3942
2025-06-03 10:00:38 +02:00
Loïc Mathieu
70c1a8671a feat(execution): allow to loop until an unlimited duration or iteration count
But not both as this would means unlimited loops which are a bad practice.

Fixes #9152
2025-06-03 09:32:27 +02:00
Miloš Paunović
fc7df186f6 fix(core): prevent monaco suggestion widget to update its position (#9164)
Closes https://github.com/kestra-io/kestra/issues/9116.
2025-06-03 09:08:27 +02:00
Piyush Bhaskar
76d068fe35 fix(core): same position in center for all modals (#9247) 2025-06-03 12:28:29 +05:30
YannC
5c624579e0 fix(dashboard): make refresh button works (#9238)
close #7083
2025-06-03 08:55:13 +02:00
Piyush Bhaskar
a1db7b5677 chore(version): update @kestra-io/ui-libs to version 0.0.203 for finally block (#9246) 2025-06-03 12:21:36 +05:30
Miloš Paunović
2d36646cac refactor(core): remove unnecessary import (#9245) 2025-06-03 08:50:55 +02:00
Piyush Bhaskar
1c294cf4af fix(triggers): show the url instead of open. (#9244) 2025-06-03 12:13:02 +05:30
brian.mulier
ac19b4a86d fix(core): properly parse IN & NOT_IN values for Dashboards 2025-06-02 20:32:18 +02:00
brian.mulier
3511a8f74e fix(core): skip empty values from filters in query 2025-06-02 20:26:27 +02:00
brian.mulier
30bf32af83 fix(core): better relevance on filter syntax highlighting + IN working
closes #9214
2025-06-02 20:17:54 +02:00
brian.mulier
4d73138152 fix(core): restoreUrl is now scoped to route tab
closes #9235
2025-06-02 18:51:22 +02:00
YannC
fa96ca1f12 fix(core): Valid correctly conditions in triggers (#9228) 2025-06-02 17:39:11 +02:00
Nicolas K.
7fcafce47b feat(tenants): change the tenant migration command name (#9215)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-06-02 16:53:16 +02:00
Roman Acevedo
d92015cdc6 refactor(system): centralize filters legacy mapping in controllers (#9183) 2025-06-02 16:15:59 +02:00
AJ Emerich
7c0435ffd7 docs(dashboard): fix indentations in examples and add KPI (#9203)
* docs(dashboard): fix indentations in examples and add KPI

Closes https://github.com/kestra-io/kestra/issues/9193

* docs(kpi-chart): update width
2025-06-02 16:10:03 +02:00
Miloš Paunović
8c0c50bff3 chore(core): keep the property name in no code in monospace font (#9216)
Closes https://github.com/kestra-io/kestra/issues/9213.
2025-06-02 15:36:29 +02:00
Miloš Paunović
b55032bd3f chore(triggers): remove column cron from triggers listing and sort out trigger details dialog (#9212)
Closes https://github.com/kestra-io/kestra/issues/8605.
2025-06-02 15:35:26 +02:00
Barthélémy Ledoux
ba5d7e4c1a fix: restore namespace and id when emptying while editing (#9138) 2025-06-02 14:33:40 +02:00
Loïc Mathieu
15937a6565 feat(system): FlowRepository.findByNamespacePrefixWithSource() 2025-06-02 13:48:31 +02:00
Miloš Paunović
c0f66f6dda fix(core): amend positioning of the default tour elements (#9202)
Closes https://github.com/kestra-io/kestra/issues/9172.
2025-06-02 13:38:15 +02:00
Miloš Paunović
8265f6db7a fix(dashboards): use namespace parameter for next execution table to be able to build links (#9195)
Closes https://github.com/kestra-io/kestra/issues/9188.
2025-06-02 12:42:49 +02:00
github-actions[bot]
f55d2e2350 chore(core): localize to languages other than english (#9197)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-06-02 12:11:53 +02:00
Miloš Paunović
c8e6e5ad50 feat(tests): add tests preview tab in left menu (#9191)
Closes https://github.com/kestra-io/kestra-ee/issues/3927.
2025-06-02 12:05:07 +02:00
Miloš Paunović
a03721040f chore(secrets): allow deletion of all tags, including the last one (#9187)
Closes https://github.com/kestra-io/kestra-ee/issues/3937.
2025-06-02 11:43:54 +02:00
Miloš Paunović
afe267eeeb chore(secrets): make the key field disabled on secret editing (#9185)
Closes https://github.com/kestra-io/kestra-ee/issues/3936.
2025-06-02 11:43:31 +02:00
Barthélémy Ledoux
a51f4f213b fix(ui): nocode - add clear selected button for anyof (#9136)
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-02 11:23:19 +02:00
Ludovic DEHON
c7986ec986 build(deps): bump org.testcontainers:testcontainers to 1.21.1 2025-06-02 10:58:53 +02:00
Piyush Bhaskar
5205cf24a6 chore(version): update the ui-libs version (#9184) 2025-06-02 14:09:18 +05:30
dependabot[bot]
9ff2df6ae4 build(deps): bump com.github.oshi:oshi-core from 6.8.1 to 6.8.2
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.8.1 to 6.8.2.
- [Release notes](https://github.com/oshi/oshi/releases)
- [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.8.1...oshi-parent-6.8.2)

---
updated-dependencies:
- dependency-name: com.github.oshi:oshi-core
  dependency-version: 6.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 10:19:01 +02:00
dependabot[bot]
f46234a577 build(deps): bump org.postgresql:postgresql from 42.7.5 to 42.7.6
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.5 to 42.7.6.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.5...REL42.7.6)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-version: 42.7.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 10:18:20 +02:00
dependabot[bot]
97b23a2d91 build(deps): bump org.testcontainers:junit-jupiter from 1.21.0 to 1.21.1
Bumps [org.testcontainers:junit-jupiter](https://github.com/testcontainers/testcontainers-java) from 1.21.0 to 1.21.1.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.21.0...1.21.1)

---
updated-dependencies:
- dependency-name: org.testcontainers:junit-jupiter
  dependency-version: 1.21.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 10:18:00 +02:00
Loïc Mathieu
bf18f671ce fix(system): don't set execution to queued twice 2025-06-02 09:35:08 +02:00
brian.mulier
e3285b1813 fix(core): add red highlighter upon using wrong comparator for a key in filters
closes #9090
closes #9097
2025-05-30 19:50:13 +02:00
brian.mulier
3ffa446c54 feat(core): implement STARTS_WITH_NAMESPACE_PREFIX filter 2025-05-30 19:49:37 +02:00
brian.mulier
87f4143ed4 fix(core): handle text filter properly for dashboards 2025-05-30 19:33:20 +02:00
brian.mulier
c439d08a0e fix(core): implement STARTS_WITH_NAMESPACE_PREFIX global filter using REGEX 2025-05-30 18:04:49 +02:00
Roman Acevedo
81d7588627 feat(system): add STARTS_WITH_NAMESPACE_PREFIX query filter for by namespace query 2025-05-30 17:21:29 +02:00
brian.mulier
f797f87041 fix(core): fixed eslint not to apply to tests 2025-05-30 17:19:10 +02:00
Miloš Paunović
3484074274 fix(core): handle no code inputs type change (#9166)
Closes https://github.com/kestra-io/kestra/issues/9101.
2025-05-30 15:21:56 +02:00
brian.mulier
630e4fd43a fix(core): repair audit logs type filter
closes #9091
2025-05-30 15:20:20 +02:00
brian.mulier
c6bc44ca6c fix(core): better filter comparator detection 2025-05-30 15:19:38 +02:00
Roman Acevedo
9063f61a4c feat(flows): remove JDBC NAMESPACE START_WITH filter specifities 2025-05-30 14:17:10 +02:00
Roman Acevedo
20c229a64f fix(executions): inclusive validation of start and end date 2025-05-30 14:17:10 +02:00
Roman Acevedo
a632c5e81a fix(flows): bulk actions for Flows with new Filter 2025-05-30 14:17:10 +02:00
Roman Acevedo
c8376daa1b refactor(flows): remove old FlowRepositoryInterface.find method not used anymore 2025-05-30 14:17:10 +02:00
Miloš Paunović
e29840de36 fix(core): amend padding on the global error notification container (#9161)
Closes https://github.com/kestra-io/kestra-ee/issues/3924.
2025-05-30 11:46:55 +02:00
Piyush Bhaskar
d8f8cb6244 fix(core): definition now expands from properties. (#9160) 2025-05-30 14:41:04 +05:30
Miloš Paunović
f6095cee99 fix(dashboards): amend line chart values & bar chart stacks sorting (#9158)
Closes https://github.com/kestra-io/kestra/issues/6603.
Closes https://github.com/kestra-io/kestra-ee/issues/3918.
2025-05-30 10:45:39 +02:00
YannC.
3865f90553 ci: moved helm update trigger on EE side 2025-05-30 09:30:28 +02:00
Piyush Bhaskar
f93ecbf741 fix(core): update regex to correctly render the alert for embedded docs. (#9151) 2025-05-29 18:32:39 +05:30
Miloš Paunović
9f03840e21 chore(dashboards): improve date format in dashboard table cells (#9150) 2025-05-29 14:33:26 +02:00
Miloš Paunović
e150384e17 fix(dashboards): change default dashboard yaml to include filtering in progress states (#9146)
States that now will be filtered for the `In Progress` table:

- `CREATED`
- `RESTARTED`
- `QUEUED`
- `RUNNING`
- `PAUSED`
- `RETRYING`
- `KILLING`

Closes https://github.com/kestra-io/kestra/issues/9125.
2025-05-29 14:11:08 +02:00
Miloš Paunović
29006071bb fix(executions): properly guard against the npe error (#9147) 2025-05-29 14:06:19 +02:00
Miloš Paunović
ff2df65b00 fix(dashboards): properly replace namespace and flow variables in flow dashboard yaml (#9145) 2025-05-29 14:03:23 +02:00
Miloš Paunović
e00d1ca0b7 fix(dashboards): show proper value in dashboard table, flow column (#9142) 2025-05-29 10:37:53 +02:00
Miloš Paunović
345a6331ad fix(dashboards): amend line chart values & bar chart stacks sorting (#9141)
Closes https://github.com/kestra-io/kestra/issues/6603.
Closes https://github.com/kestra-io/kestra-ee/issues/3918.
2025-05-29 10:35:15 +02:00
Miloš Paunović
124fcbf87f fix(core): switch filter colors on main theme change (#9140)
Closes https://github.com/kestra-io/kestra/issues/9119.
2025-05-29 08:32:17 +02:00
Piyush Bhaskar
82f617b704 feat(core): 503 Service Unavailable status in error messages. (#9135) 2025-05-29 10:51:24 +05:30
brian.mulier
6e6d4e4d26 fix(core): avoid sending date filters to flow list API call
closes kestra-io/kestra-ee#3911
closes #9132
2025-05-28 23:13:16 +02:00
brian.mulier
31a96fe30b fix(core): properly filter Namespace executions 2025-05-28 23:10:56 +02:00
brian.mulier
dd52bc1d4c fix(core): text search without needing "text" key prefix
closes #9105
2025-05-28 18:29:56 +02:00
brian.mulier
b2cfe1dda3 fix(core): properly remap q parameter to text in filter bar 2025-05-28 17:55:22 +02:00
Nicolas K.
457e4826a8 test(storage): remove null tenant in test suit (#9139)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-28 17:41:13 +02:00
Loïc Mathieu
6a465c1289 feat(system): monitor and close the Scheduler monitoring loop 2025-05-28 16:02:54 +02:00
Miloš Paunović
e93ef87dba chore(dashboards): load more dashboards at once (#9127) 2025-05-28 16:00:15 +02:00
Miloš Paunović
a990155519 chore(dashboards): use displayName property for table headers, if existing (#9129)
Related to https://github.com/kestra-io/kestra-ee/issues/3910.
2025-05-28 15:54:16 +02:00
Miloš Paunović
38a0c7aafb chore(dashboards): make sure save button is disabled again on successful action (#9131)
Related to https://github.com/kestra-io/kestra-ee/issues/3910.
2025-05-28 15:52:46 +02:00
Miloš Paunović
ba793a00a4 chore(dashboards): remove text transformation in chart legend creation (#9130) 2025-05-28 15:52:05 +02:00
Loïc Mathieu
6c7a8be5bd fix(system): use the correct config name for resonse cache 2025-05-28 15:21:05 +02:00
brian.mulier
858f37933e fix(core): avoid sort, page & size from interfering with filter widget 2025-05-28 15:18:27 +02:00
YannC
80061e3fb3 fix: don't use a endDate when not asked (#9056)
* fix: don't use a endDate when not asked

close #9037

* test: fix following change
2025-05-28 15:04:56 +02:00
YannC
59f2674f75 feat: improved new custom dashboard (#9120)
* apply correctly the default filter for namespace and flow pages
* apply a default date on charts if none is set
* add flow_id filter in the global filter
2025-05-28 14:59:00 +02:00
Miloš Paunović
525717a9b8 chore(dashboards): multiple ux improvements of dashboards (#9111)
Closes https://github.com/kestra-io/kestra/issues/9038.
Closes https://github.com/kestra-io/kestra/issues/9057.
Closes https://github.com/kestra-io/kestra-ee/issues/3879.
2025-05-28 14:54:07 +02:00
brian.mulier
30adacaf75 fix(core): log level is not a multi-value filter
closes #9087
2025-05-28 14:48:58 +02:00
brian.mulier
961608fef6 fix(core): remove namespace & flowId keys on Flow -> Executions page filter 2025-05-28 14:48:03 +02:00
brian.mulier
f585264620 fix(core): avoid red-coloured key in filters 2025-05-28 14:31:08 +02:00
Piyush Bhaskar
81a94ec23f fix(core): bring back radio styles. (#9112)
* fix(core): bring back radio styles.

* bring radio back

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>

---------

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-05-28 17:55:50 +05:30
Nicolas K.
4f8ea9afb1 feat(storage): refactor getPath (#9104)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-28 14:12:58 +02:00
Roman Acevedo
0523c04be0 fix(executions): by-query not working with new filters (#9058) 2025-05-28 13:15:03 +02:00
Miloš Paunović
63e9bf2672 chore(flows): take default namespace into account on flow creation (#9110)
Closes https://github.com/kestra-io/kestra/issues/9109.
2025-05-28 12:56:41 +02:00
Loïc Mathieu
7cc938c605 feat(test): allow inline files fixtures and render fixture outputs 2025-05-28 12:48:08 +02:00
Florian Hussonnois
3e21e69e85 fix(system): wait for grace period before reemitting tasks for terminated_forced workers
When a worker transitition to the TERMINATED_FORCED, the LivenessCoordinator
should wait for termination grace period to ensure
that all in-flight task-runs had time to be completely processed by the executors

Related-to: #8334
2025-05-28 12:03:48 +02:00
YannC
28417f04d9 feat: replace daily charts by customized charts (#9081) 2025-05-28 11:52:21 +02:00
Nicolas K.
4041ebf340 fix(tests): add tenant id to log repository tests (#9100)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-28 11:45:55 +02:00
brian.mulier
36d79e68dc chore(deps): splitpanes types 2025-05-28 11:23:08 +02:00
Miloš Paunović
6e0516f448 fix(core): prevent cursor in code editor from jumping to top (#9095)
Closes https://github.com/kestra-io/kestra/issues/9013.
2025-05-28 11:10:16 +02:00
Barthélémy Ledoux
a12d5b3eb5 fix: setup anyof forms for taskRunner retry and others (#9049)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-05-28 11:07:16 +02:00
brian.mulier
c4d9a33987 chore(deps): splitpanes types 2025-05-28 11:04:22 +02:00
brian.mulier
5c33907288 chore(deps): remove @types/splitpanes and add a manual module for it + fix vue version 2025-05-28 10:56:54 +02:00
Nicolas K.
5f0910b54e test(storage): remove all null tenant test (#9054)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-28 09:30:28 +02:00
Piyush Bhaskar
36900cb9ec fix(flow): diff shows as per revision number (#9080) 2025-05-28 12:43:15 +05:30
Miloš Paunović
7047b605f5 fix(core): amend keyboard save shortcut for both flow and namespace files (#9030) 2025-05-28 08:16:33 +02:00
brian.mulier
9e84b12008 fix(core): support REGEX filtering 2025-05-27 20:02:08 +02:00
brian.mulier
7297221e06 fix(core): add REGEX filtering on namespace field in JDBC 2025-05-27 19:24:14 +02:00
brian.mulier
37c001aa56 fix(core): avoid overriding sort, size and page from new filtering 2025-05-27 19:12:39 +02:00
brian.mulier
a12a6ccc2f fix(core): filtering was not working with pagination
closes #9027
2025-05-27 18:58:55 +02:00
brian.mulier
ba2179ed56 fix(core): avoid red-coloured filter keywords
closes #9024
2025-05-27 18:55:02 +02:00
brian.mulier
1a5b1f2b5c fix(core): wrong childFilter naming 2025-05-27 18:52:54 +02:00
brian.mulier
3d26205464 fix(deps): fixed storybook router version to UI one 2025-05-27 17:19:18 +02:00
brian.mulier
9a759e2807 fix(core): avoid undefined due to scope filter addition
closes #9024
2025-05-27 17:19:09 +02:00
brian.mulier
997d71f586 fix(core): scope is a single value filter 2025-05-27 17:17:34 +02:00
Loïc Mathieu
3bc75efbf2 fix(dashboard): Properly cast log level column in Dashboards
Fixes #8128
2025-05-27 16:18:49 +02:00
Loïc Mathieu
5260726daa fix(ui): namespace tab didn't use the pluginDefault translation 2025-05-27 16:18:08 +02:00
brian-mulier-p
79ee64a8a7 fix(core): handle AND by spaces in filters (#9046)
closes kestra-io/kestra-ee#3003
2025-05-27 15:56:01 +02:00
Piyush Bhaskar
69ff5a2365 fix: color of Failed status (#9042) 2025-05-27 18:46:33 +05:30
Anna Geller
387eb9bb33 fix(dashboard): simplify naming for ratio (#9041) 2025-05-27 14:50:00 +02:00
Miloš Paunović
f380501f61 fix(core): properly show custom dashboard card titles (#9035) 2025-05-27 14:16:18 +02:00
brian-mulier-p
217fbcddb8 fix(core): update flow & namespace overview dashboard filters (#9034)
closes #9033
2025-05-27 14:11:56 +02:00
Miloš Paunović
cbc250bb1c fix(core): amend plugin page problems due to npe (#9031)
Closes https://github.com/kestra-io/kestra-ee/issues/3865.
2025-05-27 14:01:06 +02:00
Piyush Bhaskar
c53791435c fix(core): use new color tokens for panes and editor. (#9020) 2025-05-27 16:49:49 +05:30
Satvik Kushwaha
8846da55e8 fixed spacing in demo apps page (#9021)
* fixed spacing in demo apps page

* minor tweak

---------

Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-05-27 16:47:40 +05:30
github-actions[bot]
7cefbaccb7 chore(core): localize to languages other than english (#9023)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-27 13:11:48 +02:00
Miloš Paunović
4a5cd1dce7 chore(core): make sure id property is required for sla block (#9022) 2025-05-27 12:55:49 +02:00
Miloš Paunović
4b2e50242b feat(namespaces): allow exporting single namespace files from editor sidebar (#8967) 2025-05-27 12:26:02 +02:00
YannC
f81125ed0b fix: avoid the Kestra Instance to be indexed (#9018)
close #9015
2025-05-27 12:14:15 +02:00
Miloš Paunović
c8f58f842c fix(core): properly check if property is nullish (#9019) 2025-05-27 11:48:54 +02:00
brian.mulier
c25c60d442 chore(build): remove add jmh-benchmarks gradle.properties to gitignore 2025-05-27 11:39:28 +02:00
brian-mulier-p
71a8aea570 feat(core): move KestraFilter to a Monaco-based implementation (#8915)
closes kestra-io/kestra-ee#3004
2025-05-27 11:36:23 +02:00
Barthélémy Ledoux
81da94dfd1 fix(core): avoid inserting empty tasks in flow (#9016) 2025-05-27 11:29:39 +02:00
YannC.
1cc7b3e443 fix: avoid diving by 0 with the KPI chart 2025-05-27 11:23:38 +02:00
Kelvin Yim
f7c2cbec43 fix(ui): improve padding and font sizes on Blueprints tab in Editor (#9002)
* fix/8050 - Improve padding and font sizes on the Blueprints tab in the Editor

fix(ui): improve padding and font sizes on Blueprints tab in Editor

Image 1:
- Added a "Blueprints" tittle
- Added 32px horizontal padding and 16px bottom padding to blueprint container
- Change font tittle
- Reduced blueprint title font size
- Added spacing between Source title and code block
- Changed background to ks-background-input
- Changed editor to ks-background-input

Image 2:
- Changed top spacing
- Changed background to ks-background-input
- Changed "bold" tittle blueprint to "regular"

Fixes #8950

* fix/8050 - Improve padding and font sizes on the Blueprints tab in the Editor

fix(ui): improve padding and font sizes on Blueprints tab in Editor

- FIx padding between tittle "Source" and code block
- changed css &.custom-dark-vs-theme
- Add Community top spacing

Fixes #8950

* fix(ui): improve padding and font sizes on Blueprints tab in Editor

- Updated back button with rounded background and ChevronLeft icon
- Reduced blueprint title font size and improved header layout
- Added proper spacing and alignment for header elements

Fixes #8950

* revert gitignore and application.yml

* fix(ui): minor tweaks.

---------

Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-05-27 14:29:42 +05:30
Roman Acevedo
0101f53954 build(ci): require translations to be done (#9014)
at least for the current RC period
2025-05-27 10:54:07 +02:00
Loïc Mathieu
a0ee30916c chore(system): JdbcQueue code refactoring 2025-05-27 10:46:05 +02:00
github-actions[bot]
c30abf40ee chore(core): localize to languages other than english (#9011)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-27 10:28:19 +02:00
Barthélémy Ledoux
17858091a4 fix(ui): clicking on edit/delete in topology opens a nocode (#8993) 2025-05-27 10:25:54 +02:00
Miloš Paunović
09318b7bc2 chore(core): amend labels of task anyof component radio buttons (#9005) 2025-05-27 09:41:47 +02:00
Miloš Paunović
069159f8fd chore(core): add sla block to no code editor (#9004)
Closes https://github.com/kestra-io/kestra/issues/7081.
2025-05-27 09:32:05 +02:00
Loïc Mathieu
6039d100ee feat(system): add metrics for flowable tasks
Part-of: #8341
2025-05-27 09:20:09 +02:00
Loïc Mathieu
6630cf045f fix(system): remove required props in definitions that have a default
Fixes https://github.com/kestra-io/plugin-scripts/issues/243
2025-05-27 08:57:36 +02:00
Loïc Mathieu
270b4d4bc2 feat(system): add metics for concurrency limit
Part_of: #8341
2025-05-27 08:57:10 +02:00
Piyush Bhaskar
3ad13272e5 fix(core): full width for wrapper containing properties. (#9003) 2025-05-27 11:40:44 +05:30
YannC
ea402261d5 Replace the default dashboard with custom dashboard (#8769)
* feat:
- Implement width property
- Replace custom dashboard
- Started to integrate the KPI chart

* feat(ui): introduce dashboard chart layout system

* feat(ui): introduce dashboard chart kpi card

* chore(ui): amend layout widths for sm screen size

* chore(ui): prevent editing of default dashboard

* chore(ui): centering the KPI text inside the box

* chore(ui): dashboard edit preview to respect set layouts

* chore(ui): initial work on setting the default flow & namespace dashboards

* fix(ui): make sure there is no naming clashes

* feat: KPI chart backend implementation

* feat: validation annotations

* chore(ui): make chart legend align to right side

* chore(ui): properly show chart labels

* chore(ui): improve state and ID components inside custom tabels

* chore(ui): add proper link to execution in tables

* feat: implemented Triggers as Datasource for custom dashboards

close kestra-io/kestra-ee#3740

* feat: modified the Markdown chart so now it accept different sources

* feat: rename KPI property to numerator & where

close #3739

* chore(ui): improve markdown component

* chore(ui): markdown charts

* chore(ui): markdown charts

* chore(ui): markdown charts remove padding

* chore(ui): markdown charts

* feat: fixes + define custom dashboard equivalent to current default dashboard with some modification

* fix: round double value

* chore(ui): improve  flows and ns charts

* chore(ui): make sure that table shows execution links only if namespace and flowId exist

* chore(ui): make sure markdown is properly shown on dashboard edititng

* fix: correctly do preview instead of load on homepage

* fix: correctly preview markdown chart and add description in default flow dashboard

* fix: apply review changes

* fix: modify test following classes modifications on charts

* tests: restore package-lock

* remove chromatic tools and a warning

---------

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-05-27 08:02:11 +02:00
yuri
57bafd1240 fix(ui): show proper no results (#8870)
* fix(ui): show proper no result

* Migrated the `SelectTable` component away from `NoData` to the
  placeholder text attribute.
* Enabled `NoData` for logs since their empty result case was also
  not clear.

* fix(core): make selection work and few more tweak.

---------

Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-05-27 11:23:26 +05:30
Loïc Mathieu
f90e22a935 fix(tests): improve test robustness by avoiding spinning a new thread for receive timeout 2025-05-26 20:35:28 +02:00
Loïc Mathieu
ec21ef3d32 feat(system): add a metrics for the Executor thread count
Part-of: #8341
2025-05-26 19:37:32 +02:00
Loïc Mathieu
88b88856da feat(system): add metrics to the JDBC queue
Part-of: #8340
2025-05-26 19:37:03 +02:00
github-actions[bot]
96b481348f chore(core): localize to languages other than english (#8999)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-26 18:10:40 +02:00
brian-mulier-p
e3a8c1c086 fix(plugins): resolve subtypes in low code editor (#8957)
closes #8903
2025-05-26 17:49:50 +02:00
Miloš Paunović
87fe3abee5 refactor(core): rename the type in random retry (#8998) 2025-05-26 17:47:56 +02:00
Miloš Paunović
4b7d90faf4 chore(core): add retry block to no code editor (#8996)
Closes https://github.com/kestra-io/kestra/issues/7031.
2025-05-26 17:40:12 +02:00
Barthélémy Ledoux
2f8a844326 fix: save namespace files when clicking ctrl-S (#8994) 2025-05-26 17:09:06 +02:00
Loïc Mathieu
1b4efc51bf feat(system): restore the flow queue after tenant migration
This would lower the risk of trigger/topology not up to date and would make all components having to right set of flows.
2025-05-26 15:37:33 +02:00
YannC
d3c29fcadd fix(logs): Use correct property for filtering logs in kafka (#8812)
* fix(logs): Use correct property for filtering logs in kafka

* test: added a test for date
2025-05-26 15:20:03 +02:00
Barthélémy Ledoux
059323aca0 fix(ci): nocode translate (#8988)
Co-authored-by: GitHub Action <actions@github.com>
2025-05-26 14:35:41 +02:00
YannC
aae752ff3c feat: add a new method "taskWithState" that leverage on the property tasks (#8907)
close #5653
2025-05-26 13:09:13 +02:00
Piyush Bhaskar
ee5c39cbe4 fix(core): remove placeholder on input (#8984)
* fix(core): remove placeholder on input

* fix: remove not required
2025-05-26 16:17:17 +05:30
Roman Acevedo
021357c7a4 feat(tests): validate the Flow exists when create or update Test 2025-05-26 12:35:09 +02:00
Piyush Bhaskar
eff58d96c8 fix(core): few tweaks to align the placeholder and ui as per design. (#8980)
* fix(core): few tweaks to align the placeholder and ui as per design.

* fix: minor tweak

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-05-26 15:27:39 +05:30
Barthélémy Ledoux
3c7ca60188 fix(nocode): reorder subtasks (#8976) 2025-05-26 11:55:46 +02:00
Piyush Bhaskar
06635cdecd fix(core): navigating back to plugins home. (#8972)
* fix(core): navigating back to plugins home.

* fix: keep the scroll to top

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>

---------

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-05-26 15:20:53 +05:30
Miloš Paunović
8ada2846bc feat(core): move complex task fields inline in no code editor (#8977)
Closes https://github.com/kestra-io/kestra/issues/8934.
2025-05-26 11:21:49 +02:00
Florian Hussonnois
c2dc1c0b8b fix(cli): properly install all plugins depending on kestra distribution
Related-to: kestra-io/kestra-ee#3806
2025-05-26 10:27:25 +02:00
Miloš Paunović
d66ee28a7a refactor(core): simplify header badge component usage (#8963) 2025-05-26 10:20:34 +02:00
dependabot[bot]
cbe32742f7 build(deps): bump software.amazon.awssdk:bom from 2.31.45 to 2.31.50
Bumps software.amazon.awssdk:bom from 2.31.45 to 2.31.50.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 09:52:36 +02:00
dependabot[bot]
55fb234760 build(deps): bump me.champeau.jmh from 0.7.2 to 0.7.3
Bumps me.champeau.jmh from 0.7.2 to 0.7.3.

---
updated-dependencies:
- dependency-name: me.champeau.jmh
  dependency-version: 0.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 09:52:16 +02:00
dependabot[bot]
6b00ab2623 build(deps): bump com.google.cloud:libraries-bom from 26.60.0 to 26.61.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.60.0 to 26.61.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.60.0...v26.61.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.61.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 09:51:55 +02:00
Malaydewangan09
2aa5b1e236 feat(plugins): add plugins InfluxDB, Jenkins, Ollama, GraphQL 2025-05-26 09:31:31 +02:00
Ludovic DEHON
67c2ac8d01 feat(plugins): add allowedResponseCodes on http tasks
close #8973
2025-05-26 09:26:47 +02:00
github-actions[bot]
eb4de0530e chore(core): localize to languages other than english (#8964)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-24 11:55:49 +02:00
Barthélémy Ledoux
d7a420474f feat(ui): make trigger conditions in no-code a form (#8859) 2025-05-24 00:31:22 +02:00
Piyush Bhaskar
3de436cb8b feat(core): improve the ux of no code editor (#8955) 2025-05-23 19:54:15 +02:00
Florian Hussonnois
e46d4ed7ef fix(flows): adjust plugin doc to match the specified plugin version
Related-to: kestra-io/kestra-ee#3528
Related-to: kestra-io/ui-libs#496
2025-05-23 17:46:33 +02:00
github-actions[bot]
5994ffa74c chore(core): localize to languages other than english (#8961)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-23 17:15:50 +02:00
Roman Acevedo
c98911c394 refactor(core): regroup Test and Beta badges with same component 2025-05-23 17:02:09 +02:00
Nicolas K.
29c3bd7dec fix(core): tenant migration scripts now update keys
* chore(core): add keyboard shortcuts icon to flow editor tab (#8925)

fix(core): don't send empty operations when migrating roles (#3807)

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>

* fix(core): migrate key that required tenant id to avoid duplication

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-23 16:44:53 +02:00
Roman Acevedo
2601df3de2 feat(tests): add a contextual Test badge on Execution topbar
fixes https://github.com/kestra-io/kestra-ee/issues/3812
2025-05-23 16:36:16 +02:00
Roman Acevedo
16ea41caa3 feat(tests): add ERROR state and handling
fixes #3804

* feat(tests): display errors in UI test results
2025-05-23 16:09:25 +02:00
Miloš Paunović
246892af29 fix(core): amend autocompletion in multi panel yaml flow editor (#8956)
Closes https://github.com/kestra-io/kestra/issues/8796.
2025-05-23 14:59:09 +02:00
Miloš Paunović
7de5002166 feat(core): save individual namespace files from multi panel editor (#8930)
Closes https://github.com/kestra-io/kestra/issues/8923.
2025-05-23 12:56:12 +02:00
Loïc Mathieu
1a4bb04258 fix(system): rename flyway migrations
They have been renamed in develop due to clashes but one was already backported on 0.22.

Fixes https://github.com/kestra-io/kestra-ee/issues/3819
2025-05-23 11:42:21 +02:00
YannC
88fa884e26 fix(filters): change label filtering to 'and' instead of 'or' (#8661)
* fix(filters): change label filtering to 'and' instead of 'or'

link to #8489

* test(execution): add test to validate and behavior

* test(execution): fix test
2025-05-23 11:26:46 +02:00
Florian Hussonnois
99a6d7533c fix(build): exclude jmh-benchmark module 2025-05-23 11:22:21 +02:00
Miloš Paunović
2c944612f3 fix(core): prevent multiple tabs for adding tasks to create duplicate entries (#8916)
Closes https://github.com/kestra-io/kestra/issues/8781.
Closes https://github.com/kestra-io/kestra/issues/8926.
2025-05-23 09:07:59 +02:00
Miloš Paunović
dc8095b6a2 fix(core): filter the inputs with no id field to prevent breaking of panel (#8944)
Closes https://github.com/kestra-io/kestra/issues/8932.
2025-05-23 08:57:26 +02:00
brian-mulier-p
84310e82e2 fix(system): force a state after kill (#8937)
closes #8936
2025-05-22 19:04:35 +02:00
Loïc Mathieu
ca652a1e96 fix(plugins)*: ForEach executes task in the wrong order when no concurrency limit
Fixes #8904
2025-05-22 17:53:35 +02:00
Miloš Paunović
625478cfb1 chore(core): add keyboard shortcuts icon to flow editor tab (#8925) 2025-05-22 15:37:10 +02:00
YannC
228359c661 test: avoid FileChangedEventListenerTest being flaky (#8810) 2025-05-22 11:38:25 +02:00
Florian Hussonnois
770a703482 feat(system): optimize MapUtils for merge
Optimize merge method by removing use of
java stream
2025-05-22 09:46:54 +02:00
Florian Hussonnois
55740133f0 chore(test): add module for jmh benchmarks 2025-05-22 09:46:54 +02:00
Loïc Mathieu
593aad2aea feat(system): don't compute empty task outputs
The method to compute task output is costly and can be avoided if there are no outputs.
2025-05-22 09:25:11 +02:00
Loïc Mathieu
a179f17dc6 feat(system): don't clone maps when not necessary
This is very cosly as RunVariables are computed each time we create an execution context.
2025-05-22 09:25:11 +02:00
François Delbrayelle
59a6c99fef fix(test): mockTaskRun should be public 2025-05-22 09:20:31 +02:00
Miloš Paunović
769cc28bf0 fix(core): make sure that complex tasks are properly rendered for both inputs and sections (#8902) 2025-05-22 08:30:31 +02:00
Florian Hussonnois
b5aaa6fb38 fix(core): cleanup LogService to always prefix with tenant
Remove use of kestra.ee.tenants.enabled property
2025-05-21 16:18:14 +02:00
brian-mulier-p
1ee60c1075 fix(core): avoid multiple rendering in ForEachItem (#8906)
closes #8905
2025-05-21 16:08:21 +02:00
brian.mulier
a5df187304 fix(plugins): remove "DYNAMIC" log from browser console 2025-05-21 14:53:04 +02:00
YannC
07814abd96 feat(core): added SecurityScheme annotation for openapi spec file generation + add some custom Schema name to avoid duplicated name (#8726) 2025-05-21 14:36:23 +02:00
YannC
2996c885f7 fix(filters): corrected the namespace contains filter (#8653)
close #8498
2025-05-21 14:35:38 +02:00
Loïc Mathieu
0fd8461249 feat(system): use Property.ofValue(T) instead of Property.of(T) 2025-05-21 13:35:35 +02:00
Loïc Mathieu
05d296df34 feat(system): Property.ofValue & Property.ofExpression
Deprecate Property.of(T) in favor of Property.ofValue(T) and new Property(String) in favor of Property.ofExpression(String)
2025-05-21 13:35:35 +02:00
Loïc Mathieu
87d162729e fix(plugins): ForEach must be displayed as a sequential
As the tasks inside each task group are executed sequentially, groups are executed concurrently not tasks inside them.

Part-of: https://github.com/kestra-io/kestra-ee/issues/3722
2025-05-21 13:28:52 +02:00
dependabot[bot]
e4ec427409 build(deps): bump posthog-js from 1.245.0 to 1.245.1 in /ui (#8900)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.245.0 to 1.245.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/v1.245.0...v1.245.1)

---
updated-dependencies:
- dependency-name: posthog-js
  dependency-version: 1.245.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-21 12:52:17 +02:00
Miloš Paunović
14d6ad5e0d fix(core): filter deprecated properties from optional ones in no code editor (#8896) 2025-05-21 12:51:21 +02:00
Miloš Paunović
341f10a237 chore(deps): regular dependency update (#8895)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-05-21 12:39:43 +02:00
Florian Hussonnois
fb4b1c842a fix(core): fix misc APIs with main tenants
Fix unit-tests
2025-05-21 12:24:09 +02:00
Florian Hussonnois
e3c4f0e502 fix(core): fix rooting to main tenant for configs endpoint 2025-05-21 09:15:24 +02:00
Florian Hussonnois
caf701a1c4 fix(system): remove main tenant from api/v1/configs 2025-05-20 18:57:01 +02:00
Nicolas K.
8821705a06 test(controller): add logs to understand why the test fail (#8858)
* test(controller): add logs to understand why the test fail

* test(controller): add logs to make sure the executions are running

* test(controller): add logs to make sure the executions are running

* test(controller): add logs to make sure the executions are running

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-20 16:55:42 +02:00
Piyush Bhaskar
0723565d99 fix(core): center last step in tour and add Finish animation (#8862)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-05-20 19:09:21 +05:30
github-actions[bot]
15759b8054 chore(core): localize to languages other than english (#8864)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-20 14:15:15 +02:00
Miloš Paunović
bdd0c675b8 chore(core): add group for deprecated properties in the no code editor (#8863)
Closes https://github.com/kestra-io/kestra/issues/7207.
2025-05-20 13:59:14 +02:00
github-actions[bot]
a51e4e240a chore(core): localize to languages other than english (#8861)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-20 13:04:40 +02:00
Piyush Bhaskar
8e8bf8e304 fix(core): tweak product tour flow listing (#8860)
Closes https://github.com/kestra-io/kestra/issues/8366.
2025-05-20 13:02:31 +02:00
Roman Acevedo
d3228b27b7 feat(tests): add fixtures to results 2025-05-20 11:35:15 +02:00
Barthélémy Ledoux
f293f9d849 fix(ui): nocode should allow to delete on click on bin (#8712)
* refactor: remove SECTIONS from local constants

* fix(ui): make delete button work for section, errors & tasks

* fix: allow delete of error, finally and afterexec

* fix: allow deleting fro any section

* use updated YAML_UTILS

* fix keyname usage

* update ui-libs for yaml utils

* fix: delete all tasks and keep order in creation

* chore: update ui-libs
2025-05-20 11:15:35 +02:00
Barthélémy Ledoux
cbf1a9823f fix(ui): update basePath to include 'main' tenant in api urls (#8856) 2025-05-20 10:41:00 +02:00
brian-mulier-p
1a7ccb97bf fix(plugins): show back if property is dynamic (#8846)
closes kestra-io/ui-libs#471
2025-05-20 10:28:11 +02:00
Loïc Mathieu
c9421879c8 fix(system): use a concurrent list to possibly fix the flaky test 2025-05-20 09:43:48 +02:00
Loïc Mathieu
b0f93e1945 chore(system): skip sleep in the JdbcQueue when at max poll size
When a queue is at max poll size, this means that it is at full capacity. In this case skip the sleep and process immediatly the next batch of message.
This improve latency at high thoughput without adding too much load to the database.

We can even go further by skipping sleep each time the poll returns messages but this would imply database cost so for now we balance performance and database cost by only skipping sleep when at max capacity.
2025-05-20 09:43:15 +02:00
Nicolas K.
4b228c966c fix(server): port changed during the redirection when no tenant id in uri (#8854)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-19 19:16:15 +02:00
Daniel Rivas
d755123087 feat(namespaces): Namespace search case insensitivity (#8717)
* Fix: Changed the namespace parsing so that it parses the NAMESPACE_FIELD case-insensitively

* Fix indentation issues
2025-05-19 18:18:34 +02:00
Bala Aparna
5fd9c21ef4 test(plugins): add code coverage to plugin command CLI (#8829)
Added test cases for:

Listing all available subcommands in the PluginCommand CLI help output.
Verifying that external plugins are not loaded by default in PluginCommand.

Updated existing tests for:

Enhanced help output validation to check for the presence of all expected subcommands/ 
Explicitly asserted the behavior of the loadExternalPlugins() method.

Ensured coverage for:

Edge cases where subcommands might be missing from the help output.
Input variants by directly invoking the command and capturing CLI output.
Error handling by confirming correct CLI configuration and plugin loading behavior.
2025-05-19 18:17:30 +02:00
Florian Hussonnois
eede188b38 fix(system): handle storage version in storage interface factory
Related-to: kestra-io/kestra-ee#3302
2025-05-19 18:05:10 +02:00
Anna Geller
f7fbf232cf feat(docker)!: remove non-critical dependencies (#8853) 2025-05-19 17:33:12 +02:00
Nicolas K.
734fcbc45b feat(core): #3427 add OSS tenant migration scripts (#8798)
* feat(core): #3427 add OSS tenant migration scripts

* clean(core): fixes after review

* clean(core): make only one command for oss and EE migration

* fix(core): user synchronisation command and clean PR

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-19 16:42:59 +02:00
Miloš Paunović
9cdc3c54a3 fix(core): make sure that complex tasks are properly rendered (#8848)
Closes https://github.com/kestra-io/kestra/issues/8119.
2025-05-19 15:01:20 +02:00
Karuna Tata
a73c45a802 change label color to white (#8850) 2025-05-19 18:28:34 +05:30
Nicolas K.
11a7e68e93 feat(core)!: make tenant id required (#8460)
* feat(core)!: WIP make tenant id required

* feat(core)!: WIP make tenant id required

* test(core)!: WIP fix storage unit test

* build(deps): bump com.google.guava:guava from 33.4.7-jre to 33.4.8-jre

Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.4.7-jre to 33.4.8-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-version: 33.4.8-jre
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump io.micronaut.platform:micronaut-platform

Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.8.0 to 4.8.2.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.8.0...v4.8.2)

---
updated-dependencies:
- dependency-name: io.micronaut.platform:micronaut-platform
  dependency-version: 4.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump flyingSaucerVersion from 9.11.6 to 9.12.0

Bumps `flyingSaucerVersion` from 9.11.6 to 9.12.0.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.11.6 to 9.12.0
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.6...v9.12.0)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.11.6 to 9.12.0
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.6...v9.12.0)

---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 9.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 9.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump software.amazon.awssdk:bom from 2.31.21 to 2.31.25

Bumps software.amazon.awssdk:bom from 2.31.21 to 2.31.25.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump com.github.oshi:oshi-core from 6.8.0 to 6.8.1

Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.8.0 to 6.8.1.
- [Release notes](https://github.com/oshi/oshi/releases)
- [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.8.0...oshi-parent-6.8.1)

---
updated-dependencies:
- dependency-name: com.github.oshi:oshi-core
  dependency-version: 6.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump org.opensearch.client:opensearch-java

Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/opensearch-project/opensearch-java/releases)
- [Changelog](https://github.com/opensearch-project/opensearch-java/blob/v2.23.0/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/opensearch-java/compare/v2.22.0...v2.23.0)

---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-java
  dependency-version: 2.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump co.elastic.logging:logback-ecs-encoder

Bumps [co.elastic.logging:logback-ecs-encoder](https://github.com/elastic/ecs-logging-java) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/elastic/ecs-logging-java/releases)
- [Commits](https://github.com/elastic/ecs-logging-java/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: co.elastic.logging:logback-ecs-encoder
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* tests(system): isolate SchedulerScheduleTest tests with tenantId

* Feat/storage outputs (#8361)

* feat(executions): Store outputs inside the internal storage (1/2)

* feat(executions): Store outputs inside the internal storage (2/2)

* feat(test): allow passing tenantId to tests

---------

Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>

* chore(deps): regular dependency update (#8484)

Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.

* fix(ui): full view height for single task logs (#8042)

Co-authored-by: Miloš Paunović <paun992@hotmail.com>

* feat: synchronize task edition with editor (#8433)

* fix(controls): adjust bottom position of contorls in multiPanelsEditor (#8465)

* fix(executions): unqueing execution must remove the execution queued

When an execution is queued in the JDBC backend, a record is inserted inside the execution_queued table, we must remove this record when we unqeue an execution.

Fixes #8448

* chore(core): localize to languages other than english (#8485)

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>

* tests(webserver): fix flaky test which could query previous tests tasks

* tests(system): debug flaky error of shouldPauseExecutionByQueryRunningFlows

* tests(system): debug flaky error of shouldPauseExecutionByQueryRunningFlows

* tests(system): try with different task id

* tests(system): bump sleep-short sleep time to 10s

* fix(execution)*: decode and hide nested inputs of type SECRET

Fixes #7964

* refactor(core): pass the dynamic concurrency schema to no code editor (#8488)

There was an issue with passing hard-coded concurrency schema to be rendered in No Code editor, which is now amended and we're passing down the previously fetched one

* chore(deps): update gradle version

* doc(basic.md): add link to configuration for kestra property variables (#8490)

* fix(flows): properly check average duration for dashboard graphs (#8457)

There was a problem on flows view with the main chart not showing proper data until user clicks on duration toggle.

Closes https://github.com/kestra-io/kestra/issues/8435.
Closes https://github.com/kestra-io/kestra-ee/issues/3499.

* docs(core-pause): update pauseDuration properties, titles, descriptions (#8495)

* fix(system): restrict the JdbcConcurrencyLimitService to the JDBC runner

* fix(core): fix indexer metric description (#8500)

* Add examples with expression and trimmed values (#6154)

* chore(ui): improvement to drilldown for Default and Custom Charts. (#7885)

* chore(ui): improvement to drilldown for Default and Custom Charts.

* minor tweak

* test: fix the Barchart stories to test drilldown

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>

* fix(ui): restart trigger position for backfill column (#8246)

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>

* feat(plugin): add a way to provide additional type of plugins

Provide a way for plugins to define a new type of plugins.
To do that, a plugin must provide both an abstract base class that extends AdditionalPlugin and a set of concret classes.
Both the abstract base class and the concrete classes mut be inside the same plugin. This is a limitation that we may work on later by providing, for example, an SPI to add base classes to the application classloader.

* fix(ui): save existing flow after making changes (#8378)

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>

* fix(core): failing DocumentationGeneratorTest.returnDoc()

* chore(core): refactor  component to composition API  structure and with some styling (#8504)

* feat(flows): add validation for use of inputs and outputs with '-' in the name (#8379)

* test(core): fix breaking change in local flow repository (#8517)

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>

* feat(system)!: remove the SQLServer runner

Part-of: https://github.com/kestra-io/kestra-ee/issues/3504

* chore(build): add Postgres stat extension

* feat(plugins): add Langchain4J plugins

* chore(system): add warn log when emit logQueue failed (#8432)

* feat(plugins): add Go Script plugin

* fix(jdbc): add service_id index on service_instance table

* chore(flows): improve the blueprints view within the flow editing panels (#7983)

Changes here consist of removing the tags from blueprint view on Multi Panel flow editor, along with couple of other UI improvements.

Closes https://github.com/kestra-io/kestra/issues/7881.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>

* fix(flows): properly load blueprints in multi panel view (#8524)

While using the new Multi Panel view blueprints were not loading properly due to wrong paramtere being sent to action. now that's sorted.

Closes https://github.com/kestra-io/kestra/issues/8523.

* feat(flows): improve the display of array inputs when running an execution (#7953)

This PR is introducing a change of how the `array` inputs are displayed inside the flow run dialog, to be more user-friendly.

Closes https://github.com/kestra-io/kestra/issues/6947.

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>

* fix(system): change default config values for liveness

Change kestra.server.liveness.interval from 5s to 10s
to be less agressive on liveness check. Align
other default liveness configs with kafka implementation.

* fix(ui): amend Absolute date filter's looks (#8501)

* chore(core): localize to languages other than english (#8528)

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>

* docs(flow-trigger): add note about no Pebble in conditions

* fix(ui): remove parts of filter using backspace (#8105)

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>

* fix(ui): open link in markdown in other tab. (#8258)

* fix(ui): open link in markdown in other tab.

* chore(core): restrict attribute to external links.

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>

---------

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>

* fix(system): load OpenTelemetry lib in the app classloader

Without that, as we have it here, plugins may have class loading issue if they use OpenTelemetry internally (like in the Elasticsearch client).

* feat(ui): Add search in internal docs (#8458)

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>

* fix(triggers): inject default later inside the Scheduler

Today, as they are injected eagerly, they are done even if no trigger exists.
This is counter-performant, and in case the flow is an error will log each seconds.
Doing it a little later will be better.

* build(deps): bump software.amazon.awssdk:bom from 2.31.25 to 2.31.30

Bumps software.amazon.awssdk:bom from 2.31.25 to 2.31.30.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.30
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump org.wiremock:wiremock-jetty12 from 3.12.1 to 3.13.0

Bumps [org.wiremock:wiremock-jetty12](https://github.com/wiremock/wiremock) from 3.12.1 to 3.13.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.12.1...3.13.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-jetty12
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump jacksonVersion from 2.18.3 to 2.19.0

Bumps `jacksonVersion` from 2.18.3 to 2.19.0.

Updates `com.fasterxml.jackson:jackson-bom` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.18.3...jackson-bom-2.19.0)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.18.3...jackson-core-2.19.0)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-parameter-names` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-modules-java8/compare/jackson-modules-java8-2.18.3...jackson-modules-java8-2.19.0)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-yaml` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.18.3...jackson-dataformats-text-2.19.0)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-smile` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.18.3...jackson-dataformats-binary-2.19.0)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-cbor` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.18.3...jackson-dataformats-binary-2.19.0)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-ion` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformat-ion/commits)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.18.3...jackson-dataformat-xml-2.19.0)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-guava` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-datatypes-collections/compare/jackson-datatypes-collections-2.18.3...jackson-datatypes-collections-2.19.0)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.18.3 to 2.19.0

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jdk8` from 2.18.3 to 2.19.0

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.module:jackson-module-parameter-names
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-smile
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-cbor
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-ion
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-xml
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-guava
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(execution): update display names for executions. (#8527)

* fix(core): change incorrectly used search parameter (#8534)

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>

* fix(ui): set isCreating to false when opening flow edit mode (#8549)

* fix(core): safely access section and identifier query params (#8542)

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>

* fix(ui): update storybook editor tests with provided keys (#8550)

Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>

* chore(core): localize to languages other than english (#8554)

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>

* fix(triggers): amend broken filtering on triggers tab (#8553)

There was a problem with both namespace and state filters on Triggers page which is now properly sorted.

Closes https://github.com/kestra-io/kestra/issues/8529.

* chore: attempt to fix flaky tests (#8537)

SingleFlowCommandsTest:

The flow Delete -> Create -> Update sequence is weird - delete got HTTP 404.
Reworked to Create -> Update -> Delete sequence.

PurgeLogsTest:

The log repository contained the prepared single entry but also might
contain additional entries from previously logged messages.

* fix(namespaces): namespaceFiles with same name are wrongly overwritten (#8562)

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>

* feat(core): forward execution labels in Flow Trigger

* chore(triggers)*: properly handle switches for triggers disabled from within flow source (#8106)

It was not clear as to which trigger can not be enabled and why. Now, that is much more clear with the proper tooltips and disabling of switch toggling.

Closes https://github.com/kestra-io/kestra/issues/8011.
Closes https://github.com/kestra-io/kestra/issues/5736.

* fix(executions): fix execution failure due to UnsupportedOperationException (#8563)

Fix: #8563

* chore(core): localize to languages other than english (#8568)

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>

* feat(system): add TestSuite model,taskFixture impl

* fix: redirect to edit when saving new flow (#8560)

Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>

* feat(system)*: decrease defaut JDBC queue poll size

Decreasing it from 100 to 50 didn't show any performance hit but should lower the memory consumption now that we process the queue concurrently in the executor.

## BEFORE - pollSize=100
- 10 tx/s: 150ms
- 25 tx/s: 200ms
- 50 tx/s: 300ms
- 75 tx/s: 5.2s
- 100 tx/s: 15s

## AFTER - pollSize=50
- 10 tx/s: 150ms
- 25 tx/s: 200ms
- 50 tx/s: 300ms
- 75 tx/s: 4.8s
- 100 tx/s: 14s

* feat(flows): Allow to define an onPause task on the Pause task

The onPause task will be executed immediatly when the execution is paused.
Part-of: #3601

* feat(core)!: WIP make tenant id required

* feat(core)!: WIP make tenant id required

* Feat/storage outputs (#8361)

* feat(executions): Store outputs inside the internal storage (1/2)

* feat(executions): Store outputs inside the internal storage (2/2)

* feat(test): allow passing tenantId to tests

---------

Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>

* tests(webserver): fix flaky test which could query previous tests tasks

* feat(executions): Add workerId to each worker task attemps

Closes #7799

* Feat/storage outputs (#8361)

* feat(executions): Store outputs inside the internal storage (1/2)

* feat(executions): Store outputs inside the internal storage (2/2)

* feat(test): allow passing tenantId to tests

---------

Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>

* wip(core): fix unit tests

* test(core): fix unit tests

* test(core): fix unit tests

* test(core): fix unit tests

* feat(core): make tenant id required everywhere

* feat(core): make tenant required in create user command

* feat(core): clean the PR

* feat(core): add tenant id to dashboard controller

* fix(core): tests after merging

* clean(core): fixes after review

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: AJ Emerich <aemerich@kestra.io>
Co-authored-by: ben8t <46634684+Ben8t@users.noreply.github.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: Satvik Kushwaha <59243339+satvik2131@users.noreply.github.com>
Co-authored-by: Karuna Tata <karuna.tata@devrev.ai>
Co-authored-by: Hashim Khalifa <105060840+hashimzs@users.noreply.github.com>
Co-authored-by: lwyang <1670906161@qq.com>
Co-authored-by: 杨利伟 <yangliwei@xiaomi.com>
Co-authored-by: Florian Hussonnois <fhussonnois@kestra.io>
Co-authored-by: yuri <1969yuri1969@gmail.com>
Co-authored-by: AJ Emerich <aj-emerich@proton.me>
Co-authored-by: rajatsingh23 <48049052+rajatsingh23@users.noreply.github.com>
2025-05-19 14:49:10 +02:00
Karuna Tata
05e348370f ui(fix): change namespace hover to white (#8842)
* change namespace hover to white

* fix
2025-05-19 17:24:16 +05:30
Piyush Bhaskar
84a6d09945 chore(core): fix import (#8845) 2025-05-19 15:58:32 +05:30
Roman Acevedo
b5cc011914 build: influxdb and graphql not available yet 2025-05-19 11:34:03 +02:00
dependabot[bot]
174e3f85b1 build(deps): bump org.sonarqube from 6.1.0.5360 to 6.2.0.5505
Bumps org.sonarqube from 6.1.0.5360 to 6.2.0.5505.

---
updated-dependencies:
- dependency-name: org.sonarqube
  dependency-version: 6.2.0.5505
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 10:49:32 +02:00
dependabot[bot]
ba5890f5d0 build(deps): bump io.micrometer:micrometer-core from 1.14.6 to 1.15.0
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.14.6 to 1.15.0.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.14.6...v1.15.0)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 10:47:39 +02:00
Florian Hussonnois
86f0b23cde build: update release-plugin script to set kestra version for plugins
Related-to: kestra-io/kestra-ee#3348
2025-05-19 10:36:50 +02:00
Roman Acevedo
ded5a932e0 chore(tests): add tests icon to tests list view 2025-05-19 10:30:25 +02:00
Roman Acevedo
69037d00c9 feat(tests): improve empty page 2025-05-19 10:30:25 +02:00
Piyush Bhaskar
74b425250c feat(core): change selection to tab and remove display of type and tooltip. (#8805)
* feat(core): replace select with tabs for schema selection.

* feat(core): change selection to tab and remove display of type and tooltip.

* fix: remove obsolete component and add class.

* chore(core): task enclosed under a border.

* fixes enclosed border only for anyOf type

---------

Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
2025-05-19 13:39:52 +05:30
Loïc Mathieu
75ff7d86c5 fix(system): use the minPollInterval when the last poll is beyond all interval
As beyond all interval means it's less than the first interval so we should wait for the minimum not the maximum
2025-05-19 10:07:36 +02:00
dependabot[bot]
1186a8db46 build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.2 to 0.38.3.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.2...v0.38.3)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 09:55:31 +02:00
dependabot[bot]
cc95c4a80b build(deps): bump software.amazon.awssdk:bom from 2.31.40 to 2.31.45
Bumps software.amazon.awssdk:bom from 2.31.40 to 2.31.45.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.45
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 09:55:13 +02:00
dependabot[bot]
232194dcba build(deps): bump com.github.docker-java:docker-java from 3.5.0 to 3.5.1
Bumps [com.github.docker-java:docker-java](https://github.com/docker-java/docker-java) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/docker-java/docker-java/releases)
- [Changelog](https://github.com/docker-java/docker-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/docker-java/docker-java/compare/3.5.0...3.5.1)

---
updated-dependencies:
- dependency-name: com.github.docker-java:docker-java
  dependency-version: 3.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 09:54:56 +02:00
Barthélémy Ledoux
8a36ddd184 fix: update topology when no-code changes (#8822)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-05-19 09:44:44 +02:00
Barthélémy Ledoux
251802570c fix: restore multipanle bottom of panels (#8823) 2025-05-19 09:44:23 +02:00
Piyush Bhaskar
c90590582e feat(flows): Actions for Flow Navbar (#8838) 2025-05-19 12:44:21 +05:30
Miloš Paunović
3d0c63027a chore(core): remove console warning due to deprecated property (#8819) 2025-05-19 08:55:30 +02:00
brian-mulier-p
2043c81fea fix(plugins): add back metrics to plugin docs (#8826)
closes #8792
2025-05-16 19:55:44 +02:00
brian-mulier-p
5a78cdde12 fix(plugins): type and type-defining properties are now readonly (#8820)
closes #8818
2025-05-16 18:25:06 +02:00
Loïc Mathieu
30b39b2d30 feat(execution): add an execution kind
This allow to differentiate between normal executions and test executions
2025-05-16 17:00:27 +02:00
Miloš Paunović
c9a277d4d5 fix(core): properly handle input creation/updating via no code editor (#8787) 2025-05-16 14:30:28 +02:00
Piyush Bhaskar
bc0f24f22a fix(core): fixes change in theme aligned with selection in setttings. (#8815) 2025-05-16 16:37:58 +05:30
gluttonweb
a856654acb Update core/src/main/java/io/kestra/core/schedulers/AbstractScheduler.java
Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
2025-05-16 11:43:41 +02:00
weibo1
2c53a210d7 feat: Performance optimization for handle() method: Filter out executions with non-null next_execution_date in the query method, start a separate scheduled thread for scanning, reporting metrics and logging 2025-05-16 11:43:41 +02:00
Loïc Mathieu
476f34e986 feat(system): change the way we concurrently process executor queues
Instead of consuming multiple time the queue, which lead to concurrent queries on the `queues` table, process concurrently via an ExecutorService the messages from the queue.
We dind't process a new batch of messages until the existing one is totally process to be sure we process in FIFO the same execution message.

Also, go back to a poll size of 100 to mitiguate the performance hit due to this change.
2025-05-15 17:03:34 +02:00
Loïc Mathieu
a8e826af7d fix(system)*: reset the trigger into the KafkaScheduler instead of the ExecutorMain 2025-05-15 17:02:44 +02:00
Barthélémy Ledoux
2a9a926ea3 chore: the code is now in ui-libs delete the duplicate yaml-utils test (#8799) 2025-05-15 15:32:10 +02:00
Florian Hussonnois
59e631f048 fix(plugins): properly handle POSIX permissions for Docker task runner
Set POSIX file permissions when uploading/download working-dir files
from and to Docker container
2025-05-15 15:19:40 +02:00
Nicolas K.
09d91034ab test(server): fix time range unit test (#8802)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-05-15 15:00:32 +02:00
Loïc Mathieu
3639abb8bb chore(system): improve performance of IdUtils.fromParts()
Surprisingly, this method appear in some CPU and allocation profile as having a high cost, especially on the scheduler.
Switching to using a StringJoiner brings 4x perf improvements in method execution time (great improvement also on allocation but didn't have a measurement).
2025-05-15 14:07:47 +02:00
Loïc Mathieu
2d5d4b7c1d chore(system): mask Caffeine metrics log
As it's not an error and we cannot do anything if we don't want metrics (which cost) but want to hide that log.
2025-05-15 14:05:25 +02:00
Miloš Paunović
171272ac4b refactor(deps): revert monaco-yaml upgrade due to patch on previous version (#8797) 2025-05-15 11:18:28 +02:00
Malaydewangan09
3c5975f4b3 feat(plugins): add InfluxDB, GraphQL plugins 2025-05-15 09:11:40 +02:00
Loïc Mathieu
f6b7dbd653 fix(core): flaky test ExecutionServiceTest.replayEachSeq or replayEachSeq2
One of the two is failing pretty often, using @ExecuteFlow instead of @LoadFlow seems to make them non-flaky.
We can also remove the second ad those are duplicated test but maybe the person that duplicate it has some reason...
2025-05-14 18:24:50 +02:00
Piyush Bhaskar
ab9551aada feat(core): Embed videos directly on EE-feature teasers. (#8790)
* feat(demo): add video support to various demo components and enhance layout

* update video sources

* feat(core): Embed videos directly on EE-feature teasers.
2025-05-14 19:29:08 +05:30
Miloš Paunović
6642df4756 refactor(deps): revert monaco-yaml upgrade due to patch on previous version (#8791) 2025-05-14 15:53:39 +02:00
Roman Acevedo
e3fa5b7df1 fix(tests): assertions with numbers 2025-05-14 15:36:26 +02:00
Roman Acevedo
fca529a908 feat(tests): rename testsuite to tests in UI,API 2025-05-14 15:36:26 +02:00
YannC
dd29e7521f fix(filters): allows to filter using is not for relative date filter (#8659)
link to #8494
2025-05-14 15:29:49 +02:00
Miloš Paunović
e7129b1024 fix(core): check for schema existence on no code input editing (#8775) 2025-05-14 13:59:53 +02:00
Barthélémy Ledoux
dff9fec74c fix: allow retry edition in no-code (#8770)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-05-14 13:34:55 +02:00
Miloš Paunović
c898da3aa3 fix(core): make no code breadcrumb clickable only in legacy mode (#8776) 2025-05-14 13:34:08 +02:00
Miloš Paunović
c517985c80 chore(deps): regular dependency update (#8774)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-05-14 11:18:14 +02:00
Miloš Paunović
b8fb39c67e refactor(core): remove obsolete node script (#8773) 2025-05-14 11:06:31 +02:00
Miloš Paunović
32358c787a chore(plugins): hide deprecated plugins from plugin select options (#8744)
Closes https://github.com/kestra-io/kestra/issues/7205.
2025-05-14 10:39:02 +02:00
Piyush Bhaskar
bbcd377257 feat(core): replace task array option selection design (#8699)
Closes https://github.com/kestra-io/kestra/issues/8694.
2025-05-14 09:14:11 +02:00
Loïc Mathieu
df70618b91 feat(system): use the FlowMetaStore instead of the FlowRepository inside the Executor 2025-05-13 17:15:36 +02:00
Roman Acevedo
58fcd0a18d feat(system): add TestSuite run and assertions
feat(system): add assertions for TestSuites

feat(system): allow isNull and other assertion

feat(system): return a default error message
2025-05-13 16:54:31 +02:00
brian.mulier
79242f9e22 tests(executions): remove flakiness on some tests around sleep 2025-05-13 16:07:10 +02:00
brian.mulier
925169c474 fix(executions): avoid to stop following execution too early leading to UI display shifting from actual state (#8718)
part of kestra-io/kestra-ee#3526
2025-05-13 16:07:10 +02:00
Miloš Paunović
cf206e0b08 chore(core): properly handle topology action clicks while using multi panel editor (#8705)
Closes https://github.com/kestra-io/kestra/issues/7804.
Closes https://github.com/kestra-io/kestra/issues/8275.
2025-05-13 15:56:20 +02:00
Miloš Paunović
6156af2969 fix(core): showing properties of any-of tasks (#8748) 2025-05-13 15:51:01 +02:00
Barthélémy Ledoux
9b12079ca4 fix(namespaces): use the right route param to get namespace files (#8747) 2025-05-13 15:45:00 +02:00
Barthélémy Ledoux
dbb7761104 fix(ui): legacy editor iew no-code does not need creatintask flag (#8742) 2025-05-13 13:39:53 +02:00
Miloš Paunović
e616aa525c chore(flows): remove unnecessary section about keyboard shortcuts from flow basic documentation (#8745)
Closes https://github.com/kestra-io/kestra/issues/7065.
2025-05-13 13:27:00 +02:00
Ludovic DEHON
5e4253ec84 fix(core): some logs can emits null message 2025-05-13 07:34:38 +02:00
github-actions[bot]
2bfdca389f Translations from en.json (#8734)
* chore(core): localize to languages other than english

Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

* Apply suggestions from code review

---------

Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
2025-05-12 17:39:49 +02:00
Barthélémy Ledoux
a213a90bbe feat(ui): treat the pluginsdefaults as a section (#8731) 2025-05-12 16:59:12 +02:00
Loïc Mathieu
5c060b5c39 fix(plugins)*: don't cache the condition property inside the If task
Doing that, causes an issue if the If task is used inside a ForEach with a concurrencyLimit > 1.

Fixes #8697
2025-05-12 16:31:44 +02:00
AJ Emerich
ffdebf3f4c docs(docker): update title and description of docker kill grace period property (#8733)
Part of https://github.com/kestra-io/kestra-ee/issues/3625
2025-05-12 14:40:18 +01:00
AJ Emerich
52931769f9 docs(http): update SSL options property with note 2025-05-12 13:46:16 +02:00
dependabot[bot]
625e78375f build(deps): bump com.google.cloud:libraries-bom from 26.59.0 to 26.60.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.59.0 to 26.60.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.59.0...v26.60.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.60.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 11:56:16 +02:00
dependabot[bot]
c8c649cb75 build(deps): bump net.thisptr:jackson-jq from 1.2.0 to 1.3.0
Bumps [net.thisptr:jackson-jq](https://github.com/eiiches/jackson-jq) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/eiiches/jackson-jq/releases)
- [Commits](https://github.com/eiiches/jackson-jq/compare/1.2.0...1.3.0)

---
updated-dependencies:
- dependency-name: net.thisptr:jackson-jq
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 11:28:57 +02:00
dependabot[bot]
2c1ea4e1c7 build(deps): bump software.amazon.awssdk:bom from 2.31.35 to 2.31.40
Bumps software.amazon.awssdk:bom from 2.31.35 to 2.31.40.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.40
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 11:26:13 +02:00
dependabot[bot]
5e08c7dd50 build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.38.1 to 0.38.2.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.38.1...v0.38.2)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 11:24:53 +02:00
Loïc Mathieu
13d86c41ea feat(plugins)!: kill the Docker container on kill
And allow configuring a grace period.

Fixes https://github.com/kestra-io/kestra-ee/issues/3625
Part-of: https://github.com/kestra-io/kestra-ee/issues/3526
2025-05-12 11:22:09 +02:00
Loïc Mathieu
a117634348 feat(system): add metrics for Worker Job resubmission
Part-of: https://github.com/kestra-io/kestra/issues/8341
2025-05-12 11:06:16 +02:00
Barthélémy Ledoux
7262ebe616 fix(ui): nocode save /close button is now smaller (#8713) 2025-05-09 22:47:48 +02:00
Florian Hussonnois
2792fa4535 fix(core): allow scalar-to-string concatenation in typed task property
Enable concatenation of arbitrary scalar values (e.g., numbers, booleans)
into a string when setting a typed plugin property expecting a single value:
e.g., the `value` property of the `io.kestra.plugin.core.kv.Set` task.

Fix: kestra-io/kestra-ee#3570
2025-05-09 17:50:52 +02:00
Florian Hussonnois
e6e9803c4a fix(system): avoid catching JVM fatal error on Worker
Re-throw VirtualMachineError when an exception is catched
from a worker task ensuring, for example, that OOM are
correctly propagated.
2025-05-09 17:38:18 +02:00
Barthélémy Ledoux
cf91ca2baf fix(ui): update breadcrumb click behavior in legacy (#8709) 2025-05-09 15:53:31 +02:00
Barthélémy Ledoux
c11af3fa9d fix: make settings menu proper links (#8710)
* fix: make settings menu proper links

* chore(core): remove bg on select's header

---------

Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-05-09 17:34:59 +05:30
Miloš Paunović
f980a6850b fix(namespaces)*: send proper parameter for namespace on file creation/update (#8706)
There was a problem with sending the non-existing parameter to `vuex` action for creation/update of namespace files. Now that's sorted.

Closes https://github.com/kestra-io/kestra-ee/issues/3567.
2025-05-09 13:02:38 +02:00
Miloš Paunović
bc09676a57 chore(flows): make flow validation a bit less aggressive (#8700)
Flow was being validate with a throttle of `500ms`, which was too aggressive. Now it's increased to `2000ms`.

Closes https://github.com/kestra-io/kestra-ee/issues/3627.
2025-05-08 10:37:07 +02:00
github-actions[bot]
faa6f8fc71 chore(core): localize to languages other than english (#8690)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-07 13:10:33 +02:00
Loïc Mathieu
e0af7e824b fix(core): flaky test RunContextLoggerText.logs()
Wait a little longuer by default for logs to avoid too much flakyness.
2025-05-07 12:39:52 +02:00
Loïc Mathieu
e7b72a5d7f feat(system): send task and trigger usage metrics
Fixes https://github.com/kestra-io/kestra-ee/issues/3532
2025-05-07 12:39:14 +02:00
Loïc Mathieu
fcc1fcb799 chore(system): rename FlowExecutorInterface to FlowMetaStoreInterface
Part-of: https://github.com/kestra-io/kestra-ee/issues/3474
2025-05-07 12:36:52 +02:00
Roman Acevedo
ee444bef30 chore(system): prepare TestSuite ui
advance on CRUD UI for Add unit tests for flows — new tab on the Flows page, runnable from the UI, API or from CI/CD (needs CLI and GitHub Action) kestra-ee#3110

linked to feat(system): add TestSuite list and edit pages kestra-ee#3585
2025-05-07 12:30:46 +02:00
Loïc Mathieu
aecf1dbe07 feat(flows)!: evaluate flow trigger on PAUSED by default
This is a breaking change as existing flow trigger wich didn't filter to any states on conditiosn or preconditions was before triggering executions only on terminal states and will now trigger executions on terminated and paused states.

Fixes https://github.com/kestra-io/kestra-ee/issues/3535
2025-05-07 11:43:15 +02:00
Loïc Mathieu
d13a4e70c7 chore(build): gradle runStandalone 2025-05-07 11:43:03 +02:00
Miloš Paunović
5248e95bd9 chore(deps): regular dependency update (#8687)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-05-07 10:03:17 +02:00
YannC
79a6fbbab1 fix(filters): use correct key for timeRange when using multiple filters (#8657)
close #8498
2025-05-07 09:13:34 +02:00
Dhinakaran T
61dcb852e3 chore(triggers): swap the backfill button on triggers page with the one form flow triggers (#8624)
Closes https://github.com/kestra-io/kestra/issues/8606.

---------

Co-authored-by: dhinakaranst <dinastdhinast@.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-05-07 09:05:38 +02:00
Loïc Mathieu
0c93bc6275 chore(core): retry flaky test triggerPaused() 2025-05-06 17:21:50 +02:00
Loïc Mathieu
1754f81e0b feat(system): add NoopCache
To use where we want to be able to disable caching.
2025-05-06 17:21:50 +02:00
Loïc Mathieu
7117ae60f5 feat(system): purge empty service instances
Purge service instance in EMPTY state after a certain duration, 30 days by default, to avoid never ending groth on the service_instances table.

Fixes #8514
2025-05-06 17:17:46 +02:00
Loïc Mathieu
2b015f8d06 fix(tests): flaky test ExecutionServiceTest.deleteExecutionKeepLogs() 2025-05-06 17:06:03 +02:00
github-actions[bot]
8cccd3725d chore(core): localize to languages other than english (#8656)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-06 15:20:07 +02:00
Dhivya G
fdcea57b18 feat(ui): add version property to Frontend API call (#8650) 2025-05-06 14:55:01 +02:00
yuri
3f1d4f8fe0 feat(core): enable filter refresh interval to be changed in settings (#8522)
This change is introducing a new setting for users to choose - the automatic table refresh interval.

---------

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-05-06 14:44:09 +02:00
Loïc Mathieu
fe0a5d287b feat(system): add metrics to the executor
Add metrics to the executor for:
- Execution delays
- Execution killed events
- SLA expirations and violations

Part-of: #8341
2025-05-06 14:20:29 +02:00
Loïc Mathieu
5237bcc90c fix(system): subflow validation can fail when typing 2025-05-06 14:17:39 +02:00
AbdurRahman2004
d7a3e24465 chore(core): update keyboard shortcut for triggering the autocompletion (#8618)
Label for triggering autocompletion was `CMD/CTRL + SPACE`, but on `MacOS`, that was triggering a Spotlight search. As the `CTRL + SPACE` works on `MacOS` also, the label is tweaked.

Closes https://github.com/kestra-io/kestra/issues/8617

---

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-05-06 13:53:04 +02:00
Loïc Mathieu
df5419f9ec fix(flows): ForEach concurrency should not be over the number of values
Fixes #8614
2025-05-06 10:23:09 +02:00
AJ Emerich
9b72ce5a18 docs(http): add mention to check for plugins before using HTTP 2025-05-06 09:24:12 +02:00
Barthélémy Ledoux
e287964416 fix(editor): check isFlow when displaying NoCode in legacy editor (#8645) 2025-05-05 17:29:25 +02:00
dependabot[bot]
5759495216 build(deps): bump software.amazon.awssdk:bom from 2.31.30 to 2.31.35
Bumps software.amazon.awssdk:bom from 2.31.30 to 2.31.35.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.35
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 12:08:43 +02:00
Loïc Mathieu
e89e5988ec feat(jdbc): Improve JDBC queue poll duration selection
- By default, switch from quick polling to long polling after 30s of inacitvity on a queue
- By default, configure long polling interval to 500ms
- Use steps to goes from quick polling to long polling (5 steps automatically computed)
2025-05-05 12:07:54 +02:00
github-actions[bot]
51c522976e chore(core): localize to languages other than english (#8641)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-05 11:54:18 +02:00
Miloš Paunović
722d94ba4b fix(core): introduce back the proper translation key (#8639) 2025-05-05 11:51:15 +02:00
Miloš Paunović
e47816c941 fix(core): amend the problem with translation key (#3577) (#8638) 2025-05-05 11:49:18 +02:00
Barthélémy Ledoux
3fdd976b5c fix(ui): conditionally render icon based on save mode (#8636) 2025-05-05 11:26:43 +02:00
Anna Geller
2f8a5903f3 fix(naming): name action file in the same way as name to avoid double display and confusion (#8634) 2025-05-05 11:10:04 +02:00
github-actions[bot]
f3250c0dc9 chore(core): localize to languages other than english (#8635)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-05-05 11:09:53 +02:00
Barthélémy Ledoux
2c58e97ec3 feat: allow multiple nocode (#8532) 2025-05-05 10:56:56 +02:00
dependabot[bot]
1bd89843ed build(deps): bump org.testcontainers:testcontainers
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.20.6 to 1.21.0.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.20.6...1.21.0)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-version: 1.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 09:37:22 +02:00
dependabot[bot]
c565b3b947 build(deps): bump org.jsoup:jsoup from 1.19.1 to 1.20.1
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.19.1 to 1.20.1.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.19.1...jsoup-1.20.1)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-version: 1.20.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 09:36:59 +02:00
dependabot[bot]
5ce8763ccf build(deps): bump org.jooq:jooq from 3.20.3 to 3.20.4
Bumps org.jooq:jooq from 3.20.3 to 3.20.4.

---
updated-dependencies:
- dependency-name: org.jooq:jooq
  dependency-version: 3.20.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 09:36:42 +02:00
dependabot[bot]
d52974de4b build(deps): bump com.azure:azure-sdk-bom from 1.2.33 to 1.2.34
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.33 to 1.2.34.
- [Release notes](https://github.com/azure/azure-sdk-for-java/releases)
- [Commits](https://github.com/azure/azure-sdk-for-java/compare/azure-sdk-bom_1.2.33...azure-sdk-bom_1.2.34)

---
updated-dependencies:
- dependency-name: com.azure:azure-sdk-bom
  dependency-version: 1.2.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 09:36:23 +02:00
dependabot[bot]
c9296b657a build(deps): bump com.microsoft.playwright:playwright
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.51.0 to 1.52.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.51.0...v1.52.0)

---
updated-dependencies:
- dependency-name: com.microsoft.playwright:playwright
  dependency-version: 1.52.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 09:35:31 +02:00
dependabot[bot]
6f24e31c32 build(deps): bump opensearchRestVersion from 2.19.1 to 2.19.2
Bumps `opensearchRestVersion` from 2.19.1 to 2.19.2.

Updates `org.opensearch.client:opensearch-rest-client` from 2.19.1 to 2.19.2
- [Release notes](https://github.com/opensearch-project/OpenSearch/releases)
- [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/OpenSearch/compare/2.19.1...2.19.2)

Updates `org.opensearch.client:opensearch-rest-high-level-client` from 2.19.1 to 2.19.2
- [Release notes](https://github.com/opensearch-project/OpenSearch/releases)
- [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/OpenSearch/compare/2.19.1...2.19.2)

---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-rest-client
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.opensearch.client:opensearch-rest-high-level-client
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 09:35:12 +02:00
dependabot[bot]
90180cc069 build(deps): bump org.fusesource.jansi:jansi from 2.4.1 to 2.4.2
Bumps [org.fusesource.jansi:jansi](https://github.com/fusesource/jansi) from 2.4.1 to 2.4.2.
- [Release notes](https://github.com/fusesource/jansi/releases)
- [Changelog](https://github.com/fusesource/jansi/blob/master/changelog.md)
- [Commits](https://github.com/fusesource/jansi/compare/jansi-2.4.1...jansi-2.4.2)

---
updated-dependencies:
- dependency-name: org.fusesource.jansi:jansi
  dependency-version: 2.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 09:34:48 +02:00
Florian Hussonnois
01110c51f6 fix(flows): fix regression on flow validation (#8600)
Fix regression on flow validation when injecting
plugin default values

Fix: #8600
2025-05-02 09:09:02 +02:00
Loïc Mathieu
02723aa3d9 fix(dashboards)*: SQL errors on logs data chart
- PostgreSQL needs a cast from enum to text.
- Missing quotes on the WHERE clause.

Fixes #8128
2025-04-30 18:09:45 +02:00
github-actions[bot]
3d4ebf5f3b chore(core): localize to languages other than english (#8611)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-04-30 15:44:14 +02:00
Piyush Bhaskar
266c671095 feat(iam): introduce user menu into left sidebar (#8602)
This PR is introducing the new user menu with actions inside the left sidebar.

Relates to https://github.com/kestra-io/kestra-ee/issues/2105.
Relates to https://github.com/kestra-io/kestra-ee/issues/2964.

---------

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-04-30 15:35:20 +02:00
Miloš Paunović
aae1315f74 fix(executions): amend storybook tests for inputs form (#8608) 2025-04-30 14:59:10 +02:00
brian-mulier-p
a9f0cae83f fix(core): Doc search is more relevant (#8601)
closes #6329
2025-04-30 14:35:37 +02:00
Satvik Kushwaha
98cfd32676 feat(executions): use schedule set input values for backfills (#7913)
Made changes to backfilling executions input to fill the default input value by the input value set within a schedule.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-04-30 13:27:31 +02:00
Miloš Paunović
a9a2765521 chore(deps): regular dependency update (#8599)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-04-30 12:21:05 +02:00
github-actions[bot]
c0ba1831bf chore(core): localize to languages other than english (#8576)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-04-29 21:52:47 +02:00
Florian Hussonnois
a26fabe083 feat(system): add uv to kestra docker image
Use uv to install packages. UV is now required
to manage pythons dependencies for the plugin-script python.

Fix: kestra-io/kestra-ee#3527
2025-04-29 17:27:59 +02:00
Florian Hussonnois
bf41fb4613 fix(core): remove tutorial flows from anonymous report
Fix: kestra-io/kestra-ee#3387
2025-04-29 17:27:28 +02:00
Loïc Mathieu
097336ef28 feat(executions): Add workerId to each worker task attemps
Closes #7799
2025-04-29 16:13:23 +02:00
Loïc Mathieu
7467f1f7fb feat(flows): Allow to define an onPause task on the Pause task
The onPause task will be executed immediatly when the execution is paused.
Part-of: #3601
2025-04-29 15:48:59 +02:00
Loïc Mathieu
4e602021a8 feat(system)*: decrease defaut JDBC queue poll size
Decreasing it from 100 to 50 didn't show any performance hit but should lower the memory consumption now that we process the queue concurrently in the executor.

## BEFORE - pollSize=100
- 10 tx/s: 150ms
- 25 tx/s: 200ms
- 50 tx/s: 300ms
- 75 tx/s: 5.2s
- 100 tx/s: 15s

## AFTER - pollSize=50
- 10 tx/s: 150ms
- 25 tx/s: 200ms
- 50 tx/s: 300ms
- 75 tx/s: 4.8s
- 100 tx/s: 14s
2025-04-29 15:11:24 +02:00
Barthélémy Ledoux
1c23e31b6b fix: redirect to edit when saving new flow (#8560)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-04-29 14:14:36 +02:00
Loïc Mathieu
9beb86bfb5 feat(system): add TestSuite model,taskFixture impl 2025-04-29 11:03:57 +02:00
github-actions[bot]
e0723a94b5 chore(core): localize to languages other than english (#8568)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-04-29 10:37:01 +02:00
Florian Hussonnois
475a961cec fix(executions): fix execution failure due to UnsupportedOperationException (#8563)
Fix: #8563
2025-04-29 10:34:48 +02:00
Piyush Bhaskar
c5b7c5d483 chore(triggers)*: properly handle switches for triggers disabled from within flow source (#8106)
It was not clear as to which trigger can not be enabled and why. Now, that is much more clear with the proper tooltips and disabling of switch toggling.

Closes https://github.com/kestra-io/kestra/issues/8011.
Closes https://github.com/kestra-io/kestra/issues/5736.
2025-04-29 10:31:55 +02:00
Roman Acevedo
2cf6c54b89 feat(core): forward execution labels in Flow Trigger 2025-04-28 16:55:10 +02:00
Nicolas K.
13d02ee396 fix(namespaces): namespaceFiles with same name are wrongly overwritten (#8562)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-28 16:14:31 +02:00
yuri
21dc831f25 chore: attempt to fix flaky tests (#8537)
SingleFlowCommandsTest:

The flow Delete -> Create -> Update sequence is weird - delete got HTTP 404.
Reworked to Create -> Update -> Delete sequence.

PurgeLogsTest:

The log repository contained the prepared single entry but also might
contain additional entries from previously logged messages.
2025-04-28 15:07:28 +02:00
Miloš Paunović
1c9f9af82a fix(triggers): amend broken filtering on triggers tab (#8553)
There was a problem with both namespace and state filters on Triggers page which is now properly sorted.

Closes https://github.com/kestra-io/kestra/issues/8529.
2025-04-28 12:07:50 +02:00
github-actions[bot]
dc5acbc5bb chore(core): localize to languages other than english (#8554)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-04-28 12:00:37 +02:00
Barthélémy Ledoux
3e23456fb7 fix(ui): update storybook editor tests with provided keys (#8550)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-04-28 11:43:55 +02:00
Piyush Bhaskar
2943e10e7e fix(core): safely access section and identifier query params (#8542)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-28 14:06:39 +05:30
Barthélémy Ledoux
0ec8bd45c8 fix(ui): set isCreating to false when opening flow edit mode (#8549) 2025-04-28 10:34:36 +02:00
Nicolas K.
10e882a54a fix(core): change incorrectly used search parameter (#8534)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-28 10:32:57 +02:00
Piyush Bhaskar
4bc7f72fcd chore(execution): update display names for executions. (#8527) 2025-04-28 14:00:21 +05:30
dependabot[bot]
ce6770c574 build(deps): bump jacksonVersion from 2.18.3 to 2.19.0
Bumps `jacksonVersion` from 2.18.3 to 2.19.0.

Updates `com.fasterxml.jackson:jackson-bom` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.18.3...jackson-bom-2.19.0)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.18.3...jackson-core-2.19.0)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-parameter-names` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-modules-java8/compare/jackson-modules-java8-2.18.3...jackson-modules-java8-2.19.0)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-yaml` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.18.3...jackson-dataformats-text-2.19.0)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-smile` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.18.3...jackson-dataformats-binary-2.19.0)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-cbor` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.18.3...jackson-dataformats-binary-2.19.0)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-ion` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformat-ion/commits)

Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.18.3...jackson-dataformat-xml-2.19.0)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-guava` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-datatypes-collections/compare/jackson-datatypes-collections-2.18.3...jackson-datatypes-collections-2.19.0)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.18.3 to 2.19.0

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jdk8` from 2.18.3 to 2.19.0

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.module:jackson-module-parameter-names
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-smile
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-cbor
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-ion
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-xml
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-guava
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 09:42:04 +02:00
dependabot[bot]
04f32abb77 build(deps): bump org.wiremock:wiremock-jetty12 from 3.12.1 to 3.13.0
Bumps [org.wiremock:wiremock-jetty12](https://github.com/wiremock/wiremock) from 3.12.1 to 3.13.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.12.1...3.13.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-jetty12
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 09:41:33 +02:00
dependabot[bot]
d9ab998a03 build(deps): bump software.amazon.awssdk:bom from 2.31.25 to 2.31.30
Bumps software.amazon.awssdk:bom from 2.31.25 to 2.31.30.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.30
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 09:41:09 +02:00
Loïc Mathieu
e19056cad3 fix(triggers): inject default later inside the Scheduler
Today, as they are injected eagerly, they are done even if no trigger exists.
This is counter-performant, and in case the flow is an error will log each seconds.
Doing it a little later will be better.
2025-04-28 09:40:33 +02:00
Karuna Tata
897abdd89d feat(ui): Add search in internal docs (#8458)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-28 09:37:25 +02:00
Loïc Mathieu
2571f73811 fix(system): load OpenTelemetry lib in the app classloader
Without that, as we have it here, plugins may have class loading issue if they use OpenTelemetry internally (like in the Elasticsearch client).
2025-04-25 21:26:32 +02:00
Piyush Bhaskar
00cf7863e1 fix(ui): open link in markdown in other tab. (#8258)
* fix(ui): open link in markdown in other tab.

* chore(core): restrict attribute to external links.

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>

---------

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-25 19:09:22 +05:30
rajatsingh23
3c68ff5a2d fix(ui): remove parts of filter using backspace (#8105)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-25 14:08:38 +02:00
AJ Emerich
10ce92c0f5 docs(flow-trigger): add note about no Pebble in conditions 2025-04-25 11:54:04 +02:00
github-actions[bot]
6baeba8f63 chore(core): localize to languages other than english (#8528)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-04-25 11:19:18 +02:00
yuri
efe836874f fix(ui): amend Absolute date filter's looks (#8501) 2025-04-25 14:24:00 +05:30
Florian Hussonnois
8746f2bd15 fix(system): change default config values for liveness
Change kestra.server.liveness.interval from 5s to 10s
to be less agressive on liveness check. Align
other default liveness configs with kafka implementation.
2025-04-25 10:28:30 +02:00
Piyush Bhaskar
34a7316d3f feat(flows): improve the display of array inputs when running an execution (#7953)
This PR is introducing a change of how the `array` inputs are displayed inside the flow run dialog, to be more user-friendly.

Closes https://github.com/kestra-io/kestra/issues/6947.

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-04-25 09:40:24 +02:00
Miloš Paunović
fc452aff94 fix(flows): properly load blueprints in multi panel view (#8524)
While using the new Multi Panel view blueprints were not loading properly due to wrong paramtere being sent to action. now that's sorted.

Closes https://github.com/kestra-io/kestra/issues/8523.
2025-04-25 13:08:45 +05:30
Piyush Bhaskar
77da3fd16c chore(flows): improve the blueprints view within the flow editing panels (#7983)
Changes here consist of removing the tags from blueprint view on Multi Panel flow editor, along with couple of other UI improvements.

Closes https://github.com/kestra-io/kestra/issues/7881.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-04-25 09:10:29 +02:00
杨利伟
03f9aa8e85 fix(jdbc): add service_id index on service_instance table 2025-04-24 18:14:15 +02:00
Loïc Mathieu
3f9f60dd26 feat(plugins): add Go Script plugin 2025-04-24 17:25:16 +02:00
lwyang
8b5f333c02 chore(system): add warn log when emit logQueue failed (#8432) 2025-04-24 16:02:12 +02:00
Loïc Mathieu
d27626fbd1 feat(plugins): add Langchain4J plugins 2025-04-24 15:42:15 +02:00
Loïc Mathieu
08f5ad2710 chore(build): add Postgres stat extension 2025-04-24 14:51:34 +02:00
Loïc Mathieu
56fa97b2e4 feat(system)!: remove the SQLServer runner
Part-of: https://github.com/kestra-io/kestra-ee/issues/3504
2025-04-24 14:50:57 +02:00
Nicolas K.
14210f1661 test(core): fix breaking change in local flow repository (#8517)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-24 14:34:10 +02:00
Hashim Khalifa
1fb6958e9e feat(flows): add validation for use of inputs and outputs with '-' in the name (#8379) 2025-04-24 14:31:53 +02:00
Piyush Bhaskar
5e7bc96322 chore(core): refactor component to composition API structure and with some styling (#8504) 2025-04-24 14:29:18 +05:30
Loïc Mathieu
729cf56c54 fix(core): failing DocumentationGeneratorTest.returnDoc() 2025-04-24 10:36:38 +02:00
Karuna Tata
a21cff4ba0 fix(ui): save existing flow after making changes (#8378)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-24 10:31:32 +02:00
Loïc Mathieu
7e590dd603 feat(plugin): add a way to provide additional type of plugins
Provide a way for plugins to define a new type of plugins.
To do that, a plugin must provide both an abstract base class that extends AdditionalPlugin and a set of concret classes.
Both the abstract base class and the concrete classes mut be inside the same plugin. This is a limitation that we may work on later by providing, for example, an SPI to add base classes to the application classloader.
2025-04-24 10:04:51 +02:00
Satvik Kushwaha
ad9f69334c fix(ui): restart trigger position for backfill column (#8246)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-04-24 09:43:59 +02:00
Piyush Bhaskar
c7b448a9f0 chore(ui): improvement to drilldown for Default and Custom Charts. (#7885)
* chore(ui): improvement to drilldown for Default and Custom Charts.

* minor tweak

* test: fix the Barchart stories to test drilldown

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-04-24 10:42:06 +05:30
ben8t
b1a48c17f2 Add examples with expression and trimmed values (#6154) 2025-04-23 19:57:00 +02:00
AJ Emerich
7957b9db12 fix(core): fix indexer metric description (#8500) 2025-04-23 16:48:02 +01:00
Loïc Mathieu
d58898ff34 fix(system): restrict the JdbcConcurrencyLimitService to the JDBC runner 2025-04-23 16:29:10 +02:00
AJ Emerich
1ff2e0355d docs(core-pause): update pauseDuration properties, titles, descriptions (#8495) 2025-04-23 14:34:02 +01:00
Piyush Bhaskar
9cb7cd6453 fix(flows): properly check average duration for dashboard graphs (#8457)
There was a problem on flows view with the main chart not showing proper data until user clicks on duration toggle.

Closes https://github.com/kestra-io/kestra/issues/8435.
Closes https://github.com/kestra-io/kestra-ee/issues/3499.
2025-04-23 14:23:40 +02:00
AJ Emerich
728a6a3af8 doc(basic.md): add link to configuration for kestra property variables (#8490) 2025-04-23 12:04:12 +01:00
Ludovic DEHON
ebd957f00d chore(deps): update gradle version 2025-04-23 12:52:49 +02:00
Miloš Paunović
f24734f5f2 refactor(core): pass the dynamic concurrency schema to no code editor (#8488)
There was an issue with passing hard-coded concurrency schema to be rendered in No Code editor, which is now amended and we're passing down the previously fetched one
2025-04-23 11:54:22 +02:00
Loïc Mathieu
d14ff78fd8 fix(execution)*: decode and hide nested inputs of type SECRET
Fixes #7964
2025-04-23 11:45:57 +02:00
Roman Acevedo
1506d68132 tests(system): bump sleep-short sleep time to 10s 2025-04-23 11:39:50 +02:00
Roman Acevedo
bf4310edc3 tests(system): try with different task id 2025-04-23 11:39:50 +02:00
Roman Acevedo
b4106af12b tests(system): debug flaky error of shouldPauseExecutionByQueryRunningFlows 2025-04-23 11:39:50 +02:00
Roman Acevedo
1974fd15ec tests(system): debug flaky error of shouldPauseExecutionByQueryRunningFlows 2025-04-23 11:39:50 +02:00
Roman Acevedo
ce3eea76f0 tests(webserver): fix flaky test which could query previous tests tasks 2025-04-23 11:39:50 +02:00
github-actions[bot]
636f0f61d7 chore(core): localize to languages other than english (#8485)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-04-23 11:18:49 +02:00
Loïc Mathieu
3105ddc40b fix(executions): unqueing execution must remove the execution queued
When an execution is queued in the JDBC backend, a record is inserted inside the execution_queued table, we must remove this record when we unqeue an execution.

Fixes #8448
2025-04-23 11:13:31 +02:00
Piyush Bhaskar
b779aa1aed fix(controls): adjust bottom position of contorls in multiPanelsEditor (#8465) 2025-04-23 13:26:36 +05:30
Barthélémy Ledoux
fa5a391103 feat: synchronize task edition with editor (#8433) 2025-04-23 09:43:47 +02:00
Piyush Bhaskar
b947c23402 fix(ui): full view height for single task logs (#8042)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-04-23 09:43:19 +02:00
Miloš Paunović
54b8ff9d0c chore(deps): regular dependency update (#8484)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-04-23 09:38:02 +02:00
Loïc Mathieu
724058a06f Feat/storage outputs (#8361)
* feat(executions): Store outputs inside the internal storage (1/2)

* feat(executions): Store outputs inside the internal storage (2/2)

* feat(test): allow passing tenantId to tests

---------

Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>
2025-04-22 15:46:57 +02:00
Roman Acevedo
d454d133f5 tests(system): isolate SchedulerScheduleTest tests with tenantId 2025-04-22 15:41:54 +02:00
dependabot[bot]
a06421dd84 build(deps): bump co.elastic.logging:logback-ecs-encoder
Bumps [co.elastic.logging:logback-ecs-encoder](https://github.com/elastic/ecs-logging-java) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/elastic/ecs-logging-java/releases)
- [Commits](https://github.com/elastic/ecs-logging-java/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: co.elastic.logging:logback-ecs-encoder
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 11:23:18 +02:00
dependabot[bot]
de6fcab785 build(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/opensearch-project/opensearch-java/releases)
- [Changelog](https://github.com/opensearch-project/opensearch-java/blob/v2.23.0/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/opensearch-java/compare/v2.22.0...v2.23.0)

---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-java
  dependency-version: 2.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 11:22:01 +02:00
dependabot[bot]
b2f68a7b97 build(deps): bump com.github.oshi:oshi-core from 6.8.0 to 6.8.1
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.8.0 to 6.8.1.
- [Release notes](https://github.com/oshi/oshi/releases)
- [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.8.0...oshi-parent-6.8.1)

---
updated-dependencies:
- dependency-name: com.github.oshi:oshi-core
  dependency-version: 6.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 11:10:17 +02:00
dependabot[bot]
01cb30f933 build(deps): bump software.amazon.awssdk:bom from 2.31.21 to 2.31.25
Bumps software.amazon.awssdk:bom from 2.31.21 to 2.31.25.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 11:09:06 +02:00
dependabot[bot]
d2cda63cfa build(deps): bump flyingSaucerVersion from 9.11.6 to 9.12.0
Bumps `flyingSaucerVersion` from 9.11.6 to 9.12.0.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.11.6 to 9.12.0
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.6...v9.12.0)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.11.6 to 9.12.0
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.6...v9.12.0)

---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 9.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 9.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 11:08:11 +02:00
dependabot[bot]
f89187db6a build(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.8.0 to 4.8.2.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.8.0...v4.8.2)

---
updated-dependencies:
- dependency-name: io.micronaut.platform:micronaut-platform
  dependency-version: 4.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 11:07:01 +02:00
dependabot[bot]
8e4fe892e9 build(deps): bump com.google.guava:guava from 33.4.7-jre to 33.4.8-jre
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.4.7-jre to 33.4.8-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-version: 33.4.8-jre
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 11:04:45 +02:00
Barthélémy Ledoux
eb13dce0ff fix(ui): use creating=true instead of identifier=new (#8443) 2025-04-22 09:46:02 +02:00
Florian Hussonnois
a14518b810 refactor(plugin): add dedicated service to parse tasks log line
Add new TaskLogLineMatcher class for matching and
 capturing structured data from task execution logs.

Related-to: kestra-io/kestra-ee#3441
2025-04-22 09:37:32 +02:00
Piyush Bhaskar
c64f15a035 fix(container): update tab container classes for better layout handling. (#8456) 2025-04-22 12:19:29 +05:30
Piyush Bhaskar
f79541616e chore(ui): Improve the display of Resume/Kill executions (#8227)
* chore(ui): Improve the display of Resume/Kill executions

* minor tweak

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-21 11:22:35 +05:30
Frank Tianyu Zeng
cb6a6bfd91 fix(revision): restore side-by-side view in revision history after flow edit (#8439)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
2025-04-21 11:12:36 +05:30
Ludovic DEHON
b2ae2ff6f7 feat(build): fix some sonar alert 2025-04-20 22:23:41 +02:00
Ludovic DEHON
a7836ca673 feat(build): add sonar 2025-04-19 00:49:09 +02:00
YannC
7bc60a1056 fix(ui): add new property in filters (#8444) 2025-04-18 21:27:55 +02:00
YannC
09943a1e7b fix(webserver): set ids parameters as body instead of queryvalue (#8438) 2025-04-18 11:58:11 +02:00
Sayed Murtadha Ahmed
8b6af7a808 chore(core)*: make sure that notifications with large message text are closeable (#8431)
There was a problem when an error message is too big, the toaster could not be closed. This change is amending that issue.

Closes https://github.com/kestra-io/kestra/issues/8352.
2025-04-17 11:44:17 +02:00
YannC.
e74e7ff8e5 fix(ui): correct path for namespace files on namespace page
close #8140
2025-04-17 10:34:46 +02:00
Anna Geller
9adf3a5444 fix(docs): improve PublishMetrics example and basic.md KV doc (#8427) 2025-04-16 20:02:36 +02:00
Karuna Tata
c069b2fbb3 chore(core)*: deboucing task validation from no code editor (#8418)
There was an issue when a user edited a task from the No Code editor—the validation endpoint was being called excessively, instead of waiting for the user to finish typing. This has now been resolved with this PR.

Closes https://github.com/kestra-io/kestra/issues/7073.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-04-16 12:31:03 +02:00
YannC
534b7f4ec7 refactor(core): changes to improve openapi spec
* better method name
* correct annotation to descript body
2025-04-16 12:26:32 +02:00
Miloš Paunović
7b1ee4a9e0 refactor(core): prevent inheriting unused attributes in components (#8419)
Remove default inheriting of attributes in Vue components, which are not used. This pollutes the console with warnings and it's not necessary, so this PR is solving the problem.
2025-04-16 12:08:45 +02:00
Miloš Paunović
38a9ebcbef refactor(core): replace deprecated vue flow options parameter (#8417)
Remove usage of the deprecated options object parameter with the id one, as per the latest API guidelines. This change ensures compatibility with future versions and removes the related console warning.

Related to #7804.
2025-04-16 10:29:47 +02:00
weibo1
eea47c6e40 feat(system): add duration metrics for handle() method 2025-04-16 09:05:00 +02:00
weibo1
e1c4ae22f2 feat(system): add index to commonly queried fields in the WHERE conditions of the triggers table 2025-04-16 09:05:00 +02:00
Miloš Paunović
b7861a139e chore(deps): regular dependency update (#8415)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
2025-04-16 08:46:32 +02:00
Miloš Paunović
954d64ecaa fix(core)*: allow horizontal scrolling of tabs in multi panel view (#8414)
If there are multiple tabs opened in a single panel of the new multi panel view,  there was no ability to scroll and see the overflowing ones. With changes in this PR, users can now do just that.

Closes https://github.com/kestra-io/kestra/issues/8270.
2025-04-16 12:05:37 +05:30
Karuna Tata
f61ba36023 feat(core)*: allow moving of entire panels (#8377)
Changes in this pull request now allow users to move entire panels where ever they want, plus, there are `Move right` and `Move left` options in the context menu.

Closes https://github.com/kestra-io/kestra/issues/8272.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-04-16 07:47:09 +02:00
Loïc Mathieu
fbd989ccab feat(core): allow to specify Pause task resume behavior (#8242)
When a pause task is resumed either because it wait until the end of it's duration or is resumed manually, it can now use a behavior to describe what to do next: resume, warn, fail, or cancel the execution.

Fixes #8242
2025-04-15 17:39:53 +02:00
yuri
12affd4b4b fix(build): amend Node Gradle to reflect changes (#7970) 2025-04-15 15:15:34 +02:00
Satvik Kushwaha
b75730a0ca chore(dashboards)*: amend hover color of table top buttons on dashboard (#8388)
Tables on main dashboard which have the `See all` buttons needed UI tweaking of color on hover, which is handled in this pull request.

Closes https://github.com/kestra-io/kestra/issues/8376.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-04-15 14:14:49 +02:00
Barthélémy Ledoux
4170615765 fix(ui): navigation between flow editor and tabs - blank screen (#8392) 2025-04-15 11:41:18 +02:00
Barthélémy Ledoux
5cfb6aa1f5 test(ui): ignore unhandled canceled promises in storybook (#8394) 2025-04-15 11:39:39 +02:00
AJ Emerich
41d660e18e docs(core): update plugin titles and descriptions (#8390) 2025-04-15 11:22:47 +02:00
yuri
8af4f1928a chore(webserver): amend copy&pasted description (#8346) 2025-04-15 11:12:09 +02:00
github-actions[bot]
1488caccc7 chore(core): localize to languages other than english (#8391)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.

Co-authored-by: GitHub Action <actions@github.com>
2025-04-15 11:09:33 +02:00
Karuna Tata
85fc48963f feat(core): add a confirmation dialog before leaving the settings page (#8365)
If the user changed something on the `Settings` page and then just navigated to another page, all new changes would all be lost. This PR is adding a confirmation dialog before route leave, if there are any changes made, to confirm either saving or discarding them.

Closes https://github.com/kestra-io/kestra/issues/8364.

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-04-15 10:31:49 +02:00
Barthélémy Ledoux
b706dec9d2 test(core): make storybook tests pass with less warnings (#8382)
Lots of warnings that we can see in the UI unit tests make them flaky. In this PR we're trying to avoid pollution as much as possible so we can at least test.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-04-15 10:16:14 +02:00
Karuna Tata
ceac4d38f9 feat(core)*: implement redirection to flow creation page on skipping tutorial (#8333)
When a user clicks the `Skip tutorial` button, it just does that, shuts the tutorial down but leaves the user on the same page. This change will redirect users to `Flow Creation` page if the `Skip Tutorial` button is clicked.

Closes https://github.com/kestra-io/kestra/issues/8326.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-04-15 08:11:41 +02:00
dependabot[bot]
ec7bf52e08 build(deps-dev): bump vite in /ui in the npm_and_yarn group (#8362)
Bumps the npm_and_yarn group in /ui with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.2.5 to 6.2.6
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.6
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 15:22:09 +02:00
Loïc Mathieu
247594299c feat(system)!: Describe our internal metrics
Add a description to all our internal metrics.

BREAKING CHANGE: the following metrics has been removed:
- executor.taskrun.next.count
- executor.workertaskresult.count

The metric scheduler.execution.running.duration has been renamed to scheduler.execution.lock.duration
2025-04-14 15:17:23 +02:00
Loïc Mathieu
513139976c feat(system): Allow to describe metrics (#1989) 2025-04-14 15:17:23 +02:00
Miloš Paunović
2cab9de57c refactor(namespaces): remove the unused maximize property (#8380)
There is no more need for `maximize` property to be passed for locked tabs, and therefore it's removed in this commit.
2025-04-14 13:55:45 +02:00
dependabot[bot]
cfae13c045 build(deps): bump io.micrometer:micrometer-core from 1.14.5 to 1.14.6
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.14.5 to 1.14.6.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.14.5...v1.14.6)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-version: 1.14.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 11:55:59 +02:00
dependabot[bot]
6190f8774a build(deps): bump com.google.guava:guava from 33.4.6-jre to 33.4.7-jre
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.4.6-jre to 33.4.7-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-version: 33.4.7-jre
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 10:55:50 +02:00
dependabot[bot]
b98a0a783d build(deps): bump commons-io:commons-io from 2.18.0 to 2.19.0
Bumps commons-io:commons-io from 2.18.0 to 2.19.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 10:10:24 +02:00
dependabot[bot]
3da2dc6257 build(deps): bump flyingSaucerVersion from 9.11.5 to 9.11.6
Bumps `flyingSaucerVersion` from 9.11.5 to 9.11.6.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.11.5 to 9.11.6
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.5...v9.11.6)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.11.5 to 9.11.6
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.5...v9.11.6)

---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-version: 9.11.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-version: 9.11.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 10:10:06 +02:00
dependabot[bot]
6feb027696 build(deps): bump org.aspectj:aspectjweaver from 1.9.23 to 1.9.24
Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.23 to 1.9.24.
- [Release notes](https://github.com/eclipse/org.aspectj/releases)
- [Commits](https://github.com/eclipse/org.aspectj/commits)

---
updated-dependencies:
- dependency-name: org.aspectj:aspectjweaver
  dependency-version: 1.9.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 10:09:21 +02:00
dependabot[bot]
83d6095669 build(deps): bump software.amazon.awssdk:bom from 2.31.16 to 2.31.21
Bumps software.amazon.awssdk:bom from 2.31.16 to 2.31.21.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 10:09:02 +02:00
dependabot[bot]
444e3d2a77 build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.37.0 to 0.38.1.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.37.0...v0.38.1)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-version: 0.38.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 10:08:28 +02:00
Satvik Kushwaha
752405ac78 fix(flows)*: amend text color problem in no code editor on firefox (#8367)
There was an issue with title color of tasks on the `No Code` editor (which stayed dark no matter the mode selected), but only viewed in `Firefox` browser. That is sorted out with this pull request.

Closes https://github.com/kestra-io/kestra/issues/8327.

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-04-14 09:35:39 +02:00
Miloš Paunović
860c1b218c feat(core)*: allow closing all tabs at once in a single panel (#8360)
Adds the ability to close all tabs in a single panel with a single click, improving usability and eliminating the need to close each tab individually.

Closes https://github.com/kestra-io/kestra/issues/8273.
2025-04-11 15:14:04 +02:00
Barthélémy Ledoux
0bd017556a fix(ui): command array should display properly in no-code (#8349) 2025-04-11 14:47:17 +02:00
Miloš Paunović
63ec5cab27 build(core): update commit message and description for translation-related pull requests (#8358)
This change updates the commit message and description generated by the translation CI process to be more descriptive and consistent with our commit conventions. It improves the clarity and traceability of automated translation updates in the commit history.
2025-04-11 14:38:31 +02:00
brian-mulier-p
e73f15a538 fix(core): bring back documentation on some plugins (#8354)
swagger is now resolved from Kestra classpath

closes #8265
2025-04-11 13:00:53 +02:00
github-actions[bot]
f871fa838e chore(translations)*: localize to languages other than english (#8353) 2025-04-11 12:11:38 +02:00
Miloš Paunović
c2028759e4 feat(core)*: introduce a dropdown menu for each panel (#8351)
This is the initial work to support the two related issues mentioned above, which is introducing the context menu for each tab panel, which will give us the place to list related actions.

Relates to https://github.com/kestra-io/kestra/issues/8272.
Relates to https://github.com/kestra-io/kestra/issues/8273.
2025-04-11 11:56:04 +02:00
Nicolas K.
21d6e0fa62 test(system): rework concurrency paused tests so they actually test t… (#8339)
* test(system): rework concurrency paused tests so they actually test the pause + concurrency behavior

* test(system): Add a flow name check in the queue because kafka queue is not cleaned between tests

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-11 11:16:01 +02:00
Bart Ledoux
ab666bff11 test(ui): failing test for autocompletiona after contributor's PR 2025-04-11 09:42:23 +02:00
Miloš Paunović
92c082e2e0 chore(flows)*: hide horizontal scroll on editor based inputs (#8347)
There was always a horizontal scrollbar present at editor compnent when used as input field, which was previously handled for the No Code editor in https://github.com/kestra-io/kestra/pull/8216.

Relates to https://github.com/kestra-io/kestra-ee/issues/3404.
2025-04-11 08:09:22 +02:00
Frank Tianyu Zeng
5a3a54fd57 feat(variables): add missing functions to editor autocompletion (#8245)
closes #7733

---------

Co-authored-by: brian.mulier <bmmulier@hotmail.fr>
2025-04-10 23:32:40 +02:00
Florian Hussonnois
1576051ebb fix(flow): re-enable NotEmpty constraint on property tasks for Sequential 2025-04-10 18:03:35 +02:00
Loïc Mathieu
4ec2a5d064 chore(system): don't emit two time a workertaskresult for RUNNING
We emit a WorkerTaskResult in RUNNING, then create an attempt, emit a new WorkerTaskResult with the attemps and then start running the task.
We can only emit one time a WorkerTaskResult as the second would be emitted microseconds after so it's just noise.
2025-04-10 18:02:42 +02:00
Florian Hussonnois
846e20a100 fix(flow): enhance error handling when injecting plugin defaults
Add a new checked exception FlowProcessingException to enhance error
handling when parsing, validating a flow, and injecting plugin defaults.

Related-to: #7894
2025-04-10 17:13:40 +02:00
Barthélémy Ledoux
433a332123 feat: use TaskTasks.vue to show subtask (#8332) 2025-04-10 16:59:10 +02:00
Loïc Mathieu
9b8b240d7c feat(core): use a fixed-size mask to mask secrets (#8131)
Fixes 8131
2025-04-10 15:17:05 +02:00
Miloš Paunović
e6937c4a8c feat(core)*: close code tab if file is deleted (#8331)
In the new multi panel view, if we have `code` tab opened and delete that file from `files` panel, we'll automatically close the opened tab for the file in question.

Closes https://github.com/kestra-io/kestra/issues/8271.
2025-04-10 14:51:43 +02:00
Nicolas K.
70dbe6a219 test(system): fix flaky runner test by adding sleep in subtask (#8329)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-10 14:41:21 +02:00
Mathieu Gabelle
8ceee4cfdc refactor: migrate plugin.core flowable tasks to dynamic proeprties (#8313)
* refactor: migrate plugin.core flowable tasks to dynamic proeprties

migrated properties to dynamic properties if possible
updated tests accordingly
remove unused import and fix sonar issues
2025-04-10 13:59:57 +02:00
Florian Hussonnois
b97347df97 fix(flow): handle parsing error when reading flows from repository
This commit fixes NPE in JdbcExecutor that can occurred when
reading invalid an flow, and add better handling of parsing error in JDBC flow
repositories.

Related-to: #7894
2025-04-10 13:28:11 +02:00
Piyush Bhaskar
b177a1f304 chore(ui): Add a trigger from Triggers tab (#7754)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-10 11:11:34 +02:00
Piyush Bhaskar
999406aee4 fix(ui): uniform scrollbar across UI (#7758)
* scrollbar  uniforming

* fix(ui): uniform scrollbar across ui.

* minor tweaks

* minor tweak

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-10 11:10:46 +02:00
Barthélémy Ledoux
31fd0303b5 fix: make monaco composition API (#8320)
* refactor: make monaco composition API

* fix kv

* rename var in monaco

* enable autocomplete in new panel

* fix: set theme even in diff mode

* refactor: avoid using computed when unnecessary
2025-04-10 10:57:28 +02:00
Florian Hussonnois
32b4a9e0be fix(core): handle parsing error when reading flows from repository
This commit fixes a regression after applying plugin default
versions in the AbstractJdbcFlowRepository
2025-04-09 22:58:24 +02:00
Barthélémy Ledoux
2c411a27cc build: use storybook test addon to get coverage (#8316) 2025-04-09 20:53:53 +02:00
Florian Hussonnois
504ff282ef fix: add missing indices for service instance table 2025-04-09 19:01:42 +02:00
Nicolas K.
365d82eb96 feat(#233)!: remove warningOnError behavior (#8321)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-09 18:00:20 +02:00
YannC
9a67466d9c chore(deps): upgrade micronaut-platform to 4.8.0 (#8232)
* chore(deps): upgrade micronaut-platform to 4.8.0

* fix: http client version enforcement is not needed anymore as docker-java as updated the dependency

* fix: make applicationContext protected in SchedulerPollingTriggerTest

* fix: upgrade docker-java version to 3.5.0

* fix: make some method protected in the AbstractRunnerTest so it can be override
2025-04-09 17:06:38 +02:00
Nicolas K.
a04db6510b feat(makefile): add pull-plugin script and fixe clone-plugin script (#8283)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-09 17:03:05 +02:00
Will Russell
ab2fea660a doc(Core): task example indentation error 2025-04-09 15:25:25 +01:00
ben8t
1c9016ba45 fix(sanitycheck): update flows id and namespace
* fix:sleep assert comparison

* fix:edit sanitycheck according to new process

* fix:typo
2025-04-09 14:46:47 +02:00
Miloš Paunović
935ff944a5 fix(ui): make sure that dropping tab places it into right place (#8315)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-09 14:41:01 +02:00
Will Russell
fd4667383c doc(Devcontainer): link instructions to contributing guide 2025-04-09 12:15:44 +01:00
Loïc Mathieu
5bec2fa8b3 feat(cli,core)!: change KESTRA_ env prefix by ENV_
This avoid possible security issue as you can use env var to override Kestra configuration properties and Kestra related configuration properties starts with `kestra`.

Fixes https://github.com/kestra-io/kestra-ee/issues/3131
2025-04-09 12:48:54 +02:00
Piyush Bhaskar
c24fcfd0ca chore(ui): Add a trigger from Triggers tab (#7754)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-04-09 11:25:34 +02:00
Piyush Bhaskar
22424c69b6 chore(ui): improve the filter label colors on hover (#8141) 2025-04-09 11:17:18 +02:00
Bart Ledoux
938b3cc08b tests: fix storybook multipanel test 2025-04-09 11:15:14 +02:00
Piyush Bhaskar
5fdf2f3085 chore(ui): amend scrollbar issue on the no code editor fields (#8216) 2025-04-09 11:10:07 +02:00
Tanvir Ahmed
062957982b fix: [#8282] - Fixed issue with Devcontainer not running on arm64 architecture (#8285)
* fix: [#8282] - Fixed issue with Devcontainer not running on arm64 architecture

* chore: Updated implementation of dynamic install of Java JDK
2025-04-09 10:07:16 +01:00
Bart Ledoux
c08213b48d ci: remove some odd arguments to frontend checkout 2025-04-09 10:49:25 +02:00
Karuna Tata
152d96f018 chore(ui): remove reorder buttons when there's only one value in no code arrays (#8266) 2025-04-09 09:52:02 +02:00
AJ Emerich
4865843b10 fix(docs): add titles and examples to Dashboard chart types (#8233)
* fix(docs): add titles to Dashboard chart types

* fix(docs): add examples to Dashboard chart types

* fix(docs): add bar chart example
2025-04-09 09:19:46 +02:00
Miloš Paunović
47309a0782 chore(deps): regular dependency update (#8310) 2025-04-09 08:11:58 +02:00
Bart Ledoux
7d7340b4ba fix: remove the big plus when dragging 2025-04-08 16:11:58 +02:00
Bart Ledoux
eb1509959c chore: remove console.log drop 2025-04-08 15:50:59 +02:00
Nicolas K.
5285bea930 feat(Unit Tests) #8171 convert hamcrest to assertj (#8276)
* feat(Unit Tests) #8171 convert hamcrest to assertj

* fix(Unit Tests) #8171 failing unit test after assertj migration

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-08 15:48:54 +02:00
Bart Ledoux
cc5a1c9f68 fix: remove props warning in flow editor 2025-04-08 15:47:04 +02:00
MilosPaunovic
725e5e5d78 fix(ui): allow tab button to take effect while using editor 2025-04-08 15:09:30 +02:00
Bart Ledoux
56b903b8fd fix: repair docs home page 2025-04-08 15:05:08 +02:00
Miloš Paunović
21c0c86238 fix(ui): amend namespace files creation & editing problems (#8279) 2025-04-08 13:43:20 +02:00
Miloš Paunović
65ab695001 chore(ui): pass prop to maximize the height of namespace file editor (#8278) 2025-04-08 13:34:33 +02:00
Miloš Paunović
1310e59cf9 chore(ui): amend the sizing of editor panels (#8277) 2025-04-08 13:30:22 +02:00
YannC
c35352e2b4 feat: Deprecated BOOLEAN input for new BOOL input with no undefined state (#8257)
close #8225
2025-04-08 10:22:11 +02:00
Miloš Paunović
59589b1c2d refactor(ui): uniform the namespace components for oss and ee versions (#8256) 2025-04-08 09:29:19 +02:00
brian.mulier
4729430a00 feat(ui): ability to hide secret value when typing in secrets
closes kestra-io/kestra-ee#3358
2025-04-08 00:10:22 +02:00
brian.mulier
1aa37d5756 fix(core): duration defaults are rendered as duration string instead of timestamp
closes #3742
2025-04-07 22:06:24 +02:00
brian.mulier
1a121951d6 fix(jdbc): conflict on migration numbers 2025-04-07 21:59:14 +02:00
YannC
92ee3f749e fix: correct version migration for H2 sql file 2025-04-07 19:20:49 +02:00
dependabot[bot]
ae7bb88ff0 build(deps): bump com.google.guava:guava from 33.4.0-jre to 33.4.6-jre
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.4.0-jre to 33.4.6-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 17:45:18 +02:00
Florian Hussonnois
8f29a72df7 refactor: add GenericFlow to support un-typed flow deserialization
Add new FlowId, FlowInterface and GenericFlow classes to support
deserialization of flow with un-typed plugins (i.e., tasks, triggers)
in order to inject defaults prior to strongly-typed deserialization.
2025-04-07 17:32:06 +02:00
Loïc Mathieu
fc8732f96e chore: use @Nullable from Jakarata annotations 2025-04-07 17:01:52 +02:00
Loïc Mathieu
14f4449d99 chore(deps): Upgrade Guava to 33.4.5-jre (#8005) 2025-04-07 17:01:52 +02:00
AJ Emerich
dd80a91ab3 fix(docs): remove note about Podman rootless (#8259)
closes https://github.com/kestra-io/docs/issues/2404
2025-04-07 16:54:06 +02:00
Florian Hussonnois
840f010921 fix(core): fix NPE when generating flow graph
Fix NPE when generating flow graph and a task cannot be deserialized

Fix: kestra-io/kestra-ee#3369
2025-04-07 16:33:08 +02:00
Loïc Mathieu
8462b178cb feat(jdbc-h2,jdbc-mysql,jdbc-postgres): add an index on queues.key 2025-04-07 15:55:54 +02:00
brian.mulier
901625786d fix(ui)!: prevent infinite loading loop in Namespace KV Store & Secrets pages if there is none 2025-04-07 15:07:50 +02:00
YannC
4def8c5764 chore(ci): Implement JReleaser for GitHub Release (#8231) 2025-04-07 13:34:33 +02:00
brian.mulier
65a204356c fix(ui): bump ui-libs to 0.0.168 2025-04-07 12:03:06 +02:00
dependabot[bot]
73e3fd08e9 build(deps): bump software.amazon.awssdk:bom from 2.31.11 to 2.31.16
Bumps software.amazon.awssdk:bom from 2.31.11 to 2.31.16.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-version: 2.31.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 11:29:42 +02:00
dependabot[bot]
0665b52014 build(deps): bump org.owasp.dependencycheck from 12.1.0 to 12.1.1
Bumps org.owasp.dependencycheck from 12.1.0 to 12.1.1.

---
updated-dependencies:
- dependency-name: org.owasp.dependencycheck
  dependency-version: 12.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 11:05:05 +02:00
dependabot[bot]
781f9dc8d8 build(deps): bump com.google.cloud:libraries-bom from 26.58.0 to 26.59.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.58.0 to 26.59.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.58.0...v26.59.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-version: 26.59.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 11:04:49 +02:00
dependabot[bot]
92e4570158 build(deps): bump org.jooq:jooq from 3.20.2 to 3.20.3
Bumps org.jooq:jooq from 3.20.2 to 3.20.3.

---
updated-dependencies:
- dependency-name: org.jooq:jooq
  dependency-version: 3.20.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 11:04:36 +02:00
brian.mulier
ce47b4ee5e fix(ui): bump ui-libs to 0.0.167 2025-04-07 09:54:35 +02:00
brian.mulier
69193c6096 Revert "fix(core): add additionalProperties=false to tasks to have a warning if there is unknown properties"
This reverts commit 6fee99a78a.
2025-04-07 09:54:30 +02:00
Bart Ledoux
9d437957fa chore: add a rule to prevent angle brackets cast in TS 2025-04-07 09:49:10 +02:00
Ludovic DEHON
dfea86fb07 chore(deps): update pebble to 3.2.4
affected by CVE-2025-1686
2025-04-06 18:23:55 +02:00
brian.mulier
6fee99a78a fix(core): add additionalProperties=false to tasks to have a warning if there is unknown properties 2025-04-05 02:14:20 +02:00
brian.mulier
2c766a5497 feat(webserver): move oneOf to anyOf in JsonSchemaGenerator to have better autocompletion 2025-04-05 01:52:41 +02:00
brian.mulier
959737f545 feat(ui): introduce patched version of monaco-yaml & yaml-language-server to have better autocompletion
waiting for https://github.com/redhat-developer/yaml-language-server/pull/1048
2025-04-05 01:05:27 +02:00
brian.mulier
2c1b6ffe3c fix(ui): exclude additional files from UI coverage report 2025-04-04 16:53:29 +02:00
brian.mulier
9b819f6925 fix(ui): avoid jsx confusion on cast that prevent Storybook from running 2025-04-04 16:24:02 +02:00
brian.mulier
a81c0a5737 fix(ui): move bunch of utils to typescript 2025-04-04 15:38:15 +02:00
brian.mulier
ebcb0bd2a2 feat(ui): add plugin icons to auto-completions + make autocompletion work upon writing full package 2025-04-04 15:28:53 +02:00
Loïc Mathieu
2a26c415bf feat(jdbc): avoid using the WorkerTaskResult queue when possible
Instead, directly process the result (add the taskrun) to avoid one rountrip inside the queue.
2025-04-04 14:15:13 +02:00
Loïc Mathieu
1e06b9f1c0 feat(jdbc): allow disabling queue cleaning. 2025-04-04 13:43:09 +02:00
Loïc Mathieu
0b64da5e84 fix(core): default namespace in namespace file 2025-04-04 11:51:00 +02:00
AJ Emerich
d95b65082f fix(docs): add title, description, and example to Dashboard chart data (#8220)
* fix(docs): add title, description, and example to Metrics chart data

* fix(docs): add title, description, example for Logs and Executions

* fix(docs): fix line break in Assert plugin docs
2025-04-04 08:18:14 +02:00
Mathieu Gabelle
1bba3e4035 refactor: migrate plugin condition to dynamic properties (#6907)
* refactor: migrate plugin condition to dynamic properties
2025-04-04 08:18:01 +02:00
Will Russell
efe0c6e1e4 fix(docs): update task type in example to updated name 2025-04-03 17:19:02 +01:00
Nicolas K.
fce7ec135e fire(core): flaky allow failure for each item test (#8228)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-03 18:00:15 +02:00
Nicolas K.
5a2456716f fix(jdbc): #8219 unquoted timestamp field breaking query (#8222)
* fix(jdbc): #8219 unquoted timestamp field breaking query

* fix(jdbc): #8219 fix hard coded quoted field

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-04-03 14:54:05 +02:00
Loïc Mathieu
f43f8c2dc0 fix(core): be tolerant of decryption issue
If we cannot decrupt outputs, let's ignore the outpot and log a warning.
This may only happen on configuratin mismatch between nodes.
2025-04-03 13:57:41 +02:00
YannC
94811d4e06 chore(ci): align plugins handle for docker publish on EE CI 2025-04-03 13:16:41 +02:00
YannC
b7166488be chore(ci): modify publish docker to align on EE 2025-04-03 11:56:11 +02:00
brian.mulier
78066fef62 fix(ui): remove all warnings from MonacoEditor.vue 2025-04-02 19:33:04 +02:00
brian.mulier
c70abcb85f fix(ui): auto-resize suggest window to fit tasks
closes #5823
2025-04-02 17:01:36 +02:00
YannC
774a4ef7a1 Feat(): ci changes (#8217)
* fix(): avoid running release workflow on releases branch

* feat(): avoid running CI on draft PR

close #4964

* fix(ci): only publish docker image in workflow release if develop branch or specific asked

close #8136
2025-04-02 15:51:28 +02:00
Florian Hussonnois
a48fd02ed7 fix(cli): fix NPE for commands not requiring plugins (#8212)
Fix: #8212
2025-04-02 14:51:41 +02:00
Loïc Mathieu
030d948521 chore(core): remove un-used attribute in FlowWithWorkerTrigger 2025-04-02 12:18:23 +02:00
Loïc Mathieu
c4aa6c1097 fix(jdbc): possible deadlock on service instance
If multiple Executors restart at the same time and there was a not of worker task to resubmit, there was a possible deadlock as the service instance table is selected for update so it can block other executors.
Using skipped lock avoid that and is still correct as other executors can skip the dead instance handling as it was already in process by the first executor.

findById was not changed in this commit as it's not part of the worker task resubmission process.
2025-04-02 10:53:54 +02:00
Loïc Mathieu
3d1a3d0e7a fix(ci): use the right GitHub token for test report 2025-04-02 10:53:28 +02:00
Loïc Mathieu
30ab030244 fix(gradle): Windows selfrun.bat
Fixes https://github.com/kestra-io/kestra-ee/issues/3324
2025-04-02 09:39:59 +02:00
brian.mulier
cc083385f0 fix(ui): better autocompletion relevance
closes #7709
2025-04-01 19:33:42 +02:00
Shruti Mantri
c14462f5fa feat: add afterExecution to basic.md (#8126)
* feat: add afterExecution to basic.md

* Update ui/src/assets/docs/basic.md

---------

Co-authored-by: AJ Emerich <aemerich@kestra.io>
2025-04-01 16:42:51 +02:00
Mathieu Gabelle
d6e470d788 fix!: update pullPolicy default value to IF_NOT_PRESENT (#8170) 2025-04-01 11:24:59 +02:00
Loïc Mathieu
58ae507e21 fix(core): mask secrets on log attributes
Fixes #3282
2025-04-01 10:09:11 +02:00
Loïc Mathieu
71110ccfc3 Revert "fix(core): HttpClient log the URL even if it's a secret"
This reverts commit 54aa935702.
2025-04-01 10:09:11 +02:00
YannC
fdcc07b546 fix(): allows namespace to be search by in filter 2025-04-01 10:07:52 +02:00
Mathieu Gabelle
221236e079 fix(scripts)!: update pull policy to IF_NOT_PRESENT (#8169)
BREAKING CHANGE: in accordance with new Docker Hub pull policy regulation, the default kestra pull policy will change from ALWAYS to IF_NOT_PRESENT
2025-04-01 08:12:39 +02:00
Ludovic DEHON
d14deaceb0 fix(core): add a meaningful log for flow that can inject defaults 2025-03-31 18:22:16 +02:00
YannC
bfdc48bbbe fix(cli): prevent FlowUpdatesCommand to crash due to plugin loader 2025-03-31 17:45:32 +02:00
brian.mulier
e6b2f1f79a fix(ui-ee): keep fetching if filtered kvs & secrets have no elements after fetch
might close kestra-io/kestra-ee#3311
2025-03-31 16:12:45 +02:00
Loïc Mathieu
0632052837 fix(core): use a stable flow logger name
If we keep the executionId in it, as it's now used to create the forward logger, a new logger will be created for each execution.
This may also fix a memory leak.
2025-03-31 14:56:13 +02:00
Florian Hussonnois
3df9d49aa0 ci: fix setversion-tag and devtools 2025-03-31 13:50:27 +02:00
Loïc Mathieu
318f2b7d5a chore(cli,jdbc-postgres): fix some compilation warnings 2025-03-31 13:17:35 +02:00
Roman Acevedo
800970a88f chore(deps): add bouncycastle:bcpkix-jdk18on to platform 2025-03-31 11:52:33 +02:00
dependabot[bot]
f717063a83 build(deps): bump org.sonarqube from 6.0.1.5171 to 6.1.0.5360
Bumps org.sonarqube from 6.0.1.5171 to 6.1.0.5360.

---
updated-dependencies:
- dependency-name: org.sonarqube
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 11:20:34 +02:00
Barthélémy Ledoux
9a7fb64943 fix: make flowWarnings show to unlock saving (#8157)
closes #8115
2025-03-31 10:59:46 +02:00
Barthélémy Ledoux
45bddb8d09 fix: task array needed better typings (#8158)
closes #8117
2025-03-31 10:59:32 +02:00
dependabot[bot]
881b009d9b build(deps): bump flyingSaucerVersion from 9.11.4 to 9.11.5
Bumps `flyingSaucerVersion` from 9.11.4 to 9.11.5.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.11.4 to 9.11.5
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.4...v9.11.5)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.11.4 to 9.11.5
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.4...v9.11.5)

---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 10:46:21 +02:00
dependabot[bot]
ab818713f6 build(deps): bump software.amazon.awssdk:bom from 2.31.6 to 2.31.11
Bumps software.amazon.awssdk:bom from 2.31.6 to 2.31.11.

---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 10:27:54 +02:00
Loïc Mathieu
d68ffa3109 chore: disable tests that are too flaky
An issue will be open to track them and re-enabled them later.
2025-03-31 10:27:46 +02:00
dependabot[bot]
addd76f9bb build(deps): bump com.azure:azure-sdk-bom from 1.2.32 to 1.2.33
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.32 to 1.2.33.
- [Release notes](https://github.com/azure/azure-sdk-for-java/releases)
- [Commits](https://github.com/azure/azure-sdk-for-java/compare/azure-sdk-bom_1.2.32...azure-sdk-bom_1.2.33)

---
updated-dependencies:
- dependency-name: com.azure:azure-sdk-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 09:58:43 +02:00
dependabot[bot]
6be939c1bd build(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.36.3 to 0.37.0.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.36.3...v0.37.0)

---
updated-dependencies:
- dependency-name: software.amazon.awssdk.crt:aws-crt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 09:44:07 +02:00
dependabot[bot]
4ea876d3fe build(deps): bump com.google.cloud:libraries-bom from 26.57.0 to 26.58.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.57.0 to 26.58.0.
- [Release notes](https://github.com/googleapis/java-cloud-bom/releases)
- [Changelog](https://github.com/googleapis/java-cloud-bom/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/java-cloud-bom/compare/v26.57.0...v26.58.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:libraries-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 09:43:26 +02:00
Miloš Paunović
42d8005eff chore(ui): show blueprint id field in case of missing title (#8154) 2025-03-31 09:40:20 +02:00
Nicolas K.
58a360fae0 feat(core-ee): #7501 split file log exporter to multiple files (#8138)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-28 17:42:41 +01:00
Loïc Mathieu
49b647e1fc fix(core): add missing docker plugin subgroup icon 2025-03-28 16:15:41 +01:00
Florian Hussonnois
b314fc393b fix(cli): properly register plugins uninstall cmd 2025-03-28 15:40:09 +01:00
Florian Hussonnois
0a298cad17 fix(core): allow dash in plugin version qualifier 2025-03-28 15:18:37 +01:00
Shruti Mantri
61170e6067 feat: add example for HasRetryAttempt condition (#8133) 2025-03-28 14:14:42 +00:00
brian.mulier
cfbffad31a fix(ui): search bars are properly working in secrets & KV pages
closes #8110
closes kestra-io/kestra-ee#3290
2025-03-28 15:02:02 +01:00
Miloš Paunović
41e2dac4ca chore(ui): add padlock icon to secrets menu item (#8129) 2025-03-28 12:44:28 +01:00
Miloš Paunović
0fa8386cb3 chore(ui): amend file tree context menu link colors (#8123) 2025-03-28 12:10:08 +01:00
github-actions[bot]
0f45c009ab chore(translations): localize to languages other than English (#8120) 2025-03-28 11:27:25 +01:00
MilosPaunovic
b86177f329 chore(translations): uniform translation keys with entrerprise edition 2025-03-28 11:21:08 +01:00
brian.mulier
fe396c455b fix(ui): global secret page design
closes kestra-io/kestra-ee#3268
2025-03-28 11:18:34 +01:00
brian.mulier
0830e11645 fix(ui): repair tenant translation 2025-03-28 11:18:34 +01:00
brian.mulier
4d7f6b2bb1 fix(ui): add routeContext where it was missing 2025-03-28 11:18:34 +01:00
brian.mulier
955c6b728b fix(webserver): handle out-of-bounds (>) namespaces fetch 2025-03-28 11:18:34 +01:00
brian.mulier
d2d26351bd fix(core): namespace service now properly detects namespaces with flows inside 2025-03-28 11:18:34 +01:00
Loïc Mathieu
f14b638f73 fix(core): compilation issue 2025-03-28 09:26:01 +01:00
Loïc Mathieu
259b5b5282 Revert "fix(core): require condition in Flow trigger (#7494)"
This reverts commit c5767fd313.
2025-03-28 09:12:40 +01:00
Miloš Paunović
b1c50374b4 chore(ui): handle editor blueprint loading problem (#8113) 2025-03-28 08:57:24 +01:00
Roman Acevedo
de2d923bd4 fix: doc and deprecated field was not showing for dynamic non-string properties (#8006)
fix: doc and deprecated field was not showing for dynamic non-string properties (#8006)
2025-03-27 18:33:23 +01:00
Florian Hussonnois
89c76208a4 fix(core): avoid flow validation error on plugin alias duplicates 2025-03-27 17:59:04 +01:00
YannC
12eb8367ec feat(): add new crudeventtype "account_locked" (#8103) 2025-03-27 17:08:04 +01:00
Nicolas K.
7421f1e93d fix(kafka runner): #2709 filter child forEach tasks before merging th… (#8095)
* fix(kafka runner): #2709 filter child forEach tasks before merging the output, and add sleep before restarting flows to ensure failure is persisted

* feat(kafka runner): #2709 wait until executions are persisted as Failed in the database before restarting

* fix(runner): put back the sleep instead of the wait

* clean(runner): remove unused variables

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-27 16:56:37 +01:00
Loïc Mathieu
5642a53893 fix(core): properly fix the issue with MapUtils.flattenToNestedMap 2025-03-27 16:28:11 +01:00
Loïc Mathieu
d5a2f4430f fix(core): HttpClient log the URL even if it's a secret
Fixes https://github.com/kestra-io/kestra/issues/8092
2025-03-27 16:00:43 +01:00
rajatsingh23
0299e0d5ce chore(ui): Hide duration switch on empty flow dashboard (#8083)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-03-27 15:48:01 +01:00
Barthélémy Ledoux
c69ac99a7f refactor: remove dead code from monacoeditor (#8088)
* refactor(MonacoEditor): improve editor state management and type safety after refactor

* fix: make theme proper valid theme

* fix only types

* remove getEditor

* more fixes

* add vuex store types in options API

* update vuex types

* fix types

* remove unused mapping

* update vuex shims

* fix types
2025-03-27 14:08:59 +01:00
brian.mulier
fd1b4d5234 fix(ui): properly detect yaml to inject json schema into MonacoEditor
closes #8090
2025-03-27 13:39:00 +01:00
Miloš Paunović
4ef3600954 chore(ui): pass custom height property to execution output debug editors (#8100) 2025-03-27 13:36:29 +01:00
Miloš Paunović
366df0f37f chore(ui): include labels of saved search filter on page reload (#8099) 2025-03-27 13:17:11 +01:00
brian.mulier
5e87655a0e fix(webserver): first eval without masking secret function to error in case of missing secret
closes #8094
2025-03-27 13:09:31 +01:00
Miloš Paunović
0f01699d27 chore(ui): make app & dashboard editors re-sizable (#8096) 2025-03-27 12:01:40 +01:00
Loïc Mathieu
0794b2bf8e fix(core): flatten map should not throw an exception
As it is called inside the Executor, it must be fail-safe.
2025-03-27 10:57:32 +01:00
Loïc Mathieu
0becaa0b97 fix(core): charset should not be taken from
Fixes #8072
2025-03-27 10:02:23 +01:00
AJ Emerich
7d3bb34fd4 feat(docs): add kestra.environment and kestra.url expressions (#8085)
https://github.com/kestra-io/kestra-ee/issues/3095
2025-03-27 09:53:24 +01:00
Florian Hussonnois
b8c55baff1 fix(cli): make worker args available through static KestraContext
part-of: kestra-io/kestra-ee#3259
2025-03-26 15:53:51 +01:00
Loïc Mathieu
1f8e5ad18e feat(*): add new methods findAllAsync for the backup 2025-03-26 14:04:01 +01:00
Miloš Paunović
945f59afd0 chore(ui): improve saved search filtering functionality (#8073)
* chore(ui): passing prefix down  to saved search label component

* chore(ui): check if filters have operation field on encoding

* chore(ui): trigger search automatically on choosing the saved item
2025-03-26 11:16:31 +01:00
YannC
491fb54e2c fix(): add missing command to flow subcommand 2025-03-26 10:23:51 +01:00
github-actions[bot]
154f145d4a chore(translations): localize to languages other than English (#8071) 2025-03-26 10:16:39 +01:00
yuri
8a73edd772 feat(ui): improve styling of saved filter searches (#8040)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-03-26 09:57:02 +01:00
Miloš Paunović
660fcd7ec6 chore(deps): regular dependency update (#8070) 2025-03-26 08:46:50 +01:00
YannC
675aa666ab chore(ci): pass plugin version to docker workflow 2025-03-25 18:43:03 +01:00
Florian Hussonnois
451de81d03 fix(build): fix gradle property for release 2025-03-25 17:38:57 +01:00
YannC
323527d7e9 chore(ci): lower build-artifacts workflow so github release can use it 2025-03-25 17:28:45 +01:00
Florian Hussonnois
ea7c709f56 chore: upgrade to version 'v0.23.0-SNAPSHOT' 2025-03-25 16:34:02 +01:00
1875 changed files with 108987 additions and 69939 deletions

View File

@@ -1,5 +1,6 @@
FROM ubuntu:24.04
ARG BUILDPLATFORM
ARG DEBIAN_FRONTEND=noninteractive
USER root
@@ -31,9 +32,23 @@ ENV SHELL=/bin/zsh
# --------------------------------------
# Java
# --------------------------------------
RUN wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb
RUN dpkg -i ./jdk-21_linux-x64_bin.deb
ENV JAVA_HOME=/usr/java/jdk-21-oracle-x64
ARG OS_ARCHITECTURE
RUN mkdir -p /usr/java
RUN echo "Building on platform: $BUILDPLATFORM"
RUN case "$BUILDPLATFORM" in \
"linux/amd64") OS_ARCHITECTURE="x64_linux" ;; \
"linux/arm64") OS_ARCHITECTURE="aarch64_linux" ;; \
"darwin/amd64") OS_ARCHITECTURE="x64_mac" ;; \
"darwin/arm64") OS_ARCHITECTURE="aarch64_mac" ;; \
*) echo "Unsupported BUILDPLATFORM: $BUILDPLATFORM" && exit 1 ;; \
esac && \
wget "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.7%2B6/OpenJDK21U-jdk_${OS_ARCHITECTURE}_hotspot_21.0.7_6.tar.gz" && \
mv OpenJDK21U-jdk_${OS_ARCHITECTURE}_hotspot_21.0.7_6.tar.gz openjdk-21.0.7.tar.gz
RUN tar -xzvf openjdk-21.0.7.tar.gz && \
mv jdk-21.0.7+6 jdk-21 && \
mv jdk-21 /usr/java/
ENV JAVA_HOME=/usr/java/jdk-21
ENV PATH="$PATH:$JAVA_HOME/bin"
# Will load a custom configuration file for Micronaut
ENV MICRONAUT_ENVIRONMENTS=local,override

View File

@@ -23,13 +23,18 @@ In the meantime, you can move onto the next step...
---
### Requirements
- Java 21 (LTS versions).
> ⚠️ Java 24 and above are not supported yet and will fail with `invalid source release: 21`.
- Gradle (comes with wrapper `./gradlew`)
- Docker (optional, for running Kestra in containers)
### Development:
- Create a `.env.development.local` file in the `ui` folder and paste the following:
```bash
# This lets the frontend know what the backend URL is but you are free to change this to your actual server URL e.g. hosted version of Kestra.
VITE_APP_API_URL=http://localhost:8080
- (Optional) By default, your dev server will target `localhost:8080`. If your backend is running elsewhere, you can create `.env.development.local` under `ui` folder with this content:
```
VITE_APP_API_URL={myApiUrl}
```
- Navigate into the `ui` folder and run `npm install` to install the dependencies for the frontend project.
@@ -74,9 +79,6 @@ kestra:
path: /tmp/kestra-wd/tmp
anonymous-usage-report:
enabled: false
server:
basic-auth:
enabled: false
datasources:
postgres:

View File

@@ -39,7 +39,7 @@
"yoavbls.pretty-ts-errors",
"github.vscode-github-actions",
"vscjava.vscode-java-pack",
"ms-azuretools.vscode-docker"
"docker.docker"
]
}
}

View File

@@ -37,6 +37,10 @@ The following dependencies are required to build Kestra locally:
- Docker & Docker Compose
- an IDE (Intellij IDEA, Eclipse or VS Code)
Thanks to the Kestra community, if using VSCode, you can also start development on either the frontend or backend with a bootstrapped docker container without the need to manually set up the environment.
Check out the [README](../.devcontainer/README.md) for set-up instructions and the associated [Dockerfile](../.devcontainer/Dockerfile) in the respository to get started.
To start contributing:
- [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the repository
- Clone the fork on your workstation:
@@ -46,7 +50,7 @@ git clone git@github.com:{YOUR_USERNAME}/kestra.git
cd kestra
```
#### Develop backend
#### Develop on the backend
The backend is made with [Micronaut](https://micronaut.io).
Open the cloned repository in your favorite IDE. In most of decent IDEs, Gradle build will be detected and all dependencies will be downloaded.
@@ -72,11 +76,10 @@ python3 -m pip install virtualenv
```
#### Develop frontend
#### Develop on the frontend
The frontend is made with [Vue.js](https://vuejs.org/) and located on the `/ui` folder.
- `npm install`
- create a file `ui/.env.development.local` with content `VITE_APP_API_URL=http://localhost:8080` (or your actual server url)
- `npm run dev` will start the development server with hot reload.
- The server start by default on port 5173 and is reachable on `http://localhost:5173`
- You can run `npm run build` in order to build the front-end that will be delivered from the backend (without running the `npm run dev`) above.

View File

@@ -1,29 +0,0 @@
name: 'Load Kestra Plugin List'
description: 'Composite action to load list of plugins'
inputs:
plugin-version:
description: "Kestra version"
default: 'LATEST'
required: true
plugin-file:
description: "File of the plugins"
default: './.plugins'
required: true
outputs:
plugins:
description: "List of all Kestra plugins"
value: ${{ steps.plugins.outputs.plugins }}
repositories:
description: "List of all Kestra repositories of plugins"
value: ${{ steps.plugins.outputs.repositories }}
runs:
using: composite
steps:
- name: Get Plugins List
id: plugins
shell: bash
run: |
PLUGINS=$([ -f ${{ inputs.plugin-file }} ] && cat ${{ inputs.plugin-file }} | grep "io\\.kestra\\." | sed -e '/#/s/^.//' | sed -e "s/LATEST/${{ inputs.plugin-version }}/g" | cut -d':' -f2- | xargs || echo '');
REPOSITORIES=$([ -f ${{ inputs.plugin-file }} ] && cat ${{ inputs.plugin-file }} | grep "io\\.kestra\\." | sed -e '/#/s/^.//' | cut -d':' -f1 | uniq | sort | xargs || echo '')
echo "plugins=$PLUGINS" >> $GITHUB_OUTPUT
echo "repositories=$REPOSITORIES" >> $GITHUB_OUTPUT

View File

@@ -1,20 +0,0 @@
name: 'Setup vars'
description: 'Composite action to setup common vars'
outputs:
tag:
description: "Git tag"
value: ${{ steps.vars.outputs.tag }}
commit:
description: "Git commit"
value: ${{ steps.vars.outputs.commit }}
runs:
using: composite
steps:
# Setup vars
- name: Set variables
id: vars
shell: bash
run: |
TAG=${GITHUB_REF#refs/*/}
echo "tag=${TAG}" >> $GITHUB_OUTPUT
echo "commit=$(git rev-parse --short "$GITHUB_SHA")" >> $GITHUB_OUTPUT

View File

@@ -1,26 +1,31 @@
# See GitHub's docs for more information on this file:
# https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
day: "wednesday"
time: "08:00"
timezone: "Europe/Paris"
open-pull-requests-limit: 50
labels:
- "dependency-upgrade"
open-pull-requests-limit: 50
# Maintain dependencies for Gradle modules
- package-ecosystem: "gradle"
directory: "/"
schedule:
# Check for updates to Gradle modules every week
interval: "weekly"
day: "wednesday"
time: "08:00"
timezone: "Europe/Paris"
open-pull-requests-limit: 50
labels:
- "dependency-upgrade"
open-pull-requests-limit: 50
# Maintain dependencies for NPM modules
- package-ecosystem: "npm"
@@ -31,8 +36,15 @@ updates:
time: "08:00"
timezone: "Europe/Paris"
open-pull-requests-limit: 50
labels: ["dependency-upgrade"]
labels:
- "dependency-upgrade"
ignore:
# Ignore updates of version 1.x, as we're using beta of 2.x
# Ignore updates of version 1.x, as we're using the beta of 2.x (still in beta)
- dependency-name: "vue-virtual-scroller"
versions: ["1.x"]
versions:
- "1.x"
# Ignore updates to monaco-yaml, version is pinned to 5.3.1 due to patch-package script additions
- dependency-name: "monaco-yaml"
versions:
- ">=5.3.2"

View File

@@ -2,7 +2,7 @@ name: Auto-Translate UI keys and create PR
on:
schedule:
- cron: "0 9-21 * * *" # Every hour from 9 AM to 9 PM
- cron: "0 9-21/3 * * *" # Every 3 hours from 9 AM to 9 PM
workflow_dispatch:
inputs:
retranslate_modified_keys:
@@ -20,13 +20,13 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
name: Checkout
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.x"
@@ -39,13 +39,10 @@ jobs:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- name: Set up Node
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: "20.x"
- name: Check keys matching
run: node ui/src/translations/check.js
- name: Set up Git
run: |
git config --global user.name "GitHub Action"
@@ -62,6 +59,9 @@ jobs:
echo "No changes to commit. Exiting with success."
exit 0
fi
git commit -m "chore(translations): localize to languages other than English"
git commit -m "chore(core): localize to languages other than english" -m "Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference."
git push -u origin $BRANCH_NAME || (git push origin --delete $BRANCH_NAME && git push -u origin $BRANCH_NAME)
gh pr create --title "Translations from en.json" --body "This PR was created automatically by a GitHub Action." --base develop --head $BRANCH_NAME --assignee anna-geller --reviewer anna-geller
gh pr create --title "Translations from en.json" --body $'This PR was created automatically by a GitHub Action.\n\nSomeone from the @kestra-io/frontend team needs to review and merge.' --base ${{ github.ref_name }} --head $BRANCH_NAME
- name: Check keys matching
run: node ui/src/translations/check.js

View File

@@ -27,7 +27,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -50,7 +50,7 @@ jobs:
# Set up JDK
- name: Set up JDK
uses: actions/setup-java@v4
uses: actions/setup-java@v5
if: ${{ matrix.language == 'java' }}
with:
distribution: 'temurin'
@@ -62,7 +62,7 @@ jobs:
- name: Build with Gradle
if: ${{ matrix.language == 'java' }}
run: ./gradlew testClasses -x :ui:installFrontend -x :ui:assembleFrontend
run: ./gradlew testClasses -x :ui:assembleFrontend
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)

View File

@@ -1,147 +0,0 @@
name: Create Docker images on Release
on:
workflow_dispatch:
inputs:
retag-latest:
description: 'Retag latest Docker images'
required: true
type: string
default: "true"
options:
- "true"
- "false"
release-tag:
description: 'Kestra Release Tag'
required: false
type: string
plugin-version:
description: 'Plugin version'
required: false
type: string
default: "LATEST"
env:
PLUGIN_VERSION: ${{ github.event.inputs.plugin-version != null && github.event.inputs.plugin-version || 'LATEST' }}
jobs:
plugins:
name: List Plugins
runs-on: ubuntu-latest
outputs:
plugins: ${{ steps.plugins.outputs.plugins }}
steps:
# Checkout
- uses: actions/checkout@v4
# Get Plugins List
- name: Get Plugins List
uses: ./.github/actions/plugins-list
id: plugins
with:
plugin-version: ${{ env.PLUGIN_VERSION }}
docker:
name: Publish Docker
needs: [ plugins ]
runs-on: ubuntu-latest
strategy:
matrix:
image:
- name: "-no-plugins"
plugins: ""
packages: jattach
python-libs: ""
- name: ""
plugins: ${{needs.plugins.outputs.plugins}}
packages: python3 python3-venv python-is-python3 python3-pip nodejs npm curl zip unzip jattach
python-libs: kestra
steps:
- uses: actions/checkout@v4
# Vars
- name: Set image name
id: vars
run: |
if [[ "${{ inputs.release-tag }}" == "" ]]; then
TAG=${GITHUB_REF#refs/*/}
echo "tag=${TAG}" >> $GITHUB_OUTPUT
else
TAG="${{ inputs.release-tag }}"
echo "tag=${TAG}" >> $GITHUB_OUTPUT
fi
if [[ "${{ env.PLUGIN_VERSION }}" == *"-SNAPSHOT" ]]; then
echo "plugins=--repositories=https://s01.oss.sonatype.org/content/repositories/snapshots ${{ matrix.image.plugins }}" >> $GITHUB_OUTPUT;
else
echo "plugins=${{ matrix.image.plugins }}" >> $GITHUB_OUTPUT
fi
# Download release
- name: Download release
uses: robinraju/release-downloader@v1.12
with:
tag: ${{steps.vars.outputs.tag}}
fileName: 'kestra-*'
out-file-path: build/executable
- name: Copy exe to image
run: |
cp build/executable/* docker/app/kestra && chmod +x docker/app/kestra
# Docker setup
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Docker - Fix Qemu
shell: bash
run: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# Docker Login
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
# Docker Build and push
- name: Push to Docker Hub
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ${{ format('kestra/kestra:{0}{1}', steps.vars.outputs.tag, matrix.image.name) }}
platforms: linux/amd64,linux/arm64
build-args: |
KESTRA_PLUGINS=${{ steps.vars.outputs.plugins }}
APT_PACKAGES=${{ matrix.image.packages }}
PYTHON_LIBRARIES=${{ matrix.image.python-libs }}
- name: Install regctl
if: github.event.inputs.retag-latest == 'true'
uses: regclient/actions/regctl-installer@main
- name: Retag to latest
if: github.event.inputs.retag-latest == 'true'
run: |
regctl image copy ${{ format('kestra/kestra:{0}{1}', steps.vars.outputs.tag, matrix.image.name) }} ${{ format('kestra/kestra:latest{0}', matrix.image.name) }}
end:
runs-on: ubuntu-latest
needs:
- docker
if: always()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
steps:
# Slack
- name: Slack notification
uses: Gamesight/slack-workflow-status@master
if: ${{ always() && env.SLACK_WEBHOOK_URL != 0 }}
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }}
name: GitHub Actions
icon_emoji: ':github-actions:'
channel: 'C02DQ1A7JLR' # _int_git channel

15
.github/workflows/e2e-scheduling.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: 'E2E tests scheduling'
# 'New E2E tests implementation started by Roman. Based on playwright in npm UI project, tests Kestra OSS develop docker image. These tests are written from zero, lets make them unflaky from the start!.'
on:
schedule:
- cron: "0 * * * *" # Every hour
workflow_dispatch:
inputs:
noInputYet:
description: 'not input yet.'
required: false
type: string
default: "no input"
jobs:
e2e:
uses: kestra-io/actions/.github/workflows/kestra-oss-e2e-tests.yml@main

View File

@@ -1,158 +0,0 @@
name: 'Reusable Workflow for Running End-to-End Tests'
on:
workflow_call:
inputs:
tags:
description: "Tags used for filtering tests to include for QA."
type: string
required: true
docker-artifact-name:
description: "The GitHub artifact containing the Kestra docker image."
type: string
required: false
docker-image-tag:
description: "The Docker image Tag for Kestra"
default: 'kestra/kestra:develop'
type: string
required: true
backend:
description: "The Kestra backend type to be used for E2E tests."
type: string
required: true
default: "postgres"
secrets:
GITHUB_AUTH_TOKEN:
description: "The GitHub Token."
required: true
GOOGLE_SERVICE_ACCOUNT:
description: "The Google Service Account."
required: false
jobs:
check:
timeout-minutes: 60
runs-on: ubuntu-latest
env:
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
E2E_TEST_DOCKER_DIR: ./kestra/e2e-tests/docker
KESTRA_BASE_URL: http://127.27.27.27:8080/ui/
steps:
# Checkout kestra
- name: Checkout kestra
uses: actions/checkout@v4
with:
path: kestra
# Setup build
- uses: kestra-io/actions/.github/actions/setup-build@main
id: build
with:
java-enabled: true
node-enabled: true
python-enabled: true
# Get Docker Image
- name: Download Kestra Image
if: inputs.docker-artifact-name != ''
uses: actions/download-artifact@v4
with:
name: ${{ inputs.docker-artifact-name }}
path: /tmp
- name: Load Kestra Image
if: inputs.docker-artifact-name != ''
run: |
docker load --input /tmp/${{ inputs.docker-artifact-name }}.tar
# Docker Compose
- name: Login to DockerHub
uses: docker/login-action@v3
if: inputs.docker-artifact-name == ''
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
# Build configuration
- name: Create additional application configuration
run: |
touch ${{ env.E2E_TEST_DOCKER_DIR }}/data/application-secrets.yml
- name: Setup additional application configuration
if: env.APPLICATION_SECRETS != null
env:
APPLICATION_SECRETS: ${{ secrets.APPLICATION_SECRETS }}
run: |
echo $APPLICATION_SECRETS | base64 -d > ${{ env.E2E_TEST_DOCKER_DIR }}/data/application-secrets.yml
# Deploy Docker Compose Stack
- name: Run Kestra (${{ inputs.backend }})
env:
KESTRA_DOCKER_IMAGE: ${{ inputs.docker-image-tag }}
run: |
cd ${{ env.E2E_TEST_DOCKER_DIR }}
echo "KESTRA_DOCKER_IMAGE=$KESTRA_DOCKER_IMAGE" >> .env
docker compose -f docker-compose-${{ inputs.backend }}.yml up -d
- name: Install Playwright Deps
run: |
cd kestra
./gradlew playwright --args="install-deps"
# Run E2E Tests
- name: Wait For Kestra UI
run: |
# Start time
START_TIME=$(date +%s)
# Timeout duration in seconds (5 minutes)
TIMEOUT_DURATION=$((5 * 60))
while [ $(curl -s -L -o /dev/null -w %{http_code} $KESTRA_BASE_URL) != 200 ]; do
echo -e $(date) "\tKestra server HTTP state: " $(curl -k -L -s -o /dev/null -w %{http_code} $KESTRA_BASE_URL) " (waiting for 200)";
# Check the elapsed time
CURRENT_TIME=$(date +%s)
ELAPSED_TIME=$((CURRENT_TIME - START_TIME))
# Break the loop if the elapsed time exceeds the timeout duration
if [ $ELAPSED_TIME -ge $TIMEOUT_DURATION ]; then
echo "Timeout reached: Exiting after 5 minutes."
exit 1;
fi
sleep 2;
done;
echo "Kestra is running: $KESTRA_BASE_URL 🚀";
continue-on-error: true
- name: Run E2E Tests (${{ inputs.tags }})
if: inputs.tags != ''
run: |
cd kestra
./gradlew e2eTestsCheck -P tags=${{ inputs.tags }}
- name: Run E2E Tests
if: inputs.tags == ''
run: |
cd kestra
./gradlew e2eTestsCheck
# Allure check
- name: Auth to Google Cloud
id: auth
if: ${{ !cancelled() && env.GOOGLE_SERVICE_ACCOUNT != 0 }}
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GOOGLE_SERVICE_ACCOUNT }}'
- uses: rlespinasse/github-slug-action@v5
- name: Publish allure report
uses: andrcuns/allure-publish-action@v2.9.0
if: ${{ !cancelled() && env.GOOGLE_SERVICE_ACCOUNT != 0 }}
env:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_AUTH_TOKEN }}
JAVA_HOME: /usr/lib/jvm/default-jvm/
with:
storageType: gcs
resultsGlob: build/allure-results
bucket: internal-kestra-host
baseUrl: "https://internal.dev.kestra.io"
prefix: ${{ format('{0}/{1}/{2}', github.repository, env.GITHUB_HEAD_REF_SLUG != '' && env.GITHUB_HEAD_REF_SLUG || github.ref_name, 'allure/playwright') }}
copyLatest: true
ignoreMissingResults: true

View File

@@ -1,10 +1,10 @@
name: Run Gradle Release
run-name: "Releasing Kestra ${{ github.event.inputs.releaseVersion }} 🚀"
name: Create new release branch
run-name: "Create new release branch Kestra ${{ github.event.inputs.releaseVersion }} 🚀"
on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'The release version (e.g., 0.21.0-rc1)'
description: 'The release version (e.g., 0.21.0)'
required: true
type: string
nextVersion:
@@ -23,29 +23,23 @@ jobs:
# Checks
- name: Check Inputs
run: |
if ! [[ "$RELEASE_VERSION" =~ ^[0-9]+(\.[0-9]+)\.0-rc[01](-SNAPSHOT)?$ ]]; then
echo "Invalid release version. Must match regex: ^[0-9]+(\.[0-9]+)\.0-rc[01](-SNAPSHOT)?$"
if ! [[ "$RELEASE_VERSION" =~ ^[0-9]+(\.[0-9]+)\.0$ ]]; then
echo "Invalid release version. Must match regex: ^[0-9]+(\.[0-9]+)\.0$"
exit 1
fi
if ! [[ "$NEXT_VERSION" =~ ^[0-9]+(\.[0-9]+)\.0-SNAPSHOT$ ]]; then
echo "Invalid next version. Must match regex: ^[0-9]+(\.[0-9]+)\.0-SNAPSHOT$"
exit 1;
fi
# Checkout
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0
# Checkout GitHub Actions
- uses: actions/checkout@v4
with:
repository: kestra-io/actions
path: actions
ref: main
path: kestra
# Setup build
- uses: ./actions/.github/actions/setup-build
- uses: kestra-io/actions/composite/setup-build@main
id: build
with:
java-enabled: true
@@ -62,20 +56,21 @@ jobs:
- name: Run Gradle Release
env:
GITHUB_PAT: ${{ secrets.GH_PERSONAL_TOKEN }}
run: |
run: |
# Extract the major and minor versions
BASE_VERSION=$(echo "$RELEASE_VERSION" | sed -E 's/^([0-9]+\.[0-9]+)\..*/\1/')
PUSH_RELEASE_BRANCH="releases/v${BASE_VERSION}.x"
cd kestra
# Create and push release branch
git checkout -b "$PUSH_RELEASE_BRANCH";
git push -u origin "$PUSH_RELEASE_BRANCH";
# Run gradle release
git checkout develop;
if [[ "$RELEASE_VERSION" == *"-SNAPSHOT" ]]; then
# -SNAPSHOT qualifier maybe used to test release-candidates
./gradlew release -Prelease.useAutomaticVersion=true \
-Prelease.releaseVersion="${RELEASE_VERSION}" \
-Prelease.newVersion="${NEXT_VERSION}" \
@@ -86,4 +81,4 @@ jobs:
-Prelease.releaseVersion="${RELEASE_VERSION}" \
-Prelease.newVersion="${NEXT_VERSION}" \
-Prelease.pushReleaseVersionBranch="${PUSH_RELEASE_BRANCH}"
fi
fi

View File

@@ -4,7 +4,7 @@ on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'The release version (e.g., 0.21.0-rc1)'
description: 'The release version (e.g., 0.21.0)'
required: true
type: string
nextVersion:
@@ -21,29 +21,21 @@ jobs:
runs-on: ubuntu-latest
steps:
# Checkout
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0
# Checkout GitHub Actions
- uses: actions/checkout@v4
with:
repository: kestra-io/actions
path: actions
ref: main
# Setup build
- uses: ./actions/.github/actions/setup-build
- uses: kestra-io/actions/composite/setup-build@main
id: build
with:
java-enabled: true
node-enabled: true
python-enabled: true
caches-enabled: true
# Get Plugins List
- name: Get Plugins List
uses: ./.github/actions/plugins-list
uses: kestra-io/actions/composite/kestra-oss/kestra-oss-plugins-list@main
id: plugins-list
with:
plugin-version: 'LATEST'
@@ -60,7 +52,7 @@ jobs:
GITHUB_PAT: ${{ secrets.GH_PERSONAL_TOKEN }}
run: |
chmod +x ./dev-tools/release-plugins.sh;
./dev-tools/release-plugins.sh \
--release-version=${{github.event.inputs.releaseVersion}} \
--next-version=${{github.event.inputs.nextVersion}} \
@@ -73,10 +65,10 @@ jobs:
GITHUB_PAT: ${{ secrets.GH_PERSONAL_TOKEN }}
run: |
chmod +x ./dev-tools/release-plugins.sh;
./dev-tools/release-plugins.sh \
--release-version=${{github.event.inputs.releaseVersion}} \
--next-version=${{github.event.inputs.nextVersion}} \
--dry-run \
--yes \
${{ steps.plugins-list.outputs.repositories }}
${{ steps.plugins-list.outputs.repositories }}

View File

@@ -17,13 +17,13 @@ jobs:
runs-on: ubuntu-latest
steps:
# Checkout
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0
# Get Plugins List
- name: Get Plugins List
uses: ./.github/actions/plugins-list
uses: kestra-io/actions/composite/kestra-oss/kestra-oss-plugins-list@main
id: plugins-list
with:
plugin-version: 'LATEST'
@@ -40,7 +40,7 @@ jobs:
GITHUB_PAT: ${{ secrets.GH_PERSONAL_TOKEN }}
run: |
chmod +x ./dev-tools/setversion-tag-plugins.sh;
./dev-tools/setversion-tag-plugins.sh \
--release-version=${{github.event.inputs.releaseVersion}} \
--yes \
@@ -52,7 +52,7 @@ jobs:
GITHUB_PAT: ${{ secrets.GH_PERSONAL_TOKEN }}
run: |
chmod +x ./dev-tools/setversion-tag-plugins.sh;
./dev-tools/setversion-tag-plugins.sh \
--release-version=${{github.event.inputs.releaseVersion}} \
--dry-run \

View File

@@ -1,5 +1,5 @@
name: Set Version and Tag
run-name: "Set version and Tag Kestra to ${{ github.event.inputs.releaseVersion }} 🚀"
name: Start release
run-name: "Start release of Kestra ${{ github.event.inputs.releaseVersion }} 🚀"
on:
workflow_dispatch:
inputs:
@@ -7,44 +7,52 @@ on:
description: 'The release version (e.g., 0.21.1)'
required: true
type: string
permissions:
contents: write
env:
RELEASE_VERSION: "${{ github.event.inputs.releaseVersion }}"
jobs:
release:
name: Release Kestra
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/heads/releases/v')
steps:
# Checks
- name: Check Inputs
- name: Parse and Check Inputs
id: parse-and-check-inputs
run: |
CURRENT_BRANCH="${{ github.ref_name }}"
if ! [[ "$CURRENT_BRANCH" == "develop" ]]; then
echo "You can only run this workflow on develop, but you ran it on $CURRENT_BRANCH"
exit 1
fi
if ! [[ "$RELEASE_VERSION" =~ ^[0-9]+(\.[0-9]+)(\.[0-9]+)(-rc[0-9])?(-SNAPSHOT)?$ ]]; then
echo "Invalid release version. Must match regex: ^[0-9]+(\.[0-9]+)(\.[0-9]+)-(rc[0-9])?(-SNAPSHOT)?$"
exit 1
fi
# Extract the major and minor versions
BASE_VERSION=$(echo "$RELEASE_VERSION" | sed -E 's/^([0-9]+\.[0-9]+)\..*/\1/')
RELEASE_BRANCH="refs/heads/releases/v${BASE_VERSION}.x"
CURRENT_BRANCH="$GITHUB_REF"
if ! [[ "$CURRENT_BRANCH" == "$RELEASE_BRANCH" ]]; then
echo "Invalid release branch. Expected $RELEASE_BRANCH, was $CURRENT_BRANCH"
exit 1
fi
RELEASE_BRANCH="releases/v${BASE_VERSION}.x"
echo "release_branch=${RELEASE_BRANCH}" >> $GITHUB_OUTPUT
# Checkout
- uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
token: ${{ secrets.GH_PERSONAL_TOKEN }}
ref: ${{ steps.parse-and-check-inputs.outputs.release_branch }}
- name: Configure Git
# Configure
- name: Git - Configure
run: |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
# Execute
- name: Run Gradle Release
- name: Start release by updating version and pushing a new tag
env:
GITHUB_PAT: ${{ secrets.GH_PERSONAL_TOKEN }}
run: |
@@ -54,4 +62,4 @@ jobs:
git commit -m"chore(version): update to version '$RELEASE_VERSION'"
git push
git tag -a "v$RELEASE_VERSION" -m"v$RELEASE_VERSION"
git push origin "v$RELEASE_VERSION"
git push --tags

86
.github/workflows/main-build.yml vendored Normal file
View File

@@ -0,0 +1,86 @@
name: Main Workflow
on:
push:
branches:
- releases/*
- develop
workflow_dispatch:
inputs:
skip-test:
description: 'Skip test'
type: choice
required: true
default: 'false'
options:
- "true"
- "false"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-main
cancel-in-progress: true
jobs:
backend-tests:
name: Backend tests
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
uses: kestra-io/actions/.github/workflows/kestra-oss-backend-tests.yml@main
secrets:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
frontend-tests:
name: Frontend tests
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
uses: kestra-io/actions/.github/workflows/kestra-oss-frontend-tests.yml@main
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-develop-docker:
name: Publish Docker
needs: [backend-tests, frontend-tests]
if: "!failure() && !cancelled() && github.ref == 'refs/heads/develop'"
uses: kestra-io/actions/.github/workflows/kestra-oss-publish-docker.yml@main
with:
plugin-version: 'LATEST-SNAPSHOT'
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
publish-develop-maven:
name: Publish develop Maven
needs: [ backend-tests, frontend-tests ]
if: "!failure() && !cancelled() && github.ref == 'refs/heads/develop'"
uses: kestra-io/actions/.github/workflows/kestra-oss-publish-maven.yml@main
secrets:
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE }}
end:
runs-on: ubuntu-latest
needs: [publish-develop-docker, publish-develop-maven]
if: always()
steps:
- name: Trigger EE Workflow
uses: peter-evans/repository-dispatch@v3
if: github.ref == 'refs/heads/develop' && needs.release.result == 'success'
with:
token: ${{ secrets.GH_PERSONAL_TOKEN }}
repository: kestra-io/kestra-ee
event-type: "oss-updated"
# Slack
- name: Slack - Notification
if: ${{ failure() && env.SLACK_WEBHOOK_URL != 0 && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop') }}
uses: kestra-io/actions/composite/slack-status@main
with:
webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}

View File

@@ -1,75 +0,0 @@
name: Main Workflow
on:
workflow_dispatch:
inputs:
plugin-version:
description: "Kestra version"
default: 'LATEST'
required: true
type: string
push:
branches:
- master
- main
- releases/*
- develop
tags:
- v*
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-main
cancel-in-progress: true
jobs:
tests:
name: Execute tests
uses: ./.github/workflows/workflow-test.yml
with:
report-status: false
release:
name: Release
needs: [tests]
if: "!startsWith(github.ref, 'refs/heads/releases')"
uses: ./.github/workflows/workflow-release.yml
with:
plugin-version: ${{ github.event.inputs.plugin-version != null && github.event.inputs.plugin-version || 'LATEST' }}
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE }}
GH_PERSONAL_TOKEN: ${{ secrets.GH_PERSONAL_TOKEN }}
end:
runs-on: ubuntu-latest
needs:
- release
if: always()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
steps:
# Update
- name: Github - Update internal
uses: benc-uk/workflow-dispatch@v1
if: github.ref == 'refs/heads/develop' && needs.docker.result == 'success'
with:
workflow: oss-build.yml
repo: kestra-io/infra
ref: master
token: ${{ secrets.GH_PERSONAL_TOKEN }}
# Slack
- name: Slack - Notification
uses: Gamesight/slack-workflow-status@master
if: ${{ always() && env.SLACK_WEBHOOK_URL != 0 }}
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }}
name: GitHub Actions
icon_emoji: ":github-actions:"
channel: "C02DQ1A7JLR" # _int_git channel

49
.github/workflows/pre-release.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: Pre Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
jobs:
build-artifacts:
name: Build Artifacts
uses: kestra-io/actions/.github/workflows/kestra-oss-build-artifacts.yml@main
backend-tests:
name: Backend tests
uses: kestra-io/actions/.github/workflows/kestra-oss-backend-tests.yml@main
secrets:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
frontend-tests:
name: Frontend tests
uses: kestra-io/actions/.github/workflows/kestra-oss-frontend-tests.yml@main
secrets:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
publish-maven:
name: Publish Maven
needs: [ backend-tests, frontend-tests ]
if: "!failure() && !cancelled()"
uses: kestra-io/actions/.github/workflows/kestra-oss-publish-maven.yml@main
secrets:
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE }}
publish-github:
name: Github Release
needs: [build-artifacts, backend-tests, frontend-tests]
if: "!failure() && !cancelled()"
uses: kestra-io/actions/.github/workflows/kestra-oss-publish-github.yml@main
secrets:
GH_PERSONAL_TOKEN: ${{ secrets.GH_PERSONAL_TOKEN }}
SLACK_RELEASES_WEBHOOK_URL: ${{ secrets.SLACK_RELEASES_WEBHOOK_URL }}

View File

@@ -0,0 +1,16 @@
name: Pull Request - Delete Docker
on:
pull_request:
types: [closed]
# TODO import a reusable one
jobs:
publish:
name: Pull Request - Delete Docker
if: github.repository == 'kestra-io/kestra' # prevent running on forks
runs-on: ubuntu-latest
steps:
- uses: dataaxiom/ghcr-cleanup-action@v1
with:
package: kestra-pr
delete-tags: ${{ github.event.pull_request.number }}

View File

@@ -2,17 +2,12 @@ name: Pull Request Workflow
on:
pull_request:
branches:
- develop
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}-pr
cancel-in-progress: true
jobs:
# ********************************************************************************************************************
# File changes detection
# ********************************************************************************************************************
file-changes:
if: ${{ github.event.pull_request.draft == false }}
name: File changes detection
@@ -33,14 +28,11 @@ jobs:
- '!{ui,.github}/**'
token: ${{ secrets.GITHUB_TOKEN }}
# ********************************************************************************************************************
# Tests
# ********************************************************************************************************************
frontend:
name: Frontend - Tests
needs: [file-changes]
if: "needs.file-changes.outputs.ui == 'true'"
uses: ./.github/workflows/workflow-frontend-test.yml
uses: kestra-io/actions/.github/workflows/kestra-oss-frontend-tests.yml@main
secrets:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -49,26 +41,17 @@ jobs:
name: Backend - Tests
needs: file-changes
if: "needs.file-changes.outputs.backend == 'true'"
uses: ./.github/workflows/workflow-backend-test.yml
uses: kestra-io/actions/.github/workflows/kestra-oss-backend-tests.yml@main
secrets:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
end:
name: End
runs-on: ubuntu-latest
if: always()
needs: [frontend, backend]
steps:
# Slack
- name: Slack notification
uses: Gamesight/slack-workflow-status@master
if: ${{ always() && env.SLACK_WEBHOOK_URL != 0 }}
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }}
name: GitHub Actions
icon_emoji: ":github-actions:"
channel: "C02DQ1A7JLR"
e2e-tests:
name: E2E - Tests
uses: kestra-io/actions/.github/workflows/kestra-oss-e2e-tests.yml@main
generate-pull-request-docker-image:
name: Generate PR docker image
uses: kestra-io/actions/.github/workflows/kestra-oss-pullrequest-publish-docker.yml@main

34
.github/workflows/release-docker.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: Publish docker
on:
workflow_dispatch:
inputs:
retag-latest:
description: 'Retag latest Docker images'
required: true
type: boolean
default: false
retag-lts:
description: 'Retag LTS Docker images'
required: true
type: boolean
default: false
plugin-version:
description: 'Plugin version'
required: false
type: string
default: "LATEST"
jobs:
publish-docker:
name: Publish Docker
if: startsWith(github.ref, 'refs/tags/v')
uses: kestra-io/actions/.github/workflows/kestra-oss-publish-docker.yml@main
with:
plugin-version: ${{ inputs.plugin-version }}
retag-latest: ${{ inputs.retag-latest }}
retag-lts: ${{ inputs.retag-lts }}
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

View File

@@ -8,23 +8,19 @@ on:
env:
JAVA_VERSION: '21'
permissions:
contents: read
jobs:
dependency-check:
name: Dependency Check
runs-on: ubuntu-latest
steps:
# Checkout
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0
# Checkout GitHub Actions
- uses: actions/checkout@v4
with:
repository: kestra-io/actions
path: actions
ref: main
# Setup build
- uses: ./actions/.github/actions/setup-build
id: build
@@ -57,21 +53,18 @@ jobs:
develop-image-check:
name: Image Check (develop)
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
actions: read
steps:
# Checkout
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0
# Checkout GitHub Actions
- uses: actions/checkout@v4
with:
repository: kestra-io/actions
path: actions
ref: main
# Setup build
- uses: ./actions/.github/actions/setup-build
- uses: kestra-io/actions/composite/setup-build@main
id: build
with:
java-enabled: false
@@ -80,42 +73,53 @@ jobs:
# Run Trivy image scan for Docker vulnerabilities, see https://github.com/aquasecurity/trivy-action
- name: Docker Vulnerabilities Check
uses: aquasecurity/trivy-action@0.30.0
uses: aquasecurity/trivy-action@0.33.1
with:
image-ref: kestra/kestra:develop
format: table
format: 'template'
template: '@/contrib/sarif.tpl'
severity: 'CRITICAL,HIGH'
output: 'trivy-results.sarif'
skip-dirs: /app/plugins
scanners: vuln
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'
category: docker-
latest-image-check:
name: Image Check (latest)
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
actions: read
steps:
# Checkout
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0
# Checkout GitHub Actions
- uses: actions/checkout@v4
with:
repository: kestra-io/actions
path: actions
ref: main
# Setup build
- uses: ./actions/.github/actions/setup-build
- uses: kestra-io/actions/composite/setup-build@main
id: build
with:
java-enabled: false
node-enabled: false
caches-enabled: true
# Run Trivy image scan for Docker vulnerabilities, see https://github.com/aquasecurity/trivy-action
- name: Docker Vulnerabilities Check
uses: aquasecurity/trivy-action@0.30.0
uses: aquasecurity/trivy-action@0.33.1
with:
image-ref: kestra/kestra:latest
format: table
skip-dirs: /app/plugins
scanners: vuln
scanners: vuln
severity: 'CRITICAL,HIGH'
output: 'trivy-results.sarif'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'

View File

@@ -1,139 +0,0 @@
name: Backend - Tests
on:
workflow_call:
secrets:
GITHUB_AUTH_TOKEN:
description: "The GitHub Token."
required: true
CODECOV_TOKEN:
description: 'Codecov Token'
required: true
SONAR_TOKEN:
description: 'Sonar Token'
required: true
GOOGLE_SERVICE_ACCOUNT:
description: 'Google Service Account'
required: true
permissions:
contents: write
checks: write
actions: read
jobs:
test:
name: Backend - Tests
runs-on: ubuntu-latest
env:
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
steps:
- uses: actions/checkout@v4
name: Checkout - Current ref
# Setup build
- uses: kestra-io/actions/.github/actions/setup-build@main
name: Setup - Build
id: build
with:
java-enabled: true
node-enabled: true
python-enabled: true
# Services
- name: Setup - Start docker compose
shell: bash
run: docker compose -f docker-compose-ci.yml up -d
# Gradle check
- name: Gradle - Build
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
env:
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
shell: bash
run: |
echo $GOOGLE_SERVICE_ACCOUNT | base64 -d > ~/.gcp-service-account.json
export GOOGLE_APPLICATION_CREDENTIALS=$HOME/.gcp-service-account.json
./gradlew check javadoc --parallel
# report test
- name: Test - Publish Test Results
uses: dorny/test-reporter@v2
if: always()
with:
name: Java Tests Report
reporter: java-junit
path: '**/build/test-results/test/TEST-*.xml'
list-suites: 'failed'
list-tests: 'failed'
fail-on-error: 'false'
# Sonar
- name: Test - Analyze with Sonar
if: env.SONAR_TOKEN != ''
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_AUTH_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
shell: bash
run: ./gradlew sonar --info
# GCP
- name: GCP - Auth with unit test account
id: auth
if: always() && env.GOOGLE_SERVICE_ACCOUNT != ''
continue-on-error: true
uses: "google-github-actions/auth@v2"
with:
credentials_json: "${{ secrets.GOOGLE_SERVICE_ACCOUNT }}"
- name: GCP - Setup Cloud SDK
if: env.GOOGLE_SERVICE_ACCOUNT != ''
uses: "google-github-actions/setup-gcloud@v2"
# Allure check
- uses: rlespinasse/github-slug-action@v5
name: Allure - Generate slug variables
- name: Allure - Publish report
uses: andrcuns/allure-publish-action@v2.9.0
if: always() && env.GOOGLE_SERVICE_ACCOUNT != ''
continue-on-error: true
env:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_AUTH_TOKEN }}
JAVA_HOME: /usr/lib/jvm/default-jvm/
with:
storageType: gcs
resultsGlob: "**/build/allure-results"
bucket: internal-kestra-host
baseUrl: "https://internal.dev.kestra.io"
prefix: ${{ format('{0}/{1}', github.repository, 'allure/java') }}
copyLatest: true
ignoreMissingResults: true
# Jacoco
- name: Jacoco - Copy reports
if: env.GOOGLE_SERVICE_ACCOUNT != ''
continue-on-error: true
shell: bash
run: |
mv build/reports/jacoco/testCodeCoverageReport build/reports/jacoco/test/
mv build/reports/jacoco/test/testCodeCoverageReport.xml build/reports/jacoco/test/jacocoTestReport.xml
gsutil -m rsync -d -r build/reports/jacoco/test/ gs://internal-kestra-host/${{ format('{0}/{1}', github.repository, 'jacoco') }}
# Codecov
- name: Codecov - Upload coverage reports
uses: codecov/codecov-action@v5
if: ${{ !cancelled() }}
continue-on-error: true
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: backend
- name: Codecov - Upload test results
uses: codecov/test-results-action@v1
if: ${{ !cancelled() }}
continue-on-error: true
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: backend

View File

@@ -1,152 +0,0 @@
name: Build Artifacts
on:
workflow_call:
inputs:
plugin-version:
description: "Kestra version"
default: 'LATEST'
required: true
type: string
outputs:
docker-tag:
value: ${{ jobs.build.outputs.docker-tag }}
description: "The Docker image Tag for Kestra"
docker-artifact-name:
value: ${{ jobs.build.outputs.docker-artifact-name }}
description: "The GitHub artifact containing the Kestra docker image name."
plugins:
value: ${{ jobs.build.outputs.plugins }}
description: "The Kestra plugins list used for the build."
jobs:
build:
name: Build - Artifacts
runs-on: ubuntu-latest
outputs:
docker-tag: ${{ steps.vars.outputs.tag }}
docker-artifact-name: ${{ steps.vars.outputs.artifact }}
plugins: ${{ steps.plugins.outputs.plugins }}
env:
PLUGIN_VERSION: ${{ github.event.inputs.plugin-version != null && github.event.inputs.plugin-version || 'LATEST' }}
steps:
- name: Checkout - Current ref
uses: actions/checkout@v4
with:
fetch-depth: 0
# Npm
- name: Setup - Npm install
shell: bash
working-directory: ui
run: npm ci
# Setup build
- uses: kestra-io/actions/.github/actions/setup-build@main
name: Setup - Build
id: build
with:
java-enabled: true
node-enabled: true
# Get Plugins List
- name: Plugins - Get List
uses: ./.github/actions/plugins-list
if: "!startsWith(github.ref, 'refs/tags/v')"
id: plugins-list
with:
plugin-version: ${{ env.PLUGIN_VERSION }}
# Set Plugins List
- name: Plugins - Set List
id: plugins
if: "!startsWith(github.ref, 'refs/tags/v')"
shell: bash
run: |
PLUGINS="${{ steps.plugins-list.outputs.plugins }}"
TAG=${GITHUB_REF#refs/*/}
if [[ $TAG = "master" || $TAG == v* ]]; then
echo "plugins=$PLUGINS" >> $GITHUB_OUTPUT
else
echo "plugins=--repositories=https://s01.oss.sonatype.org/content/repositories/snapshots $PLUGINS" >> $GITHUB_OUTPUT
fi
# Build
- name: Gradle - Build
shell: bash
run: |
./gradlew executableJar
- name: Artifacts - Copy exe to image
shell: bash
run: |
cp build/executable/* docker/app/kestra && chmod +x docker/app/kestra
# Docker Tag
- name: Setup - Docker vars
id: vars
shell: bash
run: |
TAG=${GITHUB_REF#refs/*/}
if [[ $TAG = "master" ]]
then
TAG="latest";
elif [[ $TAG = "develop" ]]
then
TAG="develop";
elif [[ $TAG = v* ]]
then
TAG="${TAG}";
else
TAG="build-${{ github.run_id }}";
fi
echo "tag=${TAG}" >> $GITHUB_OUTPUT
echo "artifact=docker-kestra-${TAG}" >> $GITHUB_OUTPUT
# Docker setup
- name: Docker - Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Docker - Fix Qemu
shell: bash
run: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes
- name: Docker - Setup Buildx
uses: docker/setup-buildx-action@v3
# Docker Build
- name: Docker - Build & export image
uses: docker/build-push-action@v6
if: "!startsWith(github.ref, 'refs/tags/v')"
with:
context: .
push: false
file: Dockerfile
tags: |
kestra/kestra:${{ steps.vars.outputs.tag }}
build-args: |
KESTRA_PLUGINS=${{ steps.plugins.outputs.plugins }}
APT_PACKAGES=${{ env.DOCKER_APT_PACKAGES }}
PYTHON_LIBRARIES=${{ env.DOCKER_PYTHON_LIBRARIES }}
outputs: type=docker,dest=/tmp/${{ steps.vars.outputs.artifact }}.tar
# Upload artifacts
- name: Artifacts - Upload JAR
uses: actions/upload-artifact@v4
with:
name: jar
path: build/libs/
- name: Artifacts - Upload Executable
uses: actions/upload-artifact@v4
with:
name: exe
path: build/executable/
- name: Artifacts - Upload Docker
uses: actions/upload-artifact@v4
if: "!startsWith(github.ref, 'refs/tags/v')"
with:
name: ${{ steps.vars.outputs.artifact }}
path: /tmp/${{ steps.vars.outputs.artifact }}.tar

View File

@@ -1,84 +0,0 @@
name: Frontend - Tests
on:
workflow_call:
secrets:
GITHUB_AUTH_TOKEN:
description: "The GitHub Token."
required: true
CODECOV_TOKEN:
description: 'Codecov Token'
required: true
env:
# to save corepack from itself
COREPACK_INTEGRITY_KEYS: 0
jobs:
test:
name: Frontend - Tests
runs-on: ubuntu-latest
steps:
- id: checkout
name: Checkout - Current ref
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Npm - install
shell: bash
working-directory: ui
run: npm ci
- name: Npm - lint
uses: reviewdog/action-eslint@v1
with:
github_token: ${{ secrets.GITHUB_AUTH_TOKEN }}
reporter: github-pr-review
workdir: ui
- name: Npm - Run build
shell: bash
working-directory: ui
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: npm run build
- name: Run front-end unit tests
shell: bash
working-directory: ui
run: npm run test:cicd
- name: Storybook - Install Playwright
shell: bash
working-directory: ui
run: npx playwright install --with-deps
- name: Storybook - Build
shell: bash
working-directory: ui
run: npm run build-storybook --quiet
- name: Storybook - Run tests
shell: bash
working-directory: ui
run: |
npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \
"npx http-server storybook-static --port 6006 --silent" \
"npx wait-on tcp:127.0.0.1:6006 && npm run test:storybook"
- name: Codecov - Upload coverage reports
uses: codecov/codecov-action@v5
if: ${{ !cancelled() && github.event.pull_request.head.repo.full_name == github.repository }}
continue-on-error: true
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: frontend
- name: Codecov - Upload test results
uses: codecov/test-results-action@v1
if: ${{ !cancelled() }}
continue-on-error: true
with:
token: ${{ secrets.CODECOV_TOKEN && github.event.pull_request.head.repo.full_name == github.repository }}
flags: frontend

View File

@@ -1,29 +0,0 @@
name: Github - Release
on:
workflow_call:
jobs:
publish:
name: Github - Release
runs-on: ubuntu-latest
steps:
# Download Exec
- name: Artifacts - Download executable
uses: actions/download-artifact@v4
if: startsWith(github.ref, 'refs/tags/v')
with:
name: exe
path: build/executable
# GitHub Release
- name: GitHub - Create release
id: create_github_release
uses: "marvinpinto/action-automatic-releases@latest"
if: startsWith(github.ref, 'refs/tags/v')
continue-on-error: true
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false
files: |
build/executable/*

View File

@@ -1,140 +0,0 @@
name: Publish - Docker
on:
workflow_dispatch:
inputs:
plugin-version:
description: "Kestra version"
default: 'LATEST'
required: false
type: string
force-download-artifact:
description: 'Force download artifact'
required: false
type: string
default: "true"
workflow_call:
inputs:
plugin-version:
description: "Kestra version"
default: 'LATEST'
required: false
type: string
force-download-artifact:
description: 'Force download artifact'
required: false
type: string
default: "true"
secrets:
DOCKERHUB_USERNAME:
description: "The Dockerhub username."
required: true
DOCKERHUB_PASSWORD:
description: "The Dockerhub password."
required: true
jobs:
# ********************************************************************************************************************
# Build
# ********************************************************************************************************************
build-artifacts:
name: Build Artifacts
if: ${{ github.event.inputs.force-download-artifact == 'true' }}
uses: ./.github/workflows/workflow-build-artifacts.yml
with:
plugin-version: ${{ github.event.inputs.plugin-version != null && github.event.inputs.plugin-version || 'LATEST' }}
# ********************************************************************************************************************
# Docker
# ********************************************************************************************************************
publish:
name: Publish - Docker
runs-on: ubuntu-latest
needs: build-artifacts
if: |
always() &&
(needs.build-artifacts.result == 'success' ||
github.event.inputs.force-download-artifact != 'true')
env:
PLUGIN_VERSION: ${{ github.event.inputs.plugin-version != null && github.event.inputs.plugin-version || 'LATEST' }}
strategy:
matrix:
image:
- tag: -no-plugins
packages: jattach
plugins: false
python-libraries: ""
- tag: ""
plugins: true
packages: python3 python3-venv python-is-python3 python3-pip nodejs npm curl zip unzip jattach
python-libraries: kestra
steps:
- name: Checkout - Current ref
uses: actions/checkout@v4
# Docker setup
- name: Docker - Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Docker - Fix Qemu
shell: bash
run: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes
- name: Docker - Setup Docker Buildx
uses: docker/setup-buildx-action@v3
# Docker Login
- name: Docker - Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
# # Get Plugins List
- name: Plugins - Get List
uses: ./.github/actions/plugins-list
id: plugins-list
if: ${{ matrix.image.plugins}}
with:
plugin-version: ${{ env.PLUGIN_VERSION }}
# Vars
- name: Docker - Set variables
shell: bash
id: vars
run: |
TAG=${GITHUB_REF#refs/*/}
if [[ $TAG = "master" || $TAG == v* ]]; then
echo "plugins=${{ matrix.image.plugins }}" >> $GITHUB_OUTPUT
else
echo "plugins=--repositories=https://s01.oss.sonatype.org/content/repositories/snapshots ${{ matrix.image.plugins }}" >> $GITHUB_OUTPUT
fi
echo "tag=${TAG}${{ matrix.image.tag }}" >> $GITHUB_OUTPUT
# Build Docker Image
- name: Artifacts - Download executable
uses: actions/download-artifact@v4
with:
name: exe
path: build/executable
- name: Docker - Copy exe to image
shell: bash
run: |
cp build/executable/* docker/app/kestra && chmod +x docker/app/kestra
# Docker Build and push
- name: Docker - Build image
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: kestra/kestra:${{ steps.vars.outputs.tag }}
platforms: linux/amd64,linux/arm64
build-args: |
KESTRA_PLUGINS=${{ steps.vars.outputs.plugins }}
APT_PACKAGES=${{ matrix.image.packages }}
PYTHON_LIBRARIES=${{ matrix.image.python-libraries }}

View File

@@ -1,57 +0,0 @@
name: Publish - Maven
on:
workflow_call:
secrets:
SONATYPE_USER:
description: "The Sonatype username."
required: true
SONATYPE_PASSWORD:
description: "The Sonatype password."
required: true
SONATYPE_GPG_KEYID:
description: "The Sonatype GPG key id."
required: true
SONATYPE_GPG_PASSWORD:
description: "The Sonatype GPG password."
required: true
SONATYPE_GPG_FILE:
description: "The Sonatype GPG file."
required: true
jobs:
publish:
name: Publish - Maven
runs-on: ubuntu-latest
steps:
- name: Checkout - Current ref
uses: actions/checkout@v4
# Setup build
- name: Setup - Build
uses: kestra-io/actions/.github/actions/setup-build@main
id: build
with:
java-enabled: true
node-enabled: true
# Publish
- name: Publish - Release package to Maven Central
shell: bash
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USER }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE}}
run: |
mkdir -p ~/.gradle/
echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
./gradlew publishToMavenCentral
# Gradle dependency
- name: Java - Gradle dependency graph
uses: gradle/actions/dependency-submission@v4

View File

@@ -1,81 +0,0 @@
name: Release
on:
workflow_dispatch:
inputs:
plugin-version:
description: "Kestra version"
default: 'LATEST'
required: false
type: string
publish-docker:
description: "Publish Docker image"
default: 'false'
required: false
type: string
workflow_call:
inputs:
plugin-version:
description: "Kestra version"
default: 'LATEST'
required: false
type: string
secrets:
DOCKERHUB_USERNAME:
description: "The Dockerhub username."
required: true
DOCKERHUB_PASSWORD:
description: "The Dockerhub password."
required: true
SONATYPE_USER:
description: "The Sonatype username."
required: true
SONATYPE_PASSWORD:
description: "The Sonatype password."
required: true
SONATYPE_GPG_KEYID:
description: "The Sonatype GPG key id."
required: true
SONATYPE_GPG_PASSWORD:
description: "The Sonatype GPG password."
required: true
SONATYPE_GPG_FILE:
description: "The Sonatype GPG file."
required: true
GH_PERSONAL_TOKEN:
description: "The Github personal token."
required: true
jobs:
build-artifacts:
name: Build - Artifacts
uses: ./.github/workflows/workflow-build-artifacts.yml
with:
plugin-version: ${{ github.event.inputs.plugin-version != null && github.event.inputs.plugin-version || 'LATEST' }}
Docker:
name: Publish Docker
needs: build-artifacts
uses: ./.github/workflows/workflow-publish-docker.yml
if: startsWith(github.ref, 'refs/heads/develop') || github.event.inputs.publish-docker == 'true'
with:
force-download-artifact: 'false'
plugin-version: ${{ github.event.inputs.plugin-version != null && github.event.inputs.plugin-version || 'LATEST' }}
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
Maven:
name: Publish Maven
uses: ./.github/workflows/workflow-publish-maven.yml
secrets:
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE }}
Github:
name: Github Release
needs: build-artifacts
if: startsWith(github.ref, 'refs/tags/v')
uses: ./.github/workflows/workflow-github-release.yml

View File

@@ -1,97 +0,0 @@
name: Tests
on:
schedule:
- cron: '0 4 * * 1,2,3,4,5'
workflow_call:
inputs:
report-status:
description: "Report status of the jobs in outputs"
type: string
required: false
default: false
outputs:
frontend_status:
description: "Status of the frontend job"
value: ${{ jobs.set-frontend-status.outputs.frontend_status }}
backend_status:
description: "Status of the backend job"
value: ${{ jobs.set-backend-status.outputs.backend_status }}
jobs:
file-changes:
name: File changes detection
runs-on: ubuntu-latest
timeout-minutes: 60
outputs:
ui: ${{ steps.changes.outputs.ui }}
backend: ${{ steps.changes.outputs.backend }}
steps:
- uses: actions/checkout@v4
if: "!startsWith(github.ref, 'refs/tags/v')"
- uses: dorny/paths-filter@v3
if: "!startsWith(github.ref, 'refs/tags/v')"
id: changes
with:
filters: |
ui:
- 'ui/**'
backend:
- '!{ui,.github}/**'
token: ${{ secrets.GITHUB_TOKEN }}
frontend:
name: Frontend - Tests
needs: file-changes
if: "needs.file-changes.outputs.ui == 'true' || startsWith(github.ref, 'refs/tags/v')"
uses: ./.github/workflows/workflow-frontend-test.yml
secrets:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
backend:
name: Backend - Tests
needs: file-changes
if: "needs.file-changes.outputs.backend == 'true' || startsWith(github.ref, 'refs/tags/v')"
uses: ./.github/workflows/workflow-backend-test.yml
secrets:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
# Output every job status
# To be used in other workflows
report-status:
name: Report Status
runs-on: ubuntu-latest
needs: [ frontend, backend ]
if: always() && (inputs.report-status == 'true')
outputs:
frontend_status: ${{ steps.set-frontend-status.outputs.frontend_status }}
backend_status: ${{ steps.set-backend-status.outputs.backend_status }}
steps:
- id: set-frontend-status
name: Set frontend job status
run: echo "::set-output name=frontend_status::${{ needs.frontend.result }}"
- id: set-backend-status
name: Set backend job status
run: echo "::set-output name=backend_status::${{ needs.backend.result }}"
notify:
name: Notify - Slack
runs-on: ubuntu-latest
needs: [ frontend, backend ]
if: github.event_name == 'schedule'
steps:
- name: Notify failed CI
id: send-ci-failed
if: |
always() && (needs.frontend.result != 'success' ||
needs.backend.result != 'success')
uses: kestra-io/actions/.github/actions/send-ci-failed@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

1
.gitignore vendored
View File

@@ -59,3 +59,4 @@ core/src/main/resources/gradle.properties
*storybook.log
storybook-static
/jmh-benchmarks/src/main/resources/gradle.properties

View File

@@ -3,10 +3,12 @@
# Format: <RepositoryName>:<GroupId>:<ArtifactId>:<Version>
#
# Uncomment the lines corresponding to the plugins to be installed:
#plugin-ai:io.kestra.plugin:plugin-ai:LATEST
#plugin-airbyte:io.kestra.plugin:plugin-airbyte:LATEST
#plugin-airflow:io.kestra.plugin:plugin-airflow:LATEST
#plugin-amqp:io.kestra.plugin:plugin-amqp:LATEST
#plugin-ansible:io.kestra.plugin:plugin-ansible:LATEST
#plugin-anthropic:io.kestra.plugin:plugin-anthropic:LATEST
#plugin-aws:io.kestra.plugin:plugin-aws:LATEST
#plugin-azure:io.kestra.plugin:plugin-azure:LATEST
#plugin-cassandra:io.kestra.plugin:plugin-cassandra:LATEST
@@ -17,6 +19,7 @@
#plugin-databricks:io.kestra.plugin:plugin-databricks:LATEST
#plugin-datahub:io.kestra.plugin:plugin-datahub:LATEST
#plugin-dataform:io.kestra.plugin:plugin-dataform:LATEST
#plugin-datagen:io.kestra.plugin:plugin-datagen:LATEST
#plugin-dbt:io.kestra.plugin:plugin-dbt:LATEST
#plugin-debezium:io.kestra.plugin:plugin-debezium-db2:LATEST
#plugin-debezium:io.kestra.plugin:plugin-debezium-mongodb:LATEST
@@ -24,18 +27,23 @@
#plugin-debezium:io.kestra.plugin:plugin-debezium-oracle:LATEST
#plugin-debezium:io.kestra.plugin:plugin-debezium-postgres:LATEST
#plugin-debezium:io.kestra.plugin:plugin-debezium-sqlserver:LATEST
#plugin-deepseek:io.kestra.plugin:plugin-deepseek:LATEST
#plugin-docker:io.kestra.plugin:plugin-docker:LATEST
#plugin-elasticsearch:io.kestra.plugin:plugin-elasticsearch:LATEST
#plugin-fivetran:io.kestra.plugin:plugin-fivetran:LATEST
#plugin-fs:io.kestra.plugin:plugin-fs:LATEST
#plugin-gcp:io.kestra.plugin:plugin-gcp:LATEST
#plugin-gemini:io.kestra.plugin:plugin-gemini:LATEST
#plugin-git:io.kestra.plugin:plugin-git:LATEST
#plugin-github:io.kestra.plugin:plugin-github:LATEST
#plugin-gitlab:io.kestra.plugin:plugin-gitlab:LATEST
#plugin-googleworkspace:io.kestra.plugin:plugin-googleworkspace:LATEST
#plugin-graalvm:io.kestra.plugin:plugin-graalvm:LATEST
#plugin-graphql:io.kestra.plugin:plugin-graphql:LATEST
#plugin-hightouch:io.kestra.plugin:plugin-hightouch:LATEST
#plugin-hubspot:io.kestra.plugin:plugin-hubspot:LATEST
#plugin-huggingface:io.kestra.plugin:plugin-huggingface:LATEST
#plugin-influxdb:io.kestra.plugin:plugin-influxdb:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-as400:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-clickhouse:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-db2:LATEST
@@ -56,32 +64,43 @@
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-arrow-flight:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-sqlite:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-sybase:LATEST
#plugin-jenkins:io.kestra.plugin:plugin-jenkins:LATEST
#plugin-jira:io.kestra.plugin:plugin-jira:LATEST
#plugin-kafka:io.kestra.plugin:plugin-kafka:LATEST
#plugin-kestra:io.kestra.plugin:plugin-kestra:LATEST
#plugin-kubernetes:io.kestra.plugin:plugin-kubernetes:LATEST
#plugin-ldap:io.kestra.plugin:plugin-langchain4j:LATEST
#plugin-ldap:io.kestra.plugin:plugin-ldap:LATEST
#plugin-linear:io.kestra.plugin:plugin-linear:LATEST
#plugin-malloy:io.kestra.plugin:plugin-malloy:LATEST
#plugin-meilisearch:io.kestra.plugin:plugin-meilisearch:LATEST
#plugin-minio:io.kestra.plugin:plugin-minio:LATEST
#plugin-mistral:io.kestra.plugin:plugin-mistral:LATEST
#plugin-modal:io.kestra.plugin:plugin-modal:LATEST
#plugin-mongodb:io.kestra.plugin:plugin-mongodb:LATEST
#plugin-mqtt:io.kestra.plugin:plugin-mqtt:LATEST
#plugin-nats:io.kestra.plugin:plugin-nats:LATEST
#plugin-neo4j:io.kestra.plugin:plugin-neo4j:LATEST
#plugin-notifications:io.kestra.plugin:plugin-notifications:LATEST
#plugin-notion:io.kestra.plugin:plugin-notion:LATEST
#plugin-ollama:io.kestra.plugin:plugin-ollama:LATEST
#plugin-openai:io.kestra.plugin:plugin-openai:LATEST
#plugin-opensearch:io.kestra.plugin:plugin-opensearch:LATEST
#plugin-perplexity:io.kestra.plugin:plugin-perplexity:LATEST
#plugin-powerbi:io.kestra.plugin:plugin-powerbi:LATEST
#plugin-pulsar:io.kestra.plugin:plugin-pulsar:LATEST
#plugin-redis:io.kestra.plugin:plugin-redis:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-bun:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-deno:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-go:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-groovy:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-jbang:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-julia:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-jython:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-lua:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-nashorn:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-node:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-perl:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-php:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-powershell:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-python:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-r:LATEST
@@ -89,16 +108,18 @@
#plugin-scripts:io.kestra.plugin:plugin-script-shell:LATEST
#plugin-serdes:io.kestra.plugin:plugin-serdes:LATEST
#plugin-servicenow:io.kestra.plugin:plugin-servicenow:LATEST
#plugin-singer:io.kestra.plugin:plugin-singer:LATEST
#plugin-sifflet:io.kestra.plugin:plugin-sifflet:LATEST
#plugin-soda:io.kestra.plugin:plugin-soda:LATEST
#plugin-solace:io.kestra.plugin:plugin-solace:LATEST
#plugin-spark:io.kestra.plugin:plugin-spark:LATEST
#plugin-sqlmesh:io.kestra.plugin:plugin-sqlmesh:LATEST
#plugin-supabase:io.kestra.plugin:plugin-supabase:LATEST
#plugin-surrealdb:io.kestra.plugin:plugin-surrealdb:LATEST
#plugin-terraform:io.kestra.plugin:plugin-terraform:LATEST
#plugin-transform:io.kestra.plugin:plugin-transform-grok:LATEST
#plugin-transform:io.kestra.plugin:plugin-transform-json:LATEST
#plugin-tika:io.kestra.plugin:plugin-tika:LATEST
#plugin-trivy:io.kestra.plugin:plugin-trivy:LATEST
#plugin-weaviate:io.kestra.plugin:plugin-weaviate:LATEST
#plugin-zendesk:io.kestra.plugin:plugin-zendesk:LATEST
#plugin-typesense:io.kestra.plugin:plugin-typesense:LATEST

305
AGENTS.md Normal file
View File

@@ -0,0 +1,305 @@
# Kestra AGENTS.md
This file provides guidance for AI coding agents working on the Kestra project. Kestra is an open-source data orchestration and scheduling platform built with Java (Micronaut) and Vue.js.
## Repository Layout
- **`core/`**: Core Kestra framework and task definitions
- **`cli/`**: Command-line interface and server implementation
- **`webserver/`**: REST API server implementation
- **`ui/`**: Vue.js frontend application
- **`jdbc-*`**: Database connector modules (H2, MySQL, PostgreSQL)
- **`script/`**: Script execution engine
- **`storage-local/`**: Local file storage implementation
- **`repository-memory/`**: In-memory repository implementation
- **`runner-memory/`**: In-memory execution runner
- **`processor/`**: Task processing engine
- **`model/`**: Data models and Data Transfer Objects
- **`platform/`**: Platform-specific implementations
- **`tests/`**: Integration test framework
- **`e2e-tests/`**: End-to-end testing suite
## Development Environment
### Prerequisites
- Java 21+
- Node.js 22+ and npm
- Python 3, pip, and python venv
- Docker & Docker Compose
- Gradle (wrapper included)
### Quick Setup with Devcontainer
The easiest way to get started is using the provided devcontainer:
1. Install VSCode Remote Development extension
2. Run `Dev Containers: Open Folder in Container...` from command palette
3. Select the Kestra root folder
4. Wait for Gradle build to complete
### Manual Setup
1. Clone the repository
2. Run `./gradlew build` to build the backend
3. Navigate to `ui/` and run `npm install`
4. Create configuration files as described below
## Configuration Files
### Backend Configuration
Create `cli/src/main/resources/application-override.yml`:
**Local Mode (H2 database):**
```yaml
micronaut:
server:
cors:
enabled: true
configurations:
all:
allowedOrigins:
- http://localhost:5173
```
**Standalone Mode (PostgreSQL):**
```yaml
kestra:
repository:
type: postgres
storage:
type: local
local:
base-path: "/app/storage"
queue:
type: postgres
tasks:
tmp-dir:
path: /tmp/kestra-wd/tmp
anonymous-usage-report:
enabled: false
datasources:
postgres:
url: jdbc:postgresql://host.docker.internal:5432/kestra
driverClassName: org.postgresql.Driver
username: kestra
password: k3str4
flyway:
datasources:
postgres:
enabled: true
locations:
- classpath:migrations/postgres
ignore-migration-patterns: "*:missing,*:future"
out-of-order: true
micronaut:
server:
cors:
enabled: true
configurations:
all:
allowedOrigins:
- http://localhost:5173
```
### Frontend Configuration
Create `ui/.env.development.local` for environment variables.
## Running the Application
### Backend
- **Local mode**: `./gradlew runLocal` (uses H2 database)
- **Standalone mode**: Use VSCode Run and Debug with main class `io.kestra.cli.App` and args `server standalone`
### Frontend
- Navigate to `ui/` directory
- Run `npm run dev` for development server (port 5173)
- Run `npm run build` for production build
## Building and Testing
### Backend
```bash
# Build the project
./gradlew build
# Run tests
./gradlew test
# Run specific module tests
./gradlew :core:test
# Clean build
./gradlew clean build
```
### Frontend
```bash
cd ui
npm install
npm run test
npm run lint
npm run build
```
### End-to-End Tests
```bash
# Build and start E2E tests
./build-and-start-e2e-tests.sh
# Or use the Makefile
make install
make install-plugins
make start-standalone-postgres
```
## Development Guidelines
### Java Backend
- Use Java 21 features
- Follow Micronaut framework patterns
- Add Swagger annotations for API documentation
- Use annotation processors (enable in IDE)
- Set `MICRONAUT_ENVIRONMENTS=local,override` for custom config
- Set `KESTRA_PLUGINS_PATH` for custom plugin loading
### Vue.js Frontend
- Vue 3 with Composition API
- TypeScript for type safety
- Vite for build tooling
- ESLint and Prettier for code quality
- Component-based architecture in `src/components/`
### Code Style
- Follow `.editorconfig` settings
- Use 4 spaces for Java, 2 spaces for YAML/JSON/CSS
- Enable format on save in VSCode
- Use Prettier for frontend code formatting
## Testing Strategy
### Backend Testing
- Unit tests in `src/test/java/`
- Integration tests in `tests/` module
- Use Micronaut test framework
- Test both local and standalone modes
### Frontend Testing
- Unit tests with Jest
- E2E tests with Playwright
- Component testing with Storybook
- Run `npm run test:unit` and `npm run test:e2e`
## Plugin Development
### Creating Plugins
- Follow the [Plugin Developer Guide](https://kestra.io/docs/plugin-developer-guide/)
- Place JAR files in `KESTRA_PLUGINS_PATH`
- Use the plugin template structure
- Test with both local and standalone modes
### Plugin Loading
- Set `KESTRA_PLUGINS_PATH` environment variable
- Use devcontainer mounts for local development
- Plugins are loaded at startup
## Common Issues and Solutions
### JavaScript Heap Out of Memory
Set `NODE_OPTIONS=--max-old-space-size=4096` environment variable.
### CORS Issues
Ensure backend CORS is configured for `http://localhost:5173` when using frontend dev server.
### Database Connection Issues
- Use `host.docker.internal` instead of `localhost` when connecting from devcontainer
- Verify PostgreSQL is running and accessible
- Check database credentials and permissions
### Gradle Build Issues
- Clear Gradle cache: `./gradlew clean`
- Check Java version compatibility
- Verify all dependencies are available
## Pull Request Guidelines
### Before Submitting
1. Run all tests: `./gradlew test` and `npm test`
2. Check code formatting: `./gradlew spotlessCheck`
3. Verify CORS configuration if changing API
4. Test both local and standalone modes
5. Update documentation for user-facing changes
### Commit Messages
- Follow conventional commit format
- Use present tense ("Add feature" not "Added feature")
- Reference issue numbers when applicable
- Keep commits focused and atomic
### Review Checklist
- [ ] All tests pass
- [ ] Code follows project style guidelines
- [ ] Documentation is updated
- [ ] No breaking changes without migration guide
- [ ] CORS properly configured if API changes
- [ ] Both local and standalone modes tested
## Useful Commands
```bash
# Quick development commands
./gradlew runLocal # Start local backend
./gradlew :ui:build # Build frontend
./gradlew clean build # Clean rebuild
npm run dev # Start frontend dev server
make install # Install Kestra locally
make start-standalone-postgres # Start with PostgreSQL
# Testing commands
./gradlew test # Run all backend tests
./gradlew :core:test # Run specific module tests
npm run test # Run frontend tests
npm run lint # Lint frontend code
```
## Getting Help
- Open a [GitHub issue](https://github.com/kestra-io/kestra/issues)
- Join the [Kestra Slack community](https://kestra.io/slack)
- Check the [main documentation](https://kestra.io/docs)
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `MICRONAUT_ENVIRONMENTS` | Custom config environments | `local,override` |
| `KESTRA_PLUGINS_PATH` | Path to custom plugins | `/workspaces/kestra/local/plugins` |
| `NODE_OPTIONS` | Node.js options | `--max-old-space-size=4096` |
| `JAVA_HOME` | Java installation path | `/usr/java/jdk-21` |
Remember: Always test your changes in both local and standalone modes, and ensure CORS is properly configured for frontend development.

View File

@@ -1,849 +0,0 @@
# 0.22.2
**Full Changelog**: [v0.22.1....v0.22.2](https://github.com/kestra-io/kestra/compare/v0.22.1...v0.22.2)
### 🚀 Enhancements
- **jdbc:** Allow disabling queue cleaning. ([a63dbe8e8](https://github.com/kestra-io/kestra/commit/a63dbe8e8))
- **jdbc-h2,jdbc-mysql,jdbc-postgres:** Add an index on queues.key ([412837952](https://github.com/kestra-io/kestra/commit/412837952))
- **ui:** Ability to hide secret value when typing in secrets ([59cc56186](https://github.com/kestra-io/kestra/commit/59cc56186))
### 🩹 Fixes
- **core:** Default namespace in namespace file ([ffd06a57e](https://github.com/kestra-io/kestra/commit/ffd06a57e))
- **ui:** Prevent infinite loading loop in Namespace KV Store & Secrets pages if there is none ([8fb6e6af2](https://github.com/kestra-io/kestra/commit/8fb6e6af2))
- **ui:** Amend namespace files creation & editing problems ([#8279](https://github.com/kestra-io/kestra/pull/8279))
- **core:** Fix NPE when generating flow graph ([37ef0a8b3](https://github.com/kestra-io/kestra/commit/37ef0a8b3))
### 🏡 Chore
- **version:** Update the CHANGELOG.MD with details for 0.22.1 ([120d06454](https://github.com/kestra-io/kestra/commit/120d06454))
- **ui:** Amend the sizing of editor panels ([#8277](https://github.com/kestra-io/kestra/pull/8277))
- **ui:** Pass prop to maximize the height of namespace file editor ([#8278](https://github.com/kestra-io/kestra/pull/8278))
- Upgrade to 0.22.2 ([546d5478d](https://github.com/kestra-io/kestra/commit/546d5478d))
### ❤️ Contributors
- Brian.mulier ([@brian-mulier-p](https://github.com/brian-mulier-p))
- Florian Hussonnois ([@fhussonnois](https://github.com/fhussonnois))
- Miloš Paunović ([@MilosPaunovic](https://github.com/MilosPaunovic))
- Loïc Mathieu ([@loicmathieu](https://github.com/loicmathieu))
# 0.22.1
**Full Changelog**: [v0.22.0....v0.22.1](https://github.com/kestra-io/kestra/compare/v0.22.0...v0.22.1)
### 🚀 Enhancements
- Add afterExecution to basic.md ([#8126](https://github.com/kestra-io/kestra/pull/8126))
### 🩹 Fixes
- **cli**: prevent FlowUpdatesCommand to crash due to plugin loader ([YannC](https://github.com/kestra-io/kestra/commit/3ce2cdaeb915d98debfb635215d8604abbc869c2))
- **core:** Use a stable flow logger name ([7cfbb91e7](https://github.com/kestra-io/kestra/commit/7cfbb91e7))
- **core:** HttpClient log the URL even if it's a secret" ([ae223c8d7](https://github.com/kestra-io/kestra/commit/ae223c8d7))
- **core:** Mask secrets on log attributes ([94dcba126](https://github.com/kestra-io/kestra/commit/94dcba126))
- **ui:** Keep fetching if filtered kvs & secrets have no elements after fetch ([5757b576e](https://github.com/kestra-io/kestra/commit/5757b576e))
- **gradle:** Windows selfrun.bat ([9cb51ba0e](https://github.com/kestra-io/kestra/commit/9cb51ba0e))
- **jdbc:** Possible deadlock on service instance ([6ead4e63c](https://github.com/kestra-io/kestra/commit/6ead4e63c))
- **cli:** Fix NPE for commands not requiring plugins ([#8212](https://github.com/kestra-io/kestra/pull/8212))
- **core:** Be tolerant of decryption issue ([38f68dae5](https://github.com/kestra-io/kestra/commit/38f68dae5))
- **jdbc:** #8219 unquoted timestamp field breaking query ([#8222](https://github.com/kestra-io/kestra/pull/8222), [#8219](https://github.com/kestra-io/kestra/issues/8219))
### 🏡 Chore
- **version:** Update the CHANGELOG.MD with details for 0.22.0 ([b78748ebf](https://github.com/kestra-io/kestra/commit/b78748ebf))
- **ci:** Modify publish docker to align on EE ([fedbffbdf](https://github.com/kestra-io/kestra/commit/fedbffbdf))
- **ci:** Align plugins handle for docker publish on EE CI ([632c5836d](https://github.com/kestra-io/kestra/commit/632c5836d))
- ae223c8: Revert "fix(core): HttpClient log the URL even if it's a secret" (Loïc Mathieu)
- Upgrade to 0.22.1 ([9857930da](https://github.com/kestra-io/kestra/commit/9857930da))
### ❤️ Contributors
- Loïc Mathieu ([@loicmathieu](https://github.com/loicmathieu))
- Nicolas K. <nk_mikmak@hotmail.com>
- YannC <ycoornaert@kestra.io>
- Florian Hussonnois ([@fhussonnois](https://github.com/fhussonnois))
- Shruti Mantri <shruti1810@gmail.com>
- MilosPaunovic ([@MilosPaunovic](https://github.com/MilosPaunovic))
- Brian.mulier ([@brian-mulier-p](https://github.com/brian-mulier-p))
# 0.22.0
**Full Changelog**: [v0.21.0...v0.22.0](https://github.com/kestra-io/kestra/compare/v0.21.0...v0.22.0)
### 🚀 Enhancements
- **ui:** Don't show deprecated tasks in the plugins list ([8d00c8a55](https://github.com/kestra-io/kestra/commit/8d00c8a55))
- **webserver:** If no date provided for dashboard, then use default timewindow ([b86b4bb16](https://github.com/kestra-io/kestra/commit/b86b4bb16))
- Add a shadow to cards ([#7038](https://github.com/kestra-io/kestra/pull/7038))
- **ui:** Multiple improvements of no code editor ([#7076](https://github.com/kestra-io/kestra/pull/7076))
- **ui:** Display attempts status on taskrun on left ([84447fd42](https://github.com/kestra-io/kestra/commit/84447fd42))
- **ui:** Improve the task array component ([#7095](https://github.com/kestra-io/kestra/pull/7095))
- Show a lock on EE only pages ([#7093](https://github.com/kestra-io/kestra/pull/7093))
- **ui:** Allow task re-ordering from no code editor ([#7120](https://github.com/kestra-io/kestra/pull/7120))
- **ui:** Add finally block to no code editor ([#7123](https://github.com/kestra-io/kestra/pull/7123))
- **build:** Add script to makefile ([#7125](https://github.com/kestra-io/kestra/pull/7125))
- **ui:** Add a link to the filtered Executions table. ([#7129](https://github.com/kestra-io/kestra/pull/7129))
- **ui:** Multiple improvements of no code editor ([#7146](https://github.com/kestra-io/kestra/pull/7146))
- **core:** New Publish task for metrics ([#7122](https://github.com/kestra-io/kestra/pull/7122))
- **jdbc-*:** Delete subflow_executions table ([671eb2b57](https://github.com/kestra-io/kestra/commit/671eb2b57))
- **ui:** Add keyboard shortcuts dialog to editor ([#6628](https://github.com/kestra-io/kestra/pull/6628))
- **ui:** Now display an error when SSE failed ([#7177](https://github.com/kestra-io/kestra/pull/7177))
- **ui:** Docs markdown alert styled based on alert level in product. ([#6818](https://github.com/kestra-io/kestra/pull/6818))
- **ui:** Add option to choose visible columns in flow and execution listings ([#6932](https://github.com/kestra-io/kestra/pull/6932))
- Theme switch to "theme switch" the charts ([#7151](https://github.com/kestra-io/kestra/pull/7151))
- **ui:** Add script to help with creation of release notes ([#7212](https://github.com/kestra-io/kestra/pull/7212))
- **core:** Allow loading secrets from a different namspace ([21aebe4e7](https://github.com/kestra-io/kestra/commit/21aebe4e7))
- **webserver:** Optimize queue usage for follow endpoints ([13be8b812](https://github.com/kestra-io/kestra/commit/13be8b812))
- **webserver:** Improvement to ExecutionStreaminService ([4c401ce0c](https://github.com/kestra-io/kestra/commit/4c401ce0c))
- **cicd:** Codecov + tests report ([03dccd144](https://github.com/kestra-io/kestra/commit/03dccd144))
- **cicd:** Add codecov bundle analysis ([ab2a0108a](https://github.com/kestra-io/kestra/commit/ab2a0108a))
- **webserver:** Use a shared queue consumer from the log follow endpoint ([2a95aee96](https://github.com/kestra-io/kestra/commit/2a95aee96))
- **core:** Add sanity check to request task ([#7230](https://github.com/kestra-io/kestra/pull/7230))
- **ci:** Add workflows for release process ([480fc7589](https://github.com/kestra-io/kestra/commit/480fc7589))
- **cicd:** Add codecov flags ([3f429ef0a](https://github.com/kestra-io/kestra/commit/3f429ef0a))
- **core:** Simplify Pebble error messages ([1eacb447d](https://github.com/kestra-io/kestra/commit/1eacb447d))
- **cicd:** Add unit test for js ([#7246](https://github.com/kestra-io/kestra/pull/7246))
- **cicd:** Add test analysis on frontend ([123f74803](https://github.com/kestra-io/kestra/commit/123f74803))
- **cicd:** Don't mark failed for front end test ([1bbe0e659](https://github.com/kestra-io/kestra/commit/1bbe0e659))
- **cicd:** Restore codeql weekly ([0c3ed3b75](https://github.com/kestra-io/kestra/commit/0c3ed3b75))
- **core, jdbc:** Directly process WorkerTaskResult from flowable tasks ([be1871430](https://github.com/kestra-io/kestra/commit/be1871430))
- **ui:** Center view when switching between topology modes ([#7257](https://github.com/kestra-io/kestra/pull/7257))
- Give blueprint pages a distinct name ([#7254](https://github.com/kestra-io/kestra/pull/7254))
- **core:** Added FileEmpty & FileExists Pebble Functions ([88a5cd69e](https://github.com/kestra-io/kestra/commit/88a5cd69e))
- **jdbc:** Purge execution queue early ([dd8ae5e64](https://github.com/kestra-io/kestra/commit/dd8ae5e64))
- **jdbc:** Puerge worker task result queue early ([31d221241](https://github.com/kestra-io/kestra/commit/31d221241))
- **jdbc:** Purge worker job queue early ([e7f551edc](https://github.com/kestra-io/kestra/commit/e7f551edc))
- **core:** Add system.correlationId label to triggered executions ([ed1449363](https://github.com/kestra-io/kestra/commit/ed1449363))
- **jdbc:** Queues.updated should be set when the record is updated ([9d717caf9](https://github.com/kestra-io/kestra/commit/9d717caf9))
- **jdbc:** Clean more eagerly some queues based on configuration ([13ac335c9](https://github.com/kestra-io/kestra/commit/13ac335c9))
- **core, jdbc:** Use an elastic thread pool ([f8a6e3fb0](https://github.com/kestra-io/kestra/commit/f8a6e3fb0))
- **jdbc:** Consume multiple times the execution and worker task result queues ([41712b8d8](https://github.com/kestra-io/kestra/commit/41712b8d8))
- ([#7389](https://github.com/kestra-io/kestra/pull/7389))
- ([#7432](https://github.com/kestra-io/kestra/pull/7432))
- **ui:** Add keyboard shortcuts for changing editor font size ([#7450](https://github.com/kestra-io/kestra/pull/7450))
- **ui:** Introduce topology export to image files ([#7541](https://github.com/kestra-io/kestra/pull/7541))
- Add plugin search command ([e7950279b](https://github.com/kestra-io/kestra/commit/e7950279b))
- **ui:** Improve inspecting details of multiple executions ([#7516](https://github.com/kestra-io/kestra/pull/7516))
- **ui:** Add ability to have persistent filter options ([#7276](https://github.com/kestra-io/kestra/pull/7276))
- Add full examples for datetimebetween condition ([#7598](https://github.com/kestra-io/kestra/pull/7598))
- **ui:** Introduce the execution timeline section on overview tab ([#7498](https://github.com/kestra-io/kestra/pull/7498))
- **ui:** Make filter dropdown be positioned below the input caret ([#7614](https://github.com/kestra-io/kestra/pull/7614))
- **core:** Enhance plugin management ([a098847c6](https://github.com/kestra-io/kestra/commit/a098847c6))
- **ui:** Allow reordering tabs in the editor ([#7531](https://github.com/kestra-io/kestra/pull/7531))
- **core:** Improve performance of ExecutorService.handleChildWorkerTaskResult ([fa07cbd3b](https://github.com/kestra-io/kestra/commit/fa07cbd3b))
- **#7636:** Add default options for HttpClient ([5b42d0adb](https://github.com/kestra-io/kestra/commit/5b42d0adb))
- **#7636:** Add default options for HttpClient" ([7ccb97a96](https://github.com/kestra-io/kestra/commit/7ccb97a96))
- **core:** Replace new ArrayList by Collections.emptyList() ([ff3f90465](https://github.com/kestra-io/kestra/commit/ff3f90465))
- **core:** Use HashMap.newHashMap(int) ([677585213](https://github.com/kestra-io/kestra/commit/677585213))
- **core:** Improve merging outputs by merging them at the task level ([8c708e2d5](https://github.com/kestra-io/kestra/commit/8c708e2d5))
- Add examples for conditions - 3 ([#7657](https://github.com/kestra-io/kestra/pull/7657))
- Add examples for flow conditions ([#7659](https://github.com/kestra-io/kestra/pull/7659))
- Add example for expression condition ([#7660](https://github.com/kestra-io/kestra/pull/7660))
- **#7636:** Add default options for HttpClient ([#7650](https://github.com/kestra-io/kestra/pull/7650))
- **core, jdbc:** DashboardRepository.findAll() ([cd97705d8](https://github.com/kestra-io/kestra/commit/cd97705d8))
- **ui:** Add markdown formatting to flow run dialog ([#7663](https://github.com/kestra-io/kestra/pull/7663))
- **core, jdbc:** Dynamic worker group key ([2c63112a5](https://github.com/kestra-io/kestra/commit/2c63112a5))
- **core-ee:** #2838 add audit log shipper ([#7701](https://github.com/kestra-io/kestra/pull/7701), [#2838](https://github.com/kestra-io/kestra/issues/2838))
- **core:** Allow reading file from any namespaces ([dfe5552a1](https://github.com/kestra-io/kestra/commit/dfe5552a1))
- **core:** Add new crudEventType value ([f7e61a46d](https://github.com/kestra-io/kestra/commit/f7e61a46d))
- **core:** #7721 add namespace to pebble file functions ([#7729](https://github.com/kestra-io/kestra/pull/7729), [#7721](https://github.com/kestra-io/kestra/issues/7721))
- **webserver:** Mask the secret() function result from eval outputs ([88341bb5c](https://github.com/kestra-io/kestra/commit/88341bb5c))
- **core:** Handle worker group fallback inside the scheduler ([e9f2711cd](https://github.com/kestra-io/kestra/commit/e9f2711cd))
- **core:** #5467 add namespaces in the namespaceFiles parameter ([#7749](https://github.com/kestra-io/kestra/pull/7749), [#5467](https://github.com/kestra-io/kestra/issues/5467))
- **core:** Add outputs to the Flow trigger ([1692cab53](https://github.com/kestra-io/kestra/commit/1692cab53))
- **core:** Custom log filter ([3ef11044a](https://github.com/kestra-io/kestra/commit/3ef11044a))
- **core-ee:** Add json format to file log exporter ([#7789](https://github.com/kestra-io/kestra/pull/7789))
- **ui:** Introduce kv() and secret() pebble autocompletions ([a064c7a95](https://github.com/kestra-io/kestra/commit/a064c7a95))
- **core:** Add execution state in Pebbe context ([d0af5767d](https://github.com/kestra-io/kestra/commit/d0af5767d))
- **core:** AfterExecution tasks ([39b8fc103](https://github.com/kestra-io/kestra/commit/39b8fc103))
- **core,jdbc:** Switch back to a cached thread pool for async JDBC queue ([c2e62d653](https://github.com/kestra-io/kestra/commit/c2e62d653))
- **build:** Configure heap size to max 50% of available memory ([#7800](https://github.com/kestra-io/kestra/pull/7800))
- **core:** Redact KESTRA_JAVA_OPTS from the env available to executions ([ecfe925ec](https://github.com/kestra-io/kestra/commit/ecfe925ec))
- Add finally to the flow assets in basic.md ([#7857](https://github.com/kestra-io/kestra/pull/7857))
- **core:** Add afterExecution to the topology ([f7019af9d](https://github.com/kestra-io/kestra/commit/f7019af9d))
- **ui:** Add `afterExecution` block to no code editor ([#7848](https://github.com/kestra-io/kestra/pull/7848))
- **cli:** Add new --all option to plugin install cmd ([#7375](https://github.com/kestra-io/kestra/pull/7375))
- **core:** Add Kestra env name and URL to the expression context ([1ba54cd08](https://github.com/kestra-io/kestra/commit/1ba54cd08))
- **webserver:** Add Kestra URL to the config endpoint ([70e6d47c1](https://github.com/kestra-io/kestra/commit/70e6d47c1))
- **ui:** Add copy button to kv store listing rows ([#7907](https://github.com/kestra-io/kestra/pull/7907))
- **ui:** Implement a default tab setting for flows ([#7917](https://github.com/kestra-io/kestra/pull/7917))
- ⚠️ Make kv pebble function raise error by default ([#7855](https://github.com/kestra-io/kestra/pull/7855))
- **ui:** Add the option to copy single/all logs to clipboard ([#7755](https://github.com/kestra-io/kestra/pull/7755))
- **ui:** Add beta badge global component ([#7934](https://github.com/kestra-io/kestra/pull/7934))
- **model, core:** Document tasks props that are internal storage URI ([745c64c4b](https://github.com/kestra-io/kestra/commit/745c64c4b))
- **core:** Add correlationId to the Flow trigger ([a7433c6f6](https://github.com/kestra-io/kestra/commit/a7433c6f6))
- ***:** Allow disabling flow logs and use a specific logger for executions, tasks and triggers ([11a166486](https://github.com/kestra-io/kestra/commit/11a166486))
- **core:** Require existing namespace ([6194f244c](https://github.com/kestra-io/kestra/commit/6194f244c))
- **ui:** Introduce global KV Store view ([ab7788aea](https://github.com/kestra-io/kestra/commit/ab7788aea))
- **core:** Allow null or empty proxy address to bypass proxy conf ([73c7a2d3d](https://github.com/kestra-io/kestra/commit/73c7a2d3d))
- **core:** Speed up namespace file download and add a log & metrics ([f29aab071](https://github.com/kestra-io/kestra/commit/f29aab071))
- **core:** #7932 add file exist comportment to NamespaceFiles ([#7979](https://github.com/kestra-io/kestra/pull/7979), [#7932](https://github.com/kestra-io/kestra/issues/7932))
- **core:** Add new subkey arg to secret pebble function ([0987d0b34](https://github.com/kestra-io/kestra/commit/0987d0b34))
- Multi panel editor without the refactor ([#7971](https://github.com/kestra-io/kestra/pull/7971))
- Parse docs is 2 steps to avoid user waiting with nothing ([#7149](https://github.com/kestra-io/kestra/pull/7149))
- **core,jdbc:** Reset the trigger inside the JdbcExecutor ([4a3d6b30d](https://github.com/kestra-io/kestra/commit/4a3d6b30d))
- **ui:** Introduce global Secrets page ([d9ac26716](https://github.com/kestra-io/kestra/commit/d9ac26716))
- **docs:** Add example for best practice with multiline json http post request ([#8023](https://github.com/kestra-io/kestra/pull/8023))
- **core:** #5467 add inheritance for KV in pebble and Get task ([#8031](https://github.com/kestra-io/kestra/pull/8031), [#5467](https://github.com/kestra-io/kestra/issues/5467))
- Cleaner multipanel tab move ([#8029](https://github.com/kestra-io/kestra/pull/8029))
- **ui:** Improve styling of saved filter searches ([#8040](https://github.com/kestra-io/kestra/pull/8040))
- ***:** Add new methods findAllAsync for the backup ([c965f2f64](https://github.com/kestra-io/kestra/commit/c965f2f64))
- **core-ee:** #7501 split file log exporter to multiple files ([#8138](https://github.com/kestra-io/kestra/pull/8138), [#7501](https://github.com/kestra-io/kestra/issues/7501))
### 🩹 Fixes
- **cli:** Flow watcher should compute plugin defaults ([07dfaada9](https://github.com/kestra-io/kestra/commit/07dfaada9))
- **ui:** Dynamic format date ([d17fe2548](https://github.com/kestra-io/kestra/commit/d17fe2548))
- Namespaces should have the card background ([b8fac95e1](https://github.com/kestra-io/kestra/commit/b8fac95e1))
- **styles:** Remove background color from edit buttons ([#7037](https://github.com/kestra-io/kestra/pull/7037))
- Use proper css variables for table colors ([#7049](https://github.com/kestra-io/kestra/pull/7049))
- Remove default variables for box-shadow ([f1b294065](https://github.com/kestra-io/kestra/commit/f1b294065))
- Color of tags in executions list ([#7035](https://github.com/kestra-io/kestra/pull/7035))
- **core:** RestartForEachItem() is flaky ([6afdbb01f](https://github.com/kestra-io/kestra/commit/6afdbb01f))
- **script:** AbstractExecScript.injectDefaults should throw IllegalVariableEvaluationException ([2777b3438](https://github.com/kestra-io/kestra/commit/2777b3438))
- **cli:** Repeate flaky tests FileChangedEventListenerTest ([03caf3825](https://github.com/kestra-io/kestra/commit/03caf3825))
- **demo:** Make button clickable with utm link ([491546557](https://github.com/kestra-io/kestra/commit/491546557))
- Remove the topbar from namepasce/flows ([accbafe13](https://github.com/kestra-io/kestra/commit/accbafe13))
- Remove some warnings ([7a299e51f](https://github.com/kestra-io/kestra/commit/7a299e51f))
- **ui:** Amend no code editor breadcrumbs issue ([#7054](https://github.com/kestra-io/kestra/pull/7054))
- **docs:** Remove custom dashboard website component ([e1a4f2e2f](https://github.com/kestra-io/kestra/commit/e1a4f2e2f))
- Unlock audit logs in execution ([157566300](https://github.com/kestra-io/kestra/commit/157566300))
- Transfer utm parameters correctly ([0e09f6821](https://github.com/kestra-io/kestra/commit/0e09f6821))
- **ui:** Fix missing param kind for blueprint in flow editor ([#7087](https://github.com/kestra-io/kestra/pull/7087))
- **core:** Subflow validation didn't work anymore ([9b2c4c9a1](https://github.com/kestra-io/kestra/commit/9b2c4c9a1))
- **core:** Retry flaky test AbstractRunnerTest.multipleConditionTriggerFailed() ([db4f186bd](https://github.com/kestra-io/kestra/commit/db4f186bd))
- **core:** Http request with head and 404 and sending the wrong exception ([6ee0e86ca](https://github.com/kestra-io/kestra/commit/6ee0e86ca))
- **cli:** Retry flaky test FlowCreateOrUpdateCommandTest.runWithDelete. ([96f4466f1](https://github.com/kestra-io/kestra/commit/96f4466f1))
- **core:** Subflow labels must not be overriden by parent flow ones ([6190d9113](https://github.com/kestra-io/kestra/commit/6190d9113))
- Use the new charts in the flows page ([#6970](https://github.com/kestra-io/kestra/pull/6970))
- Plugin header icon for ticket #4252 ([#4252](https://github.com/kestra-io/kestra/issues/4252))
- Make sure normal single line table dont' push the build #7018 ([#7018](https://github.com/kestra-io/kestra/issues/7018))
- **core:** Retry flaky test TimeoutTest.timeout() ([4e753c7b9](https://github.com/kestra-io/kestra/commit/4e753c7b9))
- Protect axios JSON parsing ([a4dcb8dcd](https://github.com/kestra-io/kestra/commit/a4dcb8dcd))
- Remove FE warnings on flow edition ([65dd4f9fd](https://github.com/kestra-io/kestra/commit/65dd4f9fd))
- Remove Labels tag type warning ([3a8b24eda](https://github.com/kestra-io/kestra/commit/3a8b24eda))
- Avoid clearing selected value on every error ([631a016e0](https://github.com/kestra-io/kestra/commit/631a016e0))
- **ui:** Remove useless double click row action ([e527f0133](https://github.com/kestra-io/kestra/commit/e527f0133))
- **ci:** Update scripts/workflows for plugins ([555b769aa](https://github.com/kestra-io/kestra/commit/555b769aa))
- Use the proper variable for select header in table ([#7107](https://github.com/kestra-io/kestra/pull/7107))
- Make table links primary instead of purple ([#7106](https://github.com/kestra-io/kestra/pull/7106))
- **ui:** Restore namespace filter manual typing & various improvements ([#7127](https://github.com/kestra-io/kestra/pull/7127))
- **core:** Remove the dynamic property patterns ([e6827f273](https://github.com/kestra-io/kestra/commit/e6827f273))
- **cli:** Print help on missing parameters ([ae05de4a1](https://github.com/kestra-io/kestra/commit/ae05de4a1))
- **ui:** Amend log lines in Firefox ([#7133](https://github.com/kestra-io/kestra/pull/7133))
- Enterprise edition tag in light mode ([85ebf49b6](https://github.com/kestra-io/kestra/commit/85ebf49b6))
- Sidemenu bring back the gray hover ([e15eb5587](https://github.com/kestra-io/kestra/commit/e15eb5587))
- **ui:** Get the string fields in no code to use editor and have auto completion back ([#7150](https://github.com/kestra-io/kestra/pull/7150))
- **ui:** Switching from custom Flow blueprints tab to dashboard was not working ([fa5ef3b4c](https://github.com/kestra-io/kestra/commit/fa5ef3b4c))
- **ui:** Custom Dashboard name overflows. ([#7124](https://github.com/kestra-io/kestra/pull/7124))
- Setup docId for blueprints ([9499ee2c2](https://github.com/kestra-io/kestra/commit/9499ee2c2))
- Bring back hover in main menu ([1bbe48fe5](https://github.com/kestra-io/kestra/commit/1bbe48fe5))
- **core:** Process runner are not serialized correctly on worker ([c91827610](https://github.com/kestra-io/kestra/commit/c91827610))
- **ui:** Amend pagination on namespace flows listing ([#7163](https://github.com/kestra-io/kestra/pull/7163))
- **core:** Retry flaky test AbstractRunnerTest.restartFailedThenFailureWithGlobalErrors ([560703fde](https://github.com/kestra-io/kestra/commit/560703fde))
- **ui:** Null-safe search filters ([21733d849](https://github.com/kestra-io/kestra/commit/21733d849))
- **core:** Retry flaky test AbstractRunnereTest.concurrencyQueuePause ([f8b64cfbd](https://github.com/kestra-io/kestra/commit/f8b64cfbd))
- **ui:** Amend translation string for no results ([#7172](https://github.com/kestra-io/kestra/pull/7172))
- **ui:** Align dashboard button label to icon ([#7175](https://github.com/kestra-io/kestra/pull/7175))
- **core:** Retry test HttpClientTest.getText ([20d55122e](https://github.com/kestra-io/kestra/commit/20d55122e))
- **core:** Retry flaky test AbstractRunnerTest.restartForEachItem ([30db740de](https://github.com/kestra-io/kestra/commit/30db740de))
- **core:** Make flow/namespace variables available for input expr ([8d8b7e7a6](https://github.com/kestra-io/kestra/commit/8d8b7e7a6))
- **ui:** Global plugin doc with new redesign + auto-expand properties initially ([bbb03b288](https://github.com/kestra-io/kestra/commit/bbb03b288))
- **theme:** Make plugin rendering reactive to theme switch ([9619dca76](https://github.com/kestra-io/kestra/commit/9619dca76))
- **core:** #7181 log level rendered as string ([#7198](https://github.com/kestra-io/kestra/pull/7198), [#7181](https://github.com/kestra-io/kestra/issues/7181))
- **core:** Request option doesn't initialize properly ([a0483dc20](https://github.com/kestra-io/kestra/commit/a0483dc20))
- **ui:** Prevent doubling the executions chart on flow overview ([#7219](https://github.com/kestra-io/kestra/pull/7219))
- **core:** Possible NPE on LabelService.containsAll ([ecd36ec2a](https://github.com/kestra-io/kestra/commit/ecd36ec2a))
- **ui:** Amend the language switching issue ([#7235](https://github.com/kestra-io/kestra/pull/7235))
- Add comment on i18n code ([e0ee26a9c](https://github.com/kestra-io/kestra/commit/e0ee26a9c))
- Labels should not be purple if inactive ([95b94f396](https://github.com/kestra-io/kestra/commit/95b94f396))
- **webserver,core:** Move the LogStreamService in core so EE can use it for apps ([84c07ef01](https://github.com/kestra-io/kestra/commit/84c07ef01))
- **ci:** Fix and remove unecessary setps in set version workflows ([dc8576afe](https://github.com/kestra-io/kestra/commit/dc8576afe))
- Make dashboard tables the right color ([6f7bb80c6](https://github.com/kestra-io/kestra/commit/6f7bb80c6))
- Use the udpated labelsFromQuery in labels ([ec967a57f](https://github.com/kestra-io/kestra/commit/ec967a57f))
- **ci:** Workflow test correct previous job status usage ([9ba27b9bd](https://github.com/kestra-io/kestra/commit/9ba27b9bd))
- **ci:** Disabled previous generate translations CI ([5dcd27c06](https://github.com/kestra-io/kestra/commit/5dcd27c06))
- **ci:** Missing checkout in release step ([09ff9d405](https://github.com/kestra-io/kestra/commit/09ff9d405))
- **ci:** Removed useless name in action files ([4986d68f5](https://github.com/kestra-io/kestra/commit/4986d68f5))
- **ci:** Pass correctly secret + cleanup ([945564366](https://github.com/kestra-io/kestra/commit/945564366))
- **cicd:** Add npm install on vulnerabilities check ([9790f0237](https://github.com/kestra-io/kestra/commit/9790f0237))
- **ci:** Workflow test ouptputs + changes for codecov ([c3e830c2c](https://github.com/kestra-io/kestra/commit/c3e830c2c))
- **ci:** Inputs instead of secrets ([c53239470](https://github.com/kestra-io/kestra/commit/c53239470))
- **core:** #7227 cron schedule with timezone and backfile not triggering ([#7285](https://github.com/kestra-io/kestra/pull/7285), [#7227](https://github.com/kestra-io/kestra/issues/7227))
- Force run docs ([#7289](https://github.com/kestra-io/kestra/pull/7289))
- Collapsed menu colors in light mode ([0becf7433](https://github.com/kestra-io/kestra/commit/0becf7433))
- **ui:** Match chart colors ([#7290](https://github.com/kestra-io/kestra/pull/7290))
- **makefile:** Build plugin now build main branch too ([#7297](https://github.com/kestra-io/kestra/pull/7297))
- **core:** Flacky trigger with backfile test ([#7295](https://github.com/kestra-io/kestra/pull/7295))
- **core:** Http client was not using deprecated setter ([25370d10b](https://github.com/kestra-io/kestra/commit/25370d10b))
- **core:** Do not validate subflow if namespace or id is pebble ([#7294](https://github.com/kestra-io/kestra/pull/7294))
- **h2:** Remove indenting in sql file ([#7306](https://github.com/kestra-io/kestra/pull/7306))
- **core:** Add request.yaml file back ([#7308](https://github.com/kestra-io/kestra/pull/7308))
- **core:** Possible NPE when an execution has no labels ([7dbf86d54](https://github.com/kestra-io/kestra/commit/7dbf86d54))
- **cicd:** Npm install in the wrong folder for vulnerabilities checks ([7bf42cb1c](https://github.com/kestra-io/kestra/commit/7bf42cb1c))
- Add proper ellipsis to sidemenu ([#7361](https://github.com/kestra-io/kestra/pull/7361))
- Trim bookmarks better ([#7359](https://github.com/kestra-io/kestra/pull/7359))
- **ui:** Make sure bulk selection is taking into account only selected items ([#7362](https://github.com/kestra-io/kestra/pull/7362))
- Make menu hierarchy get closer to the original designs ([#7102](https://github.com/kestra-io/kestra/pull/7102))
- **core:** Render list ([b45a44bd3](https://github.com/kestra-io/kestra/commit/b45a44bd3))
- **jdbc:** Delete the executor state at the correct stage ([1d65fd96b](https://github.com/kestra-io/kestra/commit/1d65fd96b))
- **ui:** Refresh dashboard list ([#7370](https://github.com/kestra-io/kestra/pull/7370))
- **core:** Handle http request with no content type ([239fb6a68](https://github.com/kestra-io/kestra/commit/239fb6a68))
- **cicd:** Add mariadb plugins on docker image ([5b29a0d07](https://github.com/kestra-io/kestra/commit/5b29a0d07))
- **scheduler:** Delete trigger when flow is not found ([#7366](https://github.com/kestra-io/kestra/pull/7366))
- **cli:** Disable by default OTEL metrics ([def8fa3ff](https://github.com/kestra-io/kestra/commit/def8fa3ff))
- Changing language should work with providers too ([b8d0ae3ec](https://github.com/kestra-io/kestra/commit/b8d0ae3ec))
- **ui:** Fix slack button on error toast ([ad651cdc5](https://github.com/kestra-io/kestra/commit/ad651cdc5))
- **ui:** Properly handle the operation labels in filter component ([#7399](https://github.com/kestra-io/kestra/pull/7399))
- **core:** Taskrun list can be null ([ddfed2e65](https://github.com/kestra-io/kestra/commit/ddfed2e65))
- **ui:** Correct english translations ([#7401](https://github.com/kestra-io/kestra/pull/7401))
- **core:** ForEachItem inside an If task ([d9d2f8697](https://github.com/kestra-io/kestra/commit/d9d2f8697))
- **test:** Attempt at making the test not flakky ([#7400](https://github.com/kestra-io/kestra/pull/7400))
- Enable rendering of commands properties inside CommandsWrapper ([#7381](https://github.com/kestra-io/kestra/pull/7381))
- Restore red dot when there is news ([fbd893434](https://github.com/kestra-io/kestra/commit/fbd893434))
- **tests:** Wider maxDuration for retry-failed-flow-duration.yml ([d55ce16f5](https://github.com/kestra-io/kestra/commit/d55ce16f5))
- **ui:** Better duration consistency on Gantt chart ([4a55485cd](https://github.com/kestra-io/kestra/commit/4a55485cd))
- **tests:** Logs are asynchronously inserted so we wait for them to be fully in ([13cb0fb96](https://github.com/kestra-io/kestra/commit/13cb0fb96))
- **ui:** Improve modifying inputs from no code editor ([#7440](https://github.com/kestra-io/kestra/pull/7440))
- **core:** Provide tenantId when looking for subflow ([#7442](https://github.com/kestra-io/kestra/pull/7442))
- **core:** Move back to the old worker thread pool because it was restricting it to 1 thread ([372327581](https://github.com/kestra-io/kestra/commit/372327581))
- **core:** Remove props with default from `required` in json schema to avoid validation errors ([15b85ac95](https://github.com/kestra-io/kestra/commit/15b85ac95))
- **core:** Render `delete` property at the beginning in Docker task runner ([16e3830c9](https://github.com/kestra-io/kestra/commit/16e3830c9))
- **tests:** Increase timeout on JdbcServiceLivenessCoordinatorTest.taskResubmitSkipExecution ([cebe8f354](https://github.com/kestra-io/kestra/commit/cebe8f354))
- **cicd:** Update concurrency key ([666f8a7ad](https://github.com/kestra-io/kestra/commit/666f8a7ad))
- **core:** Http proxy was not passed to configuration ([a53395ab3](https://github.com/kestra-io/kestra/commit/a53395ab3))
- **ci:** QEMU issue ([ce15ca1ca](https://github.com/kestra-io/kestra/commit/ce15ca1ca))
- **webserver:** Allow special chars in label key ([#7419](https://github.com/kestra-io/kestra/pull/7419))
- **ui:** Properly cast value to boolean ([#7455](https://github.com/kestra-io/kestra/pull/7455))
- **ui:** Improve handling of main filter labels on page load ([#7456](https://github.com/kestra-io/kestra/pull/7456))
- **ui:** Fix the light theme contrast for editor. ([#7438](https://github.com/kestra-io/kestra/pull/7438))
- **core:** If subflow is disabled, raise an error ([#7490](https://github.com/kestra-io/kestra/pull/7490))
- Render before command with options in CommandsWrapper ([#7496](https://github.com/kestra-io/kestra/pull/7496))
- **tasks:** Remove useless format metrics on return ([#7486](https://github.com/kestra-io/kestra/pull/7486))
- **core:** Require condition in Flow trigger ([#7494](https://github.com/kestra-io/kestra/pull/7494))
- **ui:** Make flow metrics behave as expected ([#7502](https://github.com/kestra-io/kestra/pull/7502))
- **ui:** Properly filter out log levels ([#7503](https://github.com/kestra-io/kestra/pull/7503))
- **core:** Add package-info.java to dashboard package ([df92491e5](https://github.com/kestra-io/kestra/commit/df92491e5))
- **core:** Add package-info.java to script + handle subgroups properly ([ac2643c10](https://github.com/kestra-io/kestra/commit/ac2643c10))
- **core:** Try to log message for unhandled realtime trigger exception ([a115eb537](https://github.com/kestra-io/kestra/commit/a115eb537))
- **core:** Move package-info.java to proper dashboard packages ([16284e5b9](https://github.com/kestra-io/kestra/commit/16284e5b9))
- **core:** Rename dashboards subgroups ([9ec4d9282](https://github.com/kestra-io/kestra/commit/9ec4d9282))
- **core:** Typo in PluginScanner ([25723b1ac](https://github.com/kestra-io/kestra/commit/25723b1ac))
- **core:** Camel to snake-case for app-blocks in RegisteredPlugin ([c8c0c4e63](https://github.com/kestra-io/kestra/commit/c8c0c4e63))
- **core:** Missing content type on http client ([9fce6cfe6](https://github.com/kestra-io/kestra/commit/9fce6cfe6))
- **jdbc:** Be resilient to DataException ([cf10269f2](https://github.com/kestra-io/kestra/commit/cf10269f2))
- **core:** Content type encoding should not be mandatory ([4500c976d](https://github.com/kestra-io/kestra/commit/4500c976d))
- **core:** #172 add reactor into classloader blacklist ([#172](https://github.com/kestra-io/kestra/issues/172))
- **ui:** Amend filtering of logs ([#7535](https://github.com/kestra-io/kestra/pull/7535))
- **core:** Handle space in HTTP request URI ([a2c89e508](https://github.com/kestra-io/kestra/commit/a2c89e508))
- **core:** Subflow using the old task name never ends ([38b8190be](https://github.com/kestra-io/kestra/commit/38b8190be))
- **ui:** Amend label filter encoding after values change ([#7536](https://github.com/kestra-io/kestra/pull/7536))
- **ui:** Plugins TOC is now handling every type of plugins ([48b117b35](https://github.com/kestra-io/kestra/commit/48b117b35))
- **ui:** Styling enhancements for plugin doc ([ff4f7abb0](https://github.com/kestra-io/kestra/commit/ff4f7abb0))
- **ui:** Preselect filter comparator option ([#7518](https://github.com/kestra-io/kestra/pull/7518))
- **ui:** Improve coloring for task object tooltips in no code editor ([#7515](https://github.com/kestra-io/kestra/pull/7515))
- Refactor PluginSearchCommand ([8d2af87db](https://github.com/kestra-io/kestra/commit/8d2af87db))
- **ui:** Make flow deletion work as expected ([#7579](https://github.com/kestra-io/kestra/pull/7579))
- **ui:** Amend inconsistencies inside the product tour ([#7582](https://github.com/kestra-io/kestra/pull/7582))
- **core:** Log can have no executionId ([fc7ef1ca3](https://github.com/kestra-io/kestra/commit/fc7ef1ca3))
- **core:** Properly render list properties ([7fbe43322](https://github.com/kestra-io/kestra/commit/7fbe43322))
- **ui:** Make sure adding labels on flow run dialog is possible ([#7587](https://github.com/kestra-io/kestra/pull/7587))
- **ui:** LabelInput.vue was causing UI freeze ([a996347de](https://github.com/kestra-io/kestra/commit/a996347de))
- Ci for translations ([#7602](https://github.com/kestra-io/kestra/pull/7602))
- **translations:** Fix translation key detection by comparing against last modifying commit ([#7604](https://github.com/kestra-io/kestra/pull/7604))
- Only re-translate if the key is not already in the target dict ([#7608](https://github.com/kestra-io/kestra/pull/7608))
- Clean up translations script ([81635ddc8](https://github.com/kestra-io/kestra/commit/81635ddc8))
- Improve some wording ([ae75ea06d](https://github.com/kestra-io/kestra/commit/ae75ea06d))
- **translations:** Allow retranslating modified keys when needed ([020d674d8](https://github.com/kestra-io/kestra/commit/020d674d8))
- Turn CI flag to a dropdown ([d04764814](https://github.com/kestra-io/kestra/commit/d04764814))
- Improve translation prompt ([3804bdc7f](https://github.com/kestra-io/kestra/commit/3804bdc7f))
- Make sure nocode edits the right task from the topology ([3dc8e98ed](https://github.com/kestra-io/kestra/commit/3dc8e98ed))
- **ui:** Replace alert blocks upon markdown rendering to display them properly ([9b4f3148f](https://github.com/kestra-io/kestra/commit/9b4f3148f))
- Confusing trace log ([c8207b870](https://github.com/kestra-io/kestra/commit/c8207b870))
- **ui:** Executions naviation based on start Date. ([#7626](https://github.com/kestra-io/kestra/pull/7626))
- **core:** No longer lowercasing PluginClassIdentifier to have proper validation upon Plugin deserialization ([17e54134c](https://github.com/kestra-io/kestra/commit/17e54134c))
- **ui:** Additional check for text label of filters section ([446a034d6](https://github.com/kestra-io/kestra/commit/446a034d6))
- **ui:** Improve check for text label of filters section ([036a7cf4f](https://github.com/kestra-io/kestra/commit/036a7cf4f))
- **ui:** Use watch with ref instead of accessing the value ([5f21eb579](https://github.com/kestra-io/kestra/commit/5f21eb579))
- **ui:** Allow sidebar theme toggle to update the editor theme ([#7648](https://github.com/kestra-io/kestra/pull/7648))
- **ci:** Fix vulnerability check workflow ([8bd3c2fef](https://github.com/kestra-io/kestra/commit/8bd3c2fef))
- **ui:** Make sure adding labels on flow run dialog is possible ([#7652](https://github.com/kestra-io/kestra/pull/7652))
- **cicd:** Missing acls for test reports ([d2bf56fec](https://github.com/kestra-io/kestra/commit/d2bf56fec))
- **core:** Validation error when timeWindow.type is null ([1eb9adf30](https://github.com/kestra-io/kestra/commit/1eb9adf30))
- **core:** MultipleCondition documentation ([12180457e](https://github.com/kestra-io/kestra/commit/12180457e))
- **core:** Avoid duplicates in plugins subgroups + properly retrieve subgroup title ([ef65623b1](https://github.com/kestra-io/kestra/commit/ef65623b1))
- **cli:** Fix regression on CLI plugin doc cmd ([e200bbdb6](https://github.com/kestra-io/kestra/commit/e200bbdb6))
- **core:** Stop Docker runner gracefully ([8f9fc5fe4](https://github.com/kestra-io/kestra/commit/8f9fc5fe4))
- **ui:** Prevent context docs open on editor custom blueprints click ([#7716](https://github.com/kestra-io/kestra/pull/7716))
- **runner-memory:** Delete MemorySchedulerTriggerState back due to cherry-pick ([593558dd2](https://github.com/kestra-io/kestra/commit/593558dd2))
- **ui:** Improved fetch of type for pluginDoc and avoid removing doc if map has "type" as property but without doc (like ENUM value) ([#7727](https://github.com/kestra-io/kestra/pull/7727))
- **demo:** On pages stop showing the docs without a button ([07e4598fa](https://github.com/kestra-io/kestra/commit/07e4598fa))
- Repair collapsed menu submenus ([467861652](https://github.com/kestra-io/kestra/commit/467861652))
- **flow editor:** Enhance behavior when switching file tabs ([#7722](https://github.com/kestra-io/kestra/pull/7722))
- **tests:** Reject promise with 404 instead of empty resolve if non-mocked store call in flowAutoCompletionProvider.spec.ts ([166262209](https://github.com/kestra-io/kestra/commit/166262209))
- **jdbc:** Resubmit worker job to the good worker group ([7696d41d5](https://github.com/kestra-io/kestra/commit/7696d41d5))
- **ci:** Generate_translations.py is now deleting keys that are no longer in en translation to avoid ghost translations ([440a94290](https://github.com/kestra-io/kestra/commit/440a94290))
- **core:** ThresholdFilter is now stricly lower" ([4276a0afd](https://github.com/kestra-io/kestra/commit/4276a0afd))
- **core:** Failing schedule test ([#7783](https://github.com/kestra-io/kestra/pull/7783))
- **cli:** Fix double shutdown warn messages ([d2d0726f7](https://github.com/kestra-io/kestra/commit/d2d0726f7))
- **core:** Flaky test ExitTest.shouldExitAndKillTheExecution() ([0870d8ebd](https://github.com/kestra-io/kestra/commit/0870d8ebd))
- **jdbc:** Flaky tests JdbcServiceLivenessCoordinatorTest ([5ffeee532](https://github.com/kestra-io/kestra/commit/5ffeee532))
- **core:** Wait for service-manager-task thread to be stopped ([01036c829](https://github.com/kestra-io/kestra/commit/01036c829))
- **tests:** Increase seconds diff between dates ([#7785](https://github.com/kestra-io/kestra/pull/7785))
- **core:** #7740 http configuration bearer token may change to basic because of allowFailed ([#7788](https://github.com/kestra-io/kestra/pull/7788), [#7740](https://github.com/kestra-io/kestra/issues/7740))
- **jdbc:** Return correct total when paginating custom dashboard chart ([#7790](https://github.com/kestra-io/kestra/pull/7790))
- **webserver:** Add endpoint for inherited secrets ([9b5b2b981](https://github.com/kestra-io/kestra/commit/9b5b2b981))
- **ui:** Make switch view buttons from dashboard editor the same as flow editor ones ([82a346b2c](https://github.com/kestra-io/kestra/commit/82a346b2c))
- **ui:** Remove errors from dashboard validation if it's fixed ([4a1282768](https://github.com/kestra-io/kestra/commit/4a1282768))
- **core:** Fix properly map MavenPluginRepositoryConfig ([1cb323b7a](https://github.com/kestra-io/kestra/commit/1cb323b7a))
- **docs:** 2025 get started video ([977fe222a](https://github.com/kestra-io/kestra/commit/977fe222a))
- **core:** AllowedNamespace is already called in the KvStoreService ([e2da2dfeb](https://github.com/kestra-io/kestra/commit/e2da2dfeb))
- **core:** Missing afterExecution in FlowForExecution ([141968000](https://github.com/kestra-io/kestra/commit/141968000))
- **deps:** Move OTLP metrics lib to CLI to avoid warning in tests ([acebfef0d](https://github.com/kestra-io/kestra/commit/acebfef0d))
- **core:** Avoid calling Worker post construct method twice ([c9baaf856](https://github.com/kestra-io/kestra/commit/c9baaf856))
- **ui:** Display back core property if not in a task ([64e5b8004](https://github.com/kestra-io/kestra/commit/64e5b8004))
- **docs:** Add parallel example ([ff504afd8](https://github.com/kestra-io/kestra/commit/ff504afd8))
- Remove labels from an execution ([#7256](https://github.com/kestra-io/kestra/pull/7256))
- **docs:** Schedule example ([ebec8c212](https://github.com/kestra-io/kestra/commit/ebec8c212))
- **docs:** Fail examples ([379199e18](https://github.com/kestra-io/kestra/commit/379199e18))
- **docs:** Typos ([02336ed39](https://github.com/kestra-io/kestra/commit/02336ed39))
- **ui:** Use container queries for dashboard ([#7889](https://github.com/kestra-io/kestra/pull/7889))
- **core:** Avoid ClassCastException when parsing flow inputs ([#7882](https://github.com/kestra-io/kestra/pull/7882))
- **ui:** Amend displaying large amount of logs ([#7923](https://github.com/kestra-io/kestra/pull/7923))
- Disable micronaut otel by default ([8076fcc99](https://github.com/kestra-io/kestra/commit/8076fcc99))
- **cli:** Return exit 0 in CLI plugins cmd ([3566c4d36](https://github.com/kestra-io/kestra/commit/3566c4d36))
- OpenTelemetry should be optional ([0ee9abb37](https://github.com/kestra-io/kestra/commit/0ee9abb37))
- ***:** Improve log timestamp precision + allow to override timestamp… ([#7847](https://github.com/kestra-io/kestra/pull/7847))
- **ui:** Amend dependabot errors with parsing of package-lock.json file ([#7941](https://github.com/kestra-io/kestra/pull/7941))
- **core:** Possible NPE if no manifest ([8cba4dab6](https://github.com/kestra-io/kestra/commit/8cba4dab6))
- **ui:** Prevent filter text prefix to show up when searching locally ([#7947](https://github.com/kestra-io/kestra/pull/7947))
- **core:** Triggers don't have an execution ID already ([0579e23a2](https://github.com/kestra-io/kestra/commit/0579e23a2))
- **core-ee:** NPE when execution labels are null ([#7950](https://github.com/kestra-io/kestra/pull/7950))
- Only run posthog in prod mode ([#7952](https://github.com/kestra-io/kestra/pull/7952))
- **core:** Add metric Publish task doc & icon ([481138e43](https://github.com/kestra-io/kestra/commit/481138e43))
- Update ui-libs ([cca7ed0bf](https://github.com/kestra-io/kestra/commit/cca7ed0bf))
- **ui:** Filter tests were not up-to-date ([f3419084f](https://github.com/kestra-io/kestra/commit/f3419084f))
- **cicd:** Display ui unit test status ([df1bbcfb7](https://github.com/kestra-io/kestra/commit/df1bbcfb7))
- **ui:** Change plugin doc properly upon switching plugin type ([773a6e909](https://github.com/kestra-io/kestra/commit/773a6e909))
- **core:** Working dir interface contract by putting back putFile(path, content) ([#7980](https://github.com/kestra-io/kestra/pull/7980))
- **ui:** Include parameters into request for plugin schema fetching ([#8002](https://github.com/kestra-io/kestra/pull/8002))
- **core:** Amend server start announcements ([49a29c4bf](https://github.com/kestra-io/kestra/commit/49a29c4bf))
- **build:** Gradle space-assignment deprecation ([a1abd28a3](https://github.com/kestra-io/kestra/commit/a1abd28a3))
- **core:** Race in the FlowListener ([19894dbcd](https://github.com/kestra-io/kestra/commit/19894dbcd))
- **core:** Race while initializing trigger + possible duplicate update ([742169344](https://github.com/kestra-io/kestra/commit/742169344))
- Remove unwanted change in Curl ([3244b1c29](https://github.com/kestra-io/kestra/commit/3244b1c29))
- **ui:** Amend task source tabs colors ([#8010](https://github.com/kestra-io/kestra/pull/8010))
- **platform:** Move slf4j api to enforce platform to fix it's version in test ([#8007](https://github.com/kestra-io/kestra/pull/8007))
- **core:** Handling for trailing slash in the KESTRA_URL configuration ([#6373](https://github.com/kestra-io/kestra/pull/6373))
- **ui:** Prevent function parameters autocompletion from deleting parenthesis ([74455ad99](https://github.com/kestra-io/kestra/commit/74455ad99))
- **ui:** Handle properly layout of global Secrets when there is a secret manager ([edbf14c1b](https://github.com/kestra-io/kestra/commit/edbf14c1b))
- **core:** Ensure defaults can be injected in flows ([#3206](https://github.com/kestra-io/kestra/pull/3206))
- **ui:** Allow multi label filtering ([#8022](https://github.com/kestra-io/kestra/pull/8022))
- **ui:** Fail-safe secrets API calls ([c64c2c710](https://github.com/kestra-io/kestra/commit/c64c2c710))
- **ui:** Amend operator value of labels inside the filter ([#8028](https://github.com/kestra-io/kestra/pull/8028))
- **ui:** Fail-safe secrets API calls on global secrets view ([28d1f005a](https://github.com/kestra-io/kestra/commit/28d1f005a))
- **core:** Fix NPE when closing standalone runner ([6c9dc8fba](https://github.com/kestra-io/kestra/commit/6c9dc8fba))
- **ui:** Make sure global secret view iterates over all secrets ([75e763550](https://github.com/kestra-io/kestra/commit/75e763550))
- **cli:** Make worker args available through static KestraContext ([dea66ca25](https://github.com/kestra-io/kestra/commit/dea66ca25))
- **core:** Flatten map should not throw an exception ([4c93a2b0e](https://github.com/kestra-io/kestra/commit/4c93a2b0e))
- **webserver:** First eval without masking secret function to error in case of missing secret ([8f4ce5fc1](https://github.com/kestra-io/kestra/commit/8f4ce5fc1))
- **ui:** Properly detect yaml to inject json schema into MonacoEditor ([8be17827c](https://github.com/kestra-io/kestra/commit/8be17827c))
- **core:** HttpClient log the URL even if it's a secret ([54aa93570](https://github.com/kestra-io/kestra/commit/54aa93570))
- **core:** Properly fix the issue with MapUtils.flattenToNestedMap ([b8e8333f6](https://github.com/kestra-io/kestra/commit/b8e8333f6))
- **kafka runner:** #2709 filter child forEach tasks before merging th… ([#8095](https://github.com/kestra-io/kestra/pull/8095), [#2709](https://github.com/kestra-io/kestra/issues/2709))
- **core:** Avoid flow validation error on plugin alias duplicates ([8ebc3fbba](https://github.com/kestra-io/kestra/commit/8ebc3fbba))
- Doc and deprecated field was not showing for dynamic non-string properties ([#8006](https://github.com/kestra-io/kestra/pull/8006))
- **core:** Require condition in Flow trigger " ([#7494](https://github.com/kestra-io/kestra/pull/7494))
- **core:** Compilation issue ([380e329e9](https://github.com/kestra-io/kestra/commit/380e329e9))
- **core:** Namespace service now properly detects namespaces with flows inside ([a09319800](https://github.com/kestra-io/kestra/commit/a09319800))
- **webserver:** Handle out-of-bounds (>) namespaces fetch ([224026c39](https://github.com/kestra-io/kestra/commit/224026c39))
- **ui:** Add routeContext where it was missing ([143ebc061](https://github.com/kestra-io/kestra/commit/143ebc061))
- **ui:** Repair tenant translation ([b3799cc03](https://github.com/kestra-io/kestra/commit/b3799cc03))
- **ui:** Global secret page design ([54eccac63](https://github.com/kestra-io/kestra/commit/54eccac63))
- **ui:** Search bars are properly working in secrets & KV pages ([4e7c6e87b](https://github.com/kestra-io/kestra/commit/4e7c6e87b))
- **core:** Allow dash in plugin version qualifier ([95b1f8dfc](https://github.com/kestra-io/kestra/commit/95b1f8dfc))
- **cli:** Properly register plugins uninstall cmd ([91bf3207f](https://github.com/kestra-io/kestra/commit/91bf3207f))
- **core:** Add missing docker plugin subgroup icon ([1613dee76](https://github.com/kestra-io/kestra/commit/1613dee76))
- Task array needed better typings ([#8158](https://github.com/kestra-io/kestra/pull/8158))
- Make flowWarnings show to unlock saving ([#8157](https://github.com/kestra-io/kestra/pull/8157))
### 💅 Refactors
- Introduce render in commands wrapper for property string ([#7430](https://github.com/kestra-io/kestra/pull/7430))
- Avoid en.json warning when building ([df6d33931](https://github.com/kestra-io/kestra/commit/df6d33931))
- Remove rendering from Docker ([#7439](https://github.com/kestra-io/kestra/pull/7439))
- Return only command when no interpreter and no beforeCommands ([#7452](https://github.com/kestra-io/kestra/pull/7452))
- **ui:** Remove obsolete `chartjs-chart-treemap` library ([#7529](https://github.com/kestra-io/kestra/pull/7529))
- Update http client and fix tests ([be04c168f](https://github.com/kestra-io/kestra/commit/be04c168f))
- **ui:** Remove the obsolete console statement ([#7887](https://github.com/kestra-io/kestra/pull/7887))
- Move flow editor logic into flow store ([#7968](https://github.com/kestra-io/kestra/pull/7968))
### 📖 Documentation
- **core:** Better documentation on docker tasks ([f4b78755a](https://github.com/kestra-io/kestra/commit/f4b78755a))
- Debug expression ([#7514](https://github.com/kestra-io/kestra/pull/7514))
- Fix typo in storage reverse task title ([#7667](https://github.com/kestra-io/kestra/pull/7667))
- Kv pebble ([#7886](https://github.com/kestra-io/kestra/pull/7886))
### 📦 Build
- Try and fix FE CI ([4234c76b0](https://github.com/kestra-io/kestra/commit/4234c76b0))
- Prevent corepack crash ([3c7e26c88](https://github.com/kestra-io/kestra/commit/3c7e26c88))
- **deps:** Bump software.amazon.awssdk:bom from 2.30.6 to 2.30.11 ([d50f631fb](https://github.com/kestra-io/kestra/commit/d50f631fb))
- **deps:** Bump com.azure:azure-sdk-bom from 1.2.30 to 1.2.31 ([bd0e4a5f4](https://github.com/kestra-io/kestra/commit/bd0e4a5f4))
- **deps:** Bump software.amazon.awssdk.crt:aws-crt ([f1f0d3186](https://github.com/kestra-io/kestra/commit/f1f0d3186))
- **deps:** Bump flyingSaucerVersion from 9.11.2 to 9.11.3 ([d769b7aad](https://github.com/kestra-io/kestra/commit/d769b7aad))
- **deps:** Bump com.gradleup.shadow from 8.3.5 to 8.3.6 ([3a0beabe4](https://github.com/kestra-io/kestra/commit/3a0beabe4))
- **deps:** Bump org.owasp.dependencycheck from 12.0.1 to 12.0.2 ([36306495e](https://github.com/kestra-io/kestra/commit/36306495e))
- **deps:** Bump posthog-js from 1.215.2 to 1.215.3 in /ui ([#7182](https://github.com/kestra-io/kestra/pull/7182))
- **deps:** Bump shiki from 2.3.0 to 2.3.1 in /ui ([#7183](https://github.com/kestra-io/kestra/pull/7183))
- **deps-dev:** Bump @shikijs/markdown-it from 2.3.0 to 2.3.1 in /ui ([#7184](https://github.com/kestra-io/kestra/pull/7184))
- **deps:** Bump com.google.cloud:libraries-bom from 26.53.0 to 26.54.0 ([5aa73ec48](https://github.com/kestra-io/kestra/commit/5aa73ec48))
- **deps:** Bump software.amazon.awssdk:bom from 2.30.11 to 2.30.16 ([8a3f41323](https://github.com/kestra-io/kestra/commit/8a3f41323))
- **deps:** Bump software.amazon.awssdk.crt:aws-crt ([55bdfac7f](https://github.com/kestra-io/kestra/commit/55bdfac7f))
- **deps:** Bump com.microsoft.playwright:playwright ([48320a89d](https://github.com/kestra-io/kestra/commit/48320a89d))
- **deps:** Bump io.pebbletemplates:pebble from 3.2.2 to 3.2.3 ([8260dc603](https://github.com/kestra-io/kestra/commit/8260dc603))
- **deps:** Bump io.micronaut.platform:micronaut-platform ([4c5638d95](https://github.com/kestra-io/kestra/commit/4c5638d95))
- **deps:** Bump org.opensearch.client:opensearch-java ([90da5f7cf](https://github.com/kestra-io/kestra/commit/90da5f7cf))
- **deps:** Bump io.micronaut.platform:micronaut-platform ([f3cff1b8c](https://github.com/kestra-io/kestra/commit/f3cff1b8c))
- **deps:** Bump com.github.oshi:oshi-core from 6.6.6 to 6.7.0 ([66fdb58f4](https://github.com/kestra-io/kestra/commit/66fdb58f4))
- **deps:** Bump nl.basjes.gitignore:gitignore-reader ([4b48ad597](https://github.com/kestra-io/kestra/commit/4b48ad597))
- **deps:** Bump org.owasp.dependencycheck from 12.0.2 to 12.1.0 ([94421f141](https://github.com/kestra-io/kestra/commit/94421f141))
- **deps:** Bump software.amazon.awssdk:bom from 2.30.16 to 2.30.31 ([e7f2ec2ae](https://github.com/kestra-io/kestra/commit/e7f2ec2ae))
- **deps:** Bump opensearchRestVersion from 2.18.0 to 2.19.1 ([b6f91128a](https://github.com/kestra-io/kestra/commit/b6f91128a))
- **deps:** Bump com.google.cloud:libraries-bom from 26.54.0 to 26.56.0 ([82df58d26](https://github.com/kestra-io/kestra/commit/82df58d26))
- **deps:** Bump org.opensearch.client:opensearch-java ([ca4e6a4b3](https://github.com/kestra-io/kestra/commit/ca4e6a4b3))
- **deps:** Bump jacksonVersion from 2.18.2 to 2.18.3 ([20b87f1c9](https://github.com/kestra-io/kestra/commit/20b87f1c9))
- **deps:** Bump robinraju/release-downloader from 1.11 to 1.12 ([038890982](https://github.com/kestra-io/kestra/commit/038890982))
- **deps:** Bump com.azure:azure-sdk-bom from 1.2.31 to 1.2.32 ([92418841f](https://github.com/kestra-io/kestra/commit/92418841f))
- **deps:** Bump com.gorylenko.gradle-git-properties ([0a304ff1d](https://github.com/kestra-io/kestra/commit/0a304ff1d))
- **deps:** Bump org.testcontainers:junit-jupiter from 1.20.5 to 1.20.6 ([5af085844](https://github.com/kestra-io/kestra/commit/5af085844))
- **deps:** Bump org.opensearch.client:opensearch-java ([03a44c103](https://github.com/kestra-io/kestra/commit/03a44c103))
- **deps:** Bump com.github.docker-java:docker-java from 3.4.1 to 3.4.2 ([8d7bc6fdd](https://github.com/kestra-io/kestra/commit/8d7bc6fdd))
- **deps:** Bump org.jsoup:jsoup from 1.18.3 to 1.19.1 ([83f06f337](https://github.com/kestra-io/kestra/commit/83f06f337))
- **deps:** Bump software.amazon.awssdk.crt:aws-crt ([5935308e4](https://github.com/kestra-io/kestra/commit/5935308e4))
- **deps:** Bump org.testcontainers:testcontainers ([fefaa7cdb](https://github.com/kestra-io/kestra/commit/fefaa7cdb))
- **deps:** Bump software.amazon.awssdk:bom from 2.30.31 to 2.30.36 ([66e5a7ca3](https://github.com/kestra-io/kestra/commit/66e5a7ca3))
- **deps:** Bump io.micrometer:micrometer-core from 1.14.3 to 1.14.5 ([dea392a94](https://github.com/kestra-io/kestra/commit/dea392a94))
- **deps:** Bump @babel/helpers from 7.26.9 to 7.26.10 in /ui ([#7841](https://github.com/kestra-io/kestra/pull/7841))
- **deps:** Bump @babel/runtime-corejs3 from 7.26.9 to 7.26.10 in /ui ([#7840](https://github.com/kestra-io/kestra/pull/7840))
- **deps:** Bump software.amazon.awssdk:bom from 2.30.36 to 2.31.1 ([149dcac5f](https://github.com/kestra-io/kestra/commit/149dcac5f))
- **deps:** Bump protobufVersion from 3.25.5 to 4.30.1 ([6946c9268](https://github.com/kestra-io/kestra/commit/6946c9268))
- **deps:** Bump software.amazon.awssdk.crt:aws-crt ([0134d5e5c](https://github.com/kestra-io/kestra/commit/0134d5e5c))
- **deps:** Bump com.github.oshi:oshi-core from 6.7.0 to 6.7.1 ([8eb91b75e](https://github.com/kestra-io/kestra/commit/8eb91b75e))
- **deps:** Bump dorny/test-reporter from 1 to 2 ([ab061e9a1](https://github.com/kestra-io/kestra/commit/ab061e9a1))
- **deps:** Bump aquasecurity/trivy-action from 0.29.0 to 0.30.0 ([7f6e15ec4](https://github.com/kestra-io/kestra/commit/7f6e15ec4))
- **deps:** Bump nl.basjes.gitignore:gitignore-reader ([3dcd3c978](https://github.com/kestra-io/kestra/commit/3dcd3c978))
- **deps:** Bump org.jooq:jooq from 3.19.18 to 3.20.2 ([ab9ba91e5](https://github.com/kestra-io/kestra/commit/ab9ba91e5))
- **deps:** Bump org.slf4j:slf4j-api from 2.0.16 to 2.0.17 ([f89aa8d27](https://github.com/kestra-io/kestra/commit/f89aa8d27))
- **deps:** Bump org.aspectj:aspectjweaver from 1.9.22.1 to 1.9.23 ([5c73953c8](https://github.com/kestra-io/kestra/commit/5c73953c8))
- **deps:** Bump pdfjs-dist from 4.10.38 to 5.0.375 in /ui ([#7942](https://github.com/kestra-io/kestra/pull/7942))
- **deps:** Bump protobufVersion from 3.25.5 to 4.30.1" ([0ec2d8842](https://github.com/kestra-io/kestra/commit/0ec2d8842))
- **deps:** Bump com.microsoft.playwright:playwright ([6d59630a6](https://github.com/kestra-io/kestra/commit/6d59630a6))
- **deps:** Bump com.google.cloud:libraries-bom from 26.56.0 to 26.57.0 ([491f07296](https://github.com/kestra-io/kestra/commit/491f07296))
- **deps:** Bump com.github.oshi:oshi-core from 6.7.1 to 6.8.0 ([37af61f41](https://github.com/kestra-io/kestra/commit/37af61f41))
- **deps:** Bump software.amazon.awssdk:bom from 2.31.1 to 2.31.6 ([62e37f3b1](https://github.com/kestra-io/kestra/commit/62e37f3b1))
- **deps:** Bump software.amazon.awssdk.crt:aws-crt ([5a2ac895e](https://github.com/kestra-io/kestra/commit/5a2ac895e))
### 🏡 Chore
- **ci:** Update release workflows ([0b82b25a4](https://github.com/kestra-io/kestra/commit/0b82b25a4))
- Update "cluster" into "instance" in side menu ([#6996](https://github.com/kestra-io/kestra/pull/6996))
- **ui:** Move apps link in left menu just below the flows ([#7063](https://github.com/kestra-io/kestra/pull/7063))
- **ui:** Properly check the existence of fields inside schema ([cd822bd34](https://github.com/kestra-io/kestra/commit/cd822bd34))
- Update palette ([7a37a950b](https://github.com/kestra-io/kestra/commit/7a37a950b))
- **translations:** Auto generate values for languages other than english ([dee76c038](https://github.com/kestra-io/kestra/commit/dee76c038))
- **core:** Fix various compilation warnings ([625135959](https://github.com/kestra-io/kestra/commit/625135959))
- Add a test for firefox weird wrap ([97d12f9bc](https://github.com/kestra-io/kestra/commit/97d12f9bc))
- **ui:** Properly pass a prop related to saved searches ([594d00516](https://github.com/kestra-io/kestra/commit/594d00516))
- **core:** Small perf improvements to MapUtils ([5a4620439](https://github.com/kestra-io/kestra/commit/5a4620439))
- **ui:** Show each plugin deprecation warning in new line ([#6839](https://github.com/kestra-io/kestra/pull/6839))
- **translations:** Auto generate values for languages other than english ([52159ee64](https://github.com/kestra-io/kestra/commit/52159ee64))
- **ui:** Amend color of the input length counter ([#6990](https://github.com/kestra-io/kestra/pull/6990))
- **ui:** Enable command palette for monaco editor ([#6944](https://github.com/kestra-io/kestra/pull/6944))
- **translations:** Auto generate values for languages other than english ([fff8d630c](https://github.com/kestra-io/kestra/commit/fff8d630c))
- **translations:** Auto generate values for languages other than english ([6ba71712a](https://github.com/kestra-io/kestra/commit/6ba71712a))
- **ui:** Add skeleton loaders to dashboard cards ([#6602](https://github.com/kestra-io/kestra/pull/6602))
- Add utility script to check for plugin artifacts ([42ad09d79](https://github.com/kestra-io/kestra/commit/42ad09d79))
- **translations:** Auto generate values for languages other than english ([a9042fb27](https://github.com/kestra-io/kestra/commit/a9042fb27))
- **ui:** Improve the example for not condition ([#6820](https://github.com/kestra-io/kestra/pull/6820))
- **ui:** Update the visual of no data component ([#7179](https://github.com/kestra-io/kestra/pull/7179))
- **ui:** Improve the states options list inside filter values ([#7176](https://github.com/kestra-io/kestra/pull/7176))
- **translations:** Auto generate values for languages other than english ([86f3acace](https://github.com/kestra-io/kestra/commit/86f3acace))
- **ui:** Rename advanced properties to other in no code ([#7189](https://github.com/kestra-io/kestra/pull/7189))
- **translations:** Auto generate values for languages other than english ([e4973c331](https://github.com/kestra-io/kestra/commit/e4973c331))
- **ui:** Rename advanced properties to other in no code ([#7190](https://github.com/kestra-io/kestra/pull/7190))
- **translations:** Auto generate values for languages other than english ([cb7ed73be](https://github.com/kestra-io/kestra/commit/cb7ed73be))
- **ui:** Remove the option to change editor theme separately ([#7192](https://github.com/kestra-io/kestra/pull/7192))
- **translations:** Remove extra keys from translation files ([#7193](https://github.com/kestra-io/kestra/pull/7193))
- **ui:** Consolidate markdown files ([#7197](https://github.com/kestra-io/kestra/pull/7197))
- **ui:** Replace the visual for no tabs opened on namespace editor ([#7204](https://github.com/kestra-io/kestra/pull/7204))
- **ui:** Re-order the list of optional columns ([#7213](https://github.com/kestra-io/kestra/pull/7213))
- **ui:** Amended global pagination coloring ([#7201](https://github.com/kestra-io/kestra/pull/7201))
- **ui:** Generate random flow ID using combination of animal names and numbers ([#7223](https://github.com/kestra-io/kestra/pull/7223))
- **ui:** Only show warning on bulk execution deletion if nonTerminated is true ([#7211](https://github.com/kestra-io/kestra/pull/7211))
- **ui:** Show executions per namespace only if there are 2 or more items for chart ([#7216](https://github.com/kestra-io/kestra/pull/7216))
- **translations:** Auto generate values for languages other than english ([440faa7cd](https://github.com/kestra-io/kestra/commit/440faa7cd))
- **ui:** Initial work on filter persistency ([#7234](https://github.com/kestra-io/kestra/pull/7234))
- **ui:** Check for missing property on update metadata ([e335b76b3](https://github.com/kestra-io/kestra/commit/e335b76b3))
- Update theme colors ([c31609a12](https://github.com/kestra-io/kestra/commit/c31609a12))
- **ui:** Align chart duration label with switch toggle ([#7259](https://github.com/kestra-io/kestra/pull/7259))
- **ui:** Align chart duration label with switch toggle ([#7258](https://github.com/kestra-io/kestra/pull/7258))
- **ui:** Tweak the video container ratio in the docs sidebar ([#7260](https://github.com/kestra-io/kestra/pull/7260))
- **translations:** Auto generate values for languages other than english ([e0f4ab735](https://github.com/kestra-io/kestra/commit/e0f4ab735))
- **ui:** Disable saving flow actions if there are errors ([#7278](https://github.com/kestra-io/kestra/pull/7278))
- **ui:** Improve flow description coloring ([#7282](https://github.com/kestra-io/kestra/pull/7282))
- **ui:** Make action columns always visible on executions and flows ([#7291](https://github.com/kestra-io/kestra/pull/7291))
- **core:** Rename fileEmpty Pebble function to isFileEmpty ([8de839f32](https://github.com/kestra-io/kestra/commit/8de839f32))
- **core:** Refactor file related Pebble function to share code ([f599f2575](https://github.com/kestra-io/kestra/commit/f599f2575))
- Remove some compilation warnings ([9505c48e5](https://github.com/kestra-io/kestra/commit/9505c48e5))
- **ui:** Improve styling of main filter tags ([#7305](https://github.com/kestra-io/kestra/pull/7305))
- **ui:** Introduce filters bar to flow triggers page ([#7292](https://github.com/kestra-io/kestra/pull/7292))
- **ui:** Improve the doughnut chart legend ([#7321](https://github.com/kestra-io/kestra/pull/7321))
- **translations:** Amend theme key ([#7356](https://github.com/kestra-io/kestra/pull/7356))
- **ui:** Add shadows to main charts ([#7314](https://github.com/kestra-io/kestra/pull/7314))
- **ui:** Add validation messages for custom dashboard crud actions ([#7367](https://github.com/kestra-io/kestra/pull/7367))
- **ui:** Add link to filtered triggers page from backfill dialog ([#7380](https://github.com/kestra-io/kestra/pull/7380))
- **ui:** Include autocompletion shortcut in the preview list ([#7384](https://github.com/kestra-io/kestra/pull/7384))
- **ui:** Improve breadcrumbs on namespace view ([#7386](https://github.com/kestra-io/kestra/pull/7386))
- **ui:** Improve the labels behavior ([#7397](https://github.com/kestra-io/kestra/pull/7397))
- **ui:** Improve colors of filter dropdown selector ([#7403](https://github.com/kestra-io/kestra/pull/7403))
- **ui:** Vertically center all elements in table rows ([#7372](https://github.com/kestra-io/kestra/pull/7372))
- **ui:** Make import flows button be a secondary one, styling-wise ([#7405](https://github.com/kestra-io/kestra/pull/7405))
- **ui:** Improve execution outputs section ([#7377](https://github.com/kestra-io/kestra/pull/7377))
- **ui:** Improve filter parameters decoding for absolute date ([#7409](https://github.com/kestra-io/kestra/pull/7409))
- **ui:** Improved Logs empty page ([#7415](https://github.com/kestra-io/kestra/pull/7415))
- **ui:** Amend namespace flow creation label ([#7443](https://github.com/kestra-io/kestra/pull/7443))
- **ui:** Add missing translations ([#7444](https://github.com/kestra-io/kestra/pull/7444))
- **ui:** Add arrows to namespace listing ([#7448](https://github.com/kestra-io/kestra/pull/7448))
- **ui:** Disable click on search button if filtering is automatic ([#7454](https://github.com/kestra-io/kestra/pull/7454))
- **ui:** Remove obsolete props ([#7487](https://github.com/kestra-io/kestra/pull/7487))
- **ui:** Improve styling of editor file tree ([#7420](https://github.com/kestra-io/kestra/pull/7420))
- **translations:** Add missing key/value pairs ([#7492](https://github.com/kestra-io/kestra/pull/7492))
- **ui:** Amend margins of EE locked pages ([#7446](https://github.com/kestra-io/kestra/pull/7446))
- **ui:** Simplify query search with spaces inside ([#7404](https://github.com/kestra-io/kestra/pull/7404))
- **ui:** Improve scope type filters ([#7504](https://github.com/kestra-io/kestra/pull/7504))
- **ui:** Add translation key/value pairs ([#7509](https://github.com/kestra-io/kestra/pull/7509))
- **ui:** Improve the scope of translations ([#7505](https://github.com/kestra-io/kestra/pull/7505))
- **ui:** Restore automatic scroll to bottom on logs ([#7365](https://github.com/kestra-io/kestra/pull/7365))
- **ui:** Prevent sending random strings as child filter values ([#7526](https://github.com/kestra-io/kestra/pull/7526))
- **ui:** Purge empty labels on execution ([#7527](https://github.com/kestra-io/kestra/pull/7527))
- **ui:** Use system namespace label from configs ([cf635058c](https://github.com/kestra-io/kestra/commit/cf635058c))
- **ui:** Prevent system labels to be shown in set labels dialog ([#7539](https://github.com/kestra-io/kestra/pull/7539))
- **core:** Move run context property validation to the run context ([8a26fdd83](https://github.com/kestra-io/kestra/commit/8a26fdd83))
- Add wiremock and update tests ([04c4916ac](https://github.com/kestra-io/kestra/commit/04c4916ac))
- **ui:** Respect default execution tab settings field when opening single execution ([#7576](https://github.com/kestra-io/kestra/pull/7576))
- **ui:** Remove background and check mark from selected filters dropdown list ([#7583](https://github.com/kestra-io/kestra/pull/7583))
- Introduce Devcontainer setup ([#7507](https://github.com/kestra-io/kestra/pull/7507))
- **translations:** Standalone action for translations ([#7597](https://github.com/kestra-io/kestra/pull/7597))
- **translations:** Localize to languages other than English ([#7605](https://github.com/kestra-io/kestra/pull/7605))
- **translations:** Localize to languages other than English " ([#7605](https://github.com/kestra-io/kestra/pull/7605), [#7609](https://github.com/kestra-io/kestra/pull/7609))
- **translations:** Localize to languages other than English ([#7610](https://github.com/kestra-io/kestra/pull/7610))
- **translations:** Localize to languages other than English ([#7613](https://github.com/kestra-io/kestra/pull/7613))
- **translations:** Localize to languages other than English ([#7618](https://github.com/kestra-io/kestra/pull/7618))
- **ui:** Improve label for text search in filters section ([#7631](https://github.com/kestra-io/kestra/pull/7631))
- **translations:** Localize to languages other than English ([#7633](https://github.com/kestra-io/kestra/pull/7633))
- **ui:** Remove crud details from execution overview ([#7634](https://github.com/kestra-io/kestra/pull/7634))
- **ui:** Improve empty state of the namespace files editor ([#7495](https://github.com/kestra-io/kestra/pull/7495))
- **translations:** Localize to languages other than English ([#7635](https://github.com/kestra-io/kestra/pull/7635))
- **core:** Eval value property once for flowable task Switch ([bfd82e0b5](https://github.com/kestra-io/kestra/commit/bfd82e0b5))
- **ui:** Improve the topology tooltip label for adding task button ([#7656](https://github.com/kestra-io/kestra/pull/7656))
- **ui:** Properly sanitize markdown content before rendering ([#7662](https://github.com/kestra-io/kestra/pull/7662))
- **ui:** Make sure chart stacks are following the same order every time ([#7664](https://github.com/kestra-io/kestra/pull/7664))
- **ui:** Properly sanitize markdown content before rendering ([#7697](https://github.com/kestra-io/kestra/pull/7697))
- **ui:** Auto expand first element in execution overview cascaders ([#7715](https://github.com/kestra-io/kestra/pull/7715))
- **core:** Make registry unregister usable with immutable list ([9a56b763f](https://github.com/kestra-io/kestra/commit/9a56b763f))
- **ui:** Properly sanitize markdown content before rendering ([#7724](https://github.com/kestra-io/kestra/pull/7724))
- **ui:** Uniforming empty state for components ([#7737](https://github.com/kestra-io/kestra/pull/7737))
- **translations:** Localize to languages other than English ([#7739](https://github.com/kestra-io/kestra/pull/7739))
- **ui:** Use uniformed pagination component for custom dashboard tables ([#7744](https://github.com/kestra-io/kestra/pull/7744))
- **translations:** Localize to languages other than English ([#7746](https://github.com/kestra-io/kestra/pull/7746))
- **ui:** Remove single empty space between label key and value so it can be copied ([#7774](https://github.com/kestra-io/kestra/pull/7774))
- **ui:** Re-order namespace tabs ([#7778](https://github.com/kestra-io/kestra/pull/7778))
- **translations:** Localize to languages other than English ([#7780](https://github.com/kestra-io/kestra/pull/7780))
- **ui:** Respect line numbers prop as part of editor options ([#7781](https://github.com/kestra-io/kestra/pull/7781))
- **core:** Disable OTLP metrics on tests ([c60676052](https://github.com/kestra-io/kestra/commit/c60676052))
- Update ui-libs ([14ff4438f](https://github.com/kestra-io/kestra/commit/14ff4438f))
- **ui:** Add the ability to change word wrap and to copy the preview output content ([#7801](https://github.com/kestra-io/kestra/pull/7801))
- **translations:** Localize to languages other than English ([#7803](https://github.com/kestra-io/kestra/pull/7803))
- **translations:** Localize to languages other than English ([#7863](https://github.com/kestra-io/kestra/pull/7863))
- **ui:** Re-organize visuals for empty state component ([#7866](https://github.com/kestra-io/kestra/pull/7866))
- **ui:** Prevent node state history to be shown if there is no date present ([#7867](https://github.com/kestra-io/kestra/pull/7867))
- **core:** Add PluginVersioning interface and version for TaskRunner ([bed11f154](https://github.com/kestra-io/kestra/commit/bed11f154))
- **ui:** Re-organize visuals for empty state component ([#7875](https://github.com/kestra-io/kestra/pull/7875))
- **ui:** Complete refactor of yaml utils ([#7888](https://github.com/kestra-io/kestra/pull/7888))
- **ui:** Create flow button on welcome page to start product tour ([#7906](https://github.com/kestra-io/kestra/pull/7906))
- **translations:** Localize to languages other than English ([#7908](https://github.com/kestra-io/kestra/pull/7908))
- **ui:** Show loading skeletons on dashboard ([#7417](https://github.com/kestra-io/kestra/pull/7417))
- **ui:** Use the correct shadow on charts ([#7752](https://github.com/kestra-io/kestra/pull/7752))
- **ui:** Change display on gantt page for created & queued executions ([#7706](https://github.com/kestra-io/kestra/pull/7706))
- **ui:** Improve charts horizontal scrollbar ([#7508](https://github.com/kestra-io/kestra/pull/7508))
- **translations:** Localize to languages other than English ([#7909](https://github.com/kestra-io/kestra/pull/7909))
- **core:** Merge outputs only when necessary ([355e24c9d](https://github.com/kestra-io/kestra/commit/355e24c9d))
- **ui:** Properly sanitize execution errors markdown content before rendering ([#7914](https://github.com/kestra-io/kestra/pull/7914))
- **translations:** Localize to languages other than English ([#7915](https://github.com/kestra-io/kestra/pull/7915))
- **translations:** Localize to languages other than English ([#7918](https://github.com/kestra-io/kestra/pull/7918))
- **translations:** Localize to languages other than English ([#7929](https://github.com/kestra-io/kestra/pull/7929))
- **ui:** Remove the flow topology control button from image export ([#7937](https://github.com/kestra-io/kestra/pull/7937))
- **ui:** Introduce a refresh functionality to execution logs page ([#7946](https://github.com/kestra-io/kestra/pull/7946))
- Add jattach into our Docker image ([fe944ccc5](https://github.com/kestra-io/kestra/commit/fe944ccc5))
- Add GraalVM plugin ([43f1374aa](https://github.com/kestra-io/kestra/commit/43f1374aa))
- **ui:** Removing dynamic section of collapsible plugin properties ([#8008](https://github.com/kestra-io/kestra/pull/8008))
- **ui:** Highlight first item in global search bar autocomplete ([#8009](https://github.com/kestra-io/kestra/pull/8009))
- Refactor StorageInterfaceFactory to be a bean ([fe7c14c04](https://github.com/kestra-io/kestra/commit/fe7c14c04))
- **ui:** Add anchors to plugin documentation ([#8014](https://github.com/kestra-io/kestra/pull/8014))
- **translations:** Localize to languages other than English ([#8013](https://github.com/kestra-io/kestra/pull/8013))
- **ui:** Limit flow run dialog maximum height ([#7938](https://github.com/kestra-io/kestra/pull/7938))
- **ci:** Lower build-artifacts workflow so github release can use it ([2a002e953](https://github.com/kestra-io/kestra/commit/2a002e953))
- Upgrade to version 'v0.22.0-rc1-SNAPSHOT' ([8617eb0c7](https://github.com/kestra-io/kestra/commit/8617eb0c7))
- **ci:** Pass plugin version to docker workflow ([771e841d7](https://github.com/kestra-io/kestra/commit/771e841d7))
- **translations:** Localize to languages other than English ([#8071](https://github.com/kestra-io/kestra/pull/8071))
- **ui:** Improve saved search filtering functionality ([#8073](https://github.com/kestra-io/kestra/pull/8073))
- **ui:** Make app & dashboard editors re-sizable ([#8096](https://github.com/kestra-io/kestra/pull/8096))
- **ui:** Include labels of saved search filter on page reload ([#8099](https://github.com/kestra-io/kestra/pull/8099))
- **ui:** Pass custom height property to execution output debug editors ([#8100](https://github.com/kestra-io/kestra/pull/8100))
- **ui:** Handle editor blueprint loading problem ([#8113](https://github.com/kestra-io/kestra/pull/8113))
- **ui:** Amend file tree context menu link colors ([#8123](https://github.com/kestra-io/kestra/pull/8123))
- **ui:** Add padlock icon to secrets menu item ([#8129](https://github.com/kestra-io/kestra/pull/8129))
- Upgrade to version 'v0.22.0-rc2-SNAPSHOT' ([a88470886](https://github.com/kestra-io/kestra/commit/a88470886))
- **ui:** Show blueprint `id` field in case of missing title ([#8154](https://github.com/kestra-io/kestra/pull/8154))
- Disable tests that are too flaky ([822a3b438](https://github.com/kestra-io/kestra/commit/822a3b438))
- Upgrade to v0.22.0-rc3-SNAPSHOT ([08579cf55](https://github.com/kestra-io/kestra/commit/08579cf55))
- Version v0.22.0-rc4-SNAPSHOT ([ed58b7b5b](https://github.com/kestra-io/kestra/commit/ed58b7b5b))
- Upgrade to v0.22.0 ([c5f2901f7](https://github.com/kestra-io/kestra/commit/c5f2901f7))
### ✅ Tests
- **webserver:** Flaky ExecutionControllerTest for kill ([#7368](https://github.com/kestra-io/kestra/pull/7368))
### 🤖 CI
- Update workflow docker ([84a30d400](https://github.com/kestra-io/kestra/commit/84a30d400))
- Update workflow docker ([f96cbf1ad](https://github.com/kestra-io/kestra/commit/f96cbf1ad))
- Fix workflow docker ([fde739a3b](https://github.com/kestra-io/kestra/commit/fde739a3b))
- Fix workflow docker for all plugins ([d4d8e326e](https://github.com/kestra-io/kestra/commit/d4d8e326e))
- Fix release workflows ([e2b67f253](https://github.com/kestra-io/kestra/commit/e2b67f253))
- Cleanup ([d657f4827](https://github.com/kestra-io/kestra/commit/d657f4827))
- **docker:** Fixed version of qemu ([49fe36250](https://github.com/kestra-io/kestra/commit/49fe36250))
- **docker:** Revert fixed qemu version ([cfc0c9f9f](https://github.com/kestra-io/kestra/commit/cfc0c9f9f))
- **publish-docker:** Attempts with ubuntu 0.20 ([#7431](https://github.com/kestra-io/kestra/pull/7431))
- **publish-docker:** Attempts with command on qemu docker image ([a89ef7158](https://github.com/kestra-io/kestra/commit/a89ef7158))
- **test:** Force test if ref is a tag ([a020e3f3a](https://github.com/kestra-io/kestra/commit/a020e3f3a))
### ⚠️ Breaking Changes
### EE: Default tenant deprecation
Multi-tenancy was introduced in Kestra 0.13. For backward compatibility with older versions (≤0.12), you could use the concept of a default tenant, which imitated the multitenancy feature with the so-called “null”-tenant. One and a half years later, in Kestra 0.22, we are deprecating the default tenant functionality and plan to remove it in the future. We will provide a detailed migration guide for all customers who still use the default tenant. Until then, you can continue using `defaultTenant` by setting the corresponding configuration flag to `true`:
```yaml
kestra:
tenants:
enabled: true
defaultTenant: true
```
Note that in Kestra 0.22 and higher, `defaultTenant` is NOT enabled by default, so you must explicitly set that configuration option to `true` to keep using the default tenant.
Also, keep in mind that prior to Kestra 0.22, `tenants.enabled` was by default set to `false` and now they are enabled.
### EE: Azure log exporter
The log exporter plugin for Azure `io.kestra.plugin.ee.azure.LogExporter`, introduced in Kestra 0.21, got split into two `io.kestra.plugin.ee.azure.monitor.LogExporter` and `io.kestra.plugin.ee.azure.storage.LogExporter` to reflect that you can now export your log to Azure either using Azure Monitor or using Azure Blob Storage.
### EE: Enterprise Edition API changes
Before Kestra 0.22, the Service Account name had to be globally unique within the instance. As a result, attempting to create a Service Account `cicd` in a `dev` tenant would raise an error `"Username already exists"` if your `prod` tenant also has a Service Account with the name `cicd`.
To support multiple service accounts with the same name, weve renamed the `username` property to `name` in the JSON payload for the following REST API endpoint: `POST /api/v1{/tenant}/users/service-accounts{/id}`.
### EE: Too many failed login attempts now lock the account
To improve the security of your Enterprise Edition instance, we now automatically lock user accounts after a `threshold` number of failed login attempts made within `monitoring-window`. Both, the number of failed attempts, the monitoring window to track consecutive number of failed attempts and (soon) the duration of how long the user remains locked are configurable.
```yaml
security:
login:
failed-attempts:
threshold: 10
monitoring-window: PT15M # period to count failed attempts
# lockout-duration: PT24H # period the account remains locked — will be added in the next release
```
Note that this change is only relevant for users who leverage LDAP or basic authentication (not relevant for SSO-users). Superadmin can unlock the user manually by resetting their password from the user's detail page.
### Change to `readinessProbe` and `livenessProbe`
Before [this PR](https://github.com/kestra-io/helm-charts/pull/62/files), both probes pointed to `/health`. This caused Kubernetes to restart the pod when an external component was unavailable. To resolve this, we updated the value file to configure the liveness and readiness probes to use the health paths recommended by Micronaut:
- Liveness probe now points to `/health/liveness`
- Readiness probe now points to `/health/readiness`.
### Plugins using the `version` property
With the introduction of plugin versioning, we reserve the `version` keyword for internal use, allowing us to specify the Kestra plugin version. As a result, weve renamed the `version` property for a few plugins that already used it, incl. the following:
- `io.kestra.plugin.elasticsearch.Get` → renamed as `docVersion`
- `io.kestra.plugin.opensearch.Get` → renamed as `docVersion`
- `io.kestra.plugin.mqtt.RealtimeTrigger` → renamed as `mqttVersion`
- `io.kestra.plugin.mqtt.Trigger` → renamed as `mqttVersion`
- `io.kestra.plugin.serdes.parquet.IonToParquet` → renamed as `parquetVersion`
Note that your **custom plugins** will need an equivalent approach of renaming any plugin that uses the `version` property, as this is now a core property reserved for plugin management. If any of your custom plugins rely on a `version` property, they won't compile anymore unless you rename that property to a different name.
### Change in the default value for the `kv()` function
Before Kestra 0.22, the `kv()` function had the property `errorOnMissing` set to `false` by default. We changed it to be `true` by default. If you want to keep the previous behavior of returning `null` without an error when attempting to fetch non-existing KV-pairs, use the syntax `"{{ kv('NON_EXISTING_KV_PAIR', errorOnMissing=false) }}"`.
### ❤️ Contributors
- Loïc Mathieu ([@loicmathieu](https://github.com/loicmathieu))
- Barthélémy Ledoux <ledouxb@me.com>
- Nicolas K. <nk_mikmak@hotmail.com>
- Miloš Paunović ([@MilosPaunovic](https://github.com/MilosPaunovic))
- Florian Hussonnois ([@fhussonnois](https://github.com/fhussonnois))
- Brian.mulier ([@brian-mulier-p](https://github.com/brian-mulier-p))
- Roman Acevedo <roman.acevedo62@gmail.com>
- YannC <ycoornaert@kestra.io>
- Yuri <1969yuri1969@gmail.com>
- AJ Emerich <aemerich@kestra.io>
- Satvik Kushwaha ([@satvik2131](https://github.com/satvik2131))
- BenjoEK1337 ([@benjoEK1337](https://github.com/benjoEK1337))
- Piyush Bhaskar ([@Piyush-r-bhaskar](https://github.com/Piyush-r-bhaskar))
- Bart Ledoux <bledoux@kestra.io>
- Yuri1969 <1969yuri1969@gmail.com>
- Ludovic DEHON ([@tchiotludo](https://github.com/tchiotludo))
- Rajatsingh23 ([@rajatsingh23](https://github.com/rajatsingh23))
- Ash ([@Alessandra005](https://github.com/Alessandra005))
- Will Russell ([@wrussell1999](https://github.com/wrussell1999))
- Malay Dewangan ([@Malaydewangan09](https://github.com/Malaydewangan09))
- Anna Geller <anna.m.geller@gmail.com>
- Shruti Mantri <shruti1810@gmail.com>
- NKwiatkowski <nkwiatkowski@kestra.io>
- MilosPaunovic ([@MilosPaunovic](https://github.com/MilosPaunovic))
- Harshit Dhaduk <harshitdhaduk5831@gmail.com>
- Tanvir Ahmed ([@m-t-a97](https://github.com/m-t-a97))
- Malaydewangan09 <malaydewangan310@gmail.com>
- Đỗ Trọng Hải ([@hainenber](https://github.com/hainenber))
- AeSouid <aesouid@kestra.io>
- Adam Hirshson ([@Ahirshson02](https://github.com/Ahirshson02))
- Mathieu Gabelle ([@mgabelle](https://github.com/mgabelle))
- Aabhas Sao ([@aabhas-sao](https://github.com/aabhas-sao))
- Laibrez <laishabj@gmail.com>
- Eduardo Goncalvez ([@Edugre](https://github.com/Edugre))
- Shamar ([@Shamar12334](https://github.com/Shamar12334))
- Pravesh-Sudha ([@Pravesh-Sudha](https://github.com/Pravesh-Sudha))
- ByronBlaze <pg903@snu.edu.in>
- GitHub Action ([@Github-Action-Bot](https://github.com/Github-Action-Bot))
- Dheeraj_R_Gowda ([@Dheerajr444](https://github.com/Dheerajr444))
- 咬轮猫 <10928033@qq.com>
- Amartknez <amartknez98@gmail.com>
- Malay.worldref@gmail.com <malay@Malays-MacBook-Air.local>
- Karthik73965 ([@Karthik73965](https://github.com/Karthik73965))
- Brian-mulier-p ([@brian-mulier-p](https://github.com/brian-mulier-p))

View File

@@ -16,8 +16,9 @@ RUN apt-get update -y && \
if [ -n "${APT_PACKAGES}" ]; then apt-get install -y --no-install-recommends ${APT_PACKAGES}; fi && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* && \
curl -LsSf https://astral.sh/uv/0.6.17/install.sh | sh && mv /root/.local/bin/uv /bin && mv /root/.local/bin/uvx /bin && \
if [ -n "${KESTRA_PLUGINS}" ]; then /app/kestra plugins install ${KESTRA_PLUGINS} && rm -rf /tmp/*; fi && \
if [ -n "${PYTHON_LIBRARIES}" ]; then pip install ${PYTHON_LIBRARIES}; fi && \
if [ -n "${PYTHON_LIBRARIES}" ]; then uv pip install --system ${PYTHON_LIBRARIES}; fi && \
chown -R kestra:kestra /app
USER kestra

7
Dockerfile.pr Normal file
View File

@@ -0,0 +1,7 @@
FROM kestra/kestra:develop
USER root
COPY --chown=kestra:kestra docker /
USER kestra

View File

@@ -77,7 +77,7 @@ install-plugins:
else \
${KESTRA_BASEDIR}/bin/kestra plugins install $$CURRENT_PLUGIN \
--plugins ${KESTRA_BASEDIR}/plugins \
--repositories=https://s01.oss.sonatype.org/content/repositories/snapshots || exit 1; \
--repositories=https://central.sonatype.com/repository/maven-snapshots || exit 1; \
fi \
done < $$PLUGIN_LIST
@@ -89,7 +89,7 @@ build-docker: build-exec
--compress \
--rm \
-f ./Dockerfile \
--build-arg="APT_PACKAGES=python3 python3-venv python-is-python3 python3-pip nodejs npm curl zip unzip jattach" \
--build-arg="APT_PACKAGES=python3 python-is-python3 python3-pip curl jattach" \
--build-arg="PYTHON_LIBRARIES=kestra" \
-t ${DOCKER_IMAGE}:${VERSION} ${DOCKER_PATH} || exit 1 ;
@@ -130,9 +130,6 @@ datasources:
username: kestra
password: k3str4
kestra:
server:
basic-auth:
enabled: false
encryption:
secret-key: 3ywuDa/Ec61VHkOX3RlI9gYq7CaD0mv0Pf3DHtAXA6U=
repository:
@@ -181,8 +178,8 @@ clone-plugins:
@echo "Using PLUGIN_GIT_DIR: $(PLUGIN_GIT_DIR)"
@mkdir -p "$(PLUGIN_GIT_DIR)"
@echo "Fetching repository list from GitHub..."
@REPOS=$(gh repo list kestra-io -L 1000 --json name | jq -r .[].name | sort | grep "^plugin-") \
for repo in $$REPOS; do \
@REPOS=$$(gh repo list kestra-io -L 1000 --json name | jq -r .[].name | sort | grep "^plugin-"); \
for repo in $$REPOS; do \
if [[ $$repo == plugin-* ]]; then \
if [ -d "$(PLUGIN_GIT_DIR)/$$repo" ]; then \
echo "Skipping: $$repo (Already cloned)"; \
@@ -194,6 +191,22 @@ clone-plugins:
done
@echo "Done!"
# Pull every plugins in main or master branch
pull-plugins:
@echo "🔍 Pulling repositories in '$(PLUGIN_GIT_DIR)'..."
@for repo in "$(PLUGIN_GIT_DIR)"/*; do \
if [ -d "$$repo/.git" ]; then \
branch=$$(git -C "$$repo" rev-parse --abbrev-ref HEAD); \
if [[ "$$branch" == "master" || "$$branch" == "main" ]]; then \
echo "🔄 Pulling: $$(basename "$$repo") (branch: $$branch)"; \
git -C "$$repo" pull; \
else \
echo "❌ Skipping: $$(basename "$$repo") (Not on master or main branch, currently on $$branch)"; \
fi; \
fi; \
done
@echo "✅ Done pulling!"
# Update all plugins jar
build-plugins:
@echo "🔍 Scanning repositories in '$(PLUGIN_GIT_DIR)'..."

View File

@@ -19,9 +19,12 @@
<br />
<p align="center">
<a href="https://x.com/kestra_io"><img height="25" src="https://kestra.io/twitter.svg" alt="X(formerly Twitter)" /></a> &nbsp;
<a href="https://www.linkedin.com/company/kestra/"><img height="25" src="https://kestra.io/linkedin.svg" alt="linkedin" /></a> &nbsp;
<a href="https://www.youtube.com/@kestra-io"><img height="25" src="https://kestra.io/youtube.svg" alt="youtube" /></a> &nbsp;
<a href="https://twitter.com/kestra_io" style="margin: 0 10px;">
<img height="25" src="https://kestra.io/twitter.svg" alt="twitter" width="35" height="25" /></a>
<a href="https://www.linkedin.com/company/kestra/" style="margin: 0 10px;">
<img height="25" src="https://kestra.io/linkedin.svg" alt="linkedin" width="35" height="25" /></a>
<a href="https://www.youtube.com/@kestra-io" style="margin: 0 10px;">
<img height="25" src="https://kestra.io/youtube.svg" alt="youtube" width="35" height="25" /></a>
</p>
<p align="center">
@@ -33,10 +36,10 @@
<p align="center">
<a href="https://go.kestra.io/video/product-overview" target="_blank">
<img src="https://kestra.io/startvideo.png" alt="Get started in 4 minutes with Kestra" width="640px" />
<img src="https://kestra.io/startvideo.png" alt="Get started in 3 minutes with Kestra" width="640px" />
</a>
</p>
<p align="center" style="color:grey;"><i>Click on the image to learn how to get started with Kestra in 4 minutes.</i></p>
<p align="center" style="color:grey;"><i>Click on the image to learn how to get started with Kestra in 3 minutes.</i></p>
## 🌟 What is Kestra?
@@ -65,10 +68,6 @@ Kestra is an open-source, event-driven orchestration platform that makes both **
## 🚀 Quick Start
### Try the Live Demo
Try Kestra with our [**Live Demo**](https://demo.kestra.io/ui/login?auto). No installation required!
### Get Started Locally in 5 Minutes
#### Launch Kestra in Docker

47
build-and-start-e2e-tests.sh Executable file
View File

@@ -0,0 +1,47 @@
#!/bin/bash
set -e
# E2E main script that can be run on a dev computer or in the CI
# it will build the backend of the current git repo and the frontend
# create a docker image out of it
# run tests on this image
LOCAL_IMAGE_VERSION="local-e2e-$(date +%s)"
echo "Running E2E"
echo "Start time: $(date '+%Y-%m-%d %H:%M:%S')"
start_time=$(date +%s)
echo ""
echo "Building the image for this current repository"
make clean
make build-docker VERSION=$LOCAL_IMAGE_VERSION
end_time=$(date +%s)
elapsed=$(( end_time - start_time ))
echo ""
echo "building elapsed time: ${elapsed} seconds"
echo ""
echo "Start time: $(date '+%Y-%m-%d %H:%M:%S')"
start_time2=$(date +%s)
echo "cd ./ui"
cd ./ui
echo "npm i"
npm i
echo 'sh ./run-e2e-tests.sh --kestra-docker-image-to-test "kestra/kestra:$LOCAL_IMAGE_VERSION"'
./run-e2e-tests.sh --kestra-docker-image-to-test "kestra/kestra:$LOCAL_IMAGE_VERSION"
end_time2=$(date +%s)
elapsed2=$(( end_time2 - start_time2 ))
echo ""
echo "Tests elapsed time: ${elapsed2} seconds"
echo ""
total_elapsed=$(( elapsed + elapsed2 ))
echo "Total elapsed time: ${total_elapsed} seconds"
echo ""
exit 0

View File

@@ -16,28 +16,28 @@ plugins {
id "java"
id 'java-library'
id "idea"
id "com.gradleup.shadow" version "8.3.6"
id "com.gradleup.shadow" version "8.3.9"
id "application"
// test
id "com.adarshr.test-logger" version "4.0.0"
id "org.sonarqube" version "6.0.1.5171"
id "org.sonarqube" version "6.3.1.5724"
id 'jacoco-report-aggregation'
// helper
id "com.github.ben-manes.versions" version "0.52.0"
id "com.github.ben-manes.versions" version "0.53.0"
// front
id 'com.github.node-gradle.node' version '7.1.0'
// release
id 'net.researchgate.release' version '3.1.0'
id "com.gorylenko.gradle-git-properties" version "2.5.0"
id "com.gorylenko.gradle-git-properties" version "2.5.3"
id 'signing'
id "com.vanniktech.maven.publish" version "0.33.0"
id "com.vanniktech.maven.publish" version "0.34.0"
// OWASP dependency check
id "org.owasp.dependencycheck" version "12.1.0" apply false
id "org.owasp.dependencycheck" version "12.1.5" apply false
}
idea {
@@ -71,6 +71,11 @@ dependencies {
* Dependencies
**********************************************************************************************************************/
allprojects {
tasks.withType(GenerateModuleMetadata).configureEach {
suppressedValidationErrors.add('enforced-platform')
}
if (it.name != 'platform') {
group = "io.kestra"
@@ -143,6 +148,7 @@ allprojects {
implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names'
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-guava'
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310'
implementation group: 'com.fasterxml.uuid', name: 'java-uuid-generator'
// kestra
implementation group: 'com.devskiller.friendly-id', name: 'friendly-id'
@@ -162,8 +168,9 @@ allprojects {
/**********************************************************************************************************************\
* Test
**********************************************************************************************************************/
subprojects {
if (it.name != 'platform') {
subprojects {subProj ->
if (subProj.name != 'platform' && subProj.name != 'jmh-benchmarks') {
apply plugin: "com.adarshr.test-logger"
java {
@@ -195,11 +202,19 @@ subprojects {
testImplementation 'org.hamcrest:hamcrest-library'
testImplementation 'org.exparity:hamcrest-date'
//assertj
testImplementation 'org.assertj:assertj-core'
}
test {
useJUnitPlatform()
reports {
junitXml.required = true
junitXml.outputPerTestCase = true
junitXml.mergeReruns = true
junitXml.includeSystemErrLog = true;
junitXml.outputLocation = layout.buildDirectory.dir("test-results/test")
}
// set Xmx for test workers
maxHeapSize = '4g'
@@ -213,19 +228,28 @@ subprojects {
environment 'SECRET_WEBHOOK_KEY', "secretKey".bytes.encodeBase64().toString()
environment 'SECRET_NON_B64_SECRET', "some secret value"
environment 'SECRET_PASSWORD', "cGFzc3dvcmQ="
environment 'KESTRA_TEST1', "true"
environment 'KESTRA_TEST2', "Pass by env"
environment 'ENV_TEST1', "true"
environment 'ENV_TEST2', "Pass by env"
if (subProj.name == 'core' || subProj.name == 'jdbc-h2' || subProj.name == 'jdbc-mysql' || subProj.name == 'jdbc-postgres') {
// JUnit 5 parallel settings
systemProperty 'junit.jupiter.execution.parallel.enabled', 'true'
systemProperty 'junit.jupiter.execution.parallel.mode.default', 'concurrent'
systemProperty 'junit.jupiter.execution.parallel.mode.classes.default', 'same_thread'
systemProperty 'junit.jupiter.execution.parallel.config.strategy', 'dynamic'
}
}
testlogger {
theme 'mocha-parallel'
showExceptions true
showFullStackTraces true
showCauses true
slowThreshold 2000
showStandardStreams true
showPassedStandardStreams false
showSkippedStandardStreams true
theme = 'mocha-parallel'
showExceptions = true
showFullStackTraces = true
showCauses = true
slowThreshold = 2000
showStandardStreams = true
showPassedStandardStreams = false
showSkippedStandardStreams = true
}
}
}
@@ -265,7 +289,7 @@ subprojects {
* Allure Reports
**********************************************************************************************************************/
subprojects {
if (it.name != 'platform') {
if (it.name != 'platform' && it.name != 'jmh-benchmarks') {
dependencies {
testImplementation platform("io.qameta.allure:allure-bom")
testImplementation "io.qameta.allure:allure-junit5"
@@ -279,7 +303,7 @@ subprojects {
}
dependencies {
agent "org.aspectj:aspectjweaver:1.9.23"
agent "org.aspectj:aspectjweaver:1.9.24"
}
test {
@@ -292,7 +316,7 @@ subprojects {
* Jacoco
**********************************************************************************************************************/
subprojects {
if (it.name != 'platform') {
if (it.name != 'platform' && it.name != 'jmh-benchmarks') {
apply plugin: 'jacoco'
test {
@@ -403,7 +427,7 @@ jar {
shadowJar {
archiveClassifier.set(null)
mergeServiceFiles()
zip64 true
zip64 = true
}
distZip.dependsOn shadowJar
@@ -420,8 +444,8 @@ def executableDir = layout.buildDirectory.dir("executable")
def executable = layout.buildDirectory.file("executable/${project.name}-${project.version}").get().asFile
tasks.register('writeExecutableJar') {
group "build"
description "Write an executable jar from shadow jar"
group = "build"
description = "Write an executable jar from shadow jar"
dependsOn = [shadowJar]
final shadowJarFile = tasks.shadowJar.outputs.files.singleFile
@@ -447,8 +471,8 @@ tasks.register('writeExecutableJar') {
}
tasks.register('executableJar', Zip) {
group "build"
description "Zip the executable jar"
group = "build"
description = "Zip the executable jar"
dependsOn = [writeExecutableJar]
archiveFileName = "${project.name}-${project.version}.zip"
@@ -470,6 +494,15 @@ tasks.register('runLocal', JavaExec) {
args 'server', 'local', '--plugins', 'local/plugins'
}
tasks.register('runStandalone', JavaExec) {
group = "application"
description = "Run Kestra as server local"
classpath = project(":cli").sourceSets.main.runtimeClasspath
mainClass = mainClassName
environment 'MICRONAUT_ENVIRONMENTS', 'override'
args 'server', 'standalone', '--plugins', 'local/plugins'
}
/**********************************************************************************************************************\
* Publish
**********************************************************************************************************************/
@@ -605,9 +638,26 @@ subprojects {subProject ->
}
}
tasks.withType(GenerateModuleMetadata).configureEach {
// Suppression this validation error as we want to enforce the Kestra platform
suppressedValidationErrors.add('enforced-platform')
if (subProject.name != 'platform' && subProject.name != 'cli') {
// only if a test source set actually exists (avoids empty artifacts)
def hasTests = subProject.extensions.findByName('sourceSets')?.findByName('test') != null
if (hasTests) {
// wire the artifact onto every Maven publication of this subproject
publishing {
publications {
withType(MavenPublication).configureEach { pub ->
// keep the normal java component + sources/javadoc already configured
pub.artifact(subProject.tasks.named('testsJar').get())
}
}
}
// make sure publish tasks build the tests jar first
tasks.matching { it.name.startsWith('publish') }.configureEach {
dependsOn subProject.tasks.named('testsJar')
}
}
}
}
}
@@ -630,11 +680,10 @@ release {
}
// Dynamically set properties with default values
failOnSnapshotDependencies = (project.hasProperty('release.failOnSnapshotDependencies')
? project.property('release.failOnSnapshotDependencies').toBoolean()
: true)
failOnSnapshotDependencies = providers.gradleProperty("release.failOnSnapshotDependencies")
.map(val -> Boolean.parseBoolean(val))
.getOrElse(true)
pushReleaseVersionBranch = (project.hasProperty('release.pushReleaseVersionBranch')
? project.property('release.pushReleaseVersionBranch').toString()
: null)
pushReleaseVersionBranch = providers.gradleProperty("release.pushReleaseVersionBranch")
.getOrElse(null)
}

View File

@@ -33,8 +33,13 @@ dependencies {
implementation project(":storage-local")
// Kestra server components
implementation project(":executor")
implementation project(":scheduler")
implementation project(":webserver")
implementation project(":worker")
//test
testImplementation "org.wiremock:wiremock"
testImplementation project(':tests')
testImplementation "org.wiremock:wiremock-jetty12"
}

View File

@@ -14,16 +14,15 @@ import io.micronaut.http.netty.body.NettyJsonHandler;
import io.micronaut.json.JsonMapper;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import lombok.Builder;
import lombok.Value;
import lombok.extern.jackson.Jacksonized;
import picocli.CommandLine;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import lombok.Builder;
import lombok.Value;
import lombok.extern.jackson.Jacksonized;
import picocli.CommandLine;
public abstract class AbstractApiCommand extends AbstractCommand {
@CommandLine.Option(names = {"--server"}, description = "Kestra server url", defaultValue = "http://localhost:8080")
@@ -35,7 +34,7 @@ public abstract class AbstractApiCommand extends AbstractCommand {
@CommandLine.Option(names = {"--user"}, paramLabel = "<user:password>", description = "Server user and password")
protected String user;
@CommandLine.Option(names = {"--tenant"}, description = "Tenant identifier (EE only, when multi-tenancy is enabled)")
@CommandLine.Option(names = {"--tenant"}, description = "Tenant identifier (EE only)")
protected String tenantId;
@CommandLine.Option(names = {"--api-token"}, description = "API Token (EE only).")
@@ -54,7 +53,10 @@ public abstract class AbstractApiCommand extends AbstractCommand {
}
protected DefaultHttpClient client() throws URISyntaxException {
DefaultHttpClient defaultHttpClient = new DefaultHttpClient(server.toURI(), httpClientConfiguration != null ? httpClientConfiguration : new DefaultHttpClientConfiguration());
DefaultHttpClient defaultHttpClient = DefaultHttpClient.builder()
.uri(server.toURI())
.configuration(httpClientConfiguration != null ? httpClientConfiguration : new DefaultHttpClientConfiguration())
.build();
MessageBodyHandlerRegistry defaultHandlerRegistry = defaultHttpClient.getHandlerRegistry();
if (defaultHandlerRegistry instanceof ContextlessMessageBodyHandlerRegistry modifiableRegistry) {
modifiableRegistry.add(MediaType.TEXT_JSON_TYPE, new NettyJsonHandler<>(JsonMapper.createDefault()));
@@ -82,12 +84,12 @@ public abstract class AbstractApiCommand extends AbstractCommand {
return request;
}
protected String apiUri(String path) {
protected String apiUri(String path, String tenantId) {
if (path == null || !path.startsWith("/")) {
throw new IllegalArgumentException("'path' must be non-null and start with '/'");
}
return tenantId == null ? "/api/v1" + path : "/api/v1/" + tenantId + path;
return "/api/v1/" + tenantId + path;
}
@Builder

View File

@@ -40,7 +40,7 @@ import picocli.CommandLine.Option;
)
@Slf4j
@Introspected
abstract public class AbstractCommand implements Callable<Integer> {
public abstract class AbstractCommand implements Callable<Integer> {
@Inject
private ApplicationContext applicationContext;
@@ -93,7 +93,7 @@ abstract public class AbstractCommand implements Callable<Integer> {
this.startupHook.start(this);
}
if (this.pluginsPath != null && loadExternalPlugins()) {
if (pluginRegistryProvider != null && this.pluginsPath != null && loadExternalPlugins()) {
pluginRegistry = pluginRegistryProvider.get();
pluginRegistry.registerIfAbsent(pluginsPath);

View File

@@ -1,5 +1,6 @@
package io.kestra.cli;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.models.validations.ModelValidator;
import io.kestra.core.models.validations.ValidateConstraintViolation;
import io.kestra.core.serializers.YamlParser;
@@ -9,6 +10,7 @@ import io.micronaut.http.MediaType;
import io.micronaut.http.MutableHttpRequest;
import io.micronaut.http.client.exceptions.HttpClientResponseException;
import io.micronaut.http.client.netty.DefaultHttpClient;
import jakarta.inject.Inject;
import picocli.CommandLine;
import java.io.IOException;
@@ -31,6 +33,9 @@ public abstract class AbstractValidateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "the directory containing files to check")
protected Path directory;
@Inject
private TenantIdSelectorService tenantService;
/** {@inheritDoc} **/
@Override
protected boolean loadExternalPlugins() {
@@ -74,10 +79,9 @@ public abstract class AbstractValidateCommand extends AbstractApiCommand {
}
}
// bug in micronaut, we can't inject YamlFlowParser & ModelValidator, so we inject from implementation
// bug in micronaut, we can't inject ModelValidator, so we inject from implementation
public Integer call(
Class<?> cls,
YamlParser yamlParser,
ModelValidator modelValidator,
Function<Object, String> identity,
Function<Object, List<String>> warningsFunction,
@@ -94,7 +98,7 @@ public abstract class AbstractValidateCommand extends AbstractApiCommand {
.filter(YamlParser::isValidExtension)
.forEach(path -> {
try {
Object parse = yamlParser.parse(path.toFile(), cls);
Object parse = YamlParser.parse(path.toFile(), cls);
modelValidator.validate(parse);
stdOut("@|green \u2713|@ - " + identity.apply(parse));
List<String> warnings = warningsFunction.apply(parse);
@@ -113,7 +117,7 @@ public abstract class AbstractValidateCommand extends AbstractApiCommand {
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.POST(apiUri("/flows/validate"), body).contentType(MediaType.APPLICATION_YAML);
.POST(apiUri("/flows/validate", tenantService.getTenantId(tenantId)), body).contentType(MediaType.APPLICATION_YAML);
List<ValidateConstraintViolation> validations = client.toBlocking().retrieve(
this.requestOptions(request),

View File

@@ -2,6 +2,7 @@ package io.kestra.cli;
import io.kestra.cli.commands.configs.sys.ConfigCommand;
import io.kestra.cli.commands.flows.FlowCommand;
import io.kestra.cli.commands.migrations.MigrationCommand;
import io.kestra.cli.commands.namespaces.NamespaceCommand;
import io.kestra.cli.commands.plugins.PluginCommand;
import io.kestra.cli.commands.servers.ServerCommand;
@@ -42,12 +43,13 @@ import java.util.concurrent.Callable;
SysCommand.class,
ConfigCommand.class,
NamespaceCommand.class,
MigrationCommand.class,
}
)
@Introspected
public class App implements Callable<Integer> {
public static void main(String[] args) {
execute(App.class, args);
execute(App.class, new String [] { Environment.CLI }, args);
}
@Override
@@ -55,23 +57,30 @@ public class App implements Callable<Integer> {
return PicocliRunner.call(App.class, "--help");
}
protected static void execute(Class<?> cls, String... args) {
protected static void execute(Class<?> cls, String[] environments, String... args) {
// Log Bridge
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
// Init ApplicationContext
ApplicationContext applicationContext = App.applicationContext(cls, args);
ApplicationContext applicationContext = App.applicationContext(cls, environments, args);
// Call Picocli command
int exitCode = new CommandLine(cls, new MicronautFactory(applicationContext)).execute(args);
int exitCode = 0;
try {
exitCode = new CommandLine(cls, new MicronautFactory(applicationContext)).execute(args);
} catch (CommandLine.InitializationException e){
System.err.println("Could not initialize picoli ComandLine, err: " + e.getMessage());
e.printStackTrace();
exitCode = 1;
}
applicationContext.close();
// exit code
System.exit(Objects.requireNonNullElse(exitCode, 0));
}
/**
* Create an {@link ApplicationContext} with additional properties based on configuration files (--config) and
* forced Properties from current command.
@@ -80,12 +89,13 @@ public class App implements Callable<Integer> {
* @return the application context created
*/
protected static ApplicationContext applicationContext(Class<?> mainClass,
String[] environments,
String[] args) {
ApplicationContextBuilder builder = ApplicationContext
.builder()
.mainClass(mainClass)
.environments(Environment.CLI);
.environments(environments);
CommandLine cmd = new CommandLine(mainClass, CommandLine.defaultFactory());
continueOnParsingErrors(cmd);

View File

@@ -1,15 +1,14 @@
package io.kestra.core.runners;
package io.kestra.cli;
import io.kestra.core.schedulers.AbstractScheduler;
import io.kestra.core.runners.*;
import io.kestra.core.server.Service;
import io.kestra.core.utils.Await;
import io.kestra.core.utils.ExecutorsUtils;
import io.kestra.worker.DefaultWorker;
import io.micronaut.context.ApplicationContext;
import io.micronaut.context.annotation.Requires;
import io.micronaut.context.annotation.Value;
import jakarta.annotation.PreDestroy;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@@ -24,9 +23,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
@SuppressWarnings("try")
@Slf4j
@Singleton
@Requires(missingBeans = RunnerInterface.class)
public class StandAloneRunner implements RunnerInterface, AutoCloseable {
public class StandAloneRunner implements Runnable, AutoCloseable {
@Setter protected int workerThread = Math.max(3, Runtime.getRuntime().availableProcessors());
@Setter protected boolean schedulerEnabled = true;
@Setter protected boolean workerEnabled = true;
@@ -45,7 +42,7 @@ public class StandAloneRunner implements RunnerInterface, AutoCloseable {
private final AtomicBoolean running = new AtomicBoolean(false);
private volatile ExecutorService poolExecutor;
private ExecutorService poolExecutor;
@Override
public void run() {
@@ -57,20 +54,20 @@ public class StandAloneRunner implements RunnerInterface, AutoCloseable {
if (workerEnabled) {
// FIXME: For backward-compatibility with Kestra 0.15.x and earliest we still used UUID for Worker ID instead of IdUtils
String workerID = UUID.randomUUID().toString();
Worker worker = applicationContext.createBean(Worker.class, workerID, workerThread, null);
Worker worker = applicationContext.createBean(DefaultWorker.class, workerID, workerThread, null);
applicationContext.registerSingleton(worker); //
poolExecutor.execute(worker);
servers.add(worker);
}
if (schedulerEnabled) {
AbstractScheduler scheduler = applicationContext.getBean(AbstractScheduler.class);
Scheduler scheduler = applicationContext.getBean(Scheduler.class);
poolExecutor.execute(scheduler);
servers.add(scheduler);
}
if (indexerEnabled) {
IndexerInterface indexer = applicationContext.getBean(IndexerInterface.class);
Indexer indexer = applicationContext.getBean(Indexer.class);
poolExecutor.execute(indexer);
servers.add(indexer);
}

View File

@@ -2,11 +2,13 @@ package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.MediaType;
import io.micronaut.http.MutableHttpRequest;
import io.micronaut.http.client.exceptions.HttpClientResponseException;
import io.micronaut.http.client.netty.DefaultHttpClient;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
@@ -23,6 +25,9 @@ public class FlowCreateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "The file containing the flow")
public Path flowFile;
@Inject
private TenantIdSelectorService tenantService;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
@@ -34,7 +39,7 @@ public class FlowCreateCommand extends AbstractApiCommand {
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.POST(apiUri("/flows"), body).contentType(MediaType.APPLICATION_YAML);
.POST(apiUri("/flows", tenantService.getTenantId(tenantId)), body).contentType(MediaType.APPLICATION_YAML);
client.toBlocking().retrieve(
this.requestOptions(request),

View File

@@ -2,10 +2,12 @@ package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.MutableHttpRequest;
import io.micronaut.http.client.exceptions.HttpClientResponseException;
import io.micronaut.http.client.netty.DefaultHttpClient;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
@@ -23,6 +25,9 @@ public class FlowDeleteCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "1", description = "The ID of the flow")
public String id;
@Inject
private TenantIdSelectorService tenantService;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
@@ -30,7 +35,7 @@ public class FlowDeleteCommand extends AbstractApiCommand {
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.DELETE(apiUri("/flows/" + namespace + "/" + id ));
.DELETE(apiUri("/flows/" + namespace + "/" + id, tenantService.getTenantId(tenantId)));
client.toBlocking().exchange(
this.requestOptions(request)

View File

@@ -29,8 +29,7 @@ public class FlowDotCommand extends AbstractCommand {
public Integer call() throws Exception {
super.call();
YamlParser parser = applicationContext.getBean(YamlParser.class);
Flow flow = parser.parse(file.toFile(), Flow.class);
Flow flow = YamlParser.parse(file.toFile(), Flow.class);
GraphCluster graph = GraphUtils.of(flow, null);

View File

@@ -20,9 +20,6 @@ public class FlowExpandCommand extends AbstractCommand {
@CommandLine.Parameters(index = "0", description = "The flow file to expand")
private Path file;
@Inject
private YamlParser yamlParser;
@Inject
private ModelValidator modelValidator;
@@ -31,7 +28,7 @@ public class FlowExpandCommand extends AbstractCommand {
super.call();
stdErr("Warning, this functionality is deprecated and will be removed at some point.");
String content = IncludeHelperExpander.expand(Files.readString(file), file.getParent());
Flow flow = yamlParser.parse(content, Flow.class);
Flow flow = YamlParser.parse(content, Flow.class);
modelValidator.validate(flow);
stdOut(content);
return 0;

View File

@@ -2,7 +2,7 @@ package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.micronaut.context.ApplicationContext;
import io.kestra.cli.services.TenantIdSelectorService;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.HttpResponse;
import io.micronaut.http.MediaType;
@@ -25,9 +25,8 @@ import java.nio.file.Path;
public class FlowExportCommand extends AbstractApiCommand {
private static final String DEFAULT_FILE_NAME = "flows.zip";
// @FIXME: Keep it for bug in micronaut that need to have inject on top level command to inject on abstract classe
@Inject
private ApplicationContext applicationContext;
private TenantIdSelectorService tenantService;
@CommandLine.Option(names = {"--namespace"}, description = "The namespace of flows to export")
public String namespace;
@@ -41,7 +40,7 @@ public class FlowExportCommand extends AbstractApiCommand {
try(DefaultHttpClient client = client()) {
MutableHttpRequest<Object> request = HttpRequest
.GET(apiUri("/flows/export/by-query") + (namespace != null ? "?namespace=" + namespace : ""))
.GET(apiUri("/flows/export/by-query", tenantService.getTenantId(tenantId)) + (namespace != null ? "?namespace=" + namespace : ""))
.accept(MediaType.APPLICATION_OCTET_STREAM);
HttpResponse<byte[]> response = client.toBlocking().exchange(this.requestOptions(request), byte[].class);

View File

@@ -1,13 +1,14 @@
package io.kestra.cli.commands.flows;
import com.google.common.collect.ImmutableMap;
import io.kestra.cli.AbstractCommand;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.repositories.FlowRepositoryInterface;
import io.kestra.core.repositories.LocalFlowRepositoryLoader;
import io.kestra.core.runners.FlowInputOutput;
import io.kestra.core.runners.RunnerUtils;
import io.kestra.core.runners.StandAloneRunner;
import io.kestra.cli.StandAloneRunner;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import jakarta.validation.ConstraintViolationException;
@@ -30,7 +31,7 @@ import java.util.concurrent.TimeoutException;
description = "Test a flow"
)
@Slf4j
public class FlowTestCommand extends AbstractCommand {
public class FlowTestCommand extends AbstractApiCommand {
@Inject
private ApplicationContext applicationContext;
@@ -71,11 +72,11 @@ public class FlowTestCommand extends AbstractCommand {
public Integer call() throws Exception {
super.call();
StandAloneRunner runner = applicationContext.getBean(StandAloneRunner.class);
LocalFlowRepositoryLoader repositoryLoader = applicationContext.getBean(LocalFlowRepositoryLoader.class);
FlowRepositoryInterface flowRepository = applicationContext.getBean(FlowRepositoryInterface.class);
FlowInputOutput flowInputOutput = applicationContext.getBean(FlowInputOutput.class);
RunnerUtils runnerUtils = applicationContext.getBean(RunnerUtils.class);
TenantIdSelectorService tenantService = applicationContext.getBean(TenantIdSelectorService.class);
Map<String, Object> inputs = new HashMap<>();
@@ -87,9 +88,9 @@ public class FlowTestCommand extends AbstractCommand {
inputs.put(this.inputs.get(i), this.inputs.get(i+1));
}
try {
try (StandAloneRunner runner = applicationContext.createBean(StandAloneRunner.class);){
runner.run();
repositoryLoader.load(file.toFile());
repositoryLoader.load(tenantService.getTenantId(tenantId), file.toFile());
List<Flow> all = flowRepository.findAllForAllTenants();
if (all.size() != 1) {
@@ -101,8 +102,6 @@ public class FlowTestCommand extends AbstractCommand {
(flow, execution) -> flowInputOutput.readExecutionInputs(flow, execution, inputs),
Duration.ofHours(1)
);
runner.close();
} catch (ConstraintViolationException e) {
throw new CommandLine.ParameterException(this.spec.commandLine(), e.getMessage());
} catch (IOException | TimeoutException e) {

View File

@@ -2,11 +2,13 @@ package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.MediaType;
import io.micronaut.http.MutableHttpRequest;
import io.micronaut.http.client.exceptions.HttpClientResponseException;
import io.micronaut.http.client.netty.DefaultHttpClient;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
@@ -29,6 +31,9 @@ public class FlowUpdateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "2", description = "The ID of the flow")
public String id;
@Inject
private TenantIdSelectorService tenantService;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
@@ -40,7 +45,7 @@ public class FlowUpdateCommand extends AbstractApiCommand {
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.PUT(apiUri("/flows/" + namespace + "/" + id ), body).contentType(MediaType.APPLICATION_YAML);
.PUT(apiUri("/flows/" + namespace + "/" + id, tenantService.getTenantId(tenantId)), body).contentType(MediaType.APPLICATION_YAML);
client.toBlocking().retrieve(
this.requestOptions(request),

View File

@@ -2,6 +2,7 @@ package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.serializers.YamlParser;
import io.micronaut.core.type.Argument;
import io.micronaut.http.HttpRequest;
@@ -9,6 +10,7 @@ import io.micronaut.http.MediaType;
import io.micronaut.http.MutableHttpRequest;
import io.micronaut.http.client.exceptions.HttpClientResponseException;
import io.micronaut.http.client.netty.DefaultHttpClient;
import jakarta.inject.Inject;
import jakarta.validation.ConstraintViolationException;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
@@ -36,6 +38,9 @@ public class FlowUpdatesCommand extends AbstractApiCommand {
@CommandLine.Option(names = {"--namespace"}, description = "The parent namespace of the flows, if not set, every namespace are allowed.")
public String namespace;
@Inject
private TenantIdSelectorService tenantIdSelectorService;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
@@ -66,7 +71,7 @@ public class FlowUpdatesCommand extends AbstractApiCommand {
namespaceQuery = "&namespace=" + namespace;
}
MutableHttpRequest<String> request = HttpRequest
.POST(apiUri("/flows/bulk") + "?allowNamespaceChild=true&delete=" + delete + namespaceQuery, body).contentType(MediaType.APPLICATION_YAML);
.POST(apiUri("/flows/bulk", tenantIdSelectorService.getTenantId(tenantId)) + "?allowNamespaceChild=true&delete=" + delete + namespaceQuery, body).contentType(MediaType.APPLICATION_YAML);
List<UpdateResult> updated = client.toBlocking().retrieve(
this.requestOptions(request),

View File

@@ -1,9 +1,9 @@
package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.core.models.flows.Flow;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.models.flows.FlowWithSource;
import io.kestra.core.models.validations.ModelValidator;
import io.kestra.core.serializers.YamlParser;
import io.kestra.core.services.FlowService;
import jakarta.inject.Inject;
import picocli.CommandLine;
@@ -16,8 +16,6 @@ import java.util.List;
description = "Validate a flow"
)
public class FlowValidateCommand extends AbstractValidateCommand {
@Inject
private YamlParser yamlParser;
@Inject
private ModelValidator modelValidator;
@@ -25,26 +23,28 @@ public class FlowValidateCommand extends AbstractValidateCommand {
@Inject
private FlowService flowService;
@Inject
private TenantIdSelectorService tenantService;
@Override
public Integer call() throws Exception {
return this.call(
Flow.class,
yamlParser,
FlowWithSource.class,
modelValidator,
(Object object) -> {
Flow flow = (Flow) object;
FlowWithSource flow = (FlowWithSource) object;
return flow.getNamespace() + " / " + flow.getId();
},
(Object object) -> {
Flow flow = (Flow) object;
FlowWithSource flow = (FlowWithSource) object;
List<String> warnings = new ArrayList<>();
warnings.addAll(flowService.deprecationPaths(flow).stream().map(deprecation -> deprecation + " is deprecated").toList());
warnings.addAll(flowService.warnings(flow, this.tenantId));
warnings.addAll(flowService.warnings(flow, tenantService.getTenantId(tenantId)));
return warnings;
},
(Object object) -> {
Flow flow = (Flow) object;
return flowService.relocations(flow.generateSource()).stream().map(relocation -> relocation.from() + " is replaced by " + relocation.to()).toList();
FlowWithSource flow = (FlowWithSource) object;
return flowService.relocations(flow.sourceOrGenerateIfNull()).stream().map(relocation -> relocation.from() + " is replaced by " + relocation.to()).toList();
}
);
}

View File

@@ -3,6 +3,7 @@ package io.kestra.cli.commands.flows.namespaces;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.commands.AbstractServiceNamespaceUpdateCommand;
import io.kestra.cli.commands.flows.IncludeHelperExpander;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.serializers.YamlParser;
import io.micronaut.core.type.Argument;
import io.micronaut.http.HttpRequest;
@@ -27,12 +28,13 @@ import java.util.List;
)
@Slf4j
public class FlowNamespaceUpdateCommand extends AbstractServiceNamespaceUpdateCommand {
@Inject
public YamlParser yamlParser;
@CommandLine.Option(names = {"--override-namespaces"}, negatable = true, description = "Replace namespace of all flows by the one provided")
public boolean override = false;
@Inject
private TenantIdSelectorService tenantService;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
@@ -62,7 +64,7 @@ public class FlowNamespaceUpdateCommand extends AbstractServiceNamespaceUpdateCo
}
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.POST(apiUri("/flows/") + namespace + "?delete=" + delete, body).contentType(MediaType.APPLICATION_YAML);
.POST(apiUri("/flows/", tenantService.getTenantId(tenantId)) + namespace + "?delete=" + delete, body).contentType(MediaType.APPLICATION_YAML);
List<UpdateResult> updated = client.toBlocking().retrieve(
this.requestOptions(request),

View File

@@ -0,0 +1,29 @@
package io.kestra.cli.commands.migrations;
import io.kestra.cli.AbstractCommand;
import io.kestra.cli.App;
import io.micronaut.configuration.picocli.PicocliRunner;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
@CommandLine.Command(
name = "migrate",
description = "handle migrations",
mixinStandardHelpOptions = true,
subcommands = {
TenantMigrationCommand.class,
}
)
@Slf4j
public class MigrationCommand extends AbstractCommand {
@SneakyThrows
@Override
public Integer call() throws Exception {
super.call();
PicocliRunner.call(App.class, "migrate", "--help");
return 0;
}
}

View File

@@ -0,0 +1,49 @@
package io.kestra.cli.commands.migrations;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.repositories.TenantMigrationInterface;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import picocli.CommandLine.Option;
@CommandLine.Command(
name = "default-tenant",
description = "migrate every elements from no tenant to the main tenant"
)
@Slf4j
public class TenantMigrationCommand extends AbstractCommand {
@Inject
private ApplicationContext applicationContext;
@Option(names = "--tenant-id", description = "tenant identifier")
String tenantId;
@Option(names = "--tenant-name", description = "tenant name")
String tenantName;
@Option(names = "--dry-run", description = "Preview only, do not update")
boolean dryRun;
@Override
public Integer call() throws Exception {
super.call();
if (dryRun) {
System.out.println("🧪 Dry-run mode enabled. No changes will be applied.");
}
TenantMigrationService migrationService = this.applicationContext.getBean(TenantMigrationService.class);
try {
migrationService.migrateTenant(tenantId, tenantName, dryRun);
System.out.println("✅ Tenant migration complete.");
} catch (Exception e) {
System.err.println("❌ Tenant migration failed: " + e.getMessage());
e.printStackTrace();
return 1;
}
return 0;
}
}

View File

@@ -0,0 +1,56 @@
package io.kestra.cli.commands.migrations;
import static io.kestra.core.tenant.TenantService.MAIN_TENANT;
import com.github.javaparser.utils.Log;
import io.kestra.core.exceptions.KestraRuntimeException;
import io.kestra.core.models.flows.FlowInterface;
import io.kestra.core.queues.QueueException;
import io.kestra.core.queues.QueueFactoryInterface;
import io.kestra.core.queues.QueueInterface;
import io.kestra.core.repositories.FlowRepositoryInterface;
import io.kestra.core.repositories.TenantMigrationInterface;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@Singleton
@Slf4j
public class TenantMigrationService {
@Inject
private TenantMigrationInterface tenantMigrationInterface;
@Inject
private FlowRepositoryInterface flowRepository;
@Inject
@Named(QueueFactoryInterface.FLOW_NAMED)
private QueueInterface<FlowInterface> flowQueue;
public void migrateTenant(String tenantId, String tenantName, boolean dryRun) {
if (StringUtils.isNotBlank(tenantId) && !MAIN_TENANT.equals(tenantId)){
throw new KestraRuntimeException("Tenant configuration is an enterprise feature. It can only be main in OSS");
}
Log.info("🔁 Starting tenant migration...");
tenantMigrationInterface.migrateTenant(MAIN_TENANT, dryRun);
migrateQueue(dryRun);
}
protected void migrateQueue(boolean dryRun) {
if (!dryRun){
log.info("🔁 Starting restoring queue...");
flowRepository.findAllWithSourceForAllTenants().forEach(flow -> {
try {
flowQueue.emit(flow);
} catch (QueueException e) {
log.warn("Unable to send the flow {} to the queue", flow.uid(), e);
}
});
}
}
}

View File

@@ -2,12 +2,14 @@ package io.kestra.cli.commands.namespaces.files;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.utils.KestraIgnore;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.MediaType;
import io.micronaut.http.client.exceptions.HttpClientResponseException;
import io.micronaut.http.client.multipart.MultipartBody;
import io.micronaut.http.client.netty.DefaultHttpClient;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
@@ -34,6 +36,9 @@ public class NamespaceFilesUpdateCommand extends AbstractApiCommand {
@CommandLine.Option(names = {"--delete"}, negatable = true, description = "Whether missing should be deleted")
public boolean delete = false;
@Inject
private TenantIdSelectorService tenantService;
private static final String KESTRA_IGNORE_FILE = ".kestraignore";
@Override
@@ -44,7 +49,7 @@ public class NamespaceFilesUpdateCommand extends AbstractApiCommand {
try (var files = Files.walk(from); DefaultHttpClient client = client()) {
if (delete) {
client.toBlocking().exchange(this.requestOptions(HttpRequest.DELETE(apiUri("/namespaces/") + namespace + "/files?path=" + to, null)));
client.toBlocking().exchange(this.requestOptions(HttpRequest.DELETE(apiUri("/namespaces/", tenantService.getTenantId(tenantId)) + namespace + "/files?path=" + to, null)));
}
KestraIgnore kestraIgnore = new KestraIgnore(from);
@@ -62,7 +67,7 @@ public class NamespaceFilesUpdateCommand extends AbstractApiCommand {
client.toBlocking().exchange(
this.requestOptions(
HttpRequest.POST(
apiUri("/namespaces/") + namespace + "/files?path=" + destination,
apiUri("/namespaces/", tenantService.getTenantId(tenantId)) + namespace + "/files?path=" + destination,
body
).contentType(MediaType.MULTIPART_FORM_DATA)
)

View File

@@ -3,11 +3,13 @@ package io.kestra.cli.commands.namespaces.kv;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.serializers.JacksonMapper;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.MediaType;
import io.micronaut.http.MutableHttpRequest;
import io.micronaut.http.client.netty.DefaultHttpClient;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import picocli.CommandLine.Option;
@@ -42,6 +44,9 @@ public class KvUpdateCommand extends AbstractApiCommand {
@Option(names = {"-f", "--file-value"}, description = "The file from which to read the value to set. If this is provided, it will take precedence over any specified value.")
public Path fileValue;
@Inject
private TenantIdSelectorService tenantService;
@Override
public Integer call() throws Exception {
super.call();
@@ -56,7 +61,7 @@ public class KvUpdateCommand extends AbstractApiCommand {
Duration ttl = expiration == null ? null : Duration.parse(expiration);
MutableHttpRequest<String> request = HttpRequest
.PUT(apiUri("/namespaces/") + namespace + "/kv/" + key, value)
.PUT(apiUri("/namespaces/", tenantService.getTenantId(tenantId)) + namespace + "/kv/" + key, value)
.contentType(MediaType.APPLICATION_JSON_TYPE);
if (ttl != null) {

View File

@@ -18,6 +18,8 @@ import java.nio.file.Paths;
import java.util.Base64;
import java.util.List;
import static io.kestra.core.models.Plugin.isDeprecated;
@CommandLine.Command(
name = "doc",
description = "Generate documentation for all plugins currently installed"
@@ -38,6 +40,9 @@ public class PluginDocCommand extends AbstractCommand {
@CommandLine.Option(names = {"--schema"}, description = "Also write JSON Schema for each task")
private boolean schema = false;
@CommandLine.Option(names = {"--skip-deprecated"},description = "Skip deprecated plugins when generating documentations")
private boolean skipDeprecated = false;
@Override
public Integer call() throws Exception {
super.call();
@@ -45,6 +50,11 @@ public class PluginDocCommand extends AbstractCommand {
PluginRegistry registry = pluginRegistryProvider.get();
List<RegisteredPlugin> plugins = core ? registry.plugins() : registry.externalPlugins();
if (skipDeprecated) {
plugins = plugins.stream()
.filter(plugin -> !isDeprecated(plugin.getClass()))
.toList();
}
boolean hasFailures = false;
for (RegisteredPlugin registeredPlugin : plugins) {

View File

@@ -2,20 +2,28 @@ package io.kestra.cli.commands.servers;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.contexts.KestraContext;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
abstract public class AbstractServerCommand extends AbstractCommand implements ServerCommandInterface {
@Slf4j
public abstract class AbstractServerCommand extends AbstractCommand implements ServerCommandInterface {
@CommandLine.Option(names = {"--port"}, description = "The port to bind")
Integer serverPort;
@Override
public Integer call() throws Exception {
log.info("Machine information: {} available cpu(s), {}MB max memory, Java version {}", Runtime.getRuntime().availableProcessors(), maxMemoryInMB(), Runtime.version());
this.shutdownHook(true, () -> KestraContext.getContext().shutdown());
return super.call();
}
private long maxMemoryInMB() {
return Runtime.getRuntime().maxMemory() / 1024 / 1024;
}
protected static int defaultWorkerThread() {
return Runtime.getRuntime().availableProcessors() * 4;
return Runtime.getRuntime().availableProcessors() * 8;
}
}

View File

@@ -2,12 +2,15 @@ package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.core.models.ServerType;
import io.kestra.core.runners.IndexerInterface;
import io.kestra.core.runners.Indexer;
import io.kestra.core.utils.Await;
import io.kestra.core.services.SkipExecutionService;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import picocli.CommandLine;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@CommandLine.Command(
@@ -17,6 +20,11 @@ import java.util.Map;
public class IndexerCommand extends AbstractServerCommand {
@Inject
private ApplicationContext applicationContext;
@Inject
private SkipExecutionService skipExecutionService;
@CommandLine.Option(names = {"--skip-indexer-records"}, split=",", description = "a list of indexer record keys, separated by a coma; for troubleshooting purpose only")
private List<String> skipIndexerRecords = Collections.emptyList();
@SuppressWarnings("unused")
public static Map<String, Object> propertiesOverrides() {
@@ -27,9 +35,11 @@ public class IndexerCommand extends AbstractServerCommand {
@Override
public Integer call() throws Exception {
this.skipExecutionService.setSkipIndexerRecords(skipIndexerRecords);
super.call();
IndexerInterface indexer = applicationContext.getBean(IndexerInterface.class);
Indexer indexer = applicationContext.getBean(Indexer.class);
indexer.run();
Await.until(() -> !this.applicationContext.isRunning());

View File

@@ -2,7 +2,7 @@ package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.core.models.ServerType;
import io.kestra.core.schedulers.AbstractScheduler;
import io.kestra.scheduler.AbstractScheduler;
import io.kestra.core.utils.Await;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;

View File

@@ -2,10 +2,11 @@ package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.cli.services.FileChangedEventListener;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.contexts.KestraContext;
import io.kestra.core.models.ServerType;
import io.kestra.core.repositories.LocalFlowRepositoryLoader;
import io.kestra.core.runners.StandAloneRunner;
import io.kestra.cli.StandAloneRunner;
import io.kestra.core.services.SkipExecutionService;
import io.kestra.core.services.StartExecutorService;
import io.kestra.core.utils.Await;
@@ -44,7 +45,10 @@ public class StandAloneCommand extends AbstractServerCommand {
@CommandLine.Option(names = {"-f", "--flow-path"}, description = "the flow path containing flow to inject at startup (when running with a memory flow repository)")
private File flowPath;
@CommandLine.Option(names = {"--worker-thread"}, description = "the number of worker threads, defaults to four times the number of available processors. Set it to 0 to avoid starting a worker.")
@CommandLine.Option(names = "--tenant", description = "Tenant identifier, Required to load flows from path with the enterprise edition")
private String tenantId;
@CommandLine.Option(names = {"--worker-thread"}, description = "the number of worker threads, defaults to eight times the number of available processors. Set it to 0 to avoid starting a worker.")
private int workerThread = defaultWorkerThread();
@CommandLine.Option(names = {"--skip-executions"}, split=",", description = "a list of execution identifiers to skip, separated by a coma; for troubleshooting purpose only")
@@ -59,6 +63,9 @@ public class StandAloneCommand extends AbstractServerCommand {
@CommandLine.Option(names = {"--skip-tenants"}, split=",", description = "a list of tenants to skip, separated by a coma; for troubleshooting purpose only")
private List<String> skipTenants = Collections.emptyList();
@CommandLine.Option(names = {"--skip-indexer-records"}, split=",", description = "a list of indexer record keys, separated by a coma; for troubleshooting purpose only")
private List<String> skipIndexerRecords = Collections.emptyList();
@CommandLine.Option(names = {"--no-tutorials"}, description = "Flag to disable auto-loading of tutorial flows.")
boolean tutorialsDisabled = false;
@@ -89,6 +96,7 @@ public class StandAloneCommand extends AbstractServerCommand {
this.skipExecutionService.setSkipFlows(skipFlows);
this.skipExecutionService.setSkipNamespaces(skipNamespaces);
this.skipExecutionService.setSkipTenants(skipTenants);
this.skipExecutionService.setSkipIndexerRecords(skipIndexerRecords);
this.startExecutorService.applyOptions(startExecutors, notStartExecutors);
KestraContext.getContext().injectWorkerConfigs(workerThread, null);
@@ -98,32 +106,34 @@ public class StandAloneCommand extends AbstractServerCommand {
if (flowPath != null) {
try {
LocalFlowRepositoryLoader localFlowRepositoryLoader = applicationContext.getBean(LocalFlowRepositoryLoader.class);
localFlowRepositoryLoader.load(this.flowPath);
TenantIdSelectorService tenantIdSelectorService = applicationContext.getBean(TenantIdSelectorService.class);
localFlowRepositoryLoader.load(tenantIdSelectorService.getTenantId(this.tenantId), this.flowPath);
} catch (IOException e) {
throw new CommandLine.ParameterException(this.spec.commandLine(), "Invalid flow path", e);
}
}
StandAloneRunner standAloneRunner = applicationContext.getBean(StandAloneRunner.class);
try (StandAloneRunner standAloneRunner = applicationContext.getBean(StandAloneRunner.class)) {
if (this.workerThread == 0) {
standAloneRunner.setWorkerEnabled(false);
} else {
standAloneRunner.setWorkerThread(this.workerThread);
if (this.workerThread == 0) {
standAloneRunner.setWorkerEnabled(false);
} else {
standAloneRunner.setWorkerThread(this.workerThread);
}
if (this.indexerDisabled) {
standAloneRunner.setIndexerEnabled(false);
}
standAloneRunner.run();
if (fileWatcher != null) {
fileWatcher.startListeningFromConfig();
}
Await.until(() -> !this.applicationContext.isRunning());
}
if (this.indexerDisabled) {
standAloneRunner.setIndexerEnabled(false);
}
standAloneRunner.run();
if (fileWatcher != null) {
fileWatcher.startListeningFromConfig();
}
Await.until(() -> !this.applicationContext.isRunning());
return 0;
}
}

View File

@@ -2,15 +2,18 @@ package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.core.models.ServerType;
import io.kestra.core.runners.IndexerInterface;
import io.kestra.core.runners.Indexer;
import io.kestra.core.utils.Await;
import io.kestra.core.utils.ExecutorsUtils;
import io.kestra.core.services.SkipExecutionService;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import picocli.CommandLine.Option;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
@@ -28,11 +31,17 @@ public class WebServerCommand extends AbstractServerCommand {
@Inject
private ExecutorsUtils executorsUtils;
@Inject
private SkipExecutionService skipExecutionService;
@Option(names = {"--no-tutorials"}, description = "Flag to disable auto-loading of tutorial flows.")
boolean tutorialsDisabled = false;
private boolean tutorialsDisabled = false;
@Option(names = {"--no-indexer"}, description = "Flag to disable starting an embedded indexer.")
boolean indexerDisabled = false;
private boolean indexerDisabled = false;
@CommandLine.Option(names = {"--skip-indexer-records"}, split=",", description = "a list of indexer record keys, separated by a coma; for troubleshooting purpose only")
private List<String> skipIndexerRecords = Collections.emptyList();
@Override
public boolean isFlowAutoLoadEnabled() {
@@ -48,13 +57,15 @@ public class WebServerCommand extends AbstractServerCommand {
@Override
public Integer call() throws Exception {
this.skipExecutionService.setSkipIndexerRecords(skipIndexerRecords);
super.call();
// start the indexer
if (!indexerDisabled) {
log.info("Starting an embedded indexer, this can be disabled by using `--no-indexer`.");
poolExecutor = executorsUtils.cachedThreadPool("webserver-indexer");
poolExecutor.execute(applicationContext.getBean(IndexerInterface.class));
poolExecutor.execute(applicationContext.getBean(Indexer.class));
shutdownHook(false, () -> poolExecutor.shutdown());
}

View File

@@ -22,7 +22,7 @@ public class WorkerCommand extends AbstractServerCommand {
@Inject
private ApplicationContext applicationContext;
@Option(names = {"-t", "--thread"}, description = "The max number of worker threads, defaults to four times the number of available processors")
@Option(names = {"-t", "--thread"}, description = "The max number of worker threads, defaults to eight times the number of available processors")
private int thread = defaultWorkerThread();
@Option(names = {"-g", "--worker-group"}, description = "The worker group key, must match the regex [a-zA-Z0-9_-]+ (EE only)")

View File

@@ -2,6 +2,7 @@ package io.kestra.cli.commands.sys;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.models.flows.GenericFlow;
import io.kestra.core.repositories.FlowRepositoryInterface;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
@@ -9,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.util.List;
import java.util.Objects;
@CommandLine.Command(
name = "reindex",
@@ -33,8 +35,8 @@ public class ReindexCommand extends AbstractCommand {
List<Flow> allFlow = flowRepository.findAllForAllTenants();
allFlow.stream()
.map(flow -> flowRepository.findByIdWithSource(flow.getTenantId(), flow.getNamespace(), flow.getId()).orElse(null))
.filter(flow -> flow != null)
.forEach(flow -> flowRepository.update(flow.toFlow(), flow.toFlow(), flow.getSource(), flow.toFlow()));
.filter(Objects::nonNull)
.forEach(flow -> flowRepository.update(GenericFlow.of(flow), flow));
stdOut("Successfully reindex " + allFlow.size() + " flow(s).");
}

View File

@@ -2,8 +2,8 @@ package io.kestra.cli.commands.templates;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.models.templates.TemplateEnabled;
import io.micronaut.context.ApplicationContext;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.HttpResponse;
import io.micronaut.http.MediaType;
@@ -27,9 +27,8 @@ import java.nio.file.Path;
public class TemplateExportCommand extends AbstractApiCommand {
private static final String DEFAULT_FILE_NAME = "templates.zip";
// @FIXME: Keep it for bug in micronaut that need to have inject on top level command to inject on abstract classe
@Inject
private ApplicationContext applicationContext;
private TenantIdSelectorService tenantService;
@CommandLine.Option(names = {"--namespace"}, description = "The namespace of templates to export")
public String namespace;
@@ -43,7 +42,7 @@ public class TemplateExportCommand extends AbstractApiCommand {
try(DefaultHttpClient client = client()) {
MutableHttpRequest<Object> request = HttpRequest
.GET(apiUri("/templates/export/by-query") + (namespace != null ? "?namespace=" + namespace : ""))
.GET(apiUri("/templates/export/by-query", tenantService.getTenantId(tenantId)) + (namespace != null ? "?namespace=" + namespace : ""))
.accept(MediaType.APPLICATION_OCTET_STREAM);
HttpResponse<byte[]> response = client.toBlocking().exchange(this.requestOptions(request), byte[].class);

View File

@@ -4,7 +4,6 @@ import io.kestra.cli.AbstractValidateCommand;
import io.kestra.core.models.templates.Template;
import io.kestra.core.models.templates.TemplateEnabled;
import io.kestra.core.models.validations.ModelValidator;
import io.kestra.core.serializers.YamlParser;
import jakarta.inject.Inject;
import picocli.CommandLine;
@@ -16,8 +15,6 @@ import java.util.Collections;
)
@TemplateEnabled
public class TemplateValidateCommand extends AbstractValidateCommand {
@Inject
private YamlParser yamlParser;
@Inject
private ModelValidator modelValidator;
@@ -26,7 +23,6 @@ public class TemplateValidateCommand extends AbstractValidateCommand {
public Integer call() throws Exception {
return this.call(
Template.class,
yamlParser,
modelValidator,
(Object object) -> {
Template template = (Template) object;

View File

@@ -2,6 +2,7 @@ package io.kestra.cli.commands.templates.namespaces;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.commands.AbstractServiceNamespaceUpdateCommand;
import io.kestra.cli.services.TenantIdSelectorService;
import io.kestra.core.models.templates.Template;
import io.kestra.core.models.templates.TemplateEnabled;
import io.kestra.core.serializers.YamlParser;
@@ -27,8 +28,9 @@ import jakarta.validation.ConstraintViolationException;
@Slf4j
@TemplateEnabled
public class TemplateNamespaceUpdateCommand extends AbstractServiceNamespaceUpdateCommand {
@Inject
public YamlParser yamlParser;
private TenantIdSelectorService tenantService;
@Override
public Integer call() throws Exception {
@@ -38,7 +40,7 @@ public class TemplateNamespaceUpdateCommand extends AbstractServiceNamespaceUpda
List<Template> templates = files
.filter(Files::isRegularFile)
.filter(YamlParser::isValidExtension)
.map(path -> yamlParser.parse(path.toFile(), Template.class))
.map(path -> YamlParser.parse(path.toFile(), Template.class))
.toList();
if (templates.isEmpty()) {
@@ -47,7 +49,7 @@ public class TemplateNamespaceUpdateCommand extends AbstractServiceNamespaceUpda
try (DefaultHttpClient client = client()) {
MutableHttpRequest<List<Template>> request = HttpRequest
.POST(apiUri("/templates/") + namespace + "?delete=" + delete, templates);
.POST(apiUri("/templates/", tenantService.getTenantId(tenantId)) + namespace + "?delete=" + delete, templates);
List<UpdateResult> updated = client.toBlocking().retrieve(
this.requestOptions(request),

View File

@@ -1,27 +1,27 @@
package io.kestra.cli.services;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.exceptions.FlowProcessingException;
import io.kestra.core.models.flows.FlowInterface;
import io.kestra.core.models.flows.FlowWithPath;
import io.kestra.core.models.flows.FlowWithSource;
import io.kestra.core.models.flows.GenericFlow;
import io.kestra.core.models.validations.ModelValidator;
import io.kestra.core.repositories.FlowRepositoryInterface;
import io.kestra.core.serializers.YamlParser;
import io.kestra.core.services.FlowListenersInterface;
import io.kestra.core.services.PluginDefaultService;
import io.micronaut.context.annotation.Requires;
import io.micronaut.context.annotation.Value;
import io.micronaut.scheduling.io.watch.FileWatchConfiguration;
import jakarta.annotation.Nullable;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import jakarta.validation.ConstraintViolationException;
import java.util.concurrent.CopyOnWriteArrayList;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Nullable;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -40,26 +40,18 @@ public class FileChangedEventListener {
@Inject
private PluginDefaultService pluginDefaultService;
@Inject
private YamlParser yamlParser;
@Inject
private ModelValidator modelValidator;
@Inject
protected FlowListenersInterface flowListeners;
@Nullable
@Value("${micronaut.io.watch.tenantId}")
private String tenantId;
FlowFilesManager flowFilesManager;
private List<FlowWithPath> flows = new ArrayList<>();
private List<FlowWithPath> flows = new CopyOnWriteArrayList<>();
private boolean isStarted = false;
@Inject
public FileChangedEventListener(@Nullable FileWatchConfiguration fileWatchConfiguration, @Nullable WatchService watchService) {
this.fileWatchConfiguration = fileWatchConfiguration;
@@ -68,7 +60,7 @@ public class FileChangedEventListener {
public void startListeningFromConfig() throws IOException, InterruptedException {
if (fileWatchConfiguration != null && fileWatchConfiguration.isEnabled()) {
this.flowFilesManager = new LocalFlowFileWatcher(flowRepositoryInterface, pluginDefaultService);
this.flowFilesManager = new LocalFlowFileWatcher(flowRepositoryInterface);
List<Path> paths = fileWatchConfiguration.getPaths();
this.setup(paths);
@@ -76,7 +68,7 @@ public class FileChangedEventListener {
// Init existing flows not already in files
flowListeners.listen(flows -> {
if (!isStarted) {
for (FlowWithSource flow : flows) {
for (FlowInterface flow : flows) {
if (this.flows.stream().noneMatch(flowWithPath -> flowWithPath.uidWithoutRevision().equals(flow.uidWithoutRevision()))) {
flowToFile(flow, this.buildPath(flow));
this.flows.add(FlowWithPath.of(flow, this.buildPath(flow).toString()));
@@ -137,7 +129,7 @@ public class FileChangedEventListener {
try {
String content = Files.readString(filePath, Charset.defaultCharset());
Optional<Flow> flow = parseFlow(content, entry);
Optional<FlowWithSource> flow = parseFlow(content, entry);
if (flow.isPresent()) {
if (kind == StandardWatchEventKinds.ENTRY_MODIFY) {
// Check if we already have a file with the given path
@@ -156,12 +148,20 @@ public class FileChangedEventListener {
flows.add(FlowWithPath.of(flow.get(), filePath.toString()));
}
flowFilesManager.createOrUpdateFlow(flow.get(), content);
flowFilesManager.createOrUpdateFlow(GenericFlow.fromYaml(getTenantIdFromPath(filePath), content));
log.info("Flow {} from file {} has been created or modified", flow.get().getId(), entry);
}
} catch (NoSuchFileException e) {
log.error("File not found: {}", entry, e);
log.warn("File not found: {}, deleting it", entry, e);
// the file might have been deleted while reading so if not found we try to delete the flow
flows.stream()
.filter(flow -> flow.getPath().equals(filePath.toString()))
.findFirst()
.ifPresent(flowWithPath -> {
flowFilesManager.deleteFlow(flowWithPath.getTenantId(), flowWithPath.getNamespace(), flowWithPath.getId());
this.flows.removeIf(fwp -> fwp.uidWithoutRevision().equals(flowWithPath.uidWithoutRevision()));
});
} catch (IOException e) {
log.error("Error reading file: {}", entry, e);
}
@@ -207,11 +207,11 @@ public class FileChangedEventListener {
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (file.toString().endsWith(".yml") || file.toString().endsWith(".yaml")) {
String content = Files.readString(file, Charset.defaultCharset());
Optional<Flow> flow = parseFlow(content, file);
Optional<FlowWithSource> flow = parseFlow(content, file);
if (flow.isPresent() && flows.stream().noneMatch(flowWithPath -> flowWithPath.uidWithoutRevision().equals(flow.get().uidWithoutRevision()))) {
flows.add(FlowWithPath.of(flow.get(), file.toString()));
flowFilesManager.createOrUpdateFlow(flow.get(), content);
flowFilesManager.createOrUpdateFlow(GenericFlow.fromYaml(getTenantIdFromPath(file), content));
}
}
return FileVisitResult.CONTINUE;
@@ -223,27 +223,25 @@ public class FileChangedEventListener {
}
}
private void flowToFile(FlowWithSource flow, Path path) {
private void flowToFile(FlowInterface flow, Path path) {
Path defaultPath = path != null ? path : this.buildPath(flow);
try {
Files.writeString(defaultPath, flow.getSource());
Files.writeString(defaultPath, flow.source());
log.info("Flow {} has been written to file {}", flow.getId(), defaultPath);
} catch (IOException e) {
log.error("Error writing file: {}", defaultPath, e);
}
}
private Optional<Flow> parseFlow(String content, Path entry) {
private Optional<FlowWithSource> parseFlow(String content, Path entry) {
try {
Flow flow = yamlParser.parse(content, Flow.class);
FlowWithSource withPluginDefault = pluginDefaultService.injectDefaults(FlowWithSource.of(flow, content));
modelValidator.validate(withPluginDefault);
FlowWithSource flow = pluginDefaultService.parseFlowWithAllDefaults(getTenantIdFromPath(entry), content, false);
modelValidator.validate(flow);
return Optional.of(flow);
} catch (ConstraintViolationException e) {
} catch (ConstraintViolationException | FlowProcessingException e) {
log.warn("Error while parsing flow: {}", entry, e);
}
return Optional.empty();
}
@@ -259,7 +257,13 @@ public class FileChangedEventListener {
}
}
private Path buildPath(Flow flow) {
private Path buildPath(FlowInterface flow) {
return fileWatchConfiguration.getPaths().getFirst().resolve(flow.uidWithoutRevision() + ".yml");
}
private String getTenantIdFromPath(Path path) {
// FIXME there is probably a bug here when a tenant has '_' in its name,
// a valid tenant name is defined with following regex: "^[a-z0-9][a-z0-9_-]*"
return path.getFileName().toString().split("_")[0];
}
}

View File

@@ -1,11 +1,11 @@
package io.kestra.cli.services;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.models.flows.FlowWithSource;
import io.kestra.core.models.flows.GenericFlow;
public interface FlowFilesManager {
FlowWithSource createOrUpdateFlow(Flow flow, String content);
FlowWithSource createOrUpdateFlow(GenericFlow flow);
void deleteFlow(FlowWithSource toDelete);

View File

@@ -1,27 +1,23 @@
package io.kestra.cli.services;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.models.flows.FlowWithSource;
import io.kestra.core.models.flows.GenericFlow;
import io.kestra.core.repositories.FlowRepositoryInterface;
import io.kestra.core.services.PluginDefaultService;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class LocalFlowFileWatcher implements FlowFilesManager {
private final FlowRepositoryInterface flowRepository;
private final PluginDefaultService pluginDefaultService;
public LocalFlowFileWatcher(FlowRepositoryInterface flowRepository, PluginDefaultService pluginDefaultService) {
public LocalFlowFileWatcher(FlowRepositoryInterface flowRepository) {
this.flowRepository = flowRepository;
this.pluginDefaultService = pluginDefaultService;
}
@Override
public FlowWithSource createOrUpdateFlow(Flow flow, String content) {
FlowWithSource withDefault = pluginDefaultService.injectDefaults(FlowWithSource.of(flow, content));
return flowRepository.findById(null, flow.getNamespace(), flow.getId())
.map(previous -> flowRepository.update(flow, previous, content, withDefault))
.orElseGet(() -> flowRepository.create(flow, content, withDefault));
public FlowWithSource createOrUpdateFlow(final GenericFlow flow) {
return flowRepository.findById(flow.getTenantId(), flow.getNamespace(), flow.getId())
.map(previous -> flowRepository.update(flow, previous))
.orElseGet(() -> flowRepository.create(flow));
}
@Override

View File

@@ -0,0 +1,19 @@
package io.kestra.cli.services;
import static io.kestra.core.tenant.TenantService.MAIN_TENANT;
import io.kestra.core.exceptions.KestraRuntimeException;
import jakarta.inject.Singleton;
import org.apache.commons.lang3.StringUtils;
@Singleton
public class TenantIdSelectorService {
//For override purpose in Kestra EE
public String getTenantId(String tenantId) {
if (StringUtils.isNotBlank(tenantId) && !MAIN_TENANT.equals(tenantId)){
throw new KestraRuntimeException("Tenant id can only be 'main'");
}
return MAIN_TENANT;
}
}

View File

@@ -18,6 +18,10 @@ micronaut:
root:
paths: classpath:root
mapping: /**
codec:
json:
additional-types:
- application/scim+json
server:
max-request-size: 10GB
multipart:
@@ -27,13 +31,14 @@ micronaut:
write-idle-timeout: 60m
idle-timeout: 60m
netty:
max-zstd-encode-size: 67108864 # increased to 64MB from the default of 32MB
max-chunk-size: 10MB
max-header-size: 32768 # increased from the default of 8k
responses:
file:
cache-seconds: 86400
cache-control:
public: true
responses:
file:
cache-seconds: 86400
cache-control:
public: true
# Access log configuration, see https://docs.micronaut.io/latest/guide/index.html#accessLogger
access-logger:
@@ -77,8 +82,19 @@ micronaut:
type: scheduled
core-pool-size: 1
# Disable OpenTelemetry metrics by default, users that need it must enable it and configure the collector URL.
metrics:
binders:
retry:
enabled: true
netty:
queues:
enabled: true
bytebuf-allocators:
enabled: true
channels:
enabled: true
# Disable OpenTelemetry metrics by default, users that need it must enable it and configure the collector URL.
export:
otlp:
enabled: false
@@ -91,6 +107,8 @@ jackson:
serialization-inclusion: non_null
deserialization:
FAIL_ON_UNKNOWN_PROPERTIES: false
mapper:
ACCEPT_CASE_INSENSITIVE_ENUMS: true
endpoints:
all:
@@ -99,6 +117,10 @@ endpoints:
sensitive: false
health:
details-visible: ANONYMOUS
disk-space:
enabled: false
discovery-client:
enabled: false
loggers:
write-sensitive: false
env:
@@ -132,24 +154,59 @@ kestra:
tutorial-flows:
# Automatically loads all tutorial flows at startup.
enabled: true
retries:
attempts: 5
multiplier: 2.0
delay: 1s
maxDelay: ""
server:
basic-auth:
# These URLs will not be authenticated, by default we open some of the Micronaut default endpoints but not all for security reasons
open-urls:
- "/ping"
- "/api/v1/executions/webhook/"
- "/api/v1/main/executions/webhook/"
- "/api/v1/*/executions/webhook/"
- "/api/v1/basicAuthValidationErrors"
preview:
initial-rows: 100
max-rows: 5000
# The expected time for this server to complete all its tasks before initiating a graceful shutdown.
terminationGracePeriod: 5m
workerTaskRestartStrategy: AFTER_TERMINATION_GRACE_PERIOD
# Configuration for Liveness and Heartbeat mechanism between servers.
liveness:
enabled: true
# The expected time between liveness probe.
interval: 10s
# The timeout used to detect service failures.
timeout: 1m
# The time to wait before executing a liveness probe.
initialDelay: 1m
# The expected time between service heartbeats.
heartbeatInterval: 3s
service:
purge:
initial-delay: 1h
fixed-delay: 1d
retention: 30d
jdbc:
queues:
min-poll-interval: 25ms
max-poll-interval: 1000ms
poll-switch-interval: 5s
max-poll-interval: 500ms
poll-switch-interval: 60s
cleaner:
initial-delay: 1h
fixed-delay: 1h
retention: 7d
types:
- type : io.kestra.core.models.executions.LogEntry
- type: io.kestra.core.models.executions.LogEntry
retention: 1h
- type: io.kestra.core.models.executions.MetricEntry
retention: 1h
@@ -171,7 +228,7 @@ kestra:
values:
recoverMissedSchedules: ALL
variables:
env-vars-prefix: KESTRA_
env-vars-prefix: ENV_
cache-enabled: true
cache-size: 1000
@@ -181,33 +238,12 @@ kestra:
traces:
root: DISABLED
server:
basic-auth:
enabled: false
# These URLs will not be authenticated, by default we open some of the Micronaut default endpoints but not all for security reasons
open-urls:
- "/ping"
- "/api/v1/executions/webhook/"
preview:
initial-rows: 100
max-rows: 5000
# The expected time for this server to complete all its tasks before initiating a graceful shutdown.
terminationGracePeriod: 5m
workerTaskRestartStrategy: AFTER_TERMINATION_GRACE_PERIOD
# Configuration for Liveness and Heartbeat mechanism between servers.
liveness:
enabled: true
# The expected time between liveness probe.
interval: 5s
# The timeout used to detect service failures.
timeout: 45s
# The time to wait before executing a liveness probe.
initialDelay: 45s
# The expected time between service heartbeats.
heartbeatInterval: 3s
ui-anonymous-usage-report:
enabled: true
anonymous-usage-report:
enabled: true
uri: https://api.kestra.io/v1/reports/usages
uri: https://api.kestra.io/v1/reports/server-events
initial-delay: 5m
fixed-delay: 1h
@@ -223,4 +259,4 @@ otel:
- /health
- /env
- /prometheus
propagators: tracecontext, baggage
propagators: tracecontext, baggage

View File

@@ -13,8 +13,7 @@ import picocli.CommandLine;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
class AppTest {
@@ -26,7 +25,7 @@ class AppTest {
try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, Environment.TEST)) {
PicocliRunner.call(App.class, ctx, "--help");
assertThat(out.toString(), containsString("kestra"));
assertThat(out.toString()).contains("kestra");
}
}
@@ -38,11 +37,11 @@ class AppTest {
final String[] args = new String[]{"server", serverType, "--help"};
try (ApplicationContext ctx = App.applicationContext(App.class, args)) {
try (ApplicationContext ctx = App.applicationContext(App.class, new String [] { Environment.CLI }, args)) {
new CommandLine(App.class, new MicronautFactory(ctx)).execute(args);
assertTrue(ctx.getProperty("kestra.server-type", ServerType.class).isEmpty());
assertThat(out.toString(), startsWith("Usage: kestra server " + serverType));
assertThat(out.toString()).startsWith("Usage: kestra server " + serverType);
}
}
@@ -53,12 +52,12 @@ class AppTest {
final String[] argsWithMissingParams = new String[]{"flow", "namespace", "update"};
try (ApplicationContext ctx = App.applicationContext(App.class, argsWithMissingParams)) {
try (ApplicationContext ctx = App.applicationContext(App.class, new String [] { Environment.CLI }, argsWithMissingParams)) {
new CommandLine(App.class, new MicronautFactory(ctx)).execute(argsWithMissingParams);
assertThat(out.toString(), startsWith("Missing required parameters: "));
assertThat(out.toString(), containsString("Usage: kestra flow namespace update "));
assertThat(out.toString(), not(containsString("MissingParameterException: ")));
assertThat(out.toString()).startsWith("Missing required parameters: ");
assertThat(out.toString()).contains("Usage: kestra flow namespace update ");
assertThat(out.toString()).doesNotContain("MissingParameterException: ");
}
}
}

View File

@@ -4,12 +4,14 @@ import io.micronaut.configuration.picocli.PicocliRunner;
import io.micronaut.context.ApplicationContext;
import io.micronaut.context.env.Environment;
import org.junit.jupiter.api.Test;
import org.yaml.snakeyaml.Yaml;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.Map;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.catchThrowable;
class ConfigPropertiesCommandTest {
@Test
@@ -20,8 +22,52 @@ class ConfigPropertiesCommandTest {
try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, Environment.TEST)) {
PicocliRunner.call(ConfigPropertiesCommand.class, ctx);
assertThat(out.toString(), containsString("activeEnvironments:"));
assertThat(out.toString(), containsString("- test"));
assertThat(out.toString()).contains("activeEnvironments:");
assertThat(out.toString()).contains("- test");
}
}
@Test
void shouldOutputCustomEnvironment() {
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, "custom-env")) {
PicocliRunner.call(ConfigPropertiesCommand.class, ctx);
assertThat(out.toString()).contains("activeEnvironments:");
assertThat(out.toString()).contains("- custom-env");
}
}
@Test
void shouldReturnZeroOnSuccess() throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, Environment.TEST)) {
ConfigPropertiesCommand cmd = ctx.createBean(ConfigPropertiesCommand.class);
int result = cmd.call();
assertThat(result).isZero();
}
}
@Test
void shouldOutputValidYaml() {
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, Environment.TEST)) {
PicocliRunner.call(ConfigPropertiesCommand.class, ctx);
String output = out.toString();
Yaml yaml = new Yaml();
Throwable thrown = catchThrowable(() -> {
Map<?, ?> parsed = yaml.load(output);
assertThat(parsed).isInstanceOf(Map.class);
});
assertThat(thrown).isNull();
}
}
}

View File

@@ -11,9 +11,7 @@ import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.net.URL;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
class FlowCreateOrUpdateCommandTest {
@RetryingTest(5) // flaky on CI but cannot be reproduced even with 100 repetitions
@@ -38,7 +36,7 @@ class FlowCreateOrUpdateCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("4 flow(s)"));
assertThat(out.toString()).contains("4 flow(s)");
out.reset();
args = new String[]{
@@ -53,7 +51,7 @@ class FlowCreateOrUpdateCommandTest {
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
// 2 delete + 1 update
assertThat(out.toString(), containsString("4 flow(s)"));
assertThat(out.toString()).contains("4 flow(s)");
}
}
@@ -80,7 +78,7 @@ class FlowCreateOrUpdateCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("4 flow(s)"));
assertThat(out.toString()).contains("4 flow(s)");
out.reset();
// no "delete" arg should behave as no-delete
@@ -93,7 +91,7 @@ class FlowCreateOrUpdateCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(out.toString()).contains("1 flow(s)");
out.reset();
args = new String[]{
@@ -106,7 +104,35 @@ class FlowCreateOrUpdateCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(out.toString()).contains("1 flow(s)");
}
}
@Test
void should_fail_with_incorrect_tenant() {
URL directory = FlowCreateOrUpdateCommandTest.class.getClassLoader().getResource("flows");
ByteArrayOutputStream err = new ByteArrayOutputStream();
System.setErr(new PrintStream(err));
try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, Environment.TEST)) {
EmbeddedServer embeddedServer = ctx.getBean(EmbeddedServer.class);
embeddedServer.start();
String[] args = {
"--server",
embeddedServer.getURL().toString(),
"--user",
"myuser:pass:word",
"--tenant", "incorrect",
directory.getPath(),
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(err.toString()).contains("Tenant id can only be 'main'");
err.reset();
}
}
@@ -131,8 +157,8 @@ class FlowCreateOrUpdateCommandTest {
};
Integer call = PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(call).isZero();
assertThat(out.toString()).contains("1 flow(s)");
}
}
}

View File

@@ -9,9 +9,7 @@ import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.net.URL;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
class FlowDotCommandTest {
@Test
@@ -26,8 +24,8 @@ class FlowDotCommandTest {
};
Integer call = PicocliRunner.call(FlowDotCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("\"root.date\"[shape=box];"));
assertThat(call).isZero();
assertThat(out.toString()).contains("\"root.date\"[shape=box];");
}
}
}

View File

@@ -7,8 +7,7 @@ import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.assertj.core.api.Assertions.assertThat;
class FlowExpandCommandTest {
@SuppressWarnings("deprecation")
@@ -23,22 +22,20 @@ class FlowExpandCommandTest {
};
Integer call = PicocliRunner.call(FlowExpandCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), is(
"id: include\n" +
"namespace: io.kestra.cli\n" +
"\n" +
"# The list of tasks\n" +
"tasks:\n" +
"- id: t1\n" +
" type: io.kestra.plugin.core.debug.Return\n" +
" format: \"Lorem ipsum dolor sit amet\"\n" +
"- id: t2\n" +
" type: io.kestra.plugin.core.debug.Return\n" +
" format: |\n" +
" Lorem ipsum dolor sit amet\n" +
" Lorem ipsum dolor sit amet\n"
));
assertThat(call).isZero();
assertThat(out.toString()).isEqualTo("id: include\n" +
"namespace: io.kestra.cli\n" +
"\n" +
"# The list of tasks\n" +
"tasks:\n" +
"- id: t1\n" +
" type: io.kestra.plugin.core.debug.Return\n" +
" format: \"Lorem ipsum dolor sit amet\"\n" +
"- id: t2\n" +
" type: io.kestra.plugin.core.debug.Return\n" +
" format: |\n" +
" Lorem ipsum dolor sit amet\n" +
" Lorem ipsum dolor sit amet\n");
}
}
}

View File

@@ -14,10 +14,7 @@ import java.io.PrintStream;
import java.net.URL;
import java.util.zip.ZipFile;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
class FlowExportCommandTest {
@Test
@@ -42,7 +39,7 @@ class FlowExportCommandTest {
directory.getPath(),
};
PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, updateArgs);
assertThat(out.toString(), containsString("3 flow(s)"));
assertThat(out.toString()).contains("3 flow(s)");
// then we export them
String[] exportArgs = {
@@ -58,11 +55,11 @@ class FlowExportCommandTest {
};
PicocliRunner.call(FlowExportCommand.class, ctx, exportArgs);
File file = new File("/tmp/flows.zip");
assertThat(file.exists(), is(true));
assertThat(file.exists()).isTrue();
ZipFile zipFile = new ZipFile(file);
// When launching the test in a suite, there is 4 flows but when lauching individualy there is only 3
assertThat(zipFile.stream().count(), greaterThanOrEqualTo(3L));
assertThat(zipFile.stream().count()).isGreaterThanOrEqualTo(3L);
file.delete();
}

View File

@@ -10,9 +10,7 @@ import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.net.URL;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
class FlowUpdatesCommandTest {
@Test
@@ -39,7 +37,7 @@ class FlowUpdatesCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("successfully updated !"));
assertThat(out.toString()).contains("successfully updated !");
out.reset();
args = new String[]{
@@ -56,7 +54,7 @@ class FlowUpdatesCommandTest {
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
// 2 delete + 1 update
assertThat(out.toString(), containsString("successfully updated !"));
assertThat(out.toString()).contains("successfully updated !");
}
}
@@ -85,7 +83,7 @@ class FlowUpdatesCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("4 flow(s)"));
assertThat(out.toString()).contains("4 flow(s)");
out.reset();
// no "delete" arg should behave as no-delete
@@ -100,7 +98,7 @@ class FlowUpdatesCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(out.toString()).contains("1 flow(s)");
out.reset();
args = new String[]{
@@ -115,7 +113,7 @@ class FlowUpdatesCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(out.toString()).contains("1 flow(s)");
}
}
@@ -144,7 +142,7 @@ class FlowUpdatesCommandTest {
};
PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(out.toString(), containsString("Invalid entity: flow.namespace: io.kestra.outsider_quattro_-1 - flow namespace is invalid"));
assertThat(out.toString()).contains("Invalid entity: flow.namespace: main_io.kestra.outsider_quattro_-1 - flow namespace is invalid");
}
}
@@ -171,8 +169,8 @@ class FlowUpdatesCommandTest {
};
Integer call = PicocliRunner.call(FlowUpdatesCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(call).isZero();
assertThat(out.toString()).contains("1 flow(s)");
}
}
}

View File

@@ -7,9 +7,7 @@ import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
class FlowValidateCommandTest {
@Test
@@ -24,8 +22,8 @@ class FlowValidateCommandTest {
};
Integer call = PicocliRunner.call(FlowValidateCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("✓ - io.kestra.cli / include"));
assertThat(call).isZero();
assertThat(out.toString()).contains("✓ - io.kestra.cli / include");
}
}
@@ -41,10 +39,10 @@ class FlowValidateCommandTest {
};
Integer call = PicocliRunner.call(FlowValidateCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("✓ - system / warning"));
assertThat(out.toString(), containsString("⚠ - tasks[0] is deprecated"));
assertThat(out.toString(), containsString(" - io.kestra.core.tasks.log.Log is replaced by io.kestra.plugin.core.log.Log"));
assertThat(call).isZero();
assertThat(out.toString()).contains("✓ - system / warning");
assertThat(out.toString()).contains("⚠ - tasks[0] is deprecated");
assertThat(out.toString()).contains(" - io.kestra.core.tasks.log.Log is replaced by io.kestra.plugin.core.log.Log");
}
}
}

View File

@@ -10,15 +10,13 @@ import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.net.URL;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.StringContains.containsString;
public class SingleFlowCommandsTest {
import static org.assertj.core.api.Assertions.assertThat;
class SingleFlowCommandsTest {
@Test
void all() {
URL flow = SingleFlowCommandsTest.class.getClassLoader().getResource("flows/quattro.yml");
URL flow = SingleFlowCommandsTest.class.getClassLoader().getResource("crudFlow/date.yml");
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
@@ -27,19 +25,6 @@ public class SingleFlowCommandsTest {
EmbeddedServer embeddedServer = ctx.getBean(EmbeddedServer.class);
embeddedServer.start();
String[] deleteArgs = {
"--server",
embeddedServer.getURL().toString(),
"--user",
"myuser:pass:word",
"io.kestra.outsider",
"quattro"
};
PicocliRunner.call(FlowDeleteCommand.class, ctx, deleteArgs);
assertThat(out.toString(), containsString("Flow successfully deleted !"));
out.reset();
String[] createArgs = {
"--server",
embeddedServer.getURL().toString(),
@@ -49,23 +34,36 @@ public class SingleFlowCommandsTest {
};
PicocliRunner.call(FlowCreateCommand.class, ctx, createArgs);
assertThat(out.toString(), containsString("Flow successfully created !"));
assertThat(out.toString()).contains("Flow successfully created !");
out.reset();
out.reset();String[] updateArgs = {
String[] updateArgs = {
"--server",
embeddedServer.getURL().toString(),
"--user",
"myuser:pass:word",
flow.getPath(),
"io.kestra.outsider",
"quattro"
"io.kestra.cli",
"date"
};
PicocliRunner.call(FlowUpdateCommand.class, ctx, updateArgs);
assertThat(out.toString(), containsString("Flow successfully updated !"));
assertThat(out.toString()).contains("Flow successfully updated !");
out.reset();
String[] deleteArgs = {
"--server",
embeddedServer.getURL().toString(),
"--user",
"myuser:pass:word",
"io.kestra.cli",
"date"
};
PicocliRunner.call(FlowDeleteCommand.class, ctx, deleteArgs);
assertThat(out.toString()).contains("Flow successfully deleted !");
}
}
}

View File

@@ -10,9 +10,7 @@ import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.net.URL;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
class TemplateValidateCommandTest {
@Test
@@ -28,9 +26,9 @@ class TemplateValidateCommandTest {
};
Integer call = PicocliRunner.call(FlowValidateCommand.class, ctx, args);
assertThat(call, is(1));
assertThat(out.toString(), containsString("Unable to parse flow"));
assertThat(out.toString(), containsString("must not be empty"));
assertThat(call).isEqualTo(1);
assertThat(out.toString()).contains("Unable to parse flow");
assertThat(out.toString()).contains("must not be empty");
}
}
@@ -56,9 +54,9 @@ class TemplateValidateCommandTest {
};
Integer call = PicocliRunner.call(FlowValidateCommand.class, ctx, args);
assertThat(call, is(1));
assertThat(out.toString(), containsString("Unable to parse flow"));
assertThat(out.toString(), containsString("must not be empty"));
assertThat(call).isEqualTo(1);
assertThat(out.toString()).contains("Unable to parse flow");
assertThat(out.toString()).contains("must not be empty");
}
}
}

View File

@@ -7,9 +7,7 @@ import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.core.Is.is;
import static org.assertj.core.api.Assertions.assertThat;
class FlowNamespaceCommandTest {
@Test
@@ -21,8 +19,8 @@ class FlowNamespaceCommandTest {
String[] args = {};
Integer call = PicocliRunner.call(FlowNamespaceCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("Usage: kestra flow namespace"));
assertThat(call).isZero();
assertThat(out.toString()).contains("Usage: kestra flow namespace");
}
}
}

View File

@@ -10,10 +10,7 @@ import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.net.URL;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.core.StringContains.containsString;
import static org.hamcrest.core.Is.is;
import static org.assertj.core.api.Assertions.assertThat;
class FlowNamespaceUpdateCommandTest {
@Test
@@ -39,7 +36,7 @@ class FlowNamespaceUpdateCommandTest {
};
PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, args);
assertThat(out.toString(), containsString("namespace 'io.kestra.cli' successfully updated"));
assertThat(out.toString()).contains("namespace 'io.kestra.cli' successfully updated");
out.reset();
args = new String[]{
@@ -55,7 +52,7 @@ class FlowNamespaceUpdateCommandTest {
PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, args);
// 2 delete + 1 update
assertThat(out.toString(), containsString("namespace 'io.kestra.cli' successfully updated"));
assertThat(out.toString()).contains("namespace 'io.kestra.cli' successfully updated");
}
}
@@ -81,9 +78,9 @@ class FlowNamespaceUpdateCommandTest {
};
Integer call = PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, args);
assertThat(call, is(1));
assertThat(out.toString(), containsString("Unable to parse flows"));
assertThat(out.toString(), containsString("must not be empty"));
assertThat(call).isEqualTo(1);
assertThat(out.toString()).contains("Unable to parse flows");
assertThat(out.toString()).contains("must not be empty");
}
}
@@ -111,7 +108,7 @@ class FlowNamespaceUpdateCommandTest {
};
PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, args);
assertThat(out.toString(), containsString("3 flow(s)"));
assertThat(out.toString()).contains("3 flow(s)");
out.reset();
// no "delete" arg should behave as no-delete
@@ -125,7 +122,7 @@ class FlowNamespaceUpdateCommandTest {
};
PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, args);
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(out.toString()).contains("1 flow(s)");
out.reset();
args = new String[]{
@@ -139,7 +136,7 @@ class FlowNamespaceUpdateCommandTest {
};
PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, args);
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(out.toString()).contains("1 flow(s)");
}
}
@@ -165,8 +162,8 @@ class FlowNamespaceUpdateCommandTest {
};
Integer call = PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("1 flow(s)"));
assertThat(call).isZero();
assertThat(out.toString()).contains("1 flow(s)");
}
}
@@ -195,8 +192,8 @@ class FlowNamespaceUpdateCommandTest {
};
PicocliRunner.call(FlowNamespaceUpdateCommand.class, ctx, args);
assertThat(out.toString(), containsString("io.kestra.override"));
assertThat(out.toString(), not(containsString("io.kestra.cli")));
assertThat(out.toString()).contains("io.kestra.override");
assertThat(out.toString()).doesNotContain("io.kestra.cli");
}
}

View File

@@ -7,9 +7,7 @@ import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.core.Is.is;
import static org.assertj.core.api.Assertions.assertThat;
class NamespaceCommandTest {
@Test
@@ -21,8 +19,8 @@ class NamespaceCommandTest {
String[] args = {};
Integer call = PicocliRunner.call(NamespaceCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("Usage: kestra namespace"));
assertThat(call).isZero();
assertThat(out.toString()).contains("Usage: kestra namespace");
}
}
}

View File

@@ -7,9 +7,7 @@ import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.core.Is.is;
import static org.assertj.core.api.Assertions.assertThat;
class NamespaceFilesCommandTest {
@Test
@@ -21,8 +19,8 @@ class NamespaceFilesCommandTest {
String[] args = {};
Integer call = PicocliRunner.call(NamespaceFilesCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("Usage: kestra namespace files"));
assertThat(call).isZero();
assertThat(out.toString()).contains("Usage: kestra namespace files");
}
}
}

View File

@@ -14,8 +14,8 @@ import java.net.URISyntaxException;
import java.net.URL;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.core.StringContains.containsString;
class NamespaceFilesUpdateCommandTest {
@Test

View File

@@ -7,9 +7,7 @@ import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.core.Is.is;
import static org.assertj.core.api.Assertions.assertThat;
class KvCommandTest {
@Test
@@ -21,8 +19,8 @@ class KvCommandTest {
String[] args = {};
Integer call = PicocliRunner.call(KvCommand.class, ctx, args);
assertThat(call, is(0));
assertThat(out.toString(), containsString("Usage: kestra namespace kv"));
assertThat(call).isZero();
assertThat(out.toString()).contains("Usage: kestra namespace kv");
}
}
}

View File

@@ -16,8 +16,8 @@ import java.io.IOException;
import java.nio.file.Files;
import java.util.Map;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static io.kestra.core.tenant.TenantService.MAIN_TENANT;
import static org.assertj.core.api.Assertions.assertThat;
class KvUpdateCommandTest {
@Test
@@ -41,10 +41,10 @@ class KvUpdateCommandTest {
PicocliRunner.call(KvUpdateCommand.class, ctx, args);
KVStoreService kvStoreService = ctx.getBean(KVStoreService.class);
KVStore kvStore = kvStoreService.get(null, "io.kestra.cli", null);
KVStore kvStore = kvStoreService.get(MAIN_TENANT, "io.kestra.cli", null);
assertThat(kvStore.getValue("string").get(), is(new KVValue("stringValue")));
assertThat(((InternalKVStore)kvStore).getRawValue("string").get(), is("\"stringValue\""));
assertThat(kvStore.getValue("string").get()).isEqualTo(new KVValue("stringValue"));
assertThat(((InternalKVStore) kvStore).getRawValue("string").get()).isEqualTo("\"stringValue\"");
}
}
@@ -69,10 +69,10 @@ class KvUpdateCommandTest {
PicocliRunner.call(KvUpdateCommand.class, ctx, args);
KVStoreService kvStoreService = ctx.getBean(KVStoreService.class);
KVStore kvStore = kvStoreService.get(null, "io.kestra.cli", null);
KVStore kvStore = kvStoreService.get(MAIN_TENANT, "io.kestra.cli", null);
assertThat(kvStore.getValue("int").get(), is(new KVValue(1)));
assertThat(((InternalKVStore)kvStore).getRawValue("int").get(), is("1"));
assertThat(kvStore.getValue("int").get()).isEqualTo(new KVValue(1));
assertThat(((InternalKVStore) kvStore).getRawValue("int").get()).isEqualTo("1");
}
}
@@ -99,10 +99,10 @@ class KvUpdateCommandTest {
PicocliRunner.call(KvUpdateCommand.class, ctx, args);
KVStoreService kvStoreService = ctx.getBean(KVStoreService.class);
KVStore kvStore = kvStoreService.get(null, "io.kestra.cli", null);
KVStore kvStore = kvStoreService.get(MAIN_TENANT, "io.kestra.cli", null);
assertThat(kvStore.getValue("intStr").get(), is(new KVValue("1")));
assertThat(((InternalKVStore)kvStore).getRawValue("intStr").get(), is("\"1\""));
assertThat(kvStore.getValue("intStr").get()).isEqualTo(new KVValue("1"));
assertThat(((InternalKVStore) kvStore).getRawValue("intStr").get()).isEqualTo("\"1\"");
}
}
@@ -127,10 +127,10 @@ class KvUpdateCommandTest {
PicocliRunner.call(KvUpdateCommand.class, ctx, args);
KVStoreService kvStoreService = ctx.getBean(KVStoreService.class);
KVStore kvStore = kvStoreService.get(null, "io.kestra.cli", null);
KVStore kvStore = kvStoreService.get(MAIN_TENANT, "io.kestra.cli", null);
assertThat(kvStore.getValue("object").get(), is(new KVValue(Map.of("some", "json"))));
assertThat(((InternalKVStore)kvStore).getRawValue("object").get(), is("{some:\"json\"}"));
assertThat(kvStore.getValue("object").get()).isEqualTo(new KVValue(Map.of("some", "json")));
assertThat(((InternalKVStore) kvStore).getRawValue("object").get()).isEqualTo("{some:\"json\"}");
}
}
@@ -157,10 +157,10 @@ class KvUpdateCommandTest {
PicocliRunner.call(KvUpdateCommand.class, ctx, args);
KVStoreService kvStoreService = ctx.getBean(KVStoreService.class);
KVStore kvStore = kvStoreService.get(null, "io.kestra.cli", null);
KVStore kvStore = kvStoreService.get(MAIN_TENANT, "io.kestra.cli", null);
assertThat(kvStore.getValue("objectStr").get(), is(new KVValue("{\"some\":\"json\"}")));
assertThat(((InternalKVStore)kvStore).getRawValue("objectStr").get(), is("\"{\\\"some\\\":\\\"json\\\"}\""));
assertThat(kvStore.getValue("objectStr").get()).isEqualTo(new KVValue("{\"some\":\"json\"}"));
assertThat(((InternalKVStore) kvStore).getRawValue("objectStr").get()).isEqualTo("\"{\\\"some\\\":\\\"json\\\"}\"");
}
}
@@ -191,10 +191,10 @@ class KvUpdateCommandTest {
PicocliRunner.call(KvUpdateCommand.class, ctx, args);
KVStoreService kvStoreService = ctx.getBean(KVStoreService.class);
KVStore kvStore = kvStoreService.get(null, "io.kestra.cli", null);
KVStore kvStore = kvStoreService.get(MAIN_TENANT, "io.kestra.cli", null);
assertThat(kvStore.getValue("objectFromFile").get(), is(new KVValue(Map.of("some", "json", "from", "file"))));
assertThat(((InternalKVStore)kvStore).getRawValue("objectFromFile").get(), is("{some:\"json\",from:\"file\"}"));
assertThat(kvStore.getValue("objectFromFile").get()).isEqualTo(new KVValue(Map.of("some", "json", "from", "file")));
assertThat(((InternalKVStore) kvStore).getRawValue("objectFromFile").get()).isEqualTo("{some:\"json\",from:\"file\"}");
}
}
}

View File

@@ -8,8 +8,7 @@ import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
class PluginCommandTest {
@@ -21,7 +20,35 @@ class PluginCommandTest {
try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, Environment.TEST)) {
PicocliRunner.call(PluginCommand.class, ctx);
assertThat(out.toString(), containsString("Usage: kestra plugins"));
assertThat(out.toString()).contains("Usage: kestra plugins");
}
}
}
// Additional Coverage:
@Test
void shouldListSubcommandsInHelp() throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
PrintStream originalOut = System.out;
System.setOut(new PrintStream(out));
try {
PluginCommand cmd = new PluginCommand();
cmd.call();
String output = out.toString();
assertThat(output).contains("install");
assertThat(output).contains("uninstall");
assertThat(output).contains("list");
assertThat(output).contains("doc");
assertThat(output).contains("search");
} finally {
System.setOut(originalOut);
}
}
// Passes
@Test
void shouldNotLoadExternalPlugins() {
PluginCommand cmd = new PluginCommand();
assertThat(cmd.loadExternalPlugins()).isFalse();
}
}

View File

@@ -17,12 +17,11 @@ import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.assertj.core.api.Assertions.assertThat;
class PluginDocCommandTest {
public static final String PLUGIN_TEMPLATE_TEST = "plugin-template-test-0.18.0-SNAPSHOT.jar";
public static final String PLUGIN_TEMPLATE_TEST = "plugin-template-test-0.24.0-SNAPSHOT.jar";
@Test
void run() throws IOException, URISyntaxException {
@@ -44,16 +43,16 @@ class PluginDocCommandTest {
List<Path> files = Files.list(docPath).toList();
assertThat(files.size(), is(1));
assertThat(files.getFirst().getFileName().toString(), is("plugin-template-test"));
assertThat(files.size()).isEqualTo(1);
assertThat(files.getFirst().getFileName().toString()).isEqualTo("plugin-template-test");
var directory = files.getFirst().toFile();
assertThat(directory.isDirectory(), is(true));
assertThat(directory.listFiles().length, is(3));
assertThat(directory.isDirectory()).isTrue();
assertThat(directory.listFiles().length).isEqualTo(3);
var readme = directory.toPath().resolve("index.md");
var readmeContent = new String(Files.readAllBytes(readme));
assertThat(readmeContent, containsString("""
assertThat(readmeContent).contains("""
---
title: Template test
description: "Plugin template for Kestra"
@@ -61,18 +60,17 @@ class PluginDocCommandTest {
---
# Template test
"""));
""");
assertThat(readmeContent, containsString("""
assertThat(readmeContent).contains("""
Plugin template for Kestra
This is a more complex description of the plugin.
This is in markdown and will be inline inside the plugin page.
"""));
""");
assertThat(readmeContent, containsString(
"""
assertThat(readmeContent).contains("""
/> Subgroup title
Subgroup description
@@ -89,20 +87,20 @@ class PluginDocCommandTest {
\s
* [Reporting](./guides/reporting.md)
\s
"""));
""");
// check @PluginProperty from an interface
var task = directory.toPath().resolve("tasks/io.kestra.plugin.templates.ExampleTask.md");
String taskDoc = new String(Files.readAllBytes(task));
assertThat(taskDoc, containsString("""
assertThat(taskDoc).contains("""
### `example`
* **Type:** ==string==
* **Dynamic:** ✔️
* **Required:** ❌
**Example interface**
"""));
assertThat(taskDoc, containsString("""
""");
assertThat(taskDoc).contains("""
### `from`
* **Type:**
* ==string==
@@ -110,12 +108,12 @@ class PluginDocCommandTest {
* [==Example==](#io.kestra.core.models.annotations.example)
* **Dynamic:** ✔️
* **Required:** ✔️
"""));
""");
var authenticationGuide = directory.toPath().resolve("guides/authentication.md");
assertThat(new String(Files.readAllBytes(authenticationGuide)), containsString("This is how to authenticate for this plugin:"));
assertThat(new String(Files.readAllBytes(authenticationGuide))).contains("This is how to authenticate for this plugin:");
var reportingGuide = directory.toPath().resolve("guides/reporting.md");
assertThat(new String(Files.readAllBytes(reportingGuide)), containsString("This is the reporting of the plugin:"));
assertThat(new String(Files.readAllBytes(reportingGuide))).contains("This is the reporting of the plugin:");
}
}
}

View File

@@ -10,8 +10,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.assertj.core.api.Assertions.assertThat;
class PluginInstallCommandTest {
@@ -26,8 +25,8 @@ class PluginInstallCommandTest {
List<Path> files = Files.list(pluginsPath).toList();
assertThat(files.size(), is(1));
assertThat(files.getFirst().getFileName().toString(), is("io_kestra_plugin__plugin-notifications__0_6_0.jar"));
assertThat(files.size()).isEqualTo(1);
assertThat(files.getFirst().getFileName().toString()).isEqualTo("io_kestra_plugin__plugin-notifications__0_6_0.jar");
}
}
@@ -42,9 +41,9 @@ class PluginInstallCommandTest {
List<Path> files = Files.list(pluginsPath).toList();
assertThat(files.size(), is(1));
assertThat(files.getFirst().getFileName().toString(), startsWith("io_kestra_plugin__plugin-notifications__"));
assertThat(files.getFirst().getFileName().toString(), not(containsString("LATEST")));
assertThat(files.size()).isEqualTo(1);
assertThat(files.getFirst().getFileName().toString()).startsWith("io_kestra_plugin__plugin-notifications__");
assertThat(files.getFirst().getFileName().toString()).doesNotContain("LATEST");
}
}
@@ -60,8 +59,8 @@ class PluginInstallCommandTest {
List<Path> files = Files.list(pluginsPath).toList();
assertThat(files.size(), is(1));
assertThat(files.getFirst().getFileName().toString(), is("io_kestra_storage__storage-s3__0_12_1.jar"));
assertThat(files.size()).isEqualTo(1);
assertThat(files.getFirst().getFileName().toString()).isEqualTo("io_kestra_storage__storage-s3__0_12_1.jar");
}
}
}

View File

@@ -16,12 +16,11 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Objects;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.StringContains.containsString;
import static org.assertj.core.api.Assertions.assertThat;
class PluginListCommandTest {
private static final String PLUGIN_TEMPLATE_TEST = "plugin-template-test-0.18.0-SNAPSHOT.jar";
private static final String PLUGIN_TEMPLATE_TEST = "plugin-template-test-0.24.0-SNAPSHOT.jar";
@Test
void shouldListPluginsInstalledLocally() throws IOException, URISyntaxException {
@@ -41,7 +40,7 @@ class PluginListCommandTest {
String[] args = {"--plugins", pluginsPath.toAbsolutePath().toString()};
PicocliRunner.call(PluginListCommand.class, ctx, args);
assertThat(out.toString(), containsString("io.kestra.plugin.templates.Example"));
assertThat(out.toString()).contains("io.kestra.plugin.templates.Example");
}
}
}

View File

@@ -13,8 +13,7 @@ import java.io.PrintStream;
import java.util.Map;
import static com.github.tomakehurst.wiremock.client.WireMock.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.assertj.core.api.Assertions.assertThat;
@WireMockTest(httpPort = 28181)
class PluginSearchCommandTest {
@@ -61,9 +60,9 @@ class PluginSearchCommandTest {
PicocliRunner.call(PluginSearchCommand.class, ctx, args);
String output = outputStreamCaptor.toString().trim();
assertThat(output, containsString("Found 1 plugins matching 'notifications'"));
assertThat(output, containsString("plugin-notifications"));
assertThat(output, not(containsString("plugin-scripts")));
assertThat(output).contains("Found 1 plugins matching 'notifications'");
assertThat(output).contains("plugin-notifications");
assertThat(output).doesNotContain("plugin-scripts");
}
}
@@ -97,9 +96,9 @@ class PluginSearchCommandTest {
PicocliRunner.call(PluginSearchCommand.class, ctx, args);
String output = outputStreamCaptor.toString().trim();
assertThat(output, containsString("Found 2 plugins"));
assertThat(output, containsString("plugin-notifications"));
assertThat(output, containsString("plugin-scripts"));
assertThat(output).contains("Found 2 plugins");
assertThat(output).contains("plugin-notifications");
assertThat(output).contains("plugin-scripts");
}
}
}

Some files were not shown because too many files have changed in this diff Show More