Compare commits

...

2578 Commits

Author SHA1 Message Date
Florian Hussonnois
c0baedf7f1 fix(flows): enhance error logs when injecting default values
Avoid logging unnecessary full exception error stacktrace
when an error occurred while injecting plugin defaults -
Those errors can be logged often and can be temporary.
2025-04-22 14:12:14 +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
Barthélémy Ledoux
bc8bd7b00b feat: cleaner multipanel tab move (#8029)
* feat: better/simpler display for tab movement

* Revert "remove tests to make sure we merge"

This reverts commit a979232f6c.

* fix some tests

* better tests

* fix: make it work even after first move

* fix the blinking

* add a few tests

* one fix for split panel one for size

* fix test ?

* fix: scroll all the way

* make sure tab 4 is visible

* better borders

* fix dem darn tests
2025-03-25 15:46:05 +01:00
YannC
40f6334b0b fix(): datetime filtering issues (#8027)
close #7959
2025-03-25 14:48:27 +01:00
Nicolas K.
71151f5ac2 feat(core): #5467 add inheritance for KV in pebble and Get task (#8031)
* feat(core): #5467 add inheritance for KV in pebble and Get task

* fix(core): #5467 error when namespace don't contain dot

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-25 14:46:17 +01:00
brian.mulier
75e7635505 fix(ui): make sure global secret view iterates over all secrets 2025-03-25 13:43:05 +01:00
Florian Hussonnois
6c9dc8fba4 fix(core): fix NPE when closing standalone runner 2025-03-25 12:26:50 +01:00
brian.mulier
28d1f005a4 fix(ui): fail-safe secrets API calls on global secrets view 2025-03-25 12:09:07 +01:00
AJ Emerich
7fd7a6fcbc feat(docs): add example for best practice with multiline json http post request (#8023) 2025-03-25 11:42:27 +01:00
yuri
57707faf37 fix(ui): amend operator value of labels inside the filter (#8028) 2025-03-25 11:20:04 +01:00
brian.mulier
c64c2c7104 fix(ui): fail-safe secrets API calls 2025-03-25 11:08:22 +01:00
YannC
8f9b2fc0db fix(): use correct property for blueprint type
close #3227
2025-03-25 10:22:49 +01:00
Satvik Kushwaha
aab9e55794 chore(ui): limit flow run dialog maximum height (#7938)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-03-25 10:02:50 +01:00
Miloš Paunović
f9d48d6f74 fix(ui): allow multi label filtering (#8022) 2025-03-25 09:52:54 +01:00
Florian Hussonnois
267d848d3f fix(core): ensure defaults can be injected in flows (#3206)
Flow revisions create from older Kestra versions may not be linked to their original source.
In such cases, fall back to the generated source approach to enable plugin default injection.

close: #3206
2025-03-25 09:17:55 +01:00
brian.mulier
edbf14c1b8 fix(ui): handle properly layout of global Secrets when there is a secret manager 2025-03-25 02:45:21 +01:00
brian.mulier
d9ac267161 feat(ui): introduce global Secrets page
closes kestra-io/kestra-ee#1257
2025-03-25 01:39:18 +01:00
brian.mulier
74455ad993 fix(ui): prevent function parameters autocompletion from deleting parenthesis 2025-03-25 01:39:18 +01:00
YannC
e2dd02173f fix(): use correctly context-path when needed (#8018) 2025-03-24 20:30:55 +01:00
YannC
c7b3a42f34 fix(): make absolute date work with metrics (#8015)
close #7951
2025-03-24 18:46:45 +01:00
Rudhra Bharathy G
fe882bbee6 fix(): moved the logic to the backend (#5917)
close #5740
Co-authored-by: YannC <ycoornaert@kestra.io>
2025-03-24 17:59:54 +01:00
YannC
1efb21c087 fix(): make KestraFilter works with legacy default dashboard + avoid showing custom dashboard in namespace/flow pages (#8012)
close #7959
2025-03-24 16:33:48 +01:00
github-actions[bot]
beb6182104 chore(translations): localize to languages other than English (#8013)
Co-authored-by: GitHub Action <actions@github.com>
2025-03-24 16:24:15 +01:00
Miloš Paunović
7f0d3521db chore(ui): add anchors to plugin documentation (#8014) 2025-03-24 16:11:47 +01:00
benjoEK1337
7e4453632c fix(core): Handling for trailing slash in the KESTRA_URL configuration (#6373)
* fix(core): Handling for trailing slash in the KESTRA_URL configuration

* Update webserver/src/main/java/io/kestra/webserver/controllers/api/ExecutionController.java

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
2025-03-24 16:10:43 +01:00
Loïc Mathieu
4a3d6b30d2 feat(core,jdbc): reset the trigger inside the JdbcExecutor
Fixes #7237
2025-03-24 15:54:53 +01:00
Florian Hussonnois
fe7c14c048 chore: refactor StorageInterfaceFactory to be a bean
changes:
* extract class for ServiceType

related-to: kestra-io/kestra-ee#3021
2025-03-24 15:45:24 +01:00
Barthélémy Ledoux
7b007aafc0 feat: parse docs is 2 steps to avoid user waiting with nothing (#7149) 2025-03-24 15:25:46 +01:00
Barthélémy Ledoux
f6aa2729b2 feat: multi panel editor without the refactor (#7971)
* refactor: move logic out of EditorView.vue and into store flow.js

* fix create mode

* feat: add multi panel flow editor

* missing flow id

* fix helpers tests ?

* restore helpers test

* fix one failing test

* fix: remove non-working stories

* remove size when one does split

* fix duplicated simulation

* fix tests

* try and fix the test

* remove tests to make sure we merge
2025-03-24 15:13:26 +01:00
Nicolas K.
0ca25445fd fix(platform): move slf4j api to enforce platform to fix it's version in test (#8007)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-24 14:25:16 +01:00
Piyush Bhaskar
4900963cb9 fix(ui): amend task source tabs colors (#8010) 2025-03-24 14:01:48 +01:00
Piyush Bhaskar
21d264f444 chore(ui): highlight first item in global search bar autocomplete (#8009) 2025-03-24 13:43:27 +01:00
Miloš Paunović
b6a3d0cd54 chore(ui): removing dynamic section of collapsible plugin properties (#8008) 2025-03-24 13:11:29 +01:00
Bart Ledoux
3244b1c293 fix: remove unwanted change in Curl 2025-03-24 11:52:49 +01:00
Florian Hussonnois
0987d0b349 feat(core): add new subkey arg to secret pebble function
Add new `subkey` named argument to the pebble function `secret`
to be able to select a specific field inside a secret containing
a JSON value

close: kestra-io/kestra-ee#3200
2025-03-24 11:43:14 +01:00
dependabot[bot]
5a2ac895ec 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.2 to 0.36.3.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.36.2...v0.36.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-24 11:14:10 +01:00
Loïc Mathieu
7421693445 fix(core): race while initializing trigger + possible duplicate update 2025-03-24 11:10:17 +01:00
Loïc Mathieu
19894dbcd6 fix(core): race in the FlowListener
It sometimes throw ConcurrentModificationException while sending flow updates to the consumers.
2025-03-24 11:10:17 +01:00
dependabot[bot]
62e37f3b15 build(deps): bump software.amazon.awssdk:bom from 2.31.1 to 2.31.6
Bumps software.amazon.awssdk:bom from 2.31.1 to 2.31.6.

---
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-24 10:48:44 +01:00
dependabot[bot]
37af61f41d build(deps): bump com.github.oshi:oshi-core from 6.7.1 to 6.8.0
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.7.1 to 6.8.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.7.1...oshi-parent-6.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-24 10:29:32 +01:00
dependabot[bot]
491f07296a build(deps): bump com.google.cloud:libraries-bom from 26.56.0 to 26.57.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.56.0 to 26.57.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.56.0...v26.57.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-24 10:29:14 +01:00
dependabot[bot]
6d59630a67 build(deps): bump com.microsoft.playwright:playwright
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.50.0 to 1.51.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.50.0...v1.51.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-24 10:28:36 +01:00
YannC
a098650559 fix(): restarting trigger does not break the list anymore (#8004)
close #7712
2025-03-24 10:21:19 +01:00
Barthélémy Ledoux
505049a69e refactor: move flow editor logic into flow store (#7968)
* refactor: move logic out of EditorView.vue and into store flow.js

* fix create mode

* missing flow id

* fix helpers tests ?

* restore helpers test

* remove unfinished test files

* fix plugin docs

* remove issues on lowcode
2025-03-24 09:48:17 +01:00
yuri1969
a1abd28a3d fix(build): Gradle space-assignment deprecation 2025-03-24 09:26:44 +01:00
yuri1969
49a29c4bf1 fix(core): amend server start announcements
Servers announced their start even when their async startup process
was still in progress. This lead to confusing situations - a server
announced a successfull start but in fact it failed just few
moments later.

Note, the log message needs to be ported to EE server impls.
2025-03-24 09:25:00 +01:00
Miloš Paunović
49af8f336a fix(ui): include parameters into request for plugin schema fetching (#8002) 2025-03-24 09:12:52 +01:00
Nicolas K.
8642771a2b fix(core): working dir interface contract by putting back putFile(path, content) (#7980)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-21 16:58:51 +01:00
Nicolas K.
e44487c8d8 feat(core): #7932 add file exist comportment to NamespaceFiles (#7979)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-21 15:17:12 +01:00
Ludovic DEHON
f29aab0719 feat(core): speed up namespace file download and add a log & metrics
close #7871
close #7870
2025-03-21 13:44:16 +01:00
Loïc Mathieu
73c7a2d3d3 feat(core): allow null or empty proxy address to bypass proxy conf
Fixes #7961
2025-03-21 12:36:11 +01:00
brian.mulier
773a6e9093 fix(ui): change plugin doc properly upon switching plugin type
closes #7876
2025-03-21 11:51:44 +01:00
Ludovic DEHON
df1bbcfb7f fix(cicd): display ui unit test status 2025-03-21 09:53:49 +01:00
brian.mulier
f3419084fa fix(ui): filter tests were not up-to-date 2025-03-21 09:49:07 +01:00
brian.mulier
ab7788aeaf feat(ui): introduce global KV Store view
part of kestra-io/kestra-ee#1257
closes kestra-io/kestra-ee#1743
2025-03-21 09:49:07 +01:00
YannC
99e06632e0 fix(): prevent using LABELS in JDBC
link #6655
2025-03-20 21:54:41 +01:00
YannC
7b3d5a593e fix(): remove old '$eq' to avoid error in dashboard
link #7959
2025-03-20 21:09:09 +01:00
Bart Ledoux
cca7ed0bff fix: update ui-libs 2025-03-20 18:33:56 +01:00
Loïc Mathieu
481138e433 fix(core): add metric Publish task doc & icon
fixes #7154
2025-03-20 16:24:38 +01:00
Barthélémy Ledoux
267ffb69dc fix: only run posthog in prod mode (#7952) 2025-03-20 14:40:47 +01:00
Loïc Mathieu
43f1374aa3 chore: add GraalVM plugin 2025-03-20 13:10:39 +01:00
Loïc Mathieu
fe944ccc5b chore: add jattach into our Docker image 2025-03-20 11:57:55 +01:00
YannC
cec8702fc6 feat(): allow to specify a parent namespace in the flow updates command, and the possibility to allow child namespace in the flow bulk create command (#7956) 2025-03-20 11:24:23 +01:00
YannC
f898a679c4 fix(): Adapt the usage of the new query filter for custom dashboard (#7935)
close #7091
2025-03-19 17:13:56 +01:00
Nicolas K.
9a9d59f433 fix(core-ee): NPE when execution labels are null (#7950)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-19 17:09:17 +01:00
Loïc Mathieu
0579e23a20 fix(core): triggers don't have an execution ID already 2025-03-19 15:39:08 +01:00
YannC
343367d8c5 feat(): save last dashboard used in local storage (#7948)
close kestra-io/kestra-ee#2615
2025-03-19 14:45:45 +01:00
Miloš Paunović
d47e8083ac fix(ui): prevent filter text prefix to show up when searching locally (#7947) 2025-03-19 13:51:24 +01:00
Miloš Paunović
7c4d6b02a7 chore(ui): introduce a refresh functionality to execution logs page (#7946) 2025-03-19 12:07:34 +01:00
Miloš Paunović
95dd1b8a55 chore(deps): regular dependency update (#7944) 2025-03-19 10:41:29 +01:00
Loïc Mathieu
0ec2d88429 Revert "build(deps): bump protobufVersion from 3.25.5 to 4.30.1"
This reverts commit 6946c92683.
2025-03-19 10:27:44 +01:00
dependabot[bot]
c3b504a9ed build(deps): bump pdfjs-dist from 4.10.38 to 5.0.375 in /ui (#7942)
Bumps [pdfjs-dist](https://github.com/mozilla/pdf.js) from 4.10.38 to 5.0.375.
- [Release notes](https://github.com/mozilla/pdf.js/releases)
- [Commits](https://github.com/mozilla/pdf.js/compare/v4.10.38...v5.0.375)

---
updated-dependencies:
- dependency-name: pdfjs-dist
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-19 10:25:58 +01:00
Loïc Mathieu
8cba4dab62 fix(core): possible NPE if no manifest 2025-03-19 10:03:12 +01:00
Miloš Paunović
1b22d1e3d1 fix(ui): amend dependabot errors with parsing of package-lock.json file (#7941) 2025-03-19 09:33:20 +01:00
Loïc Mathieu
6194f244c8 feat(core): require existing namespace
Part-of: https://github.com/kestra-io/kestra-ee/issues/3071
2025-03-18 15:56:36 +01:00
Loïc Mathieu
11a1664865 feat(*): allow disabling flow logs and use a specific logger for executions, tasks and triggers
Fixes #7753
2025-03-18 15:53:30 +01:00
Miloš Paunović
db394f6371 chore(ui): remove the flow topology control button from image export (#7937) 2025-03-18 15:32:21 +01:00
Loïc Mathieu
a7433c6f62 feat(core): add correlationId to the Flow trigger
Fixes #7920
2025-03-18 14:35:59 +01:00
Loïc Mathieu
745c64c4b0 feat(model, core): document tasks props that are internal storage URI
Fixes https://github.com/kestra-io/kestra/issues/681
2025-03-18 14:29:57 +01:00
YannC
5d15e2081c fix(*): Improve log timestamp precision + allow to override timestamp… (#7847)
* fix(*): Improve log timestamp precision + allow to override timestamp in log consumer

close #5915
close #7243
close #5662

* chore(): review changes
2025-03-18 14:25:24 +01:00
Miloš Paunović
7d098eaa4e feat(ui): add beta badge global component (#7934) 2025-03-18 11:56:43 +01:00
Florian Hussonnois
0ee9abb372 fix: OpenTelemetry should be optional
OpenTelementry must be optional when OTEL is globally disabled
in micronaut.
2025-03-18 10:34:23 +01:00
github-actions[bot]
3f542ae737 chore(translations): localize to languages other than English (#7929) 2025-03-18 10:20:49 +01:00
rajatsingh23
811cc7722a feat(ui): add the option to copy single/all logs to clipboard (#7755)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-03-18 09:49:54 +01:00
Florian Hussonnois
f4f8ecb247 feat!: make kv pebble function raise error by default (#7855)
BREAKING CHANGE: use 'true' as default value for kv function arg errorOnMissing.

close: #7855
2025-03-18 09:24:16 +01:00
Florian Hussonnois
3566c4d365 fix(cli): return exit 0 in CLI plugins cmd
The CLI plugins install command must return exit code 0
even when no plugin are installed
2025-03-18 09:23:58 +01:00
YannC
a7421987b7 chore(): change docker image used for AbstractTaskRunnerTest 2025-03-18 09:19:17 +01:00
ben8t
c640b8208b [fix] fix sleep assert comparison (#7924) 2025-03-18 09:16:20 +01:00
ben8t
db71b56dcd Update documentation Switch core task (#6792) 2025-03-18 09:13:39 +01:00
Florian Hussonnois
8076fcc990 fix: disable micronaut otel by default 2025-03-18 08:47:19 +01:00
Miloš Paunović
bd520c2150 fix(ui): amend displaying large amount of logs (#7923)
* chore(ui): amend plugin documentation console errors

* fix(ui): amend displaying large amount of logs
2025-03-18 08:35:55 +01:00
Florian Hussonnois
2c731a0192 fix(core): avoid ClassCastException when parsing flow inputs (#7882)
Use toString() instead of casting objects directly to String
to avoid undesirable ClasCastException we expect a string type

close: #7882
2025-03-17 14:48:15 +01:00
github-actions[bot]
3b291b75cf chore(translations): localize to languages other than English (#7918) 2025-03-17 14:23:48 +01:00
Miloš Paunović
1563d1d2da feat(ui): implement a default tab setting for flows (#7917) 2025-03-17 13:44:09 +01:00
dependabot[bot]
5c73953c81 build(deps): bump org.aspectj:aspectjweaver from 1.9.22.1 to 1.9.23
Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.22.1 to 1.9.23.
- [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-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 13:16:50 +01:00
dependabot[bot]
f89aa8d278 build(deps): bump org.slf4j:slf4j-api from 2.0.16 to 2.0.17
Bumps org.slf4j:slf4j-api from 2.0.16 to 2.0.17.

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 13:16:41 +01:00
github-actions[bot]
7efa3975fc chore(translations): localize to languages other than English (#7915) 2025-03-17 12:54:11 +01:00
Miloš Paunović
a3362b0c85 chore(ui): properly sanitize execution errors markdown content before rendering (#7914) 2025-03-17 12:52:02 +01:00
dependabot[bot]
ab9ba91e5a build(deps): bump org.jooq:jooq from 3.19.18 to 3.20.2
Bumps org.jooq:jooq from 3.19.18 to 3.20.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 12:04:50 +01:00
Loïc Mathieu
355e24c9da chore(core): merge outputs only when necessary 2025-03-17 11:36:59 +01:00
github-actions[bot]
78dcca64ae chore(translations): localize to languages other than English (#7909) 2025-03-17 11:28:11 +01:00
Anna Geller
57c749d812 Revert "Adjusted the CI to skip frontend and backend tests for commits/PRs co…" (#7910)
This reverts commit 71a59e7b85.
2025-03-17 11:18:15 +01:00
Ash
2d7c233a5e chore(ui): improve charts horizontal scrollbar (#7508) 2025-03-17 10:48:16 +01:00
Piyush Bhaskar
cfac2c6fef chore(ui): change display on gantt page for created & queued executions (#7706) 2025-03-17 10:31:40 +01:00
Piyush Bhaskar
06352e46dc chore(ui): use the correct shadow on charts (#7752) 2025-03-17 10:22:55 +01:00
Piyush Bhaskar
08312aef97 chore(ui): show loading skeletons on dashboard (#7417) 2025-03-17 10:19:50 +01:00
github-actions[bot]
e05554e12d chore(translations): localize to languages other than English (#7908) 2025-03-17 10:10:57 +01:00
Miloš Paunović
cbb6ca77f7 feat(ui): add copy button to kv store listing rows (#7907) 2025-03-17 09:59:11 +01:00
dependabot[bot]
3dcd3c9785 build(deps): bump nl.basjes.gitignore:gitignore-reader
Bumps [nl.basjes.gitignore:gitignore-reader](https://github.com/nielsbasjes/codeowners) from 1.11.1 to 1.11.3.
- [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.1...v1.11.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 09:52:28 +01:00
dependabot[bot]
7f6e15ec4a build(deps): bump aquasecurity/trivy-action from 0.29.0 to 0.30.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.29.0 to 0.30.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.29.0...0.30.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 09:51:53 +01:00
dependabot[bot]
ab061e9a12 build(deps): bump dorny/test-reporter from 1 to 2
Bumps [dorny/test-reporter](https://github.com/dorny/test-reporter) from 1 to 2.
- [Release notes](https://github.com/dorny/test-reporter/releases)
- [Changelog](https://github.com/dorny/test-reporter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dorny/test-reporter/compare/v1...v2)

---
updated-dependencies:
- dependency-name: dorny/test-reporter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 09:51:41 +01:00
dependabot[bot]
8eb91b75e9 build(deps): bump com.github.oshi:oshi-core from 6.7.0 to 6.7.1
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.7.0 to 6.7.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.7.0...oshi-parent-6.7.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 09:51:30 +01:00
dependabot[bot]
0134d5e5c2 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.1 to 0.36.2.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.36.1...v0.36.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 09:51:18 +01:00
dependabot[bot]
6946c92683 build(deps): bump protobufVersion from 3.25.5 to 4.30.1
Bumps `protobufVersion` from 3.25.5 to 4.30.1.

Updates `com.google.protobuf:protobuf-java` from 3.25.5 to 4.30.1
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.25.5...v4.30.1)

Updates `com.google.protobuf:protobuf-java-util` from 3.25.5 to 4.30.1

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 09:50:36 +01:00
dependabot[bot]
149dcac5f9 build(deps): bump software.amazon.awssdk:bom from 2.30.36 to 2.31.1
Bumps software.amazon.awssdk:bom from 2.30.36 to 2.31.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 09:50:27 +01:00
Miloš Paunović
0af5aea287 chore(ui): create flow button on welcome page to start product tour (#7906) 2025-03-17 08:40:57 +01:00
Barthélémy Ledoux
9413d4df06 fix(ui): use container queries for dashboard (#7889) 2025-03-17 08:24:39 +01:00
Miloš Paunović
87ee267f10 chore(ui): complete refactor of yaml utils (#7888) 2025-03-17 08:14:48 +01:00
Will Russell
02336ed397 fix(docs): typos 2025-03-14 19:04:38 +00:00
Will Russell
379199e186 fix(docs): fail examples 2025-03-14 18:47:57 +00:00
Will Russell
ebec8c2121 fix(docs): schedule example 2025-03-14 18:41:36 +00:00
Malay Dewangan
564c36ceab fix: remove labels from an execution (#7256)
* fix: remove labels from an execution

* feat(test): add test for removing labels from execution

* fix(test): update test for removing labels from execution

* feat: handle system labels and add unit test for system labels

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-03-14 15:19:29 +01:00
Miloš Paunović
3d248d0d74 refactor(ui): remove the obsolete console statement (#7887) 2025-03-14 15:00:35 +01:00
Loïc Mathieu
70e6d47c1a feat(webserver): add Kestra URL to the config endpoint 2025-03-14 14:57:52 +01:00
Loïc Mathieu
1ba54cd08e feat(core): add Kestra env name and URL to the expression context 2025-03-14 14:57:52 +01:00
Florian Hussonnois
eb6b40a04b feat(cli): add new --all option to plugin install cmd (#7375)
This commit adds the option all to the plugin install command
for installing all available public plugins.

Changes:
* add new service class PluginCatalogService

close: #7375
2025-03-14 14:44:30 +01:00
Anna Geller
d314c52924 docs: kv pebble (#7886) 2025-03-14 14:31:52 +01:00
Trinaya Kantevari
71a59e7b85 Adjusted the CI to skip frontend and backend tests for commits/PRs containing the 'docs-only' text. #6729 (#7756)
* Update pull-request.yml to skip tests for PRs with 'docs-only'.

Updated the if condition in the frontend and backend jobs to skip tests if 'docs-only' is present in the Pull Request title, body, or labels.

* Update workflow-test.yml to skip tests for commits with 'docs-only'.

Updated the if condition in the frontend and backend jobs to skip tests if 'docs-only' is present in the commit message.

* Apply suggestions from code review

---------

Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
2025-03-14 14:29:26 +01:00
Will Russell
ff504afd8f fix(docs): add parallel example 2025-03-14 12:37:00 +00:00
YannC
64e5b80049 fix(ui): display back core property if not in a task
close #7879
2025-03-14 11:44:22 +01:00
Loïc Mathieu
c9baaf8565 fix(core): Avoid calling Worker post construct method twice 2025-03-14 09:58:30 +01:00
Miloš Paunović
02ad2af305 chore(ui): re-organize visuals for empty state component (#7875) 2025-03-14 08:46:57 +01:00
Florian Hussonnois
bed11f1541 chore(core): add PluginVersioning interface and version for TaskRunner
Changes:
- add new interface PluginVersioning
- update interfaces TaskInterface, TriggerInterface, TaskRunner

close: kestra-io/kestra-ee#3122
2025-03-14 08:26:52 +01:00
Miloš Paunović
6d14773ea7 chore(ui): prevent node state history to be shown if there is no date present (#7867) 2025-03-13 16:26:25 +01:00
Loïc Mathieu
74577cb059 chore(deps): upgrade @kestra-io/ui-libs to 0.0.157 2025-03-13 15:50:45 +01:00
Miloš Paunović
e63b019857 chore(ui): re-organize visuals for empty state component (#7866) 2025-03-13 15:18:29 +01:00
github-actions[bot]
8684bd9481 chore(translations): localize to languages other than English (#7863) 2025-03-13 14:36:31 +01:00
Miloš Paunović
586e089ada feat(ui): add afterExecution block to no code editor (#7848) 2025-03-13 13:53:52 +01:00
Loïc Mathieu
acebfef0d1 fix(deps): move OTLP metrics lib to CLI to avoid warning in tests 2025-03-13 13:05:20 +01:00
Loïc Mathieu
f7019af9d5 feat(core): add afterExecution to the topology 2025-03-13 13:02:34 +01:00
Loïc Mathieu
1419680006 fix(core): missing afterExecution in FlowForExecution 2025-03-13 13:02:34 +01:00
Shruti Mantri
64290f5d17 feat: add finally to the flow assets in basic.md (#7857) 2025-03-13 10:27:43 +01:00
Loïc Mathieu
e2da2dfeb0 fix(core): allowedNamespace is already called in the KvStoreService 2025-03-12 16:37:16 +01:00
Will Russell
977fe222a4 fix(docs): 2025 get started video 2025-03-12 13:11:18 +00:00
ben8t
0a24a5d13f Remove pebble function references that don't exist (#7698)
* [fix] remove pebble function references that don't exist

* [fix] pebble documentation

* [fix] remove non-existing functions
2025-03-12 12:23:22 +01:00
Loïc Mathieu
ecfe925ece feat(core): redact KESTRA_JAVA_OPTS from the env available to executions 2025-03-12 11:31:53 +01:00
dependabot[bot]
76f6c93e48 build(deps): bump @babel/runtime-corejs3 from 7.26.9 to 7.26.10 in /ui (#7840)
Bumps [@babel/runtime-corejs3](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime-corejs3) from 7.26.9 to 7.26.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime-corejs3)

---
updated-dependencies:
- dependency-name: "@babel/runtime-corejs3"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-12 08:43:56 +01:00
dependabot[bot]
cfb76f4279 build(deps): bump @babel/helpers from 7.26.9 to 7.26.10 in /ui (#7841)
Bumps [@babel/helpers](https://github.com/babel/babel/tree/HEAD/packages/babel-helpers) from 7.26.9 to 7.26.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-helpers)

---
updated-dependencies:
- dependency-name: "@babel/helpers"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-12 08:43:18 +01:00
Miloš Paunović
50bbf03d53 chore(deps): regular dependency update (#7839) 2025-03-12 08:29:38 +01:00
Loïc Mathieu
2c9f09a82e feat(build): configure heap size to max 50% of available memory (#7800)
* feat(build): configure heap size to max 50% of available memory

* Apply suggestions from code review

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

---------

Co-authored-by: brian-mulier-p <bmmulier@hotmail.fr>
2025-03-11 16:38:51 +01:00
github-actions[bot]
c9579e5dcd chore(translations): localize to languages other than English (#7803)
Co-authored-by: GitHub Action <actions@github.com>
2025-03-11 16:34:42 +01:00
Miloš Paunović
1b13559a61 chore(ui): add the ability to change word wrap and to copy the preview output content (#7801) 2025-03-11 15:12:51 +01:00
Loïc Mathieu
c2e62d653d feat(core,jdbc): switch back to a cached thread pool for async JDBC queue
But with less threads as 2xnbCore was too much.
2025-03-11 14:25:32 +01:00
Bart Ledoux
14ff4438fe chore: update ui-libs 2025-03-11 14:06:59 +01:00
Loïc Mathieu
39b8fc1039 feat(core): afterExecution tasks
Fixes https://github.com/kestra-io/kestra-ee/issues/2792
2025-03-11 13:35:08 +01:00
Florian Hussonnois
1cb323b7aa fix(core): fix properly map MavenPluginRepositoryConfig 2025-03-11 13:17:23 +01:00
brian.mulier
4a12827684 fix(ui): remove errors from dashboard validation if it's fixed
closes #7748
2025-03-11 12:26:50 +01:00
brian.mulier
82a346b2ce fix(ui): make switch view buttons from dashboard editor the same as flow editor ones 2025-03-11 12:23:18 +01:00
dependabot[bot]
dea392a941 build(deps): bump io.micrometer:micrometer-core from 1.14.3 to 1.14.5
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.14.3 to 1.14.5.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.14.3...v1.14.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11 11:22:43 +01:00
Loïc Mathieu
d0af5767d5 feat(core): add execution state in Pebbe context
Fixes #7155
2025-03-11 11:21:50 +01:00
brian.mulier
a064c7a956 feat(ui): introduce kv() and secret() pebble autocompletions
closes kestra-io/kestra-ee#77
2025-03-11 00:10:29 +01:00
brian.mulier
9b5b2b981f fix(webserver): add endpoint for inherited secrets 2025-03-10 23:42:33 +01:00
YannC
fac2ae813c fix(jdbc): return correct total when paginating custom dashboard chart (#7790)
close #7164
2025-03-10 18:05:44 +01:00
Nicolas K.
233a871c58 feat(core-ee): add json format to file log exporter (#7789)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-10 17:47:51 +01:00
Nicolas K.
05f24f3d65 fix(core): #7740 http configuration bearer token may change to basic because of allowFailed (#7788)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-10 16:33:15 +01:00
dependabot[bot]
66e5a7ca31 build(deps): bump software.amazon.awssdk:bom from 2.30.31 to 2.30.36
Bumps software.amazon.awssdk:bom from 2.30.31 to 2.30.36.

---
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-10 15:48:03 +01:00
dependabot[bot]
fefaa7cdbb build(deps): bump org.testcontainers:testcontainers
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.20.5 to 1.20.6.
- [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.5...1.20.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 15:47:46 +01:00
YannC
fd6b9dc065 fix(tests): increase seconds diff between dates (#7785) 2025-03-10 15:08:20 +01:00
dependabot[bot]
5935308e43 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.34.0 to 0.36.1.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.34.0...v0.36.1)

---
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-10 15:02:29 +01:00
dependabot[bot]
83f06f3374 build(deps): bump org.jsoup:jsoup from 1.18.3 to 1.19.1
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.18.3 to 1.19.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.18.3...jsoup-1.19.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 15:02:19 +01:00
dependabot[bot]
8d7bc6fdd4 build(deps): bump com.github.docker-java:docker-java from 3.4.1 to 3.4.2
Bumps [com.github.docker-java:docker-java](https://github.com/docker-java/docker-java) from 3.4.1 to 3.4.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.4.1...3.4.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 15:01:44 +01:00
dependabot[bot]
03a44c1039 build(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.21.0 to 2.22.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.21.0...v2.22.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 15:00:59 +01:00
dependabot[bot]
5af0858445 build(deps): bump org.testcontainers:junit-jupiter from 1.20.5 to 1.20.6
Bumps [org.testcontainers:junit-jupiter](https://github.com/testcontainers/testcontainers-java) from 1.20.5 to 1.20.6.
- [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.5...1.20.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 15:00:31 +01:00
dependabot[bot]
0a304ff1d3 build(deps): bump com.gorylenko.gradle-git-properties
Bumps com.gorylenko.gradle-git-properties from 2.4.2 to 2.5.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 15:00:13 +01:00
dependabot[bot]
92418841fc build(deps): bump com.azure:azure-sdk-bom from 1.2.31 to 1.2.32
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.31 to 1.2.32.
- [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.31...azure-sdk-bom_1.2.32)

---
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-10 14:59:56 +01:00
Florian Hussonnois
01036c829d fix(core): wait for service-manager-task thread to be stopped 2025-03-10 14:22:38 +01:00
Loïc Mathieu
5ffeee532c fix(jdbc): flaky tests JdbcServiceLivenessCoordinatorTest 2025-03-10 12:38:56 +01:00
Loïc Mathieu
c606760522 chore(core): disable OTLP metrics on tests 2025-03-10 12:38:56 +01:00
Loïc Mathieu
0870d8ebd8 fix(core): flaky test ExitTest.shouldExitAndKillTheExecution() 2025-03-10 12:38:56 +01:00
Florian Hussonnois
d2d0726f73 fix(cli): fix double shutdown warn messages
Changes:
- Avoid registering two shutdown-hooks that will both log the
shutdown message - leading to some confusion
- Some code cleanup/refactoring
2025-03-10 12:31:06 +01:00
Nicolas K.
868a232527 fix(core): failing schedule test (#7783)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-10 12:03:11 +01:00
Loïc Mathieu
3ef11044a2 feat(core): custom log filter
Since Logback 1.5.13, there is no more default implementation for the EvaluatorFilter so we need to supply our own.
See https://logback.qos.ch/manual/filters.html#evaluatorFilter
2025-03-10 10:56:13 +01:00
Miloš Paunović
2d1582f761 chore(ui): respect line numbers prop as part of editor options (#7781) 2025-03-10 10:34:15 +01:00
github-actions[bot]
94d36fdc01 chore(translations): localize to languages other than English (#7780) 2025-03-10 10:13:49 +01:00
dependabot[bot]
0388909828 build(deps): bump robinraju/release-downloader from 1.11 to 1.12
Bumps [robinraju/release-downloader](https://github.com/robinraju/release-downloader) from 1.11 to 1.12.
- [Release notes](https://github.com/robinraju/release-downloader/releases)
- [Commits](https://github.com/robinraju/release-downloader/compare/v1.11...v1.12)

---
updated-dependencies:
- dependency-name: robinraju/release-downloader
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 09:55:11 +01:00
Miloš Paunović
ff4f43c39b chore(ui): re-order namespace tabs (#7778) 2025-03-10 09:38:51 +01:00
Miloš Paunović
140d058beb chore(ui): remove single empty space between label key and value so it can be copied (#7774) 2025-03-10 08:08:22 +01:00
Loïc Mathieu
4276a0afd9 Revert "fix(core): ThresholdFilter is now stricly lower"
This reverts commit bd82f5e3b6.
2025-03-07 18:12:33 +01:00
Loïc Mathieu
1692cab533 feat(core): add outputs to the Flow trigger
Fixes #6848
2025-03-07 18:10:00 +01:00
Nicolas K.
3013e9dfd5 feat(core): #5467 add namespaces in the namespaceFiles parameter (#7749)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-07 17:18:45 +01:00
brian.mulier
440a942900 fix(ci): generate_translations.py is now deleting keys that are no longer in en translation to avoid ghost translations 2025-03-07 16:49:45 +01:00
Loïc Mathieu
7696d41d5f fix(jdbc): resubmit worker job to the good worker group
Fixes #7730
2025-03-07 16:44:28 +01:00
github-actions[bot]
45abaa146e chore(translations): localize to languages other than English (#7746)
Co-authored-by: GitHub Action <actions@github.com>
2025-03-07 14:57:33 +01:00
Loïc Mathieu
e9f2711cd3 feat(core): handle worker group fallback inside the scheduler 2025-03-07 14:48:02 +01:00
brian.mulier
166262209a fix(tests): reject promise with 404 instead of empty resolve if non-mocked store call in flowAutoCompletionProvider.spec.ts 2025-03-07 14:01:37 +01:00
Miloš Paunović
99bad6abb0 chore(ui): use uniformed pagination component for custom dashboard tables (#7744) 2025-03-07 13:39:40 +01:00
Barthélémy Ledoux
acc10ed638 fix(flow editor): enhance behavior when switching file tabs (#7722)
* fix(flow editor): when opening a new file and coming back to flow, validation + lowcode are broken

* fix: sync flowYaml only onEdit

* fix: files can now be saved again

* fix: make editor saving button ready for better ux

* allow for a bit of time for storybook to launch the inputs story

* add storybook for flow editor

* setup storybook
2025-03-07 11:29:54 +01:00
Loïc Mathieu
88341bb5c9 feat(webserver): mask the secret() function result from eval outputs
Fixes https://github.com/kestra-io/kestra-ee/issues/3073
2025-03-07 11:26:28 +01:00
brian-mulier-p
e8411b6b11 refacto(ui): move autocompletion to its own service (#7710)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2025-03-07 10:46:44 +01:00
github-actions[bot]
6af105a8bf chore(translations): localize to languages other than English (#7739)
Co-authored-by: GitHub Action <actions@github.com>
2025-03-07 10:14:51 +01:00
Miloš Paunović
9a2e09cc8c chore(ui): uniforming empty state for components (#7737) 2025-03-07 09:11:16 +01:00
Nicolas K.
9b1a9d64bc feat(core): #7721 add namespace to pebble file functions (#7729)
* feat(core): #7721 add namespace to pebble file functions

* clean(core): #7721 extract tenantId only once

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-06 18:05:19 +01:00
Bart Ledoux
4678616520 fix: repair collapsed menu submenus 2025-03-06 17:12:24 +01:00
Bart Ledoux
07e4598fa4 fix(demo): on pages stop showing the docs without a button
closes #7726
2025-03-06 16:54:52 +01:00
YannC
01fe48b47a fix(ui): improved fetch of type for pluginDoc and avoid removing doc if map has "type" as property but without doc (like ENUM value) (#7727)
close #6101
close #7708
2025-03-06 16:47:04 +01:00
YannC
f7e61a46df feat(core): add new crudEventType value 2025-03-06 15:49:45 +01:00
Loïc Mathieu
dfe5552a1e feat(core): allow reading file from any namespaces
Fixes https://github.com/kestra-io/kestra-ee/issues/1934
2025-03-06 15:36:24 +01:00
YannC
593558dd22 fix(runner-memory): delete MemorySchedulerTriggerState back due to cherry-pick 2025-03-06 15:28:29 +01:00
Miloš Paunović
b22764290e chore(ui): properly sanitize markdown content before rendering (#7724) 2025-03-06 15:13:10 +01:00
YannC
78bfbf0d5e fix(): align to EE 2025-03-06 14:13:06 +01:00
ben8t
f505f29360 Add core plugin sanitychecks (#7592)
* [feature] add sanitychecks

* [feature] add dag sanitychecks

* [fix] use assert

* [fix] use assert

* [feature] add for each sanity
2025-03-06 13:43:54 +01:00
ben8t
1726347dbf change email oss auth default (#7717) 2025-03-06 10:47:24 +01:00
Miloš Paunović
bbf232ba52 fix(ui): prevent context docs open on editor custom blueprints click (#7716) 2025-03-06 09:53:54 +01:00
yuri1969
8f9fc5fe4b fix(core): stop Docker runner gracefully 2025-03-06 09:34:11 +01:00
Ludovic DEHON
9a56b763f4 chore(core): make registry unregister usable with immutable list 2025-03-06 08:48:36 +01:00
Miloš Paunović
40d37d9e42 chore(ui): auto expand first element in execution overview cascaders (#7715) 2025-03-06 08:48:22 +01:00
Florian Hussonnois
e200bbdb6b fix(cli): fix regression on CLI plugin doc cmd 2025-03-05 21:24:09 +01:00
brian.mulier
ef65623b13 fix(core): avoid duplicates in plugins subgroups + properly retrieve subgroup title 2025-03-05 18:36:45 +01:00
Nicolas K.
d8b2e92e8d feat(core-ee): #2838 add audit log shipper (#7701)
* feat(core-ee): #2838 add audit log shipper

* fix: scheduler flacky tests

* feat(core-ee): add pretty string audit log and clean PR

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-05 16:30:11 +01:00
Loïc Mathieu
2c63112a59 feat(core, jdbc): dynamic worker group key
Fixes https://github.com/kestra-io/kestra-ee/issues/3064
2025-03-05 15:37:01 +01:00
dependabot[bot]
20b87f1c9c build(deps): bump jacksonVersion from 2.18.2 to 2.18.3
Bumps `jacksonVersion` from 2.18.2 to 2.18.3.

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

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

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

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

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

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

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

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

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

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

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

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.18.2 to 2.18.3

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jdk8` from 2.18.2 to 2.18.3

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 15:36:23 +01:00
dependabot[bot]
ca4e6a4b33 build(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.20.0 to 2.21.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.20.0...v2.21.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 13:11:00 +01:00
dependabot[bot]
82df58d26f build(deps): bump com.google.cloud:libraries-bom from 26.54.0 to 26.56.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.54.0 to 26.56.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.54.0...v26.56.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-05 12:28:30 +01:00
dependabot[bot]
b6f91128a1 build(deps): bump opensearchRestVersion from 2.18.0 to 2.19.1
Bumps `opensearchRestVersion` from 2.18.0 to 2.19.1.

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 12:15:10 +01:00
Miloš Paunović
a7abc17c0b chore(deps): regular dependency update (#7705) 2025-03-05 12:01:18 +01:00
Miloš Paunović
9607d0152e chore(ui): properly sanitize markdown content before rendering (#7697) 2025-03-05 08:17:02 +01:00
AJ Emerich
fc3c1a4c54 docs: fix typo in storage reverse task title (#7667) 2025-03-04 18:31:56 +01:00
Miloš Paunović
4cee4fca61 chore(ui): make sure chart stacks are following the same order every time (#7664) 2025-03-04 15:22:14 +01:00
Miloš Paunović
475573d13e feat(ui): add markdown formatting to flow run dialog (#7663) 2025-03-04 14:34:15 +01:00
Miloš Paunović
cfac9f339f chore(ui): properly sanitize markdown content before rendering (#7662) 2025-03-04 14:02:07 +01:00
Loïc Mathieu
cd97705d87 feat(core, jdbc): DashboardRepository.findAll() 2025-03-04 11:03:31 +01:00
Nicolas K.
56406c6b5c feat(#7636): add default options for HttpClient (#7650)
* feat(#7636): add default options for HttpClient

* fix(webserver): flacky execution controller tests

* fix(webserver): flacky execution controller tests

* fix(webserver): flacky execution controller tests

* fix(webserver): rework executor controller kill test

* fix(webserver): rework executor controller kill test

* fix(webserver): rework executor controller kill test

* fix(webserver): rework executor controller kill test

* fix(webserver): rework executor controller kill test

* fix(webserver): rework executor controller kill test

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-03-04 10:02:10 +01:00
YannC
38921a265a chore(deps): upgrade ui-libs version to v0.0.154 2025-03-03 22:11:53 +01:00
Shruti Mantri
be61869642 feat: add example for expression condition (#7660) 2025-03-03 18:22:49 +01:00
Shruti Mantri
1f09afe564 feat: add examples for flow conditions (#7659) 2025-03-03 17:52:56 +01:00
Shruti Mantri
35a0520dba feat: add examples for conditions - 3 (#7657)
Co-authored-by: AJ Emerich <aemerich@kestra.io>
2025-03-03 17:52:20 +01:00
YannC
cf6fad0896 fix(): avoid crash on injectDefault 2025-03-03 17:42:21 +01:00
Miloš Paunović
af0c1134e1 chore(ui): improve the topology tooltip label for adding task button (#7656) 2025-03-03 16:14:40 +01:00
Loïc Mathieu
12180457ea fix(core): MultipleCondition documentation 2025-03-03 15:14:55 +01:00
Loïc Mathieu
1eb9adf30a fix(core): validation error when timeWindow.type is null 2025-03-03 15:14:55 +01:00
dependabot[bot]
e7f2ec2aee build(deps): bump software.amazon.awssdk:bom from 2.30.16 to 2.30.31
Bumps software.amazon.awssdk:bom from 2.30.16 to 2.30.31.

---
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-03 15:06:43 +01:00
dependabot[bot]
94421f141e build(deps): bump org.owasp.dependencycheck from 12.0.2 to 12.1.0
Bumps org.owasp.dependencycheck from 12.0.2 to 12.1.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 14:36:41 +01:00
dependabot[bot]
65b071adfd chore(deps): bump org.testcontainers:testcontainers
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.20.4 to 1.20.5.
- [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.4...1.20.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 14:31:35 +01:00
Ludovic DEHON
d2bf56fecf fix(cicd): missing acls for test reports 2025-03-03 14:17:45 +01:00
dependabot[bot]
998a5cca32 chore(deps): bump flyingSaucerVersion from 9.11.3 to 9.11.4
Bumps `flyingSaucerVersion` from 9.11.3 to 9.11.4.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.11.3 to 9.11.4
- [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.3...v9.11.4)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.11.3 to 9.11.4
- [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.3...v9.11.4)

---
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-03 14:15:30 +01:00
dependabot[bot]
4b48ad597d build(deps): bump nl.basjes.gitignore:gitignore-reader
Bumps [nl.basjes.gitignore:gitignore-reader](https://github.com/nielsbasjes/codeowners) from 1.10.0 to 1.11.1.
- [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.10.0...v1.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 14:14:41 +01:00
dependabot[bot]
66fdb58f4b build(deps): bump com.github.oshi:oshi-core from 6.6.6 to 6.7.0
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.6.6 to 6.7.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.6.6...oshi-parent-6.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 14:14:27 +01:00
Loïc Mathieu
8c708e2d53 feat(core): improve merging outputs by merging them at the task level 2025-03-03 13:57:48 +01:00
Loïc Mathieu
677585213a feat(core): use HashMap.newHashMap(int) 2025-03-03 13:57:48 +01:00
Loïc Mathieu
ff3f90465d feat(core): replace new ArrayList by Collections.emptyList() 2025-03-03 13:57:48 +01:00
YannC
8f5189df49 fix(): recoverMissedSchedules behavior on long running executions (#7617)
* fix(): handle missed scheduled for long running execution

close #7549

* tests(core): add test for backfill last/none on long running execution

* fix(): review pr

* fix(): shorter test

* fix(): fix tests and add missing getStopAfter

* tests(): fix scheduler tests
2025-03-03 13:14:16 +01:00
Miloš Paunović
9446eefd94 fix(ui): make sure adding labels on flow run dialog is possible (#7652) 2025-03-03 11:29:35 +01:00
YannC
334410ab58 fix(): make subflow not found a warning instead of an error (#7649) 2025-03-03 10:38:28 +01:00
nKwiatkowski
7ccb97a963 Revert "feat(#7636): add default options for HttpClient"
This reverts commit 5b42d0adba.
2025-03-03 10:09:08 +01:00
nKwiatkowski
3957177455 Merge remote-tracking branch 'origin/develop' into develop 2025-03-03 10:05:13 +01:00
nKwiatkowski
5b42d0adba feat(#7636): add default options for HttpClient 2025-03-03 10:05:01 +01:00
Loïc Mathieu
8bd3c2fef8 fix(ci): fix vulnerability check workflow 2025-03-03 09:41:13 +01:00
Miloš Paunović
d8fc4a9ce2 fix(ui): allow sidebar theme toggle to update the editor theme (#7648) 2025-03-03 09:15:24 +01:00
Florian Hussonnois
bfd82e0b5c chore(core): eval value property once for flowable task Switch 2025-02-28 18:38:31 +01:00
Loïc Mathieu
fa07cbd3b9 feat(core): improve performance of ExecutorService.handleChildWorkerTaskResult
Searching for a retry in all parents is a costly operation, doing it only wgen we are retrying or failing avoid it most of the time.
2025-02-28 17:40:29 +01:00
github-actions[bot]
2c77a43935 chore(translations): localize to languages other than English (#7635)
Co-authored-by: GitHub Action <actions@github.com>
2025-02-28 16:09:24 +01:00
Piyush Bhaskar
60a84a49f8 chore(ui): improve empty state of the namespace files editor (#7495) 2025-02-28 15:54:39 +01:00
Piyush Bhaskar
d8295ef4ae feat(ui): allow reordering tabs in the editor (#7531) 2025-02-28 15:46:30 +01:00
Miloš Paunović
b02325a2e4 chore(ui): remove crud details from execution overview (#7634) 2025-02-28 15:39:43 +01:00
Florian Hussonnois
a098847c65 feat(core): enhance plugin management
Changes:
* add new interface PluginManager
* add new CLI for un-installing plugins
* add new option --locally to CLI plugin install
* refactor service for downloading plugins
* refactor PluginController
* move Version util class from EE to OSS
* migrate aether lib to maven-resolver (#915)

part-of: #915
2025-02-28 15:04:40 +01:00
brian.mulier
5f21eb5790 fix(ui): use watch with ref instead of accessing the value 2025-02-28 14:16:05 +01:00
MilosPaunovic
036a7cf4f7 fix(ui): improve check for text label of filters section 2025-02-28 14:00:32 +01:00
MilosPaunovic
446a034d6b fix(ui): additional check for text label of filters section 2025-02-28 12:48:38 +01:00
github-actions[bot]
3fff36881a chore(translations): localize to languages other than English (#7633)
Co-authored-by: GitHub Action <actions@github.com>
2025-02-28 12:23:36 +01:00
Anna Geller
174ac280d2 Update README.md 2025-02-28 11:12:41 +01:00
Miloš Paunović
c610ccdaee chore(ui): improve label for text search in filters section (#7631)
* chore(ui): improve label for text search in filters section

* chore(ci): prevent running translation spec on ci:cd workflow
2025-02-28 11:07:19 +01:00
Hashim Khalifa
d8ed5b8b88 feat:string filter (#7428)
* feat:string filter

* chore: include string filter in docs
2025-02-28 10:38:32 +01:00
brian.mulier
17e54134ce fix(core): no longer lowercasing PluginClassIdentifier to have proper validation upon Plugin deserialization
closes #7387
2025-02-28 10:01:57 +01:00
Anna Geller
cacbd069f9 Update README.md 2025-02-28 01:07:18 +01:00
Anna Geller
de5a0f4623 Update README.md 2025-02-28 01:05:24 +01:00
Piyush Bhaskar
0f6c8d3521 fix(ui): executions naviation based on start Date. (#7626) 2025-02-27 21:21:21 +01:00
Anna Geller
c8207b8706 fix: confusing trace log 2025-02-27 20:33:26 +01:00
brian.mulier
39cd6189ac chore(deps): bump ui-libs to 0.0.151 2025-02-27 18:47:43 +01:00
brian.mulier
9b4f3148fc fix(ui): replace alert blocks upon markdown rendering to display them properly
closes #7393
2025-02-27 16:46:23 +01:00
Shruti Mantri
ca6a7a9e16 Add full examples for dayweek, dayweekinmonth and publicholidays conditions (#7615)
* Add full examples for dayweek, dayweekinmonth and publicholidays conditions

* Update core/src/main/java/io/kestra/plugin/core/condition/DayWeekInMonth.java

---------

Co-authored-by: AJ Emerich <aemerich@kestra.io>
2025-02-27 16:39:41 +01:00
Bart Ledoux
3dc8e98ed3 fix: make sure nocode edits the right task from the topology
closes #7619
2025-02-27 15:58:17 +01:00
github-actions[bot]
ea79be9de8 chore(translations): localize to languages other than English (#7618)
Co-authored-by: GitHub Action <actions@github.com>
2025-02-27 15:17:13 +01:00
Anna Geller
3804bdc7f7 fix: improve translation prompt 2025-02-27 15:14:02 +01:00
Anna Geller
d04764814a fix: turn CI flag to a dropdown 2025-02-27 14:41:31 +01:00
Anna Geller
020d674d8c fix(translations): allow retranslating modified keys when needed 2025-02-27 14:39:17 +01:00
Miloš Paunović
ec7458dce5 feat(ui): make filter dropdown be positioned below the input caret (#7614) 2025-02-27 14:24:53 +01:00
Anna Geller
ae75ea06d2 fix: improve some wording 2025-02-27 14:19:30 +01:00
github-actions[bot]
53cd056871 chore(translations): localize to languages other than English (#7613)
Co-authored-by: GitHub Action <actions@github.com>
2025-02-27 14:14:52 +01:00
Piyush Bhaskar
9bab2d2cfa feat(ui): introduce the execution timeline section on overview tab (#7498)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-27 14:09:48 +01:00
Loïc Mathieu
4d87d95eac chore(deps): upgrade Micronaut core to 4.7.15 2025-02-27 14:09:22 +01:00
Anna Geller
81635ddc84 fix: clean up translations script 2025-02-27 13:11:46 +01:00
github-actions[bot]
781d1338e9 chore(translations): localize to languages other than English (#7610)
Co-authored-by: GitHub Action <actions@github.com>
2025-02-27 12:47:51 +01:00
Anna Geller
37ba85a130 Revert "chore(translations): localize to languages other than English (#7605)" (#7609)
This reverts commit 04b8a0a14c.
2025-02-27 12:41:42 +01:00
Anna Geller
7c7ac5a70d fix: only re-translate if the key is not already in the target dict (#7608)
* fix: only re-translate if the key is not already in the target dict or is empty

* Update generate_translations.py

* Update generate_translations.py
2025-02-27 12:40:46 +01:00
Shruti Mantri
f315485fc6 feat: add full examples for datetimebetween condition (#7598) 2025-02-27 11:30:59 +00:00
github-actions[bot]
04b8a0a14c chore(translations): localize to languages other than English (#7605)
Co-authored-by: GitHub Action <actions@github.com>
2025-02-27 11:53:09 +01:00
Anna Geller
8dc702ed16 fix(translations): fix translation key detection by comparing against last modifying commit (#7604) 2025-02-27 11:47:24 +01:00
Anna Geller
6dee52da16 fix: ci for translations (#7602)
* fix: ci for translations

* clean uo
2025-02-27 10:39:36 +01:00
Anna Geller
31dce9aadd Update generate-translations.yml 2025-02-27 10:23:30 +01:00
Anna Geller
cf1d98f56d chore(translations): standalone action for translations (#7597) 2025-02-27 10:22:01 +01:00
Harshit Dhaduk
3bbe65653b feat(ui): add ability to have persistent filter options (#7276)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-27 09:31:45 +01:00
Piyush Bhaskar
5108dd5e25 feat(ui): improve inspecting details of multiple executions (#7516) 2025-02-27 08:33:02 +01:00
Tanvir Ahmed
1ea331b8ab chore: introduce Devcontainer setup (#7507)
Co-authored-by: brian.mulier <bmmulier@hotmail.fr>
2025-02-26 19:26:55 +01:00
aeSouid
e9ceda4666 Fix issue text filter after label 2025-02-26 19:18:16 +01:00
brian.mulier
a996347de2 fix(ui): LabelInput.vue was causing UI freeze 2025-02-26 16:38:31 +01:00
Nicolas K.
d8e3a9ab8b Feat/npe on runcontext cleanup (#7585)
* fix(#7548): NPE on runContext cleanup if logger is null

* clean(#7548): unused import

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-02-26 14:06:41 +01:00
Miloš Paunović
e097bdbe53 chore(deps): regular dependency update (#7588) 2025-02-26 13:41:58 +01:00
Miloš Paunović
0090caad3f fix(ui): make sure adding labels on flow run dialog is possible (#7587) 2025-02-26 12:43:56 +01:00
Loïc Mathieu
7fbe433221 fix(core): properly render list properties 2025-02-26 12:03:55 +01:00
Miloš Paunović
b489848ab9 chore(ui): remove background and check mark from selected filters dropdown list (#7583) 2025-02-26 11:23:05 +01:00
Loïc Mathieu
fc7ef1ca38 fix(core): log can have no executionId
Fixes https://github.com/kestra-io/kestra-ee/issues/2980
2025-02-26 11:03:43 +01:00
Miloš Paunović
0dfe54baa8 fix(ui): amend inconsistencies inside the product tour (#7582) 2025-02-26 11:02:40 +01:00
Miloš Paunović
45c5592609 fix(ui): make flow deletion work as expected (#7579) 2025-02-26 09:04:18 +01:00
Miloš Paunović
3134d2abe2 chore(ui): respect default execution tab settings field when opening single execution (#7576) 2025-02-26 08:35:07 +01:00
aeSouid
2bb5ac61c2 Labels multiselect: (#7544)
combine the labels filter by operation to handle multiselect when building the query
2025-02-25 16:50:38 +01:00
Malaydewangan09
be04c168fd refactor: update http client and fix tests 2025-02-25 16:31:27 +01:00
Malaydewangan09
04c4916ac6 chore: add wiremock and update tests 2025-02-25 16:31:27 +01:00
Malaydewangan09
8d2af87db3 fix: refactor PluginSearchCommand 2025-02-25 16:31:27 +01:00
Malaydewangan09
e7950279bb feat: add plugin search command 2025-02-25 16:31:27 +01:00
Đỗ Trọng Hải
44936e9cdf fix(ui): improve coloring for task object tooltips in no code editor (#7515) 2025-02-25 15:38:57 +01:00
yuri
27755a3791 fix(ui): preselect filter comparator option (#7518) 2025-02-25 15:33:21 +01:00
brian.mulier
ff4f7abb0f fix(ui): styling enhancements for plugin doc
closes kestra-io/ui-libs#196
2025-02-25 15:21:24 +01:00
brian.mulier
48b117b351 fix(ui): plugins TOC is now handling every type of plugins 2025-02-25 15:21:24 +01:00
yuri
daca5675d0 fix(ui): amend label filter encoding after values change (#7536) 2025-02-25 14:05:12 +01:00
Miloš Paunović
b3278bf208 feat(ui): introduce topology export to image files (#7541) 2025-02-25 13:42:13 +01:00
Loïc Mathieu
8a26fdd83e chore(core): move run context property validation to the run context
This would avoid loading the Validator from the application context each time we render a property
2025-02-25 11:09:46 +01:00
Loïc Mathieu
38b8190be9 fix(core): Subflow using the old task name never ends
Fixes #7506
2025-02-25 11:06:31 +01:00
Miloš Paunović
52cb63c436 chore(ui): prevent system labels to be shown in set labels dialog (#7539)
* chore(ui): prevent system labels to be shown in set labels dialog

* chore(ui): improve the removal of labels
2025-02-25 10:42:07 +01:00
dependabot[bot]
f3cff1b8cd build(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.7.5 to 4.7.6.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.7.5...v4.7.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 10:14:04 +01:00
Loïc Mathieu
a2c89e508c fix(core): handle space in HTTP request URI
Fixes #6936
2025-02-25 09:03:58 +01:00
aeSouid
c8aae742a2 fix(ui): amend filtering of logs (#7535) 2025-02-25 08:33:11 +01:00
aeSouid
eab7b746e5 Fix the search by labels input as single value 2025-02-24 19:31:14 +01:00
nKwiatkowski
1d5981665f fix(core): #172 add reactor into classloader blacklist 2025-02-24 18:41:15 +01:00
Ludovic DEHON
4500c976d6 fix(core): content type encoding should not be mandatory 2025-02-24 18:33:25 +01:00
Loïc Mathieu
cf10269f25 fix(jdbc): be resilient to DataException
We usually fail fast, but when a DataException is thrown it means the JDBC driver throws an exception with error code 22: data exception.
As the exception is from the data not the database or the network, there is no point of failfast, we throw a QueueException that may or may not be handled gracefully by the call site.
2025-02-24 16:56:10 +01:00
MilosPaunovic
cf635058cd chore(ui): use system namespace label from configs 2025-02-24 14:45:28 +01:00
aeSouid
bd6937a9f0 Fix the multi select status for the IAM/invitaiton page (#7528) 2025-02-24 13:36:34 +01:00
Miloš Paunović
59cc6f32d0 refactor(ui): remove obsolete chartjs-chart-treemap library (#7529) 2025-02-24 13:33:48 +01:00
Miloš Paunović
b8423ef70e chore(ui): purge empty labels on execution (#7527) 2025-02-24 12:24:50 +01:00
Miloš Paunović
0ec1b3a983 chore(ui): prevent sending random strings as child filter values (#7526)
* chore(ui): properly handle child filter

* chore(ui): prevent sending random strings as child filter values
2025-02-24 11:19:16 +01:00
Anna Geller
8cebd39f0d docs: debug expression (#7514)
* docs: debug expression

* fix: translation script

* fix: translations commit depth

* fix: comment
2025-02-24 10:22:21 +01:00
Ludovic DEHON
9fce6cfe65 fix(core): missing content type on http client 2025-02-21 23:18:27 +01:00
brian.mulier
c8c0c4e63f fix(core): camel to snake-case for app-blocks in RegisteredPlugin 2025-02-21 19:44:06 +01:00
Loïc Mathieu
25723b1acb fix(core): typo in PluginScanner 2025-02-21 19:40:16 +01:00
rajatsingh23
065d299422 chore(ui): restore automatic scroll to bottom on logs (#7365) 2025-02-21 15:08:13 +01:00
brian.mulier
9ec4d9282b fix(core): rename dashboards subgroups 2025-02-21 14:48:03 +01:00
brian.mulier
16284e5b95 fix(core): move package-info.java to proper dashboard packages 2025-02-21 14:35:36 +01:00
Ludovic DEHON
a115eb5373 fix(core): try to log message for unhandled realtime trigger exception 2025-02-21 12:50:21 +01:00
brian.mulier
ac2643c108 fix(core): add package-info.java to script + handle subgroups properly 2025-02-21 12:23:24 +01:00
Adam Hirshson
4710baec7d chore(ui): improve the scope of translations (#7505)
Co-authored-by: Yailan Bordas <bordasyailan@gmail.com>
Co-authored-by: Yailan Bordas <109761932+YAI-cs@users.noreply.github.com>
Co-authored-by: Christian Arauz <carau022@fiu.edu>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-21 09:20:52 +01:00
Miloš Paunović
1efe531228 chore(ui): add translation key/value pairs (#7509) 2025-02-21 09:19:09 +01:00
brian.mulier
df92491e55 fix(core): add package-info.java to dashboard package 2025-02-20 19:05:58 +01:00
aeSouid
e7c65e020a chore(ui): improve scope type filters (#7504) 2025-02-20 14:14:08 +01:00
Miloš Paunović
90212ee7dc fix(ui): properly filter out log levels (#7503) 2025-02-20 12:18:58 +01:00
Miloš Paunović
ac1984b349 fix(ui): make flow metrics behave as expected (#7502) 2025-02-20 11:59:27 +01:00
YannC
c5767fd313 fix(core): require condition in Flow trigger (#7494)
close #971
2025-02-20 10:19:06 +01:00
Ludovic DEHON
8ee79264ed fix(tasks): remove useless format metrics on return (#7486) 2025-02-19 22:56:29 +01:00
Mathieu Gabelle
c6d21776ec fix: render before command with options in CommandsWrapper (#7496) 2025-02-19 17:02:31 +01:00
Aabhas Sao
45a9ea0cc5 chore(ui): simplify query search with spaces inside (#7404)
Signed-off-by: Aabhas Sao <aabhassao0@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-19 16:26:47 +01:00
YannC
1f60a86739 fix(core): if subflow is disabled, raise an error (#7490) 2025-02-19 14:17:28 +01:00
Piyush Bhaskar
d0e8b691e3 chore(ui): amend margins of EE locked pages (#7446) 2025-02-19 14:11:45 +01:00
Piyush Bhaskar
0687a97eb8 feat(ui): add keyboard shortcuts for changing editor font size (#7450)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-19 13:54:20 +01:00
Miloš Paunović
dcf89b5db8 chore(translations): add missing key/value pairs (#7492) 2025-02-19 13:53:46 +01:00
Piyush Bhaskar
b1e29fbe31 chore(ui): improve styling of editor file tree (#7420) 2025-02-19 13:40:38 +01:00
Miloš Paunović
4b2113fb9b chore(ui): remove obsolete props (#7487) 2025-02-19 13:37:19 +01:00
Piyush Bhaskar
dc1728e420 fix(ui): fix the light theme contrast for editor. (#7438)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-19 13:31:47 +01:00
Miloš Paunović
8c83290d7a chore(deps): regular dependency update (#7485) 2025-02-19 12:54:49 +01:00
Miloš Paunović
212b3a82a9 fix(ui): improve handling of main filter labels on page load (#7456) 2025-02-19 12:08:53 +01:00
Miloš Paunović
1612c65ea3 fix(ui): properly cast value to boolean (#7455) 2025-02-19 11:29:07 +01:00
Miloš Paunović
6257b1508c chore(ui): disable click on search button if filtering is automatic (#7454) 2025-02-19 11:08:57 +01:00
yuri
f1670b8ac8 fix(webserver): allow special chars in label key (#7419) 2025-02-19 09:06:48 +01:00
brian.mulier
ce15ca1cac fix(ci): QEMU issue 2025-02-18 23:36:53 +01:00
Ludovic DEHON
a53395ab3f fix(core): http proxy was not passed to configuration
close #7449
2025-02-18 22:46:15 +01:00
Mathieu Gabelle
e0eaf675b2 refactor: return only command when no interpreter and no beforeCommands (#7452) 2025-02-18 18:59:04 +01:00
Ludovic DEHON
666f8a7ad9 fix(cicd): update concurrency key 2025-02-18 18:21:25 +01:00
brian.mulier
cebe8f3545 fix(tests): increase timeout on JdbcServiceLivenessCoordinatorTest.taskResubmitSkipExecution 2025-02-18 15:48:36 +01:00
brian.mulier
16e3830c9c fix(core): render delete property at the beginning in Docker task runner 2025-02-18 15:48:36 +01:00
brian.mulier
15b85ac952 fix(core): remove props with default from required in json schema to avoid validation errors
closes #7406
2025-02-18 15:48:36 +01:00
Miloš Paunović
db016a085f chore(ui): add arrows to namespace listing (#7448) 2025-02-18 13:54:07 +01:00
YannC
d5f6da10dd fix(): invert condition 2025-02-18 12:38:54 +01:00
brian.mulier
3723275817 fix(core): move back to the old worker thread pool because it was restricting it to 1 thread 2025-02-18 12:24:21 +01:00
YannC
ef29883138 fix(core): provide tenantId when looking for subflow (#7442) 2025-02-18 11:38:25 +01:00
Mathieu Gabelle
5ced9b6c4f refactor: remove rendering from Docker (#7439)
rendering is done in the CommandsWrapper so no need to render again in the task runner
2025-02-18 11:15:14 +01:00
Miloš Paunović
11f3629f38 chore(ui): add missing translations (#7444) 2025-02-18 11:11:50 +01:00
Miloš Paunović
d8c5a1e14c chore(ui): amend namespace flow creation label (#7443) 2025-02-18 11:09:55 +01:00
Miloš Paunović
cee2734817 fix(ui): improve modifying inputs from no code editor (#7440) 2025-02-18 10:36:15 +01:00
brian.mulier
13cb0fb96d fix(tests): logs are asynchronously inserted so we wait for them to be fully in 2025-02-18 10:19:58 +01:00
YannC
a020e3f3ae ci(test): force test if ref is a tag 2025-02-18 09:46:28 +01:00
brian.mulier
12fef24279 chore(deps): bump ui-libs to 0.0.141 2025-02-18 01:38:22 +01:00
rajatsingh23
4a55485cd6 fix(ui): better duration consistency on Gantt chart 2025-02-18 00:38:54 +01:00
brian.mulier
aed5734e17 chore(deps): bump ui-libs to 0.0.140 2025-02-18 00:25:39 +01:00
brian.mulier
d55ce16f57 fix(tests): wider maxDuration for retry-failed-flow-duration.yml 2025-02-18 00:05:14 +01:00
aeSouid
4abf3e9e6b Filter feat: (#7432)
Fix handle namespace column in filtering on scope
2025-02-17 14:43:03 +01:00
Bart Ledoux
fbd8934346 fix: restore red dot when there is news 2025-02-17 14:17:13 +01:00
Bart Ledoux
df6d339310 refactor: avoid en.json warning when building 2025-02-17 14:16:47 +01:00
YannC
a89ef71580 ci(publish-docker): attempts with command on qemu docker image 2025-02-17 11:15:14 +01:00
YannC
89c2d3951c ci(publish-docker): attempts with ubuntu 0.20 (#7431) 2025-02-17 10:48:10 +01:00
Mathieu Gabelle
e061a3617c refactor: introduce render in commands wrapper for property string (#7430) 2025-02-17 10:44:54 +01:00
Mathieu Gabelle
410cf0e389 fix: enable rendering of commands properties inside CommandsWrapper (#7381)
* fix: move commands to Property

migrate to Property in TaskCommands and CommandsWrapper
implement beforeCommand and interpreter
2025-02-17 09:49:49 +01:00
YannC
f783ab72b5 fix(test): attempt at making the test not flakky (#7400) 2025-02-17 09:20:26 +01:00
Anna Geller
72e78c8c31 Update ExecutionOutputs.java (#7394) 2025-02-17 09:20:10 +01:00
YannC
a716094a9d ci(): now run the file changes detection also in the workflow test 2025-02-17 09:15:26 +01:00
YannC
c75def0eac ci():allow release to be run 2025-02-17 09:10:08 +01:00
Piyush Bhaskar
c27d5ce480 chore(ui): improved Logs empty page (#7415) 2025-02-16 22:44:00 +01:00
aeSouid
49960d67ab chore(ui): improve filter parameters decoding for absolute date (#7409) 2025-02-14 14:51:13 +01:00
Loïc Mathieu
d9d2f86971 fix(core): ForEachItem inside an If task
Fixes #6801
2025-02-14 14:46:09 +01:00
Laibrez
95f5862201 chore(ui): improve execution outputs section (#7377)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-14 14:45:20 +01:00
AJ Emerich
e6419cf7a2 fix(ui): correct english translations (#7401)
Closes https://github.com/kestra-io/kestra-ee/issues/2913
2025-02-14 14:19:38 +01:00
Miloš Paunović
c1faeab068 chore(ui): make import flows button be a secondary one, styling-wise (#7405) 2025-02-14 12:59:44 +01:00
Aabhas Sao
dd3ff3e771 chore(ui): vertically center all elements in table rows (#7372)
Signed-off-by: Aabhas Sao <aabhassao0@gmail.com>
2025-02-14 11:52:37 +01:00
Miloš Paunović
e635338b47 chore(ui): improve colors of filter dropdown selector (#7403) 2025-02-14 11:47:10 +01:00
Loïc Mathieu
ddfed2e65c fix(core): taskrun list can be null 2025-02-14 11:45:33 +01:00
aeSouid
52fe6afae0 Filter feat: (#7389)
namespace mulitple choice in and not in
2025-02-14 11:37:57 +01:00
Miloš Paunović
a9ff2af159 fix(ui): properly handle the operation labels in filter component (#7399) 2025-02-14 10:50:16 +01:00
Miloš Paunović
bf19a8f5ad chore(ui): improve the labels behavior (#7397) 2025-02-14 10:30:46 +01:00
Loïc Mathieu
41712b8d80 feat(jdbc): consume multiple times the execution and worker task result queues
So that the executor use multiple threads to process messages.
2025-02-14 09:19:51 +01:00
Loïc Mathieu
f8a6e3fb04 feat(core, jdbc): use an elastic thread pool
To avoid using too many threads when it's not needed.
2025-02-14 09:19:39 +01:00
Ludovic DEHON
ad651cdc53 fix(ui): fix slack button on error toast 2025-02-13 19:27:20 +01:00
Miloš Paunović
f57a463983 chore(ui): improve breadcrumbs on namespace view (#7386) 2025-02-13 15:46:04 +01:00
Miloš Paunović
b3e66d8844 chore(ui): include autocompletion shortcut in the preview list (#7384) 2025-02-13 15:03:42 +01:00
Miloš Paunović
dc64d81dd0 chore(ui): add link to filtered triggers page from backfill dialog (#7380) 2025-02-13 12:17:53 +01:00
YannC
be30034143 ci(): moved build artifacts directly in docker workflow 2025-02-13 11:20:16 +01:00
YannC
f8d8e0998c ci(): fix outputs 2025-02-13 10:47:58 +01:00
Bart Ledoux
b8d0ae3ecf fix: changing language should work with providers too 2025-02-13 10:32:20 +01:00
Loïc Mathieu
def8fa3ff1 fix(cli): disable by default OTEL metrics 2025-02-13 10:21:18 +01:00
YannC
cfc0c9f9f2 ci(docker): revert fixed qemu version 2025-02-13 10:06:14 +01:00
YannC
49fe36250a ci(docker): fixed version of qemu 2025-02-13 10:00:32 +01:00
YannC
0c19f4c518 ci(): map outputs in build artifacts 2025-02-13 09:40:55 +01:00
YannC
1e6d553ce6 ci(): correct output in workflow build artifacts 2025-02-13 09:08:00 +01:00
YannC
1ebbdbbae6 fix(scheduler): delete trigger when flow is not found (#7366)
close #7312
2025-02-13 08:52:19 +01:00
Ludovic DEHON
5b29a0d070 fix(cicd): add mariadb plugins on docker image 2025-02-12 23:48:50 +01:00
Ludovic DEHON
239fb6a685 fix(core): handle http request with no content type 2025-02-12 19:48:50 +01:00
YannC
9924ba5ae2 fix(ui): refresh dashboard list (#7370)
close #2791
2025-02-12 17:44:24 +01:00
Loïc Mathieu
13ac335c93 feat(jdbc): clean more eagerly some queues based on configuration 2025-02-12 16:35:46 +01:00
Loïc Mathieu
9d717caf95 feat(jdbc): queues.updated should be set when the record is updated 2025-02-12 16:35:46 +01:00
Loïc Mathieu
1d65fd96b4 fix(jdbc): delete the executor state at the correct stage
Without this change, the executor state is deleted when the execution is terminated.
Then the last execution message is emitted, which goes again into the queue wich recreates the executor state.
2025-02-12 16:11:32 +01:00
Loïc Mathieu
b45a44bd35 fix(core): render list
Fixes #7253
2025-02-12 16:09:16 +01:00
YannC
bd9ba882fb test(webserver): flaky ExecutionControllerTest for kill (#7368) 2025-02-12 15:59:39 +01:00
Miloš Paunović
4b682931e0 chore(ui): add validation messages for custom dashboard crud actions (#7367) 2025-02-12 14:38:10 +01:00
YannC
d657f48278 ci: cleanup 2025-02-12 14:28:49 +01:00
Eduardo Goncalvez
714938bec6 chore(ui): add shadows to main charts (#7314)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-12 11:38:59 +01:00
Barthélémy Ledoux
73a9eb485f fix: make menu hierarchy get closer to the original designs (#7102)
* fix: make menu hierarchy get closer to the original designs

* smaller spacing in lower hierachy

* chore: add sidebar story
2025-02-12 10:52:14 +01:00
Miloš Paunović
4d9f2a130f fix(ui): make sure bulk selection is taking into account only selected items (#7362) 2025-02-12 10:47:41 +01:00
Barthélémy Ledoux
a040ec44b9 fix: trim bookmarks better (#7359) 2025-02-12 10:19:22 +01:00
Barthélémy Ledoux
b1c27b1869 fix: add proper ellipsis to sidemenu (#7361) 2025-02-12 10:19:06 +01:00
Loïc Mathieu
ed14493632 feat(core): add system.correlationId label to triggered executions 2025-02-12 10:12:56 +01:00
Miloš Paunović
3803f4ea4c chore(deps): regular dependency update (#7358) 2025-02-12 09:59:20 +01:00
Miloš Paunović
4992cf34fa chore(translations): amend theme key (#7356) 2025-02-12 09:23:03 +01:00
YannC
420afd7758 ci():fix frontend being skipped (#7355) 2025-02-12 09:21:59 +01:00
Shamar
c3852a2933 chore(ui): improve the doughnut chart legend (#7321)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-12 08:59:43 +01:00
YannC
41417adf8b ci(): fixed vulnerabilities-check.yml wrong character 2025-02-12 08:57:16 +01:00
Pravesh-Sudha
cd89cd8fb6 chore(ui): introduce filters bar to flow triggers page (#7292)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-12 08:45:47 +01:00
YannC
9b5e16a02d ci(): call reusable workflow correctly 2025-02-12 08:42:09 +01:00
Ludovic DEHON
f4b78755ad docs(core): better documentation on docker tasks 2025-02-11 22:12:43 +01:00
Ludovic DEHON
7bf42cb1cb fix(cicd): npm install in the wrong folder for vulnerabilities checks 2025-02-11 22:12:38 +01:00
Loïc Mathieu
7dbf86d54e fix(core): possible NPE when an execution has no labels 2025-02-11 18:01:27 +01:00
Loïc Mathieu
e7f551edc2 feat(jdbc): purge worker job queue early 2025-02-11 16:30:40 +01:00
Loïc Mathieu
31d2212419 feat(jdbc): puerge worker task result queue early 2025-02-11 16:30:40 +01:00
Loïc Mathieu
dd8ae5e642 feat(jdbc): purge execution queue early 2025-02-11 16:30:40 +01:00
Nicolas K.
0aadbab9c4 fix(core): add request.yaml file back (#7308)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-02-11 16:15:25 +01:00
YannC
49759da3b4 ci(): Remove if from test workflow 2025-02-11 15:48:20 +01:00
YannC
489e01cf38 ci(): Use correct workflow 2025-02-11 15:46:39 +01:00
YannC
1821ec27c9 ci(): Correct outputs 2025-02-11 15:44:01 +01:00
YannC
a6918b1f34 ci(): Remove unnecessary secrets 2025-02-11 15:37:49 +01:00
YannC
17693c7380 ci(): Missing GOOGLE_SERVICE_ACCOUNT secrets 2025-02-11 15:27:33 +01:00
YannC
806135e3e9 ci(): Remove GITHUB_TOKEN from secrets definition 2025-02-11 15:25:27 +01:00
YannC
7381b32e16 ci(): rewrite release part 2025-02-11 15:22:33 +01:00
YannC
7b175dac04 ci(): trigger main ci on dispatch 2025-02-11 14:19:48 +01:00
YannC
2c3de87dcc ci(): trigger main ci also on develop branch 2025-02-11 14:19:19 +01:00
YannC
7b9efa08a6 fix(h2): remove indenting in sql file (#7306) 2025-02-11 13:52:38 +01:00
Piyush Bhaskar
1a96fe4b4b chore(ui): improve styling of main filter tags (#7305)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-11 13:51:24 +01:00
YannC
938de9b222 fix(core): do not validate subflow if namespace or id is pebble (#7294)
close #7271
2025-02-11 13:44:30 +01:00
Florian Hussonnois
9505c48e55 chore: remove some compilation warnings 2025-02-11 13:04:38 +01:00
YannC
fe197ebd21 ci(): run translations only if necessary 2025-02-11 12:52:40 +01:00
YannC
c5b6d6b2a7 ci(): moved multiple actions to reusable workflows (#7299) 2025-02-11 11:47:56 +01:00
dependabot[bot]
90da5f7cf7 build(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.19.0 to 2.20.0.
- [Release notes](https://github.com/opensearch-project/opensearch-java/releases)
- [Changelog](https://github.com/opensearch-project/opensearch-java/blob/v2.20.0/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/opensearch-java/compare/v2.19.0...v2.20.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 11:45:27 +01:00
dependabot[bot]
4c5638d957 build(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.7.4 to 4.7.5.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.7.4...v4.7.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 11:45:09 +01:00
dependabot[bot]
8260dc6033 build(deps): bump io.pebbletemplates:pebble from 3.2.2 to 3.2.3
Bumps [io.pebbletemplates:pebble](https://github.com/PebbleTemplates/pebble) from 3.2.2 to 3.2.3.
- [Release notes](https://github.com/PebbleTemplates/pebble/releases)
- [Commits](https://github.com/PebbleTemplates/pebble/compare/3.2.2...3.2.3)

---
updated-dependencies:
- dependency-name: io.pebbletemplates:pebble
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 11:44:52 +01:00
dependabot[bot]
48320a89d8 build(deps): bump com.microsoft.playwright:playwright
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.49.0 to 1.50.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.49.0...v1.50.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 11:44:16 +01:00
dependabot[bot]
55bdfac7f9 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.33.11 to 0.34.0.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.33.11...v0.34.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-02-11 11:43:25 +01:00
Loïc Mathieu
f599f25755 chore(core): refactor file related Pebble function to share code 2025-02-11 11:39:20 +01:00
Loïc Mathieu
8de839f326 chore(core): rename fileEmpty Pebble function to isFileEmpty 2025-02-11 11:39:20 +01:00
Ludovic DEHON
25370d10bd fix(core): http client was not using deprecated setter 2025-02-11 11:21:26 +01:00
Nicolas K.
b59d36a90e fix(core): flacky trigger with backfile test (#7295)
* fix(core): flacky trigger with backfile test

* fix(core): flacky schedule test

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-02-11 11:07:38 +01:00
Nicolas K.
a5483a0d4c fix(makefile): build plugin now build main branch too (#7297)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-02-11 11:02:28 +01:00
ben8t
9863e88230 Add core plugin sanity checks (#6904)
* [feature] add core plugin sanity checks

* feat: namespace files task test

* fix: formatting

* fix: sanity checks to use assert

* fix: core sanity flows

* tests: add runner class to run sanity checks flows

* [refactor] remove request sanity check as not a core task (already in fs plugin)

* [refactor] rename file and namespace for sanity checks

* [refactor] update path

---------

Co-authored-by: Will Russell <wrussell@kestra.io>
Co-authored-by: Will Russell <will@wrussell.co.uk>
Co-authored-by: Mathieu Gabelle <mgabelle@kestra.io>
2025-02-11 10:51:59 +01:00
ByronBlaze
88a5cd69e3 feat(core): Added FileEmpty & FileExists Pebble Functions 2025-02-11 10:49:31 +01:00
yuri
ec73d58649 fix(ui): match chart colors (#7290)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
2025-02-11 09:38:33 +01:00
Bart Ledoux
0becf74339 fix: collapsed menu colors in light mode 2025-02-11 09:33:54 +01:00
Miloš Paunović
bfcfb2ac16 chore(ui): make action columns always visible on executions and flows (#7291) 2025-02-11 08:17:29 +01:00
Anna Geller
27f9a505af fix: force run docs (#7289) 2025-02-10 20:31:24 +01:00
Nicolas K.
99db3f35b7 fix(core): #7227 cron schedule with timezone and backfile not triggering (#7285)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-02-10 17:56:05 +01:00
YannC
c53239470d fix(ci): inputs instead of secrets 2025-02-10 16:27:55 +01:00
YannC
c3e830c2c7 fix(ci): Workflow test ouptputs + changes for codecov 2025-02-10 16:25:00 +01:00
Ludovic DEHON
9790f02376 fix(cicd): add npm install on vulnerabilities check 2025-02-10 15:56:53 +01:00
Miloš Paunović
899a1f6f17 chore(ui): improve flow description coloring (#7282) 2025-02-10 15:51:59 +01:00
YannC
9455643660 fix(ci): pass correctly secret + cleanup 2025-02-10 15:17:31 +01:00
dependabot[bot]
8a3f413236 build(deps): bump software.amazon.awssdk:bom from 2.30.11 to 2.30.16
Bumps software.amazon.awssdk:bom from 2.30.11 to 2.30.16.

---
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-02-10 15:01:51 +01:00
YannC
4986d68f57 fix(ci): removed useless name in action files 2025-02-10 14:37:17 +01:00
YannC
09ff9d4054 fix(ci): missing checkout in release step 2025-02-10 13:13:48 +01:00
aeSouid
e910685d57 Fix search bar: (#7279)
-fix date picker layout
-change the not_in operation traduction

Fix search bar:
-fix search bar when closing date picker
2025-02-10 13:12:06 +01:00
dependabot[bot]
5aa73ec48a build(deps): bump com.google.cloud:libraries-bom from 26.53.0 to 26.54.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.53.0 to 26.54.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.53.0...v26.54.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-02-10 12:49:01 +01:00
YannC
5dcd27c064 fix(ci): disabled previous generate translations CI 2025-02-10 12:36:00 +01:00
YannC
9ba27b9bd5 fix(ci): workflow test correct previous job status usage 2025-02-10 12:35:06 +01:00
YannC
549da52afa ci(): simplification (#7202)
* ci():
- split in multiples actions
- simplify translation script
- simplify front build
- run test for back/front only when needed

* fix(): token prop

* ui(translation): new word

* fix(): correct usage of paths-filter action

* fix(): first iteration of new main workflow

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2025-02-10 12:24:25 +01:00
Miloš Paunović
d486d78200 chore(ui): disable saving flow actions if there are errors (#7278) 2025-02-10 11:59:51 +01:00
aeSouid
a7a134a050 Fix search flow by query: (#7277)
add new condition of the field is query
2025-02-10 11:54:39 +01:00
GitHub Action
e0f4ab735d chore(translations): auto generate values for languages other than english 2025-02-10 10:49:34 +00:00
Barthélémy Ledoux
b052925b04 feat: give blueprint pages a distinct name (#7254)
* feat(translations): add new blueprint labels for flows, apps, and dashboard

* feat(translations): update left menu titles for blueprints

* chore(translations): auto generate values for languages other than english

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2025-02-10 11:48:24 +01:00
Piyush Bhaskar
c3443ab99a feat(ui): center view when switching between topology modes (#7257) 2025-02-10 11:11:39 +01:00
Bart Ledoux
ec967a57fb fix: use the udpated labelsFromQuery in labels 2025-02-10 10:56:35 +01:00
Piyush Bhaskar
9ba13ae994 chore(ui): tweak the video container ratio in the docs sidebar (#7260) 2025-02-10 10:35:54 +01:00
Loïc Mathieu
be1871430e feat(core, jdbc): directly process WorkerTaskResult from flowable tasks
And other places in the ExecutorService when we create them when processing the execution queue.

Fixes #5521
2025-02-10 10:03:00 +01:00
Dheeraj_R_Gowda
39257bf3bb chore(ui): align chart duration label with switch toggle (#7258) 2025-02-10 09:35:10 +01:00
Aabhas Sao
346100c86c chore(ui): align chart duration label with switch toggle (#7259) 2025-02-10 09:24:36 +01:00
Ludovic DEHON
0c3ed3b751 feat(cicd): restore codeql weekly 2025-02-08 00:48:11 +01:00
Ludovic DEHON
1bbe0e659e feat(cicd): don't mark failed for front end test 2025-02-07 20:28:31 +01:00
Ludovic DEHON
123f748030 feat(cicd): add test analysis on frontend 2025-02-07 18:30:27 +01:00
Ludovic DEHON
d0b53d217d feat(cicd): add unit test for js (#7246) 2025-02-07 18:23:08 +01:00
Bart Ledoux
6f7bb80c6d fix: make dashboard tables the right color 2025-02-07 16:39:29 +01:00
Loïc Mathieu
1eacb447d5 feat(core): simplify Pebble error messages 2025-02-07 14:59:10 +01:00
Ludovic DEHON
3f429ef0a8 feat(cicd): add codecov flags 2025-02-07 14:27:59 +01:00
Florian Hussonnois
dc8576afed fix(ci): fix and remove unecessary setps in set version workflows 2025-02-07 11:51:07 +01:00
Bart Ledoux
c31609a12e chore: update theme colors 2025-02-07 11:44:25 +01:00
Loïc Mathieu
84c07ef011 fix(webserver,core): move the LogStreamService in core so EE can use it for apps 2025-02-07 11:40:21 +01:00
MilosPaunovic
e335b76b3c chore(ui): check for missing property on update metadata 2025-02-07 11:27:14 +01:00
Bart Ledoux
95b94f3961 fix: labels should not be purple if inactive 2025-02-07 10:46:33 +01:00
Bart Ledoux
e0ee26a9c0 fix: add comment on i18n code 2025-02-07 10:07:15 +01:00
Florian Hussonnois
480fc75897 feat(ci): add workflows for release process
* move scripts to folder dev-tools
* add new workflow gradle-release.yml
* add new workflow setversion-tag.yml
* rename existing workflow
2025-02-07 09:57:06 +01:00
Nicolas K.
c8d7e5f357 feat(core): add sanity check to request task (#7230)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-02-07 09:34:09 +01:00
咬轮猫
792f7b6911 fix(ui): amend the language switching issue (#7235) 2025-02-07 09:15:52 +01:00
Loïc Mathieu
2a95aee968 feat(webserver): use a shared queue consumer from the log follow endpoint 2025-02-07 09:15:42 +01:00
amartknez
129ba6abe4 chore(ui): initial work on filter persistency (#7234)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-07 09:09:06 +01:00
Ludovic DEHON
ab2a0108a9 feat(cicd): add codecov bundle analysis 2025-02-07 09:08:37 +01:00
Ludovic DEHON
03dccd1444 feat(cicd): codecov + tests report 2025-02-07 08:45:26 +01:00
Loïc Mathieu
4c401ce0c0 feat(webserver): improvement to ExecutionStreaminService 2025-02-06 17:30:14 +01:00
malay.worldref@gmail.com
13be8b8125 feat(webserver): optimize queue usage for follow endpoints 2025-02-06 17:30:14 +01:00
GitHub Action
440faa7cd1 chore(translations): auto generate values for languages other than english 2025-02-06 16:10:14 +00:00
aeSouid
5a8a4e99d7 Change the filter params (#7051)
* Feat Filter:
Change the filters to the new search format
2025-02-06 17:09:32 +01:00
aeSouid
296e1a67a5 Feat Search: (#6910)
New search with operation for all /search endpoints :
- define list  of operation and fields.
- Add custom parser for filter[field][operation]=value format
- create new Annotation @QueryFilterFormat to bind to specfic pojo
- Implement new abstract repo search method
2025-02-06 17:08:15 +01:00
Loïc Mathieu
ecd36ec2a4 fix(core): possible NPE on LabelService.containsAll 2025-02-06 16:26:11 +01:00
rajatsingh23
ca9b90a0ec chore(ui): show executions per namespace only if there are 2 or more items for chart (#7216)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-06 15:22:23 +01:00
Piyush Bhaskar
37e337a657 chore(ui): only show warning on bulk execution deletion if nonTerminated is true (#7211)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-06 15:12:16 +01:00
Miloš Paunović
157f78fae0 chore(ui): generate random flow ID using combination of animal names and numbers (#7223)
* chore(ui): creating a flow from the namespace view should use it's ID as the designated value

* chore(ui): generate random flow ID using combination of animal names and numbers
2025-02-06 14:55:50 +01:00
Pravesh-Sudha
7158a0c98f chore(ui): amended global pagination coloring (#7201)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-06 13:11:00 +01:00
Miloš Paunović
753308a341 fix(ui): prevent doubling the executions chart on flow overview (#7219) 2025-02-06 11:58:05 +01:00
Loïc Mathieu
21aebe4e77 feat(core): allow loading secrets from a different namspace
Fixes #5970
2025-02-06 10:42:17 +01:00
Miloš Paunović
959e80efa8 chore(ui): re-order the list of optional columns (#7213) 2025-02-06 09:32:56 +01:00
Miloš Paunović
bba612ef9b feat(ui): add script to help with creation of release notes (#7212) 2025-02-06 09:18:08 +01:00
nKwiatkowski
a0483dc201 fix(core): request option doesn't initialize properly 2025-02-05 19:03:06 +01:00
Miloš Paunović
2f3d7f573b chore(ui): replace the visual for no tabs opened on namespace editor (#7204) 2025-02-05 18:37:13 +01:00
Nicolas K.
2e09777790 fix(core): #7181 log level rendered as string (#7198)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-02-05 15:35:29 +01:00
Miloš Paunović
0b1eda0f03 chore(ui): consolidate markdown files (#7197) 2025-02-05 12:51:31 +01:00
Miloš Paunović
1ee6402fa2 chore(translations): remove extra keys from translation files (#7193) 2025-02-05 12:23:34 +01:00
Miloš Paunović
71933352b6 chore(ui): remove the option to change editor theme separately (#7192)
* chore(ui): remove obsolete log statements from console

* chore(ui): remove the option to change editor theme separately
2025-02-05 12:18:29 +01:00
GitHub Action
cb7ed73bea chore(translations): auto generate values for languages other than english 2025-02-05 09:56:50 +00:00
Miloš Paunović
5f13d5b2aa chore(ui): rename advanced properties to other in no code (#7190) 2025-02-05 10:56:11 +01:00
GitHub Action
e4973c3319 chore(translations): auto generate values for languages other than english 2025-02-05 09:53:47 +00:00
Miloš Paunović
abc3372161 chore(ui): rename advanced properties to other in no code (#7189) 2025-02-05 10:53:14 +01:00
Bart Ledoux
9619dca764 fix(theme): make plugin rendering reactive to theme switch 2025-02-05 10:53:02 +01:00
Barthélémy Ledoux
e80b2011de feat: theme switch to "theme switch" the charts (#7151)
* chore: store the theme in the store

* use the new theme in charts

* use the theme value in more places

* create a useTheme composable

* create the useScheme composable

* restore nodata
2025-02-05 10:43:04 +01:00
GitHub Action
86f3acace3 chore(translations): auto generate values for languages other than english 2025-02-05 09:33:27 +00:00
Piyush Bhaskar
b6c9f50503 feat(ui): add option to choose visible columns in flow and execution listings (#6932)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-05 10:32:37 +01:00
Piyush Bhaskar
2e9938806a feat(ui): Docs markdown alert styled based on alert level in product. (#6818)
* feat(ui): Align the CSS or style configuration so that all documentation components (Docs, plugin docs, blueprints) use the same markdown style.

* Remove alert styling from DocsLayout since it has been handled within Alert.vue using ---ks variables.

* revert Input_Count.

---------

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-05 10:13:30 +01:00
Piyush Bhaskar
13bc0de9dc chore(ui): improve the states options list inside filter values (#7176)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-05 09:03:25 +01:00
Piyush Bhaskar
da7509ce30 chore(ui): update the visual of no data component (#7179)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-02-05 08:45:52 +01:00
Shruti Mantri
15aeee3d8b chore(ui): improve the example for not condition (#6820) 2025-02-05 08:35:21 +01:00
dependabot[bot]
42920508b7 build(deps-dev): bump @shikijs/markdown-it from 2.3.0 to 2.3.1 in /ui (#7184)
Bumps [@shikijs/markdown-it](https://github.com/shikijs/shiki/tree/HEAD/packages/markdown-it) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Commits](https://github.com/shikijs/shiki/commits/v2.3.1/packages/markdown-it)

---
updated-dependencies:
- dependency-name: "@shikijs/markdown-it"
  dependency-type: direct:development
  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-02-05 08:32:26 +01:00
dependabot[bot]
f45c703fd9 build(deps): bump shiki from 2.3.0 to 2.3.1 in /ui (#7183)
Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Commits](https://github.com/shikijs/shiki/commits/v2.3.1/packages/shiki)

---
updated-dependencies:
- dependency-name: shiki
  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-02-05 08:31:04 +01:00
dependabot[bot]
872c70fe37 build(deps): bump posthog-js from 1.215.2 to 1.215.3 in /ui (#7182)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.215.2 to 1.215.3.
- [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.215.2...v1.215.3)

---
updated-dependencies:
- dependency-name: posthog-js
  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-02-05 08:30:53 +01:00
brian.mulier
bbb03b288b fix(ui): global plugin doc with new redesign + auto-expand properties initially 2025-02-04 21:58:08 +01:00
Florian Hussonnois
8d8b7e7a67 fix(core): make flow/namespace variables available for input expr
related-to: kestra-io/kestra-ee#2826
2025-02-04 16:55:49 +01:00
GitHub Action
a9042fb27b chore(translations): auto generate values for languages other than english 2025-02-04 15:00:55 +00:00
YannC
5ff5667231 feat(ui): now display an error when SSE failed (#7177)
* feat(ui): now display an error when SSE failed

close #1303

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2025-02-04 16:00:27 +01:00
Florian Hussonnois
42ad09d79f chore: add utility script to check for plugin artifacts 2025-02-04 15:58:12 +01:00
Loïc Mathieu
30db740de8 fix(core): retry flaky test AbstractRunnerTest.restartForEachItem
It is flaky on CI but never fail locally even with 100 repetitions
2025-02-04 14:22:20 +01:00
Loïc Mathieu
20d55122e7 fix(core): retry test HttpClientTest.getText
It is flaky in CI but never fail locally even with 100 repetitions
2025-02-04 14:22:20 +01:00
Miloš Paunović
3294c358fa fix(ui): align dashboard button label to icon (#7175) 2025-02-04 14:14:58 +01:00
Karthik73965
42899d30d1 chore(ui): add skeleton loaders to dashboard cards (#6602)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-04 13:56:22 +01:00
GitHub Action
6ba71712a8 chore(translations): auto generate values for languages other than english 2025-02-04 12:04:11 +00:00
Miloš Paunović
36b8ef866d fix(ui): amend translation string for no results (#7172) 2025-02-04 13:03:45 +01:00
GitHub Action
fff8d630c5 chore(translations): auto generate values for languages other than english 2025-02-04 11:41:26 +00:00
Aabhas Sao
bc630684b1 chore(ui): enable command palette for monaco editor (#6944)
Signed-off-by: Aabhas Sao <aabhassao0@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-04 12:40:59 +01:00
Loïc Mathieu
f8b64cfbdf fix(core): retry flaky test AbstractRunnereTest.concurrencyQueuePause
It is flaky on CI but cannot be fail locally even with 100 repetitions.
2025-02-04 12:34:43 +01:00
Miloš Paunović
4ee8b33aeb chore(deps): regular dependency update (#7171) 2025-02-04 12:27:22 +01:00
Piyush Bhaskar
68074723c4 chore(ui): amend color of the input length counter (#6990) 2025-02-04 12:09:32 +01:00
GitHub Action
52159ee647 chore(translations): auto generate values for languages other than english 2025-02-04 11:02:44 +00:00
Piyush Bhaskar
d697e5dc67 feat(ui): add keyboard shortcuts dialog to editor (#6628)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-04 12:01:04 +01:00
brian.mulier
21733d8497 fix(ui): null-safe search filters 2025-02-04 11:40:44 +01:00
rajatsingh23
0501d29255 chore(ui): show each plugin deprecation warning in new line (#6839)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-02-04 11:22:19 +01:00
Loïc Mathieu
560703fde4 fix(core): retry flaky test AbstractRunnerTest.restartFailedThenFailureWithGlobalErrors
This test is flaky on CI but never locally even with 100 repetitions.
2025-02-04 10:38:42 +01:00
Loïc Mathieu
671eb2b57e feat(jdbc-*): delete subflow_executions table
Fixes #6831
2025-02-04 10:34:39 +01:00
Miloš Paunović
5cc30558c2 fix(ui): amend pagination on namespace flows listing (#7163) 2025-02-04 10:18:04 +01:00
Loïc Mathieu
5a46204394 chore(core): small perf improvements to MapUtils 2025-02-04 10:06:58 +01:00
Ludovic DEHON
c918276103 fix(core): process runner are not serialized correctly on worker
close #7053
2025-02-03 21:27:04 +01:00
YannC
04dd038b0f feat(core): new Publish task for metrics (#7122)
* feat(core): new Publish task for metrics

* fix(): review fixes
2025-02-03 16:37:16 +01:00
Bart Ledoux
1bbe48fe5b fix: bring back hover in main menu 2025-02-03 15:40:12 +01:00
Bart Ledoux
9499ee2c27 fix: setup docId for blueprints 2025-02-03 15:15:34 +01:00
Piyush Bhaskar
05bbaa4f00 fix(ui): Custom Dashboard name overflows. (#7124)
* fix(ui): Custom Dashboard name overflows.

* fix(ui): avoid dashboard button being too long

---------

Co-authored-by: YannC <ycoornaert@kestra.io>
2025-02-03 14:37:02 +01:00
brian.mulier
fa5ef3b4c6 fix(ui): switching from custom Flow blueprints tab to dashboard was not working 2025-02-03 14:00:13 +01:00
Miloš Paunović
e927a1f784 fix(ui): get the string fields in no code to use editor and have auto completion back (#7150) 2025-02-03 12:19:31 +01:00
dependabot[bot]
36306495e4 build(deps): bump org.owasp.dependencycheck from 12.0.1 to 12.0.2
Bumps org.owasp.dependencycheck from 12.0.1 to 12.0.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 12:18:02 +01:00
MilosPaunovic
594d005168 chore(ui): properly pass a prop related to saved searches 2025-02-03 11:52:40 +01:00
Miloš Paunović
c992496fb0 feat(ui): multiple improvements of no code editor (#7146)
* refactor(ui): prevent multiple warning in console by adding inheritAttrs properly

* chore(ui): make plugin selector field not clearable

* feat(ui): allow re-ordering of array items

* fix(ui): remove concurrency when limit set to 0
2025-02-03 11:35:03 +01:00
Bart Ledoux
e15eb55877 fix: sidemenu bring back the gray hover 2025-02-03 11:33:20 +01:00
Bart Ledoux
85ebf49b68 fix: enterprise edition tag in light mode 2025-02-03 11:30:48 +01:00
dependabot[bot]
3a0beabe4f build(deps): bump com.gradleup.shadow from 8.3.5 to 8.3.6
Bumps [com.gradleup.shadow](https://github.com/GradleUp/shadow) from 8.3.5 to 8.3.6.
- [Release notes](https://github.com/GradleUp/shadow/releases)
- [Commits](https://github.com/GradleUp/shadow/compare/8.3.5...8.3.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 11:28:29 +01:00
dependabot[bot]
d769b7aad7 build(deps): bump flyingSaucerVersion from 9.11.2 to 9.11.3
Bumps `flyingSaucerVersion` from 9.11.2 to 9.11.3.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.11.2 to 9.11.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.11.2...v9.11.3)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.11.2 to 9.11.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.11.2...v9.11.3)

---
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-02-03 11:28:22 +01:00
dependabot[bot]
f1f0d31864 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.33.9 to 0.33.11.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.33.9...v0.33.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 11:26:57 +01:00
dependabot[bot]
bd0e4a5f48 build(deps): bump com.azure:azure-sdk-bom from 1.2.30 to 1.2.31
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.30 to 1.2.31.
- [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.30...azure-sdk-bom_1.2.31)

---
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-02-03 11:11:33 +01:00
dependabot[bot]
d50f631fb6 build(deps): bump software.amazon.awssdk:bom from 2.30.6 to 2.30.11
Bumps software.amazon.awssdk:bom from 2.30.6 to 2.30.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-02-03 11:09:32 +01:00
yuri
26c15a444d fix(ui): amend log lines in Firefox (#7133) 2025-02-03 10:18:19 +01:00
Bart Ledoux
97d12f9bc3 chore: add a test for firefox weird wrap 2025-02-03 10:15:53 +01:00
yuri1969
ae05de4a1c fix(cli): print help on missing parameters
Missing required positional parameters caused just a stacktrace print.

Now such cases print the error message acompanied by command's help.

Examples:

* `./kestra flow namespace update`
* `./kestra flow dot`
2025-02-03 10:06:48 +01:00
yuri1969
625135959c chore(core): fix various compilation warnings
Fixed clear Java compilation warnings.
2025-02-03 09:36:50 +01:00
Loïc Mathieu
e6827f2736 fix(core): remove the dynamic property patterns 2025-02-03 09:31:32 +01:00
Anna Geller
91bf50e837 Update dashboard_home.md 2025-02-02 14:11:14 +01:00
Piyush Bhaskar
64c8e0295c feat(ui): Add a link to the filtered Executions table. (#7129) 2025-02-01 23:01:02 +01:00
brian-mulier-p
1565f3361a fix(ui): restore namespace filter manual typing & various improvements (#7127) 2025-02-01 10:08:14 +01:00
Florian Hussonnois
e2b67f253a ci: fix release workflows 2025-01-31 19:34:18 +01:00
brian.mulier
db0422b142 chore(deps): bump ui-libs to v0.0.125 2025-01-31 18:13:48 +01:00
Nicolas K.
b1b80acbca feat(build): add script to makefile (#7125)
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>
2025-01-31 16:34:11 +01:00
Barthélémy Ledoux
4f9b7f7417 fix: make table links primary instead of purple (#7106) 2025-01-31 16:23:05 +01:00
Barthélémy Ledoux
83c7b2e663 fix: use the proper variable for select header in table (#7107) 2025-01-31 16:22:43 +01:00
GitHub Action
dee76c038a chore(translations): auto generate values for languages other than english 2025-01-31 12:51:00 +00:00
Miloš Paunović
310210286d feat(ui): add finally block to no code editor (#7123) 2025-01-31 13:49:56 +01:00
Florian Hussonnois
555b769aa2 fix(ci): update scripts/workflows for plugins 2025-01-31 12:05:05 +01:00
YannC
e527f0133a fix(ui): Remove useless double click row action
close #7000
2025-01-31 11:57:18 +01:00
Bart Ledoux
631a016e06 fix: avoid clearing selected value on every error
closes #7115
2025-01-31 11:48:49 +01:00
Bart Ledoux
3a8b24edae fix: remove Labels tag type warning 2025-01-31 11:19:15 +01:00
Bart Ledoux
65dd4f9fd6 fix: remove FE warnings on flow edition 2025-01-31 11:17:34 +01:00
Bart Ledoux
a4dcb8dcd6 fix: protect axios JSON parsing 2025-01-31 11:08:33 +01:00
Miloš Paunović
00aa28fc41 feat(ui): allow task re-ordering from no code editor (#7120) 2025-01-31 10:55:05 +01:00
Bart Ledoux
3c7e26c88b build: prevent corepack crash 2025-01-31 10:02:27 +01:00
Loïc Mathieu
4e753c7b98 fix(core): retry flaky test TimeoutTest.timeout()
As its failure cannot be reproduced locally even with 100 repetitions, there is no other choice than retrying it.
2025-01-31 09:47:00 +01:00
Bart Ledoux
1fc0b21071 fix: make sure normal single line table dont' push the build #7018 2025-01-30 22:23:25 +01:00
Bart Ledoux
f17b5802b5 fix: plugin header icon for ticket #4252 2025-01-30 22:22:04 +01:00
Barthélémy Ledoux
5389ec78a1 fix: use the new charts in the flows page (#6970) 2025-01-30 21:24:23 +01:00
Loïc Mathieu
6190d91134 fix(core): subflow labels must not be overriden by parent flow ones 2025-01-30 17:18:28 +01:00
Loïc Mathieu
96f4466f1d fix(cli): retry flaky test FlowCreateOrUpdateCommandTest.runWithDelete.
Adding a retry because it cannot be reproduce to fail locally even with 100 repetitions.
2025-01-30 17:14:01 +01:00
Ludovic DEHON
6ee0e86ca3 fix(core): http request with head and 404 and sending the wrong exception
close #4658
2025-01-30 17:04:51 +01:00
Loïc Mathieu
db4f186bdc fix(core): retry flaky test AbstractRunnerTest.multipleConditionTriggerFailed()
As the failure cannot be reproduce locally even with 100 repetitions of the test.
2025-01-30 16:43:50 +01:00
Loïc Mathieu
9b2c4c9a13 fix(core): subflow validation didn't work anymore 2025-01-30 16:17:30 +01:00
Bart Ledoux
7a37a950bf chore: update palette 2025-01-30 15:58:01 +01:00
Barthélémy Ledoux
a7df59c8bf feat: show a lock on EE only pages (#7093) 2025-01-30 15:54:23 +01:00
Miloš Paunović
5b6fbe9609 feat(ui): improve the task array component (#7095)
* feat(ui): improve the task array component

* chore(ui): replace existing task on editing during creation instead of re-adding them
2025-01-30 14:25:30 +01:00
Florian Hussonnois
d80de4410d fix(ui): fix missing param kind for blueprint in flow editor (#7087)
fix: #7087
2025-01-30 14:16:19 +01:00
Bart Ledoux
0e09f6821c fix: transfer utm parameters correctly 2025-01-30 12:48:53 +01:00
Bart Ledoux
157566300d fix: unlock audit logs in execution 2025-01-30 12:43:54 +01:00
AJ Emerich
e1a4f2e2fc fix(docs): remove custom dashboard website component
https://github.com/kestra-io/kestra/issues/7085
2025-01-30 12:13:55 +01:00
Miloš Paunović
cd822bd349 chore(ui): properly check the existence of fields inside schema
* chore(ui): remove unnecessary binding of listeners

* chore(ui): check the existence of fields
2025-01-30 11:41:15 +01:00
Ludovic DEHON
84447fd428 feat(ui): display attempts status on taskrun on left
close #7030
2025-01-30 11:39:22 +01:00
Miloš Paunović
78060ec2f8 chore(ui): move apps link in left menu just below the flows (#7063) 2025-01-30 11:34:10 +01:00
Miloš Paunović
646c8fa773 fix(ui): amend no code editor breadcrumbs issue (#7054)
* chore(ui): task array component to have margins between lines

* fix(ui): amend no code editor breadcrumbs issue
2025-01-30 11:33:57 +01:00
Bart Ledoux
7a299e51f8 fix: remove some warnings 2025-01-30 11:10:44 +01:00
Bart Ledoux
accbafe132 fix: remove the topbar from namepasce/flows 2025-01-30 11:10:32 +01:00
Bart Ledoux
4915465573 fix(demo): make button clickable with utm link 2025-01-30 11:09:39 +01:00
Bart Ledoux
4234c76b03 build: try and fix FE CI 2025-01-30 10:56:32 +01:00
Loïc Mathieu
03caf38251 fix(cli): repeate flaky tests FileChangedEventListenerTest
This is inherently racy as it's async and watch the filesystem which cannot be done reliabily.
2025-01-30 10:55:17 +01:00
Loïc Mathieu
1931300e98 chore(deps): downgrade Protobuf to 3.25.5
3.25.6 is not compatible with 3.25.5 and Orc still uses 3.25.5
2025-01-30 10:40:43 +01:00
Miloš Paunović
450310b6a5 feat(ui): multiple improvements of no code editor (#7076)
* fix(ui): allow creation of multiple tasks from the no code editor

* chore(ui): make input text be of textarea type for resizability

* chore(ui): allow to add task from topology either before or after the target one
2025-01-30 10:31:09 +01:00
Loïc Mathieu
2777b34385 fix(script): AbstractExecScript.injectDefaults should throw IllegalVariableEvaluationException 2025-01-30 09:57:51 +01:00
Florian Hussonnois
d4d8e326e4 ci: fix workflow docker for all plugins 2025-01-29 17:45:50 +01:00
Florian Hussonnois
fde739a3be ci: fix workflow docker 2025-01-29 17:35:24 +01:00
Florian Hussonnois
f96cbf1ad3 ci: update workflow docker 2025-01-29 17:28:31 +01:00
Florian Hussonnois
84a30d4002 ci: update workflow docker 2025-01-29 17:25:42 +01:00
Loïc Mathieu
6afdbb01fa fix(core): restartForEachItem() is flaky
With this test change, running 100 tests with MySQL pass!
2025-01-29 17:10:50 +01:00
Barthélémy Ledoux
b91336f446 fix: color of tags in executions list (#7035) 2025-01-29 16:57:47 +01:00
Bart Ledoux
f1b2940652 fix: remove default variables for box-shadow 2025-01-29 16:56:22 +01:00
Barthélémy Ledoux
75b8b4a483 fix: use proper css variables for table colors (#7049)
* fix: use proper css variables for table colors

* update ui-libs
2025-01-29 16:54:29 +01:00
Barthélémy Ledoux
c9cb2593bc chore: update "cluster" into "instance" in side menu (#6996)
* chore: update "cluster" into "instance" in side menu

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2025-01-29 16:51:52 +01:00
Barthélémy Ledoux
e23f34e53f fix(styles): remove background color from edit buttons (#7037) 2025-01-29 16:51:28 +01:00
Barthélémy Ledoux
2461e8cda9 feat: add a shadow to cards (#7038) 2025-01-29 16:50:08 +01:00
Bart Ledoux
b8fac95e1e fix: namespaces should have the card background
closes #6828
2025-01-29 16:48:48 +01:00
YannC
d17fe2548a fix(ui): dynamic format date
close #7015
2025-01-29 15:55:57 +01:00
YannC
b86b4bb160 feat(webserver): if no date provided for dashboard, then use default timewindow 2025-01-29 15:55:57 +01:00
Loïc Mathieu
64108ae24d chore(deps): downgrade protobug
Orc uses an older version.
And probably also other libs that we're using are still in 3.x
2025-01-29 15:51:48 +01:00
brian.mulier
8d00c8a557 feat(ui): don't show deprecated tasks in the plugins list
closes #4526
2025-01-29 15:42:22 +01:00
Loïc Mathieu
07dfaada9c fix(cli): flow watcher should compute plugin defaults
fixes #6908
2025-01-29 15:42:12 +01:00
Florian Hussonnois
0b82b25a48 chore(ci): update release workflows 2025-01-29 15:10:45 +01:00
Florian Hussonnois
5c8c2a5c42 chore(version): update snapshot version 'v0.22.0-SNAPSHOT'. 2025-01-29 14:27:00 +01:00
Florian Hussonnois
f4fdfc2509 chore(version): update to version 'v0.21.0-rc0-SNAPSHOT'. 2025-01-29 14:26:54 +01:00
Bart Ledoux
6dfa08af80 fix: label colors in executions list 2025-01-29 14:09:23 +01:00
Florian Hussonnois
dd8a45f429 chore: remove plugin-langchain 2025-01-29 13:59:57 +01:00
YannC
95ea6536c0 fix(ui): better inputs validation for backfill
close #7008
2025-01-29 13:51:57 +01:00
YannC
f1e2eea13d fix(): Handle correctly group by date field type (#7033)
close #6977
2025-01-29 13:07:12 +01:00
YannC
0661899e46 feat(ui): added Dashboards icons
close #7032
2025-01-29 11:51:02 +01:00
Bart Ledoux
a8ef04b03c fix: realign vue tour ui element for onboarding
closes #7010
2025-01-29 11:29:35 +01:00
Loïc Mathieu
3e8d32cfca fix(script): targetOS must be rendered 2025-01-29 11:03:32 +01:00
Loïc Mathieu
c5e7b42819 fix(script): injectDefault need the runContext
Otherwise you cannot render dynamic properties inside it
2025-01-29 11:03:32 +01:00
Loïc Mathieu
afabdf883e feat(core): remove deprecated properties and reduce duplication 2025-01-29 11:03:32 +01:00
brian.mulier
b846f11b3d fix(core): properties as map is now working properly with expression within base maps 2025-01-29 11:03:32 +01:00
Bart Ledoux
061e4f5ec2 fix: wrong title for apps page 2025-01-29 11:01:31 +01:00
Bart Ledoux
a10f65c1d5 fix: various fixes for the empty pages 2025-01-29 11:00:44 +01:00
Miloš Paunović
815467ec61 feat(ui): multiple improvements of no code editor (#7028)
* chore(ui): properly handle metadata inputs adding and removal

* feat(ui): make sure plugin documentation is properly updated on task selection
2025-01-29 10:56:08 +01:00
brian.mulier
1a23df3a75 fix(cli): doc generation failure handling to avoid infinite wait 2025-01-29 10:37:24 +01:00
Nicolas K.
8f02c39cd1 fix(core): catch linkageError when a class in already in classpath (#7029)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-01-29 10:36:35 +01:00
Bart Ledoux
966b8fb3a3 feat: add gradient animation on enterprise edition 2025-01-29 10:31:11 +01:00
Bart Ledoux
4375dc3871 feat: add enterprise edition empty to flow edition audit logs 2025-01-29 10:24:36 +01:00
Bart Ledoux
80d1f2d6ca fix: align the flare regardless of language 2025-01-29 10:24:36 +01:00
Florian Hussonnois
1de2a3bdbc fix(core): add de app block to plugin controller (kestra-io/kestra-ee#2773) 2025-01-29 10:17:18 +01:00
Ludovic DEHON
3194a89264 feat(ui): add quick theme switcher 2025-01-29 00:00:30 +01:00
Bart Ledoux
48427f1855 fix: set docId for namespace demo 2025-01-28 21:46:44 +01:00
brian.mulier
a9f36dd47d chore(deps): bump ui-libs to 0.0.119 2025-01-28 21:42:29 +01:00
Bart Ledoux
b8bc50f96f fix flare effect 2025-01-28 21:07:50 +01:00
Rajat Singh
e4016ebb76 fix(ui): easier gantt painting handling
closes #6913
2025-01-28 21:05:37 +01:00
Bart Ledoux
3a01a44b2a fix: debouncing of input validation 2025-01-28 20:59:03 +01:00
Bart Ledoux
34247a9717 fix: ee empty pages background and add flare
closes #2775
2025-01-28 20:52:50 +01:00
GitHub Action
9c56ffa912 chore(translations): auto generate values for languages other than english 2025-01-28 17:46:50 +00:00
Barthélémy Ledoux
64a497490c feat: add demo page for EE only features (#7003)
* update errors file

* feat: add IAM page

* add layout page and empty template

* feat: tenants demo page

* refactor: store context state in vuex

* feat: make docs open automagically

* feat: add missing admin empty pages

* chore: update "cluster" into "instance" in side menu

* feat: add namespace empty pages + some placeholder text

* add custom blueprints empty page

* chore(translations): auto generate values for languages other than english

* fix a bunch of warnings

* fix blueprints title

* feat: add missing link to kestra apps

* chore(translations): auto generate values for languages other than english

* feat: marketing text

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
2025-01-28 18:39:33 +01:00
AJ Emerich
3a8007fba9 docs(custom-dashboard): update example to use metrics and logs (#7007) 2025-01-28 18:20:17 +01:00
brian.mulier
10d6ff8020 chore(deps): bump ui-libs 2025-01-28 17:16:53 +01:00
Loïc Mathieu
82150e6064 fix(core): Dashboard end date should apply to the execution start date
Otherwise you would not be able to have running executions.
It is aligned with what we do for the other dashboard / filter
2025-01-28 17:03:23 +01:00
YannC
035f6b3b69 fix(ui): remove console.log() 2025-01-28 16:38:55 +01:00
brian.mulier
7ec9f6c81d fix(ui): better handling of plugin type to display in doc from editor 2025-01-28 16:22:35 +01:00
YannC
49d64b7f84 fix(ui): better css with in editor doc for dashboard
close #6999
2025-01-28 16:04:38 +01:00
brian.mulier
dc13e9117d fix(ui): handle light theme properly in plugin doc
closes #6973
2025-01-28 15:39:52 +01:00
Florian Hussonnois
9d974ad845 fix(ui): fix blueprints 2025-01-28 15:27:12 +01:00
Loïc Mathieu
151d4d9da7 fix(core): use the MDC from the loggin context 2025-01-28 14:51:37 +01:00
Loïc Mathieu
3640b08634 fix(core): use DCL when creating the logger
Use Double Checked Locking (DCL) to construct the logger to avoid potential half backed logger creation.
2025-01-28 14:51:37 +01:00
Loïc Mathieu
c9095bd871 fix(core): reset the MDC when we clean the run context 2025-01-28 14:51:37 +01:00
YannC
fd4a51259c fix(ui): avoid monaco to show every words used as autocompletion when there is no suggestion 2025-01-28 14:20:04 +01:00
Miloš Paunović
3c478c73eb feat(ui): multiple improvements of no code editor (#6991)
* chore(ui): limit the width of no code editor to a third of the full width

* feat(ui): show only required task properties on top level, else under collapse
2025-01-28 14:19:30 +01:00
YannC
41e4abba77 fix(ui): rename cluster to instance
close #6992
2025-01-28 14:07:34 +01:00
Loïc Mathieu
32112d2ff2 feat(deps): add support for OpenTelemetry metrics 2025-01-28 13:31:46 +01:00
AJ Emerich
db84595bbd (docs): add custom dashboard in app documentation
close #6982
2025-01-28 11:01:09 +01:00
YannC
325c680947 fix(ui): missing image 2025-01-28 10:55:45 +01:00
brian.mulier
cf316eb837 fix(ui): better filtering for yamlUtils.extractFieldFromMaps 2025-01-28 10:36:06 +01:00
brian.mulier
0438fbff64 fix(ui): add log exporters to plugins
closes kestra-io/kestra-ee#2754
2025-01-28 10:36:06 +01:00
brian.mulier
16be38aaf8 fix(core): add log exporters to plugins
part of kestra-io/kestra-ee#2754
2025-01-28 10:36:06 +01:00
brian.mulier
94e42a9dcd fix(core): generate properly taskrunners and log exporters implementations in json schema after adding generic types
closes kestra-io/kestra-ee#2755
2025-01-28 10:36:06 +01:00
GitHub Action
32da58eeef chore(translations): auto generate values for languages other than english 2025-01-28 08:38:08 +00:00
YannC
5f8a453056 feat(ui): Better empty chart view + default view to documentation
relates to #6982
2025-01-28 09:37:37 +01:00
rajatsingh23
60f96dacff chore(ui): amend plus button action on flow editor topology (#6983)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-01-28 08:38:03 +01:00
GitHub Action
2bca260a38 chore(translations): auto generate values for languages other than english 2025-01-27 23:08:18 +00:00
YannC
82de9cbb96 feat(ui): Design change on dashboard creation (#6984)
* feat(ui): Design change on dashboard creation

close #6943

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2025-01-28 00:07:47 +01:00
brian.mulier
69b5093d66 feat(ui): don't load all revisions, optimize unnecessary calls and add back query params upon changing revisions
closes #6806
2025-01-27 19:28:29 +01:00
YannC
a6ffcf5be6 feat(core): Rename WaitFor task to LoopUntil (#6978) 2025-01-27 19:22:18 +01:00
Ludovic DEHON
a54a3f1f54 chore(deps): update all js deps 2025-01-27 19:16:44 +01:00
Ludovic DEHON
5268c793e1 fix(ui): use color for log on custom charts 2025-01-27 19:12:37 +01:00
GitHub Action
4aa0a57e0b chore(translations): auto generate values for languages other than english 2025-01-27 18:02:51 +00:00
Miloš Paunović
cdc1cceb34 feat(ui): multiple improvements of no code editor (#6981)
* feat(ui): introduced re-worked metadata inputs

* chore(ui): reset panel on each breadcrumb click

* chore(ui): improve styling of metadata inputs section

* chore(ui): improve the metadata inputs section
2025-01-27 19:02:11 +01:00
Ludovic DEHON
125a277aa5 fix(ui): better layout filters comparator 2025-01-27 18:49:28 +01:00
Ludovic DEHON
bcaa613f76 fix(ui): don't display max displayable since not relevant
close kestra-io/kestra-ee#1889
2025-01-27 18:14:28 +01:00
Ludovic DEHON
f1c5555f6e fix(ui): taskrun filters and new charts
close kestra-io/kestra-ee#2760
2025-01-27 18:08:28 +01:00
Ludovic DEHON
a69f8b94ff chore(ui): refactor the namespace flows 2025-01-27 17:43:12 +01:00
Florian Hussonnois
64dcc96497 build: add script and github workflow to tag all plugins 2025-01-27 17:00:03 +01:00
Bart Ledoux
1c08176c99 fix: use new color scheme for execution stats on flows list
related to #6175

better refactor to come later during cooldown
2025-01-27 16:21:10 +01:00
Loïc Mathieu
bd82f5e3b6 fix(core): ThresholdFilter is now stricly lower 2025-01-27 15:53:15 +01:00
Anna Geller
8ecba1b341 fix: Dashboards in plural (#6971)
* Update en.json

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2025-01-27 15:31:24 +01:00
dependabot[bot]
e94f795d17 chore(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.33.7 to 0.33.9.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.33.7...v0.33.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 15:19:02 +01:00
YannC
e0e7bd1323 fix(ui): remove dot from template 2025-01-27 15:17:58 +01:00
dependabot[bot]
4bf46464d5 chore(deps): bump org.jooq:jooq from 3.19.16 to 3.19.18
Bumps org.jooq:jooq from 3.19.16 to 3.19.18.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:55:25 +01:00
dependabot[bot]
3f94022ee9 chore(deps): bump software.amazon.awssdk:bom from 2.29.37 to 2.30.6
Bumps software.amazon.awssdk:bom from 2.29.37 to 2.30.6.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:53:08 +01:00
dependabot[bot]
8b2f2ce7af chore(deps): bump com.github.ben-manes.versions from 0.51.0 to 0.52.0
Bumps com.github.ben-manes.versions from 0.51.0 to 0.52.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:37:22 +01:00
dependabot[bot]
6bd0960356 chore(deps): bump com.google.guava:guava from 33.3.1-jre to 33.4.0-jre
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.3.1-jre to 33.4.0-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-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:36:46 +01:00
YannC
67920c6e5c feat(ui): make DashboardEdit.vue overrided components (#6954) 2025-01-27 14:36:22 +01:00
dependabot[bot]
3ce8903e10 chore(deps): bump nl.basjes.gitignore:gitignore-reader
Bumps [nl.basjes.gitignore:gitignore-reader](https://github.com/nielsbasjes/codeowners) from 1.9.0 to 1.10.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.9.0...v1.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:36:15 +01:00
dependabot[bot]
55b21d2697 chore(deps): bump org.assertj:assertj-core from 3.27.0 to 3.27.3
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.0 to 3.27.3.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.0...assertj-build-3.27.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:35:38 +01:00
dependabot[bot]
efa533daa1 chore(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.7.3 to 4.7.4.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.7.3...v4.7.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:35:13 +01:00
dependabot[bot]
ee687ffde3 chore(deps): bump com.github.oshi:oshi-core from 6.6.5 to 6.6.6
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.6.5 to 6.6.6.
- [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.6.5...oshi-parent-6.6.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:34:34 +01:00
dependabot[bot]
efee504468 chore(deps): bump protobufVersion from 3.25.5 to 4.29.3
Bumps `protobufVersion` from 3.25.5 to 4.29.3.

Updates `com.google.protobuf:protobuf-java` from 3.25.5 to 4.29.3
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

Updates `com.google.protobuf:protobuf-java-util` from 3.25.5 to 4.29.3

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:34:08 +01:00
dependabot[bot]
8e07b5b354 chore(deps): bump org.postgresql:postgresql from 42.7.4 to 42.7.5
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.4 to 42.7.5.
- [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.4...REL42.7.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:33:48 +01:00
dependabot[bot]
bf88ddb21b chore(deps): bump org.owasp.dependencycheck from 11.1.1 to 12.0.1
Bumps org.owasp.dependencycheck from 11.1.1 to 12.0.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:33:25 +01:00
dependabot[bot]
f494edb889 chore(deps): bump com.google.cloud:libraries-bom from 26.52.0 to 26.53.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.52.0 to 26.53.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.52.0...v26.53.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-01-27 14:33:01 +01:00
dependabot[bot]
14f35021c2 chore(deps): bump com.github.ben-manes.caffeine:caffeine
Bumps [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) from 3.1.8 to 3.2.0.
- [Release notes](https://github.com/ben-manes/caffeine/releases)
- [Commits](https://github.com/ben-manes/caffeine/compare/v3.1.8...v3.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 14:32:22 +01:00
YannC
a1a1fbc31a fix(ui): missing translations 2025-01-27 14:27:21 +01:00
Loïc Mathieu
2359c4f744 fix(core, jdbc): Count task 2025-01-27 13:21:58 +01:00
Miloš Paunović
1bcc22a861 feat(ui): multiple improvements of no code editor (#6951)
* chore(ui): persist change of editor type on each toggle

* chore(ui): remove topology-only view from editor
2025-01-27 12:07:55 +01:00
Ludovic DEHON
adb8d9a9d3 fix(ui): let filter dropdown fit width of the content 2025-01-27 12:01:40 +01:00
Ludovic DEHON
0a93b10a72 feat(ui): pretty layout for status on filters
relate to #5127
2025-01-27 12:01:40 +01:00
yuri
8361a206fa chore(cli): improve CLI help messages (#6920)
* chore(cli): improve CLI help messages

* Improved styling to make the help easily readable.
* Fixed various copy&paste issues.
* Improved wording a bit.

* Fix copy&paste
2025-01-27 11:55:54 +01:00
Loïc Mathieu
7cf4955814 feat(core, jdbc): change the state of a subflow restart parent execution 2025-01-27 11:29:17 +01:00
Loïc Mathieu
4e3ed33a48 feat(ui, webserver): rename "Change status" to "Change state" and enhance the infos 2025-01-27 11:29:17 +01:00
Loïc Mathieu
4f2d35fc4a feat(core): add system.restarted: true label when changing the status of a task 2025-01-27 11:29:17 +01:00
Florian Hussonnois
c52fdd064c fix(webserver): ensure queues are not closed in nioEventLoop 2025-01-27 11:21:53 +01:00
Ludovic DEHON
f8ff2e0204 fix(core): fix unit test on DocumentationGeneratorTest 2025-01-27 10:47:59 +01:00
Anna Geller
34751cfdd4 docs: add nested loop example (#6948) 2025-01-26 21:56:44 +01:00
Ludovic DEHON
4f96f81241 fix(ui): namepsace > blueprint display 404 page
close kestra-io/kestra#6917
2025-01-25 23:33:34 +01:00
Anna Geller
fedb388e53 fix: Return task docs 2025-01-25 12:31:25 +01:00
Bart Ledoux
c805dc490f fix: see all is-text button color
closes #6898
2025-01-25 11:47:46 +01:00
Bart Ledoux
2e23269a90 fix: update ui-libs for docs 2025-01-25 11:35:35 +01:00
GitHub Action
cb7ee6a0b2 chore(translations): auto generate values for languages other than english 2025-01-25 07:20:32 +00:00
Piyush Bhaskar
69dda0ea65 chore(ui): improvements of welcome page (#6938) 2025-01-25 08:19:47 +01:00
Ludovic DEHON
715226dee4 chore(deps): update all js deps 2025-01-24 23:38:13 +01:00
Ludovic DEHON
36675d90f4 feat(ui): new 404 page layout 2025-01-24 23:29:23 +01:00
YannC
5151f23cf5 feat(ui): improve custom dashboard access (#6940)
relates to kestra-io/kestra-ee#2372
2025-01-24 22:34:13 +01:00
Ludovic DEHON
17e0340ab4 fix(ui): invalid hover on left menu for white theme 2025-01-24 21:53:54 +01:00
Florian Hussonnois
3073d9e925 fix(script): update release-plugins 2025-01-24 21:46:53 +01:00
Florian Hussonnois
4d7d8e008a chore(script): update release-plugins to support pushReleaseVersionBranch 2025-01-24 21:44:12 +01:00
Florian Hussonnois
83e99edcff chore(build): fix release-plugins script 2025-01-24 21:04:49 +01:00
Florian Hussonnois
01e565f3cd chore(build): fix .plugins file 2025-01-24 21:04:49 +01:00
Miloš Paunović
87eb855ace chore(ui): start product tour by clicking on first card on welcome page (#6935) 2025-01-24 18:42:29 +01:00
Miloš Paunović
effb5a279b chore(ui): start product tour by clicking on first car on welcome page (#6934) 2025-01-24 18:13:34 +01:00
Miloš Paunović
460e037674 fix(ui): save content to proper file using the namespace file editor (#6931) 2025-01-24 17:27:36 +01:00
brian.mulier
275951011f fix(core): Flow equalsWithoutRevision don't use serialization to compare flows so that map orders don't matter
closes #6928
2025-01-24 17:00:47 +01:00
Florian Hussonnois
d79e40dd98 build: add new project properties for release 2025-01-24 16:55:28 +01:00
Miloš Paunović
aa22f5041c feat(ui): multiple improvements of no code editor (#6923)
* chore(ui): make sure to check if property exists

* chore(ui): prevent auto-focus of editor fields

* chore(ui): re-order the list of visible fields in the no code editor

* chore(ui): make concurrency field work in the main form

* chore(ui): initial work on passing component panel to store
2025-01-24 16:48:45 +01:00
brian.mulier
09ef115074 fix(ui): cleanup imports and get rid of some warnings 2025-01-24 12:38:25 +01:00
brian.mulier
ae408209fe fix(ui): more explicit else-if branches for switch view 2025-01-24 12:36:32 +01:00
brian.mulier
fccaef4622 fix(ui): remove some warnings about missing props for blueprints 2025-01-24 12:33:19 +01:00
Ludovic DEHON
6bc66d66ea fix(ui): left menu is blinking on blueprint page 2025-01-24 08:05:29 +01:00
Ludovic DEHON
ae2d55570f fix(ui): rollouver on side menu was blinking 2025-01-24 08:01:11 +01:00
Ludovic DEHON
c795f3756c fix(ui): add confirmation message for crud on custom dashboard
close kestra-io/kestra-ee#2468
2025-01-24 07:50:38 +01:00
Ludovic DEHON
a97448f19d fix(ui): proper log display without multiple line 2025-01-23 22:46:52 +01:00
Ludovic DEHON
fc84ee3e59 fix(ui): make disabled select less visible 2025-01-23 22:46:52 +01:00
Miloš Paunović
9501880044 feat(ui): improvements of no code editor (#6916)
* feat(ui): improve the one of task section

* chore(ui): change expected prop type to match what is sent

* chore(ui): allow number input fields to span full width

* chore(ui): remove disabled parameter from buttons which don't need it
2025-01-23 19:43:27 +01:00
Florian Hussonnois
9781ff1563 fix(ui): add missing use button into blueprin details 2025-01-23 19:08:22 +01:00
Ludovic DEHON
61e0668ad8 chore(cli): invalid description on worker thread 2025-01-23 18:37:08 +01:00
Ludovic DEHON
f08bd94d57 feat(ui): new gantt layout to display taskrun state & duration with also attempts one
close #6103
2025-01-23 18:37:08 +01:00
Florian Hussonnois
699e232dd6 fix(ui): fix use button for dashboard blueprint 2025-01-23 17:30:09 +01:00
Ludovic DEHON
c994762762 fix(ui): prevent responsive on monaco editor for diff
close #4777
2025-01-23 16:14:45 +01:00
YannC
0eb13ba433 fix(webserver): continue to warn, but do not return trigger with missing flow (#6905)
close #5998
2025-01-23 15:53:47 +01:00
Mathieu Gabelle
22157fd717 refactor: migrate plugin.core.log to dynamic properties (#6732) 2025-01-23 15:52:01 +01:00
yuri
0a047a7b75 fix(ui): amend flow concurrency overview
closes #6811
2025-01-23 15:48:48 +01:00
Florian Hussonnois
8e5ffe8355 fix(ui): fix blueprints use button 2025-01-23 15:39:55 +01:00
Miloš Paunović
204563530e feat(ui): improve the one of task section (#6903) 2025-01-23 15:07:05 +01:00
Miloš Paunović
132d70dadd feat(ui): add the ability to remove tasks and other items (#6902) 2025-01-23 13:54:10 +01:00
Florian Hussonnois
2e18c295ed fix(ui): fix multiple issues on blueprints 2025-01-23 13:36:34 +01:00
Miloš Paunović
4bb2fd50eb feat(ui): make the one of component work properly (#6900) 2025-01-23 13:14:48 +01:00
GitHub Action
c6d69762c4 chore(translations): auto generate values for languages other than english 2025-01-23 11:52:03 +01:00
Florian Hussonnois
ad719a97f9 feat: add support for multiple blueprint kinds
related-to: kestra-io/kestra-ee#2479
2025-01-23 11:52:03 +01:00
Miloš Paunović
6b4e1cac94 fix(ui): properly handle file explorer visibility in namespace files section (#6895) 2025-01-23 11:06:01 +01:00
brian.mulier
0ddf9d6001 chore(deps): bump @kestra-io/ui-libs to 0.0.114 2025-01-23 10:06:50 +01:00
Shruti Mantri
e9e853cdfc fix: add title to TemplatedTask (#6891)
* fix: add title to TemplatedTask

* Update TemplatedTask.java

* Update core/src/main/java/io/kestra/plugin/core/templating/TemplatedTask.java

---------

Co-authored-by: Will Russell <will@wrussell.co.uk>
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
2025-01-23 10:03:18 +01:00
Miloš Paunović
bca1797321 chore(ui): make sure input pair component updates only what's needed (#6892) 2025-01-23 09:36:49 +01:00
brian.mulier
1b0ce4d6a3 feat(ui): new plugin doc redesign 2025-01-23 00:04:57 +01:00
Mathieu Gabelle
10bc70c858 chore(deps): upgrade bouncycastle to 1.80 (#6881) 2025-01-22 17:24:13 +01:00
YannC
2192ef3365 fix(): JsonSchema dashboard doc 2025-01-22 16:26:52 +01:00
Loïc Mathieu
116f59dc89 chore(deps): upgrade Micrometer to 0.14.3 2025-01-22 16:03:28 +01:00
Miloš Paunović
24f8afae82 feat(ui): re-work the task array field for the no code editor (#6885)
* chore(ui): make the task save button span fully

* chore(ui): make the task save button have the proper top margin

* feat(ui): re-work the task array field for the no code editor
2025-01-22 14:54:11 +01:00
Miloš Paunović
ad304e9d90 chore(ui): handle task dict type fields (#6884)
* chore(ui): rename the single namespace editor tab to files

* chore(ui): handle task dict type fields
2025-01-22 13:42:46 +01:00
Miloš Paunović
027cde4a21 fix(ui): amend namespace editor problem (#6883)
* chore(ui): make input number be full width

* chore(ui): wrap task object inside a form element

* fix(ui): amend namespace editor problem
2025-01-22 12:03:34 +01:00
Ludovic DEHON
1926ad5e0c fix(core): fromIon is reading only the first rows by default, adding a parameter to read all rows 2025-01-22 10:09:20 +01:00
Loïc Mathieu
e87b97a2e1 feat(*): OpenTelemetry traces
Fixes #6149
2025-01-22 09:51:12 +01:00
Miloš Paunović
33308c49c8 chore(deps): regular dependency update (#6877) 2025-01-22 09:03:35 +01:00
GitHub Action
a011705728 chore(translations): auto generate values for languages other than english 2025-01-22 07:28:30 +00:00
Miloš Paunović
b823d9c28b feat(ui): improvements of no code editor (#6876) 2025-01-22 08:25:58 +01:00
Bart Ledoux
40c43256a6 fix: logs page redirect 2025-01-21 16:22:36 +01:00
Bart Ledoux
306d4ecd78 feat: simplify logs chunks by packaging markdown 2025-01-21 16:22:36 +01:00
YannC
db496a8faf fix(Count): fix Count task 2025-01-21 15:27:13 +01:00
Bart Ledoux
b542dda8e8 feat: export oss chunks of vite config 2025-01-21 14:27:30 +01:00
YannC
c337d55273 feat(core): Schema title annotation for Custom Dashboard Filter 2025-01-21 14:22:35 +01:00
Barthélémy Ledoux
f8b2056b3f fix: update the vite config to use the rollup dependencies properly (#6853)
* fix: update the vite config to use the rollup dependencies properly

* add comments
2025-01-21 14:33:52 +02:00
Ludovic DEHON
4d4963abd6 feat(tasks): introduce an Assert tasks 2025-01-21 10:25:36 +01:00
Ludovic DEHON
4d074cb052 feat(core): add a randomPort pebble function 2025-01-21 10:25:28 +01:00
Loïc Mathieu
01a77aff04 fix(core): randomInt receive a Long not an Integer 2025-01-21 10:00:16 +01:00
Shruti Mantri
f5bc5869e4 fix: correct the condition name (#6843) 2025-01-20 17:35:26 +00:00
Loïc Mathieu
1a130daa21 fix(core): Avoid double STRING schema type for types that resolves to a String
Fixes #6821
2025-01-20 17:11:33 +01:00
Piyush Bhaskar
b48c6c3dd4 chore(ui): amend flow export method (#6835) 2025-01-20 14:59:06 +01:00
Bart Ledoux
7e926fc8ec fix(sidebar): implement the _hover class in addition to hover pseudo class 2025-01-20 14:50:41 +01:00
Mathieu Gabelle
914bd94498 refactor: migrate plugin.core.namespace to dynamic properties (#6832) 2025-01-20 14:02:25 +01:00
Loïc Mathieu
02831295bf fix(core): deprecated allowFailed should not have any default
Fixes #6791
2025-01-20 13:56:11 +01:00
Shruti Mantri
4dee038374 fix: correct the description for DayWeek condition (#6834) 2025-01-20 12:43:27 +00:00
Mathieu Gabelle
25ca9f74e5 refactor: migrate plugin.core.log to dynamic properties (#6823) 2025-01-20 13:30:04 +01:00
Aabhas Sao
4b2c10d6e2 feat(core): validate in editor if subflow with namespace present (#6717)
* feat(core): validate in editor if subflow with namespace present

* fix(): added test + return all violations instead of only one

---------

Signed-off-by: Aabhas Sao <aabhassao0@gmail.com>
Co-authored-by: YannC <ycoornaert@kestra.io>
2025-01-20 11:39:34 +01:00
Bart Ledoux
05e5af73ab fix: color of active item in sidebar 2025-01-20 11:22:12 +01:00
Mathieu Gabelle
a6d746ae5a refactor: migrate package plugin.core.execution to dynamic properties (#6708)
migrate Count
migrate Fail
migrate PurgeExecutions
migrate Resume
2025-01-20 11:05:11 +01:00
Miloš Paunović
96780a9760 chore(ui): show status label on dialog 2025-01-20 10:49:25 +01:00
Barthélémy Ledoux
c5eef81a6e feat: various design fixes asked by nico (#6798) 2025-01-20 09:34:39 +01:00
dependabot[bot]
e36ee1d6ba chore(deps): bump katex from 0.16.20 to 0.16.21 in /ui (#6816)
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.20 to 0.16.21.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.20...v0.16.21)

---
updated-dependencies:
- dependency-name: katex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-18 08:36:56 +01:00
Anna Geller
aa869eba1d closes https://github.com/kestra-io/kestra/issues/6814 2025-01-17 21:06:51 +01:00
aeSouid
1ddb544c36 Plugin: Define the langchain4j ollama, openai & gemini plugins in the .plugin file list (#6813) 2025-01-17 18:30:14 +01:00
Florian Hussonnois
207e8c3a70 fix(core): fix some labels are lost when having same prefix key
This commit fix an issue where only a single system label was injected in the run context

fix: kestra-io/kestra-ee#2697
2025-01-17 17:12:03 +01:00
GitHub Action
e037e548b2 chore(translations): auto generate values for languages other than english 2025-01-17 14:12:29 +00:00
Miloš Paunović
d77cfe8ced fix(ui): improve the editing of labels and variables (#6810) 2025-01-17 15:11:53 +01:00
Miloš Paunović
9cd1e0c7b1 fix(ui): amend the ability to create tasks (#6808) 2025-01-17 13:28:39 +01:00
Miloš Paunović
969faba1f0 feat(ui): improvements of no code editor (#6804)
* chore(ui): enhance toggle button for switching between `YAML` and `No Code` editors

* chore(ui): remove the export flow button from main section

* chore(ui): remove the unused context menu options

* chore(ui): add margin after the last entry for variables and inputs

* chore(ui): only show save button on task creation if one is selected

* chore(ui): replace plugin default component from input to editor type

* chore(ui): replace retry and outputs component from input to editor type

* chore(ui): move all general properties to the top level
2025-01-17 13:17:37 +01:00
Bart Ledoux
7f048afca5 add full logline stories 2025-01-17 10:57:34 +01:00
Bart Ledoux
51088c819a fix logline css variables 2025-01-17 10:57:34 +01:00
Miloš Paunović
a9c43608ff fix(ui): properly encode text filter parameter to url string (#6803) 2025-01-17 08:54:07 +01:00
Bart Ledoux
960a1bba49 fix: reduce log borders on gantt chart logs 2025-01-16 15:57:36 +01:00
Ludovic DEHON
246602f9fd fix(core): ForEach failed with errors, finally and concurrency = 0 2025-01-16 15:48:02 +01:00
Bart Ledoux
979c131b99 fix: el-empty needed a backdrop 2025-01-16 15:23:49 +01:00
Miloš Paunović
52aa0d6487 chore(test): add required attributes for e2e test (#6797) 2025-01-16 15:22:05 +01:00
Bart Ledoux
f5dc67f0ef fix: update custom upload button 2025-01-16 15:10:11 +01:00
Ludovic DEHON
9a19c01087 fix(jdbc): summary count should be a prefix on the namespace 2025-01-16 15:09:49 +01:00
Ludovic DEHON
d3efcdd032 chore(deps): update testcontainers to 1.20.4 2025-01-16 14:39:49 +01:00
Ludovic DEHON
554ea5850e fix(ui): flows overview are not scoped to current flow
close #6778
2025-01-16 14:39:49 +01:00
rajatsingh23
b573f1679d chore(ui): change filter value by clicking on already selected one (#6705) 2025-01-16 12:40:03 +01:00
CoderKill
018afab378 fix(webserver): add check in file creation path for _flows* (#6228) 2025-01-16 12:06:45 +01:00
Saumya Gaur
a4cf1cd74f chore(ui): mark places where we need to replace old charts with the new ones (#6623) 2025-01-16 11:49:07 +01:00
GitHub Action
3435e345ed chore(translations): auto generate values for languages other than english 2025-01-16 10:19:01 +00:00
Piyush Bhaskar
595b94e2aa feat(ui): allow exporting the flow to yaml file (#6610)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2025-01-16 11:18:40 +01:00
Loïc Mathieu
b2c411956e fix(core): Property with default
Fixes #6744
2025-01-16 11:16:06 +01:00
Bart Ledoux
4c6f8bd906 fix: topology css issues 2025-01-16 11:13:45 +01:00
GitHub Action
46c3e3ff74 chore(translations): auto generate values for languages other than english 2025-01-16 10:03:06 +00:00
Hashim Khalifa
fb66d42376 chore(ui): add empty view on flow concurrency page (#6640)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-01-16 11:02:21 +01:00
Barthélémy Ledoux
4227e1d682 refactor: avoid usage of runtime template to smaller bundle (#6779) 2025-01-16 10:50:18 +01:00
Barthélémy Ledoux
106816bf37 feat: add a story for executions list (#6784) 2025-01-16 10:49:57 +01:00
Barthélémy Ledoux
f8279c6b01 fix: add ellipsis for Namespace charts (#6730) 2025-01-16 10:43:21 +01:00
MilosPaunovic
fdbe16387d chore(ui): amend dialog close button styling 2025-01-16 10:42:19 +01:00
Piyush Bhaskar
aa450d6e4b chore(ui): mark taskruns with multiple attemps in gantt view (#6721) 2025-01-16 10:40:50 +01:00
rajatsingh23
8b714f707b chore(ui): amend width of execute flow inputs section (#6720)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2025-01-16 10:00:24 +01:00
Miloš Paunović
8a3bb078b8 chore(deps): regular dependency update (#6790) 2025-01-16 09:08:49 +01:00
GitHub Action
3c6aa69808 chore(translations): auto generate values for languages other than english 2025-01-16 07:53:45 +00:00
Miloš Paunović
e5fc7d32b4 chore(translations): amend translation key/value pairs (#6788) 2025-01-16 08:53:20 +01:00
Ludovic DEHON
9f12f9a63b fix(core): flow should not continue tasks when having a finally 2025-01-15 21:51:47 +01:00
Ludovic DEHON
f1c147cc4b fix(core): parallel task should not resolved error and finally in parallel 2025-01-15 21:51:38 +01:00
Ludovic DEHON
45bd08c26e chore(deps): update common dependency 2025-01-15 18:37:17 +01:00
MilosPaunovic
33c5cb507a chore(ui): amend passing of disabled property to no code editor 2025-01-15 18:37:11 +01:00
Florian Hussonnois
7b0f2e9160 fix(jdbc): update test config for flaky test on liveness (#6656) 2025-01-15 18:29:53 +01:00
Miloš Paunović
821fd1219c feat(ui): introduce the revamped no code editor (#6787) 2025-01-15 18:28:20 +01:00
Florian Hussonnois
81a4e86452 fix(core): remove 64 characters limitation for displayName (#6470) 2025-01-15 18:28:01 +01:00
Florian Hussonnois
94545fe2f6 fix(jdbc): ensure JdbcIndexer is only closed once 2025-01-15 18:06:05 +01:00
Mathieu Gabelle
662ac61e34 refactor: migrate package plugin.core.templating to dynamic properties (#6775) 2025-01-15 15:18:31 +01:00
Mathieu Gabelle
c4ec56f1e7 refactor: migrate package plugin.core.storage to dynamic properties (#6770) 2025-01-15 10:34:16 +01:00
Mathieu Gabelle
ca8837f310 refactor: migrate package plugin.core.state to dynamic properties (#6755) 2025-01-15 09:44:17 +01:00
Barthélémy Ledoux
b3b3a5b85a fix: allow custom translations to be passed (#6752)
* feat: allow extra translation sources in i18n

* refactor(i18n): properly laod i18n translations (no more merge)

* update comments

* fix eslint
2025-01-15 09:32:09 +01:00
Loïc Mathieu
717d5560ad feat(webserver, ui): avoid cancelled SSE connection from following exec
Send a fake "start" event from the Execution following endpoint so that the UI didn't cancell it.

I'm not sure when the UI would cancel the SSE connection but it can ocurs if any of the view that opens an SSE connection are left but no event are received yet.
Sending a fake event immediatly lower the risk of occuring.
2025-01-15 09:25:15 +01:00
Ludovic DEHON
708c1127c9 chore(core): reduce log level of property validation 2025-01-15 08:43:34 +01:00
Ludovic DEHON
52aba32c14 fix(ui): missing icons for finally
relate to #5643
2025-01-14 17:00:31 +01:00
Bart Ledoux
fbfab90739 fix(#6745) vue flow needs a height on the container 🥸 2025-01-14 16:05:32 +01:00
Ludovic DEHON
e98543822c fix(core): graph on dag are not attaching finally at the end of the dag task 2025-01-14 14:00:53 +01:00
Mathieu Gabelle
daddcd4d50 refactor: migrate package plugin.core.debug to dynamic properties (#6697)
migrate Return task
migrate Echo task
migrate associated test using these tasks
2025-01-14 13:32:37 +01:00
Loïc Mathieu
f217d33768 fix(core): always close the queue after receive
May improve test flakyness
2025-01-14 11:54:04 +01:00
Loïc Mathieu
0c0ff37c69 fix(core, ui): send a "start" event to be sure the UI receive the SSE
The UI only store a reference to the logs SSE when receive the first event.
In case a flow didn't emit any log, or the logs tab is closed before any logs is emitted, the UI will not have any reference to the SSE so the SSE connection would stay alive forever.
Each SSE connection starts a thread via the logs queue, creating a thread leak.

Sending a first "start" event makes sure the UI has a reference to the SSE.
2025-01-14 09:39:58 +01:00
Ludovic DEHON
c73305921e fix(jdbc): batch query expand query and lead to overflow of metrics 2025-01-13 21:54:10 +01:00
Mathieu Gabelle
4de65e7a3d refactor: migrate plugin.core.output to dynamic properties
migrate OutputValues task
2025-01-13 18:07:57 +01:00
AJ Emerich
ac8a05cb35 chore(docs): split pause title and description (#6733)
close kestra-io/docs#2072
2025-01-13 17:13:05 +01:00
Ludovic DEHON
0d1710d0e6 feat(core): introduce an finally block on flow & flowable (#6686)
close #6649
2025-01-13 17:11:57 +01:00
Bart Ledoux
55b672033d fix: storybook - only i18nize once in preview 2025-01-13 14:32:07 +01:00
Mathieu Gabelle
f2e4a35313 refactor: address sonar issues 2025-01-13 13:08:27 +01:00
Mathieu Gabelle
d052a87c0b refactor: migrate package plugin.core.kv to dynamic properties
migrate Delete, Get, Set, GetKeys from KV to dynamic properties
2025-01-13 13:08:27 +01:00
Mathieu Gabelle
589638cc3d refactor: add @deprecated javadoc message : sonar 2025-01-13 12:56:06 +01:00
Mathieu Gabelle
a934414db4 refactor: migrate package plugin.core.http to dynamic properties
migrate Download task
migrate Request task
migrate Trigger task
migrate HttpConfiguration class
2025-01-13 12:56:06 +01:00
Bart Ledoux
e4698b0f10 fix: async docs were failing beause of issue in ui-libs MDC 2025-01-13 12:09:27 +01:00
Bart Ledoux
6691575fa0 fix: improve storybook styles 2025-01-13 12:06:29 +01:00
Bart Ledoux
2a56ba88c4 chore: remove an unwanted comment 2025-01-13 11:39:25 +01:00
AJ Emerich
828d9a789f add taskrun.iteration (#6723)
Add mention of taskrun.iteration like in ForEachItem
2025-01-13 11:15:44 +01:00
Bart Ledoux
987f4914a6 keep active state on hover 2025-01-13 10:00:22 +01:00
Bart Ledoux
6a5ec8dcfc style(ui): update SideBar link styles to match design 2025-01-10 17:39:00 +01:00
Barthélémy Ledoux
8d57f8f0b2 refactor: add async loading for better performance (#6643)
Co-authored-by: YannC <37600690+Skraye@users.noreply.github.com>
2025-01-10 17:26:29 +01:00
AJ Emerich
f8a7299daf Add description to Write.java (#6710)
* Add description to Write.java

* fix java compile error

Add comma
2025-01-10 17:23:44 +01:00
Nicolas K.
c32d158ab6 feat(core-ee): change log shipper properties names and use KV instead of state store (#6709)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-01-10 17:05:24 +01:00
Florian Hussonnois
159927d39e fix(ui): fix reset of flow import input 2025-01-10 16:46:51 +01:00
Florian Hussonnois
17120cff8e refactor(webserver): move method to read source file/archive to HasSource interface 2025-01-10 16:46:51 +01:00
Florian Hussonnois
16a7e06c56 chore(ui): add utility method extratFileNameFromContentDisposition
Changes:
* add a new utility method to extracts a filename from an HTTP 'Content-Disposition` header.

part-of: kestra-io/kestra-ee#2412
2025-01-10 16:46:51 +01:00
Florian Hussonnois
d96742d7dd refactor(core): add new interface HasSource
Changes:
* add new interface HasSource
* move method for zipping flows to HasSource

part-of: kestra-io/kestra-ee#2412
2025-01-10 16:46:51 +01:00
Loïc Mathieu
1c705e2d7b fix(core): If with only disabled tasks
Fixes #6658
2025-01-10 15:26:49 +01:00
Bart Ledoux
bab508a51e update color palette 2025-01-10 15:21:06 +01:00
Loïc Mathieu
b9a74b8759 fix(jdbc): resubmitting a worker job running should create a new attempt 2025-01-10 09:54:11 +01:00
YannC
3c19c910aa fix(*): create real chart preview endpoint 2025-01-10 08:39:28 +01:00
Nicolas K.
4ab8748f4c feat(core-ee); change log record model and don't use opentelemetry an… (#6700)
* feat(core-ee); change log record model and don't use opentelemetry anymore

* fix(core): unit test

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-01-09 18:08:01 +01:00
Barthélémy Ledoux
cbff628f23 Implement stylelint and refactor CSS variables for consistency (#6645) 2025-01-09 17:28:19 +01:00
Nicolas K.
6e7df7f25c fix(core): NPE in ExecutableUtils (#6699)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-01-09 17:09:47 +01:00
Nicolas K.
2f4bb05561 feat(core-ee): remove pagination from fetchAsync and use logRecord attributes (#6698)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-01-09 16:44:03 +01:00
brian.mulier
063ac10099 chore(deps): bump micronaut-platform to 4.7.3 2025-01-09 13:25:48 +01:00
Ludovic DEHON
841f32a9f6 fix(core): plugin default was not validating correctly boolean methods 2025-01-09 12:56:55 +01:00
AJ Emerich
7afba75ed8 update Exit.java task description (#6695) 2025-01-09 12:18:46 +01:00
YannC
501a5d3ff4 fix(core): handle runIf inside workingDirectory (#6690)
close #6689
2025-01-09 11:40:49 +01:00
YannC
1b615c97b1 fix(core): Continue WaitFor loop if tasks are not failed (#6572)
close #6031
2025-01-09 11:40:34 +01:00
Bart Ledoux
9b59c75d2a refactor: remove bootstrap color from sidebar 2025-01-09 11:11:06 +01:00
Bart Ledoux
035a27c915 refactor: remove spacer form sidebar 2025-01-09 11:02:15 +01:00
Bart Ledoux
86cb11fb81 fix: logline when there is a {{ 2025-01-09 10:58:39 +01:00
Bart Ledoux
20276a9e7a refactor: removed unused css in sidebar 2025-01-09 10:39:51 +01:00
Loïc Mathieu
a994120d36 feat(core): add outputs and ID to log shippers 2025-01-09 09:39:52 +01:00
Bart Ledoux
e09e21633a fix(ui): update CSS variable for log icon color in LogLine component 2025-01-08 23:19:28 +01:00
Bart Ledoux
a8be084e79 feat(ui): add status remapping to status component to match the real name of the CSS vars 2025-01-08 23:05:05 +01:00
Malay Dewangan
1476064b0a feat: add support for deleting empty namespace parent folders (#5699)
* feat(namespace): add support for deleting empty parent folders

* fix: add builder default for deleteparentfolder key

* Update DeleteFiles.java

* chore(test): missing tests

* chore(test): missing tests

---------

Co-authored-by: YannC <ycoornaert@kestra.io>
2025-01-08 17:20:09 +01:00
GitHub Action
4e543a29ca chore(translations): auto generate values for languages other than english 2025-01-08 16:42:05 +01:00
Loïc Mathieu
b3ed3d8dfb feat(core, ui, webserver): add replay system labels
- Add system.replay to executions that are a replay
- Add system.replayed to executions that have been replayed

Fixes #6682
2025-01-08 16:42:05 +01:00
Nicolas K.
132d4541c2 feat(core): add log record serialization (#6683)
* feat(core): add log record serialization

* feat(core): add serialization to log record

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-01-08 15:43:45 +01:00
brian.mulier
6f43ab1443 chore(deps): bump ui-libs 2025-01-08 15:05:41 +01:00
Bart Ledoux
155f9b9d76 fix: fix no execution layout 2025-01-08 15:01:32 +01:00
Loïc Mathieu
c5e23d43df feat(core): validate tasks and triggers with dynamic properties 2025-01-08 14:24:11 +01:00
nKwiatkowski
81f08f00c6 feat(core): add partial fix to micronaut hibernate validator and ValueExtractor 2025-01-08 14:24:11 +01:00
YannC
35ffe7e635 fix(webserver): reset correctly nextExecutionDate when enabling schedule
close #6681
2025-01-08 13:54:14 +01:00
GitHub Action
a1238a9473 chore(translations): auto generate values for languages other than english 2025-01-08 12:10:20 +00:00
YannC
6c205ee1b6 feat(*): fixes and improvements for custom dashboard (#6684)
* feat(*): fixes and improvements for custom dashboard

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2025-01-08 13:09:36 +01:00
Ludovic DEHON
47d2b09382 chore(test): minor pebble error 2025-01-08 09:41:57 +01:00
Ludovic DEHON
f2a3ad557a fix(core): worker log are displaying the wrong state on terminated tasks 2025-01-08 08:55:09 +01:00
Ludovic DEHON
317284dfee test(core): add configurable timeout on ExecuteFlow 2025-01-07 19:56:59 +01:00
Ludovic DEHON
c265b49a8e feat(core): add taskRunner output on ScriptOutput to get detailled information on underlying taskrunner 2025-01-07 17:57:18 +01:00
Aabhas Sao
111493c5c8 fix(core): correctly displayed errors icons (#6654)
close #5643
2025-01-07 15:41:35 +01:00
Ludovic DEHON
4fa6adc9c9 chore(core): move builder default on TableColumnDescriptor 2025-01-07 15:32:07 +01:00
Ludovic DEHON
bccd95345f test(core): request test use an internal https server to be stable
self-signed.badssl.com is not working anymore
2025-01-07 14:39:30 +01:00
GitHub Action
4dbf938de3 chore(translations): auto generate values for languages other than english 2025-01-07 11:47:35 +01:00
Loïc Mathieu
576e023d90 feat(ui): add an alert block for restarted execution 2025-01-07 11:47:35 +01:00
Loïc Mathieu
1e36d1eb2a feat(core): restarting Subflow
Fixes https://github.com/kestra-io/kestra-ee/issues/1399
2025-01-07 11:45:10 +01:00
Nicolas K.
a5469c3b4e feat(core): add run context to log shipper (#6651)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-01-07 11:31:02 +01:00
Bart Ledoux
869c6877b7 fix: set the flowEditor docId on new 2025-01-06 22:19:06 +01:00
Ludovic DEHON
d67d44b93a fix(core): http proxy was not used 2025-01-06 21:55:21 +01:00
Nicolas K.
75f55c23ee feat(core-ee): add log shipper first implementation (#6596)
* feat(core-ee): add log shipper first implementation

* fix(core): change state condition on asynchronous test

* fix(core): exit test shouldExitAndKillTheExecution has 3 execution killed

* fix(core): flaky runner test

* clean(core-ee): add documentation and use a list of log shippers in log synch

* fix(core-ee): do log synch tests for each bdd

* clean(test): move the runner test abstraction to core to use it for jdbc and kafka

* fix(test): fix broken tests, and correct an ELS log search bug

* fix(test): flacky tests on kafka runner

* feat(core): add log repository method to have a flux of log entry

* fix(mySql): change log repository fetch asynch

* feat(core): change logShipper to return void

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2025-01-06 17:47:11 +01:00
Loïc Mathieu
9901470b74 feat(*): maintenance mode
Closes #2992
2025-01-06 17:45:10 +01:00
Bart Ledoux
73c100ce1b fix: add proper typing for vuex 2025-01-06 14:37:35 +01:00
YannC
54b7a29a55 feat(): jdbc custom dashboard implementation (#6607)
* WIP: commit to be edited

* feat(*): finished implementation for custom dashboard in JDBC

* chore: disable metricRepository all() test because of leap year

* chore(): PR review
2025-01-06 14:02:53 +01:00
Ludovic DEHON
622f158bd0 feat(webserver): add a configuration to change app html title
close kestra-io/kestra-ee#621
2025-01-06 11:33:15 +01:00
YannC
2740137a80 fix(): ensure object sent is formData (#6639) 2025-01-06 11:20:59 +01:00
yuri1969
2307b2452b chore(build): increase Gradle memory limits
By default the daemon is limited to 512MiB heap. Increasing that to 2GiB
shaved around 10sec off the full build.
2025-01-06 09:12:35 +01:00
Loïc Mathieu
92ff557514 chore(core): tiny perf improvement in MapUtils.merge()
MapUtils.merge() un-necessary clone the map when there is only one map that is not-null and not-empty which is not needed as the map is not modified but returned immediatly.
2025-01-03 19:33:06 +01:00
Loïc Mathieu
aa9af94c14 feat(core): add taskrun.iteration inside Pebble variables
Add iteration index for ForEach and other looping tasks
2025-01-03 18:55:29 +01:00
Bart Ledoux
0cdc6f062d fix: finish the overload of buttons 2025-01-03 17:53:13 +01:00
Ludovic DEHON
e8ee97e26d feat(script): add privileged flags to docker 2025-01-03 16:51:37 +01:00
Bart Ledoux
e1c202a3cb fix: more fixes on css variables 2025-01-03 16:14:03 +01:00
Loïc Mathieu
eaa72dde4e fix(core): multiple conditon tests are flaky
They often use 1s as the deadline /window which can be an issue if the second number increments during testing.

Fixes #6632
2025-01-03 15:16:54 +01:00
Loïc Mathieu
f12a0a0547 fix(core): path traversal guard 2025-01-03 12:24:40 +01:00
Bart Ledoux
e1987ed2e3 fix: element alert background 2025-01-03 12:01:29 +01:00
Bart Ledoux
50a9f6132d fix: select multiple choices icon color an shape 2025-01-03 11:49:59 +01:00
Bart Ledoux
5bec2fc069 fix: alert colors and place of figma theme 2025-01-03 11:35:43 +01:00
Bart Ledoux
68646b07a8 fix: fixes on select boxes 2025-01-03 11:15:34 +01:00
Loïc Mathieu
e5b0ff459a feat(core): add an audit log for executions created by a trigger
Fixes https://github.com/kestra-io/kestra-ee/issues/2427
2025-01-03 10:22:21 +01:00
Loïc Mathieu
409d78615b fix(core): ExitTest is flaky 2025-01-03 10:21:57 +01:00
Loïc Mathieu
b7f9a32015 fix(storage-local): path traversal guard should include File.separator
Today, we check that a file didn't contains '..' which is too aggressive, we should check that it didn't contains '../' or '..\' only.
2025-01-03 10:06:52 +01:00
Ludovic DEHON
6f00cf1838 chore(deps): expose http5 as transitive deps 2025-01-03 09:33:28 +01:00
Loïc Mathieu
44f3639111 fix(jdbc): avoid duplicating the source when deleting the flow
Fixes #5770
2025-01-03 09:30:53 +01:00
Ludovic DEHON
9ebf2ac750 fix(cicd): don't build docker image & maven if failed test 2025-01-03 00:26:20 +01:00
Ludovic DEHON
88709a2dba fix(deps): include httpcore5 in platform deps 2025-01-03 00:18:18 +01:00
Ludovic DEHON
62badb1e53 test(core): add coverage on http logger 2025-01-02 18:11:50 +01:00
Ludovic DEHON
4a5f46132e fix(core): make http client creation explicit 2025-01-02 18:11:50 +01:00
Ludovic DEHON
73b68294ca fix(core): restore deprecated on the ui for http task 2025-01-02 18:11:50 +01:00
Ludovic DEHON
153d4ced9c fix(core): fix download http tasks 2025-01-02 18:11:50 +01:00
Ludovic DEHON
a33f85bf1e fix(core): handle http auth 2025-01-02 18:11:50 +01:00
Ludovic DEHON
5fee07e76f fix(core): configuration of log on the http client 2025-01-02 18:11:50 +01:00
Ludovic DEHON
6dfe29adf6 feat(core): use http abstraction on http tasks 2025-01-02 18:11:50 +01:00
Ludovic DEHON
1772ed45f6 feat(core): add a http client abstraction on top of apache http client 2025-01-02 18:11:50 +01:00
Ludovic DEHON
93dc508882 feat(tasks): move http task to apache http client 2025-01-02 18:11:50 +01:00
Ludovic DEHON
9e643dcc4e chore(tasks): improve unit test of http tasks 2025-01-02 18:11:50 +01:00
Barthélémy Ledoux
b03576c7d8 refactor: major css variable overhaul (#6497)
### In CSS code

#### Bootstrap

- When we find `var(--bs-white)`:
  - if the prop is `background-color` replace it with `--ks-background-card`
  - if the prop is `background` replace it with `--ks-background-card`
- When we find `var(--bs-primary)`:
  - if the prop is `color` replace it with `--ks-content-link`
  - if the prop is `background-color` replace it with `--ks-background-button-primary`
  - if the prop is `background` replace it with `--ks-background-button-primary`
- When we find `var(--bs-purple)`:
  - if the prop is `color` replace it with `--ks-content-link`
  - if the prop is `background-color` replace it with `--ks-background-button-primary`
  - if the prop is `background` replace it with `--ks-background-button-primary`
- When we find `var(--bs-body-color)`:
  - if the prop is `color` replace it with `--ks-content-primary`
- When we find `var(--bs-code-color)`:
  - if the prop is `color` replace it with `--ks-content-id`
- When we find `var(--bs-body-bg)`:
  - if the prop is `background-color` replace it with `--ks-background-body`
  - if the prop is `background` replace it with `--ks-background-body`
- When we find `var(--bs-card-bg)`:
  - if the prop is `background-color` replace it with `--ks-background-card`
  - if the prop is `background` replace it with `--ks-background-card`
- When we find `var(--bs-secondary)`:
  - if the prop is `color` replace it with `--ks-content-secondary`
  - if the prop is `background-color` replace it with `--ks-border-active`
- When we find `var(--bs-tertiary-color)`:
  - if the prop is `color` replace it with `--ks-content-tertiary`
- When we find `var(--bs-border-color)`:
  - if the prop is `border` replace it with `--ks-border-primary`
  - if the prop is `border-color` replace it with `--ks-border-primary`
  - if the prop is `border-bottom` replace it with `--ks-border-primary`
  - if the prop is `border-right` replace it with `--ks-border-primary`
- When we find `var(--bs-card-color)`:
  - if the prop is `color` replace it with `--ks-content-primary`
- When we find `var(--bs-border-secondary-color)`:
  - if the prop is `border` replace it with `--ks-border-secondary`
  - if the prop is `border-color` replace it with `--ks-border-secondary`
  - if the prop is `border-bottom` replace it with `--ks-border-secondary`
- When we find `var(--bs-warning)`:
  - if the prop is `color` replace it with `--ks-content-warning`


#### Element Plus

- When we find `var(--el-bg-color)`:
  - if the prop is `background-color` replace it with `--ks-background-button-secondary-hover`
  - if the prop is `background` replace it with `--ks-background-button-secondary-hover`
- When we find `var(--el-text-primary)`:
  - if the prop is `color` replace it with `--ks-content-primary`
- When we find `var(--el-text-color-regular)`:
  - if the prop is `color` replace it with `--ks-content-primary`
- When we find `var(--el-color-primary)`:
  - if the prop is `border-color` replace it with `--ks-border-active`
  - if the prop is `border` replace it with `--ks-border-active`
  - if the prop is `box-shadow` replace it with `--ks-border-active`
  - if the prop is `color` replace it with `--ks-content-link`
- When we find `var(--el-border-color)`:
  - if the prop is `border` replace it with `--ks-border-primary`
  - if the prop is `border-color` replace it with `--ks-border-primary`
  - if the prop is `border-right` replace it with `--ks-border-primary`
  - if the prop is `border-left` replace it with `--ks-border-primary`
  - if the prop is `border-bottom` replace it with `--ks-border-primary`
  - if the prop is `box-shadow` replace it with `--ks-border-primary`
- When we find `var(--el-border)`:
  - if the prop is `border` replace it with `--ks-border-primary`
  - if the prop is `border-color` replace it with `--ks-border-primary`
  - if the prop is `border-right` replace it with `--ks-border-primary`
  - if the prop is `border-left` replace it with `--ks-border-primary`
- When we find `var(--el-color-text-primary)`:
  - if the prop is `color` replace it with `--ks-content-link`
- When we find `var(--el-text-color-primary)`:
  - if the prop is `color` replace it with `--ks-content-link`
  - if the prop is `background` replace it with `--ks-background-body`
- When we find `var(--el-text-color-secondary)`:
  - if the prop is `color` replace it with `--ks-content-link`
- When we find `var(--el-color-alert-info)`:
  - if the prop is `color` replace it with `--ks-content-information`
- When we find `var(--el-button-bg-color)`:
  - if the prop is `background` replace it with `--ks-background-button-secondary`
  - if the prop is `background-color` replace it with `--ks-background-button-secondary`
  - if the prop is `border` replace it with `--ks-background-button-secondary`
- When we find `var(--el-text-color-disabled)`:
  - if the prop is `color` replace it with `--ks-content-inactive`
- When we find `var(--el-color-warning)`:
  - if the prop is `color` replace it with `--ks-content-warning`


#### Kestra

- When we find `var(--content-alert)`:
  - if the prop is `color` replace it with `--ks-content-alert`
- When we find `var(--card-bg)`:
  - if the prop is `background-color` replace it with `--ks-background-card`
  - if the prop is `background` replace it with `--ks-background-card`
- When we find `var(--input-bg)`:
  - if the prop is `background-color` replace it with `--ks-background-input`
  - if the prop is `background` replace it with `--ks-background-input`
- When we find `var(--log-content-error)`:
  - if the prop is `color` replace it with `--ks-log-content-error`
- When we find `var(--log-background-error)`:
  - if the prop is `background-color` replace it with `--ks-log-background-error`
  - if the prop is `border-top` replace it with `--ks-log-background-error`
- When we find `var(--log-border-error)`:
  - if the prop is `border` replace it with `--ks-log-border-error`
  - if the prop is `border-color` replace it with `--ks-log-border-error`

### In JS code
- When we find `var(--content-color-` in a string interpolation, we replace it with `var(--ks-content-`.
- When we find `var(--border-color-` in a string interpolation, we replace it with `var(--ks-border-`.
- When we find `var(--background-color-` in a string interpolation, we replace it with `var(--ks-background-`.
- When we find `var(--log-content-` in a string interpolation, we replace it with `var(--ks-log-content-`.
2025-01-02 16:35:58 +01:00
Loïc Mathieu
a9ff469f78 fix(core): killing paused without subtask should transition to KILLED
Fixes #6243

When we kill an execution that is running a Pause task that didn't have any subtask, we must transition the task run to KILLED immediatly or the executor will process the Pause task and transition it to SUCCESS.
2025-01-02 14:27:27 +01:00
Loïc Mathieu
6db49aebf0 feat(webserver): OpenAPI spec improvement
Previously, PagedResult contains ArrayListTotal which is a list with a total in it. But due to that, ArrayListTotal is not recognized as an array for the OpenAPI spec so all the endpoints that use it generates incorrect specification.
Switching to a list fixes the issue.
The serialized form is not impacted.
2024-12-31 18:20:30 +01:00
Mathieu Gabelle
c6a09cd9de refactor: migrate AbstractExecScript, CommandsWrapper, NamespaceFiles, OutputFilesInterface to dynamic properties 2024-12-31 16:01:28 +01:00
Piyush Bhaskar
316d514fa3 chore(ui): add header title for column on triggers page (#6608) 2024-12-31 14:00:20 +01:00
Bart Ledoux
5f7695e3e8 build: fix storybook tests 2024-12-30 14:34:08 +01:00
Bart Ledoux
7b4b905819 fix: update package json again to fix storybook tests 2024-12-30 14:21:44 +01:00
Bart Ledoux
0cc5fb964c build: attempt to fix storybook tests swc issue 2024-12-30 12:22:48 +01:00
GitHub Action
27f1430ff6 chore(translations): auto generate values for languages other than english 2024-12-30 09:41:02 +00:00
rajatsingh23
b312ea0f91 feat(ui): introduce log font size property in settings (#6600)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-30 10:40:38 +01:00
Piyush Bhaskar
4bd7585915 chore(ui): add a horizontal scroll bar to editor file tree (#6598) 2024-12-30 10:10:32 +01:00
Piyush Bhaskar
4ccd2fff63 chore(ui): add limit to environment name length (#6597)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-30 09:46:09 +01:00
Miloš Paunović
96d8239b59 chore(ui): introduce horizontal scroll to cascader items 2024-12-27 08:57:17 +01:00
Miloš Paunović
807a44d187 chore(ui): always show flow revision column on executions listing 2024-12-26 08:45:44 +01:00
rajatsingh23
42d752e82e chore(ui): prevent ability to add multiple filters on second try (#6573)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-25 09:33:31 +01:00
Miloš Paunović
ed469d0094 chore(deps): regular dependency update (#6591) 2024-12-25 08:34:26 +01:00
MilosPaunovic
5da044c801 fix(ui): add check for property existence 2024-12-25 08:20:04 +01:00
Loïc Mathieu
ff83e25c0b feat(core): add an Exit task
Fixes #5599
2024-12-24 10:29:31 +01:00
Rajarajan
e9929fd4b2 feat(core): Added a Pebble function [uniq] to deduplice array #6417 2024-12-24 10:02:34 +01:00
Miloš Paunović
354b6b932b chore(ui): introduce new filter bar on namespace kv page (#6570) 2024-12-24 09:38:17 +01:00
MilosPaunovic
8357e0e23f chore(ui): tweak font size for tag component 2024-12-24 09:10:17 +01:00
YannC
8e42c12764 fix(core): better method when looking for 'value' prop in a JsonNode for auditLog patch application (#6569) 2024-12-24 08:20:52 +01:00
Ruturaj Dhakane
93e7ff2ede chore(ui): prevent display of file helpers if there is no file (#6568) 2024-12-23 15:41:43 +01:00
yuri1969
462c505623 fix(core): enable runIf property on flowable tasks 2024-12-23 14:43:59 +01:00
Miloš Paunović
9707b68434 chore(ui): replace language right after saving changes (#6566) 2024-12-23 12:56:13 +01:00
Miloš Paunović
41a90f5c6f fix(ui): improve namespaces filtering (#6564) 2024-12-23 12:30:24 +01:00
Loïc Mathieu
a27ef2ace1 feat(core): add a Write task
Fixes #6524
2024-12-23 12:09:00 +01:00
Miloš Paunović
95af3ea4f5 chore(ui): prevent adding filter parameters if decode prop is passed as false (#6563) 2024-12-23 12:04:30 +01:00
Aabhas Sao
e938e0dc54 chore(ui): handle creation of nested folders properly (#6554)
Signed-off-by: Aabhas Sao <aabhassao0@gmail.com>
2024-12-23 12:01:16 +01:00
GitHub Action
f0a15cdae1 chore(translations): auto generate values for languages other than english 2024-12-23 10:32:06 +00:00
Piyush Bhaskar
bf55ee962c chore(ui): show artwork on flow triggers page instead of locking it (#6555) 2024-12-23 11:31:16 +01:00
Sayed Qassim
8b541aae23 chore(ui): executions in progress link is taking proper filters into account (#6556)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-23 11:03:36 +01:00
Kumar Nirupam
0173470ae8 chore(ui) initial work on clicking filter to change it's value (#6560)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-23 10:53:50 +01:00
Piyush Bhaskar
926b417675 chore(ui): improvement to blueprints inside flow editor tab (#6548) 2024-12-23 09:19:23 +01:00
Piyush Bhaskar
51752b2acc chore(ui): limit accepted file types for flow import (#6550)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-23 09:12:10 +01:00
Maheshwara Sampath
9162e3a2ee chore(ui): rename flow editor tab to edit (#6552) 2024-12-23 08:53:53 +01:00
dependabot[bot]
53c9f395b0 chore(deps): bump org.siouan.frontend-jdk21 from 9.1.0 to 10.0.0
Bumps org.siouan.frontend-jdk21 from 9.1.0 to 10.0.0.

---
updated-dependencies:
- dependency-name: org.siouan.frontend-jdk21
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-21 23:09:06 +01:00
dependabot[bot]
030aff3acb chore(deps): bump org.jsoup:jsoup from 1.18.1 to 1.18.3
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.18.1 to 1.18.3.
- [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.18.1...jsoup-1.18.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-21 23:08:56 +01:00
dependabot[bot]
bc423743e8 chore(deps): bump flyingSaucerVersion from 9.11.1 to 9.11.2
Bumps `flyingSaucerVersion` from 9.11.1 to 9.11.2.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.11.1 to 9.11.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.11.1...v9.11.2)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.11.1 to 9.11.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.11.1...v9.11.2)

---
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>
2024-12-21 23:08:46 +01:00
Barthélémy Ledoux
edb7f54431 fix(ui): only silence the necessary sass warnings
closes #6390
2024-12-21 23:08:33 +01:00
dependabot[bot]
58c1ca2d05 chore(deps): bump org.owasp.dependencycheck from 11.1.0 to 11.1.1
Bumps org.owasp.dependencycheck from 11.1.0 to 11.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 18:12:37 +01:00
dependabot[bot]
7de45c01d1 chore(deps): bump com.google.cloud:libraries-bom from 26.50.0 to 26.52.0
Bumps [com.google.cloud:libraries-bom](https://github.com/googleapis/java-cloud-bom) from 26.50.0 to 26.52.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.50.0...v26.52.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>
2024-12-20 17:59:09 +01:00
dependabot[bot]
79d67a25bf chore(deps): bump jacksonVersion from 2.18.1 to 2.18.2
Bumps `jacksonVersion` from 2.18.1 to 2.18.2.

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

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

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

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

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

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

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

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

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

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

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

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.18.1 to 2.18.2

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jdk8` from 2.18.1 to 2.18.2

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 17:58:02 +01:00
dependabot[bot]
dc966b3b11 chore(deps): bump commons-io:commons-io from 2.17.0 to 2.18.0
Bumps commons-io:commons-io from 2.17.0 to 2.18.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 17:41:18 +01:00
dependabot[bot]
3cf92f5093 chore(deps): bump org.jooq:jooq from 3.19.15 to 3.19.16
Bumps org.jooq:jooq from 3.19.15 to 3.19.16.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 17:41:09 +01:00
Bart Ledoux
e86cdc920f supress CJS warning in storybook 2024-12-20 17:17:42 +01:00
Bart Ledoux
dba5c39ded build: use husky instead of ghooks 2024-12-20 16:31:53 +01:00
dependabot[bot]
d9f1dd1405 chore(deps): bump com.microsoft.playwright:playwright
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.48.0 to 1.49.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.48.0...v1.49.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 16:15:07 +01:00
dependabot[bot]
ee5f8f952e chore(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.17.0 to 2.19.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.17.0...v2.19.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 15:48:40 +01:00
dependabot[bot]
06c56d582b chore(deps): bump com.azure:azure-sdk-bom from 1.2.29 to 1.2.30
Bumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.2.29 to 1.2.30.
- [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.29...azure-sdk-bom_1.2.30)

---
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>
2024-12-20 15:28:24 +01:00
dependabot[bot]
3f1758c200 chore(deps): bump io.qameta.allure:allure-bom from 2.29.0 to 2.29.1
Bumps [io.qameta.allure:allure-bom](https://github.com/allure-framework/allure-java) from 2.29.0 to 2.29.1.
- [Release notes](https://github.com/allure-framework/allure-java/releases)
- [Commits](https://github.com/allure-framework/allure-java/compare/2.29.0...2.29.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 15:28:05 +01:00
dependabot[bot]
7ef8419592 chore(deps): bump software.amazon.awssdk:bom from 2.29.29 to 2.29.37
Bumps software.amazon.awssdk:bom from 2.29.29 to 2.29.37.

---
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>
2024-12-20 14:24:25 +01:00
dependabot[bot]
ad5e731404 chore(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.4.0 to 3.4.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.4.0...3.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 14:16:20 +01:00
dependabot[bot]
9acdf85254 chore(deps): bump org.sonarqube from 5.1.0.4882 to 6.0.1.5171
Bumps org.sonarqube from 5.1.0.4882 to 6.0.1.5171.

---
updated-dependencies:
- dependency-name: org.sonarqube
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 14:16:07 +01:00
dependabot[bot]
b961fbf472 chore(deps): bump com.github.docker-java:docker-java from 3.4.0 to 3.4.1
Bumps [com.github.docker-java:docker-java](https://github.com/docker-java/docker-java) from 3.4.0 to 3.4.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.4.0...3.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 13:47:07 +01:00
Loïc Mathieu
53af6a38b9 feat(core): add audit log when killing an execution
Fixes https://github.com/kestra-io/kestra-ee/issues/2426
2024-12-20 13:13:51 +01:00
MilosPaunovic
4a94b2237b chore(ui): lint code properly for ci to pass 2024-12-20 12:43:04 +01:00
dependabot[bot]
0f6a0fcc45 chore(deps): bump net.thisptr:jackson-jq from 1.1.0 to 1.2.0
Bumps [net.thisptr:jackson-jq](https://github.com/eiiches/jackson-jq) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/eiiches/jackson-jq/releases)
- [Commits](https://github.com/eiiches/jackson-jq/compare/1.1.0...1.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-20 12:36:06 +01:00
Loïc Mathieu
3559b640ea feat(jdbc): small improvement to the worker trigger queue 2024-12-20 12:35:39 +01:00
shreeup
4cf68da726 chore(ui): improve behavior on changing theme or language (#6520) 2024-12-20 11:46:19 +01:00
dependabot[bot]
72e6b1b71d chore(deps): bump software.amazon.awssdk.crt:aws-crt
Bumps [software.amazon.awssdk.crt:aws-crt](https://github.com/awslabs/aws-crt-java) from 0.31.1 to 0.33.7.
- [Release notes](https://github.com/awslabs/aws-crt-java/releases)
- [Commits](https://github.com/awslabs/aws-crt-java/compare/v0.31.1...v0.33.7)

---
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>
2024-12-20 11:45:07 +01:00
Piyush Bhaskar
6ad5e2379a chore(ui): make the entire row clickable on the gantt page (#6539) 2024-12-20 11:41:08 +01:00
MilosPaunovic
804c3b2d5d chore(ui): expand doughnut chart if there is no legend shown 2024-12-20 11:19:07 +01:00
Florian Hussonnois
729972fd1c build(ci): allow docker-build when skipping tests 2024-12-20 10:59:52 +01:00
Miloš Paunović
5625c210da feat(ui): implement initial stories for filter components (#6542) 2024-12-20 10:26:29 +01:00
Nicolas K.
cbd5d9ced6 fix(runner-kafka): interface contract of template test changed (#6536)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-19 17:10:54 +01:00
Barthélémy Ledoux
1b26cec0e6 feat(ci): parallelize frontend testing workflow with Storybook, vitest and linter (#6529) 2024-12-19 15:24:04 +01:00
Nicolas K.
59fa27797e Clean flaky tests (#6530)
* feat(tests): don't load all flows if not needed

* feat(tests): don't load all flows if not needed in runner test and runner retry test

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-19 14:52:43 +01:00
GitHub Action
5b6b501bc8 chore(translations): auto generate values for languages other than english 2024-12-19 13:17:33 +00:00
Miloš Paunović
25084c76a8 chore(ui): implement new filtering system where it was missing (#6531) 2024-12-19 14:17:01 +01:00
Barthélémy Ledoux
8387b6fd9b test: add a story & tests for filter labels (#6526)
* add a story for filter labels

* add some typescript love to filter labels

* add a few stories

* update eslint

* revert changes to label

* fix typings

* wait for the setup to finish
2024-12-19 14:04:43 +01:00
Loïc Mathieu
f550fde76c fix(core): existing ns based on KV and not only flows
Lookup if there are existing KV to know if a ns exist from the kv function and not only if flows exist in the KV.
2024-12-19 13:19:48 +01:00
dependabot[bot]
64e3023585 chore(deps): bump org.apache.logging.log4j:log4j-to-slf4j
Bumps org.apache.logging.log4j:log4j-to-slf4j from 2.24.1 to 2.24.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-19 13:04:56 +01:00
Mathieu Gabelle
2290b99332 feat: add Huggingface Plugin 2024-12-19 12:15:34 +01:00
Miloš Paunović
20b7237c97 chore(deps): regular dependency update (#6523) 2024-12-19 08:22:45 +01:00
Miloš Paunović
2391f174a7 fix(ui): if no trigger state filter is selected, show them all (#6522) 2024-12-19 08:13:21 +01:00
Nicolas K.
5f8cd4c14c fix(webserver): rework tests in order to load only required flows (#6517)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-18 16:42:33 +01:00
Nikhil Sinha
7cd4eda33d feat(): display custom input only if customvalue is enabled (#5692)
Co-authored-by: YannC <ycoornaert@kestra.io>
2024-12-18 15:50:22 +01:00
Barthélémy Ledoux
03b1ba870c refactor(ui): move stories to tests/storybook (#6515) 2024-12-18 15:35:42 +01:00
Anna Geller
7a8d2aeb97 fix: subflow docs 2024-12-18 15:30:04 +01:00
Florian Hussonnois
0ab4b6d10d fix(run): add LD_PRELOAD to handle duckdb/rocksdb libc conflict
related-to: kestra-io/plugin-jdbc#165
2024-12-18 15:28:54 +01:00
GitHub Action
cdc30080f9 chore(translations): auto generate values for languages other than english 2024-12-18 14:17:41 +00:00
YannC
18a2b553ca feat(core): allow SELECT input to be radio UI type
close #5591
2024-12-18 15:17:03 +01:00
Nicolas K.
38dcc75271 fix(core): remove race condition on trigger runner test (#6516)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-18 14:04:20 +01:00
Miloš Paunović
1da6e75bc8 chore(ui): improved filter usage throughout the product (#6513) 2024-12-18 11:09:56 +01:00
Anna Geller
0f23d33824 docs: add more keyboard shortcuts 2024-12-18 10:40:32 +01:00
Nicolas K.
bf018c0189 Flaky test add logs (#6504)
* test(runner tests): add logs to track race condition

* feat(tests): add extension to load flows

* clean(tests): remove logs

* feat(tests): move the extension into the right folder

* feat(tests): add new junit extensions, clean tests and now kestraTest can run runner

* clean(tests): small ficxes after merge

* feat(tests): remove @Test from ExecuteFLow

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-18 10:33:42 +01:00
Barthélémy Ledoux
68c13d92b6 build: setup storybook for development in isolation (#6499) 2024-12-18 09:58:44 +01:00
Barthélémy Ledoux
f87e6253b3 fix: add missing mutation when loading plugin doc form cache (#6502) 2024-12-18 09:13:47 +01:00
Loïc Mathieu
01e6d529f6 fix(jdbc): read the disabled flag from the DB 2024-12-17 17:21:51 +01:00
Loïc Mathieu
556fabc3a4 fix(webserver): correct the triger find endpoint URL 2024-12-17 17:21:51 +01:00
YannC
4187627ef1 fix(core): save flowable's output when flowable is child of another flowable (#6500)
close #6494
2024-12-17 16:23:45 +01:00
dependabot[bot]
149d876442 chore(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.7.0 to 4.7.2.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.7.0...v4.7.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-17 15:12:16 +01:00
Loïc Mathieu
da1bbb51af feat(core): throw an error if the secret is not found 2024-12-17 15:09:49 +01:00
Loïc Mathieu
b133210fa0 feat(script): include task null outputs
Fixes https://github.com/kestra-io/plugin-scripts/issues/195
2024-12-17 15:08:27 +01:00
GitHub Action
aa8588c3b7 chore(translations): auto generate values for languages other than english 2024-12-17 11:29:14 +00:00
Miloš Paunović
bdd14f40f9 chore(ui): complete the audit log filtering options (#6496) 2024-12-17 12:28:52 +01:00
brian.mulier
a1f1987d71 fix(ui): put 0.0.0 version in package.json as we don't update it and rely on gradle.properties version instead 2024-12-17 12:07:15 +01:00
Florian Hussonnois
908134792e fix(core): properly check next scheduled date for backfill execution (#6413)
Changes:
When a trigger is evaluated for in a back-fill context, we have to make sure
that current-date is strictly after the next execution date for an execution to be eligible.

fix: #6413
2024-12-17 09:58:18 +01:00
Ludovic DEHON
5064606350 fix(jdbc-postgres): escape special chars on full text search
close kestra-io/kestra-ee#2430
close kestra-io/kestra-ee#2454
2024-12-17 08:53:52 +01:00
Piyush Bhaskar
1707b0c48b chore(ui): make tab arrows hidden when there is no need for them(#6486) 2024-12-17 08:21:11 +01:00
Ludovic DEHON
73026d0647 fix(core): handle input & output with id of 1 chars
close #6089
2024-12-16 18:58:48 +01:00
Ludovic DEHON
7067644150 refactor(test): use application context from the current test suite on FlowLoad 2024-12-16 18:58:48 +01:00
Loïc Mathieu
aa8ad15209 feat(core): use the Sleep official task instead of a custom test one 2024-12-16 17:51:12 +01:00
Loïc Mathieu
6a34c04e32 feat(webserver): small improvements to our OpenAPI spec 2024-12-16 16:38:59 +01:00
YannC
2d4fb7684a fix(jdbc): missing SKIPPED state in DB migrations (#6487)
close #6461
2024-12-16 16:04:34 +01:00
MilosPaunovic
6f3aff1467 chore(ui): re-work same filter applying multiple times 2024-12-16 14:50:47 +01:00
Miloš Paunović
2ce20724ca chore(ui): amend scope lables on dasboard filters (#6485) 2024-12-16 14:09:27 +01:00
Miloš Paunović
1b6442ffde chore(ui): autmatically open date picker if absolute date is selected as type (#6484) 2024-12-16 13:57:42 +01:00
Piyush Bhaskar
36dce4c815 chore(ui): improve the styling of error component on executions overview (#6465) 2024-12-16 13:39:18 +01:00
Loïc Mathieu
9238b56008 fix(webserver): TriggerController endpoint issues
- Empty endpoint removed.
- Deprecate for removal a  not-used endpoint.
- Fix incorrect OpenAPI operations
2024-12-16 13:24:03 +01:00
GitHub Action
c57984709d chore(translations): auto generate values for languages other than english 2024-12-16 12:02:14 +00:00
Miloš Paunović
b5e3e9336d chore(ui): improve passing of props to filter component (#6483) 2024-12-16 13:01:53 +01:00
Nicolas K.
008c03ce2d feat(tests): move the extension into the right folder
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-16 12:08:35 +01:00
Nicolas K.
dddf4db75a test(runner tests): add logs to track race condition (#6455)
* test(runner tests): add logs to track race condition

* feat(tests): add extension to load flows

* clean(tests): remove logs

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-16 11:41:55 +01:00
Miloš Paunović
d631e99c7d chore(translations): handle filters key translation (#6479) 2024-12-16 11:40:08 +01:00
GitHub Action
3fb12a66d1 chore(translations): auto generate values for languages other than english 2024-12-16 10:18:11 +00:00
Miloš Paunović
cacfcaf60d chore(ui): rework the file structure in filters section (#6452) 2024-12-16 11:17:41 +01:00
Barthélémy Ledoux
b11d994884 chore: avoid global constants (use window instead) (#6478)
* fix(ui): update global constants to use window scope

* fix vitest
2024-12-16 11:01:03 +01:00
Ludovic DEHON
bfea840faa refactor(test): create an ExecutionUtils to load flow 2024-12-16 10:40:44 +01:00
Miloš Paunović
ce31abf290 chore(ui): add clearable property to select fields on inputs form (#6477) 2024-12-16 09:14:08 +01:00
Arpit Gupta
8313e12d17 chore(ui): use global scope for translations throughout the product (#6466)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-16 08:18:15 +01:00
Arpit Gupta
08ace9735e Fix #6461 'Cancelled' option UI (#6463) 2024-12-15 12:09:48 +01:00
Yoann Vernageau
7696baedec chore: exclude liveness/readiness health checks from access logs (#6453) 2024-12-13 22:37:03 +01:00
Florian Hussonnois
89ccdfc773 fix(core): wait for running executor for liveness executor
Changes:
To safely execute the liveness coordinator task without error
we should wait for the executor to be fully running

part-of: kestra-io/kestra-ee#2492
2024-12-13 16:51:34 +01:00
Florian Hussonnois
751972b58f fix(core): exclude def.failsafe from classloading isolation (#4621) 2024-12-13 16:51:19 +01:00
Bart Ledoux
43657c9b6a remove: lintrc superfluous 2024-12-13 16:27:27 +01:00
nKwiatkowski
870a3217eb fix(tests): remove merge namespace mistake 2024-12-13 15:29:16 +01:00
Nicolas K.
3ec4211b7c fix(core-ee): change Objects.equals for tenant id to prevent NPE (#6411)
* fix(core-ee): change Objects.equals for tenant id to prevent NPE

* fix(core): run tests one by one

* fix(core): add a retry on random failing test

* fix(core): create a specific flow to trigger failure tht check on other namespace to prevent collision with other tests

* rollback(core): put testing config back to previous version to handle it in a separate PR

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-13 15:04:06 +01:00
Nicolas K.
f1e3d5096c fix(tests): load only required flows for runner tests (#6447)
* fix(tests): load only required flows for runner tests

* clean(tests): use existing interface to wrap the test execution

* clean(tests): use existing interface to wrap the test execution

* clean(tests): remove flow loader and put the method in the main test class

* rollback(tests): put back condition trigger to the original namespace

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2024-12-13 14:55:00 +01:00
yuri1969
8a43d5443d fix(): keep OpenAPI spec file name static 2024-12-13 14:44:09 +01:00
Barthélémy Ledoux
ed264a5389 fix: avoid redirect loops when axios calls an unauthorized API (#6450)
* fix: avoid redirect loops when axios calls an unauthorized API

* use the proper structure for axios

* protect against empty request data
2024-12-13 12:33:15 +01:00
GitHub Action
aae4e6b933 chore(translations): auto generate values for languages other than english 2024-12-13 10:49:40 +00:00
Piyush Bhaskar
5de3662c69 chore(ui): improve design of the flow overview page with no executions (#6446)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-13 11:48:02 +01:00
GitHub Action
9090154670 chore(translations): auto generate values for languages other than english 2024-12-13 09:50:51 +00:00
MilosPaunovic
3f104ae9b7 chore(translations): add missing keys 2024-12-13 10:50:20 +01:00
MilosPaunovic
25818878ee chore(ui): amend filter selection 2024-12-13 08:18:38 +01:00
Ludovic DEHON
1267e9b025 chore(core): refactor SecretService 2024-12-13 00:20:12 +01:00
Anna Geller
2594f2816c docs: conditional inputs and outputs 2024-12-12 19:25:48 +01:00
Barthélémy Ledoux
e8a98d9d3c fix: required Boolean & Multiselect rules (#6445)
* fix: required Boolean & Multiselect rules

* fix single line in light mode dark editor
2024-12-12 16:36:34 +01:00
Marco Sabatini
93db727a82 feat(main-gha-workflow): add dispatch event with new version (#6443) 2024-12-12 14:47:15 +01:00
MilosPaunovic
2358bf43f6 chore(ui): align with new version of linter 2024-12-12 14:20:44 +01:00
dependabot[bot]
45c3846e52 chore(deps-dev): bump typescript-eslint from 8.17.0 to 8.18.0 in /ui (#6432)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.17.0 to 8.18.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.18.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-12 14:14:41 +01:00
dependabot[bot]
06ed7a1672 chore(deps): bump posthog-js from 1.195.0 to 1.197.0 in /ui (#6427)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.195.0 to 1.197.0.
- [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.195.0...v1.197.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-12 14:14:23 +01:00
Barthélémy Ledoux
c29648dd9c chore: update ESlint to v9 (next major) (#6389) 2024-12-12 14:01:27 +01:00
Kratos
cb6f49b7d0 chore(ui): prevent applying same filter multiple times (#6219)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-12 13:52:49 +01:00
Piyush Bhaskar
94bfa38cb8 chore(ui): improve filters expanding (#6415) 2024-12-12 13:48:54 +01:00
GitHub Action
019097465d chore(translations): auto generate values for languages other than english 2024-12-12 12:40:19 +00:00
Miloš Paunović
1488719803 chore(ui): removing recent filter functionality (#6420) 2024-12-12 13:39:57 +01:00
GitHub Action
41e64cc043 chore(translations): auto generate values for languages other than english 2024-12-12 12:20:13 +00:00
Miloš Paunović
262c5ecc66 feat(ui): introduce new filters bar to audit logs (#6419) 2024-12-12 13:19:22 +01:00
Anna Geller
7cdc04029c docs: make windows instructions more specific 2024-12-12 12:49:02 +01:00
hcavana
ac8d404f65 Patch 1 (#6418)
* Update docker-compose.yml

* Update docker-compose.yml

* Update docker-compose.yml

* Update docker-compose.yml

* Update README.md

* Update docker-compose.yml

Changement port 8081 TO 8083

* chore(ui): revert docker-compose changes

* chore(ui): revert docker-compose changes

* chore(ui): revert docker-compose changes

---------

Co-authored-by: Josh Pocock <69722783+joshpocock@users.noreply.github.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-12 12:45:08 +01:00
brian.mulier
88bb0748db fix(ui): avoid unsaved changes pop-up upon clicking on plugin property type definition anchors
closes #6297
2024-12-11 18:35:04 +01:00
brian.mulier
495f2cd391 fix(ui): total is not needed in FlowCreate.vue 2024-12-11 17:17:23 +01:00
brian.mulier
99227a6443 fix(ui): Flow create was no longer generating graph 2024-12-11 17:16:54 +01:00
GitHub Action
c867db8ae2 chore(translations): auto generate values for languages other than english 2024-12-11 13:38:51 +00:00
Piyush Bhaskar
a45fecf95f feat(ui): Add new filters to Administration -> Triggers page (#6328)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-11 14:38:25 +01:00
MilosPaunovic
e9033462c6 chore(ui): amended the css for filter bar width 2024-12-11 14:13:12 +01:00
michascant
eb74e1fd5b feat(UI): added new filters to Flows -> Metrics tab (#6305)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-11 14:09:40 +01:00
GitHub Action
3ddfe5e8dd chore(translations): auto generate values for languages other than english 2024-12-11 13:08:50 +00:00
Miloš Paunović
382a21100e feat(ui): add missing filter options for metrics (#6409) 2024-12-11 14:08:16 +01:00
Piyush Bhaskar
c3b827951c feat(ui): Triggers: The expanded button displays an empty area. (#6337)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-11 11:35:37 +01:00
Anna Geller
200cedaca6 fix: deprecated condition 2024-12-11 11:30:27 +01:00
Piyush Bhaskar
b8e5ac3a6d feat(ui):Change arrow and colors tasks on Executions logs tab. (#6355)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-11 11:13:00 +01:00
brian.mulier
d98488526e fix(ui): add Nuxt alias + bump some deps in package-lock.json 2024-12-11 11:09:52 +01:00
Piyush Bhaskar
bac16e5fab feat(ui): Improve Gantt page. (#6358)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-11 11:06:34 +01:00
MilosPaunovic
e9be789474 chore(ui): temporarily disable filters bar highlighting 2024-12-11 09:27:08 +01:00
Miloš Paunović
9174710516 chore(deps): regular dependency update (#6402) 2024-12-11 09:10:24 +01:00
Piyush Bhaskar
e5d695c980 feat(ui): improvement in filter for adding clear all filters. (#6359)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-11 08:59:37 +01:00
Piyush Bhaskar
ccfce4a6de feat(ui): Make filters expand fully if we omit some of the non required buttons (#6364)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-11 08:43:30 +01:00
Florian Hussonnois
8d02aa7b45 fix(core): exclude common libs from classloading isolation (#4621) 2024-12-10 16:17:10 +01:00
Loïc Mathieu
0e0928d510 feat(core): log at ERROR level for script logs to stderr
Fixes https://github.com/kestra-io/plugin-scripts/issues/190
2024-12-10 13:11:48 +01:00
Miloš Paunović
a0e2c20662 chore(ui): amend description color of system namespace (#6382) 2024-12-10 12:09:01 +01:00
Florian Hussonnois
05eebeda63 fix(core): exclude reactivestreams from classloading isolation (#4621) 2024-12-10 11:18:31 +01:00
Miloš Paunović
023e264a5d fix(ui): pass flow revision on execution overview (#6380) 2024-12-10 10:47:16 +01:00
dependabot[bot]
ba07dc88d1 chore(deps): bump nanoid from 3.3.7 to 3.3.8 in /ui (#6377)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-10 10:32:00 +01:00
Barthélémy Ledoux
0bd8a355ea fix: add typescript tsconfig (#6316)
* add typescript tsconfig

* make progress on typechecking

* fix build process

* update typings

* progress on typescript

* more progress

* restore irrelevant changes

* remove last set of changes
2024-12-10 10:15:57 +01:00
Florian Hussonnois
dcf6c64027 fix(core): ensure child-first strategy for plugin class loading (#4621)
Changes:
- fix child-first strategy
- cleanup the PluginClassLoader class

Fix: #4621
2024-12-10 09:55:20 +01:00
Loïc Mathieu
fe6d6c85bc fix(jdbc): don't delete from the queues table
Fixes https://github.com/kestra-io/kestra-ee/issues/2432
2024-12-10 09:41:07 +01:00
Miloš Paunović
1a84fb96ce chore(ui): respect system theme for editor (#6376) 2024-12-10 08:34:50 +01:00
brian.mulier
db41d81f6e fix(tests): select file for metadata checks in list() test 2024-12-09 18:03:39 +01:00
brian.mulier
34c4ece234 fix(ui): prevent undefined on triggers that don't have sources anymore 2024-12-09 17:57:52 +01:00
Loïc Mathieu
3cd0c7fbe1 chore(core): avoid serialzing the value multiple time 2024-12-09 17:22:39 +01:00
nKwiatkowski
7979809aef feat(plugins): add typesense plugin 2024-12-09 14:21:37 +01:00
Barthélémy Ledoux
f7469070ef feat(ui): add flow validation to FlowCreate component (#6370) 2024-12-09 14:16:57 +01:00
Loïc Mathieu
ba2aa0d231 chore(deps): define GCP, Azure and AWS cloud BOM inside the platform
This avoids possible dependency divergence between all plugins (oss, ee, secret, storage) if they are not updated at the same time.
2024-12-09 12:43:06 +01:00
MilosPaunovic
a78566fc58 chore(docs): switch link to good first issues in readme file 2024-12-09 11:23:16 +01:00
yuri
b1f9da1ad9 chore(*): bump node version used in project (#6327) 2024-12-09 10:52:21 +01:00
Tejas Patil
c526a9a59e chore(ui): prevent opening flow trigger details on row double click (#6354) 2024-12-09 10:39:28 +01:00
Barthélémy Ledoux
d779934ccb docs: context docs appId basic setup (#6341)
* feat(ui): context docs, default  appId with routing

* use the new app api

* add appId copy tooling

* refactor: use docId instead of appId

* rename DocAppId

* make docId box react to click
2024-12-09 10:09:47 +01:00
Shivam
b860cd6518 fix(ui): properly handle filename with multiple dots in editor sidebar (#6362)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-09 10:01:03 +01:00
ANKIT KUMAR
98a867da1c chore(ui): amend font size in tables (#6363)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-09 09:52:47 +01:00
Ludovic DEHON
c6a7c12700 chore(core): add unit test for if nested in parallel 2024-12-08 00:09:52 +01:00
Loïc Mathieu
a27bb1a85d feat(core,jdbc): small trigger / scheduler improvements 2024-12-06 18:09:39 +01:00
Loïc Mathieu
6bb521f4e0 chore(ci): remove generation of latest-full tag
Fixes https://github.com/kestra-io/kestra/issues/4727
2024-12-06 17:05:23 +01:00
Miloš Paunović
596e0c342d chore(ui): improve text label in filter bar (#6350) 2024-12-06 15:44:06 +01:00
Miloš Paunović
54441751e0 chore(ui): remove unused files (#6348) 2024-12-06 15:05:20 +01:00
Florian Hussonnois
6c6f072c2c fix(core): fix cannot create Metric from null in Worker class
fix: kestra-io/kestra-ee#2417
2024-12-06 13:29:08 +01:00
MilosPaunovic
948347ace5 fix(ui): make sure that property exists 2024-12-06 13:05:51 +01:00
Loïc Mathieu
8a26e37455 fix(core): catch errors on task run
Fixes https://github.com/kestra-io/kestra-ee/issues/2416
2024-12-06 11:39:26 +01:00
Loïc Mathieu
6a953d194d chore(jdbc): remove not used method 2024-12-06 11:31:52 +01:00
sanketmagar2001
fb59a6b4ea chore(ui): initial work on improving display of topology (#5606)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-06 11:22:01 +01:00
Piyush Bhaskar
8a511e2d03 chore(ui): improve the styling of boolean buttons on inputs form (#6055)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
2024-12-06 11:08:44 +01:00
Nitin Kumar Pal
72882dfa20 chore(ui): vertically center content in flows table rows (#6330)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-06 10:50:18 +01:00
YannC
525fcf6b70 fix(ui): axios missing content type 2024-12-06 10:40:55 +01:00
brian.mulier
21bf09df11 fix(jdbc): topology was built across all tenants 2024-12-06 09:52:15 +01:00
Miloš Paunović
9222cfa7cc chore(ui): prevent text wrap inside trigger id column (#6336) 2024-12-06 09:30:17 +01:00
Miloš Paunović
89f5de4e9c chore(ui): respect date format form setting inside filter label (#6335) 2024-12-06 09:14:32 +01:00
Yerin Lee
f2bfc232c3 chore(ui): add scrolling to totals chart legend if more than 4 items present (#5971)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-05 15:36:57 +01:00
Florian Hussonnois
ff0b7c4a0a refactor(core): optimize keepLastVersionCollector method 2024-12-05 15:20:12 +01:00
Florian Hussonnois
85a22bcfaa fix(core): fix potential NPE in AbstractServiceLivenessCoordinator 2024-12-05 15:07:58 +01:00
Piyush Bhaskar
23cf3200d7 chore(ui): improve bulk actions design in the executions listing (#6240)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-05 14:49:48 +01:00
Manoj Balaraj
b9aebdbb5d fix(ui): properly handle pebble expression if it contains dash character (#6062)
Co-authored-by: manu2931 <manojb912@gmai.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-05 14:09:58 +01:00
yuri
797b21489f chore(ui): add tooltips for filter section buttons (#5942)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-05 13:47:56 +01:00
Miloš Paunović
099d9e1efd chore(translations): align keys with english (#6324) 2024-12-05 13:38:53 +01:00
Miloš Paunović
4a76fc7dc9 fix(ui): show status label in dialog for changing execution status (#6323) 2024-12-05 13:29:59 +01:00
Will Russell
13fe55dc99 fix(docs): table formatting 2024-12-05 11:04:50 +00:00
Miloš Paunović
604fc71adb feat(ui): add triggers sorting by next execution date (#6318) 2024-12-05 12:03:20 +01:00
Loïc Mathieu
985a10610c chore(core): remove Flow source auto-generation
Fixes #5694
2024-12-05 11:44:04 +01:00
YannC
ef5ece9721 fix(webserver): automatically handle trailing slash in delete endpoint for namespace files (#6266)
close #6118
2024-12-05 11:32:43 +01:00
Aabhas Sao
a05f707e90 chore(ui): uniform log line buttons styling (#6254) 2024-12-05 10:59:26 +01:00
GitHub Action
b63c2361c9 chore(translations): auto generate values for languages other than english 2024-12-05 09:52:51 +00:00
Miloš Paunović
7a6d9fa48d chore(ui): clean up of welcome page usage of markdown files (#6315) 2024-12-05 10:51:34 +01:00
Loïc Mathieu
96b7307376 Revert "feat(core): Add displayName to flow level outputs(backend) (#5605)"
This reverts commit a5741aa424.

This reverts commit 42f721fdec.

This reverts commit 0de24c4448.
2024-12-05 10:28:41 +01:00
Miloš Paunović
1f843272a9 fix(ui): filter out system labels from executing using prefill (#6311) 2024-12-05 09:20:59 +01:00
Abhishek Pawar
8ce0ed7b6d chore(ui): uniform the height of cards on main dashboard (#6213)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-05 09:02:13 +01:00
Piyush Bhaskar
91e7fdb137 chore(ui): remove default editor outline (#6303)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
2024-12-05 08:36:29 +01:00
Miloš Paunović
f57106a5f8 fix(ui): only apply editor padding on main editor (#6310) 2024-12-05 08:32:51 +01:00
Loïc Mathieu
9cb1e5d466 fix(core): copy the list to avoid concurrent modification exception in count
This would avoid this test failure: https://github.com/kestra-io/kestra/pull/6264/checks?check_run_id=33916950881
2024-12-04 17:25:04 +01:00
Bart Ledoux
fe9db94b07 remove eslint from vite 2024-12-04 17:07:22 +01:00
Barthélémy Ledoux
3df1c3778e refactor: replace getCurrentInstance router access with useRouter (#6210) 2024-12-04 16:38:31 +01:00
Barthélémy Ledoux
4e3b23831e chore: upgrade vue-router to 4.5.0 (#6298)
* re-update router

* fix leftmenulink
2024-12-04 16:14:12 +01:00
Barthélémy Ledoux
aed3cc6650 refactor(ui): enforce block order in ESLint configuration (#6299) 2024-12-04 16:13:50 +01:00
Rohit Ghumare
3248cdde4a chore(ui): initial work on output icons issue (#5746)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-04 15:55:29 +01:00
osmaneTKT
664ab85353 chore(ui): initial work on debug expression sidebar resizing on outputs page (#5878)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-04 15:44:26 +01:00
Bardan Putra Prananto
b9ccc4b0e9 fix(core): Fix Pause property annotation, exclude Input subtypes from definitions (#6265)
* fix(core): Fix Pause property annotation and exclude Input subtypes from definitions

* only enable filter if base class is null
2024-12-04 15:06:05 +01:00
pphy03
9cdaefcadf chore(ui): make confirmation dialogs properly render markdown content (#5986)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-04 14:47:24 +01:00
Bart Ledoux
f02cf1f51e fix: rollback router update 2024-12-04 14:32:01 +01:00
RizviSyed
ba94893eeb #6208 Refactored based on comments 2024-12-04 14:26:59 +01:00
RizviSyed
5c66903a9c #6208 Refactored based on comments 2024-12-04 14:26:59 +01:00
RizviSyed
433375177f #6208 Renamed class 2024-12-04 14:26:59 +01:00
RizviSyed
d25e9fa063 #6208 Added a Pebble function to generate a UUID
Closes #6208.
2024-12-04 14:26:59 +01:00
Abhishek Pawar
1aa6be0ee7 fix(ui): handle logs selector overflow in a good manner (#6224)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-04 14:16:10 +01:00
Aabhas Sao
646c2a6a6f fix(ui): properly filter flows in namespace tab (#6046)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-04 14:02:04 +01:00
RizviSyed
fb762a91af #6207 Refactored based on comments 2024-12-04 14:00:15 +01:00
RizviSyed
c503f3d387 #6207 Refactored based on comments 2024-12-04 14:00:15 +01:00
RizviSyed
9c610d89e2 #6207 Added additional test case 2024-12-04 14:00:15 +01:00
RizviSyed
1d6fe271e2 #6207 Added Random Number generator 2024-12-04 14:00:15 +01:00
Miloš Paunović
03acc8580e chore(ui): automatically add namespace filter where needed (#6296) 2024-12-04 13:56:09 +01:00
Ian Cheng
948fa7858f feat(ui): add right click menu on file tree view in editor (#5936)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-04 13:19:48 +01:00
Loïc Mathieu
348547268f fix(core, webserver): properly close the queue on Flux.onFinally
Two fixes:
- close the queue onFinally and not onComplete and onCancel to take into accunt errors.
- close the queue onFinally in the execution creation as now it is only done on the success path and not even via a Flux lifecycle method

This may fix or improve some incosistent behavior reported by users on the webserver.
2024-12-04 12:17:29 +01:00
Loïc Mathieu
973ba0342e fix(core): Correctly parse Content-Disposition in the Download task
Fixes #6270
2024-12-04 12:16:22 +01:00
Piyush Bhaskar
b0509b8c51 chore(ui): amend tags design on blueprints section (#6229)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-04 12:11:32 +01:00
GitHub Action
7171c56979 chore(translations): auto generate values for languages other than english 2024-12-04 11:00:21 +00:00
Piyush Bhaskar
5ee8dc1341 chore(ui): Improvement in Welcome Page. (#6077)
* chore(ui): Improvement in Welcome Page.

* Update Welcome.vue | scoped the styling

* fix bad merge

* remove special behavior of navbar on welcome

* finish the welcome page (thank you)

* fix: better adaptive layout

* use container queries and flex for better responsive design

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: GitHub Action <actions@github.com>
2024-12-04 11:59:23 +01:00
Florian Hussonnois
5330aa0e84 chore(ci): add workflow to release all plugins 2024-12-04 11:09:47 +01:00
Loïc Mathieu
91dd6170f1 fix(jdbc): possible race when initializing the JdbcMapper 2024-12-04 10:40:50 +01:00
Hyoseop Song
ba0e770a05 Add subpath guard function to avoid non-relative subpath parsed URI 2024-12-04 10:40:32 +01:00
dependabot[bot]
e850764403 chore(deps): bump org.jooq:jooq from 3.19.14 to 3.19.15
Bumps org.jooq:jooq from 3.19.14 to 3.19.15.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-04 10:12:31 +01:00
dependabot[bot]
296e2739a5 chore(deps): bump aquasecurity/trivy-action from 0.28.0 to 0.29.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.28.0 to 0.29.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.28.0...0.29.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-04 10:06:01 +01:00
dependabot[bot]
d6029b0908 chore(deps): bump andrcuns/allure-publish-action from 2.8.0 to 2.9.0
Bumps [andrcuns/allure-publish-action](https://github.com/andrcuns/allure-publish-action) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/andrcuns/allure-publish-action/releases)
- [Commits](https://github.com/andrcuns/allure-publish-action/compare/v2.8.0...v2.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-04 10:05:52 +01:00
Loïc Mathieu
e165052693 chore(core): remove deprecated RunContext.render(Property) methods 2024-12-04 09:41:55 +01:00
Loïc Mathieu
fb9691d67a chore(core): avoid using applicationContext.init() in the RunContext
This will improve performance as a run context is created very often.

Fixes #5492
2024-12-04 09:41:55 +01:00
Miloš Paunović
67840589b6 chore(deps): regular dependency update (#6287) 2024-12-04 09:31:07 +01:00
Nitin Bisht
418aa9dd38 chore(ui): amend spacing on plugins page (#6223)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-04 08:54:24 +01:00
yuri
c74828685f fix(ui): generalize filter width across browsers (#5980)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-04 08:51:11 +01:00
Joe Celaster
eb1cbfa4d9 chore(ui): remove search field background on single plugin page (#6220)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-04 08:48:08 +01:00
Manoj Balaraj
57bc721c61 fix(ui): improve debug outputs expression on initial load (#6094)
Co-authored-by: manu2931 <manojb912@gmai.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-04 08:44:25 +01:00
GitHub Action
02898d29ac chore(translations): auto generate values for languages other than english 2024-12-04 07:41:28 +00:00
morri12
4901c1b127 chore(ui): add a confirmation dialog before removing a bookmark (#6217)
Co-authored-by: Ryanator <ryanmorris@rogers.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-04 08:41:00 +01:00
Piyush Bhaskar
c95d474500 chore(ui): add top and left padding to editor component (#6191)
Co-authored-by: Piyush-r-bhaskar <piyush.bhaskar@gmail.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-12-04 08:38:24 +01:00
Ines Qian
7f6436f95f chore(ui): properly highlight selected options in all of the filter dropdowns (#6173)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-12-04 08:33:50 +01:00
brian.mulier
6dbdfad9ce fix(test): add metadata assertion to storage listing 2024-12-03 20:33:46 +01:00
Barthélémy Ledoux
d67df717f2 fix(docs): keep use in docs sidebar when clicking in TOC page (#6262)
* fix(docs): keep use in docs sidebar when clicking in TOC page

* fix: allow open in a new tab and main menu in docs

* woops

* woops I did it again

* fix: context docs link should never move away from page

* remove vue warnings
2024-12-03 14:28:27 +01:00
Loïc Mathieu
0f2c5bb57e fix(core): possible NPE when the Executor didn't have the flow 2024-12-03 12:19:10 +01:00
Florian Hussonnois
fba4a7929e chore(version): update snapshot version 'v0.21.0-SNAPSHOT'. 2024-12-03 12:06:06 +01:00
Florian Hussonnois
279be83445 chore(version): update to version 'v0.20.0'. 2024-12-03 12:06:03 +01:00
brian.mulier
87cfb67dc9 fix(ui): custom bar chart was not grouping things properly 2024-12-03 11:20:16 +01:00
Loïc Mathieu
c2a28dadb5 feat(core): flow SLA is in beta 2024-12-03 09:11:27 +01:00
brian.mulier
3673a1700c fix(ui): breadcrumb on custom dashboards edit redirects to home 2024-12-02 19:41:25 +01:00
brian.mulier
971f9eef4e fix(ui): better responsiveness & layouts for custom dashboards 2024-12-02 19:32:48 +01:00
brian.mulier
c6503235e6 fix(ui): wrong Y axis name for bar charts 2024-12-02 19:10:03 +01:00
brian.mulier
8246a90b8a fix(ui): show durations properly in custom dashboards legends + better responsiveness 2024-12-02 19:02:59 +01:00
YannC
c41e2b8cb2 fix(CI): translations CI fixes 2024-12-02 18:03:19 +01:00
Loïc Mathieu
582d296169 fix(core): missing Precondition id didn't fail valdiation
Fixes #6247
2024-12-02 17:45:25 +01:00
brian.mulier
6f12b7e344 fix(ui): display durations properly in custom dashboards 2024-12-02 16:18:42 +01:00
brian.mulier
7e7706912f fix(ui): better tooltip for custom dashboards 2024-12-02 15:39:01 +01:00
Loïc Mathieu
7842679fec fix(jdbc): executionCount only on start date 2024-12-02 15:34:18 +01:00
Loïc Mathieu
0ade17ab22 fix(ui): force run icon disabling 2024-12-02 15:34:18 +01:00
Loïc Mathieu
a5741aa424 fix(core): subflow output computation 2024-12-02 14:59:36 +01:00
brian.mulier
4db76e31bd fix(*): handle table pagination 2024-12-02 14:05:43 +01:00
Miloš Paunović
7ac0f3cbd1 chore(ui): properly add comparator values to selected filters from url query parameters (#6239) 2024-12-02 13:46:40 +01:00
Florian Hussonnois
e506f7400b fix(core): add plugin types for apps in returned plugin docs 2024-12-02 10:13:01 +01:00
Miloš Paunović
9c58d7bb5b chore(ui): limit the width of filter dropdown (#6227) 2024-12-02 09:47:03 +01:00
Anna Geller
d066c17564 fix: attempt to fix formatting 2024-11-30 03:12:35 +01:00
Miloš Paunović
389a1561e9 chore(ui): add default first option for filters (#6216) 2024-11-29 22:38:25 +01:00
Miloš Paunović
0e3ff20120 chore(ui): tweak the size of the chart legends (#6215) 2024-11-29 22:31:47 +01:00
Loïc Mathieu
42f721fdec fix(core): subflow outputs (#6214) 2024-11-29 19:51:10 +01:00
brian.mulier
c78fe6455a fix(ui): restore error handling 2024-11-29 17:52:05 +01:00
Bart Ledoux
070ab119a7 refactor: remove console log 2024-11-29 16:52:29 +01:00
Ludovic DEHON
3f20b46dcb fix(ui): avoid blinking on button based on the execution status
relate to #5983
2024-11-29 16:46:00 +01:00
Loïc Mathieu
68e113c306 feat(core): implements equals() and hashCode() for Property 2024-11-29 15:07:25 +01:00
Loïc Mathieu
06474c0e9c feat(core): dymamic timeout and delay in the Pause task
Fixes #5338
2024-11-29 15:07:25 +01:00
Loïc Mathieu
a8577ab9f9 fix(core): deserialize duration from a float string 2024-11-29 15:07:25 +01:00
Loïc Mathieu
ec022c9145 fix(core): makes Subflow labels dynamic (again)
Fixes #6203
2024-11-29 15:06:41 +01:00
YannC
b332b0adea feat(core): Missing RegisteredPlugin (#6189)
* feat(core): Missing RegisteredPlugin

* fix: pebble task template

* feat(ui): allow to override documentation intro
2024-11-29 15:01:56 +01:00
brian.mulier
d0b3f1f078 fix(jdbc): avoid NPE in daily stats by providing start & end dates fallbacks
closes kestra-io/kestra-ee#2326
2024-11-29 14:48:20 +01:00
brian.mulier
b55ad0a752 fix(core): change default Pie chart display to DONUT 2024-11-29 14:17:17 +01:00
brian.mulier
4b6aef7d7d fix(ui): allow save default dashboard upon creation even without change 2024-11-29 14:15:51 +01:00
Miloš Paunović
b93b834998 fix(ui): prevent unnecessary endpoint calls on custom dashboard (#6201) 2024-11-29 14:01:58 +01:00
Anna Geller
9f66f39404 docs: update basics.md 2024-11-29 13:55:33 +01:00
Miloš Paunović
a5328b23cc fix(ui): properly parse date parameters from url and pass on the endpoints (#6200) 2024-11-29 13:28:27 +01:00
MilosPaunovic
6fa7eebecb fix(ci): generate translation checkouts with sha instead of branch 2024-11-29 13:23:35 +01:00
Barthélémy Ledoux
a6804ccfa7 fix: remove-some-js-warnings (#6195)
* remove some warnings

* remove last warning on plugins

* fix required alt
2024-11-29 11:54:20 +01:00
GitHub Action
8293a0f671 chore(translations): auto generate values for languages other than english 2024-11-29 10:36:07 +00:00
brian-mulier-p
4943f9ab6a feat(*): introduce custom dashboards (#6144)
closes kestra-io/kestra-ee#1711

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-29 11:35:01 +01:00
Bart Ledoux
8212106048 fix: avoid errors when flow has no inputs 2024-11-29 11:33:28 +01:00
Miloš Paunović
a3beb58db8 fix(ui): pass flow id as parameter for dashboard (#6194) 2024-11-29 10:23:14 +01:00
phuc
f6492156df Rename the printContext() pebble function to fetchContext() 2024-11-29 10:20:49 +01:00
phuc
7302fe52d7 Rename the printContext() pebble function to fetchContext() 2024-11-29 10:20:49 +01:00
Miloš Paunović
5cc80f1080 chore(ui): trigger filter search on text values (#6193) 2024-11-29 10:06:33 +01:00
Anna Geller
8eaa9630e7 docs: flow trigger example 2024-11-29 00:13:36 +01:00
Ludovic DEHON
2c6a9136dc fix(ui): button size on the trigger page 2024-11-29 00:10:50 +01:00
Ludovic DEHON
f4afecab1b fix(ui): input number range color
close #6168
2024-11-28 23:53:24 +01:00
Ludovic DEHON
2c6d4d66ec fix(ui): dashboard in progress status size 2024-11-28 23:27:12 +01:00
Ludovic DEHON
3bb80a4a79 feat(ui): add icon on filter bars 2024-11-28 23:27:12 +01:00
Barthélémy Ledoux
bb7b0beade fix: inputs for apps and select with expressions (#6188)
* remove two vue warnings

* remove a third warning

* remove warning oops

* use the inputs coming back from validate

* fix build

* better watching

* augment the timeout and comment why
2024-11-28 23:08:44 +01:00
Ludovic DEHON
96079cc1ae fix(ui): better layout for labels filters 2024-11-28 22:37:17 +01:00
brian.mulier
505b31e67e fix(core): add isInitialized() public boolean method to know if RunContext has everything injected 2024-11-28 20:56:08 +01:00
brian.mulier
4f87cbad55 fix(tests): typo in SLA assertion test 2024-11-28 20:26:43 +01:00
yuri
50b22cd755 fix(ui): amend file preview encoding (#6186) 2024-11-28 20:11:07 +01:00
brian.mulier
f59b9b7721 fix(ui): remove "starred" translation 2024-11-28 19:57:12 +01:00
Ludovic DEHON
3cb5db0898 fix(ui): dotted layout alt is not required 2024-11-28 19:55:49 +01:00
Ludovic DEHON
eadd9cfb94 feat(ui): add a hamburger dropdown component 2024-11-28 19:20:47 +01:00
Ludovic DEHON
82a6c7ffe4 fix(ui): prevent rollover on status
close #6174
2024-11-28 19:20:47 +01:00
Loïc Mathieu
8152b2559c feat(core): rename EXECUTION_CONDITION SLA to EXECUTION_ASSERTION (#6187) 2024-11-28 18:54:40 +01:00
Loïc Mathieu
d55b7f4330 fix(core): Property.of() with arbitrary objects 2024-11-28 18:37:34 +01:00
Loïc Mathieu
13425326dd Revert "feat(core): remove the execution state from the scheduler (#1588)"
This reverts commit f7d3d0bcd4.
2024-11-28 18:24:52 +01:00
Miloš Paunović
fb976124c1 fix(ui): improve filter behaviours (#6179) 2024-11-28 17:11:18 +01:00
Loïc Mathieu
eb6e82b77a fix(core): compilation issue 2024-11-28 16:02:00 +01:00
Ludovic DEHON
3a63ce623a chore(ui): suppress some console warning 2024-11-28 15:38:38 +01:00
Ludovic DEHON
a651aff60d fix(ui): hide useless columns on temporal view 2024-11-28 15:38:18 +01:00
Ludovic DEHON
c1d3418932 fix(ui): revert bar on the execution > logs page
close #6092
2024-11-28 15:18:00 +01:00
Ludovic DEHON
230675bdd7 fix(ui): state in dark are using the wrong color
cssVariable function don't manage overriden vars in dark
2024-11-28 15:01:59 +01:00
Ludovic DEHON
abaa6732c6 fix(ui): overview logs are not displayed when only one is available 2024-11-28 15:01:59 +01:00
Barthélémy Ledoux
c21f16335b feat(InputsForm): delay watchers until flow, execution & default values are set (#6151) 2024-11-28 14:45:34 +01:00
Loïc Mathieu
6e41898efd fix(core): use local time in Multiple condition TimeWindow 2024-11-28 14:42:45 +01:00
Loïc Mathieu
694cbf2f8a chore(deps): dependency updates 2024-11-28 14:25:06 +01:00
Loïc Mathieu
054ef83bca fix(core): local time format
Fixes #5734
2024-11-28 14:04:39 +01:00
Loïc Mathieu
ff522b699d fix(core): don't return a new window for exceeded deadline
Fixes https://github.com/kestra-io/kestra-ee/issues/2276
2024-11-28 13:59:13 +01:00
Anna Geller
8d12451f2f fix: include offset in preconditions 2024-11-28 13:00:46 +01:00
Ludovic DEHON
51e0a2afc4 fix(ui): table header are not visible enough
also change the bg color of the body in white

close #6097
2024-11-28 11:24:35 +01:00
Barthélémy Ledoux
c5a4540ba3 fix guided tour.Move the execute panel down a bit (#6164) 2024-11-28 11:18:57 +01:00
Barthélémy Ledoux
d2065c7875 feat(ui): Cascader to use CSS ellipsis instead of truncated label (#6161) 2024-11-28 11:18:21 +01:00
Barthélémy Ledoux
e9bbddecaa fix(ui): use grid instead of flex for plugins alignment (#6157) 2024-11-28 11:17:59 +01:00
YannC
ff99d1392a feat(ui): Implemented all state colors and design from Figma 2024-11-28 10:51:58 +01:00
Anna Geller
76815bb99b Quick win, missing "s" in Bookmarks (#6152)
* Update en.json

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2024-11-28 02:46:29 +01:00
ben8t
b6bafbad3b Rename starred to bookmark (#6145)
* [refactor] rename starred to bookmark

* chore(translations): auto generate values for languages other than english

* rename stared store into bookmark

* fix: update bookmarks buttons

---------

Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-27 21:49:26 +01:00
Bart Ledoux
975a86bb2f fix: add initial 3rd call to validate for apps 2024-11-27 17:19:49 +01:00
brian.mulier
1a51e369e1 fix(core): avoid infinite loop for SLA 2024-11-27 16:58:13 +01:00
Loïc Mathieu
7426ac4d09 fix(core): flow trigger dependencies
Fixes #6100
2024-11-27 16:00:11 +01:00
Bart Ledoux
45f56938e7 fix: darken the green color
https://github.com/kestra-io/kestra-ee/issues/2253
2024-11-27 14:31:45 +01:00
Miloš Paunović
1ee9fc7813 feat(ui): improve keyboard selection of new filters (#6147) 2024-11-27 13:23:51 +01:00
Anna Geller
621645c563 Update generate_translations.yml 2024-11-27 11:22:22 +01:00
Anna Geller
45be21f3a2 Revert "#5518 skip updating own translation (#5868)"
This reverts commit 29ef8afa6e.
2024-11-27 11:00:07 +01:00
Bart Ledoux
cefa9c3c5e fix: update "light" icon with less dark gray 2024-11-27 10:46:53 +01:00
Barthélémy Ledoux
bf5714417c feat: plugin layout is now dotted (#6143)
* feat: plugin layout is now dotted

* update icons for dotted layouts
2024-11-27 10:37:23 +01:00
Miloš Paunović
f064f64df0 chore(ui): trigger search on removal of single filter (#6142) 2024-11-27 09:16:24 +01:00
Miloš Paunović
90bc2bac89 chore(ui): trigger filter once the whole selection is there (#6141) 2024-11-27 08:58:08 +01:00
Barthélémy Ledoux
8518413b8c fix(ui): update background color in DottedLayout component (#6128) 2024-11-26 21:52:05 +01:00
Anna Geller
5fdaabd849 docs: flow trigger example for preconditions incl. timezone offset info and fix SLA 2024-11-26 19:10:22 +01:00
Barthélémy Ledoux
fceddf5225 fix: the validation of booleans (#6124)
Co-authored-by: GitHub Action <actions@github.com>
2024-11-26 17:38:07 +01:00
YannC
1707b1ee70 fix(core): LocalFileWatcher correctly load existing flow in folder
close #6122
2024-11-26 16:42:53 +01:00
YannC
654d30e10e fix(controller): Return failing file/flow when doing flow import (#6090)
close #6042
2024-11-26 15:43:46 +01:00
YannC
bf10a5fdee feat(ui): better banner color 2024-11-26 15:34:43 +01:00
Loïc Mathieu
3f2a306ce3 fix(core): use OffsetTIme in TimeWindow
Fixes https://github.com/kestra-io/kestra-ee/issues/2263
2024-11-26 15:02:37 +01:00
YannC
a8de86d16f feat(ui): allows to copy id from Id tooltip 2024-11-26 14:13:38 +01:00
YannC
f73fa74153 feat(ui): tag light color 2024-11-26 14:13:22 +01:00
Barthélémy Ledoux
c74073d38a fix: debounce validation of data (#6051) 2024-11-26 14:10:05 +01:00
Bart Ledoux
e9f9118b12 remove duplicate rule 2024-11-26 12:09:29 +01:00
Barthélémy Ledoux
22a8732073 refactor: replace BlueprintsLayout to reuse DottedLayout (#6095) 2024-11-26 12:04:32 +01:00
Barthélémy Ledoux
b187641101 fix: treat undefined boolean as undefined instead of false (#6086) 2024-11-26 12:03:38 +01:00
Loïc Mathieu
631cecc451 chore(core): FlowServiceTest.findByNamespacePrefix() is flaky 2024-11-26 11:48:32 +01:00
Loïc Mathieu
3fea922734 feat(core): check for system label at validation time 2024-11-26 11:44:23 +01:00
Loïc Mathieu
91cf66616f fix(ui): only display exception error for FAILED exceptions
Fixes #6098
2024-11-26 11:22:11 +01:00
Loïc Mathieu
0685214d12 fix(core): wait for error logs in the Pebble function
Fixes #6083
2024-11-26 11:05:33 +01:00
Ludovic DEHON
ccf14b86ad fix(ui): keep multiple line on the logs
close #5649
2024-11-26 10:07:48 +01:00
Ludovic DEHON
7a37db396e chore(ui): remove unneeded translations 2024-11-26 10:02:30 +01:00
Loïc Mathieu
7e8226f148 feat(core): allow accessing Worker thread count 2024-11-26 09:19:28 +01:00
Ludovic DEHON
82dbb4319a feat(ui): better error message on overview header (#6105)
close #6029
2024-11-26 09:01:29 +01:00
Anna Geller
775fac4e63 fix: wording 2024-11-25 22:17:48 +01:00
Barthélémy Ledoux
8b53a2b4ba refactor: move toast to typescript + composition API (#6079) 2024-11-25 20:54:20 +01:00
Bart Ledoux
8a072c1e24 add custom validation for required booleans 2024-11-25 17:27:02 +01:00
YannC
43dfd9e388 fix(controller): handle recoverMissedScheduled property of triggers (#6084)
close #6027
2024-11-25 17:13:43 +01:00
YannC
dc324184b1 fix(ui): issue on trigger list when no cron 2024-11-25 16:49:46 +01:00
Loïc Mathieu
4e0b6308bd feat(core): flow SLA
Fixes #5857
2024-11-25 16:05:45 +01:00
Loïc Mathieu
9f4dbd8134 fix(core): serialize duration as strings in Property
Fixes #5615
2024-11-25 16:02:44 +01:00
Loïc Mathieu
550aa4538b Revert "fix(core): serialize duration as strings"
This reverts commit 557eb8185f.
2024-11-25 16:02:44 +01:00
101
b019909e9c refactor(*): unify instanceof usage to pattern matching style 2024-11-25 15:13:06 +01:00
YannC
159d8277cd fix(ui): link css 2024-11-25 15:07:51 +01:00
YannC
7e156c85d0 fix(ui): better code color visiblity in light theme 2024-11-25 12:28:12 +01:00
YannC
49c557df0b fix(ui): more visible tag 2024-11-25 12:24:02 +01:00
Loïc Mathieu
75310bd4a4 fix(webserver): set labels now sends all labels
So we need to check if a system label didn't exist and fail if it's the case.

Fixes #5992
2024-11-25 12:15:01 +01:00
Barthélémy Ledoux
8fb7214a98 fix: remove full reactive on context info bar (#6069) 2024-11-25 11:41:21 +01:00
Ruturaj Dhakane
1a24b4b1b0 fix(ui): curl message warning was not clear enough (#6068) 2024-11-25 08:56:36 +01:00
Miloš Paunović
66196425e0 chore(ui): remove obsolete define props import (#6074) 2024-11-25 08:29:29 +01:00
Loïc Mathieu
39d2919043 feat(core): set Data property to not dynamic 2024-11-22 21:53:29 +01:00
Loïc Mathieu
c50a3b4929 fix(core): use pattern inseatd of format in the JSON Schema
Fixes #6037
2024-11-22 21:53:29 +01:00
Ludovic DEHON
300d986f5f fix(ui): avoid dashboard blinking on flow create 2024-11-22 21:44:30 +01:00
Loïc Mathieu
6aafbf3849 fix(platform): force all Jackson libs indivudually 2024-11-22 17:24:29 +01:00
Bart Ledoux
d185e67a01 fix: update light mode dots layout 2024-11-22 17:08:26 +01:00
Ludovic DEHON
529caf843f fix(ui): failed to change class name on menu collapse 2024-11-22 16:45:27 +01:00
Barthélémy Ledoux
72c3f33b80 feat(ui): restore red marker show new blog posts (#6054) 2024-11-22 16:31:59 +01:00
Loïc Mathieu
34fa6ce910 feat(jdbc): Improve execution queued performance
Add date inside the index to speed up order by in case there are a lot of execution queued.
Skip locked records when selecting them as if there is a locked records it means you need to pop the next one.
2024-11-22 16:13:41 +01:00
Ludovic DEHON
88628baa08 fix(ui): global search background wrong background 2024-11-22 15:53:34 +01:00
Ludovic DEHON
89258319e8 fix(ui): dialog header title layout 2024-11-22 15:46:56 +01:00
Ludovic DEHON
06a4bcc878 feat(ui): fix create execution layout 2024-11-22 15:40:53 +01:00
Ludovic DEHON
83c3d700da fix(ui): error message should be next to the good input
close #6039
2024-11-22 14:53:27 +01:00
Ludovic DEHON
74a3e767f9 feat(ui): use default styled scrollbar 2024-11-22 09:20:33 +01:00
Ludovic DEHON
db21982504 fix(ui): better layout for side bar 2024-11-22 09:20:33 +01:00
Miloš Paunović
c6c8b7fc4e chore(deps): regular dependency update (#6044) 2024-11-21 19:50:25 +01:00
Miloš Paunović
503fe1be54 chore(ui): improve log to file display of the preview and download buttons (#6043) 2024-11-21 19:25:27 +01:00
Kratos
0de24c4448 feat(core): Add displayName to flow level outputs(backend) (#5605) 2024-11-21 19:23:28 +01:00
Barthélémy Ledoux
4431d1f321 Add translations for context bar buttons (#6038)
Co-authored-by: GitHub Action <actions@github.com>
2024-11-21 16:50:33 +01:00
Loïc Mathieu
56a2d80ed9 fix(core): only add the errorLogs() function if a repository is configured 2024-11-21 16:17:58 +01:00
Barthélémy Ledoux
1748ebbf04 fix curl url (#6036) 2024-11-21 16:04:02 +01:00
GitHub Action
92237d2383 chore(translations): auto generate values for languages other than english 2024-11-21 14:52:43 +00:00
YannC
5b7469ab82 fix(ui): missing translation 2024-11-21 15:52:14 +01:00
Loïc Mathieu
b69723b453 feat(core): rename all conditons to not ends with Condition 2024-11-21 14:50:17 +01:00
GitHub Action
c5bef87355 chore(translations): auto generate values for languages other than english 2024-11-21 12:56:44 +00:00
YannC
449b9ca148 feat(): Rework user invitation (#5853)
* feat(*): align with EE

* feat(ui): polishing UI

* feat(ui): removed stripe

* fix(): UI polishing
2024-11-21 13:56:16 +01:00
Loïc Mathieu
78f5ff2b7b feat(*): add namespace as a parameter of the internal storage 2024-11-21 12:09:07 +01:00
Barthélémy Ledoux
62fd5599e2 fix: after context docs, some light fixes and cleanup (#6030) 2024-11-21 10:46:25 +01:00
Loïc Mathieu
5ad0fc3dc3 feat(core): add errorLogs() Pebble function 2024-11-21 09:37:18 +01:00
GitHub Action
e4fd9b7cef chore(translations): auto generate values for languages other than english 2024-11-21 09:37:18 +01:00
Loïc Mathieu
d88dee66c3 feat(*): exception error from logs 2024-11-21 09:37:18 +01:00
Barthélémy Ledoux
783904c6a9 fix(docs): open in a new window + light mode (#6026)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-20 23:00:07 +01:00
Ludovic DEHON
9b1980a053 feat(tasks): support allowFailed on http.Download tasks
close #6025
2024-11-20 22:28:48 +01:00
techwithsatish
00a0dfed88 fix(ui): amend typo in documentation (#6023) 2024-11-20 20:27:41 +01:00
Mohammed Viqar Ahmed
29ef8afa6e #5518 skip updating own translation (#5868)
* CONTRIBUTING.md : addind node options variable

* chore(ui): improve wording of contribution guide

* #5518 : fix to skip updating own translation

* #5518 : updating code comments

* Update ui/src/translations/generate_translations.py

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
2024-11-20 18:56:51 +01:00
GitHub Action
acdc9ef46e chore(translations): auto generate values for languages other than english 2024-11-20 16:08:23 +00:00
Barthélémy Ledoux
855c42b3e2 feat: in app contextual docs (#5906)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: GitHub Action <actions@github.com>
2024-11-20 17:07:43 +01:00
Florian Hussonnois
bb6b134731 fix(ui): hide navbar on error in fullscreen 2024-11-20 14:43:10 +01:00
Miloš Paunović
45d5820358 fix(ui): handle time values as execution chart x axis label (#6019) 2024-11-20 13:29:45 +01:00
YannC
f71e9d30f6 fix(): better comparison of triggers (#6018) 2024-11-20 11:26:43 +01:00
Loïc Mathieu
38ca24a287 feat(core): add a path traversal guard to the fileURI Pebble function 2024-11-20 11:05:42 +01:00
Barthélémy Ledoux
d5726e84e3 fix: "jump to" does not load (#5995)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-20 11:00:51 +01:00
asharan2buff
6e1b910d58 feat(): fileURI() Pebble Function 2024-11-20 10:15:14 +01:00
Florian Hussonnois
88db8bedd5 chore(core): add utility methods for exception 2024-11-20 09:57:22 +01:00
Ludovic DEHON
bfa02fe6ef fix(plugins): allow big archive size on docker runner
see https://issues.apache.org/jira/browse/COMPRESS-194
2024-11-19 22:29:16 +01:00
Florian Hussonnois
6fc4f251d0 chore(core): refactor LogRepositoryInterface to allow access with no permission check 2024-11-19 18:00:45 +01:00
Anna Geller
21692f7199 docs: add info about run context 2024-11-19 16:27:37 +01:00
Shruti Mantri
0bae3a88ac feat: replace EachParallel with ForEach (#5979)
* feat: replace EachParallel with ForEach

* Update core/src/main/java/io/kestra/plugin/core/execution/Count.java

---------

Co-authored-by: Will Russell <wrussell@kestra.io>
2024-11-19 11:32:53 +00:00
GitHub Action
5906b03c6e chore(translations): auto generate values for languages other than english 2024-11-19 10:31:05 +00:00
Miloš Paunović
ffa92d4888 feat(ui): introduce new filtering system (#5988) 2024-11-19 11:30:31 +01:00
dependabot[bot]
0c17a728c2 chore(deps): bump org.projectlombok:lombok from 1.18.34 to 1.18.36
Bumps [org.projectlombok:lombok](https://github.com/projectlombok/lombok) from 1.18.34 to 1.18.36.
- [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown)
- [Commits](https://github.com/projectlombok/lombok/compare/v1.18.34...v1.18.36)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 10:35:13 +01:00
dependabot[bot]
97e147e3ec chore(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.6.3 to 4.7.0.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.6.3...v4.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 10:34:59 +01:00
Anna Geller
ee79911f16 Merge branch 'develop' of https://github.com/kestra-io/kestra into develop 2024-11-18 18:52:43 +01:00
Anna Geller
aac1bbafed docs: clarify that KV pairs are not inherited https://github.com/kestra-io/docs/issues/1745 2024-11-18 18:52:35 +01:00
Shruti Mantri
66d5d4b209 feat: replace EachSequential with ForEach (#5978) 2024-11-18 17:51:03 +00:00
techwithsatish
fc7d63013c chore(ui): amend link label in documentation (#5977) 2024-11-18 18:44:45 +01:00
dependabot[bot]
ae56485cf6 chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /ui (#5976)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-18 18:41:31 +01:00
dependabot[bot]
f20c20782f chore(deps): bump net.thisptr:jackson-jq from 1.0.1 to 1.1.0
Bumps [net.thisptr:jackson-jq](https://github.com/eiiches/jackson-jq) from 1.0.1 to 1.1.0.
- [Release notes](https://github.com/eiiches/jackson-jq/releases)
- [Commits](https://github.com/eiiches/jackson-jq/compare/1.0.1...1.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 18:24:59 +01:00
dependabot[bot]
72b9077a41 chore(deps): bump flyingSaucerVersion from 9.10.2 to 9.11.0
Bumps `flyingSaucerVersion` from 9.10.2 to 9.11.0.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.10.2 to 9.11.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.10.2...v9.11.0)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.10.2 to 9.11.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.10.2...v9.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 18:24:45 +01:00
dependabot[bot]
1bc33cd4a9 chore(deps): bump org.siouan.frontend-jdk21 from 9.0.0 to 9.1.0
Bumps org.siouan.frontend-jdk21 from 9.0.0 to 9.1.0.

---
updated-dependencies:
- dependency-name: org.siouan.frontend-jdk21
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 18:23:30 +01:00
dependabot[bot]
6c6d5a39e2 chore(deps): bump codecov/codecov-action from 4 to 5
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 18:22:40 +01:00
Miloš Paunović
a5730e2ba8 fix(ui): properly check if result list is empty before showing empty state component (#5972) 2024-11-18 14:30:42 +01:00
Loïc Mathieu
3957daa156 fix(coe): missing call to allowedTrigger from kv Pebble Function 2024-11-18 13:16:43 +01:00
Loïc Mathieu
481385d554 fix(core): preconditions evaluation can NPE 2024-11-18 12:33:52 +01:00
Miloš Paunović
4db0caa32a fix(ui): pass with credentials as true to follow endpoints (#5968) 2024-11-18 12:26:18 +01:00
Loïc Mathieu
5f3aee911e feat(core): refactor flow trigger
Fixes #5856
2024-11-18 09:58:12 +01:00
sophiakkm
20defee309 feat(ui): implement local search for kv store (#5963)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-11-18 09:53:15 +01:00
GitHub Action
842113ec89 chore(translations): auto generate values for languages other than english 2024-11-18 08:20:23 +00:00
Miloš Paunović
19d181c229 chore(ui): show additional columns to better describe triggers (#5964) 2024-11-18 09:19:57 +01:00
yuri
c697628915 chore(ui): introduce component for filter labels (#5947)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-17 21:48:10 +01:00
Manoj Balaraj
eeaf015ee7 fix(ui): amend pebble expression in execution outputs debug section (#5943)
Co-authored-by: manu2931 <manojb912@gmai.com>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-17 20:39:03 +01:00
MilosPaunovic
d7e4159a4a fix(ui): check if element exists before amending the size of it 2024-11-17 20:26:52 +01:00
tlrznf46
05ecf97a59 chore(ui): implement local sort functionality for namespace kv store listing (#5952)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-11-17 20:20:51 +01:00
Aabhas Sao
df11f71c6a chore(ui): amend filter placeholder color (#5950)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-17 20:04:40 +01:00
Miloš Paunović
c52e4bf560 fix(ui): hide input validation success icon from flow run dialog (#5953) 2024-11-17 19:20:07 +01:00
Ian Cheng
1809e0c877 chore(ui): make filter absolute date label in humanly readable format(#5944)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-16 12:00:47 +01:00
yuri
70ac9a7c2a chore(ui): prevent duplicate values in filter recent items (#5941) 2024-11-16 11:44:01 +01:00
GitHub Action
65ccb7cb2b chore(translations): auto generate values for languages other than english 2024-11-16 10:16:52 +00:00
Satvik Kushwaha
53e94838c5 chore(ui): render trigger flow warning as markdown in dialog (#5933)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-16 11:16:11 +01:00
Will Russell
f3edfbce8c fix(docs): depreciated examples 2024-11-15 17:39:08 +00:00
Florian Hussonnois
6af900dcc9 feat(ui): allow to not show toast on server error response 2024-11-15 16:52:18 +01:00
Florian Hussonnois
ca5f439946 fix(ui): add errors to all validation methods 2024-11-15 16:52:18 +01:00
Piyush Bhaskar
3ef4299d2e chore(ui): showing tags on a single blueprint page (#5914)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-15 15:17:01 +01:00
Saipavan Lingamallu
f155209b5f chore(ui): improve description section of editing metadata drawer (#5858)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-15 14:45:25 +01:00
benjo.sinanovic
46b1d377dd feat(core): Implement fileSize() function 2024-11-15 14:40:40 +01:00
Loïc Mathieu
5607cab9c1 fix(ui): add missing toIon and fromIon Pebble function and filter 2024-11-15 14:16:40 +01:00
Florian Hussonnois
208d9882cf fix(ui): fix FilePreview when configs not loaded 2024-11-15 11:31:17 +01:00
GitHub Action
70a8979952 chore(translations): auto generate values for languages other than english 2024-11-15 08:20:41 +00:00
Miloš Paunović
09c644f563 chore(ui): add new filter comparators and amend existing options to use them (#5923) 2024-11-15 09:20:08 +01:00
Miloš Paunović
e6af98f7cd fix(ui): amend the expansion of execution fields (#5922) 2024-11-15 08:56:27 +01:00
Florian Hussonnois
364acc3473 feat(core): refactor ExecutionLogService 2024-11-15 08:47:28 +01:00
YannC
fb34f7b6c9 feat(ui): display input error (#5919)
close #5515
2024-11-14 22:47:50 +01:00
MilosPaunovic
cf615e8291 chore(ui): make the tooltip positioning default 2024-11-14 14:21:26 +01:00
Loïc Mathieu
6f45659eed fix(core): retry flaky test InputsTest.shouldNotLogSecretInput() 2024-11-14 11:46:08 +01:00
Barthélémy Ledoux
ffec86fb20 fix(ui): disable sidebar version tooltip when no commitId or collapsed (#5910)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-14 11:37:36 +01:00
Manoj Balaraj
796cb690fb chore(ui): properly refresh gantt view after replaying the execution (#5829) 2024-11-14 09:14:04 +01:00
yuri
fa6a434f73 fix(ui): make whole gantt task row clickable (#5863) 2024-11-14 08:41:29 +01:00
yuri
183c659011 fix(ui): change usage of method which is not widely supported (#5864) 2024-11-14 08:35:09 +01:00
RyanVem
9a402e2ca9 feat(ui): add cancel button to execution resume dialog (#5859)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-13 21:08:35 +01:00
GitHub Action
4e675f2a13 chore(translations): auto generate values for languages other than english 2024-11-13 19:57:49 +00:00
Ian Cheng
67b329747f feat(ui): add right click actions to editor tabs (#5869)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-13 20:56:55 +01:00
yuri
e404ff759c chore(ui): prevent prop type mismatch (#5908) 2024-11-13 20:22:37 +01:00
Will Russell
d7e61544d6 fix(docs): runner -> taskRunner 2024-11-13 16:55:54 +00:00
Florian Hussonnois
ccfe00dba4 feat(core): add support for AppPluginInterface 2024-11-13 16:42:36 +01:00
Shivang
cfd267749f chore(ui): align margins and padding throughout the product (#5887)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-13 15:52:21 +01:00
GitHub Action
5a93181273 chore(translations): auto generate values for languages other than english 2024-11-13 14:17:14 +00:00
Piyush Bhaskar
0e2328ce08 chore(ui): improve visual for no data component (#5900)
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-11-13 15:16:42 +01:00
GitHub Action
c7a3ffa59e chore(translations): auto generate values for languages other than english 2024-11-13 13:47:25 +00:00
Miloš Paunović
7f05c72ae5 feat(ui): add page settings dropdown to filters (#5905) 2024-11-13 14:46:52 +01:00
Loïc Mathieu
dcab506ca1 fix(core): multiple condition test is flaky 2024-11-13 14:34:37 +01:00
YannC
f0843ed23a fix(ui): display the correct key (#5886) 2024-11-13 13:28:05 +01:00
Loïc Mathieu
8da06c6c99 fix(core): flaky tests 2024-11-13 12:56:47 +01:00
Miloš Paunović
76be65c23f chore(deps): regular dependency update (#5899) 2024-11-13 11:05:40 +01:00
GitHub Action
b753ae0971 chore(translations): auto generate values for languages other than english 2024-11-13 09:53:01 +00:00
Miloš Paunović
802b7b9329 feat(ui): add relative and absolute dates as filtering options (#5898) 2024-11-13 10:52:21 +01:00
dependabot[bot]
b97db33d3a chore(deps): bump kafkaVersion from 3.8.1 to 3.9.0
Bumps `kafkaVersion` from 3.8.1 to 3.9.0.

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

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-12 15:39:12 +01:00
dependabot[bot]
a2acaa4dd4 chore(deps): bump opensearchRestVersion from 2.17.1 to 2.18.0
Bumps `opensearchRestVersion` from 2.17.1 to 2.18.0.

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-12 15:38:49 +01:00
Loïc Mathieu
e3de0d2b4d chore: small refacto on the ShaBaseFilter 2024-11-12 15:36:38 +01:00
dependabot[bot]
d68d77766d chore(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.16.0 to 2.17.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.16.0...v2.17.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-12 15:06:49 +01:00
dependabot[bot]
7ab7d1089c chore(deps): bump rlespinasse/github-slug-action from 4 to 5
Bumps [rlespinasse/github-slug-action](https://github.com/rlespinasse/github-slug-action) from 4 to 5.
- [Release notes](https://github.com/rlespinasse/github-slug-action/releases)
- [Commits](https://github.com/rlespinasse/github-slug-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: rlespinasse/github-slug-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-12 14:48:21 +01:00
Miloš Paunović
a14e759e3c chore(ui): filter functionality improvements (#5882) 2024-11-12 14:12:05 +01:00
hashimzs
fb61339170 fix(core): refactor sha filters and add tests for each filter 2024-11-12 13:36:25 +01:00
SayedQassim
795d9a6085 fix(core): add implemntation for md5, sha1, and sha512 filters (#5436) 2024-11-12 13:36:25 +01:00
yuri1969
f23de228c5 fix(build): fix Gradle task listing
The `gradle tasks` command was broken by subprojects with no `test`
source set.
2024-11-12 09:23:06 +01:00
GitHub Action
a60e3680a8 chore(translations): auto generate values for languages other than english 2024-11-11 20:16:22 +00:00
Ruturaj Dhakane
1f26637f29 feat(ui): allow selection of default tab on flow execution (#5850) 2024-11-11 21:15:46 +01:00
Piyush Bhaskar
cad7e2592d chore(ui): make visual for no data custom kestra one (#5855) 2024-11-11 13:53:49 +01:00
GitHub Action
0370913d26 chore(translations): auto generate values for languages other than english 2024-11-09 09:53:45 +00:00
Anna Geller
67ff2ed94e fix: ui text for no data (#5865)
* fix: ui text for no data

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2024-11-09 10:53:17 +01:00
GitHub Action
5bffa46f84 chore(translations): auto generate values for languages other than english 2024-11-08 18:15:12 +01:00
Loïc Mathieu
25da8d13e0 feat(core,ui,webserver): force run executions
Part-of: #4260
2024-11-08 18:15:12 +01:00
Barthélémy Ledoux
c69d8bb60e fix: set title when favoriting a flow & clean URL parameters that change (#5839)
* fix: when faving a flow it should have its title by default

* remove parameters that switch automatically at load

* fix: when loading dashboard dates come from url

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-08 14:55:47 +01:00
Pranay Raycha
1abf41c54a chore(ui): improve namespace listing items padding (#5852) 2024-11-08 11:08:18 +01:00
Barthélémy Ledoux
8353869a4e fix: extends the background of blueprint page (#5841)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-08 09:52:18 +01:00
Will Russell
36fa4eed1c fix: add new line for create flow example 2024-11-07 17:10:49 +00:00
Anna Geller
5f66e9748e fix(docs): add keyboard shortcuts info to the top 2024-11-07 17:08:54 +01:00
GitHub Action
914cc8bd62 chore(translations): auto generate values for languages other than english 2024-11-07 15:39:49 +00:00
Miloš Paunović
fce9525713 feat(ui): filters overhaul (#5844) 2024-11-07 16:35:35 +01:00
Loïc Mathieu
8a32913714 feat(core): allow filtering on labels for ExecutionsCondition
Fixes #5836
2024-11-07 15:34:39 +01:00
Loïc Mathieu
5f6e04ea0b feat(jdbc): add a where clause when fetching max offset
Also some refactoring to reduce code duplication
2024-11-07 15:34:08 +01:00
Barthélémy Ledoux
4423052e58 feat: editable favorites and full search query in their url (#5828)
* feat(ui): enhance BookmarkLink component with edit and delete functionality

* fix(ui): use the full URL as href for favorites

* add some accessibility

* foxus the field when editing starts

* avoid closing starred box when editing

* fix case sensitive issue

* change the index in localstorage to clean all conflicts

* fix: sidebar needs radius and margins

* lighten star color

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-07 13:53:31 +01:00
Miloš Paunović
4f889e716e fix(ui): amend black charts on sync with system theme option (#5835) 2024-11-07 12:14:32 +01:00
Piyush Bhaskar
08e8e7d020 chore(ui): change namespaces icon (#5827) 2024-11-07 10:56:49 +01:00
brian.mulier
60b47d761c fix(jdbc): proper handling of multiple condition window condition 2024-11-07 09:56:51 +01:00
Prajyot
e7b47e8427 fixes: #5744 UI Execution Overview doesn't correctly handle errors caused by wrong output types 2024-11-07 09:04:01 +01:00
Loïc Mathieu
71183077b0 feat(core): rename the new mutliple conditions 2024-11-06 17:52:03 +01:00
Loïc Mathieu
a01de0054b feat(core): multiple condition refactoring and doc improvements 2024-11-06 17:52:03 +01:00
Loïc Mathieu
66f4d7b0e5 feat(core): deprecate the MultipleCondition condition 2024-11-06 17:52:03 +01:00
Loïc Mathieu
4e300bec53 chore(core,webserver): discard not-used completed part and reads in an IO thread 2024-11-06 17:39:47 +01:00
Loïc Mathieu
f4c4b3a98c chore(webserver): ensure all input streams are closed 2024-11-06 17:39:47 +01:00
Loïc Mathieu
6af6ef9578 fix(core): If in a flowable task
Fixes #5812
2024-11-06 17:25:08 +01:00
GitHub Action
ee5c0dd403 chore(translations): auto generate values for languages other than english 2024-11-06 17:01:24 +01:00
Loïc Mathieu
183e001e0b feat(core): workerGroup fallback
Fixes #2041
2024-11-06 17:01:24 +01:00
Loïc Mathieu
f87ba547fd fix(ui): error widget must be present only when there is an error 2024-11-06 17:01:24 +01:00
Barthélémy Ledoux
36e4b5d98a fix(ui): add optional chaining to router getRoutes in LeftMenu component (#5821)
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-06 16:25:57 +01:00
Barthélémy Ledoux
02e986ba54 feat(styles): add custom styles for plain tags in element-plus (#5804)
* feat(styles): add custom styles for plain tags in element-plus

* fix light mode

* typo about body -> html dark

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-11-06 14:19:05 +01:00
Anna Geller
9b6b76e43e docs: clarify SLA and examples (#5813) 2024-11-06 13:31:33 +01:00
Miloš Paunović
b1d48df2c4 chore(ui): making sure we have proper coloring of the charts (#5811) 2024-11-06 12:14:28 +01:00
Manoj Balaraj
26557a5d5c fix(ui): introduce preview/download buttons for file inputs on execution overview (#5778) 2024-11-06 11:24:47 +01:00
msravikrishna
56bc4f749e chore(ui): improve ion file content preview (#5781) 2024-11-06 11:13:21 +01:00
GitHub Action
6cb06044f3 chore(translations): auto generate values for languages other than english 2024-11-06 10:01:49 +00:00
Piyush Bhaskar
0f97d721ac chore(ui): amend padding on multiple executions delete confirmation (#5777) 2024-11-06 11:01:04 +01:00
Loïc Mathieu
4259466b0f feat(core): make EncryptedString looks like a String
An EncryptedString is an implementation detail of a string encrypted. It is only used on outputs and will be automatically decrypted.
To hide this implementation detail, we replace it with String in the JSON Schema.
Fixes #5527
2024-11-06 09:53:28 +01:00
Miloš Paunović
4cda597bcd chore(deps): regular dependency update (#5802) 2024-11-06 08:50:35 +01:00
YannC
b79b1cb422 fix(core): Namespace file changes for git tasks (#5784) 2024-11-05 19:20:49 +01:00
Will Russell
681466c7f6 fix: tutorial-flows -> tutorialFlows 2024-11-05 17:15:02 +00:00
Loïc Mathieu
453fbc5eed feat: add starred pages (#5761) (#5772)
* feat: add starred pages (#5761)

* store page title and breadcrumb in vuex

* refactor leftmenu with composition API

* last fixes

* extract menu in a composable for inheritance replacement

* feat: add starred pages (no dashboard)

* keep "generateMenu" because of hack

* add comment about what function is expected

* cleanup and style

* fix starring when no breadcrumbs

* chore(translations): auto generate values for languages other than english

* add hover message to get full title

* remove extra class that was not used

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: GitHub Action <actions@github.com>

* chore(translations): auto generate values for languages other than english

* move sidebar out of leftmenu

* remove composable

* fix build

* silence eslint

* remove jank when hovering collapsed left menu

* adjust position and width of arrow

* rearchitecture of the feature with bookmarkLink as a component

* make dashboard starrable

* remove not-starrable since not used anymore

---------

Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: GitHub Action <actions@github.com>
2024-11-05 16:05:28 +01:00
GitHub Action
43369ac370 chore(translations): auto generate values for languages other than english 2024-11-05 14:26:39 +01:00
Loïc Mathieu
9d5501c5fd feat(*): Unqueue queued execution
Part-of: #4260
2024-11-05 14:26:39 +01:00
Loïc Mathieu
f6dbe4f033 chore(webserver): refactor *ByQuery methods 2024-11-05 14:26:39 +01:00
Will Russell
dcc23b9c08 fix: config to camelCase 2024-11-05 10:27:48 +00:00
GitHub Action
b86cc2ecf5 chore(translations): auto generate values for languages other than english 2024-11-05 08:35:16 +00:00
MilosPaunovic
b137ab234c chore(ui): add missing translation key 2024-11-05 09:34:41 +01:00
Akash Verma
d1c1ed9765 chore(ui): amend alignment of logs on executions page(#5774) 2024-11-05 08:18:12 +01:00
YannC
2bb08003cb fix(ui): encode filename when downloading it (#5760)
close #5589
2024-11-04 19:21:59 +01:00
YannC
e1cf8d8d87 fix(core): Windows path issues (#5763) 2024-11-04 18:27:51 +01:00
Loïc Mathieu
f2620bc8d6 Revert "feat: add starred pages (#5761)"
This reverts commit 8c83df51e4.
2024-11-04 17:18:39 +01:00
Loïc Mathieu
a6cffa77a4 feat(ui): support "true" or true as the value of the readOnly label 2024-11-04 15:53:36 +01:00
Loïc Mathieu
7fa9d86c5e feat(core): don't reset multiple conditions on successful evaluation
Fixes #325
2024-11-04 15:12:53 +01:00
Loïc Mathieu
cf26cc321f fix(core): don't call MultipleConditionStorage.getOrCreate() twice 2024-11-04 15:12:53 +01:00
Loïc Mathieu
7ae080c31a feat(webserver): document that the taskrun endpont is only available with Elasticsearch
Fixes https://github.com/kestra-io/kestra-ee/issues/2067
2024-11-04 15:12:29 +01:00
GitHub Action
76c963f24f chore(translations): auto generate values for languages other than english 2024-11-04 13:40:13 +00:00
Barthélémy Ledoux
8c83df51e4 feat: add starred pages (#5761)
* store page title and breadcrumb in vuex

* refactor leftmenu with composition API

* last fixes

* extract menu in a composable for inheritance replacement

* feat: add starred pages (no dashboard)

* keep "generateMenu" because of hack

* add comment about what function is expected

* cleanup and style

* fix starring when no breadcrumbs

* chore(translations): auto generate values for languages other than english

* add hover message to get full title

* remove extra class that was not used

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: GitHub Action <actions@github.com>
2024-11-04 14:39:43 +01:00
dependabot[bot]
f6fdb65674 chore(deps): bump kafkaVersion from 3.7.1 to 3.8.1
Bumps `kafkaVersion` from 3.7.1 to 3.8.1.

Updates `org.apache.kafka:kafka-clients` from 3.7.1 to 3.8.1

Updates `org.apache.kafka:kafka-streams` from 3.7.1 to 3.8.1

Updates `org.apache.kafka:kafka-streams-test-utils` from 3.7.1 to 3.8.1

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 13:16:58 +01:00
Loïc Mathieu
e8ddd81d7e feat(core): Flow Trigger SLA 2024-11-04 12:47:13 +01:00
Loïc Mathieu
85aada820e fix(core): replay an execution with a dynamic task
Fixes #5284
2024-11-04 11:49:43 +01:00
Miloš Paunović
a5d913ffb4 chore(ui): amend typo 2024-11-04 11:49:21 +01:00
YannC
9895f78a5c fix(ui): lint error 2024-11-04 10:49:27 +01:00
Loïc Mathieu
e7afddefc6 fix(core): redo the If fix 2024-11-04 10:47:27 +01:00
dependabot[bot]
7b132a9581 chore(deps): bump bouncycastleVersion from 1.78.1 to 1.79
Bumps `bouncycastleVersion` from 1.78.1 to 1.79.

Updates `org.bouncycastle:bcprov-jdk18on` from 1.78.1 to 1.79
- [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.78.1 to 1.79
- [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-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcpg-jdk18on
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 10:27:01 +01:00
dependabot[bot]
7291ddec0c chore(deps): bump com.gradleup.shadow from 8.3.3 to 8.3.5
Bumps [com.gradleup.shadow](https://github.com/GradleUp/shadow) from 8.3.3 to 8.3.5.
- [Release notes](https://github.com/GradleUp/shadow/releases)
- [Commits](https://github.com/GradleUp/shadow/compare/8.3.3...8.3.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 10:26:39 +01:00
Miloš Paunović
0b327ef42a chore(test): exposing function to clear the editor during automated tests 2024-11-04 10:24:31 +01:00
Akash Verma
c1eb434234 chore(ui): avoid overflow on bulk select table actions (#5742) 2024-11-04 09:39:23 +01:00
Malay Dewangan
c9f5817d27 feat(core): support flow label values to be of data types different than string (#5726)
* feat: support flow label values to be of data types different than strings

* test: add tests

* fix: fix runtime label test

* fix: fix runtime label test
2024-11-04 09:38:37 +01:00
dependabot[bot]
b7de16a264 chore(deps): bump org.owasp.dependencycheck from 11.0.0 to 11.1.0
Bumps org.owasp.dependencycheck from 11.0.0 to 11.1.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 09:28:57 +01:00
dependabot[bot]
547525ab18 chore(deps): bump mikepenz/action-junit-report from 4 to 5
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 4 to 5.
- [Release notes](https://github.com/mikepenz/action-junit-report/releases)
- [Commits](https://github.com/mikepenz/action-junit-report/compare/v4...v5)

---
updated-dependencies:
- dependency-name: mikepenz/action-junit-report
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 09:28:16 +01:00
dependabot[bot]
7cfcc91dac chore(deps): bump com.fasterxml.jackson:jackson-bom
Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.18.0 to 2.18.1.
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.18.0...jackson-bom-2.18.1)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 09:28:06 +01:00
Manoj Balaraj
46b6f23ccd feat(ui): expand the first output by default (#5747) 2024-11-04 09:27:55 +01:00
Ludovic DEHON
6e58b3fe18 refactor(core): move YamlFlowParser to YamlParser
since it's already able to handle all types with generic
2024-11-04 08:19:23 +01:00
GitHub Action
93ff17a0ca chore(translations): auto generate values for languages other than english 2024-11-03 11:24:43 +00:00
Anna Geller
b892c7c8ee docs: better handle trigger.XYZ resolution when hitting Execute button (#5749)
* docs: better handle trigger.XYZ resolution when hitting Execute button

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2024-11-03 12:24:13 +01:00
Anna Geller
824dc0b513 docs: small README fixes 2024-11-03 12:00:32 +01:00
Ludovic DEHON
e32f492e31 fix(ui): capture pageleave in posthog 2024-11-01 23:47:35 +01:00
Anna Geller
b3ab60772d fix: clean up issue templates 2024-11-01 16:36:13 +01:00
Anna Geller
3fad62ed74 fix: bug issue template 2024-11-01 16:32:19 +01:00
Loïc Mathieu
0de62200a4 fix(core): FetchTest is flaky as logs are indexed async 2024-10-31 16:20:30 +01:00
Loïc Mathieu
1953aa90b2 fix(core): save the If evaluation condition in the output
This avoids re-evaluation on each child task run which can be an issue if the taskrun modify something that is part of the condition.

Fixes #5437
2024-10-31 16:20:30 +01:00
Malay Dewangan
66698d580d fix: Ensure strict typing for input defaults to prevent runtime errors (#5604)
* fix: Ensure strict typing for input defaults to prevent runtime errors

* fix: Ensure strict typing for other input defaults to prevent runtime errors

* test: add unit tests

* fix: update test cases
2024-10-31 14:33:32 +01:00
Vivek Gangwani
b85d7f0624 chore(ui): improve stack trace output on light mode (#5738) 2024-10-31 14:23:11 +01:00
Mradul Vishwakarma
2946db29d0 chore(ui): improve empty states (#5739) 2024-10-31 14:17:28 +01:00
Miloš Paunović
512c20d22d chore(deps): regular dependency update (#5732) 2024-10-31 09:47:45 +01:00
Mradul Vishwakarma
73051f5efd chore(ui): amend execute button overflow (#5690) 2024-10-31 09:36:24 +01:00
Miloš Paunović
98a1f916fb chore(test): add data-test-id attribute to inputs form 2024-10-31 09:03:33 +01:00
brian.mulier
50f539e91f fix(ui): prevent duplicate input validations + avoid error spamming + send boolean inputs properly
closes #5731
2024-10-30 21:13:24 +01:00
Loïc Mathieu
6103b48aa2 feat(core): render properties via the run context 2024-10-30 17:31:39 +01:00
brian.mulier
e969425dba fix: better log display and combine temporal & taskruns view log navigation handling 2024-10-30 13:32:53 +01:00
Loïc Mathieu
730b2cac39 feat(core): MultipleConditon deadline
Fixes #5706
2024-10-30 12:23:58 +01:00
Loïc Mathieu
18cf3f4aa4 feat(core): new ExecutionFilters condition 2024-10-30 12:16:37 +01:00
Loïc Mathieu
4550aa9b15 feat(*): change system label prefix to use a dot
Fixes #5708
2024-10-30 11:53:26 +01:00
brian.mulier
9d809e8b53 fix: gantt view was no longer fetching logs 2024-10-30 11:05:12 +01:00
Ganesh Kumar C
80b1024942 fix(ui): amend chart coloring on theme changes (#5709) 2024-10-29 18:29:17 +01:00
Sachin
8445857204 fix(ui): log navigation is now working in temporal view (#5685)
closes #5215
2024-10-29 14:43:05 +01:00
Barthélémy Ledoux
880ede0eae feat: update design of blueprint header (#5652)
* add nvmrc to fix version of node

* update layout of blueprints

* adjust css

* support light mode

* fix build process

* chore(translations): auto generate values for languages other than english

* restore the translation files

* chore(translations): auto generate values for languages other than english

* fix layout of tabs when using type card

* fix gradients of icons

* chore(translations): auto generate values for languages other than english

* adjust spaces

* adjust width on oss

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: GitHub Action <actions@github.com>
2024-10-29 14:27:24 +01:00
Vivek Gangwani
a354a69780 feat(ui): added error message and stacktrace to the execution overview (#5703) 2024-10-29 11:58:42 +01:00
dependabot[bot]
becaf149f6 chore(deps): bump flyingSaucerVersion from 9.9.4 to 9.10.2
Bumps `flyingSaucerVersion` from 9.9.4 to 9.10.2.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.9.4 to 9.10.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.9.4...v9.10.2)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.9.4 to 9.10.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.9.4...v9.10.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-29 10:34:38 +01:00
Loïc Mathieu
52dcc5f119 feat(core): new FlowFilters condition
Part-of: #1543
2024-10-29 09:58:28 +01:00
yuri
df8606aa50 chore(build): make Gradle less noisy (#5700)
* Fix Idea-reported problems

* Minimize Gradle 9.0-related warnings

* Migrate Shadow plugin

The plugin ID `com.github.johnrengelman.shadow` is no longer maintained.
See: https://github.com/GradleUp/shadow/issues/908

* Make Shadow JAR-related task incremental
2024-10-29 09:47:46 +01:00
Loïc Mathieu
04b70d6845 feat: add OpenSearch plugin 2024-10-29 09:34:35 +01:00
Ludovic DEHON
b4f72ccf34 chore: remove useless files 2024-10-29 09:26:54 +01:00
Shivansh Sharma
6227a4c4b3 chore(ui): move save button on settings page to header (#5697) 2024-10-29 08:46:16 +01:00
GitHub Action
16e1757c94 chore(translations): auto generate values for languages other than english 2024-10-29 07:29:56 +00:00
Shivansh Sharma
8e33b27675 chore(ui): rename create button to create flow on main dashboard (#5689) 2024-10-29 08:29:33 +01:00
Ludovic DEHON
389ca0edfb chore(cicd): fix jacoco xml report path 2024-10-28 23:42:56 +01:00
Loïc Mathieu
557eb8185f fix(core): serialize duration as strings
Fixes #5615

Since Jackson 2.10, to serialize duration as string we need to switch WRITE_DURATIONS_AS_TIMESTAMPS off as it no longuer use WRITE_DATES_AS_TIMESTAMPS.
I tested and an old flow with a duration as timestamp is still readable so this is a backward compatible change.

But for the State duration, we still need to serialize it as a number as the database expect a number
2024-10-28 15:57:51 +01:00
Rudhra Bharathy G
c20e105c10 chore(ui): add option for editor theme to sync with system (#5669) 2024-10-28 13:53:57 +01:00
Prajyot
10374a114c chore(ui): show empty state if there are no flows (#5667) 2024-10-28 13:44:39 +01:00
Loïc Mathieu
eff39944d9 feat(core): add the system_correlationId label on all executions
Fixes #5644
2024-10-28 12:32:00 +01:00
Shivansh Sharma
de0d3bdff1 chore(ui): improve initial blueprints loading(#5683) 2024-10-28 12:04:55 +01:00
Shivansh Sharma
c17e09d9e6 chore(ui): improve initial topology loading (#5671) 2024-10-28 11:59:54 +01:00
GitHub Action
a73890447e chore(translations): auto generate values for languages other than english 2024-10-28 10:42:52 +00:00
Vivek Gangwani
caed09a496 feat(ui): create reusable empty state component (#5664) 2024-10-28 11:41:59 +01:00
Loïc Mathieu
62dbea3291 feat(core): simplify multiple condition window
Fixes #5656
2024-10-28 10:44:22 +01:00
dependabot[bot]
67aee4eddf chore(deps): bump org.owasp.dependencycheck from 10.0.4 to 11.0.0
Bumps org.owasp.dependencycheck from 10.0.4 to 11.0.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 09:39:30 +01:00
Loïc Mathieu
33d079fc62 feat(core): add methods to render properties into the run context 2024-10-28 09:26:45 +01:00
Ludovic DEHON
3ae4c48ec7 chore(cicd): use a non branch version for test artifact 2024-10-25 23:12:55 +02:00
Loïc Mathieu
791ced866b feat(core): refactor labels handling
Fixes https://github.com/kestra-io/kestra-ee/issues/2001
2024-10-25 14:20:21 +02:00
Loïc Mathieu
2b72a824e0 feat(core): system_readOnly label
Part-of: https://github.com/kestra-io/kestra-ee/issues/1867
2024-10-25 14:20:21 +02:00
Loïc Mathieu
da0091349c fix(jdbc): JdbcExecutor must be tolerant of flow topology issue 2024-10-25 14:20:21 +02:00
Malay Dewangan
f93f5c67a5 fix(core): return flow outputs in execution API response when wait=true (#5531) 2024-10-25 10:02:54 +02:00
brian.mulier
d7200e305f fix(deps): fixed apache httpclient5 version to avoid breaking docker 2024-10-24 16:42:40 +02:00
Loïc Mathieu
c14bf3c437 chore: use an NVD API Key for vulnerability check 2024-10-24 14:27:01 +02:00
MITHIN DEV
67dde3a9c3 chore(ui): improve task run label coloring (#5642) 2024-10-24 14:25:26 +02:00
Loïc Mathieu
805bdbe4da chore: use an NVD API Key for vulnerability check 2024-10-24 14:19:21 +02:00
GitHub Action
2c7804fa82 chore(translations): auto generate values for languages other than english 2024-10-24 11:53:20 +00:00
Ganesh Kumar C
56d849ff9b feat(ui): add global save button to settings page (#5602) 2024-10-24 13:52:50 +02:00
Mradul Vishwakarma
d33d6a7983 feat(ui): only show columns with data on triggers page (#5555) 2024-10-24 13:40:58 +02:00
Loïc Mathieu
e84b27267f fix(ui): don't show the info alert when no info
Fixes #5640
2024-10-24 13:08:41 +02:00
Miloš Paunović
f8f763b80e fix(ui): prevent validation errors showing if inputs are empty (#5648) 2024-10-24 12:27:07 +02:00
Loïc Mathieu
bd60c0621a feat(ui): add error.message and error.stackTrace to autocomplete
Fixes #5641
2024-10-24 10:49:42 +02:00
AbdurRahman2004
31f1e78a6b chore(ui): amend table link colors on main dashboard (#5638) 2024-10-23 23:11:19 +02:00
Abhishek Khairnar
339c4008bb fix: code block appearance (#5636) 2024-10-23 17:38:01 +02:00
Loïc Mathieu
336f89a799 feat(core): use an info block for alias documentation
Part-of: #4753
2024-10-23 17:16:56 +02:00
GitHub Action
91f176051a chore(translations): auto generate values for languages other than english 2024-10-23 14:00:41 +00:00
Loïc Mathieu
59141f3dbd feat(cli,core,webserver): move alias to informative notice (#5616)
* feat(*): move alias to informative notice

Part-of: #4753

* chore(translations): auto generate values for languages other than english

* Update ui/src/translations/en.json

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

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
2024-10-23 16:00:20 +02:00
Sarthak Pandey
bff706c064 chore(ui): rename twitter to x in readme file (#5628) 2024-10-23 15:44:25 +02:00
Nikhil Sinha
b99d9d4526 feat(core): new sleep task
close #4879 
Co-authored-by: YannC <ycoornaert@kestra.io>
2024-10-23 15:36:41 +02:00
YannC
d3ccf4f5ac fix(core): fix FileWatcher loading flow from local file 2024-10-23 15:24:55 +02:00
Loïc Mathieu
9162353f2e chore: upgrade frontend-jdk17:8.0.1 to frontend-jdk21:9.0.0
Closes #5622
2024-10-23 14:30:23 +02:00
dependabot[bot]
67d3e2f20a chore(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.14.0 to 2.16.0.
- [Release notes](https://github.com/opensearch-project/opensearch-java/releases)
- [Changelog](https://github.com/opensearch-project/opensearch-java/blob/v2.16.0/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/opensearch-java/compare/v2.14.0...v2.16.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 14:30:06 +02:00
dependabot[bot]
fc62197f5a chore(deps): bump org.jooq:jooq from 3.19.13 to 3.19.14
Bumps org.jooq:jooq from 3.19.13 to 3.19.14.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 14:18:56 +02:00
Loïc Mathieu
c4614664bd feat(core,jdbc): add message protection metric 2024-10-23 14:04:03 +02:00
dependabot[bot]
9598eac6aa chore(deps): bump com.microsoft.playwright:playwright
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.47.0 to 1.48.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.47.0...v1.48.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 13:08:29 +02:00
Abhishek Khairnar
a885a3200f chore(ui): add background color to every namespace on listing (#5603) 2024-10-23 12:56:28 +02:00
MilosPaunovic
3ac423c390 chore(deps): remove default reviewer from dependabot pull requests 2024-10-23 12:29:38 +02:00
Miloš Paunović
b4a7200cbf chore(deps): regular dependency update (#5618) 2024-10-23 12:26:15 +02:00
dependabot[bot]
2627cab68b chore(deps-dev): bump @typescript-eslint/parser in /ui (#5613)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.9.0 to 8.11.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.11.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 12:05:29 +02:00
dependabot[bot]
2622c0ad38 chore(deps): bump posthog-js from 1.169.0 to 1.174.3 in /ui (#5612)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.169.0 to 1.174.3.
- [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.169.0...v1.174.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 12:04:54 +02:00
dependabot[bot]
574f236837 chore(deps): bump element-plus from 2.8.5 to 2.8.6 in /ui (#5610)
Bumps [element-plus](https://github.com/element-plus/element-plus) from 2.8.5 to 2.8.6.
- [Release notes](https://github.com/element-plus/element-plus/releases)
- [Changelog](https://github.com/element-plus/element-plus/blob/dev/CHANGELOG.en-US.md)
- [Commits](https://github.com/element-plus/element-plus/compare/2.8.5...2.8.6)

---
updated-dependencies:
- dependency-name: element-plus
  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>
2024-10-23 12:04:25 +02:00
dependabot[bot]
0197886a33 chore(deps-dev): bump eslint-plugin-vue from 9.29.0 to 9.29.1 in /ui (#5609)
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 9.29.0 to 9.29.1.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v9.29.0...v9.29.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-vue
  dependency-type: direct:development
  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>
2024-10-23 12:04:06 +02:00
dependabot[bot]
c958d50f6d chore(deps-dev): bump vite from 5.4.9 to 5.4.10 in /ui (#5608)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.9 to 5.4.10.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.10/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.10/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  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>
2024-10-23 12:03:38 +02:00
MilosPaunovic
75d45f80d2 feat(ui): filter only labels on execution list 2024-10-23 12:00:48 +02:00
MilosPaunovic
03da8f1764 feat(ui): filter execution list to ignore labels containing hidden prefixes 2024-10-23 12:00:48 +02:00
Loïc Mathieu
3924f56b70 feat(cli,webserver): hidden labels 2024-10-23 12:00:48 +02:00
MilosPaunovic
29d2a2bf85 chore(ui): use proper translation key 2024-10-23 11:18:02 +02:00
YannC
b399907016 fix(core): encode filename (#5593)
close #5589
2024-10-22 16:05:45 +02:00
Loïc Mathieu
30dab4f027 feat(core,webserver): correlation ID
Automatically set the 'system_correlationId' label to the parent execution id for all child, recursively.
This label is the only one that can be set once when starting an execution.
2024-10-22 15:35:13 +02:00
Loïc Mathieu
a136988946 feat(core): system labels
System labels are labels starting with 'system_', they cannot be set by a user but only Kestra itself.
2024-10-22 15:35:13 +02:00
brian.mulier
ffe7e6760e fix(webserver): remove useless call for flow auto loader 2024-10-22 13:38:21 +02:00
MilosPaunovic
345f799fc1 chore(ci): revert improvement of translation automation 2024-10-22 12:45:00 +02:00
Karthik D
45369bd7d9 chore(ci): improve translation automation (#5558) 2024-10-22 12:37:57 +02:00
Saipavan Lingamallu
8ebadb8559 chore(ui): improve secondary button hover state (#5565) 2024-10-22 12:14:57 +02:00
Abhishek Khairnar
25e86a1ad4 chore(ui): improve markdown table design (#5564) 2024-10-22 12:02:24 +02:00
Anna Geller
6ecf64d8bd fix: flow trigger docs (#5592)
* Update Flow.java

* Update Flow.java
2024-10-22 11:11:48 +02:00
MilosPaunovic
1c4aa3aaf4 chore(ui): align empty state handling for namespace execution chart 2024-10-22 10:36:21 +02:00
GitHub Action
3fa1b85fb0 chore(translations): auto generate values for languages other than english 2024-10-22 08:34:31 +00:00
Hisham Akmal
f45e934573 feat(ui): enhance empty state handling for tables and charts (#5557) 2024-10-22 10:34:10 +02:00
brian.mulier
dd48ad869c feat(webserver): call versioned endpoints for fetching blueprints 2024-10-21 17:55:49 +02:00
Loïc Mathieu
56ea2836f6 feat(core): add validation to the retry objects
Fixes #2840
2024-10-21 16:49:29 +02:00
Loïc Mathieu
004b7a0d8e fix(core): serialize default inputs
Fixes https://github.com/kestra-io/kestra-ee/issues/1887
2024-10-21 13:19:08 +02:00
YannC
7ec19fc77c fix(core): Recovered method in flow service for plugins (#5571) 2024-10-21 11:57:17 +02:00
Barthélémy Ledoux
5ada1a2752 build: fix dev for arm64 & prettier (#5574)
* build: fix dev env for arm64

* add global prettierignore

---------

Co-authored-by: Bart Ledoux <bledoux@kestra.io>
2024-10-21 11:20:40 +02:00
yuri1969
0e8fd14780 feat(docs): improve warningOnStdErr info clarity 2024-10-21 10:09:12 +02:00
yuri1969
bc9c43612a chore(core): remove trailing whitespace 2024-10-21 10:09:00 +02:00
dependabot[bot]
77529e7017 chore(deps): bump andrcuns/allure-publish-action from 2.7.1 to 2.8.0
Bumps [andrcuns/allure-publish-action](https://github.com/andrcuns/allure-publish-action) from 2.7.1 to 2.8.0.
- [Release notes](https://github.com/andrcuns/allure-publish-action/releases)
- [Commits](https://github.com/andrcuns/allure-publish-action/compare/v2.7.1...v2.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 09:14:49 +02:00
dependabot[bot]
a6a5e43dc0 chore(deps): bump aquasecurity/trivy-action from 0.27.0 to 0.28.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.27.0 to 0.28.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.27.0...0.28.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 09:14:40 +02:00
Ahmad Midlaj B
d7075e5fba fix(ui): standardize font size in filter forms (#5553) 2024-10-21 08:58:26 +02:00
Ganesh Kumar C
7bfc1ebbe4 feat(ui): add sync with system theme option(#5554) 2024-10-21 08:35:59 +02:00
Rafael Floriano
1f850fb845 chore(ui): increase the width of the scrollbar for file explorer (#5552) 2024-10-21 08:15:33 +02:00
Sharad Kushwaha
4fbf1977be chore(ui): compress plugins page background header image (#5559) 2024-10-21 08:09:57 +02:00
Loïc Mathieu
48da2a746c fix(core): ResumeTest didn't pass anymore
As we cannot anymore pause in one branch and continue in the other
2024-10-18 16:50:24 +02:00
GitHub Action
416e2a1ffd chore(translations): auto generate values for languages other than english 2024-10-18 16:50:24 +02:00
Loïc Mathieu
7c665c76be feat(*): pause a running execution manually
Fixes #1937
2024-10-18 16:50:24 +02:00
brian.mulier
a438f9c0dc fix(tests): uppercases in metadata keys to make sure case is kept upon retrieval
part of kestra-io/storage-minio#95
2024-10-18 16:18:11 +02:00
Loïc Mathieu
7783846d25 fix(webserver): don't load the flow too early so a user with only EXECUTION permission can access execution files
Fixes https://github.com/kestra-io/kestra/issues/4958
2024-10-18 15:23:18 +02:00
brian.mulier
85c9892ff9 fix(ui): code blocks had wrong indent
closes #5504
2024-10-18 14:23:19 +02:00
Loïc Mathieu
0f6b501895 fix(core): decrypt additional render variables
Fixes https://github.com/kestra-io/plugin-kubernetes/issues/150
2024-10-18 14:22:29 +02:00
brian.mulier
2767eebcd0 fix(core): better error message in case of docker socket not found / not accessible
closes #5524
2024-10-18 13:59:00 +02:00
Loïc Mathieu
4044189e90 chore(core): fixup 2024-10-18 12:48:35 +02:00
Harsh4902
43e56f8943 fixes #5459 used HashMap instead of Map to accept null values.
Signed-off-by: Harsh4902 <harshparmar4902@gmail.com>
2024-10-18 12:48:35 +02:00
Harsh4902
4f79597ae9 fixes #5459 added small null check in io.kestra.plugin.core.http.Trigger.evaluate to check wether response body is empty or not
Signed-off-by: Harsh4902 <harshparmar4902@gmail.com>
2024-10-18 12:48:35 +02:00
Mradul Vishwakarma
80c6b653d8 chore(ui): auto scroll plugins list to the currently open one (#5536) 2024-10-18 11:29:27 +02:00
Miloš Paunović
96e5cbccb8 fix(ui): amend display of trigger inputs (#5542) 2024-10-18 11:24:02 +02:00
brian.mulier
51b78a963a fix(doc): CardLogos.vue had wrong URL
closes kestra-io/docs#1808
2024-10-18 10:26:36 +02:00
Hashim Khalifa
5a88745118 feat(core): implemented a new input type email with validation (#5513)
close #5477

Co-authored-by: YannC <ycoornaert@kestra.io>
2024-10-18 09:38:21 +02:00
YannC
cfe5024fda fix(core): correctly cast input to FLOAT for subflows (#5539)
close #5535
2024-10-18 09:29:02 +02:00
Mohammed Viqar Ahmed
e2f0b501f8 Renaming RUNNING to IN-PROGRESS within the ForEachItem execution #3453 (#5471)
close #3453
2024-10-18 09:09:06 +02:00
Miloš Paunović
5b1cb060a5 feat: change the view of trigger outputs (#5519) 2024-10-17 12:12:06 +02:00
Sai Mounika Peri
0b1536f5ab fix(ui): concurrency limit should be greater than zero (#5500)
close #4904
2024-10-17 11:47:03 +02:00
Varsha U N
7ddf8bd40e chore(ui): increase the in-app docs scrollbar width (#5473) 2024-10-17 09:39:38 +02:00
Purandhar Adigarla
17198798be chore(ui): add an extra space between icon and label inside a button (#5507)
Co-authored-by: PurandharAdigarla <purandharadigarla.com>
2024-10-17 09:00:19 +02:00
Florian Hussonnois
548e058cf8 fix(core): fix inputs for execution resume (#5494)
fix: #5494
2024-10-16 17:58:42 +02:00
Sachin
5acb6d044e fix(ui): hide pagination when no flows results data available (#5501)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-16 17:33:45 +02:00
GitHub Action
c7cb4172a3 chore(translations): auto generate values for languages other than english 2024-10-16 14:13:14 +00:00
Sachin
53f77f9ea5 chore(ui): update no logs message for flows source search
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-16 16:12:50 +02:00
Loïc Mathieu
caf55800eb feat(core): add error message and stacktrace to the execution 2024-10-16 15:27:31 +02:00
Loïc Mathieu
074c0332a4 feat(core, ui): add the failed task id to the execution context
Part-of: https://github.com/kestra-io/kestra/issues/2000
2024-10-16 11:55:19 +02:00
Loïc Mathieu
c53a001f21 chore: publish Docker latest-full image
Fixes https://github.com/kestra-io/kestra/issues/5475
2024-10-16 10:40:12 +02:00
YannC
e3ae19a73d feat(core): add allowWarning property (#5472)
close #1926
2024-10-16 10:07:12 +02:00
Miloš Paunović
edcb07ad6e chore(deps): regular dependency update (#5488) 2024-10-16 08:29:24 +02:00
GitHub Action
0b2da83c8a chore(translations): auto generate values for languages other than english 2024-10-15 14:55:16 +00:00
YannC
cc25ca89ee feat(core): add condition property to Task to simplify conditional (#5331)
* feat(core): add condition property to Task to simplify conditional

* chore(translations): auto generate values for languages other than english

* chore(test): test + optimize code in executor

---------

Co-authored-by: GitHub Action <actions@github.com>
2024-10-15 16:54:53 +02:00
YannC
3f18e2c2dd feat(core): Modify constraint error message to replace taskId if exist (#5461)
* feat(core): Modify constraint error message to replace taskId if exist

* feat(): improved message and fix tests
2024-10-15 14:40:22 +02:00
yuri
80d8a7ff7d fix(github): fix template typo 2024-10-15 13:37:25 +02:00
Loïc Mathieu
4f9121eadb fix(core): imrove flaky test for skip execution 2024-10-15 11:44:03 +02:00
Loïc Mathieu
2c6e4df637 fix(core): add back the indexer in all cases 2024-10-15 11:44:03 +02:00
Loïc Mathieu
e9b4df4ffa fix(core): allow starting without an indexer as tests may not have one 2024-10-15 10:51:33 +02:00
Florian Hussonnois
c97a10b47b refactor(core): move to reactor for handling execution inputs (#5383)
related-to: #5383
2024-10-15 09:41:30 +02:00
YannC
a95d31739d fix(*): allow deletion of label by setting empty key or empty value (#5452) 2024-10-14 16:54:12 +02:00
YannC
a47e293ffe feat(core): cli command for update/create/delete single flow (#5410)
close #747
2024-10-14 14:07:38 +02:00
Shruti Mantri
46f8bef5cc feat(docs): add more HTTP Request task full plugin examples (#5429)
* feat(docs): add more HTTP Request task full plugin examples

* Update core/src/main/java/io/kestra/plugin/core/http/Request.java

---------

Co-authored-by: Will Russell <wrussell@kestra.io>
2024-10-14 11:09:35 +01:00
Loïc Mathieu
d78832f6bf feat(core): allow dynamic properties for Split and ForEachItem
Fixes #5442
2024-10-14 12:04:31 +02:00
Malay Dewangan
c667fbf748 fix(core): OutputValues to support arrays and complex objects (#5440) 2024-10-14 10:57:37 +02:00
Sachin
b5f00e69f5 chore(ui): use standard graphs across all pages (#5443) 2024-10-14 10:39:47 +02:00
MITHIN DEV
f297f9053a chore(ui): make bar chart more responsive on smaller screens (#5439)
Signed-off-by: mithindev <mithindev1@gmail.com>
2024-10-14 10:35:21 +02:00
yuri
b256722ac9 feat(ui): allow searching read-only inputs (#5427) 2024-10-14 10:26:50 +02:00
Sachin
ea68ac8e4e fix(ui): prevent tab title change on cancelling unsaved changes (#5435)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-14 10:24:45 +02:00
Sachin
bf8ef645fb fix(ui): resolve issue preventing flow creation (#5444)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-14 10:22:52 +02:00
Miloš Paunović
6384615ce5 chore(ui): add filters for flow logs (#5446) 2024-10-14 10:19:21 +02:00
Loïc Mathieu
5228ccf0f8 feat(core, jdbc): introduce a JDBC indexer 2024-10-14 09:28:41 +02:00
brian.mulier
876b36cf89 fix(tests): add a test to cover a put file from another storage file data
part of #4761
2024-10-11 18:43:23 +02:00
dependabot[bot]
e12ba7d606 chore(deps): bump net.thisptr:jackson-jq
Bumps [net.thisptr:jackson-jq](https://github.com/eiiches/jackson-jq) from 1.0.0-preview.20240207 to 1.0.1.
- [Release notes](https://github.com/eiiches/jackson-jq/releases)
- [Commits](https://github.com/eiiches/jackson-jq/compare/1.0.0-preview.20240207...1.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-11 16:35:06 +02:00
dependabot[bot]
3cc60f8fad chore(deps): bump aquasecurity/trivy-action from 0.24.0 to 0.27.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.24.0 to 0.27.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.24.0...0.27.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-11 16:12:08 +02:00
brian.mulier
18901dd41c feat(webserver): send system namespace value in config endpoint
part of #5396
2024-10-11 16:05:16 +02:00
GitHub Action
be87bef420 chore(translations): auto generate values for languages other than english 2024-10-11 13:46:53 +00:00
Will Russell
3f46f127a5 fix: move plus to correct position 2024-10-11 14:46:28 +01:00
Loïc Mathieu
4e514cb6cf fix(cli): incorrect JDBC conf 2024-10-11 14:30:28 +02:00
Miloš Paunović
7c81319b57 chore(ui): check if tab exists before setting dirty attribute on it (#5423) 2024-10-11 12:35:29 +02:00
GitHub Action
cfc8389c94 chore(translations): auto generate values for languages other than english 2024-10-11 09:43:04 +00:00
Mohammed Viqar Ahmed
90a4e97bdb feat(ui): add option to delete multiple kv pairs at once (#5413) 2024-10-11 11:42:35 +02:00
Jonnadula Chaitanya
b4b0253167 fix(ui): take default namespace into account on filters (#5406) 2024-10-11 11:31:33 +02:00
yuri
cbca503c7b chore(git): remove unintended submodule (#5414)
Removed Git submodule introdued by 4b5ca3013f.
2024-10-11 09:28:19 +02:00
YannC
e2daaf091d feat(core): create new command to allows update multiple flows whatever the namespace and update the FlowNamespaceUpdateCommand to add an option to override all namespaces (#5407) 2024-10-10 22:30:34 +02:00
Florian Hussonnois
78bd7d2283 chore(ore): update DeserializationException 2024-10-10 21:14:48 +02:00
Loïc Mathieu
9bb0dd37ab feat(core): ForEachItme avoid checking all split file for existance but list them 2024-10-10 17:36:17 +02:00
Florian Hussonnois
9fee966484 fix(core): fix do not upload file when validating inputs (#5399)
Fix: #5399
2024-10-10 14:20:26 +02:00
Miloš Paunović
daadfdb31a fix(ui): amend duplication the lables field on execution run (#5405) 2024-10-10 11:50:51 +02:00
Florian Hussonnois
eb1fc25a0d refactor(core): enhancement for service liveness
This commit contains some code refactoring to decouple
the ServiceLivenessManager and ServiceLivenessCoordinator
from repository.

Changes:
- add new ServiceLivenessStore interface
- add new ServiceLivenessUpdater interface
2024-10-10 10:54:07 +02:00
Miloš Paunović
dd7daf7cd5 chore(ui): filter out system namespace from namespace select filter (#5403) 2024-10-10 10:53:29 +02:00
Will Russell
35e6f21a48 fix: remove depreciated blueprint 2024-10-10 09:49:15 +01:00
Loïc Mathieu
99fa553c62 fix(core): incorrect duration metric computed on the Worker 2024-10-10 10:38:54 +02:00
riya mustare
59b63e6691 Pre-fill namespace from current filter (#5398) 2024-10-10 09:36:34 +02:00
Miloš Paunović
39fb9351c9 fix(ui): make sure disable toggle for triggers of next executions works every time (#5397) 2024-10-10 09:06:31 +02:00
YannC
693702a514 feat(core): Files changes watcher (#5382) 2024-10-10 08:31:22 +02:00
YannC
705b9af0ca feat(core): add new prop tasks to add current state of each existing taskRun in the runContext (#5386) 2024-10-10 08:31:04 +02:00
Mohammed Viqar Ahmed
44d581d5cf chore(docs): add section about javascript memory heap out error in contributing guide (#5392)
* CONTRIBUTING.md : addind node options variable

* chore(ui): improve wording of contribution guide

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-10-10 08:20:30 +02:00
Ahmad Midlaj B
fbf9d0070c fix(ui): make execution replay dialog description readable in dark theme (#5360)
* fix(ui): make text readable in dark theme

* chore(ui): revert package-lock.json file to initial state

---------

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-10-09 21:44:46 +02:00
Miloš Paunović
f3a53c3c33 fix(ui): revert icon coloring tweak (#5393) 2024-10-09 19:02:37 +02:00
brian.mulier
15b1849974 fix(cli): lighter json schema on PluginDocCommand 2024-10-09 18:40:15 +02:00
brian.mulier
51a5cbeb37 fix(cli): ability to generate json schema when using PluginDocCommand 2024-10-09 18:08:56 +02:00
brian.mulier
a80ecbb99b fix(core): allow ExecutableTasks to be deserialized to allow graph deserialization 2024-10-09 17:31:43 +02:00
riya mustare
a814bd477b aligned relative filter (#5388) 2024-10-09 17:07:00 +02:00
Loïc Mathieu
ad93c23cd5 chore(core,jdbc): refactory flow topology to use flow with source 2024-10-09 16:40:03 +02:00
Miloš Paunović
4ee3883cdf fix(ui): amend dark mode icon color on plugins page (#5385) 2024-10-09 14:40:10 +02:00
Harshvardhan Parmar
7ba57df893 fix(ui): prevent overwriting the flow after save from topology (#5361)
Signed-off-by: Harsh4902 <harshparmar4902@gmail.com>
2024-10-09 10:49:16 +02:00
Florian Hussonnois
77f0f1f631 feat(webserver): add API to bulk-delete multiple KV pairs (#5359)
related-to: #5359
2024-10-09 10:20:31 +02:00
Miloš Paunović
f093ca88ff chore(deps): regular dependency update (#5375) 2024-10-09 09:10:50 +02:00
GitHub Action
fce7e5b1b8 chore(translations): auto generate values for languages other than english 2024-10-09 06:16:58 +00:00
Sai Mounika Peri
b695d2ae97 feat(ui): add a tooltip over flow triggers tab if empty (#5358)
Co-authored-by: Will Russell <will@wrussell.co.uk>
2024-10-09 08:14:21 +02:00
Loïc Mathieu
84d845cde4 chore(core, jdbc): refactor Worker with more immutability
Avoid mutating the WorkerTask inside the worker, thanks to that we can avoid serialization/deserialization steps for cleanup transient that can eat up more than 15% of CPU time in the Worker on contrived benchmarks.
2024-10-08 17:26:58 +02:00
YannC
64466103a4 feat(scheduler): add missing "skipLocked()" method so multiple scheduler can query triggers (#5347) 2024-10-08 16:44:05 +02:00
Miloš Paunović
afb3b934e2 chore(ui): make sidebar toggle more prominent (#5357) 2024-10-08 16:26:16 +02:00
Loïc Mathieu
012b9bf67c fix(jdbc): always include deleted the the logs and metrics queries
Even if not needed to be sure we use the correct index.
2024-10-08 13:11:27 +02:00
Loïc Mathieu
157a8063cc chore(core): avoid recreating an ObjectMapper in YamlFlowParser 2024-10-08 12:30:01 +02:00
YannC
2c212598b1 fix(scheduler): Do not remove next schedule date, and add trigger in schedulableNextDate at initialization (#5349)
close #3535
2024-10-08 10:51:20 +02:00
YannC
83f0fe3841 fix(core): missing retry in toFlow() and of() method in Flow class (#5343) 2024-10-08 10:18:40 +02:00
Sachin
e6161c3d11 feat(ui): add chart visibility toggle to flows and logs page (#5345)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-08 10:07:43 +02:00
Sachin
1c3d271dae fix(ui): amend translation keys usage (#5346)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-08 09:47:56 +02:00
GitHub Action
432e896b71 chore(translations): auto generate values for languages other than english 2024-10-08 07:24:30 +00:00
Sai Mounika Peri
b8e4325523 feat(ui): improve page shown when flow has no dependencies (#5340) 2024-10-08 09:23:46 +02:00
riya mustare
54ac92f789 chore(ui): reduced line height on input description (#5344) 2024-10-08 09:16:57 +02:00
Loïc Mathieu
9f686a28cc feat(core,jdbc,webserver): plugin default from Flow source
This would avoid having default values set in the Flow object (JSON) representation so allows to set default that override the object default value (like the one from Lombok `@Builder.Default`).

Fixes #2260
Fixes #2797
2024-10-08 09:04:57 +02:00
Florian Hussonnois
7ec254ae92 feat(core): move service usages 2024-10-07 16:31:05 +02:00
Anna Geller
b95f514a76 Update en.json (#5339)
* Update en.json

* chore(translations): auto generate values for languages other than english

---------

Co-authored-by: GitHub Action <actions@github.com>
2024-10-07 15:32:12 +02:00
Sachin
fae3f13760 fix(ui): add bottom border on debug outputs (#5334)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-07 13:05:24 +02:00
Sachin
663ae2030f fix(ui): prevent removal of empty fields in metadata editor (#5313)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-07 11:24:10 +02:00
Sachin
af311f6e07 fix(ui): amend flow disable from low code editor (#5315)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-07 11:19:53 +02:00
brian.mulier
59f10d452a fix(core): windows backslashes in paths were leading to wrong URI being created leading to error upon execution deletion 2024-10-07 11:15:05 +02:00
Sachin
4b2fbe8338 fix(ui): persisting flow metadata from low code editor (#5316)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-07 11:14:19 +02:00
YannC
98ef14c145 fix(core): set min & max size to flow id/namespace props (#5306) 2024-10-07 11:11:03 +02:00
Sachin
6a44177e88 feat(ui): added executions tab to single namespace (#5322)
Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
2024-10-07 11:03:00 +02:00
Antoine Gauthier
744888526f chore(ui): update button conditions based on flow states (#5319) 2024-10-07 10:29:23 +02:00
Karthik D
4b5ca3013f docs: add Docker Hub documentation and image tags (#5304) 2024-10-07 10:08:17 +02:00
dependabot[bot]
615e1d6831 chore(deps): bump org.junit-pioneer:junit-pioneer from 2.2.0 to 2.3.0
Bumps [org.junit-pioneer:junit-pioneer](https://github.com/junit-pioneer/junit-pioneer) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/junit-pioneer/junit-pioneer/releases)
- [Commits](https://github.com/junit-pioneer/junit-pioneer/compare/v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: org.junit-pioneer:junit-pioneer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 10:07:45 +02:00
dependabot[bot]
6f22bba373 chore(deps): bump opensearchRestVersion from 2.17.0 to 2.17.1
Bumps `opensearchRestVersion` from 2.17.0 to 2.17.1.

Updates `org.opensearch.client:opensearch-rest-client` from 2.17.0 to 2.17.1
- [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.17.0...2.17.1)

Updates `org.opensearch.client:opensearch-rest-high-level-client` from 2.17.0 to 2.17.1
- [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.17.0...2.17.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 09:47:33 +02:00
dependabot[bot]
da007ec1e8 chore(deps): bump nl.basjes.gitignore:gitignore-reader
Bumps [nl.basjes.gitignore:gitignore-reader](https://github.com/nielsbasjes/codeowners) from 1.8.0 to 1.9.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.8.0...v1.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 09:47:06 +02:00
dependabot[bot]
9cb3ac96b4 chore(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.6.2 to 4.6.3.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.6.2...v4.6.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 09:46:53 +02:00
Sai Mounika Peri
624dbb4d30 chore(ui): improve validation for kv store (#5321)
* Validation error of previous type should be cleared once the KV type is changed

* chore(ui): remove comment as code is self-explanatory

---------

Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-10-07 08:58:33 +02:00
brian.mulier
39c2698756 fix(core): path matcher for windows were not working 2024-10-04 19:40:39 +02:00
dependabot[bot]
98477ae9a6 chore(deps): bump org.jooq:jooq from 3.19.12 to 3.19.13
Bumps org.jooq:jooq from 3.19.12 to 3.19.13.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 17:06:03 +02:00
Loïc Mathieu
f92da780f7 feat(core): Plugin Default validation
Fixes https://github.com/kestra-io/kestra-ee/issues/39
2024-10-04 17:04:48 +02:00
GitHub Action
70de7a1d57 chore(translations): auto generate values for languages other than english 2024-10-04 13:40:24 +00:00
Miloš Paunović
a0dcf585fb chore(ui): improve the dashboard ratios calculation (#5311) 2024-10-04 15:39:43 +02:00
Sachin
3be6f1c320 chore(ui): use improved chart for flow executions (#5309)
* Replace the Flows Execution barchart with the barchart used on the main dashboard

* chore(ui): added bottom margin

---------

Co-authored-by: Sachin KS <mac@apples-MacBook-Air.local>
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
2024-10-04 14:58:10 +02:00
Loïc Mathieu
584e7679a0 feat(core): switch to callable and don't use another thread to run the task 2024-10-04 14:34:58 +02:00
YannC
d982881bd9 fix(ui): filter by triggerId when loading logs from triggerFlow page (#5307) 2024-10-04 11:24:00 +02:00
Miloš Paunović
11cdf2369c fix(ui): prevent cases where dashboard totals shows nan instead of value (#5308) 2024-10-04 10:54:23 +02:00
Loïc Mathieu
2c8212c5e7 Revert "feat(core): switch to callable and don't use another thread to run the task"
This reverts commit b106458561.
2024-10-04 09:45:58 +02:00
Loïc Mathieu
3e656cd3cb fix(core): log with the final taskrun 2024-10-04 09:24:27 +02:00
Loïc Mathieu
b106458561 feat(core): switch to callable and don't use another thread to run the task 2024-10-04 09:24:27 +02:00
Miloš Paunović
d9dfbb8be4 fix(ui): amend end date on dashboard refresh (#5303) 2024-10-04 09:05:20 +02:00
Miloš Paunović
637e7ee160 chore(ui): re-calculate translation strings for left menu after language change (#5302) 2024-10-04 08:02:34 +02:00
Miloš Paunović
7b11b1c359 chore(ci): add check for translation keys matching (#5301) 2024-10-03 21:51:50 +02:00
Miloš Paunović
9325668ffd chore(ui): uniform translation keys across languages (#5298) 2024-10-03 20:03:51 +02:00
Florian Hussonnois
0d17a81899 refactor(core): use interface HasUID when possible
This commit adds a new HasUID interface for explicitly
managing classes that expose a unique identifier
2024-10-03 19:54:41 +02:00
YannC
f93013abc3 feat(core): Added namespaces property to the Count task (#5295) 2024-10-03 15:28:42 +02:00
Miloš Paunović
216a083404 fix(ui): amend logs scrolling for the last task (#5294) 2024-10-03 13:21:00 +02:00
Loïc Mathieu
d9ec3628fa fix(core): plugin default test 2024-10-03 11:07:11 +02:00
Loïc Mathieu
975ab4ba7f feat: allow to send output from a failed task
Fixes #4020
2024-10-03 10:29:40 +02:00
MilosPaunovic
c11d7a7cb8 chore(ci): exit workflow with success if no changes are present 2024-10-03 09:35:59 +02:00
Loïc Mathieu
23582c1057 fix(core): hide secret inputs in logs
Fixes #5259
2024-10-03 09:32:45 +02:00
MilosPaunovic
1d219d58b6 chore(ci): separate direct pull requests and the ones from forked repositories 2024-10-03 09:20:12 +02:00
MilosPaunovic
b2045b2364 chore(ci): expose paste to editor function globally for testing 2024-10-03 08:31:04 +02:00
yuri
a0f2547a1b fix(ui): enable keyboard shortcut to launch execution (#5288) 2024-10-03 08:16:20 +02:00
Vivek Gangwani
9d09786b2e fix (ui): Unable to unselect the currently chosen log level (#5287)
* Update root.scss to Fix Topology View for Light Mode

* Update root-dark.scss to unify Gantt and TOpology View Colors

* Added deselect button for Log Levels
2024-10-02 18:49:30 +02:00
Vivek Gangwani
8763455eca chore(ui): making the color scheme the same for gantt and topology(#5280) 2024-10-02 16:00:19 +02:00
brian.mulier
9dc32febf6 fix(ui): properly expand parent on route change in Docs tab 2024-10-02 14:44:26 +02:00
brian.mulier
7a8002bf18 fix(ui): no more blinking upon clicking on a parent page in docs
close #5270
2024-10-02 13:37:31 +02:00
MilosPaunovic
79bc504620 chore(ui): uniform using import class 2024-10-02 12:50:28 +02:00
Miloš Paunović
bd71b2f8ab chore(ci): generate translation values as a commit to existing pull request (#5278) 2024-10-02 12:37:22 +02:00
Ludovic DEHON
e7ea224e16 fix(ui): use same layout for plugin than doc
close #5218
2024-10-02 11:26:33 +02:00
Sai Mounika Peri
2a68d8e1e0 chore(ui): update parent from metadata editor (#5265) 2024-10-02 11:07:47 +02:00
AbdurRahman2004
0436dd72ae chore(ui): move the delete logs button to top (#5266)
* Move 'Delete logs' button to top right corner of navigation

---------

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-10-02 10:31:39 +02:00
Florian Hussonnois
6629e7a49c fix(core): use tenant for resolving worker groups 2024-10-02 10:16:16 +02:00
Antoine Gauthier
ea39f0ce40 fix(ui): amend typos in french translations (#5272) 2024-10-02 09:53:58 +02:00
dependabot[bot]
495e72707c chore(deps): bump posthog-js from 1.165.1 to 1.166.1 in /ui (#5271)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.165.1 to 1.166.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.165.1...v1.166.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-02 09:46:39 +02:00
Ludovic DEHON
d2c7b0e762 chore(cicd): keep the same allure report directory no matter the run 2024-10-01 23:54:13 +02:00
brian.mulier
255263a7fa fix(ci): add back datahub plugin to ci build 2024-10-01 22:30:58 +02:00
brian.mulier
f403d3efbd fix(ci): remove datahub plugin for now as it's not finished 2024-10-01 18:14:29 +02:00
github-actions[bot]
69a4ba25fb Auto-generate translations from en.json (#5264)
Co-authored-by: GitHub Action <actions@github.com>
2024-10-01 17:50:30 +02:00
Jonnadula Chaitanya
66159fab53 feat(ui): "see all" options to executions in progress #5200 (#5260)
* feat(ui): "see all" options to executions in progress

* fix(ui): polishing

---------

Co-authored-by: YannC <ycoornaert@kestra.io>
2024-10-01 17:48:41 +02:00
dependabot[bot]
cfbe36840d chore(deps): bump com.fasterxml.jackson:jackson-bom
Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.17.2 to 2.18.0.
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.17.2...jackson-bom-2.18.0)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 17:25:41 +02:00
dependabot[bot]
dedf6e5141 chore(deps): bump com.github.oshi:oshi-core from 6.6.4 to 6.6.5
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.6.4 to 6.6.5.
- [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.6.4...oshi-parent-6.6.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 17:25:30 +02:00
dependabot[bot]
805353cc80 chore(deps): bump org.apache.logging.log4j:log4j-to-slf4j
Bumps org.apache.logging.log4j:log4j-to-slf4j from 2.24.0 to 2.24.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 17:25:18 +02:00
Loïc Mathieu
b5b66a375d fix(core): kv.GetKeys with no prefix 2024-10-01 17:25:05 +02:00
brian.mulier
9e9544550e fix(ci): restore github release on main workflow in case of skipped e2e 2024-10-01 15:29:00 +02:00
brian.mulier
2c674115fa fix(ci): publish maven even if E2E were skipped 2024-10-01 14:24:59 +02:00
brian.mulier
2e1d91bb12 fix(ci): no more docker build & E2E for tags build 2024-10-01 13:14:22 +02:00
Miloš Paunović
a9950c76fc chore(docs): add a link to filtered out good first issues (#5255) 2024-10-01 12:09:37 +02:00
Loïc Mathieu
0d64bf7c47 doc(cicd): improve contributing guidelines (#5256) 2024-10-01 12:09:16 +02:00
brian.mulier
cccc7df18f chore(version): update snapshot version 'v0.20.0-SNAPSHOT'. 2024-10-01 11:24:52 +02:00
brian.mulier
a56361f249 chore(version): update to version 'v0.19.0'. 2024-10-01 11:24:48 +02:00
brian.mulier
b250ff947e fix(ui): links' color were wrong in the doc when in a div 2024-10-01 11:20:21 +02:00
brian.mulier
1fbb0bf420 fix(ui): some links in doc were not working + enhanced light mode 2024-10-01 11:08:03 +02:00
Ludovic DEHON
15024cd799 chore(cicd): remove github discussions link 2024-10-01 07:25:38 +02:00
Anna Geller
679946be43 fix: README typo 2024-10-01 03:20:43 +02:00
YannC
4d46ebd364 fix(local-storage): Set windows path to linux path (#5248)
close #5247
2024-09-30 20:45:07 +02:00
Anna Geller
48676f4208 Update README.md 2024-09-30 16:01:41 +02:00
Anna Geller
a930277d84 Update README.md 2024-09-30 15:59:30 +02:00
Anna Geller
792e11ad4e Fix/readme (#5242)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2024-09-30 15:52:53 +02:00
Ludovic DEHON
1fa85daa65 fix(ui): missing icon on the doc 2024-09-30 15:49:22 +02:00
Miloš Paunović
ea4a3721ac fix(ui): prevent breaking of docs on certain pages (#5240) 2024-09-30 14:57:50 +02:00
Ludovic DEHON
9034876282 fix(ui): don't allow collapse of the doc since no layout for the collapse state 2024-09-30 14:01:06 +02:00
Ludovic DEHON
6289ec1d16 fix(ui): shiki layout failed on plugins page 2024-09-30 14:00:41 +02:00
Ludovic DEHON
9c4267ce25 fix(ui): top link to internal documentation 2024-09-30 13:44:33 +02:00
Ludovic DEHON
cb7409ddbb fix(ui): responsive documentation & title
close #5229
close #5183
2024-09-30 13:43:56 +02:00
Loïc Mathieu
5f62549cc0 fix(ui): audit logs should always be the last tab 2024-09-30 13:26:29 +02:00
Ludovic DEHON
c0538a86e1 fix(ui): move the docs menu position 2024-09-30 13:19:58 +02:00
Miloš Paunović
756bf59854 chore(ui): render flow description as markdown (#5236) 2024-09-30 13:12:39 +02:00
Miloš Paunović
a5e6d52496 chore(ui): revert shiki color scheme for dark mode (#5235) 2024-09-30 13:05:55 +02:00
YannC
0eeaba3b0d fix(ui): issue in docs compnent (#5230)
close #5224
2024-09-30 12:36:22 +02:00
Miloš Paunović
5faccd9783 fix(ui): avoid showing errors until execute button is clicked (#5232) 2024-09-30 12:13:58 +02:00
Loïc Mathieu
7090c9e520 fix(webserver): removing the purge flow from the autoloader 2024-09-30 11:52:32 +02:00
Loïc Mathieu
afc64c91f2 fix(webserver): add the system ns if not existing 2024-09-30 11:52:32 +02:00
Ludovic DEHON
cb8470e5ef fix(ui): avoid blinking for level log navigation 2024-09-30 11:48:36 +02:00
Ludovic DEHON
071be47994 fix(ui): missing breadcrumb on plugin page 2024-09-30 11:48:02 +02:00
YannC
96b8e9db94 fix(ui): executions component issue (#5213) 2024-09-30 10:33:33 +02:00
yuri
dd880bd55f chore(ui): prevent using 'this' in vue templates (#5187) 2024-09-30 09:25:13 +02:00
Florian Hussonnois
65cde143cc feat(core): add support to validate worker groups 2024-09-30 09:24:01 +02:00
Miloš Paunović
8411780326 fix(ui): show welcome page when no executions and no not tutorial flows (#5212) 2024-09-30 09:23:28 +02:00
MilosPaunovic
f353d5b8e1 chore(ui): remove obsolete console statement 2024-09-30 08:45:48 +02:00
Miloš Paunović
b5fe02d930 fix(ui): welcome page visibility tweaks (#5211) 2024-09-30 08:42:29 +02:00
MilosPaunovic
6d51c3a8a1 chore(ui): amend linter build issue 2024-09-30 08:21:09 +02:00
Sai Mounika Peri
6eaf5eba00 Wrong Password Toast Improvement-Issue-4012 (#5206) 2024-09-30 08:53:17 +03:00
nicoallgood
57ca1e2169 fix(docs): Leverage utm_campaign instead of duplicating utm_content in EE tooltips (#4925)
* Leverage utm_campaign instead of duplicating utm_content

Current EE tooltips in the app link to:
`https://kestra.io/demo?utm_source=app&utm_content=ee-tooltip&utm_term=iam&utm_content=left-menu`
(notice the duplicated `utm_content`)

GA4 by default mainly supports `utm_source`, `utm_medium` & `utm_campaign`. Let's make sure we have `campaign` well populated.

* Populate utm_campaign in all UTMd urls
2024-09-29 22:46:09 +02:00
Karthik D
79ec73db1f Fix: Execution chart issue on the Executions page (#5195) 2024-09-29 21:36:50 +02:00
AhnYoungJin
99527965ba Add namespace KV JSON Type validation (#5190)
* feat: add namespace KV json validator

* feat: add namespace KV json validator

* feat: add namespace KV json validator

* feat: add namespace KV json validator
2024-09-29 21:36:34 +02:00
github-actions[bot]
b06f068b8c Auto-generate translations from en.json (#5197)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-29 21:20:25 +02:00
k sidharth
797f34c88c Moved "Language" selection to "Localization" section next to Timezone and Date format settings #5193 (#5196)
Co-authored-by: ksidharth <keesari64@gmail.com>
2024-09-29 21:18:30 +02:00
brian.mulier
5a9816100e fix(ui): properly handle relative links in docs 2024-09-29 02:05:31 +02:00
brian.mulier
21d15e5a7e fix(ui): can scroll sidebar on Docs page 2024-09-27 18:48:49 +02:00
Loïc Mathieu
0e0c645691 fix(ui): add PAUSED to the list of concurrency slot
Also does some improvements
2024-09-27 17:55:34 +02:00
github-actions[bot]
306c72f8f3 Auto-generate translations from en.json (#5185)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-27 17:34:48 +02:00
brian.mulier
56a7bd5242 feat(ui): light mode for in-app doc 2024-09-27 17:25:05 +02:00
Loïc Mathieu
87713473d9 fix(ui): set labels didn't work anymore
Fixes https://github.com/kestra-io/kestra/issues/5179
2024-09-27 16:37:02 +02:00
Miloš Paunović
e8e55be296 fix(ui): properly filter system executions when necessary (#5178) 2024-09-27 15:32:19 +02:00
Miloš Paunović
2582c434a7 fix(ui): filter executions per namespace chart on selected namespace (#5175) 2024-09-27 14:52:59 +02:00
Miloš Paunović
3e2478814a fix(ui): more tweaks to showing welcome page (#5174) 2024-09-27 14:26:31 +02:00
Miloš Paunović
a19776f645 fix(ui): amend showing welcome page in certain scenarios (#5172) 2024-09-27 13:47:47 +02:00
Loïc Mathieu
2cfe5fb9c2 fix(core,script,tests): various code improvements 2024-09-27 13:33:23 +02:00
Loïc Mathieu
5ee48b4718 fix(core): use shortcircuit || instead of | 2024-09-27 13:33:23 +02:00
Loïc Mathieu
3bb41e27ba fix(core,webserver): use more performant replace() instead of replaceAll() when possible 2024-09-27 13:33:23 +02:00
Loïc Mathieu
6bbddefb55 fix(core): allow executions of flow without FLOW permissions
Fixes https://github.com/kestra-io/kestra-ee/issues/1815
2024-09-27 13:32:50 +02:00
brian.mulier
9c9fbabbaf feat(ui-ee): search for content in docs 2024-09-27 12:52:31 +02:00
GitHub Action
2bfb0b6033 Auto-generate translations from en.json 2024-09-27 12:42:27 +02:00
Loïc Mathieu
8f2e2745d3 fix: hide the triggers widget in the dashboard when no permission
Triggers can only be listed if a user has the FLOW READ permission
2024-09-27 12:27:31 +02:00
YannC
2e26161605 fix(ui): update tree to display newly created folder when new file path is "folder/subfolder/file.txt" (#5166)
* fix(ui): avoid creation of duplicate namespace files

* fix(ui): update tree to display newly created folder when new file path is "folder/subfolder/file.txt"

close #4779
2024-09-27 11:35:19 +02:00
brian.mulier
e3055baa0a fix(ui): bump ui-libs to fix shiki lang import issueà 2024-09-27 11:19:39 +02:00
github-actions[bot]
5b3829d8eb Auto-generate translations from en.json (#5168)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-27 11:15:07 +02:00
YannC
29fd354e31 fix(ui): avoid creation of duplicate namespace files (#5165) 2024-09-27 11:07:50 +02:00
Loïc Mathieu
d967f36a54 Revert "doc: replace HTML4-obsolete align attribute with CSS's text-align"
This reverts commit 639a8c3301.
2024-09-27 09:59:14 +02:00
hainenber
639a8c3301 doc: replace HTML4-obsolete align attribute with CSS's text-align 2024-09-27 09:58:37 +02:00
yuri
1f7446c100 fix(webserver): enforce pagination (#4995)
Added missing constraints at `page`/`size` query params.

Enforced pagination via `PageableUtils`.
2024-09-27 08:59:07 +02:00
Miloš Paunović
639fc200a6 fix(ui): amend spacing on dashboard (#5163) 2024-09-27 08:53:07 +02:00
Miloš Paunović
3b35855214 fix(ui): filter next scheduled per namespace (#5162) 2024-09-27 08:46:36 +02:00
MilosPaunovic
f2d562bbbf chore(ui): remove extra character from doughnut chart tooltip 2024-09-27 08:24:25 +02:00
Miloš Paunović
a669d9662d fix(ui): set proper chart color scheme default value (#5152) 2024-09-27 00:09:41 +02:00
github-actions[bot]
8adef1e0e0 Auto-generate translations from en.json (#5151)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-26 23:55:36 +02:00
YannC
328b3b6c05 feat(ui): conurrency view in flow page (#5150)
close #4721
2024-09-26 23:52:32 +02:00
GitHub Action
4f92104736 Auto-generate translations from en.json 2024-09-26 22:12:12 +02:00
brian.mulier
8aff2fee5b feat(ui): introduce in-app doc
part of kestra-io/kestra-ee#1535
2024-09-26 22:11:18 +02:00
Loïc Mathieu
efa2723934 fix(cli): invalid static access via Child class
Static access must always be done on the class that contains the static method not a child
2024-09-26 20:15:21 +02:00
Loïc Mathieu
d6b0d4aedf fix(core): invalid usage of & instead of && 2024-09-26 17:55:36 +02:00
YannC
6b2aa3d3a6 fix(ui): show input errors (#5139)
close #5033
2024-09-26 16:28:04 +02:00
YannC
ae615ddb3f fix(webserver): use String instead of URI to accept space in path (#5091) 2024-09-26 16:27:52 +02:00
Loïc Mathieu
13a2e23eb0 feat(ui): Display input id as "id" in the execution overview page
Fixes #5047
2024-09-26 14:56:25 +02:00
YannC
85c2910baa fix(ui): show existing labels when editing label in execution page (#5133)
close #4249
2024-09-26 14:43:39 +02:00
Anna Geller
5e3e8d22d8 fix: allowInput -> allowCustomValue (#5138) 2024-09-26 14:21:11 +02:00
Miloš Paunović
9d1700caf1 chore(ui): amend news date text color (#5135) 2024-09-26 12:02:44 +02:00
Miloš Paunović
dfbca15c34 fix(ui): amend spacing on dashboard (#5132) 2024-09-26 11:35:07 +02:00
Miloš Paunović
9a20b2748b chore(ui): uniform dashboard related translation strings (#5131) 2024-09-26 11:26:51 +02:00
github-actions[bot]
e22276ddd8 chore(ui): auto generate translations for languages other than english (#5130) 2024-09-26 11:22:37 +02:00
Miloš Paunović
7b2011c7a4 chore(ui): rename default scheme to classic (#5129) 2024-09-26 11:21:01 +02:00
Miloš Paunović
9dc6362dca chore(ui): amend color of input desciptions (#5125) 2024-09-26 10:42:18 +02:00
YannC
e833e75884 fix(ui): Do not use value as key for scheduleDate datetime picker (#5123)
close kestra-io/kestra-ee#1782
2024-09-26 10:38:36 +02:00
YannC
70755f071a fix(ui): interpret html in markdown in logs (#5122)
close #5049
2024-09-26 10:38:29 +02:00
Miloš Paunović
4414b65d9d fix(ui): check for existance of a descripiton field (#5121) 2024-09-26 09:45:10 +02:00
Miloš Paunović
d765262566 chore(ui): regular dependency update (#5120) 2024-09-26 09:27:22 +02:00
Miloš Paunović
bc26e1e4f1 fix(ui): made trigger toggle on dashboard work properly (#5119) 2024-09-26 09:19:09 +02:00
YannC
96ce248c18 fix(ui): create flow button from namespace flows list (#5117)
close #4646
2024-09-25 21:21:53 +02:00
YannC
15700ef9d4 feat(*): implement impersonate inside UI (#5092) 2024-09-25 20:55:11 +02:00
YannC
f35e0a35d2 fix(webserver): use flowId parameter in trigger search method (#5113)
close #5112
2024-09-25 20:47:56 +02:00
Loïc Mathieu
49e80bb9fb fix(ui): allow to send binary namespace files
Fixes https://github.com/kestra-io/plugin-notifications/issues/149
2024-09-25 17:26:05 +02:00
YannC
48549ec4d3 fix(ui): Set default duration in duration picker (#5111) 2024-09-25 16:59:11 +02:00
Loïc Mathieu
cc55e82cb5 fix(core): property close the OutputStream in ScriptSerice
Property close the OutputStream in ScriptSerice.saveOnLocalStorage
2024-09-25 16:34:53 +02:00
github-actions[bot]
8bdea2457e Auto-generate translations from en.json (#5109)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-25 16:02:54 +02:00
Florian Hussonnois
ccff7e874e fix(ui): dashboard not showing 0 for triggers/flows (#5106)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-25 16:00:40 +02:00
Miloš Paunović
47f2369e22 chore(ui): improve dashboard link handling (#5108) 2024-09-25 15:57:23 +02:00
YannC
451fa058ce fix(ui): confirm dialog box when deleting a single log (#5103) 2024-09-25 15:56:31 +02:00
Miloš Paunović
4b37460a8d fix(ui): amend splitting of date filter (#5105) 2024-09-25 15:51:51 +02:00
rybandrei2014
2e96612516 feat(webserver): Add REST methods for task and trigger validation that accept JSON body (#3785)
* added methods for task and trigger validation that accept JSON body

* added parsing of tasks and triggers before validation

* added tests for validateTask and validateTrigger endpoints

* add dev note

---------

Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
2024-09-25 15:41:44 +02:00
dependabot[bot]
cb94557c2b chore(deps): bump com.google.guava:guava from 33.3.0-jre to 33.3.1-jre
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.3.0-jre to 33.3.1-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>
2024-09-25 13:37:38 +02:00
dependabot[bot]
8759636318 chore(deps): bump org.jooq:jooq from 3.19.11 to 3.19.12
Bumps org.jooq:jooq from 3.19.11 to 3.19.12.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-25 13:37:28 +02:00
dependabot[bot]
916a64a844 chore(deps): bump nl.basjes.gitignore:gitignore-reader
Bumps [nl.basjes.gitignore:gitignore-reader](https://github.com/nielsbasjes/codeowners) from 1.7.0 to 1.8.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.7.0...v1.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-25 13:37:19 +02:00
Miloš Paunović
f9dec758a0 chore(ui): improve date labels on charts (#5097) 2024-09-25 13:18:57 +02:00
Miloš Paunović
2ee0e851f7 chore(ui): improve chart look and feel (#5096) 2024-09-25 12:47:10 +02:00
Loïc Mathieu
e0c2fe147b fix(core): fix the Flow task documentation 2024-09-25 12:19:23 +02:00
Loïc Mathieu
fa8411f8a5 fix(core): lower the task title size 2024-09-25 12:19:23 +02:00
Miloš Paunović
dccfe46fc8 chore(ui): add tooltips to doughnut chart (#5094) 2024-09-25 11:56:49 +02:00
Florian Hussonnois
85b8535985 fix(test): use micronaut MockBean in KVStoreServiceTest 2024-09-25 10:41:53 +02:00
Ikko Eltociear Ashimine
3b051e4bd9 fix(docs): update basic.md (#5087)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-25 10:32:30 +02:00
Miloš Paunović
8c297dff37 chore(ui): uniform translation keys (#5088) 2024-09-25 09:51:33 +02:00
Miloš Paunović
6b0401f63d chore(ui): regular dependency update (#5082) 2024-09-25 09:18:58 +02:00
github-actions[bot]
cf43c4e02d chore(ui): auto generate translations for languages other than english (#5081) 2024-09-25 08:21:58 +02:00
Miloš Paunović
73e8270086 chore(ui): amend color scheme for dashboard charts (#5080) 2024-09-25 08:21:07 +02:00
github-actions[bot]
a6aaa03b93 chore(ui): auto generate translations for languages other than english (#5076) 2024-09-24 21:24:40 +02:00
Miloš Paunović
2112b046d9 feat(ui): create different dashboard for flow overview (#5075) 2024-09-24 21:21:53 +02:00
Florian Hussonnois
2af2bf734d fix(core): add validation for flow input dependencies (#5057)
Fix: #5057
2024-09-24 20:30:18 +02:00
Loïc Mathieu
6af505a418 feat(jdbc): emit async in a dedicated thread pool 2024-09-24 17:13:51 +02:00
Florian Hussonnois
2f2c002846 fix(core): fix input expressions must be resolved with dependencies (#5037) 2024-09-24 16:37:21 +02:00
Florian Hussonnois
abe0fc38cb fix(core): fix namespace not exist when accessing kv for parent namespace
related-to: #5037
2024-09-24 16:37:13 +02:00
Loïc Mathieu
f0f14dbf65 fix(core): don't erase the evaluation lock when resetting the exec
This causes realtime trigger to be restarted!
Fixes #1773
2024-09-24 16:23:10 +02:00
Loïc Mathieu
0ceb0d74df fix(ui): missing translation + wrong property name in the trigger list 2024-09-24 16:23:10 +02:00
Miloš Paunović
f8b7e6663b chore(ui): improve dashboard styling (#5070)
* chore(ui): amend card search icon color

* chore(ui): remove bar chart radius
2024-09-24 16:10:11 +02:00
YannC
59874e063e fix(core): Slash/backslash windows issue when listing all folders (#5065) 2024-09-24 16:00:39 +02:00
Loïc Mathieu
7aaefb89f1 feat(jdbc): make the JdbcQueueIndexer tolerant to flow topology fault
Fixes #4825
2024-09-24 15:56:44 +02:00
github-actions[bot]
dd08068edb chore(ui): auto generate translations for languages other than english (#5068) 2024-09-24 15:53:10 +02:00
Miloš Paunović
af2b9ef188 chore(ui): amend default chart color scheme (#5067) 2024-09-24 15:52:21 +02:00
Will Russell
dd6813af41 fix(docs): update youtube link 2024-09-24 14:46:04 +01:00
github-actions[bot]
f46565368d chore(ui): auto generate translations for languages other than english (#5059) 2024-09-24 15:20:35 +02:00
Miloš Paunović
fd5c843a3c feat(ui): add multiple color schemes for dashboard (#5058) 2024-09-24 15:17:12 +02:00
Miloš Paunović
780ef74a16 chore(ui): dashboard improvements (#5053)
* feat(ui): add variable thickness to doughnut chart arcs

* feat(ui): remove duration line shadow

* feat(ui): amend background color of tables

* feat(ui): amend grey color on tables

* feat(ui): introduce tooltips

* feat(ui): introduce ellipsis to table column values
2024-09-24 13:24:36 +02:00
brian.mulier
d329c68023 fix(core): Set task with type JSON was not working
closes #5041
2024-09-24 10:54:42 +02:00
YannC
8ebc486a51 fix(ui): adjust markdown renderer for logs (#5038)
close #4834
close kestra-io/kestra-ee#1699
2024-09-24 10:49:56 +02:00
Loïc Mathieu
39a4409260 feat(core): provide convenience methods to build a Data property 2024-09-24 10:27:41 +02:00
Anna Geller
29e641d644 Merge branch 'develop' of https://github.com/kestra-io/kestra into develop 2024-09-24 10:24:54 +02:00
Anna Geller
f08002b71f fix: KV example and docs 2024-09-24 10:24:47 +02:00
Ludovic DEHON
47b2300a88 chore(cicd): rockset shutdown 2024-09-24 10:22:17 +02:00
Florian Hussonnois
3df5a7ffa2 fix(core): properly handle select input with expression (#5035) (#5036)
Fix: #5035
2024-09-23 23:56:15 +02:00
Florian Hussonnois
242d2c4060 fix(core): enchance error handling for conditional inputs
This commit fixes UI for InputsForm component
2024-09-23 20:12:33 +02:00
Florian Hussonnois
493e2a9b65 chore(core): add schema description to inputs 2024-09-23 18:13:32 +02:00
Loïc Mathieu
2134e6b5fc feat(core, webserver): add an URL pointing to the UI to the create execution endpoint
Fixes #4256
2024-09-23 18:05:37 +02:00
Yoann Vernageau
7c7df26b0a feat(core): add label rendering when an execution is triggered (flow and schedule only) (#5025)
* feat: add label rendering when an execution is triggered (flow and schedule only)

* fix: handle IllegalVariableEvaluationException when rendering

* test: add unit tests

* fix: omit label if rendering fails
2024-09-23 18:05:08 +02:00
Miloš Paunović
7a6b61a66d fix(ui): pass flow id on creation only if exists (#5030) 2024-09-23 17:19:58 +02:00
github-actions[bot]
3ad08dfca6 chore(ui): auto generate translations for languages other than english (#5029) 2024-09-23 16:39:42 +02:00
Miloš Paunović
72f65af0a5 fix(ui): disable toggle for flows with disabled triggers (#5028) 2024-09-23 16:38:51 +02:00
Loïc Mathieu
7669669c0a feat(core, jdbc): allow to trigger flows from a transient state
Fixes #4276
2024-09-23 16:28:14 +02:00
Florian Hussonnois
f0dc85c87e fix(ui): use nextExecutionDate to sort triggers on dashboard (#5018) (#5027)
Fix: #5018

Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-23 16:27:43 +02:00
Ludovic DEHON
05e40ef8f3 chore(core): warning compilation 2024-09-23 15:44:55 +02:00
dependabot[bot]
5f9187a942 chore(deps): bump com.github.oshi:oshi-core from 6.6.3 to 6.6.4
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.6.3 to 6.6.4.
- [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.6.3...oshi-parent-6.6.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 15:31:12 +02:00
dependabot[bot]
3ab654e594 chore(deps-dev): bump @shikijs/markdown-it from 1.17.6 to 1.18.0 in /ui (#4990)
Bumps [@shikijs/markdown-it](https://github.com/shikijs/shiki/tree/HEAD/packages/markdown-it) from 1.17.6 to 1.18.0.
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Changelog](https://github.com/shikijs/shiki/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shikijs/shiki/commits/v1.18.0/packages/markdown-it)

---
updated-dependencies:
- dependency-name: "@shikijs/markdown-it"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-23 15:23:49 +02:00
dependabot[bot]
a1dc5c9b3a chore(deps-dev): bump monaco-editor from 0.51.0 to 0.52.0 in /ui (#4985)
Bumps [monaco-editor](https://github.com/microsoft/monaco-editor) from 0.51.0 to 0.52.0.
- [Release notes](https://github.com/microsoft/monaco-editor/releases)
- [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/microsoft/monaco-editor/compare/v0.51.0...v0.52.0)

---
updated-dependencies:
- dependency-name: monaco-editor
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-23 15:22:55 +02:00
dependabot[bot]
91ba87ad47 chore(deps): bump @rollup/rollup-linux-x64-gnu in /ui (#4987)
Bumps [@rollup/rollup-linux-x64-gnu](https://github.com/rollup/rollup) from 4.21.3 to 4.22.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.3...v4.22.0)

---
updated-dependencies:
- dependency-name: "@rollup/rollup-linux-x64-gnu"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-23 15:21:43 +02:00
YannC
0234733d40 feat(ci): set PG14 as used docker image for validating compatibility (#5020) 2024-09-23 14:34:43 +02:00
Florian Hussonnois
f1380099d4 feat: add displayName to inputs (#4470)
Fix: #4470
2024-09-23 14:11:27 +02:00
YannC
82d2170fff fix(jdbc): compatible with Postgres 14 (#5019)
close #4825
2024-09-23 13:51:04 +02:00
dependabot[bot]
2bdd46b309 chore(deps): bump @vue-flow/core from 1.41.1 to 1.41.2 in /ui (#4983)
Bumps [@vue-flow/core](https://github.com/bcakmakoglu/vue-flow/tree/HEAD/packages/core) from 1.41.1 to 1.41.2.
- [Release notes](https://github.com/bcakmakoglu/vue-flow/releases)
- [Changelog](https://github.com/bcakmakoglu/vue-flow/blob/master/packages/core/CHANGELOG.md)
- [Commits](https://github.com/bcakmakoglu/vue-flow/commits/@vue-flow/core@1.41.2/packages/core)

---
updated-dependencies:
- dependency-name: "@vue-flow/core"
  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>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-23 12:59:58 +02:00
Ludovic DEHON
29733cd11d chore(core): replace deprecated RandomStringUtils methods 2024-09-23 12:21:27 +02:00
Miloš Paunović
c9c6af33a1 chore(ui): uniform the height of toggl table cell (#5023) 2024-09-23 12:17:07 +02:00
Miloš Paunović
01d404366f chore(ui): uniform graph colors on main dashboard (#5012) 2024-09-23 12:16:32 +02:00
dependabot[bot]
c4dcefcfe2 chore(deps): bump flyingSaucerVersion from 9.9.1 to 9.9.4 (#5001)
Bumps `flyingSaucerVersion` from 9.9.1 to 9.9.4.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.9.1 to 9.9.4
- [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.9.1...v9.9.4)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.9.1 to 9.9.4
- [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.9.1...v9.9.4)

---
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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 11:50:01 +02:00
Loïc Mathieu
827d17a26d chore(deps): upgrade Protobuf to 3.25.5 (#5014) 2024-09-23 11:47:50 +02:00
dependabot[bot]
f3299e516d chore(deps): bump vue from 3.5.5 to 3.5.8 in /ui (#5008)
Bumps [vue](https://github.com/vuejs/core) from 3.5.5 to 3.5.8.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.5...v3.5.8)

---
updated-dependencies:
- dependency-name: vue
  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>
2024-09-23 11:29:29 +02:00
dependabot[bot]
a60c6f1a78 chore(deps): bump posthog-js from 1.161.3 to 1.162.0 in /ui (#4986)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.161.3 to 1.162.0.
- [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.161.3...v1.162.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-23 11:19:04 +02:00
Ludovic DEHON
2cfb788df0 fix(core): text block spaces removed (#5006)
* fix(core): text block spaces removed

* Update core/src/main/java/io/kestra/plugin/core/namespace/UploadFiles.java

---------

Co-authored-by: Will Russell <wrussell@kestra.io>
2024-09-23 10:18:04 +01:00
Florian Hussonnois
dc57546e05 feat(ui): add support for dependsOn on input (#3610) 2024-09-23 11:08:33 +02:00
Florian Hussonnois
b0fae8525f feat(core): add support for dependsOn on input (#3610)
This commits adds:
- support for dependsOn field in flow's inputs
- support for expression on input of type SELECT, MULTISELECT
- new REST API to validate inputs for an execution
- some code cleanup, and method renaming

Fix: #3610
2024-09-23 11:08:33 +02:00
Miloš Paunović
d8db1c5087 chore(ui): show decimal places for main numbers on dashboard (#5016) 2024-09-23 11:05:07 +02:00
dependabot[bot]
a8461b4f78 chore(deps-dev): bump @typescript-eslint/parser in /ui (#4984)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.5.0 to 8.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.6.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-09-23 11:02:13 +02:00
dependabot[bot]
9368a2b1ac chore(deps): bump opensearchRestVersion from 2.16.0 to 2.17.0
Bumps `opensearchRestVersion` from 2.16.0 to 2.17.0.

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 11:01:40 +02:00
Anna Geller
7cfd33459a Merge branch 'develop' of https://github.com/kestra-io/kestra into develop 2024-09-23 10:27:28 +02:00
Anna Geller
89b28a9992 fix: release + flow info 2024-09-23 10:27:21 +02:00
dependabot[bot]
5e7b044a11 chore(deps): bump commons-io:commons-io from 2.16.1 to 2.17.0
Bumps commons-io:commons-io from 2.16.1 to 2.17.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 10:13:09 +02:00
dependabot[bot]
c09069630f chore(deps): bump com.microsoft.playwright:playwright (#4932)
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.46.0 to 1.47.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.46.0...v1.47.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 10:12:57 +02:00
Anna Geller
280af82eac Merge branch 'develop' of https://github.com/kestra-io/kestra into develop 2024-09-23 10:09:13 +02:00
Anna Geller
e09c2a969e fix: links in README 2024-09-23 10:09:03 +02:00
Miloš Paunović
c02b5e2a9e chore(ui): change and improve stats by namespace endpoint and parsing (#5010) 2024-09-23 10:08:30 +02:00
Ludovic DEHON
961dd59bc8 chore(deps): update gradle wrapper 2024-09-23 09:56:53 +02:00
dependabot[bot]
2be354bed8 chore(deps): bump nl.basjes.gitignore:gitignore-reader (#5005)
Bumps [nl.basjes.gitignore:gitignore-reader](https://github.com/nielsbasjes/codeowners) from 1.6.0 to 1.7.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.6.0...v1.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 09:47:48 +02:00
dependabot[bot]
c7b5e765eb chore(deps-dev): bump @vitejs/plugin-vue from 5.1.3 to 5.1.4 in /ui (#4988)
Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 5.1.3 to 5.1.4.
- [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue@5.1.4/packages/plugin-vue)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-vue"
  dependency-type: direct:development
  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>
2024-09-23 09:25:28 +02:00
Anna Geller
bc534d4056 fix: message 2024-09-22 12:50:33 +02:00
brian.mulier
f494a9b97f fix(ui): route was null in NamespaceDependenciesWrapper in production build
closes kestra-io/kestra-ee#1764
2024-09-20 18:03:18 +02:00
github-actions[bot]
732039748c chore(ui): auto generate translations for languages other than english (#4994) 2024-09-20 15:32:42 +02:00
Miloš Paunović
cef3f239f5 feat(ui): refreshing the main dashboard (#4959) 2024-09-20 15:29:01 +02:00
Loïc Mathieu
c636336ac0 fix(core): SchedulerScheduleOnDatesTest.recoverLASTMissing is flaky
Fixes #4971
2024-09-20 10:51:42 +02:00
YannC
ba076a0f84 fix(core): handle Map & List and keep their original format in EscapeChar and Replace filters (#4979)
close #4340
2024-09-20 10:27:50 +02:00
Ludovic DEHON
4f97c638de feat(cli): add version & commit on startup log 2024-09-20 08:24:17 +02:00
Loïc Mathieu
ac77f9c78b fix(core): SchedulerScheduleOnDatesTest.recoverNoneMissing flakiness
Fixes #4971
2024-09-19 10:19:30 +02:00
github-actions[bot]
6d10fb39c8 fix(ui): missing translation (#4968) 2024-09-19 07:40:10 +02:00
Loïc Mathieu
517d26edf4 feat(core); log the stacktrace in case of plugin scanning error 2024-09-18 15:41:29 +02:00
github-actions[bot]
3c6aadf866 Auto-generate translations from en.json (#4970)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-18 14:39:52 +02:00
Loïc Mathieu
c0551e5ec0 fix(jdbc): retry flaky tests forEachItem 2024-09-18 14:36:24 +02:00
Loïc Mathieu
eaeadc6cf1 fix(core): always add the secret consumer
This causes a WARNING in the log for some cases, with the risk to have a secret leaked into the logs.

Fixes https://github.com/kestra-io/kestra-ee/issues/1741
2024-09-18 14:36:24 +02:00
YannC
134f7c3f25 feat(ui): warn usage of trigger variable in flow when executing (#4969) 2024-09-18 13:33:43 +02:00
yuri1969
9b9508b724 fix(core): make flow plugin defaults override global ones
This handles the OSS precedence.
2024-09-18 12:12:50 +02:00
YannC
5db357efac fix(webserver): missing params in file paths (#4966)
close #4958
2024-09-18 12:04:05 +02:00
Loïc Mathieu
eb0161b8eb feat(*): schedule an execution on a fixed date 2024-09-18 11:32:23 +02:00
dependabot[bot]
ebf968ff7a chore(deps-dev): bump vite from 5.4.5 to 5.4.6 in /ui (#4963)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.5 to 5.4.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-17 22:37:09 +02:00
YannC
31879976ee feat: implement refresh token (#4833)
close #4120
2024-09-17 13:18:01 +02:00
Miloš Paunović
f77872e974 chore(ui): improve labeling of namespaces in listing (#4957) 2024-09-17 12:39:21 +02:00
YannC
cc49dc4104 feat(ui): provide a real duration input that validate it and generate it (#4955)
close #3710
close #3742
close #3697
2024-09-17 08:47:21 +02:00
Mathieu Gabelle
ae9131dbca feat: add Meilisearch plugin 2024-09-17 08:00:28 +02:00
dependabot[bot]
2e8882e6f5 chore(deps): bump io.micronaut.platform:micronaut-platform (#4931)
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.6.1...v4.6.2)

---
updated-dependencies:
- dependency-name: io.micronaut.platform:micronaut-platform
  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>
2024-09-16 11:20:21 +02:00
github-actions[bot]
71aeb56bde Auto-generate translations from en.json (#4953)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-16 09:43:20 +02:00
YannC
36a149b540 fix(ui): more explicite copy url for webhook trigger 2024-09-16 09:36:14 +02:00
yuri
9fd2b87d45 fix(cli): make server <type> help work (#4910)
* fix(cli): make server <type> help work

Also fixed missing `--version/-V`.

* Add a basic test
2024-09-16 09:07:57 +02:00
github-actions[bot]
b19a9bc0f8 Auto-generate translations from en.json (#4952)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-16 09:03:43 +02:00
Anna Geller
6f3f425c1c closes https://github.com/kestra-io/kestra/issues/4951 2024-09-16 08:58:10 +02:00
Miloš Paunović
c018d13029 fix(ui): allow sorting triggers table on flow name (#4949) 2024-09-14 22:03:32 +02:00
github-actions[bot]
82a53e8bd3 chore(ui): auto generate translations for languages other than english (#4919) 2024-09-14 21:54:00 +02:00
Miloš Paunović
d1d0f6f898 chore(ui): regular dependency update (#4948) 2024-09-14 21:26:49 +02:00
MilosPaunovic
926c946192 chore(deps): run dependabot checks for npm on friday, day after bugfix releases 2024-09-14 00:21:53 +02:00
Miloš Paunović
51625c1b56 fix(ui): make sure the talk to us dialogs do not stack on eachother (#4930) 2024-09-14 00:17:58 +02:00
Miloš Paunović
9f32264534 fix(ui): filter system flows' executions tab for system data (#4929) 2024-09-13 23:55:03 +02:00
Miloš Paunović
28593128a4 fix(ui): filter system namespace overview tab for system data (#4928) 2024-09-13 23:47:42 +02:00
Miloš Paunović
af9743252c chore(ui): remove blueprint browser tags on namespace section (#4926) 2024-09-13 23:33:46 +02:00
Loïc Mathieu
0d04553a91 feat(core,jdbc): changes needed for backup and restore 2024-09-13 15:28:31 +02:00
YannC
1c55256184 feat(ui): Added trigger detail on flow triggers page and make icon clickable for webhook to copy link (#4914)
close #3891
2024-09-13 12:38:44 +02:00
Miloš Paunović
f7c39fd05d chore(ui): add whitespace changes highlighting into diff editor (#4917) 2024-09-13 11:31:01 +02:00
MilosPaunovic
c184aa104d fix(ui): better handling of reflecting changes in code from topology 2024-09-13 10:18:05 +02:00
MilosPaunovic
37eb62d65e fix(ui): remove passing input prop to editor 2024-09-13 09:28:35 +02:00
Miloš Paunović
c130490bbd fix(ui): enabled editor content mouse scroll (#4912) 2024-09-13 09:17:22 +02:00
Anna Geller
bfef9baa68 Update basic.md 2024-09-12 19:37:43 +02:00
Anna Geller
e41496acaa docs: document https://github.com/kestra-io/kestra/pull/4757 2024-09-12 19:36:24 +02:00
YannC
8fca0fd599 fix(core): use subgroup package infos when available (#4908)
close kestra-io/docs#1456
2024-09-12 16:48:35 +02:00
Miloš Paunović
0c2c47600b fix(ui): don't duplicate read-only warning if existing (#4907) 2024-09-12 14:18:34 +02:00
brian.mulier
c80d734c29 fix(ui): properly filter logs by level on running executions 2024-09-12 11:54:53 +02:00
brian.mulier
713646a3e6 fix(ui): remove cursor from logs and uppercase log levels
closes #4896
2024-09-12 11:54:10 +02:00
Miloš Paunović
b2b5484320 chore(ui): bump ui-libs for colors fix to take place (#4903) 2024-09-12 11:15:47 +02:00
brian.mulier
98ee431d1f feat(webserver): Purge system flow created from blueprint at startup
closes #4878
2024-09-12 10:10:25 +02:00
Miloš Paunović
f6c9ed8296 fix(ui): reflect changes in code after making them in topology (#4901) 2024-09-12 09:32:54 +02:00
Loïc Mathieu
d40c5b35b8 fix(jdbc): forEachItem tests that are flaky with SQLServer 2024-09-11 20:06:36 +02:00
Loïc Mathieu
ab1f73f6a1 feat: handle QueueException on tests 2024-09-11 20:06:36 +02:00
Loïc Mathieu
7b73eed068 feat: Implements message protection for the JDBC Queue
Allow to set a limit in size for messages, when exceeded, the message will be refused by the Queue.
The JDBC executor and worker has been updated to handle a too big message and fail the execution.
2024-09-11 20:06:36 +02:00
Loïc Mathieu
1d7982406c feat(jdbc-postgres): improve JSONB performance 2024-09-11 17:50:46 +02:00
Anna Geller
9a4a8082c5 fix: https://github.com/kestra-io/kestra/issues/4895 2024-09-11 15:22:59 +02:00
Miloš Paunović
265c0011d5 fix(ui): revert casing of a variable in a translation file 2024-09-11 15:05:52 +02:00
Miloš Paunović
6bf6188452 fix(ui): amend trigger logs flickering (#4894) 2024-09-11 15:01:06 +02:00
github-actions[bot]
b07284892c Auto-generate translations from en.json (#4893)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-11 14:52:41 +02:00
Anna Geller
302210da3c fix: https://github.com/kestra-io/kestra/issues/4873 2024-09-11 14:48:10 +02:00
Anna Geller
05b366e41f fix: https://github.com/kestra-io/kestra/issues/4827 2024-09-11 14:45:22 +02:00
Loïc Mathieu
4c3b493474 fix(core): handle array in outputs
Fixes #4769
2024-09-11 14:31:48 +02:00
Loïc Mathieu
a52c59ad49 fix(core, script): check default enable to not FALSE
As it's true via Lombok Builder.Default but if you set include or exclude without setting enabled: true, the deserializaiton will set it to null.

Fixes #4867
2024-09-11 13:57:16 +02:00
Loïc Mathieu
9662397d6c fix(jdbc): handle duplicate key on flow topology save
We usually always include `onDuplicateKeyUpdate()` when we save an object in the database, it was missing for batch insert of flow topologies.

Fixes #4825
2024-09-11 12:22:31 +02:00
Loïc Mathieu
f81aa77206 fix(cli): allow HTTP header up to 32k 2024-09-11 12:22:22 +02:00
Miloš Paunović
d1f4daa793 chore(ui): add proper axios parameters to send cookies (#4888) 2024-09-11 10:28:29 +02:00
Miloš Paunović
c60b2e72c5 fix(ui): improve scope filter select field (#4886) 2024-09-11 08:43:34 +02:00
YannC
7d942cc11c feat: allow select & multiple select to have custom input options with new property allowInput (#4884)
close #4696
2024-09-10 19:25:00 +02:00
github-actions[bot]
47d26b7a5a chore(ui): auto generate translations for languages other than english
Co-authored-by: GitHub Action <actions@github.com>
2024-09-10 15:12:55 +02:00
Miloš Paunović
c50b5303d8 feat(ui): improve scope multi-select behavior (#4880)
* feat(ui): improve scope multi-select behavior

* fix(webserver): scope parameter for flows & executions is now a list

---------

Co-authored-by: brian.mulier <bmmulier@hotmail.fr>
2024-09-10 15:09:54 +02:00
brian.mulier
af4fc147d5 fix(webserver): scope parameter for flows & executions is now a list 2024-09-10 14:34:43 +02:00
brian.mulier
cf065cc145 fix(core): handle subflow retries
closes #4823
2024-09-10 11:32:39 +02:00
Florian Hussonnois
1bb8ad928d feat(core): add new stats apis (#3822)
part-of: #3822
2024-09-10 11:10:06 +02:00
Miloš Paunović
79ad3d63de fix(ui): pass namespace parameter to file creation (#4876) 2024-09-10 11:06:44 +02:00
Miloš Paunović
7bcceffa48 feat(ui): double click on blueprint tag now resets filter (#4875) 2024-09-10 10:02:17 +02:00
Miloš Paunović
ee5c459a24 fix(ui): properly handle blueprints (#4874) 2024-09-10 09:53:42 +02:00
Loïc Mathieu
5871f63005 feat(core): allow building a property of a List 2024-09-10 09:26:49 +02:00
Ludovic DEHON
b890a7541e feat(core): reduce log level from service liveness 2024-09-09 23:06:41 +02:00
brian.mulier
0777655b4e fix(core): add flow revision to failed execution in case of trigger evaluation failure 2024-09-09 17:57:11 +02:00
brian.mulier
45624e7e41 fix(tests): system flow warnings removed 2024-09-09 17:12:00 +02:00
brian.mulier
4a8a68e7df fix(tests): tests were not compiling 2024-09-09 16:21:56 +02:00
brian.mulier
7f28c0ac6f fix(tests): remove warning for system namespace 2024-09-09 15:32:47 +02:00
brian.mulier
9400c1bacc feat(ui): introduce log navigation by level
closes #2045
2024-09-09 15:09:35 +02:00
brian.mulier
d1f374c7a7 fix(tests): tests weren't compiling 2024-09-09 15:01:34 +02:00
github-actions[bot]
1fc40f403d chore(ui): auto generate translations for languages other than english 2024-09-09 11:45:17 +02:00
Miloš Paunović
5c5d8bef97 feat(ui): add system flows logic (#4774) 2024-09-09 11:43:06 +02:00
Shruti Mantri
4e3dfac3fd fics(docs): standardise id naming - part 2 (#4832) 2024-09-09 10:45:07 +02:00
dependabot[bot]
2c3713ef3e chore(deps): bump org.apache.logging.log4j:log4j-to-slf4j
Bumps org.apache.logging.log4j:log4j-to-slf4j from 2.23.1 to 2.24.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 10:12:46 +02:00
Miloš Paunović
f64e6bc966 chore(ui): regular dependency update (#4860)
* chore(deps): move dependabot scan from sunday to monday morning

* chore(deps): regular dependecy update
2024-09-09 08:56:24 +02:00
Loïc Mathieu
6aa35a280d feat(core): allow initiating a property from a map and open the constructor for testing 2024-09-06 14:00:37 +02:00
Loïc Mathieu
90fbb5e450 fix(webserver): don't cpnsume inputs on errors
Consuming inputs on error seems to be the right things to do ... but it causes a memory leak and can totally hang the webserver pretty quickly with the error: java.lang.OutOfMemoryError: Cannot reserve 65562 bytes of direct buffer memory.

Removing the consumption of inputs seems to fix the issue.
2024-09-06 12:54:20 +02:00
Miloš Paunović
ed949a955b fix(ui): re-import date related component (#4839) 2024-09-06 12:31:44 +02:00
Shruti Mantri
bf2dffeebc fix(docs): standardise id naming - part 1 (#4829)
* fix(docs): standardise id naming - part 1

* Update core/src/main/java/io/kestra/plugin/core/trigger/Flow.java

---------

Co-authored-by: Will Russell <wrussell@kestra.io>
2024-09-06 10:06:45 +01:00
Loïc Mathieu
a996e5a42c feat(core): change deprecated notice in the doc
Fixes #4395
2024-09-05 18:37:12 +02:00
YannC
4ca5ad467f chore: upgrade micronaut platform dependencies to 4.6.1 (#4766) 2024-09-05 17:14:28 +02:00
Loïc Mathieu
d253284a1f chore: add Databug plugin 2024-09-05 09:53:03 +02:00
github-actions[bot]
e814893fd4 Auto-generate translations from en.json (#4824)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-04 15:17:06 +02:00
Anna Geller
7d00063496 fix: naming of Execution States for consistency and clarity (#4821) 2024-09-04 15:05:29 +02:00
Loïc Mathieu
67e7b26019 fix(webserver): webhook hang indefinitly for 404 status
When we send a 404 status by retuning HttpReponse.notFound(), the webhook hang forever for POST request (but works for GET).

Throwing an HttpStatusException fix the issue, it seems to be caused by a bug in Micronaut, I will try to create a reproducer and open an issue upstream by meanwhile this fixes the issue.
2024-09-04 13:50:03 +02:00
Loïc Mathieu
69c07a03df fix(core): ForEachItem NPE when no items
Fixes #4278
2024-09-04 10:30:38 +02:00
Miloš Paunović
02a0b40b16 chore(ui): add more padding between log lines (#4819) 2024-09-04 09:43:42 +02:00
Miloš Paunović
b8fa2c5ae5 chore(ui): reorder namespace tabs (#4817) 2024-09-04 08:49:58 +02:00
github-actions[bot]
b4b875ac9b Auto-generate translations from en.json (#4815)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-03 19:25:23 +02:00
Anna Geller
59b6ea01dc Update en.json 2024-09-03 19:22:15 +02:00
github-actions[bot]
eb11c05d5b Auto-generate translations from en.json (#4814)
Co-authored-by: GitHub Action <actions@github.com>
2024-09-03 19:18:59 +02:00
Anna Geller
88c23bc7c9 fix: translations and their CI 2024-09-03 19:11:58 +02:00
Anna Geller
76181f6f40 fix: try fixing translations 2024-09-03 19:07:58 +02:00
Loïc Mathieu
3c7c041c9c chore(webserver): use the minimal flow where possible in the ExecutionControllerTest
This divide by 2 the test duration from 2mn20 to 1mn10
2024-09-03 17:35:46 +02:00
Loïc Mathieu
1b3870349a feat(ui, webserver): allow to change the status of a terminated execution
Fixes #4447
2024-09-03 17:35:46 +02:00
Loïc Mathieu
c97c6d32d9 fix(ui): SetLabels button only visible if user has permission 2024-09-03 17:35:46 +02:00
Ludovic DEHON
81ff4e65fd feat(cli): increase default thread count
relate to #4775
2024-09-02 22:27:53 +02:00
Loïc Mathieu
aa0c12ba0d feat(core): YAML input
Fixes #4126
2024-09-02 18:24:58 +02:00
Loïc Mathieu
749a3aa0dc fix(core): flow validation can NPE 2024-09-02 17:31:38 +02:00
Shruti Mantri
4c1020d0f5 feat(examples): standardise id naming format in examples (#4619)
Co-authored-by: Will Russell <wrussell@kestra.io>
2024-09-02 16:21:19 +01:00
github-actions[bot]
97af1b500f chore(ui): auto generate translations for languages other than english (#4804) 2024-09-02 14:36:14 +02:00
yuri
8b7f533cb2 feat(ui): make executions view more compact (#4728) 2024-09-02 14:33:16 +02:00
Miloš Paunović
6a6b4417df chore(ui): regular dependency update (#4803) 2024-09-02 14:23:18 +02:00
Loïc Mathieu
4d2f1a65c6 feat(core): deprecate EachParallel and EachSequential
Fixes #4800
2024-09-02 14:17:35 +02:00
Anna Geller
a1bcf33fca Revert "Update StandAloneCommand.java"
This reverts commit d89aeeb7aa.
2024-09-02 14:12:39 +02:00
Anna Geller
d89aeeb7aa Update StandAloneCommand.java 2024-09-02 13:30:40 +02:00
dependabot[bot]
403fa23468 chore(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.13.0 to 2.14.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.13.0...v2.14.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 10:41:28 +02:00
dependabot[bot]
fc9c77437f chore(deps): bump flyingSaucerVersion from 9.9.0 to 9.9.1
Bumps `flyingSaucerVersion` from 9.9.0 to 9.9.1.

Updates `org.xhtmlrenderer:flying-saucer-core` from 9.9.0 to 9.9.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.9.0...v9.9.1)

Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.9.0 to 9.9.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.9.0...v9.9.1)

---
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>
2024-09-02 10:40:37 +02:00
dependabot[bot]
c7a9a65cf0 chore(deps): bump org.owasp.dependencycheck from 10.0.3 to 10.0.4
Bumps org.owasp.dependencycheck from 10.0.3 to 10.0.4.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 10:39:56 +02:00
dependabot[bot]
8338e068c6 chore(deps): bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0
Bumps org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 10:39:46 +02:00
Loïc Mathieu
c32f5a550a chore: use 2*nbProc as default worker threads
Part-of: #4771
2024-08-30 15:02:27 +02:00
Loïc Mathieu
4ce50f7ad0 fix(core): render output files
Fixes https://github.com/kestra-io/kestra/issues/4759
2024-08-29 18:35:54 +02:00
brian.mulier
950ee9aa94 fix(ui): prevent wrong blueprintBaseUri + Use button from blueprint detail work properly
closes #4768
2024-08-29 18:21:01 +02:00
Loïc Mathieu
9dfec8221e feat(core): create a Data type that can be used for multi-type property
We very often use Object for a traditional 'from' property that can comes from either an internal storage UI, an inline Map, or an inline list of maps. This class bringd a more declarative support for that.
2024-08-29 14:08:11 +02:00
YannC
83073ec313 fix(ui): remove trigger preview in executions list (#4765)
close #4644
2024-08-29 13:32:33 +02:00
brian.mulier
588ac69d66 feat(ui): add log file preview and download buttons 2024-08-29 09:31:30 +02:00
Loïc Mathieu
28c301e633 feat(core): add the ability for a task or trigger to log to a file
Fixes #4688
2024-08-29 09:31:30 +02:00
Anna Geller
d70e276e1e fix: renamed json pebble 2024-08-29 00:34:24 +02:00
Anna Geller
2e14f9dcf4 fix: avoid hardcoding namespace in UploadFiles 2024-08-29 00:21:20 +02:00
brian.mulier
6e72bd146f fix(cli): null-safe StateStoreMigrateCommand 2024-08-28 19:18:38 +02:00
brian.mulier
71fe48ca6d fix(ui): task runner can be filled through low code editor
closes kestra-io/kestra-ee#1477
2024-08-28 16:01:17 +02:00
brian.mulier
e00b620d4d fix(ui): remove empty arrays overriding default values upon task validation in low code
closes #4758
2024-08-28 13:54:46 +02:00
brian.mulier
42a3484f0e fix(cli): lazy init of repository & storage to wait for plugin init in StateStoreMigrateCommand 2024-08-28 13:01:36 +02:00
brian.mulier
88a6fbbb14 fix(cli): forgot super.call() in StateStoreMigrateCommand to load plugins 2024-08-28 09:46:51 +02:00
YannC
2b6110ccbb fix(core): create dedicated field for resubmit in Executor (#4714) 2024-08-28 09:34:38 +02:00
Loïc Mathieu
417b786c37 feat: Plugin Property v2 2024-08-27 19:43:27 +02:00
brian.mulier
cbbebefc6c fix(tests): AbstractFlowRepositoryTest.find protected to allow overriding + one flow deletion was missing 2024-08-27 18:06:12 +02:00
brian.mulier
bd1249fd0c fix(controller): filter out EE blueprints
closes kestra-io/plugin-ee-aws#16
2024-08-27 18:06:12 +02:00
brian-mulier-p
4c0e32e7a9 feat(core): state store is now using KV Store as backend (#4666)
part of kestra-io/plugin-singer#71
2024-08-27 16:46:29 +02:00
Miloš Paunović
924329e005 chore(ui): made flow id column have proper width (#4756) 2024-08-27 15:03:19 +02:00
Loïc Mathieu
2ffd08f15b Revert "chore(deps): bump io.micronaut.platform:micronaut-platform"
This reverts commit e3a5cad479.
2024-08-27 09:28:32 +02:00
github-actions[bot]
e78febe7a1 Auto-generate translations from en.json (#4752)
Co-authored-by: GitHub Action <actions@github.com>
2024-08-26 23:05:45 +02:00
Anna Geller
e523e0820f closes https://github.com/kestra-io/kestra/issues/4746 2024-08-26 23:03:09 +02:00
brian.mulier
88687d94e3 fix(build): some ui-deps were missing preventing the UI build 2024-08-26 17:47:50 +02:00
Miloš Paunović
41e186f61d fix(ui): load blueprint from proper url (#4749) 2024-08-26 16:03:10 +02:00
dependabot[bot]
e3a5cad479 chore(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.5.1 to 4.6.0.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.5.1...v4.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 14:28:47 +02:00
brian.mulier
379f3b34e3 fix(core): add type to KV Store Set task
closes kestra-io/kestra-ee#1422
2024-08-26 12:53:18 +02:00
dependabot[bot]
db5bf013e3 chore(deps): bump org.postgresql:postgresql from 42.7.3 to 42.7.4
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.3 to 42.7.4.
- [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.3...REL42.7.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 10:19:41 +02:00
dependabot[bot]
4399807c4c chore(deps): bump com.github.oshi:oshi-core from 6.6.2 to 6.6.3
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.6.2 to 6.6.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.6.2...oshi-parent-6.6.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 10:19:26 +02:00
dependabot[bot]
d06a086ce4 chore(deps): bump org.apache.commons:commons-compress
Bumps org.apache.commons:commons-compress from 1.27.0 to 1.27.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 10:19:16 +02:00
yuri
cb1d2a7b34 chore(ui): improve copy as curl functionality (#4696) 2024-08-26 09:13:30 +02:00
dependabot[bot]
88ee312fbd chore(deps): bump chart.js from 4.4.3 to 4.4.4 in /ui (#4740)
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.4.3 to 4.4.4.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.4.3...v4.4.4)

---
updated-dependencies:
- dependency-name: chart.js
  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>
2024-08-26 08:32:01 +02:00
dependabot[bot]
b1d46d4f92 chore(deps): bump @vue-flow/core from 1.39.3 to 1.40.1 in /ui (#4733)
Bumps [@vue-flow/core](https://github.com/bcakmakoglu/vue-flow) from 1.39.3 to 1.40.1.
- [Release notes](https://github.com/bcakmakoglu/vue-flow/releases)
- [Changelog](https://github.com/bcakmakoglu/vue-flow/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bcakmakoglu/vue-flow/compare/@vue-flow/core@1.39.3...@vue-flow/core@1.40.1)

---
updated-dependencies:
- dependency-name: "@vue-flow/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 08:31:32 +02:00
dependabot[bot]
93ba4b8c6c chore(deps): bump element-plus from 2.8.0 to 2.8.1 in /ui (#4731)
Bumps [element-plus](https://github.com/element-plus/element-plus) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/element-plus/element-plus/releases)
- [Changelog](https://github.com/element-plus/element-plus/blob/dev/CHANGELOG.en-US.md)
- [Commits](https://github.com/element-plus/element-plus/compare/2.8.0...2.8.1)

---
updated-dependencies:
- dependency-name: element-plus
  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>
2024-08-26 08:31:02 +02:00
dependabot[bot]
bb9f15d0b8 chore(deps-dev): bump @shikijs/markdown-it from 1.12.1 to 1.14.1 in /ui (#4691)
Bumps [@shikijs/markdown-it](https://github.com/shikijs/shiki/tree/HEAD/packages/markdown-it) from 1.12.1 to 1.14.1.
- [Release notes](https://github.com/shikijs/shiki/releases)
- [Changelog](https://github.com/shikijs/shiki/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shikijs/shiki/commits/v1.14.1/packages/markdown-it)

---
updated-dependencies:
- dependency-name: "@shikijs/markdown-it"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 08:30:18 +02:00
dependabot[bot]
683497a170 chore(deps): bump vue-i18n from 9.13.1 to 9.14.0 in /ui (#4692)
Bumps [vue-i18n](https://github.com/intlify/vue-i18n-next/tree/HEAD/packages/vue-i18n) from 9.13.1 to 9.14.0.
- [Release notes](https://github.com/intlify/vue-i18n-next/releases)
- [Changelog](https://github.com/intlify/vue-i18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/intlify/vue-i18n-next/commits/v9.14.0/packages/vue-i18n)

---
updated-dependencies:
- dependency-name: vue-i18n
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 08:29:33 +02:00
dependabot[bot]
549a636134 chore(deps): bump posthog-js from 1.155.0 to 1.157.2 in /ui (#4732)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.155.0 to 1.157.2.
- [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.155.0...v1.157.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 08:28:24 +02:00
dependabot[bot]
8fd14a2b47 chore(deps-dev): bump monaco-editor from 0.50.0 to 0.51.0 in /ui (#4739)
Bumps [monaco-editor](https://github.com/microsoft/monaco-editor) from 0.50.0 to 0.51.0.
- [Release notes](https://github.com/microsoft/monaco-editor/releases)
- [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/microsoft/monaco-editor/compare/v0.50.0...v0.51.0)

---
updated-dependencies:
- dependency-name: monaco-editor
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 08:27:09 +02:00
dependabot[bot]
effb8518ac chore(deps): bump core-js from 3.38.0 to 3.38.1 in /ui (#4738)
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.38.0 to 3.38.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.38.1/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  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>
2024-08-26 08:26:11 +02:00
dependabot[bot]
43fce73c9c chore(deps): bump axios from 1.7.4 to 1.7.5 in /ui (#4734)
Bumps [axios](https://github.com/axios/axios) from 1.7.4 to 1.7.5.
- [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.7.4...v1.7.5)

---
updated-dependencies:
- dependency-name: axios
  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>
2024-08-26 08:25:35 +02:00
dependabot[bot]
09f1045aef chore(deps): bump markdown-it-anchor from 9.0.1 to 9.1.0 in /ui (#4737)
Bumps [markdown-it-anchor](https://github.com/valeriangalliat/markdown-it-anchor) from 9.0.1 to 9.1.0.
- [Release notes](https://github.com/valeriangalliat/markdown-it-anchor/releases)
- [Changelog](https://github.com/valeriangalliat/markdown-it-anchor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/valeriangalliat/markdown-it-anchor/compare/v9.0.1...v9.1.0)

---
updated-dependencies:
- dependency-name: markdown-it-anchor
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 08:25:05 +02:00
dependabot[bot]
12eeb53e67 chore(deps-dev): bump @typescript-eslint/parser in /ui (#4736)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.0.1 to 8.2.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.2.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 08:24:38 +02:00
dependabot[bot]
9813c4ce32 chore(deps-dev): bump vite from 5.4.0 to 5.4.2 in /ui (#4735)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.0 to 5.4.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  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>
2024-08-26 08:23:56 +02:00
dependabot[bot]
f78c2b14a5 chore(deps): bump @rollup/rollup-linux-x64-gnu in /ui (#4690)
Bumps [@rollup/rollup-linux-x64-gnu](https://github.com/rollup/rollup) from 4.20.0 to 4.21.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.20.0...v4.21.0)

---
updated-dependencies:
- dependency-name: "@rollup/rollup-linux-x64-gnu"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 08:23:25 +02:00
dependabot[bot]
4b84bd9087 chore(deps): bump vue from 3.4.37 to 3.4.38 in /ui (#4689)
Bumps [vue](https://github.com/vuejs/core) from 3.4.37 to 3.4.38.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/v3.4.38/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.4.37...v3.4.38)

---
updated-dependencies:
- dependency-name: vue
  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>
2024-08-26 08:22:48 +02:00
Anna Geller
d5c3ae5db3 closes https://github.com/kestra-io/kestra/issues/4741 2024-08-25 23:24:57 +02:00
brian.mulier
84703bfa1e fix(ui): better performance in gantt view when having a lot of task runs
closes #1434
2024-08-22 17:55:55 +02:00
Loïc Mathieu
a10da02b20 fix(core): failed expression on a trigger condition crash the scheduler
Fixes https://github.com/kestra-io/kestra/issues/4629
2024-08-21 18:36:07 +02:00
brian.mulier
823a934f60 fix(ui): better performance in log view when having a lot of task runs
part of #1434
2024-08-21 17:33:49 +02:00
Loïc Mathieu
424fab98dc feat(jdbc): avoid loading all excutions in memory 2024-08-21 17:25:37 +02:00
Loïc Mathieu
3904f59520 feat(jdbc): avoid loading all excutions in memory
Fixes https://github.com/kestra-io/kestra-ee/issues/1262
2024-08-21 15:31:54 +02:00
YannC
aa4c83c174 fix(core): fix log tests 2024-08-21 15:25:37 +02:00
YannC
03cee37b5d feat(runner-kafka): Check worker job before resubmitting
close #405
2024-08-21 13:41:36 +02:00
github-actions[bot]
fd1cc04664 Auto-generate translations from en.json (#4713)
Co-authored-by: GitHub Action <actions@github.com>
2024-08-21 13:27:16 +02:00
Ahmad
cc50a7bbec feat: better message for no selection (#4712) 2024-08-21 13:09:53 +02:00
Ludovic DEHON
dd341cfdb1 fix(core): reduce log level of docker commands 2024-08-20 23:34:23 +02:00
brian.mulier
41d290ad68 fix(tests): scope PurgeExecutions to a flowId and namespace to avoid flakiness 2024-08-20 13:43:05 +02:00
Ludovic DEHON
062b4aa159 fix(core): be resilient to invalid log format
close #4641
2024-08-20 13:21:33 +02:00
Loïc Mathieu
c6551954ab feat: add JBang plugin 2024-08-20 12:49:24 +02:00
Ludovic DEHON
c58e42ef0d feat(core): capture log from script command
close #4641
2024-08-20 12:21:21 +02:00
brian.mulier
a698b80d1b fix(tests): add creation time and last modified time tests to make sure they are millis
part of #4119
2024-08-20 09:29:08 +02:00
brian.mulier
245dd04752 fix(repositories): align ACLs for all repositories
part of kestra-io/kestra-ee#1358
2024-08-19 17:13:51 +02:00
YannC
32f2d8ad1f fix(ui): fixed tab error when viewing blueprint details
close kestra-io/kestra-ee#1530
2024-08-19 11:52:14 +02:00
YannC
7d8fb63077 fix(ui): avoid empty navbar in blueprint details view 2024-08-19 11:36:31 +02:00
YannC
4df587ff5a fix(core): In nested flowable, return 0 instead of null output for iterationCount in waitFor task (#4700)
close #4657
2024-08-19 10:49:35 +02:00
Florian Hussonnois
76062e60c2 fix(mysql): temproray fix to optimize fetch from queue table
This commit adds a temporary fix to replace FIND_IN_SET with
a IN clause in order to properly use the index on the consumers column
2024-08-19 10:36:04 +02:00
dependabot[bot]
a097aceea8 chore(deps): bump com.google.guava:guava from 33.2.1-jre to 33.3.0-jre
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.2.1-jre to 33.3.0-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-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 09:47:07 +02:00
audunsol
ae87cc83cc Update PurgeLogs.java
Fixed `WARNING` => `WARN`


Following this example gave me this error:

```
Illegal flow yaml: Cannot deserialize value of type org.slf4j.event.Level from String “WARNING”: not one of the values accepted for Enum class: [ERROR, DEBUG, TRACE, INFO, WARN]
 at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: io.kestra.core.models.flows.Flow[“tasks”]->java.util.ArrayList[0]->io.kestra.plugin.core.log.PurgeLogs[“logLevels”]->java.util.ArrayList[3])
```

See also: https://www.slf4j.org/api/org/slf4j/event/Level.html
2024-08-19 09:46:42 +02:00
dependabot[bot]
c233f12a2e chore(deps): bump org.jooq:jooq from 3.19.10 to 3.19.11
Bumps org.jooq:jooq from 3.19.10 to 3.19.11.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 09:27:51 +02:00
dependabot[bot]
d0a64b681a chore(deps): bump com.h2database:h2 from 2.3.230 to 2.3.232
Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.3.230 to 2.3.232.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.3.230...version-2.3.232)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 09:27:40 +02:00
Loïc Mathieu
90c1c71e42 fix(jdbc-postgres): remove not-needed serialization in Postgres queue 2024-08-19 09:15:08 +02:00
Ludovic DEHON
fd19334972 fix(webserver): create execution don't display error
close #4673
2024-08-16 21:31:59 +02:00
Miloš Paunović
492f5f4520 chore(ui): improve outputs debugging expression logic (#4682) 2024-08-16 15:40:53 +02:00
Miloš Paunović
8296bb39fe feat(ui): add the ability to scroll the outputs error log and copy to clipboard (#4681) 2024-08-16 14:18:54 +02:00
Miloš Paunović
7db04cac44 chore(ui): improve parameter passing to child component (#4678) 2024-08-16 11:20:07 +02:00
Miloš Paunović
6acba8df89 feat(ui): add restart button on execution logs page (#4672) 2024-08-15 14:12:59 +02:00
Miloš Paunović
9ad860ce6e feat(ui): made output of type uri clickable (#4671) 2024-08-15 13:43:03 +02:00
Miloš Paunović
85305d96d2 chore(test): add data-test-id attribute to global loader 2024-08-15 13:33:53 +02:00
Miloš Paunović
32046df7ad chore(ui): sort plugins list alphabetically (#4670) 2024-08-15 11:40:00 +02:00
Miloš Paunović
1630faeef1 chore(ui): editor sticky scroll to follow theme coloring (#4669) 2024-08-15 11:31:24 +02:00
Miloš Paunović
f914f04b4c fix(ui): only set editor tabs to dirty if not on creation (#4668) 2024-08-15 10:51:13 +02:00
Milos Paunovic
82f183788f fix(ui): make sure blueprint base url is always present in component 2024-08-15 10:07:20 +02:00
Miloš Paunović
647c15f298 fix(ui): improved the editor behaviour on switching views (#4667) 2024-08-15 09:54:46 +02:00
YannC
b103faf94e fix(core): change property options to values for multiselect, deprecated the older and will be removed in 0.20 2024-08-14 16:43:15 +02:00
Miloš Paunović
f0c0f93099 fix(ui): add optional check if string exists 2024-08-14 16:04:01 +02:00
YannC
f004c6f0d1 fix(ui): reload blueprints when base uri change 2024-08-14 13:53:16 +02:00
YannC
5e6aeb13cd fix(ui): prevent event propagate and provide blueprint source in query (#4651)
close #4487
2024-08-14 10:03:01 +02:00
Anna Geller
2a7f14ad94 fix: Korean after review from John 2024-08-14 09:11:44 +02:00
dependabot[bot]
87b4fe5b09 chore(deps): bump axios from 1.7.3 to 1.7.4 in /ui (#4650)
Bumps [axios](https://github.com/axios/axios) from 1.7.3 to 1.7.4.
- [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.7.3...v1.7.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-14 08:17:09 +02:00
YannC
39cc614a44 fix(jdbc): useline line 2024-08-13 14:58:27 +02:00
YannC
9cc435cfce tests(jdbc): keep tables name in memory (#4647)
* tests(jdbc): keep tables name in memory

* fix(jdbc): added @PostConstruct setup for tables
2024-08-13 14:56:55 +02:00
dependabot[bot]
7e27220cbf chore(deps): bump org.siouan.frontend-jdk17 from 8.0.0 to 8.1.0 (#4047)
Bumps org.siouan.frontend-jdk17 from 8.0.0 to 8.1.0.

---
updated-dependencies:
- dependency-name: org.siouan.frontend-jdk17
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-13 14:00:43 +02:00
Loïc Mathieu
bd66a9c319 feat(core): deprecate FileSerder.reader() metods and provide a readAll() overload with a Java class 2024-08-13 11:31:37 +02:00
Loïc Mathieu
9911e2532f fix(core): FileSerde use reader and writer to be able to configure the charset 2024-08-12 15:25:54 +02:00
brian.mulier
76b59eb69d fix(tests): modify mocks for taskCommands to match the new implementation 2024-08-12 13:17:27 +02:00
yuri1969
a15d908b27 fix(webserver): allow label containing a comma
Queries like `?labels=foo:bar,baz` failed since due using `,` as
separator the `baz` was parsed as a label.

This PR switches the `labels` parameter format from
`param=Mike,Adam,Kate` to `param=Mike&param=Adam&param=Kate`.

https://docs.micronaut.io/latest/guide/#clientParameters
2024-08-12 12:57:57 +02:00
Miloš Paunović
20fe0de4b8 fix(ui): add check if property exists on blueprint details page 2024-08-12 12:38:54 +02:00
brian.mulier
d006449b46 fix(script): include directories in docker task runner volume 2024-08-12 12:28:16 +02:00
dependabot[bot]
f98fc7be7e chore(deps): bump org.apache.commons:commons-compress
Bumps org.apache.commons:commons-compress from 1.26.2 to 1.27.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 10:38:22 +02:00
Anna Geller
8c3c25cc50 chore: add CI to autogenerate a PR for other languages once we change sth in en.json (#4628) 2024-08-12 10:37:31 +02:00
dependabot[bot]
a6dc1fd79f chore(deps): bump org.apache.commons:commons-lang3 from 3.15.0 to 3.16.0
Bumps org.apache.commons:commons-lang3 from 3.15.0 to 3.16.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 10:08:24 +02:00
dependabot[bot]
f793178a0e chore(deps): bump com.microsoft.playwright:playwright
Bumps [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) from 1.45.1 to 1.46.0.
- [Release notes](https://github.com/microsoft/playwright-java/releases)
- [Commits](https://github.com/microsoft/playwright-java/compare/v1.45.1...v1.46.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 10:08:11 +02:00
dependabot[bot]
542500851b chore(deps): bump opensearchRestVersion from 2.15.0 to 2.16.0
Bumps `opensearchRestVersion` from 2.15.0 to 2.16.0.

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 10:08:01 +02:00
dependabot[bot]
80054f5aa4 chore(deps): bump org.slf4j:slf4j-api from 2.0.14 to 2.0.16
Bumps org.slf4j:slf4j-api from 2.0.14 to 2.0.16.

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 10:07:49 +02:00
Miloš Paunović
f8e328d671 chore(deps): amend property types in Dependabot 2024-08-12 09:08:49 +02:00
Miloš Paunović
38d51052a7 chore(deps): add time zone and npm package default reviewer to Dependabot 2024-08-12 09:07:05 +02:00
dependabot[bot]
4696865c5b chore(deps): bump element-plus from 2.7.8 to 2.8.0 in /ui (#4626)
Bumps [element-plus](https://github.com/element-plus/element-plus) from 2.7.8 to 2.8.0.
- [Release notes](https://github.com/element-plus/element-plus/releases)
- [Changelog](https://github.com/element-plus/element-plus/blob/dev/CHANGELOG.en-US.md)
- [Commits](https://github.com/element-plus/element-plus/compare/2.7.8...2.8.0)

---
updated-dependencies:
- dependency-name: element-plus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-08-12 08:16:47 +02:00
dependabot[bot]
63245981d3 chore(deps): bump posthog-js from 1.154.5 to 1.155.0 in /ui (#4627)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.154.5 to 1.155.0.
- [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.154.5...v1.155.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
2024-08-12 08:16:10 +02:00
dependabot[bot]
167d989038 chore(deps-dev): bump vite from 5.3.5 to 5.4.0 in /ui (#4625)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.5 to 5.4.0.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@5.4.0/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 08:15:17 +02:00
dependabot[bot]
7e03a46630 chore(deps): bump vue from 3.4.36 to 3.4.37 in /ui (#4624)
Bumps [vue](https://github.com/vuejs/core) from 3.4.36 to 3.4.37.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.4.36...v3.4.37)

---
updated-dependencies:
- dependency-name: vue
  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>
2024-08-12 08:14:00 +02:00
Shruti Mantri
aa4f0a82eb fix(ui): correct the hindi translations (#4623) 2024-08-10 10:22:52 +02:00
Anna Geller
963d933154 feat: add korean for FILA (#4620) 2024-08-09 15:59:46 +02:00
Loïc Mathieu
0cb79faa5a fix(core): if empty then
Fixes #4601
2024-08-09 15:50:00 +02:00
Anna Geller
d296cbb9f3 feat: add more languages (#4616)
* feat: translations

* fix: now the correct OSS version

* Apply suggestions from code review

Co-authored-by: smunteankestra <smuntean@kestra.io>

* Apply suggestions from Stefan's review

Co-authored-by: smunteankestra <smuntean@kestra.io>

---------

Co-authored-by: smunteankestra <smuntean@kestra.io>
2024-08-09 15:27:29 +02:00
Florian Hussonnois
437ff66341 chore: make DefaultPluginRegistry extendable 2024-08-09 15:06:20 +02:00
eric
c931668dd2 feat(ui): add simplified chinese to the UI (#4610) 2024-08-09 11:30:00 +02:00
yuri
92b5f884d1 feat(ui): add shortcut to Output Debugger (#4612)
Use Ctrl+Enter to run the debug expression.
2024-08-09 09:21:51 +02:00
Miloš Paunović
9e2cc0ac97 chore(ui): clean template by removing unused data properties (#4615) 2024-08-09 08:23:40 +02:00
Anna Geller
bcc9c4bac0 feat: add German and Polish (#4614)
* feat: add German and Polish

* fix: missing parameters
2024-08-08 23:37:23 +02:00
Anna Geller
de704faaaa fix: my bad commit 2024-08-08 19:18:51 +02:00
Miloš Paunović
6f6d035361 fix(ui): graciously handle situation with no tutorial flows loaded (#4609) 2024-08-08 16:31:36 +02:00
Loïc Mathieu
3881d778a4 fix(core,jdbc): PurgeLog with levels in postgres
Fixes #4604
2024-08-08 12:57:50 +02:00
Anna Geller
22bd56ae9a closes https://github.com/kestra-io/kestra/issues/4084 2024-08-08 12:54:08 +02:00
Loïc Mathieu
5b75a05ae4 fix(core): increase retry duration to fix flaky test on Kafka 2024-08-08 11:47:33 +02:00
Anna Geller
4d00fc1aa3 docs: clarify HTTP timeout (#4603)
* docs: clarify HTTP timeout

* Update Request.java
2024-08-08 10:55:16 +02:00
eric
6821303fa7 fix(ui): improve date handling per locale (#4600) 2024-08-08 10:49:11 +02:00
YannC
3e2b4b07ef tests(ui): check language files keys (#4602)
close #4576
2024-08-08 10:39:12 +02:00
YannC
300e2c6d77 chore: remove condition in daily check workflow 2024-08-08 09:13:27 +02:00
brian.mulier
a487a462fa fix(tests): cleanup executions before running PurgeExecutions tests 2024-08-07 17:22:54 +02:00
brian.mulier
0b24249c82 fix(ui + core): topology expand subflow now properly work in executions + can expand subflow with dynamic ids on executions
part of #4299
2024-08-07 17:22:54 +02:00
Ludovic DEHON
c2471c2d73 refactor(core): reuse version endpoint from oss 2024-08-07 17:12:22 +02:00
YannC
a0729774c6 chore: amend variable use in workflow 2024-08-07 16:28:31 +02:00
YannC
a68c35fe74 chore: rollout if docker task is success (#4597) 2024-08-07 16:24:09 +02:00
Florian Hussonnois
8d1876b1c6 fix(core): fix NPE for K/V tasks and WorkingDirectory (#4592)
Fix: #4592
2024-08-07 16:23:56 +02:00
Ludovic DEHON
89f14419dc feat(ui): add commit id and date on version hover 2024-08-07 16:20:18 +02:00
yuri1969
c81217c74f fix(webserver): do not accept invalid labels
Enabled validation instead of returning a HTTP 500 response.
2024-08-07 16:10:32 +02:00
Loïc Mathieu
31242dfac6 fix(core): reduce retry tests duration
Retry tests on H2 goes down from 2mn06s to 41s
2024-08-07 16:08:02 +02:00
brian.mulier
eca03bdd8c fix(core): have running state in subflow attempts
closes #4066
2024-08-07 15:47:47 +02:00
YannC
7c7b60c6ad chore: add a workflow to daily check the CI and notify if failed (#4596) 2024-08-07 15:37:04 +02:00
dependabot[bot]
79635ff8da chore(deps): bump org.hamcrest:hamcrest from 2.2 to 3.0
Bumps [org.hamcrest:hamcrest](https://github.com/hamcrest/JavaHamcrest) from 2.2 to 3.0.
- [Release notes](https://github.com/hamcrest/JavaHamcrest/releases)
- [Changelog](https://github.com/hamcrest/JavaHamcrest/blob/master/CHANGES.md)
- [Commits](https://github.com/hamcrest/JavaHamcrest/compare/v2.2...v3.0)

---
updated-dependencies:
- dependency-name: org.hamcrest:hamcrest
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 14:58:52 +02:00
Miloš Paunović
21ac9bc342 chore(ui): only show delete logs button on flow logs tab (#4591) 2024-08-07 14:37:05 +02:00
dependabot[bot]
17cb7567b9 chore(deps): bump org.hamcrest:hamcrest-library from 2.2 to 3.0
Bumps [org.hamcrest:hamcrest-library](https://github.com/hamcrest/JavaHamcrest) from 2.2 to 3.0.
- [Release notes](https://github.com/hamcrest/JavaHamcrest/releases)
- [Changelog](https://github.com/hamcrest/JavaHamcrest/blob/master/CHANGES.md)
- [Commits](https://github.com/hamcrest/JavaHamcrest/compare/v2.2...v3.0)

---
updated-dependencies:
- dependency-name: org.hamcrest:hamcrest-library
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 14:36:15 +02:00
dependabot[bot]
e468eb6414 chore(deps): bump org.slf4j:slf4j-api from 2.0.13 to 2.0.14
Bumps org.slf4j:slf4j-api from 2.0.13 to 2.0.14.

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 14:36:03 +02:00
dependabot[bot]
642b38cf15 chore(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/opensearch-project/opensearch-java/releases)
- [Changelog](https://github.com/opensearch-project/opensearch-java/blob/v2.13.0/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/opensearch-java/compare/v2.12.0...v2.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 14:32:36 +02:00
dependabot[bot]
108e4ad120 chore(deps): bump io.qameta.allure:allure-bom from 2.28.0 to 2.29.0
Bumps [io.qameta.allure:allure-bom](https://github.com/allure-framework/allure-java) from 2.28.0 to 2.29.0.
- [Release notes](https://github.com/allure-framework/allure-java/releases)
- [Commits](https://github.com/allure-framework/allure-java/compare/2.28.0...2.29.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 14:31:29 +02:00
Miloš Paunović
e662648f0b chore(deps): regular dependency updates (#4577) 2024-08-07 14:04:38 +02:00
brian.mulier
8d9d26ab83 fix(tests): doc tests wording changed 2024-08-07 12:18:40 +02:00
Anna Geller
8ab2ebdd9b fix: wording 2024-08-07 11:37:04 +02:00
Anna Geller
45426aa2ed fix: task runner plugins info 2024-08-07 11:31:22 +02:00
Ludovic DEHON
bfce2232ea fix(core): remove useless logger on jsonfilter 2024-08-06 19:01:00 +02:00
YannC
6065c49fc1 chore(version): update snapshot version 'v0.19.0-SNAPSHOT'. 2024-08-06 17:06:02 +02:00
1935 changed files with 128195 additions and 33704 deletions

82
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,82 @@
FROM ubuntu:24.04
ARG BUILDPLATFORM
ARG DEBIAN_FRONTEND=noninteractive
USER root
WORKDIR /root
RUN apt update && apt install -y \
apt-transport-https ca-certificates gnupg curl wget git zip unzip less zsh net-tools iputils-ping jq lsof
ENV HOME="/root"
# --------------------------------------
# Git
# --------------------------------------
# Need to add the devcontainer workspace folder as a safe directory to enable git
# version control system to be enabled in the containers file system.
RUN git config --global --add safe.directory "/workspaces/kestra"
# --------------------------------------
# --------------------------------------
# Oh my zsh
# --------------------------------------
RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -- \
-t robbyrussell \
-p git -p node -p npm
ENV SHELL=/bin/zsh
# --------------------------------------
# --------------------------------------
# Java
# --------------------------------------
ARG OS_ARCHITECTURE
RUN mkdir -p /usr/java
RUN echo "Building on platform: $BUILDPLATFORM"
RUN case "$BUILDPLATFORM" in \
"linux/amd64") OS_ARCHITECTURE="linux-x64" ;; \
"linux/arm64") OS_ARCHITECTURE="linux-aarch64" ;; \
"darwin/amd64") OS_ARCHITECTURE="macos-x64" ;; \
"darwin/arm64") OS_ARCHITECTURE="macos-aarch64" ;; \
*) echo "Unsupported BUILDPLATFORM: $BUILDPLATFORM" && exit 1 ;; \
esac && \
wget "https://aka.ms/download-jdk/microsoft-jdk-21.0.6-$OS_ARCHITECTURE.tar.gz" && \
mv "microsoft-jdk-21.0.6-$OS_ARCHITECTURE.tar.gz" microsoft-jdk-21.0.6.tar.gz
RUN tar -xzvf microsoft-jdk-21.0.6.tar.gz && \
mv jdk-21.0.6+7 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
# Sets the path where you save plugins as Jar and is loaded during the startup process
ENV KESTRA_PLUGINS_PATH="/workspaces/kestra/local/plugins"
# --------------------------------------
# --------------------------------------
# Node.js
# --------------------------------------
RUN curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh \
&& bash nodesource_setup.sh && apt install -y nodejs
# Increases JavaScript heap memory to 4GB to prevent heap out of error during startup
ENV NODE_OPTIONS=--max-old-space-size=4096
# --------------------------------------
# --------------------------------------
# Python
# --------------------------------------
RUN apt install -y python3 pip python3-venv
# --------------------------------------
# --------------------------------------
# SSH
# --------------------------------------
RUN mkdir -p ~/.ssh
RUN touch ~/.ssh/config
RUN echo "Host github.com" >> ~/.ssh/config \
&& echo " IdentityFile ~/.ssh/id_ed25519" >> ~/.ssh/config
RUN touch ~/.ssh/id_ed25519
# --------------------------------------

149
.devcontainer/README.md Normal file
View File

@@ -0,0 +1,149 @@
# Kestra Devcontainer
This devcontainer provides a quick and easy setup for anyone using VSCode to get up and running quickly with this project to start development on either the frontend or backend. It bootstraps a docker container for you to develop inside of without the need to manually setup the environment.
---
## INSTRUCTIONS
### Setup:
Take a look at this guide to get an idea of what the setup is like as this devcontainer setup follows this approach: https://kestra.io/docs/getting-started/contributing
Once you have this repo cloned to your local system, you will need to install the VSCode extension [Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack).
Then run the following command from the command palette:
`Dev Containers: Open Folder in Container...` and select your Kestra root folder.
This will then put you inside a docker container ready for development.
NOTE: you'll need to wait for the gradle build to finish and compile Java files but this process should happen automatically within VSCode.
In the meantime, you can move onto the next step...
---
### 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
```
- Navigate into the `ui` folder and run `npm install` to install the dependencies for the frontend project.
- Now go to the `cli/src/main/resources` folder and create a `application-override.yml` file.
Now you have two choices:
`Local mode`:
Runs the Kestra server in local mode which uses a H2 database, so this is the only config you'd need:
```yaml
micronaut:
server:
cors:
enabled: true
configurations:
all:
allowedOrigins:
- http://localhost:5173
```
You can then open a new terminal and run the following command to start the backend server: `./gradlew runLocal`
`Standalone mode`:
Runs in standalone mode which uses Postgres. Make sure to have a local Postgres instance already running on localhost:
```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
server:
basic-auth:
enabled: false
datasources:
postgres:
# It is important to note that you must use the "host.docker.internal" host when connecting to a docker container outside of your devcontainer as attempting to use localhost will only point back to this devcontainer.
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
# We must ignore missing migrations as we may delete the wrong ones or delete those that are not used anymore.
ignore-migration-patterns: "*:missing,*:future"
out-of-order: true
micronaut:
server:
cors:
enabled: true
configurations:
all:
allowedOrigins:
- http://localhost:5173
```
Then add the following settings to the `.vscode/launch.json` file:
```json
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Kestra Standalone",
"request": "launch",
"mainClass": "io.kestra.cli.App",
"projectName": "cli",
"args": "server standalone"
}
]
}
```
You can then use the VSCode `Run and Debug` extension to start the Kestra server.
Additionally, if you're doing frontend development, you can run `npm run dev` from the `ui` folder after having the above running (which will provide a backend) to access your application from `localhost:5173`. This has the benefit to watch your changes and hot-reload upon doing frontend changes.
#### Plugins
If you want your plugins to be loaded inside your devcontainer, point the `source` field to a folder containing jars of the plugins you want to embed in the following snippet in `devcontainer.json`:
```
"mounts": [
{
"source": "/absolute/path/to/your/local/jar/plugins/folder",
"target": "/workspaces/kestra/local/plugins",
"type": "bind"
}
],
```
---
### GIT
If you want to commit to GitHub, make sure to navigate to the `~/.ssh` folder and either create a new SSH key or override the existing `id_ed25519` file and paste an existing SSH key from your local machine into this file. You will then need to change the permissions of the file by running: `chmod 600 id_ed25519`. This will allow you to then push to GitHub.
---

View File

@@ -0,0 +1,46 @@
{
"name": "kestra",
"build": {
"context": ".",
"dockerfile": "Dockerfile"
},
"workspaceFolder": "/workspaces/kestra",
"forwardPorts": [5173, 8080],
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.profiles.linux": {
"zsh": {
"path": "/bin/zsh"
}
},
"workbench.iconTheme": "vscode-icons",
"editor.tabSize": 4,
"editor.formatOnSave": true,
"files.insertFinalNewline": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"telemetry.telemetryLevel": "off",
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active"
},
"extensions": [
"redhat.vscode-yaml",
"dbaeumer.vscode-eslint",
"vscode-icons-team.vscode-icons",
"eamodio.gitlens",
"esbenp.prettier-vscode",
"aaron-bond.better-comments",
"codeandstuff.package-json-upgrade",
"andys8.jest-snippets",
"oderwat.indent-rainbow",
"evondev.indent-rainbow-palettes",
"formulahendry.auto-rename-tag",
"IronGeek.vscode-env",
"yoavbls.pretty-ts-errors",
"github.vscode-github-actions",
"vscjava.vscode-java-pack",
"ms-azuretools.vscode-docker"
]
}
}
}

View File

@@ -31,12 +31,16 @@ Watch out for duplicates! If you are creating a new issue, please check existing
#### Requirements
The following dependencies are required to build Kestra locally:
- Java 17+, Kestra runs on Java 11 but we hit a Java compiler bug fixed in Java 17
- Node 14+ and npm
- Java 21+
- Node 18+ and npm
- Python 3, pip and python venv
- 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,20 +50,23 @@ 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.
You can also build it from a terminal using `./gradlew build`, the Gradle wrapper will download the right Gradle version to use.
- You may need to enable java annotation processors since we are using it a lot.
- The main class is `io.kestra.cli.App` from module `kestra.cli.main`
- Pass as program arguments the server you want to develop, for example `server local` will start the [standalone local](https://kestra.io/docs/administrator-guide/server-cli#kestra-local-development-server-with-no-dependencies)
- ![Intellij Idea Configuration ](https://user-images.githubusercontent.com/2064609/161399626-1b681add-cfa8-4e0e-a843-2631cc59758d.png) Intellij Idea configuration can be found in screenshot below.
- `MICRONAUT_ENVIRONMENTS`: can be set any string and will load a custom configuration file in `cli/src/main/resources/application-{env}.yml`
- `KESTRA_PLUGINS_PATH`: is the path where you will save plugins as Jar and will be load on the startup.
- You can also use the gradle task `./gradlew runLocal` that will run a standalone server with `MICRONAUT_ENVIRONMENTS=override` and plugins path `local/plugins`
- The server start by default on port 8080 and is reachable on `http://localhost:8080`
- You may need to enable java annotation processors since we are using them.
- On IntelliJ IDEA, click on **Run -> Edit Configurations -> + Add new Configuration** to create a run configuration to start Kestra.
- The main class is `io.kestra.cli.App` from module `kestra.cli.main`.
- Pass as program arguments the server you want to work with, for example `server local` will start the [standalone local](https://kestra.io/docs/administrator-guide/server-cli#kestra-local-development-server-with-no-dependencies). You can also use `server standalone` and use the provided `docker-compose-ci.yml` Docker compose file to start a standalone server with a real database as a backend that would need to be configured properly.
- Configure the following environment variables:
- `MICRONAUT_ENVIRONMENTS`: can be set to any string and will load a custom configuration file in `cli/src/main/resources/application-{env}.yml`.
- `KESTRA_PLUGINS_PATH`: is the path where you will save plugins as Jar and will be load on startup.
- See the screenshot below for an example: ![Intellij IDEA Configuration ](run-app.png)
- If you encounter **JavaScript memory heap out** error during startup, configure `NODE_OPTIONS` environment variable with some large value.
- Example `NODE_OPTIONS: --max-old-space-size=4096` or `NODE_OPTIONS: --max-old-space-size=8192` ![Intellij IDEA Configuration ](node_option_env_var.png)
- The server starts by default on port 8080 and is reachable on `http://localhost:8080`
If you want to launch all tests, you need Python and some packages installed on your machine, on Ubuntu you can install them with:
@@ -69,17 +76,17 @@ 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 --force` (force is need because of some conflicting package)
- create a files `ui/.env.development.local` with content `VITE_APP_API_URL=http://localhost:8080` (or your actual server url)
- `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 8090 and is reachable on `http://localhost:5173`
- 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.
Now, you need to start a backend server, you could:
- start a [local server](https://kestra.io/docs/administrator-guide/server-cli#kestra-local-development-server-with-no-dependencies) without database using this docker-compose file already configured with CORS enabled:
- start a [local server](https://kestra.io/docs/administrator-guide/server-cli#kestra-local-development-server-with-no-dependencies) without a database using this docker-compose file already configured with CORS enabled:
```yaml
services:
kestra:
@@ -99,7 +106,7 @@ services:
ports:
- "8080:8080"
```
- start the [Develop backend](#develop-backend) from your IDE and you need to configure CORS restrictions when using the local development npm server, changing the backend configuration allowing the http://localhost:5173 origin in `cli/src/main/resources/application-override.yml`
- start the [Develop backend](#develop-backend) from your IDE, you need to configure CORS restrictions when using the local development npm server, changing the backend configuration allowing the http://localhost:5173 origin in `cli/src/main/resources/application-override.yml`
```yaml
micronaut:
@@ -133,4 +140,4 @@ A complete documentation for developing plugin can be found [here](https://kestr
### Improving The Documentation
The main documentation is located in a separate [repository](https://github.com/kestra-io/kestra.io).
For tasks documentation, they are located directly on Java source using [Swagger annotations](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Annotations) (Example: [for Bash tasks](https://github.com/kestra-io/kestra/blob/develop/core/src/main/java/io/kestra/core/tasks/scripts/AbstractBash.java))
For tasks documentation, they are located directly in the Java source, using [Swagger annotations](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Annotations) (Example: [for Bash tasks](https://github.com/kestra-io/kestra/blob/develop/core/src/main/java/io/kestra/core/tasks/scripts/AbstractBash.java))

View File

@@ -1,54 +0,0 @@
name: Blueprint
description: Add a new blueprint
body:
- type: markdown
attributes:
value: |
Please fill out all the fields listed below. This will help us review and add your blueprint faster.
- type: textarea
attributes:
label: Blueprint title
description: A title briefly describing what the blueprint does, ideally in a verb phrase + noun format.
placeholder: E.g. "Upload a file to service X, then run Y and Z"
validations:
required: true
- type: textarea
attributes:
label: Source code
description: Flow code that will appear on the Blueprint page.
placeholder: |
```yaml
id: yourFlowId
namespace: blueprint
tasks:
- id: taskName
type: task_type
```
validations:
required: true
- type: textarea
attributes:
label: About this blueprint
description: "A concise markdown documentation about the blueprint's configuration and usage."
placeholder: |
E.g. "This flow downloads a file and uploads it to an S3 bucket. This flow assumes AWS credentials stored as environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`."
validations:
required: false
- type: textarea
attributes:
label: Tags (optional)
description: Blueprint categories such as Ingest, Transform, Analyze, Python, Docker, AWS, GCP, Azure, etc.
placeholder: |
- Ingest
- Transform
- AWS
validations:
required: false
labels:
- blueprint

View File

@@ -4,9 +4,7 @@ body:
- type: markdown
attributes:
value: |
Thanks for reporting an issue! Please provide a [Minima Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example)
and share any additional information that may help reproduce, troubleshoot, and hopefully fix the issue, including screenshots, error traceback, and your Kestra server logs.
NOTE: If your issue is more of a question, please ping us directly on [Slack](https://kestra.io/slack).
Thanks for reporting an issue! Please provide a [Minimal Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example) and share any additional information that may help reproduce, troubleshoot, and hopefully fix the issue, including screenshots, error traceback, and your Kestra server logs. For quick questions, you can contact us directly on [Slack](https://kestra.io/slack).
- type: textarea
attributes:
label: Describe the issue
@@ -19,10 +17,10 @@ body:
label: Environment
description: Environment information where the problem occurs.
value: |
- Kestra Version:
- Operating System (OS/Docker/Kubernetes):
- Java Version (if you don't run kestra in Docker):
- Kestra Version: develop
validations:
required: false
labels:
- bug
- bug
- area/backend
- area/frontend

View File

@@ -1,7 +1,4 @@
contact_links:
- name: GitHub Discussions
url: https://github.com/kestra-io/kestra/discussions
about: Ask questions about Kestra on Github
- name: Chat
url: https://kestra.io/slack
about: Chat with us on Slack.

View File

@@ -1,15 +1,13 @@
name: Feature request
description: Create a new feature request
body:
- type: markdown
attributes:
value: |
Please describe the feature you want for Kestra to implement, before that check if there is already an existing issue to add it.
- type: textarea
attributes:
label: Feature description
placeholder: Tell us what feature you would like for Kestra to have and what problem is it going to solve
placeholder: Tell us more about your feature request
validations:
required: true
labels:
- enhancement
- area/backend
- area/frontend

View File

@@ -1,8 +0,0 @@
name: Other
description: Something different
body:
- type: textarea
attributes:
label: Issue description
validations:
required: true

View File

@@ -13,6 +13,9 @@ 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:
@@ -20,5 +23,7 @@ runs:
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" | xargs || echo '');
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

@@ -22,12 +22,17 @@ updates:
- "dependency-upgrade"
open-pull-requests-limit: 50
# Maintain dependencies for Npm modules
# Maintain dependencies for NPM modules
- package-ecosystem: "npm"
directory: "/ui"
schedule:
# Check for updates to Npm modules every week
interval: "weekly"
labels:
- "dependency-upgrade"
day: "wednesday"
time: "08:00"
timezone: "Europe/Paris"
open-pull-requests-limit: 50
labels: ["dependency-upgrade"]
ignore:
# Ignore updates of version 1.x, as we're using beta of 2.x
- dependency-name: "vue-virtual-scroller"
versions: ["1.x"]

BIN
.github/node_option_env_var.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

BIN
.github/run-app.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

View File

@@ -6,11 +6,11 @@
name: "CodeQL"
on:
push:
branches: [develop]
schedule:
- cron: '0 5 * * 1'
workflow_dispatch: {}
jobs:
analyze:
name: Analyze
@@ -51,13 +51,23 @@ jobs:
# Set up JDK
- name: Set up JDK
uses: actions/setup-java@v4
if: ${{ matrix.language == 'java' }}
with:
distribution: 'temurin'
java-version: 21
- name: Setup gradle
if: ${{ matrix.language == 'java' }}
uses: gradle/actions/setup-gradle@v4
- name: Build with Gradle
if: ${{ matrix.language == 'java' }}
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)
- name: Autobuild
if: ${{ matrix.language != 'java' }}
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.

View File

@@ -1,4 +1,4 @@
name: Create Docker images on tag
name: Create Docker images on Release
on:
workflow_dispatch:
@@ -11,6 +11,10 @@ on:
options:
- "true"
- "false"
release-tag:
description: 'Kestra Release Tag'
required: false
type: string
plugin-version:
description: 'Plugin version'
required: false
@@ -38,17 +42,16 @@ jobs:
name: Publish Docker
needs: [ plugins ]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
strategy:
matrix:
image:
- name: "-no-plugins"
plugins: ""
packages: ""
packages: jattach
python-libs: ""
- name: ""
plugins: ${{needs.plugins.outputs.plugins}}
packages: python3 python3-venv python-is-python3 python3-pip nodejs npm curl zip unzip
packages: python3 python3-venv python-is-python3 python3-pip nodejs npm curl zip unzip jattach
python-libs: kestra
steps:
- uses: actions/checkout@v4
@@ -57,13 +60,22 @@ jobs:
- name: Set image name
id: vars
run: |
TAG=${GITHUB_REF#refs/*/}
echo "tag=${TAG}" >> $GITHUB_OUTPUT
echo "plugins=${{ matrix.image.plugins }}" >> $GITHUB_OUTPUT
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.11
uses: robinraju/release-downloader@v1.12
with:
tag: ${{steps.vars.outputs.tag}}
fileName: 'kestra-*'
@@ -77,6 +89,11 @@ jobs:
- 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

View File

@@ -42,19 +42,13 @@ jobs:
with:
path: kestra
# 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/.github/actions/setup-build@main
id: build
with:
java-enabled: true
caches-enabled: true
node-enabled: true
python-enabled: true
# Get Docker Image
- name: Download Kestra Image
@@ -146,10 +140,10 @@ jobs:
with:
credentials_json: '${{ secrets.GOOGLE_SERVICE_ACCOUNT }}'
- uses: rlespinasse/github-slug-action@v4
- uses: rlespinasse/github-slug-action@v5
- name: Publish allure report
uses: andrcuns/allure-publish-action@v2.7.1
uses: andrcuns/allure-publish-action@v2.9.0
if: ${{ !cancelled() && env.GOOGLE_SERVICE_ACCOUNT != 0 }}
env:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_AUTH_TOKEN }}
@@ -158,7 +152,7 @@ jobs:
storageType: gcs
resultsGlob: build/allure-results
bucket: internal-kestra-host
baseUrl: "https://internal.kestra.io"
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

@@ -0,0 +1,67 @@
name: Auto-Translate UI keys and create PR
on:
schedule:
- cron: "0 9-21 * * *" # Every hour from 9 AM to 9 PM
workflow_dispatch:
inputs:
retranslate_modified_keys:
description: "Whether to re-translate modified keys even if they already have translations."
type: choice
options:
- "false"
- "true"
default: "false"
required: false
jobs:
translations:
name: Translations
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
name: Checkout
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install Python dependencies
run: pip install gitpython openai
- name: Generate translations
run: python ui/src/translations/generate_translations.py ${{ github.event.inputs.retranslate_modified_keys }}
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- name: Set up Node
uses: actions/setup-node@v4
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"
git config --global user.email "actions@github.com"
- name: Commit and create PR
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
BRANCH_NAME="chore/update-translations-$(date +%s)"
git checkout -b $BRANCH_NAME
git add ui/src/translations/*.json
if git diff --cached --quiet; then
echo "No changes to commit. Exiting with success."
exit 0
fi
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

View File

@@ -0,0 +1,82 @@
name: Run Gradle Release for Kestra Plugins
on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'The release version (e.g., 0.21.0-rc1)'
required: true
type: string
nextVersion:
description: 'The next version (e.g., 0.22.0-SNAPSHOT)'
required: true
type: string
dryRun:
description: 'Use DRY_RUN mode'
required: false
default: 'false'
jobs:
release:
name: Release plugins
runs-on: ubuntu-latest
steps:
# Checkout
- uses: actions/checkout@v4
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
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
id: plugins-list
with:
plugin-version: 'LATEST'
- name: 'Configure Git'
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
if: ${{ github.event.inputs.dryRun == 'false' }}
env:
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}} \
--yes \
${{ steps.plugins-list.outputs.repositories }}
- name: Run Gradle Release (DRY_RUN)
if: ${{ github.event.inputs.dryRun == 'true' }}
env:
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 }}

89
.github/workflows/gradle-release.yml vendored Normal file
View File

@@ -0,0 +1,89 @@
name: Run Gradle Release
run-name: "Releasing Kestra ${{ github.event.inputs.releaseVersion }} 🚀"
on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'The release version (e.g., 0.21.0-rc1)'
required: true
type: string
nextVersion:
description: 'The next version (e.g., 0.22.0-SNAPSHOT)'
required: true
type: string
env:
RELEASE_VERSION: "${{ github.event.inputs.releaseVersion }}"
NEXT_VERSION: "${{ github.event.inputs.nextVersion }}"
jobs:
release:
name: Release Kestra
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/develop'
steps:
# 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)?$"
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
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
with:
java-enabled: true
node-enabled: true
python-enabled: true
caches-enabled: true
- name: Configure Git
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
env:
GITHUB_PAT: ${{ secrets.GH_PERSONAL_TOKEN }}
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"
# 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}" \
-Prelease.pushReleaseVersionBranch="${PUSH_RELEASE_BRANCH}" \
-Prelease.failOnSnapshotDependencies=false
else
./gradlew release -Prelease.useAutomaticVersion=true \
-Prelease.releaseVersion="${RELEASE_VERSION}" \
-Prelease.newVersion="${NEXT_VERSION}" \
-Prelease.pushReleaseVersionBranch="${PUSH_RELEASE_BRANCH}"
fi

View File

@@ -1,441 +1,61 @@
name: Main
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*
pull_request:
branches:
- develop
repository_dispatch:
types: [ rebuild ]
workflow_dispatch:
inputs:
skip-test:
description: 'Skip test'
type: choice
required: true
default: 'false'
options:
- "true"
- "false"
plugin-version:
description: 'Plugin version'
required: false
type: string
default: "LATEST"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.ref }}-main
cancel-in-progress: true
env:
JAVA_VERSION: '21'
DOCKER_APT_PACKAGES: python3 python3-venv python-is-python3 python3-pip nodejs npm curl zip unzip
DOCKER_PYTHON_LIBRARIES: kestra
PLUGIN_VERSION: ${{ github.event.inputs.plugin-version != null && github.event.inputs.plugin-version || 'LATEST' }}
jobs:
build-artifacts:
name: Build Artifacts
runs-on: ubuntu-latest
timeout-minutes: 60
outputs:
docker-tag: ${{ steps.vars.outputs.tag }}
docker-artifact-name: ${{ steps.vars.outputs.artifact }}
plugins: ${{ steps.plugins-list.outputs.plugins }}
steps:
# Checkout
- uses: actions/checkout@v4
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
with:
java-enabled: true
node-enabled: true
caches-enabled: true
# Get Plugins List
- name: Get Plugins List
uses: ./.github/actions/plugins-list
id: plugins-list
with:
plugin-version: ${{ env.PLUGIN_VERSION }}
# Set Plugins List
- name: Set Plugin List
id: plugins
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: Build with Gradle
run: |
./gradlew executableJar
- name: Copy exe to image
run: |
cp build/executable/* docker/app/kestra && chmod +x docker/app/kestra
# Docker Tag
- name: Set up Vars
id: vars
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: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# Docker Build
- name: Build & Export Docker Image
uses: docker/build-push-action@v6
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: Upload JAR
uses: actions/upload-artifact@v4
with:
name: jar
path: build/libs/
- name: Upload Executable
uses: actions/upload-artifact@v4
with:
name: exe
path: build/executable/
- name: Upload Docker
uses: actions/upload-artifact@v4
with:
name: ${{ steps.vars.outputs.artifact }}
path: /tmp/${{ steps.vars.outputs.artifact }}.tar
# Run Reusable Workflow from QA repository
check-e2e:
name: Check E2E Tests
needs: build-artifacts
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
uses: ./.github/workflows/e2e.yml
strategy:
fail-fast: false
matrix:
backends: ["postgres"]
tests:
name: Execute tests
uses: ./.github/workflows/workflow-test.yml
with:
tags: oss
docker-artifact-name: ${{ needs.build-artifacts.outputs.docker-artifact-name }}
docker-image-tag: kestra/kestra:${{ needs.build-artifacts.outputs.docker-tag }}
backend: ${{ matrix.backends }}
secrets:
GITHUB_AUTH_TOKEN: ${{ secrets.GH_PERSONAL_TOKEN }}
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
check:
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
name: Check & Publish
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
# Checkout
- uses: actions/checkout@v4
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
with:
java-enabled: true
node-enabled: true
python-enabled: true
caches-enabled: true
# Services
- name: Build the docker-compose stack
run: docker compose -f docker-compose-ci.yml up -d
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
# Gradle check
- name: Build with Gradle
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
env:
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
run: |
echo $GOOGLE_SERVICE_ACCOUNT | base64 -d > ~/.gcp-service-account.json
export GOOGLE_APPLICATION_CREDENTIALS=$HOME/.gcp-service-account.json
./gradlew check javadoc --parallel
# Sonar
- name: Analyze with Sonar
if: ${{ env.SONAR_TOKEN != 0 && (github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: ./gradlew sonar --info
# Allure check
- name: Auth to Google Cloud
id: auth
if: ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 }}
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GOOGLE_SERVICE_ACCOUNT }}'
- uses: rlespinasse/github-slug-action@v4
- name: Publish allure report
uses: andrcuns/allure-publish-action@v2.7.1
if: ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 && (github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '') }}
env:
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JAVA_HOME: /usr/lib/jvm/default-jvm/
with:
storageType: gcs
resultsGlob: "**/build/allure-results"
bucket: internal-kestra-host
baseUrl: "https://internal.kestra.io"
prefix: ${{ format('{0}/{1}/{2}', github.repository, env.GITHUB_HEAD_REF_SLUG != '' && env.GITHUB_HEAD_REF_SLUG || github.ref_name, 'allure/java') }}
copyLatest: true
ignoreMissingResults: true
# Jacoco
- name: 'Set up Cloud SDK'
if: ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 && (github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '') }}
uses: 'google-github-actions/setup-gcloud@v2'
- name: 'Copy jacoco files'
if: ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 && (github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '') }}
run: |
mv build/reports/jacoco/testCodeCoverageReport build/reports/jacoco/test/
mv build/reports/jacoco/test/testCodeCoverageReport.xml build/reports/jacoco/jacocoTestReport.xml
gsutil -m rsync -d -r build/reports/jacoco/test/ gs://internal-kestra-host/${{ format('{0}/{1}/{2}', github.repository, env.GITHUB_HEAD_REF_SLUG != '' && env.GITHUB_HEAD_REF_SLUG || github.ref_name, 'jacoco') }}
# report test
- name: Test Report
uses: mikepenz/action-junit-report@v4
if: success() || failure()
with:
report_paths: '**/build/test-results/**/TEST-*.xml'
# Codecov
- uses: codecov/codecov-action@v4
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
with:
token: ${{ secrets.CODECOV_TOKEN }}
report-status: false
release:
name: Github Release
runs-on: ubuntu-latest
needs: [ check, check-e2e ]
if: startsWith(github.ref, 'refs/tags/v')
steps:
# Download Exec
- name: Download executable
uses: actions/download-artifact@v4
if: startsWith(github.ref, 'refs/tags/v')
with:
name: exe
path: build/executable
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 }}
# GitHub Release
- name: 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/*
docker:
name: Publish Docker
runs-on: ubuntu-latest
needs: [build-artifacts, check, check-e2e]
if: github.ref == 'refs/heads/develop'
strategy:
matrix:
image:
- tag: ${{needs.build-artifacts.outputs.docker-tag}}-no-plugins
packages: ""
python-libraries: ""
- tag: ${{needs.build-artifacts.outputs.docker-tag}}
plugins: ${{needs.build-artifacts.outputs.plugins}}
packages: python3 python3-venv python-is-python3 python3-pip nodejs npm curl zip unzip
python-libraries: kestra
steps:
- uses: actions/checkout@v4
# Docker setup
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- 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 }}
# Vars
- name: Set image name
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
# Build Docker Image
- name: Download executable
uses: actions/download-artifact@v4
with:
name: exe
path: build/executable
- name: Copy exe to image
run: |
cp build/executable/* docker/app/kestra && chmod +x docker/app/kestra
# Docker Build and push
- name: Build Docker Image
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: kestra/kestra:${{ matrix.image.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}}
maven:
name: Publish to Maven
runs-on: ubuntu-latest
needs: [check, check-e2e]
if: github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/checkout@v4
# 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
with:
java-enabled: true
node-enabled: true
caches-enabled: true
# Publish
- name: Publish package to Sonatype
if: github.ref == 'refs/heads/develop'
env:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USER }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ 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 publishToSonatype
# Release
- name: Release package to Maven Central
if: startsWith(github.ref, 'refs/tags/v')
env:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USER }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ 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: |
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 publishToSonatype closeAndReleaseSonatypeStagingRepository
end:
runs-on: ubuntu-latest
needs:
- check-e2e
- check
- maven
- docker
- release
if: always()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
steps:
# Update
- name: Update internal
- name: Github - Update internal
uses: benc-uk/workflow-dispatch@v1
if: github.ref == 'refs/heads/develop'
if: github.ref == 'refs/heads/develop' && needs.docker.result == 'success'
with:
workflow: oss-build.yml
repo: kestra-io/infra
@@ -443,12 +63,12 @@ jobs:
token: ${{ secrets.GH_PERSONAL_TOKEN }}
# Slack
- name: Slack notification
- 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
icon_emoji: ":github-actions:"
channel: "C02DQ1A7JLR" # _int_git channel

74
.github/workflows/pull-request.yml vendored Normal file
View File

@@ -0,0 +1,74 @@
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
runs-on: ubuntu-latest
timeout-minutes: 60
outputs:
ui: ${{ steps.changes.outputs.ui }}
translations: ${{ steps.changes.outputs.translations }}
backend: ${{ steps.changes.outputs.backend }}
steps:
- uses: dorny/paths-filter@v3
id: changes
with:
filters: |
ui:
- 'ui/**'
backend:
- '!{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
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'"
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 }}
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"

View File

@@ -0,0 +1,60 @@
name: Set Version and Tag Plugins
on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'The release version (e.g., 0.21.0)'
required: true
type: string
dryRun:
description: 'Use DRY_RUN mode'
required: false
default: 'false'
jobs:
tag:
name: Release plugins
runs-on: ubuntu-latest
steps:
# Checkout
- uses: actions/checkout@v4
with:
fetch-depth: 0
# Get Plugins List
- name: Get Plugins List
uses: ./.github/actions/plugins-list
id: plugins-list
with:
plugin-version: 'LATEST'
- name: 'Configure Git'
run: |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
# Execute
- name: Set Version and Tag Plugins
if: ${{ github.event.inputs.dryRun == 'false' }}
env:
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 \
${{ steps.plugins-list.outputs.repositories }}
- name: Set Version and Tag Plugins (DRY_RUN)
if: ${{ github.event.inputs.dryRun == 'true' }}
env:
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 \
--yes \
${{ steps.plugins-list.outputs.repositories }}

57
.github/workflows/setversion-tag.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: Set Version and Tag
run-name: "Set version and Tag Kestra to ${{ github.event.inputs.releaseVersion }} 🚀"
on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'The release version (e.g., 0.21.1)'
required: true
type: string
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
run: |
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
# Checkout
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure Git
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
env:
GITHUB_PAT: ${{ secrets.GH_PERSONAL_TOKEN }}
run: |
# Update version
sed -i "s/^version=.*/version=$RELEASE_VERSION/" ./gradle.properties
git add ./gradle.properties
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"

View File

@@ -8,6 +8,9 @@ on:
env:
JAVA_VERSION: '21'
permissions:
contents: read
jobs:
dependency-check:
name: Dependency Check
@@ -33,8 +36,16 @@ jobs:
node-enabled: true
caches-enabled: true
# Npm
- name: Npm - Install
shell: bash
working-directory: ui
run: npm ci
# Run OWASP dependency check plugin
- name: Gradle Dependency Check
env:
NVD_API_KEY: ${{ secrets.NIST_APIKEY }}
run: |
./gradlew dependencyCheckAggregate
@@ -49,6 +60,10 @@ 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
@@ -72,16 +87,28 @@ jobs:
# Run Trivy image scan for Docker vulnerabilities, see https://github.com/aquasecurity/trivy-action
- name: Docker Vulnerabilities Check
uses: aquasecurity/trivy-action@0.24.0
uses: aquasecurity/trivy-action@0.30.0
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
@@ -105,9 +132,16 @@ jobs:
# Run Trivy image scan for Docker vulnerabilities, see https://github.com/aquasecurity/trivy-action
- name: Docker Vulnerabilities Check
uses: aquasecurity/trivy-action@0.24.0
uses: aquasecurity/trivy-action@0.30.0
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

@@ -0,0 +1,142 @@
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
with:
fetch-depth: 0
# 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'
token: ${{ secrets.GITHUB_AUTH_TOKEN }}
# 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

@@ -0,0 +1,152 @@
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

@@ -0,0 +1,68 @@
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:
- name: Checkout
uses: actions/checkout@v4
- 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: Storybook - Install Playwright
shell: bash
working-directory: ui
run: npx playwright install --with-deps
- name: Run front-end unit tests
shell: bash
working-directory: ui
run: npm run test:cicd
- 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

@@ -0,0 +1,54 @@
name: Github - Release
on:
workflow_call:
secrets:
GH_PERSONAL_TOKEN:
description: "The Github personal token."
required: true
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
# Checkout GitHub Actions
- name: Checkout - Actions
uses: actions/checkout@v4
with:
repository: kestra-io/actions
sparse-checkout-cone-mode: true
path: actions
sparse-checkout: |
.github/actions
# GitHub Release
- name: Create GitHub release
uses: ./actions/.github/actions/github-release
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SLACK_RELEASES_WEBHOOK_URL: ${{ secrets.SLACK_RELEASES_WEBHOOK_URL }}
# Trigger gha workflow to bump helm chart version
- name: GitHub - Trigger the Helm chart version bump
uses: peter-evans/repository-dispatch@v3
if: steps.create_github_release.conclusion == 'success'
with:
token: ${{ secrets.GH_PERSONAL_TOKEN }}
repository: kestra-io/helm-charts
event-type: update-helm-chart-version
client-payload: |-
{
"new_version": "${{ github.ref_name }}",
"github_repository": "${{ github.repository }}",
"github_actor": "${{ github.actor }}"
}

View File

@@ -0,0 +1,146 @@
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/*/}
PLUGINS="${{ matrix.image.plugins == true && steps.plugins-list.outputs.plugins || '' }}"
if [[ $TAG == v* ]]; then
TAG="${TAG}";
echo "plugins=${{ matrix.image.plugins }}" >> $GITHUB_OUTPUT
elif [[ $TAG = "develop" ]]; then
TAG="develop";
echo "plugins=--repositories=https://s01.oss.sonatype.org/content/repositories/snapshots $PLUGINS" >> $GITHUB_OUTPUT
else
TAG="build-${{ github.run_id }}";
echo "plugins=--repositories=https://s01.oss.sonatype.org/content/repositories/snapshots $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

@@ -0,0 +1,57 @@
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_sonatypeUsername: ${{ secrets.SONATYPE_USER }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ 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 publishToSonatype ${{ startsWith(github.ref, 'refs/tags/v') && 'closeAndReleaseSonatypeStagingRepository' || '' }}
# Gradle dependency
- name: Java - Gradle dependency graph
uses: gradle/actions/dependency-submission@v4

80
.github/workflows/workflow-release.yml vendored Normal file
View File

@@ -0,0 +1,80 @@
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
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
secrets:
GH_PERSONAL_TOKEN: ${{ secrets.GH_PERSONAL_TOKEN }}

97
.github/workflows/workflow-test.yml vendored Normal file
View File

@@ -0,0 +1,97 @@
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 }}

5
.gitignore vendored
View File

@@ -36,6 +36,8 @@ yarn.lock
ui/coverage
ui/stats.html
ui/.frontend-gradle-plugin
ui/utils/CHANGELOG.md
ui/test-report.junit.xml
### Docker
/.env
@@ -54,3 +56,6 @@ core/src/main/resources/gradle.properties
# Allure Reports
**/allure-results/*
*storybook.log
storybook-static

199
.plugins
View File

@@ -1,100 +1,107 @@
#
# List of plugins to install locally with: $ make install-plugins
# Format: <RepositoryName>:<GroupId>:<ArtifactId>:<Version>
#
# Uncomment the lines corresponding to the plugins to be installed:
#
#io.kestra.plugin:plugin-airbyte:LATEST
#io.kestra.plugin:plugin-airflow:LATEST
#io.kestra.plugin:plugin-amqp:LATEST
#io.kestra.plugin:plugin-ansible:LATEST
#io.kestra.plugin:plugin-aws:LATEST
#io.kestra.plugin:plugin-azure:LATEST
#io.kestra.plugin:plugin-cassandra:LATEST
#io.kestra.plugin:plugin-cloudquery:LATEST
#io.kestra.plugin:plugin-compress:LATEST
#io.kestra.plugin:plugin-couchbase:LATEST
#io.kestra.plugin:plugin-crypto:LATEST
#io.kestra.plugin:plugin-databricks:LATEST
#io.kestra.plugin:plugin-dataform:LATEST
#io.kestra.plugin:plugin-dbt:LATEST
#io.kestra.plugin:plugin-debezium-db2:LATEST
#io.kestra.plugin:plugin-debezium-mongodb:LATEST
#io.kestra.plugin:plugin-debezium-mysql:LATEST
#io.kestra.plugin:plugin-debezium-oracle:LATEST
#io.kestra.plugin:plugin-debezium-postgres:LATEST
#io.kestra.plugin:plugin-debezium-sqlserver:LATEST
#io.kestra.plugin:plugin-docker:LATEST
#io.kestra.plugin:plugin-elasticsearch:LATEST
#io.kestra.plugin:plugin-fivetran:LATEST
#io.kestra.plugin:plugin-fs:LATEST
#io.kestra.plugin:plugin-gcp:LATEST
#io.kestra.plugin:plugin-git:LATEST
#io.kestra.plugin:plugin-github:LATEST
#io.kestra.plugin:plugin-googleworkspace:LATEST
#io.kestra.plugin:plugin-hightouch:LATEST
#io.kestra.plugin:plugin-hubspot:LATEST
#io.kestra.plugin:plugin-jdbc-as400:LATEST
#io.kestra.plugin:plugin-jdbc-clickhouse:LATEST
#io.kestra.plugin:plugin-jdbc-db2:LATEST
#io.kestra.plugin:plugin-jdbc-duckdb:LATEST
#io.kestra.plugin:plugin-jdbc-druid:LATEST
#io.kestra.plugin:plugin-jdbc-mysql:LATEST
#io.kestra.plugin:plugin-jdbc-oracle:LATEST
#io.kestra.plugin:plugin-jdbc-pinot:LATEST
#io.kestra.plugin:plugin-jdbc-postgres:LATEST
#io.kestra.plugin:plugin-jdbc-redshift:LATEST
#io.kestra.plugin:plugin-jdbc-rockset:LATEST
#io.kestra.plugin:plugin-jdbc-snowflake:LATEST
#io.kestra.plugin:plugin-jdbc-sqlserver:LATEST
#io.kestra.plugin:plugin-jdbc-trino:LATEST
#io.kestra.plugin:plugin-jdbc-vectorwise:LATEST
#io.kestra.plugin:plugin-jdbc-vertica:LATEST
#io.kestra.plugin:plugin-jdbc-dremio:LATEST
#io.kestra.plugin:plugin-jdbc-arrow-flight:LATEST
#io.kestra.plugin:plugin-jdbc-sqlite:LATEST
#io.kestra.plugin:plugin-jdbc-sybase:LATEST
#io.kestra.plugin:plugin-jira:LATEST
#io.kestra.plugin:plugin-kafka:LATEST
#io.kestra.plugin:plugin-kubernetes:LATEST
#io.kestra.plugin:plugin-ldap:LATEST
#io.kestra.plugin:plugin-linear:LATEST
#io.kestra.plugin:plugin-malloy:LATEST
#io.kestra.plugin:plugin-minio:LATEST
#io.kestra.plugin:plugin-modal:LATEST
#io.kestra.plugin:plugin-mongodb:LATEST
#io.kestra.plugin:plugin-mqtt:LATEST
#io.kestra.plugin:plugin-nats:LATEST
#io.kestra.plugin:plugin-neo4j:LATEST
#io.kestra.plugin:plugin-notifications:LATEST
#io.kestra.plugin:plugin-openai:LATEST
#io.kestra.plugin:plugin-powerbi:LATEST
#io.kestra.plugin:plugin-pulsar:LATEST
#io.kestra.plugin:plugin-redis:LATEST
#io.kestra.plugin:plugin-script-groovy:LATEST
#io.kestra.plugin:plugin-script-julia:LATEST
#io.kestra.plugin:plugin-script-jython:LATEST
#io.kestra.plugin:plugin-script-nashorn:LATEST
#io.kestra.plugin:plugin-script-node:LATEST
#io.kestra.plugin:plugin-script-powershell:LATEST
#io.kestra.plugin:plugin-script-python:LATEST
#io.kestra.plugin:plugin-script-r:LATEST
#io.kestra.plugin:plugin-script-ruby:LATEST
#io.kestra.plugin:plugin-script-shell:LATEST
#io.kestra.plugin:plugin-serdes:LATEST
#io.kestra.plugin:plugin-servicenow:LATEST
#io.kestra.plugin:plugin-singer:LATEST
#io.kestra.plugin:plugin-soda:LATEST
#io.kestra.plugin:plugin-solace:LATEST
#io.kestra.plugin:plugin-spark:LATEST
#io.kestra.plugin:plugin-sqlmesh:LATEST
#io.kestra.plugin:plugin-surrealdb:LATEST
#io.kestra.plugin:plugin-terraform:LATEST
#io.kestra.plugin:plugin-transform-grok:LATEST
#io.kestra.plugin:plugin-transform-json:LATEST
#io.kestra.plugin:plugin-tika:LATEST
#io.kestra.plugin:plugin-weaviate:LATEST
#io.kestra.plugin:plugin-zendesk:LATEST
#io.kestra.storage:storage-azure:LATEST
#io.kestra.storage:storage-gcs:LATEST
#io.kestra.storage:storage-minio:LATEST
#io.kestra.storage:storage-s3: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-aws:io.kestra.plugin:plugin-aws:LATEST
#plugin-azure:io.kestra.plugin:plugin-azure:LATEST
#plugin-cassandra:io.kestra.plugin:plugin-cassandra:LATEST
#plugin-cloudquery:io.kestra.plugin:plugin-cloudquery:LATEST
#plugin-compress:io.kestra.plugin:plugin-compress:LATEST
#plugin-couchbase:io.kestra.plugin:plugin-couchbase:LATEST
#plugin-crypto:io.kestra.plugin:plugin-crypto:LATEST
#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-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
#plugin-debezium:io.kestra.plugin:plugin-debezium-mysql:LATEST
#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-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-git:io.kestra.plugin:plugin-git:LATEST
#plugin-github:io.kestra.plugin:plugin-github:LATEST
#plugin-googleworkspace:io.kestra.plugin:plugin-googleworkspace:LATEST
#plugin-graalvm:io.kestra.plugin:plugin-graalvm: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-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
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-duckdb:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-druid:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-mariadb:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-mysql:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-oracle:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-pinot:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-postgres:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-redshift:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-snowflake:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-sqlserver:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-trino:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-vectorwise:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-vertica:LATEST
#plugin-jdbc:io.kestra.plugin:plugin-jdbc-dremio:LATEST
#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-jira:io.kestra.plugin:plugin-jira:LATEST
#plugin-kafka:io.kestra.plugin:plugin-kafka:LATEST
#plugin-kubernetes:io.kestra.plugin:plugin-kubernetes: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-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-openai:io.kestra.plugin:plugin-openai:LATEST
#plugin-opensearch:io.kestra.plugin:plugin-opensearch: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-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-nashorn:LATEST
#plugin-scripts:io.kestra.plugin:plugin-script-node: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
#plugin-scripts:io.kestra.plugin:plugin-script-ruby:LATEST
#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-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-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-weaviate:io.kestra.plugin:plugin-weaviate:LATEST
#plugin-zendesk:io.kestra.plugin:plugin-zendesk:LATEST
#plugin-typesense:io.kestra.plugin:plugin-typesense:LATEST
#storage-azure:io.kestra.storage:storage-azure:LATEST
#storage-gcs:io.kestra.storage:storage-gcs:LATEST
#storage-minio:io.kestra.storage:storage-minio:LATEST
#storage-s3:io.kestra.storage:storage-s3:LATEST

1
.prettierignore Normal file
View File

@@ -0,0 +1 @@
**/*.*

View File

@@ -17,6 +17,8 @@ VERSION := $(shell ./gradlew properties -q | awk '/^version:/ {print $$2}')
GIT_COMMIT := $(shell git rev-parse --short HEAD)
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
DATE := $(shell date --rfc-3339=seconds)
PLUGIN_GIT_DIR ?= $(pwd)/..
PLUGIN_JARS_DIR ?= $(pwd)/locals/plugins
DOCKER_IMAGE = kestra/kestra
DOCKER_PATH = ./
@@ -67,6 +69,7 @@ install-plugins:
[[ $$plugin =~ ^#.* ]] && continue; \
PLUGINS_PATH="${KESTRA_INSTALL_DIR}/plugins"; \
CURRENT_PLUGIN=$${plugin/LATEST/"${VERSION}"}; \
CURRENT_PLUGIN=$$(echo $$CURRENT_PLUGIN | cut -d':' -f2-); \
PLUGIN_FILE="$$PLUGINS_PATH/$$(echo $$CURRENT_PLUGIN | awk -F':' '{print $$2"-"$$3}').jar"; \
echo "Installing Kestra plugin $$CURRENT_PLUGIN > ${KESTRA_INSTALL_DIR}/plugins"; \
if [ -f "$$PLUGIN_FILE" ]; then \
@@ -86,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" \
--build-arg="APT_PACKAGES=python3 python3-venv python-is-python3 python3-pip nodejs npm curl zip unzip jattach" \
--build-arg="PYTHON_LIBRARIES=kestra" \
-t ${DOCKER_IMAGE}:${VERSION} ${DOCKER_PATH} || exit 1 ;
@@ -173,3 +176,88 @@ start-standalone-postgres: kill --private-start-standalone-postgres health
start-standalone-local: kill --private-start-standalone-local health
#checkout all plugins
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 \
if [[ $$repo == plugin-* ]]; then \
if [ -d "$(PLUGIN_GIT_DIR)/$$repo" ]; then \
echo "Skipping: $$repo (Already cloned)"; \
else \
echo "Cloning: $$repo using SSH..."; \
git clone "git@github.com:kestra-io/$$repo.git" "$(PLUGIN_GIT_DIR)/$$repo"; \
fi; \
fi; \
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)'..."
@MASTER_REPOS=(); \
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 \
MASTER_REPOS+=("$$repo"); \
else \
echo "❌ Skipping: $$(basename "$$repo") (Not on master or main branch)"; \
fi; \
fi; \
done; \
\
# === STEP 2: Update Repos on Master or Main Branch === \
echo "⬇️ Updating repositories on master or main branch..."; \
for repo in "$${MASTER_REPOS[@]}"; do \
echo "🔄 Updating: $$(basename "$$repo")"; \
git -C "$$repo" pull --rebase; \
done; \
\
# === STEP 3: Build with Gradle === \
echo "⚙️ Building repositories with Gradle..."; \
for repo in "$${MASTER_REPOS[@]}"; do \
echo "🔨 Building: $$(basename "$$repo")"; \
gradle clean build -x test shadowJar -p "$$repo"; \
done; \
\
# === STEP 4: Copy Latest JARs (Ignoring javadoc & sources) === \
echo "📦 Organizing built JARs..."; \
mkdir -p "$(PLUGIN_JARS_DIR)"; \
for repo in "$${MASTER_REPOS[@]}"; do \
REPO_NAME=$$(basename "$$repo"); \
\
JARS=($$(find "$$repo" -type f -name "plugin-*.jar" ! -name "*-javadoc.jar" ! -name "*-sources.jar")); \
if [ $${#JARS[@]} -eq 0 ]; then \
echo "⚠️ Warning: No valid plugin JARs found for $$REPO_NAME"; \
continue; \
fi; \
\
for jar in "$${JARS[@]}"; do \
JAR_NAME=$$(basename "$$jar"); \
BASE_NAME=$$(echo "$$JAR_NAME" | sed -E 's/(-[0-9]+.*)?\.jar$$//'); \
rm -f "$(PLUGIN_JARS_DIR)/$$BASE_NAME"-[0-9]*.jar; \
cp "$$jar" "$(PLUGIN_JARS_DIR)/"; \
echo "✅ Copied JAR: $$JAR_NAME"; \
done; \
done; \
\
echo "🎉 Done! All master and main branch repos updated, built, and organized."

480
README.md
View File

@@ -5,7 +5,7 @@
</p>
<h1 align="center" style="border-bottom: none">
Event-Driven Declarative Orchestrator
Event-Driven Declarative Orchestration Platform
</h1>
<div align="center">
@@ -19,370 +19,212 @@
<br />
<p align="center">
<a href="https://twitter.com/kestra_io"><img height="25" src="https://kestra.io/twitter.svg" alt="twitter" /></a> &nbsp;
<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;
</p>
<p align="center">
<a href="https://trendshift.io/repositories/2714" target="_blank">
<img src="https://trendshift.io/api/badge/repositories/2714" alt="kestra-io%2Fkestra | Trendshift" width="250" height="55"/>
</a>
<a href="https://www.producthunt.com/posts/kestra?embed=true&utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-kestra" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=612077&theme=light&period=daily&t=1740737506162" alt="Kestra - All&#0045;in&#0045;one&#0032;automation&#0032;&#0038;&#0032;orchestration&#0032;platform | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
</p>
<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" />
</a>
</p>
<p align="center" style="color:grey;"><i>Click on the image to get started with Kestra in 4 minutes.</i></p>
## Live Demo
Try Kestra using our [live demo](https://demo.kestra.io/ui/login?auto).
## What is Kestra
Kestra is a universal open-source orchestrator that makes both **scheduled** and **event-driven** workflows easy. By bringing **Infrastructure as Code** best practices to data, process, and microservice orchestration, you can build reliable workflows and manage them with confidence.
In just a few lines of code, you can [create a flow](https://kestra.io/docs/getting-started) directly from the UI. Thanks to the declarative YAML interface for defining orchestration logic, business stakeholders can participate in the workflow creation process.
Kestra offers a versatile set of **language-agnostic** developer tools while simultaneously providing an intuitive user interface tailored for business professionals. The YAML definition gets automatically adjusted any time you make changes to a workflow from the UI or via an API call. Therefore, the orchestration logic is always managed **declaratively in code**, even if some workflow components are modified in other ways (UI, CI/CD, Terraform, API calls).
<p align="center" style="color:grey;"><i>Click on the image to learn how to get started with Kestra in 4 minutes.</i></p>
![Adding new tasks in the UI](https://kestra.io/adding-tasks.gif)
## 🌟 What is Kestra?
Kestra is an open-source, event-driven orchestration platform that makes both **scheduled** and **event-driven** workflows easy. By bringing **Infrastructure as Code** best practices to data, process, and microservice orchestration, you can build reliable [workflows](https://kestra.io/docs/getting-started) directly from the UI in just a few lines of YAML.
**Key Features:**
- **Everything as Code and from the UI:** keep **workflows as code** with a **Git Version Control** integration, even when building them from the UI.
- **Event-Driven & Scheduled Workflows:** automate both **scheduled** and **real-time** event-driven workflows via a simple `trigger` definition.
- **Declarative YAML Interface:** define workflows using a simple configuration in the **built-in code editor**.
- **Rich Plugin Ecosystem:** hundreds of plugins built in to extract data from any database, cloud storage, or API, and **run scripts in any language**.
- **Intuitive UI & Code Editor:** build and visualize workflows directly from the UI with syntax highlighting, auto-completion and real-time syntax validation.
- **Scalable:** designed to handle millions of workflows, with high availability and fault tolerance.
- **Version Control Friendly:** write your workflows from the built-in code Editor and push them to your preferred Git branch directly from Kestra, enabling best practices with CI/CD pipelines and version control systems.
- **Structure & Resilience**: tame chaos and bring resilience to your workflows with **namespaces**, **labels**, **subflows**, **retries**, **timeout**, **error handling**, **inputs**, **outputs** that generate artifacts in the UI, **variables**, **conditional branching**, **advanced scheduling**, **event triggers**, **backfills**, **dynamic tasks**, **sequential and parallel tasks**, and skip tasks or triggers when needed by setting the flag `disabled` to `true`.
## Key concepts
1. `Flow` is the main component in Kestra. It's a container for your tasks and orchestration logic.
2. `Namespace` is used to provide logical isolation, e.g., to separate development and production environments. Namespaces are like folders on your file system — they organize flows into logical categories and can be nested to provide a hierarchical structure.
3. `Tasks` are atomic actions in a flow. By default, all tasks in the list will be executed sequentially, with additional customization options, a.o. to run tasks in parallel or allow a failure of specific tasks when needed.
4. `Triggers` define when a flow should run. In Kestra, flows are triggered based on events. Examples of such events include:
- a regular time-based **schedule**
- an **API** call (*webhook trigger*)
- ad-hoc execution from the **UI**
- a **flow trigger** - flows can be triggered from other flows using a [flow trigger](https://kestra.io/docs/developer-guide/triggers/flow) or a [subflow](https://kestra.io/docs/flow-examples/subflow), enabling highly modular workflows.
- **custom events**, including a new file arrival (*file detection event*), a new message in a message bus, query completion, and more.
5. `Inputs` allow you to pass runtime-specific variables to a flow. They are strongly typed, and allow additional [validation rules](https://kestra.io/docs/developer-guide/inputs#input-validation).
🧑‍💻 The YAML definition gets automatically adjusted any time you make changes to a workflow from the UI or via an API call. Therefore, the orchestration logic is **always managed declaratively in code**, even if you modify your workflows in other ways (UI, CI/CD, Terraform, API calls).
## Extensible platform via plugins
<p align="center">
<img src="https://kestra.io/adding-tasks.gif" alt="Adding new tasks in the UI">
</p>
Most tasks in Kestra are available as [plugins](https://kestra.io/plugins), but many type of tasks are available in the core library, including a.o. script tasks supporting various programming languages (e.g., Python, Node, Bash) and the ability to orchestrate your business logic packaged into Docker container images.
---
To create your own plugins, check the [plugin developer guide](https://kestra.io/docs/plugin-developer-guide).
## 🚀 Quick Start
## Rich orchestration capabilities
### Try the Live Demo
Kestra provides a variety of tasks to handle both simple and complex business logic, including:
Try Kestra with our [**Live Demo**](https://demo.kestra.io/ui/login?auto). No installation required!
- subflows
- retries
- timeout
- error handling
- conditional branching
- dynamic tasks
- sequential and parallel tasks
- skipping tasks or triggers when needed by setting the flag `disabled` to `true`.
- configuring dependencies between tasks, flows and triggers
- advanced scheduling and trigger conditions
- backfills
- blueprints
- documenting your flows, tasks and triggers by adding a markdown description to any component
- adding labels to add additional metadata to your flows such as the flow owner or team:
### Get Started Locally in 5 Minutes
#### Launch Kestra in Docker
Make sure that Docker is running. Then, start Kestra in a single command:
```bash
docker run --pull=always --rm -it -p 8080:8080 --user=root \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /tmp:/tmp kestra/kestra:latest server local
```
If you're on Windows and use PowerShell:
```powershell
docker run --pull=always --rm -it -p 8080:8080 --user=root `
-v "/var/run/docker.sock:/var/run/docker.sock" `
-v "C:/Temp:/tmp" kestra/kestra:latest server local
```
If you're on Windows and use Command Prompt (CMD):
```cmd
docker run --pull=always --rm -it -p 8080:8080 --user=root ^
-v "/var/run/docker.sock:/var/run/docker.sock" ^
-v "C:/Temp:/tmp" kestra/kestra:latest server local
```
If you're on Windows and use WSL (Linux-based environment in Windows):
```bash
docker run --pull=always --rm -it -p 8080:8080 --user=root \
-v "/var/run/docker.sock:/var/run/docker.sock" \
-v "C:/Temp:/tmp" kestra/kestra:latest server local
```
Check our [Installation Guide](https://kestra.io/docs/installation) for other deployment options (Docker Compose, Podman, Kubernetes, AWS, GCP, Azure, and more).
Access the Kestra UI at [http://localhost:8080](http://localhost:8080) and start building your first flow!
#### Your First Hello World Flow
Create a new flow with the following content:
```yaml
id: getting_started
namespace: dev
description: |
# Getting Started
Let's `write` some **markdown** - [first flow](https://t.ly/Vemr0) 🚀
labels:
owner: rick.astley
project: never-gonna-give-you-up
tasks:
- id: hello
type: io.kestra.plugin.core.log.Log
message: Hello world!
description: a *very* important task
disabled: false
timeout: PT10M
retry:
type: constant # type: string
interval: PT15M # type: Duration
maxDuration: PT1H # type: Duration
maxAttempt: 5 # type: int
warningOnRetry: true # type: boolean, default is false
- id: parallel
type: io.kestra.plugin.core.flow.Parallel
concurrent: 3
tasks:
- id: task1
type: io.kestra.plugin.scripts.shell.Commands
commands:
- 'echo "running {{task.id}}"'
- 'sleep 2'
- id: task2
type: io.kestra.plugin.scripts.shell.Commands
commands:
- 'echo "running {{task.id}}"'
- 'sleep 1'
- id: task3
type: io.kestra.plugin.scripts.shell.Commands
commands:
- 'echo "running {{task.id}}"'
- 'sleep 3'
triggers:
- id: schedule
type: io.kestra.plugin.core.trigger.Schedule
cron: "*/15 * * * *"
```
## Built-in code editor
You can write workflows directly from the UI. When writing your workflows, the UI provides:
- autocompletion
- syntax validation
- embedded plugin documentation
- example flows provided as blueprints
- topology view (view of your dependencies in a Directed Acyclic Graph) that get updated live as you modify and add new tasks.
## Stay up to date
We release new versions every month. Give the repository a star to stay up to date with the latest releases and get notified about future updates.
![Star the repo](https://kestra.io/star.gif)
## Getting Started
Follow the steps below to start local development.
### Prerequisites
Make sure that Docker is installed and running on your system. The default installation requires the following:
- [Docker](https://docs.docker.com/engine/install/)
- [Docker Compose](https://docs.docker.com/compose/install/)
### Launch Kestra
Download the Docker Compose file:
```sh
curl -o docker-compose.yml https://raw.githubusercontent.com/kestra-io/kestra/develop/docker-compose.yml
```
Alternatively, you can use `wget https://raw.githubusercontent.com/kestra-io/kestra/develop/docker-compose.yml`.
Start Kestra:
```sh
docker compose up -d
```
Open `http://localhost:8080` in your browser and create your first flow.
### Hello-World flow
Here is a simple example logging hello world message to the terminal:
```yaml
id: getting_started
id: hello_world
namespace: dev
tasks:
- id: hello_world
- id: say_hello
type: io.kestra.plugin.core.log.Log
message: Hello World!
message: "Hello, World!"
```
For more information:
- Follow the [getting started tutorial](https://kestra.io/docs/getting-started/).
- Read the [documentation](https://kestra.io/docs/) to understand how to:
- [Develop your flows](https://kestra.io/docs/developer-guide/)
- [Deploy Kestra](https://kestra.io/docs/administrator-guide/)
- Use our [Terraform provider](https://kestra.io/docs/terraform/) to deploy your flows
- Develop your [own plugins](https://kestra.io/docs/plugin-developer-guide/).
Run the flow and see the output in the UI!
---
## 🧩 Plugin Ecosystem
Kestra's functionality is extended through a rich [ecosystem of plugins](https://kestra.io/plugins) that empower you to run tasks anywhere and code in any language, including Python, Node.js, R, Go, Shell, and more. Here's how Kestra plugins enhance your workflows:
- **Run Anywhere:**
- **Local or Remote Execution:** Execute tasks on your local machine, remote servers via SSH, or scale out to serverless containers using [Task Runners](https://kestra.io/docs/task-runners).
- **Docker and Kubernetes Support:** Seamlessly run Docker containers within your workflows or launch Kubernetes jobs to handle compute-intensive workloads.
- **Code in Any Language:**
- **Scripting Support:** Write scripts in your preferred programming language. Kestra supports Python, Node.js, R, Go, Shell, and others, allowing you to integrate existing codebases and deployment patterns.
- **Flexible Automation:** Execute shell commands, run SQL queries against various databases, and make HTTP requests to interact with APIs.
- **Event-Driven and Real-Time Processing:**
- **Real-Time Triggers:** React to events from external systems in real-time, such as file arrivals, new messages in message buses (Kafka, Redis, Pulsar, AMQP, MQTT, NATS, AWS SQS, Google Pub/Sub, Azure Event Hubs), and more.
- **Custom Events:** Define custom events to trigger flows based on specific conditions or external signals, enabling highly responsive workflows.
- **Cloud Integrations:**
- **AWS, Google Cloud, Azure:** Integrate with a variety of cloud services to interact with storage solutions, messaging systems, compute resources, and more.
- **Big Data Processing:** Run big data processing tasks using tools like Apache Spark or interact with analytics platforms like Google BigQuery.
- **Monitoring and Notifications:**
- **Stay Informed:** Send messages to Slack channels, email notifications, or trigger alerts in PagerDuty to keep your team updated on workflow statuses.
Kestra's plugin ecosystem is continually expanding, allowing you to tailor the platform to your specific needs. Whether you're orchestrating complex data pipelines, automating scripts across multiple environments, or integrating with cloud services, there's likely a plugin to assist. And if not, you can always [build your own plugins](https://kestra.io/docs/plugin-developer-guide/) to extend Kestra's capabilities.
🧑‍💻 **Note:** This is just a glimpse of what Kestra plugins can do. Explore the full list on our [Plugins Page](https://kestra.io/plugins).
---
## 📚 Key Concepts
- **Flows:** the core unit in Kestra, representing a workflow composed of tasks.
- **Tasks:** individual units of work, such as running a script, moving data, or calling an API.
- **Namespaces:** logical grouping of flows for organization and isolation.
- **Triggers:** schedule or events that initiate the execution of flows.
- **Inputs & Variables:** parameters and dynamic data passed into flows and tasks.
---
## 🎨 Build Workflows Visually
Kestra provides an intuitive UI that allows you to interactively build and visualize your workflows:
- **Drag-and-Drop Interface:** add and rearrange tasks from the Topology Editor.
- **Real-Time Validation:** instant feedback on your workflow's syntax and structure to catch errors early.
- **Auto-Completion:** smart suggestions as you type to write flow code quickly and without syntax errors.
- **Live Topology View:** see your workflow as a Directed Acyclic Graph (DAG) that updates in real-time.
---
## 🔧 Extensible and Developer-Friendly
### Plugin Development
## Plugins
Kestra is built on a [plugin system](https://kestra.io/plugins/). You can find your plugin to interact with your provider; alternatively, you can follow [these steps](https://kestra.io/docs/plugin-developer-guide/) to develop your own plugin.
Create custom plugins to extend Kestra's capabilities. Check out our [Plugin Developer Guide](https://kestra.io/docs/plugin-developer-guide/) to get started.
### Infrastructure as Code
For a full list of plugins, check the [plugins page](https://kestra.io/plugins/).
- **Version Control:** store your flows in Git repositories.
- **CI/CD Integration:** automate deployment of flows using CI/CD pipelines.
- **Terraform Provider:** manage Kestra resources with the [official Terraform provider](https://kestra.io/docs/terraform/).
Here are some examples of the available plugins:
---
<table>
<tr>
<td><a href="https://kestra.io/plugins/plugin-airbyte#cloudjobs">Airbyte Cloud</a></td>
<td><a href="https://kestra.io/plugins/plugin-airbyte#connections">Airbyte OSS</a></td>
<td><a href="https://kestra.io/plugins/plugin-aws#athena">Amazon Athena</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-aws#cli">Amazon CLI</a></td>
<td><a href="https://kestra.io/plugins/plugin-aws#dynamodb">Amazon DynamoDb</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-redshift">Amazon Redshift</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-aws#s3">Amazon S3</a></td>
<td><a href="https://kestra.io/plugins/plugin-aws#sns">Amazon SNS</a></td>
<td><a href="https://kestra.io/plugins/plugin-aws#sqs">Amazon SQS</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-amqp">AMQP</a></td>
<td><a href="https://kestra.io/plugins/plugin-serdes#avro">Apache Avro</a></td>
<td><a href="https://kestra.io/plugins/plugin-cassandra">Apache Cassandra</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-kafka">Apache Kafka</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-pinot">Apache Pinot</a></td>
<td><a href="https://kestra.io/plugins/plugin-serdes#parquet">Apache Parquet</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-pulsar">Apache Pulsar</a></td>
<td><a href="https://kestra.io/plugins/plugin-spark">Apache Spark</a></td>
<td><a href="https://kestra.io/plugins/plugin-tika">Apache Tika</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-azure/#batchjob">Azure Batch</a></td>
<td><a href="https://kestra.io/plugins/plugin-azure/#storage-blob">Azure Blob Storage</a></td>
<td><a href="https://kestra.io/plugins/plugin-azure/#storagetable">Azure Blob Table</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-serdes#csv">CSV</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-clickhouse">ClickHouse</a></td>
<td><a href="https://kestra.io/plugins/plugin-compress">Compression</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-couchbase">Couchbase</a></td>
<td><a href="https://kestra.io/plugins/plugin-databricks">Databricks</a></td>
<td><a href="https://kestra.io/plugins/plugin-dbt#cloud">dbt cloud</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-dbt#cli">dbt core</a></td>
<td><a href="https://kestra.io/plugins/plugin-debezium-sqlserver">Debezium Microsoft SQL Server</a></td>
<td><a href="https://kestra.io/plugins/plugin-debezium-mysql">Debezium MYSQL</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-debezium-postgres">Debezium Postgres</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-duckdb">DuckDb</a></td>
<td><a href="https://kestra.io/plugins/plugin-elasticsearch">ElasticSearch</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-notifications#mail">Email</a></td>
<td><a href="https://kestra.io/plugins/plugin-fivetran">Fivetran</a></td>
<td><a href="https://kestra.io/plugins/plugin-fs#ftp">FTP</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-fs#ftps">FTPS</a></td>
<td><a href="https://kestra.io/plugins/plugin-git">Git</a></td>
<td><a href="https://kestra.io/plugins/plugin-gcp#bigquery">Google Big Query</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-gcp#pubsub">Google Pub/Sub</a></td>
<td><a href="https://kestra.io/plugins/plugin-gcp#gcs">Google Cloud Storage</a></td>
<td><a href="https://kestra.io/plugins/plugin-gcp#dataproc">Google DataProc</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-gcp#firestore">Google Firestore</a></td>
<td><a href="https://kestra.io/plugins/plugin-gcp#cli">Google Cli</a></td>
<td><a href="https://kestra.io/plugins/plugin-gcp#vertexai/">Google Vertex AI</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-gcp#gke">Google Kubernetes Engines</a></td>
<td><a href="https://kestra.io/plugins/plugin-googleworkspace#drive">Google Drive</a></td>
<td><a href="https://kestra.io/plugins/plugin-googleworkspace#sheets">Google Sheets</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-script-groovy">Groovy</a></td>
<td><a href="https://kestra.io/plugins/plugin-fs#http">Http</a></td>
<td><a href="https://kestra.io/plugins/plugin-serdes#json">JSON</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-script-julia">Julia</a></td>
<td><a href="https://kestra.io/plugins/plugin-script-jython">Jython</a></td>
<td><a href="https://kestra.io/plugins/plugin-kubernetes">Kubernetes</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-jdbc-sqlserver">Microsoft SQL Server</a></td>
<td><a href="https://kestra.io/plugins/plugin-notifications#teams">Microsoft Teams</a></td>
<td><a href="https://kestra.io/plugins/plugin-mongodb">MongoDb</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-mqtt">MQTT</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-mysql">MySQL</a></td>
<td><a href="https://kestra.io/plugins/plugin-script-nashorn">Nashorn</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-nats">NATS</a></td>
<td><a href="https://kestra.io/plugins/plugin-neo4j">Neo4j</a></td>
<td><a href="https://kestra.io/plugins/plugin-script-node">Node</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-openai">OpenAI</a></td>
<td><a href="https://kestra.io/plugins/plugin-crypto#openpgp">Open PGP</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-oracle">Oracle</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-jdbc-postgres">PostgreSQL</a></td>
<td><a href="https://kestra.io/plugins/plugin-powerbi">Power BI</a></td>
<td><a href="https://kestra.io/plugins/plugin-script-powershell">PowerShell</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-script-python">Python</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-rockset">Rockset</a></td>
<td><a href="https://kestra.io/plugins/plugin-script-r">RScript</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-fs#sftp">SFTP</a></td>
<td><a href="https://kestra.io/plugins/plugin-servicenow">ServiceNow</a></td>
<td><a href="https://kestra.io/plugins/plugin-singer">Singer</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-script-shell">Shell</a></td>
<td><a href="https://kestra.io/plugins/plugin-notifications#slack">Slack</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-snowflake">Snowflake</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-soda">Soda</a></td>
<td><a href="https://kestra.io/plugins/plugin-fs#ssh">SSH</a></td>
<td><a href="https://kestra.io/plugins/plugin-notifications#telegram">Telegram</a></td>
</tr>
<tr>
<td><a href="https://kestra.io/plugins/plugin-jdbc-trino">Trino</a></td>
<td><a href="https://kestra.io/plugins/plugin-serdes#xml">XML</a></td>
<td><a href="https://kestra.io/plugins/plugin-jdbc-vertica">Vertica</a></td>
</tr>
</table>
## 🌐 Join the Community
Stay connected and get support:
- **Slack:** Join our [Slack community](https://kestra.io/slack) to ask questions and share ideas.
- **LinkedIn:** Follow us on [LinkedIn](https://www.linkedin.com/company/kestra/) — next to Slack and GitHub, this is our main channel to share updates and product announcements.
- **YouTube:** Subscribe to our [YouTube channel](https://www.youtube.com/@kestra-io) for educational video content. We publish new videos every week!
- **X:** Follow us on [X](https://x.com/kestra_io) if you're still active there.
This list is growing quickly and we welcome contributions.
---
## Community Support
## 🤝 Contributing
If you need help or have any questions, reach out using one of the following channels:
We welcome contributions of all kinds!
- [Slack](https://kestra.io/slack) - join the community and get the latest updates.
- [Twitter](https://twitter.com/kestra_io) - to follow up with the latest updates.
- **Report Issues:** Found a bug or have a feature request? Open an [issue on GitHub](https://github.com/kestra-io/kestra/issues).
- **Contribute Code:** Check out our [Contributor Guide](https://kestra.io/docs/getting-started/contributing) for initial guidelines, and explore our [good first issues](https://go.kestra.io/contributing) for beginner-friendly tasks to tackle first.
- **Develop Plugins:** Build and share plugins using our [Plugin Developer Guide](https://kestra.io/docs/plugin-developer-guide/).
- **Contribute to our Docs:** Contribute edits or updates to keep our [documentation](https://github.com/kestra-io/docs) top-notch.
---
## Contributing
## 📄 License
We love contributions, big or small. Check out [our contributor guide](https://github.com/kestra-io/kestra/blob/develop/.github/CONTRIBUTING.md) for details on how to contribute to Kestra.
Kestra is licensed under the Apache 2.0 License © [Kestra Technologies](https://kestra.io).
See our [Plugin Developer Guide](https://kestra.io/docs/plugin-developer-guide/) for details on developing and publishing Kestra plugins.
---
## ⭐️ Stay Updated
Give our repository a star to stay informed about the latest features and updates!
[![Star the Repo](https://kestra.io/star.gif)](https://github.com/kestra-io/kestra)
---
Thank you for considering Kestra for your workflow orchestration needs. We can't wait to see what you'll build!
## License
Apache 2.0 © [Kestra Technologies](https://kestra.io)

33
SECURITY.md Normal file
View File

@@ -0,0 +1,33 @@
# Security Policy
## Supported Versions
We provide security updates for the following versions of Kestra:
- The `latest` release
- Up to two previous minor versions released as a backport upon customer request.
If you are using an unsupported version, we recommend upgrading to the `latest` version to receive security fixes.
## Reporting a Vulnerability
If you discover a security vulnerability in Kestra, please report it to us privately to ensure a responsible disclosure process. You can contact our security team at:
**security@kestra.io**
### Guidelines for Reporting
- Provide a detailed description of the issue, including steps to reproduce it if possible.
- Do not disclose the vulnerability publicly until we have confirmed and patched the issue.
- If you believe the issue has critical severity, please indicate so in your report to help us prioritize.
## Our Commitment
- We will acknowledge your report within **2 business days**.
- We will work to verify and address the issue as quickly as possible.
- Once the issue is resolved, we will notify you of the fix.
## Acknowledgments
We are happy to credit those who report vulnerabilities responsibly in our release notes, unless you prefer to remain anonymous. If you would like to be acknowledged, please include this in your report.
Thank you for helping to make Kestra more secure!

View File

@@ -1,4 +1,5 @@
import net.e175.klaus.zip.ZipPrefixer
import org.owasp.dependencycheck.gradle.extension.AnalyzerExtension
buildscript {
repositories {
@@ -15,30 +16,30 @@ plugins {
id "java"
id 'java-library'
id "idea"
id "com.github.johnrengelman.shadow" version "8.1.1"
id "com.gradleup.shadow" version "8.3.6"
id "application"
// test
id "com.adarshr.test-logger" version "4.0.0"
id "org.sonarqube" version "5.1.0.4882"
id "org.sonarqube" version "6.1.0.5360"
id 'jacoco-report-aggregation'
// helper
id "com.github.ben-manes.versions" version "0.51.0"
id "com.github.ben-manes.versions" version "0.52.0"
// front
id 'org.siouan.frontend-jdk17' version '8.0.0' apply false
id 'com.github.node-gradle.node' version '7.1.0'
// release
id "io.github.gradle-nexus.publish-plugin" version "2.0.0"
id 'net.researchgate.release' version '3.0.2'
id "com.gorylenko.gradle-git-properties" version "2.4.2"
id 'net.researchgate.release' version '3.1.0'
id "com.gorylenko.gradle-git-properties" version "2.5.0"
id 'signing'
id 'ru.vyarus.pom' version '3.0.0' apply false
id 'ru.vyarus.github-info' version '2.0.0' apply false
// OWASP dependency check
id "org.owasp.dependencycheck" version "10.0.3" apply false
id "org.owasp.dependencycheck" version "12.1.1" apply false
}
idea {
@@ -51,9 +52,17 @@ idea {
/**********************************************************************************************************************\
* Main
**********************************************************************************************************************/
mainClassName = "io.kestra.cli.App"
sourceCompatibility = 21
targetCompatibility = 21
final mainClassName = "io.kestra.cli.App"
final targetJavaVersion = JavaVersion.VERSION_21
application {
mainClass = mainClassName
}
java {
sourceCompatibility = targetJavaVersion
targetCompatibility = targetJavaVersion
}
dependencies {
implementation project(":cli")
@@ -65,10 +74,12 @@ dependencies {
**********************************************************************************************************************/
allprojects {
if (it.name != 'platform') {
group "io.kestra"
group = "io.kestra"
sourceCompatibility = 21
targetCompatibility = 21
java {
sourceCompatibility = targetJavaVersion
targetCompatibility = targetJavaVersion
}
repositories {
mavenCentral()
@@ -112,6 +123,7 @@ allprojects {
micronaut "io.micronaut.micrometer:micronaut-micrometer-registry-prometheus"
micronaut "io.micronaut:micronaut-http-client"
micronaut "io.micronaut.reactor:micronaut-reactor-http-client"
micronaut "io.micronaut.tracing:micronaut-tracing-opentelemetry-http"
// logs
implementation "org.slf4j:slf4j-api"
@@ -122,6 +134,9 @@ allprojects {
implementation group: 'org.slf4j', name: 'jcl-over-slf4j'
implementation group: 'org.fusesource.jansi', name: 'jansi'
// OTEL
implementation "io.opentelemetry:opentelemetry-exporter-otlp"
// jackson
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core'
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind'
@@ -153,8 +168,10 @@ subprojects {
if (it.name != 'platform') {
apply plugin: "com.adarshr.test-logger"
sourceCompatibility = 21
targetCompatibility = 21
java {
sourceCompatibility = targetJavaVersion
targetCompatibility = targetJavaVersion
}
dependencies {
// Platform
@@ -179,12 +196,16 @@ subprojects {
testImplementation 'org.hamcrest:hamcrest'
testImplementation 'org.hamcrest:hamcrest-library'
testImplementation 'org.exparity:hamcrest-date'
//assertj
testImplementation 'org.assertj:assertj-core'
}
test {
useJUnitPlatform()
maxHeapSize = "4048m"
// set Xmx for test workers
maxHeapSize = '4g'
// configure en_US default locale for tests
systemProperty 'user.language', 'en'
@@ -195,8 +216,8 @@ 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"
}
testlogger {
@@ -261,7 +282,7 @@ subprojects {
}
dependencies {
agent "org.aspectj:aspectjweaver:1.9.22.1"
agent "org.aspectj:aspectjweaver:1.9.24"
}
test {
@@ -325,12 +346,17 @@ dependencyCheck {
failBuildOnCVSS = 7
// disable the .NET assembly analyzer as otherwise it wants to analyze EXE file
analyzers {
assemblyEnabled = false
}
analyzers(new Action<AnalyzerExtension>() {
@Override
void execute(AnalyzerExtension analyzerExtension) {
analyzerExtension.assemblyEnabled = false
}
})
// configure a suppression file
suppressionFile = "$projectDir/owasp-dependency-suppressions.xml"
nvd.apiKey = System.getenv("NVD_API_KEY")
}
/**********************************************************************************************************************\
@@ -338,7 +364,7 @@ dependencyCheck {
**********************************************************************************************************************/
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
tasks.withType(JavaCompile).configureEach {
options.encoding = "UTF-8"
options.compilerArgs.add("-parameters")
options.compilerArgs.add("-Xlint:all")
@@ -347,7 +373,7 @@ allprojects {
}
}
tasks.withType(JavaCompile) {
tasks.withType(JavaCompile).configureEach {
options.encoding = "UTF-8"
options.compilerArgs.add("-parameters")
}
@@ -392,20 +418,25 @@ shadowJar.dependsOn 'ui:assembleFrontend'
/**********************************************************************************************************************\
* Executable Jar
**********************************************************************************************************************/
def executableDir = file("${buildDir}/executable")
def executable = file("${buildDir}/executable/${project.name}-${project.version}")
def executableDir = layout.buildDirectory.dir("executable")
def executable = layout.buildDirectory.file("executable/${project.name}-${project.version}").get().asFile
task writeExecutableJar() {
tasks.register('writeExecutableJar') {
group "build"
description "Write an executable jar from shadow jar"
dependsOn = [shadowJar]
final shadowJarFile = tasks.shadowJar.outputs.files.singleFile
inputs.file shadowJarFile
outputs.file executable
outputs.cacheIf { true }
doFirst {
executableDir.mkdirs()
executableDir.get().asFile.mkdirs()
}
doLast {
executable.setBytes(file("${buildDir}/libs/${project.name}-${project.version}.jar").readBytes())
executable.setBytes(shadowJarFile.readBytes())
ByteArrayOutputStream executableBytes = new ByteArrayOutputStream()
executableBytes.write("\n: <<END_OF_KESTRA_SELFRUN\r\n".getBytes())
executableBytes.write(file("gradle/jar/selfrun.bat").readBytes())
@@ -417,13 +448,13 @@ task writeExecutableJar() {
}
}
task executableJar(type: Zip) {
tasks.register('executableJar', Zip) {
group "build"
description "Zip the executable jar"
dependsOn = [writeExecutableJar]
archiveFileName = "${project.name}-${project.version}.zip"
destinationDirectory = file("${buildDir}/archives")
destinationDirectory = layout.buildDirectory.dir('archives')
from executableDir
archiveClassifier.set(null)
@@ -432,8 +463,9 @@ task executableJar(type: Zip) {
/**********************************************************************************************************************\
* Standalone
**********************************************************************************************************************/
task runLocal(type: JavaExec) {
tasks.register('runLocal', JavaExec) {
group = "application"
description = "Run Kestra as server local"
classpath = project(":cli").sourceSets.main.runtimeClasspath
mainClass = mainClassName
environment 'MICRONAUT_ENVIRONMENTS', 'override'
@@ -468,7 +500,7 @@ subprojects {
}
}
task sourcesJar(type: Jar) {
tasks.register('sourcesJar', Jar) {
dependsOn = [':core:copyGradleProperties']
dependsOn = [':ui:assembleFrontend']
archiveClassifier.set('sources')
@@ -477,14 +509,19 @@ subprojects {
sourcesJar.dependsOn ':core:copyGradleProperties'
sourcesJar.dependsOn ':ui:assembleFrontend'
task javadocJar(type: Jar) {
tasks.register('javadocJar', Jar) {
archiveClassifier.set('javadoc')
from javadoc
}
task testsJar(type: Jar) {
tasks.register('testsJar', Jar) {
group = 'build'
description = 'Build the tests jar'
archiveClassifier.set('tests')
from sourceSets.test.output
if (sourceSets.matching { it.name == 'test'}) {
from sourceSets.named('test').get().output
}
}
github {
@@ -560,4 +597,12 @@ release {
git {
requireBranch.set('develop')
}
// Dynamically set properties with default values
failOnSnapshotDependencies = providers.gradleProperty("release.failOnSnapshotDependencies")
.map(val -> Boolean.parseBoolean(val))
.getOrElse(true)
pushReleaseVersionBranch = providers.gradleProperty("release.pushReleaseVersionBranch")
.getOrElse(null)
}

View File

@@ -12,18 +12,9 @@ dependencies {
implementation 'ch.qos.logback.contrib:logback-json-classic'
implementation 'ch.qos.logback.contrib:logback-jackson'
// plugins
implementation 'org.eclipse.aether:aether-api'
implementation 'org.eclipse.aether:aether-spi'
implementation 'org.eclipse.aether:aether-util'
implementation 'org.eclipse.aether:aether-impl'
implementation 'org.eclipse.aether:aether-connector-basic'
implementation 'org.eclipse.aether:aether-transport-file'
implementation 'org.eclipse.aether:aether-transport-http'
implementation('org.apache.maven:maven-aether-provider') {
// sisu dependency injector is not used
exclude group: 'org.eclipse.sisu'
}
// OTLP metrics
implementation "io.micronaut.micrometer:micronaut-micrometer-registry-otlp"
// aether still use javax.inject
compileOnly 'javax.inject:javax.inject:1'
@@ -43,4 +34,7 @@ dependencies {
implementation project(":storage-local")
implementation project(":webserver")
//test
testImplementation "org.wiremock:wiremock-jetty12"
}

View File

@@ -14,6 +14,9 @@ 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;
@@ -43,8 +46,18 @@ public abstract class AbstractApiCommand extends AbstractCommand {
@Nullable
private HttpClientConfiguration httpClientConfiguration;
/**
* {@inheritDoc}
*/
protected boolean loadExternalPlugins() {
return false;
}
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()));
@@ -79,4 +92,12 @@ public abstract class AbstractApiCommand extends AbstractCommand {
return tenantId == null ? "/api/v1" + path : "/api/v1/" + tenantId + path;
}
@Builder
@Value
@Jacksonized
public static class UpdateResult {
String id;
String namespace;
}
}

View File

@@ -4,16 +4,17 @@ import ch.qos.logback.classic.LoggerContext;
import com.google.common.collect.ImmutableMap;
import io.kestra.cli.commands.servers.ServerCommandInterface;
import io.kestra.cli.services.StartupHookInterface;
import io.kestra.core.contexts.KestraContext;
import io.kestra.core.plugins.PluginManager;
import io.kestra.core.plugins.PluginRegistry;
import io.kestra.webserver.services.FlowAutoLoaderService;
import io.micronaut.context.ApplicationContext;
import io.micronaut.context.env.yaml.YamlPropertySourceLoader;
import io.micronaut.core.annotation.Introspected;
import io.micronaut.http.uri.UriBuilder;
import io.micronaut.management.endpoint.EndpointDefaultConfiguration;
import io.micronaut.runtime.server.EmbeddedServer;
import jakarta.inject.Provider;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.utils.URIBuilder;
import io.kestra.core.utils.Rethrow;
import picocli.CommandLine;
@@ -24,11 +25,16 @@ import java.net.URISyntaxException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.MessageFormat;
import java.time.temporal.ChronoUnit;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.Callable;
import jakarta.inject.Inject;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
@CommandLine.Command(
@Command(
versionProvider = VersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true
)
@@ -43,23 +49,32 @@ abstract public class AbstractCommand implements Callable<Integer> {
@Inject
private StartupHookInterface startupHook;
@Inject
private io.kestra.core.utils.VersionProvider versionProvider;
@Inject
protected Provider<PluginRegistry> pluginRegistryProvider;
@Inject
protected Provider<PluginManager> pluginManagerProvider;
private PluginRegistry pluginRegistry;
@CommandLine.Option(names = {"-v", "--verbose"}, description = "Change log level. Multiple -v options increase the verbosity.", showDefaultValue = CommandLine.Help.Visibility.NEVER)
@Option(names = {"-v", "--verbose"}, description = "Change log level. Multiple -v options increase the verbosity.", showDefaultValue = CommandLine.Help.Visibility.NEVER)
private boolean[] verbose = new boolean[0];
@CommandLine.Option(names = {"-l", "--log-level"}, description = "Change log level (values: ${COMPLETION-CANDIDATES})")
@Option(names = {"-l", "--log-level"}, description = "Change log level (values: ${COMPLETION-CANDIDATES})")
private LogLevel logLevel = LogLevel.INFO;
@CommandLine.Option(names = {"--internal-log"}, description = "Change also log level for internal log")
@Option(names = {"--internal-log"}, description = "Change also log level for internal log")
private boolean internalLog = false;
@CommandLine.Option(names = {"-c", "--config"}, description = "Path to a configuration file")
@Option(names = {"-c", "--config"}, description = "Path to a configuration file")
private Path config = Paths.get(System.getProperty("user.home"), ".kestra/config.yml");
@CommandLine.Option(names = {"-p", "--plugins"}, description = "Path to plugins directory")
protected Path pluginsPath = System.getenv("KESTRA_PLUGINS_PATH") != null ? Paths.get(System.getenv("KESTRA_PLUGINS_PATH")) : null;
@Option(names = {"-p", "--plugins"}, description = "Path to plugins directory")
protected Path pluginsPath = Optional.ofNullable(System.getenv("KESTRA_PLUGINS_PATH")).map(Paths::get).orElse(null);
public enum LogLevel {
TRACE,
@@ -71,7 +86,7 @@ abstract public class AbstractCommand implements Callable<Integer> {
@Override
public Integer call() throws Exception {
Thread.currentThread().setName(this.getClass().getDeclaredAnnotation(CommandLine.Command.class).name());
Thread.currentThread().setName(this.getClass().getDeclaredAnnotation(Command.class).name());
startLogger();
sendServerLog();
if (this.startupHook != null) {
@@ -79,14 +94,20 @@ abstract public class AbstractCommand implements Callable<Integer> {
}
if (this.pluginsPath != null && loadExternalPlugins()) {
pluginRegistry = pluginRegistry();
pluginRegistry = pluginRegistryProvider.get();
pluginRegistry.registerIfAbsent(pluginsPath);
// PluginManager mus only be initialized if a registry is also instantiated
if (isPluginManagerEnabled()) {
PluginManager manager = pluginManagerProvider.get();
manager.start();
}
}
startWebserver();
return 0;
}
/**
* Specifies whether external plugins must be loaded.
* This method can be overridden by concrete commands.
@@ -96,9 +117,16 @@ abstract public class AbstractCommand implements Callable<Integer> {
protected boolean loadExternalPlugins() {
return true;
}
protected PluginRegistry pluginRegistry() {
return KestraContext.getContext().getPluginRegistry(); // Lazy init
/**
* Specifies whether the {@link PluginManager} service must be initialized.
* <p>
* This method can be overridden by concrete commands.
*
* @return {@code true} if the {@link PluginManager} service must be initialized.
*/
protected boolean isPluginManagerEnabled() {
return true;
}
private static String message(String message, Object... format) {
@@ -122,8 +150,25 @@ abstract public class AbstractCommand implements Callable<Integer> {
this.logLevel = LogLevel.TRACE;
}
if (this instanceof ServerCommandInterface) {
log.info("Starting Kestra with environments {}", applicationContext.getEnvironment().getActiveNames());
String buildInfo = "";
if (versionProvider.getRevision() != null) {
buildInfo += " [revision " + versionProvider.getRevision();
if (versionProvider.getDate() != null) {
buildInfo += " / " + versionProvider.getDate().toLocalDateTime().truncatedTo(ChronoUnit.MINUTES);
}
buildInfo += "]";
}
log.info(
"Starting Kestra {} with environments {}{}",
versionProvider.getVersion(),
applicationContext.getEnvironment().getActiveNames(),
buildInfo
);
}
((LoggerContext) org.slf4j.LoggerFactory.getILoggerFactory())
@@ -135,7 +180,6 @@ abstract public class AbstractCommand implements Callable<Integer> {
logger.getName().startsWith("io.kestra") &&
!logger.getName().startsWith("io.kestra.ee.runner.kafka.services"))
)
|| logger.getName().startsWith("flow")
)
.forEach(
logger -> logger.setLevel(ch.qos.logback.classic.Level.valueOf(this.logLevel.name()))
@@ -161,9 +205,9 @@ abstract public class AbstractCommand implements Callable<Integer> {
if (this.endpointConfiguration.getPort().isPresent()) {
URI endpoint = null;
try {
endpoint = new URIBuilder(server.getURL().toURI())
.setPort(this.endpointConfiguration.getPort().get())
.setPath("/health")
endpoint = UriBuilder.of(server.getURL().toURI())
.port(this.endpointConfiguration.getPort().get())
.path("/health")
.build();
} catch (URISyntaxException e) {
e.printStackTrace();
@@ -185,10 +229,12 @@ abstract public class AbstractCommand implements Callable<Integer> {
return false;
}
protected void shutdownHook(Rethrow.RunnableChecked<Exception> run) {
protected void shutdownHook(boolean logShutdown, Rethrow.RunnableChecked<Exception> run) {
Runtime.getRuntime().addShutdownHook(new Thread(
() -> {
log.warn("Receiving shutdown ! Try to graceful exit");
if (logShutdown) {
log.warn("Receiving shutdown ! Try to graceful exit");
}
try {
run.run();
} catch (Exception e) {

View File

@@ -1,9 +1,8 @@
package io.kestra.cli;
import io.kestra.cli.commands.flows.FlowValidateCommand;
import io.kestra.core.models.validations.ModelValidator;
import io.kestra.core.models.validations.ValidateConstraintViolation;
import io.kestra.core.serializers.YamlFlowParser;
import io.kestra.core.serializers.YamlParser;
import io.micronaut.core.type.Argument;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.MediaType;
@@ -32,6 +31,12 @@ public abstract class AbstractValidateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "the directory containing files to check")
protected Path directory;
/** {@inheritDoc} **/
@Override
protected boolean loadExternalPlugins() {
return local;
}
public static void handleException(ConstraintViolationException e, String resource) {
stdErr("\t@|fg(red) Unable to parse {0} due to the following error(s):|@", resource);
e.getConstraintViolations()
@@ -63,19 +68,19 @@ public abstract class AbstractValidateCommand extends AbstractApiCommand {
public static String buildYamlBody(Path directory) throws IOException {
try(var files = Files.walk(directory)) {
return files.filter(Files::isRegularFile)
.filter(YamlFlowParser::isValidExtension)
.filter(YamlParser::isValidExtension)
.map(throwFunction(path -> Files.readString(path, Charset.defaultCharset())))
.collect(Collectors.joining("\n---\n"));
}
}
// 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,
YamlFlowParser yamlFlowParser,
ModelValidator modelValidator,
Function<Object, String> identity,
Function<Object, List<String>> warningsFunction
Function<Object, List<String>> warningsFunction,
Function<Object, List<String>> infosFunction
) throws Exception {
super.call();
@@ -85,23 +90,25 @@ public abstract class AbstractValidateCommand extends AbstractApiCommand {
if(this.local) {
try(var files = Files.walk(directory)) {
files.filter(Files::isRegularFile)
.filter(YamlFlowParser::isValidExtension)
.filter(YamlParser::isValidExtension)
.forEach(path -> {
try {
Object parse = yamlFlowParser.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);
warnings.forEach(warning -> stdOut("@|bold,yellow \u26A0|@ - " + warning));
List<String> infos = infosFunction.apply(parse);
infos.forEach(info -> stdOut("@|bold,blue \u2139|@ - " + info));
} catch (ConstraintViolationException e) {
stdErr("@|red \u2718|@ - " + path);
FlowValidateCommand.handleException(e, clsName);
AbstractValidateCommand.handleException(e, clsName);
returnCode.set(1);
}
});
}
} else {
String body = FlowValidateCommand.buildYamlBody(directory);
String body = AbstractValidateCommand.buildYamlBody(directory);
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
@@ -118,12 +125,12 @@ public abstract class AbstractValidateCommand extends AbstractApiCommand {
stdOut("@|green \u2713|@ - " + validation.getIdentity());
} else {
stdErr("@|red \u2718|@ - " + validation.getIdentity(directory));
FlowValidateCommand.handleValidateConstraintViolation(validation, clsName);
AbstractValidateCommand.handleValidateConstraintViolation(validation, clsName);
returnCode.set(1);
}
}));
} catch (HttpClientResponseException e){
FlowValidateCommand.handleHttpException(e, clsName);
AbstractValidateCommand.handleHttpException(e, clsName);
return 1;
}

View File

@@ -88,11 +88,12 @@ public class App implements Callable<Integer> {
.environments(Environment.CLI);
CommandLine cmd = new CommandLine(mainClass, CommandLine.defaultFactory());
continueOnParsingErrors(cmd);
CommandLine.ParseResult parseResult = cmd.parseArgs(args);
List<CommandLine> parsedCommands = parseResult.asCommandLineList();
CommandLine commandLine = parsedCommands.get(parsedCommands.size() - 1);
CommandLine commandLine = parsedCommands.getLast();
Class<?> cls = commandLine.getCommandSpec().userObject().getClass();
if (AbstractCommand.class.isAssignableFrom(cls)) {
@@ -103,7 +104,7 @@ public class App implements Callable<Integer> {
// if class have propertiesOverrides, add force properties for this class
Map<String, Object> propertiesOverrides = getPropertiesFromMethod(cls, "propertiesOverrides", null);
if (propertiesOverrides != null) {
if (propertiesOverrides != null && isPracticalCommand(commandLine)) {
properties.putAll(propertiesOverrides);
}
@@ -114,15 +115,17 @@ public class App implements Callable<Integer> {
.stream()
.filter(argSpec -> ((Field) argSpec.userObject()).getName().equals("serverPort"))
.findFirst()
.ifPresent(argSpec -> {
properties.put("micronaut.server.port", argSpec.getValue());
});
.ifPresent(argSpec -> properties.put("micronaut.server.port", argSpec.getValue()));
builder.properties(properties);
}
return builder.build();
}
private static void continueOnParsingErrors(CommandLine cmd) {
cmd.getCommandSpec().parser().collectErrors(true);
}
@SuppressWarnings("unchecked")
private static <T> T getPropertiesFromMethod(Class<?> cls, String methodName, Object instance) {
try {
@@ -139,4 +142,12 @@ public class App implements Callable<Integer> {
return null;
}
/**
* @param commandLine parsed command
* @return false if the command is a help or version request, true otherwise
*/
private static boolean isPracticalCommand(CommandLine commandLine) {
return !(commandLine.isUsageHelpRequested() || commandLine.isVersionHelpRequested());
}
}

View File

@@ -1,28 +1,18 @@
package io.kestra.cli.commands;
import io.kestra.cli.AbstractApiCommand;
import lombok.Builder;
import lombok.Value;
import lombok.extern.jackson.Jacksonized;
import picocli.CommandLine;
import java.nio.file.Path;
public abstract class AbstractServiceNamespaceUpdateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "the namespace to update")
@CommandLine.Parameters(index = "0", description = "The namespace to update")
public String namespace;
@CommandLine.Parameters(index = "1", description = "the directory containing files for current namespace")
@CommandLine.Parameters(index = "1", description = "The directory containing flow files for current namespace")
public Path directory;
@CommandLine.Option(names = {"--delete"}, negatable = true, description = "if missing should be deleted")
@CommandLine.Option(names = {"--delete"}, negatable = true, description = "Whether missing should be deleted")
public boolean delete = false;
@Builder
@Value
@Jacksonized
public static class UpdateResult {
String id;
String namespace;
}
}

View File

@@ -8,7 +8,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "configs",
description = "handle configs",
description = "Manage configuration",
mixinStandardHelpOptions = true,
subcommands = {
ConfigPropertiesCommand.class,

View File

@@ -10,7 +10,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "properties",
description = {"Display actual configurations properties."}
description = {"Display current configuration properties."}
)
@Slf4j
public class ConfigPropertiesCommand extends AbstractCommand {

View File

@@ -10,7 +10,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "flow",
description = "handle flows",
description = "Manage flows",
mixinStandardHelpOptions = true,
subcommands = {
FlowValidateCommand.class,
@@ -18,6 +18,8 @@ import picocli.CommandLine;
FlowNamespaceCommand.class,
FlowDotCommand.class,
FlowExportCommand.class,
FlowUpdateCommand.class,
FlowUpdatesCommand.class
}
)
@Slf4j

View File

@@ -0,0 +1,59 @@
package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
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 lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.nio.file.Files;
import java.nio.file.Path;
@CommandLine.Command(
name = "create",
description = "Create a single flow",
mixinStandardHelpOptions = true
)
@Slf4j
public class FlowCreateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "The file containing the flow")
public Path flowFile;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
super.call();
checkFile();
String body = Files.readString(flowFile);
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.POST(apiUri("/flows"), body).contentType(MediaType.APPLICATION_YAML);
client.toBlocking().retrieve(
this.requestOptions(request),
String.class
);
stdOut("Flow successfully created !");
} catch (HttpClientResponseException e){
AbstractValidateCommand.handleHttpException(e, "flow");
return 1;
}
return 0;
}
protected void checkFile() {
if (!Files.isRegularFile(flowFile)) {
throw new IllegalArgumentException("The file '" + flowFile.toFile().getAbsolutePath() + "' is not a file");
}
}
}

View File

@@ -0,0 +1,47 @@
package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
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 lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
@CommandLine.Command(
name = "delete",
description = "Delete a single flow",
mixinStandardHelpOptions = true
)
@Slf4j
public class FlowDeleteCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "The namespace of the flow")
public String namespace;
@CommandLine.Parameters(index = "1", description = "The ID of the flow")
public String id;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
super.call();
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.DELETE(apiUri("/flows/" + namespace + "/" + id ));
client.toBlocking().exchange(
this.requestOptions(request)
);
stdOut("Flow successfully deleted !");
} catch (HttpClientResponseException e){
AbstractValidateCommand.handleHttpException(e, "flow");
return 1;
}
return 0;
}
}

View File

@@ -3,7 +3,7 @@ package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.models.hierarchies.GraphCluster;
import io.kestra.core.serializers.YamlFlowParser;
import io.kestra.core.serializers.YamlParser;
import io.kestra.core.services.Graph2DotService;
import io.kestra.core.utils.GraphUtils;
import io.micronaut.context.ApplicationContext;
@@ -15,22 +15,21 @@ import java.nio.file.Path;
@CommandLine.Command(
name = "dot",
description = "generate a dot graph from a file"
description = "Generate a DOT graph from a file"
)
@Slf4j
public class FlowDotCommand extends AbstractCommand {
@Inject
private ApplicationContext applicationContext;
@CommandLine.Parameters(index = "0", description = "the flow file to display")
@CommandLine.Parameters(index = "0", description = "The flow file to display")
private Path file;
@Override
public Integer call() throws Exception {
super.call();
YamlFlowParser parser = applicationContext.getBean(YamlFlowParser.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

@@ -3,7 +3,7 @@ package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.models.validations.ModelValidator;
import io.kestra.core.serializers.YamlFlowParser;
import io.kestra.core.serializers.YamlParser;
import jakarta.inject.Inject;
import picocli.CommandLine;
@@ -12,17 +12,14 @@ import java.nio.file.Path;
@CommandLine.Command(
name = "expand",
description = "deprecated - expand a flow"
description = "Deprecated - expand a flow"
)
@Deprecated
public class FlowExpandCommand extends AbstractCommand {
@CommandLine.Parameters(index = "0", description = "the flow file to expand")
@CommandLine.Parameters(index = "0", description = "The flow file to expand")
private Path file;
@Inject
private YamlFlowParser yamlFlowParser;
@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 = yamlFlowParser.parse(content, Flow.class);
Flow flow = YamlParser.parse(content, Flow.class);
modelValidator.validate(flow);
stdOut(content);
return 0;

View File

@@ -1,6 +1,7 @@
package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.micronaut.context.ApplicationContext;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.HttpResponse;
@@ -17,7 +18,7 @@ import java.nio.file.Path;
@CommandLine.Command(
name = "export",
description = "export flows to a zip file",
description = "Export flows to a ZIP file",
mixinStandardHelpOptions = true
)
@Slf4j
@@ -28,10 +29,10 @@ public class FlowExportCommand extends AbstractApiCommand {
@Inject
private ApplicationContext applicationContext;
@CommandLine.Option(names = {"--namespace"}, description = "the namespace of flows to export")
@CommandLine.Option(names = {"--namespace"}, description = "The namespace of flows to export")
public String namespace;
@CommandLine.Parameters(index = "0", description = "the directory to export the file to")
@CommandLine.Parameters(index = "0", description = "The directory to export the ZIP file to")
public Path directory;
@Override
@@ -50,7 +51,7 @@ public class FlowExportCommand extends AbstractApiCommand {
stdOut("Exporting flow(s) for namespace '" + namespace + "' successfully done !");
} catch (HttpClientResponseException e) {
FlowValidateCommand.handleHttpException(e, "flow");
AbstractValidateCommand.handleHttpException(e, "flow");
return 1;
}

View File

@@ -27,19 +27,19 @@ import java.util.concurrent.TimeoutException;
@CommandLine.Command(
name = "test",
description = "test a flow"
description = "Test a flow"
)
@Slf4j
public class FlowTestCommand extends AbstractCommand {
@Inject
private ApplicationContext applicationContext;
@CommandLine.Parameters(index = "0", description = "the flow file to test")
@CommandLine.Parameters(index = "0", description = "The flow file to test")
private Path file;
@CommandLine.Parameters(
index = "1..*",
description = "the inputs to pass as key pair value separated by space, " +
description = "The inputs to pass as key pair value separated by space, " +
"for input type file, you need to pass an absolute path."
)
private List<String> inputs = new ArrayList<>();
@@ -98,7 +98,7 @@ public class FlowTestCommand extends AbstractCommand {
runnerUtils.runOne(
all.getFirst(),
(flow, execution) -> flowInputOutput.typedInputs(flow, execution, inputs),
(flow, execution) -> flowInputOutput.readExecutionInputs(flow, execution, inputs),
Duration.ofHours(1)
);

View File

@@ -0,0 +1,64 @@
package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
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 lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.nio.file.Files;
import java.nio.file.Path;
@CommandLine.Command(
name = "update",
description = "Update a single flow",
mixinStandardHelpOptions = true
)
@Slf4j
public class FlowUpdateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "The file containing the flow")
public Path flowFile;
@CommandLine.Parameters(index = "1", description = "The namespace of the flow")
public String namespace;
@CommandLine.Parameters(index = "2", description = "The ID of the flow")
public String id;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
super.call();
checkFile();
String body = Files.readString(flowFile);
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.PUT(apiUri("/flows/" + namespace + "/" + id ), body).contentType(MediaType.APPLICATION_YAML);
client.toBlocking().retrieve(
this.requestOptions(request),
String.class
);
stdOut("Flow successfully updated !");
} catch (HttpClientResponseException e){
AbstractValidateCommand.handleHttpException(e, "flow");
return 1;
}
return 0;
}
protected void checkFile() {
if (!Files.isRegularFile(flowFile)) {
throw new IllegalArgumentException("The file '" + flowFile.toFile().getAbsolutePath() + "' is not a file");
}
}
}

View File

@@ -0,0 +1,95 @@
package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.core.serializers.YamlParser;
import io.micronaut.core.type.Argument;
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.validation.ConstraintViolationException;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
@CommandLine.Command(
name = "updates",
description = "Create or update flows from a folder, and optionally delete the ones not present",
mixinStandardHelpOptions = true
)
@Slf4j
public class FlowUpdatesCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "The directory containing files")
public Path directory;
@CommandLine.Option(names = {"--delete"}, negatable = true, description = "Whether missing should be deleted")
public boolean delete = false;
@CommandLine.Option(names = {"--namespace"}, description = "The parent namespace of the flows, if not set, every namespace are allowed.")
public String namespace;
@SuppressWarnings("deprecation")
@Override
public Integer call() throws Exception {
super.call();
try (var files = Files.walk(directory)) {
List<String> flows = files
.filter(Files::isRegularFile)
.filter(YamlParser::isValidExtension)
.map(path -> {
try {
return IncludeHelperExpander.expand(Files.readString(path, Charset.defaultCharset()), path.getParent());
} catch (IOException e) {
throw new RuntimeException(e);
}
})
.toList();
String body = "";
if (flows.isEmpty()) {
stdOut("No flow found on '{}'", directory.toFile().getAbsolutePath());
} else {
body = String.join("\n---\n", flows);
}
try(DefaultHttpClient client = client()) {
String namespaceQuery = "";
if (namespace != null) {
namespaceQuery = "&namespace=" + namespace;
}
MutableHttpRequest<String> request = HttpRequest
.POST(apiUri("/flows/bulk") + "?allowNamespaceChild=true&delete=" + delete + namespaceQuery, body).contentType(MediaType.APPLICATION_YAML);
List<UpdateResult> updated = client.toBlocking().retrieve(
this.requestOptions(request),
Argument.listOf(UpdateResult.class)
);
stdOut(updated.size() + " flow(s) successfully updated !");
updated.forEach(flow -> stdOut("- " + flow.getNamespace() + "." + flow.getId()));
} catch (HttpClientResponseException e){
AbstractValidateCommand.handleHttpException(e, "flow");
return 1;
}
} catch (ConstraintViolationException e) {
AbstractValidateCommand.handleException(e, "flow");
return 1;
}
return 0;
}
@Override
protected boolean loadExternalPlugins() {
return false;
}
}

View File

@@ -1,9 +1,8 @@
package io.kestra.cli.commands.flows;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.models.flows.FlowWithSource;
import io.kestra.core.models.validations.ModelValidator;
import io.kestra.core.serializers.YamlFlowParser;
import io.kestra.core.services.FlowService;
import jakarta.inject.Inject;
import picocli.CommandLine;
@@ -13,11 +12,9 @@ import java.util.List;
@CommandLine.Command(
name = "validate",
description = "validate a flow"
description = "Validate a flow"
)
public class FlowValidateCommand extends AbstractValidateCommand {
@Inject
private YamlFlowParser yamlFlowParser;
@Inject
private ModelValidator modelValidator;
@@ -28,20 +25,22 @@ public class FlowValidateCommand extends AbstractValidateCommand {
@Override
public Integer call() throws Exception {
return this.call(
Flow.class,
yamlFlowParser,
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.relocations(flow.generateSource()).stream().map(relocation -> relocation.from() + " is replaced by " + relocation.to()).toList());
warnings.addAll(flowService.warnings(flow));
warnings.addAll(flowService.warnings(flow, this.tenantId));
return warnings;
},
(Object object) -> {
FlowWithSource flow = (FlowWithSource) object;
return flowService.relocations(flow.sourceOrGenerateIfNull()).stream().map(relocation -> relocation.from() + " is replaced by " + relocation.to()).toList();
}
);
}

View File

@@ -9,7 +9,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "namespace",
description = "handle namespace flows",
description = "Manage namespace flows",
mixinStandardHelpOptions = true,
subcommands = {
FlowNamespaceUpdateCommand.class,

View File

@@ -1,20 +1,19 @@
package io.kestra.cli.commands.flows.namespaces;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.commands.AbstractServiceNamespaceUpdateCommand;
import io.kestra.cli.commands.flows.FlowValidateCommand;
import io.kestra.cli.commands.flows.IncludeHelperExpander;
import io.kestra.core.serializers.YamlFlowParser;
import io.kestra.core.serializers.YamlParser;
import io.micronaut.core.type.Argument;
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 jakarta.validation.ConstraintViolationException;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import jakarta.validation.ConstraintViolationException;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
@@ -22,13 +21,14 @@ import java.util.List;
@CommandLine.Command(
name = "update",
description = "handle namespace flows",
description = "Update flows in namespace",
mixinStandardHelpOptions = true
)
@Slf4j
public class FlowNamespaceUpdateCommand extends AbstractServiceNamespaceUpdateCommand {
@Inject
public YamlFlowParser yamlFlowParser;
@CommandLine.Option(names = {"--override-namespaces"}, negatable = true, description = "Replace namespace of all flows by the one provided")
public boolean override = false;
@SuppressWarnings("deprecation")
@Override
@@ -38,7 +38,7 @@ public class FlowNamespaceUpdateCommand extends AbstractServiceNamespaceUpdateCo
try (var files = Files.walk(directory)) {
List<String> flows = files
.filter(Files::isRegularFile)
.filter(YamlFlowParser::isValidExtension)
.filter(YamlParser::isValidExtension)
.map(path -> {
try {
return IncludeHelperExpander.expand(Files.readString(path, Charset.defaultCharset()), path.getParent());
@@ -54,6 +54,9 @@ public class FlowNamespaceUpdateCommand extends AbstractServiceNamespaceUpdateCo
} else {
body = String.join("\n---\n", flows);
}
if (override) {
body = body.replaceAll("(?m)^namespace:.+", "namespace: " + namespace);
}
try(DefaultHttpClient client = client()) {
MutableHttpRequest<String> request = HttpRequest
.POST(apiUri("/flows/") + namespace + "?delete=" + delete, body).contentType(MediaType.APPLICATION_YAML);
@@ -66,11 +69,11 @@ public class FlowNamespaceUpdateCommand extends AbstractServiceNamespaceUpdateCo
stdOut(updated.size() + " flow(s) for namespace '" + namespace + "' successfully updated !");
updated.forEach(flow -> stdOut("- " + flow.getNamespace() + "." + flow.getId()));
} catch (HttpClientResponseException e){
FlowValidateCommand.handleHttpException(e, "flow");
AbstractValidateCommand.handleHttpException(e, "flow");
return 1;
}
} catch (ConstraintViolationException e) {
FlowValidateCommand.handleException(e, "flow");
AbstractValidateCommand.handleException(e, "flow");
return 1;
}

View File

@@ -11,7 +11,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "namespace",
description = "handle namespaces",
description = "Manage namespaces",
mixinStandardHelpOptions = true,
subcommands = {
NamespaceFilesCommand.class,

View File

@@ -9,7 +9,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "files",
description = "handle namespace files",
description = "Manage namespace files",
mixinStandardHelpOptions = true,
subcommands = {
NamespaceFilesUpdateCommand.class,

View File

@@ -17,21 +17,21 @@ import java.util.List;
@CommandLine.Command(
name = "update",
description = "update namespace files",
description = "Update namespace files",
mixinStandardHelpOptions = true
)
@Slf4j
public class NamespaceFilesUpdateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "the namespace to update")
@CommandLine.Parameters(index = "0", description = "The namespace to update")
public String namespace;
@CommandLine.Parameters(index = "1", description = "the local directory containing files for current namespace")
@CommandLine.Parameters(index = "1", description = "The local directory containing files for current namespace")
public Path from;
@CommandLine.Parameters(index = "2", description = "the remote namespace path to upload files to", defaultValue = "/")
@CommandLine.Parameters(index = "2", description = "The remote namespace path to upload files to", defaultValue = "/")
public String to;
@CommandLine.Option(names = {"--delete"}, negatable = true, description = "if missing should be deleted")
@CommandLine.Option(names = {"--delete"}, negatable = true, description = "Whether missing should be deleted")
public boolean delete = false;
private static final String KESTRA_IGNORE_FILE = ".kestraignore";

View File

@@ -9,7 +9,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "kv",
description = "handle KV Store",
description = "Manage KV Store",
mixinStandardHelpOptions = true,
subcommands = {
KvUpdateCommand.class,

View File

@@ -18,28 +18,28 @@ import java.time.Duration;
@CommandLine.Command(
name = "update",
description = "update value for a KV Store key",
description = "Update value for a KV Store key",
mixinStandardHelpOptions = true
)
@Slf4j
public class KvUpdateCommand extends AbstractApiCommand {
@CommandLine.Parameters(index = "0", description = "the namespace to update")
@CommandLine.Parameters(index = "0", description = "The namespace to update")
public String namespace;
@CommandLine.Parameters(index = "1", description = "the key to update")
@CommandLine.Parameters(index = "1", description = "The key to update")
public String key;
@CommandLine.Parameters(index = "2", description = "the value to assign to the key. If the value is an object, it must be in JSON format. If the value must be read from file, use -f parameter.")
@CommandLine.Parameters(index = "2", description = "The value to assign to the key. If the value is an object, it must be in JSON format. If the value must be read from file, use -f parameter.")
public String value;
@Option(names = {"-e", "--expiration"}, description = "the duration after which the key should expire.")
@Option(names = {"-e", "--expiration"}, description = "The duration after which the key should expire.")
public String expiration;
@Option(names = {"-t", "--type"}, description = "the type of the value. Optional and useful to override the deduced type (eg. numbers, booleans or JSON as full string). Valid values: ${COMPLETION-CANDIDATES}.")
@Option(names = {"-t", "--type"}, description = "The type of the value. Optional and useful to override the deduced type (eg. numbers, booleans or JSON as full string). Valid values: ${COMPLETION-CANDIDATES}.")
public Type type;
@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.")
@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;
@Override

View File

@@ -1,31 +1,37 @@
package io.kestra.cli.commands.plugins;
import io.micronaut.configuration.picocli.PicocliRunner;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import io.kestra.cli.AbstractCommand;
import io.kestra.cli.App;
import picocli.CommandLine;
import io.micronaut.configuration.picocli.PicocliRunner;
import lombok.SneakyThrows;
import picocli.CommandLine.Command;
@CommandLine.Command(
@Command(
name = "plugins",
description = "handle plugins",
description = "Manage plugins",
mixinStandardHelpOptions = true,
subcommands = {
PluginInstallCommand.class,
PluginUninstallCommand.class,
PluginListCommand.class,
PluginDocCommand.class
PluginDocCommand.class,
PluginSearchCommand.class
}
)
@Slf4j
public class PluginCommand extends AbstractCommand {
@SneakyThrows
@Override
public Integer call() throws Exception {
super.call();
PicocliRunner.call(App.class, "plugins", "--help");
PicocliRunner.call(App.class, "plugins", "--help");
return 0;
}
@Override
protected boolean loadExternalPlugins() {
return false;
}
}

View File

@@ -1,10 +1,11 @@
package io.kestra.cli.commands.plugins;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.docs.DocumentationGenerator;
import io.kestra.core.plugins.PluginRegistry;
import io.kestra.core.plugins.RegisteredPlugin;
import io.kestra.core.serializers.JacksonMapper;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import picocli.CommandLine;
@@ -19,13 +20,13 @@ import java.util.List;
@CommandLine.Command(
name = "doc",
description = "write documentation for all plugins currently installed"
description = "Generate documentation for all plugins currently installed"
)
public class PluginDocCommand extends AbstractCommand {
@Inject
private ApplicationContext applicationContext;
@CommandLine.Parameters(index = "0", description = "Path to write documentations files")
@CommandLine.Parameters(index = "0", description = "Path to write documentation files")
private Path output = Paths.get(System.getProperty("user.dir"), "docs");
@CommandLine.Option(names = {"--core"}, description = "Also write core tasks docs files")
@@ -34,51 +35,78 @@ public class PluginDocCommand extends AbstractCommand {
@CommandLine.Option(names = {"--icons"}, description = "Also write icon for each task")
private boolean icons = false;
@CommandLine.Option(names = {"--schema"}, description = "Also write JSON Schema for each task")
private boolean schema = false;
@Override
public Integer call() throws Exception {
super.call();
DocumentationGenerator documentationGenerator = applicationContext.getBean(DocumentationGenerator.class);
List<RegisteredPlugin> plugins = core ? pluginRegistry().plugins() : pluginRegistry().externalPlugins();
PluginRegistry registry = pluginRegistryProvider.get();
List<RegisteredPlugin> plugins = core ? registry.plugins() : registry.externalPlugins();
boolean hasFailures = false;
for (RegisteredPlugin registeredPlugin : plugins) {
documentationGenerator
.generate(registeredPlugin)
.forEach(s -> {
File file = Paths.get(output.toAbsolutePath().toString(), s.getPath()).toFile();
try {
documentationGenerator
.generate(registeredPlugin)
.forEach(s -> {
File file = Paths.get(output.toAbsolutePath().toString(), s.getPath()).toFile();
if (!file.getParentFile().exists()) {
//noinspection ResultOfMethodCallIgnored
file.getParentFile().mkdirs();
}
try {
com.google.common.io.Files
.asCharSink(
file,
Charsets.UTF_8
).write(s.getBody());
stdOut("Generate doc in: {0}", file);
if (s.getIcon() != null && this.icons) {
File iconFile = new File(
file.getParent(),
file.getName().substring(0, file.getName().lastIndexOf(".")) + ".svg"
);
com.google.common.io.Files
.asByteSink(iconFile)
.write(Base64.getDecoder().decode(s.getIcon().getBytes(StandardCharsets.UTF_8)));
stdOut("Generate icon in: {0}", iconFile);
if (!file.getParentFile().exists()) {
//noinspection ResultOfMethodCallIgnored
file.getParentFile().mkdirs();
}
stdOut("Generate doc in: {0}", file);
} catch (IOException e) {
throw new RuntimeException(e);
try {
Files
.asCharSink(
file,
StandardCharsets.UTF_8
).write(s.getBody());
stdOut("Generate doc in: {0}", file);
if (s.getIcon() != null && this.icons) {
File iconFile = new File(
file.getParent(),
file.getName().substring(0, file.getName().lastIndexOf(".")) + ".svg"
);
Files
.asByteSink(iconFile)
.write(Base64.getDecoder().decode(s.getIcon().getBytes(StandardCharsets.UTF_8)));
stdOut("Generate icon in: {0}", iconFile);
}
if (this.schema && s.getSchema() != null) {
File jsonSchemaFile = new File(
file.getParent(),
file.getName().substring(0, file.getName().lastIndexOf(".")) + ".json"
);
Files
.asByteSink(jsonSchemaFile)
.write(JacksonMapper.ofJson().writeValueAsBytes(s.getSchema()));
stdOut("Generate json schema in: {0}", jsonSchemaFile);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
);
);
} catch (Error e) {
stdErr("Failure to generate documentation for plugin {0}: {1}", registeredPlugin.name(), e);
hasFailures = true;
}
}
return 0;
return hasFailures ? 1 : 0;
}
/** {@inheritDoc} **/
@Override
protected boolean isPluginManagerEnabled() {
return false;
}
}

View File

@@ -1,100 +1,123 @@
package io.kestra.cli.commands.plugins;
import io.kestra.core.contexts.MavenPluginRepositoryConfig;
import io.kestra.core.plugins.LocalPluginManager;
import io.kestra.core.plugins.MavenPluginDownloader;
import io.kestra.core.plugins.PluginArtifact;
import io.kestra.core.plugins.PluginCatalogService;
import io.kestra.core.plugins.PluginManager;
import io.micronaut.http.client.HttpClient;
import io.micronaut.http.client.annotation.Client;
import io.micronaut.http.uri.UriBuilder;
import org.apache.commons.io.FilenameUtils;
import io.kestra.cli.AbstractCommand;
import io.kestra.cli.plugins.PluginDownloader;
import io.kestra.cli.plugins.RepositoryConfig;
import io.kestra.core.utils.IdUtils;
import org.apache.http.client.utils.URIBuilder;
import jakarta.inject.Provider;
import picocli.CommandLine;
import java.net.URI;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import jakarta.inject.Inject;
import picocli.CommandLine.Command;
import picocli.CommandLine.Parameters;
import picocli.CommandLine.Option;
import picocli.CommandLine.Spec;
import static io.kestra.core.utils.Rethrow.throwConsumer;
@CommandLine.Command(
@Command(
name = "install",
description = "install a plugin"
description = "Install plugins"
)
public class PluginInstallCommand extends AbstractCommand {
@CommandLine.Parameters(index = "0..*", description = "the plugins to install")
@Option(names = {"--locally"}, description = "Specifies if plugins must be installed locally. If set to false the installation depends on your Kestra configuration.")
boolean locally = true;
@Option(names = {"--all"}, description = "Install all available plugins")
boolean all = false;
@Parameters(index = "0..*", description = "Plugins to install. Represented as Maven artifact coordinates (i.e., <groupId>:<artifactId>:(<version>|LATEST)")
List<String> dependencies = new ArrayList<>();
@CommandLine.Option(names = {"--repositories"}, description = "url to additional maven repositories")
@Option(names = {"--repositories"}, description = "URL to additional Maven repositories")
private URI[] repositories;
@CommandLine.Spec
@Spec
CommandLine.Model.CommandSpec spec;
@Inject
private PluginDownloader pluginDownloader;
Provider<MavenPluginDownloader> mavenPluginRepositoryProvider;
@Inject
@Client("api") HttpClient httpClient;
@Override
public Integer call() throws Exception {
super.call();
if (this.pluginsPath == null) {
if (this.locally && this.pluginsPath == null) {
throw new CommandLine.ParameterException(this.spec.commandLine(), "Missing required options '--plugins' " +
"or environment variable 'KESTRA_PLUGINS_PATH"
);
}
if (!pluginsPath.toFile().exists()) {
if (!pluginsPath.toFile().mkdir()) {
throw new RuntimeException("Cannot create directory: " + pluginsPath.toFile().getAbsolutePath());
}
}
List<MavenPluginRepositoryConfig> repositoryConfigs = List.of();
if (repositories != null) {
Arrays.stream(repositories)
.forEach(throwConsumer(s -> {
URIBuilder uriBuilder = new URIBuilder(s);
RepositoryConfig.RepositoryConfigBuilder builder = RepositoryConfig.builder()
repositoryConfigs = Arrays.stream(repositories)
.map(uri -> {
MavenPluginRepositoryConfig.MavenPluginRepositoryConfigBuilder builder = MavenPluginRepositoryConfig
.builder()
.id(IdUtils.create());
if (uriBuilder.getUserInfo() != null) {
int index = uriBuilder.getUserInfo().indexOf(":");
builder.basicAuth(new RepositoryConfig.BasicAuth(
uriBuilder.getUserInfo().substring(0, index),
uriBuilder.getUserInfo().substring(index + 1)
String userInfo = uri.getUserInfo();
if (userInfo != null) {
String[] userInfoParts = userInfo.split(":");
builder = builder.basicAuth(new MavenPluginRepositoryConfig.BasicAuth(
userInfoParts[0],
userInfoParts[1]
));
uriBuilder.setUserInfo(null);
}
builder.url(uriBuilder.build().toString());
pluginDownloader.addRepository(builder.build());
}));
builder.url(UriBuilder.of(uri).userInfo(null).build().toString());
return builder.build();
}).toList();
}
List<URL> resolveUrl = pluginDownloader.resolve(dependencies);
stdOut("Resolved Plugin(s) with {0}", resolveUrl);
if (all) {
PluginCatalogService service = new PluginCatalogService(httpClient, false, true);
dependencies = service.get().stream().map(Objects::toString).toList();
}
for (URL url: resolveUrl) {
Files.copy(
Paths.get(url.toURI()),
Paths.get(pluginsPath.toString(), FilenameUtils.getName(url.toString())),
StandardCopyOption.REPLACE_EXISTING
if (dependencies.isEmpty()) {
stdErr("Error: No plugin to install.");
return CommandLine.ExitCode.OK;
}
final List<PluginArtifact> pluginArtifacts;
try {
pluginArtifacts = dependencies.stream().map(PluginArtifact::fromCoordinates).toList();
} catch (IllegalArgumentException e) {
stdErr(e.getMessage());
return CommandLine.ExitCode.USAGE;
}
try (final PluginManager pluginManager = getPluginManager()) {
List<PluginArtifact> installed = pluginManager.install(
pluginArtifacts,
repositoryConfigs,
false,
pluginsPath
);
List<URI> uris = installed.stream().map(PluginArtifact::uri).toList();
stdOut("Successfully installed plugins {0} into {1}", dependencies, uris);
return CommandLine.ExitCode.OK;
}
}
stdOut("Successfully installed plugins {0} into {1}", dependencies, pluginsPath);
return 0;
private PluginManager getPluginManager() {
return locally ? new LocalPluginManager(mavenPluginRepositoryProvider.get()) : this.pluginManagerProvider.get();
}
@Override

View File

@@ -1,22 +1,31 @@
package io.kestra.cli.commands.plugins;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.plugins.PluginRegistry;
import io.kestra.core.plugins.RegisteredPlugin;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
import picocli.CommandLine.Spec;
import java.util.List;
@CommandLine.Command(
@Command(
name = "list",
description = "list all plugins already installed"
description = "List all plugins already installed"
)
public class PluginListCommand extends AbstractCommand {
@CommandLine.Spec
@Spec
CommandLine.Model.CommandSpec spec;
@CommandLine.Option(names = {"--core"}, description = "Also write core tasks plugins")
@Option(names = {"--core"}, description = "Also write core tasks plugins")
private boolean core = false;
@Inject
private PluginRegistry registry;
@Override
public Integer call() throws Exception {
super.call();
@@ -26,8 +35,9 @@ public class PluginListCommand extends AbstractCommand {
"or environment variable 'KESTRA_PLUGINS_PATH"
);
}
List<RegisteredPlugin> plugins = core ? pluginRegistry().plugins() : pluginRegistry().externalPlugins();
List<RegisteredPlugin> plugins = core ? registry.plugins() : registry.externalPlugins();
plugins.forEach(registeredPlugin -> stdOut(registeredPlugin.toString()));
return 0;

View File

@@ -0,0 +1,149 @@
package io.kestra.cli.commands.plugins;
import io.kestra.cli.AbstractCommand;
import io.micronaut.core.type.Argument;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.client.HttpClient;
import io.micronaut.http.client.annotation.Client;
import jakarta.inject.Inject;
import picocli.CommandLine.Command;
import picocli.CommandLine.Parameters;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;
@Command(
name = "search",
description = "Search for available Kestra plugins"
)
public class PluginSearchCommand extends AbstractCommand {
@Inject
@Client("api")
private HttpClient httpClient;
private static final ObjectMapper MAPPER = new ObjectMapper();
private static final char SPACE = ' ';
@Parameters(index = "0", description = "Search term (optional)", defaultValue = "")
private String searchTerm;
@Override
public Integer call() throws Exception {
super.call();
try {
JsonNode root = fetchPlugins();
List<PluginInfo> plugins = findPlugins(root);
printResults(plugins);
return 0;
} catch (Exception e) {
stdOut("Error processing plugins: {0}", e.getMessage());
return 1;
}
}
private JsonNode fetchPlugins() throws Exception {
String response = httpClient.toBlocking()
.retrieve(
HttpRequest.GET("/v1/plugins")
.header("Accept", "application/json")
);
return MAPPER.readTree(response);
}
private List<PluginInfo> findPlugins(JsonNode root) {
String searchTermLower = searchTerm.toLowerCase();
List<PluginInfo> plugins = new ArrayList<>();
for (JsonNode plugin : root) {
if (matchesSearch(plugin, searchTermLower)) {
plugins.add(new PluginInfo(
plugin.path("name").asText(),
plugin.path("title").asText(),
plugin.path("group").asText(),
plugin.path("version").asText("")
));
}
}
plugins.sort((p1, p2) -> p1.name.compareToIgnoreCase(p2.name));
return plugins;
}
private boolean matchesSearch(JsonNode plugin, String term) {
if (term.isEmpty()) {
return true;
}
return plugin.path("name").asText().toLowerCase().contains(term) ||
plugin.path("title").asText().toLowerCase().contains(term) ||
plugin.path("group").asText().toLowerCase().contains(term);
}
private void printResults(List<PluginInfo> plugins) {
if (plugins.isEmpty()) {
stdOut("No plugins found{0}",
searchTerm.isEmpty() ? "" : " matching '" + searchTerm + "'");
return;
}
stdOut("\nFound {0} plugins{1}",
plugins.size(),
searchTerm.isEmpty() ? "" : " matching '" + searchTerm + "'"
);
printPluginsTable(plugins);
}
private void printPluginsTable(List<PluginInfo> plugins) {
int maxName = 4, maxTitle = 5, maxGroup = 5;
for (PluginInfo plugin : plugins) {
maxName = Math.max(maxName, plugin.name.length());
maxTitle = Math.max(maxTitle, plugin.title.length());
maxGroup = Math.max(maxGroup, plugin.group.length());
}
StringBuilder namePad = new StringBuilder(maxName);
StringBuilder titlePad = new StringBuilder(maxTitle);
StringBuilder groupPad = new StringBuilder(maxGroup);
stdOut("");
printRow(namePad, titlePad, groupPad, "NAME", "TITLE", "GROUP", "VERSION",
maxName, maxTitle, maxGroup);
for (PluginInfo plugin : plugins) {
printRow(namePad, titlePad, groupPad, plugin.name, plugin.title, plugin.group, plugin.version,
maxName, maxTitle, maxGroup);
}
stdOut("");
}
private void printRow(StringBuilder namePad, StringBuilder titlePad, StringBuilder groupPad,
String name, String title, String group, String version,
int maxName, int maxTitle, int maxGroup) {
stdOut("{0} {1} {2} {3}",
pad(namePad, name, maxName),
pad(titlePad, title, maxTitle),
pad(groupPad, group, maxGroup),
version
);
}
private String pad(StringBuilder sb, String str, int length) {
sb.setLength(0);
sb.append(str);
while (sb.length() < length) {
sb.append(SPACE);
}
return sb.toString();
}
private record PluginInfo(String name, String title, String group, String version) {}
@Override
protected boolean loadExternalPlugins() {
return false;
}
}

View File

@@ -0,0 +1,69 @@
package io.kestra.cli.commands.plugins;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.plugins.LocalPluginManager;
import io.kestra.core.plugins.MavenPluginDownloader;
import io.kestra.core.plugins.PluginArtifact;
import io.kestra.core.plugins.PluginManager;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import picocli.CommandLine;
import picocli.CommandLine.Parameters;
import picocli.CommandLine.Spec;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
@CommandLine.Command(
name = "uninstall",
description = "Uninstall plugins"
)
public class PluginUninstallCommand extends AbstractCommand {
@Parameters(index = "0..*", description = "The plugins to uninstall. Represented as Maven artifact coordinates (i.e., <groupId>:<artifactId>:(<version>|LATEST)")
List<String> dependencies = new ArrayList<>();
@Spec
CommandLine.Model.CommandSpec spec;
@Inject
Provider<MavenPluginDownloader> mavenPluginRepositoryProvider;
@Override
public Integer call() throws Exception {
super.call();
List<PluginArtifact> pluginArtifacts;
try {
pluginArtifacts = dependencies.stream().map(PluginArtifact::fromCoordinates).toList();
} catch (IllegalArgumentException e) {
stdErr(e.getMessage());
return CommandLine.ExitCode.USAGE;
}
final PluginManager pluginManager;
// If a PLUGIN_PATH is provided, then use the LocalPluginManager
if (pluginsPath != null) {
pluginManager = new LocalPluginManager(mavenPluginRepositoryProvider.get());
} else {
// Otherwise, we delegate to the configured plugin-manager.
pluginManager = this.pluginManagerProvider.get();
}
List<PluginArtifact> uninstalled = pluginManager.uninstall(
pluginArtifacts,
false,
pluginsPath
);
List<URI> uris = uninstalled.stream().map(PluginArtifact::uri).toList();
stdOut("Successfully uninstalled plugins {0} from {1}", dependencies, uris);
return CommandLine.ExitCode.OK;
}
@Override
protected boolean loadExternalPlugins() {
return false;
}
}

View File

@@ -1,9 +1,21 @@
package io.kestra.cli.commands.servers;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.contexts.KestraContext;
import jakarta.annotation.PostConstruct;
import picocli.CommandLine;
abstract public class AbstractServerCommand extends AbstractCommand implements ServerCommandInterface {
@CommandLine.Option(names = {"--port"}, description = "the port to bind")
@CommandLine.Option(names = {"--port"}, description = "The port to bind")
Integer serverPort;
@Override
public Integer call() throws Exception {
this.shutdownHook(true, () -> KestraContext.getContext().shutdown());
return super.call();
}
protected static int defaultWorkerThread() {
return Runtime.getRuntime().availableProcessors() * 4;
}
}

View File

@@ -1,7 +1,6 @@
package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.core.contexts.KestraContext;
import io.kestra.core.models.ServerType;
import io.kestra.core.runners.ExecutorInterface;
import io.kestra.core.services.SkipExecutionService;
@@ -9,7 +8,6 @@ import io.kestra.core.services.StartExecutorService;
import io.kestra.core.utils.Await;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.util.Collections;
@@ -18,9 +16,8 @@ import java.util.Map;
@CommandLine.Command(
name = "executor",
description = "start an executor"
description = "Start the Kestra executor"
)
@Slf4j
public class ExecutorCommand extends AbstractServerCommand {
@Inject
private ApplicationContext applicationContext;
@@ -31,22 +28,22 @@ public class ExecutorCommand extends AbstractServerCommand {
@Inject
private StartExecutorService startExecutorService;
@CommandLine.Option(names = {"--skip-executions"}, split=",", description = "a list of execution identifiers to skip, separated by a coma; for troubleshooting purpose only")
@CommandLine.Option(names = {"--skip-executions"}, split=",", description = "The list of execution identifiers to skip, separated by a coma; for troubleshooting purpose only")
private List<String> skipExecutions = Collections.emptyList();
@CommandLine.Option(names = {"--skip-flows"}, split=",", description = "a list of flow identifiers (tenant|namespace|flowId) to skip, separated by a coma; for troubleshooting purpose only")
@CommandLine.Option(names = {"--skip-flows"}, split=",", description = "The list of flow identifiers (tenant|namespace|flowId) to skip, separated by a coma; for troubleshooting purpose only")
private List<String> skipFlows = Collections.emptyList();
@CommandLine.Option(names = {"--skip-namespaces"}, split=",", description = "a list of namespace identifiers (tenant|namespace) to skip, separated by a coma; for troubleshooting purpose only")
@CommandLine.Option(names = {"--skip-namespaces"}, split=",", description = "The list of namespace identifiers (tenant|namespace) to skip, separated by a coma; for troubleshooting purpose only")
private List<String> skipNamespaces = Collections.emptyList();
@CommandLine.Option(names = {"--skip-tenants"}, split=",", description = "a list of tenants to skip, separated by a coma; for troubleshooting purpose only")
@CommandLine.Option(names = {"--skip-tenants"}, split=",", description = "The list of tenants to skip, separated by a coma; for troubleshooting purpose only")
private List<String> skipTenants = Collections.emptyList();
@CommandLine.Option(names = {"--start-executors"}, split=",", description = "a list of Kafka Stream executors to start, separated by a command. Use it only with the Kafka queue, for debugging purpose.")
@CommandLine.Option(names = {"--start-executors"}, split=",", description = "The list of Kafka Stream executors to start, separated by a command. Use it only with the Kafka queue, for debugging purpose.")
private List<String> startExecutors = Collections.emptyList();
@CommandLine.Option(names = {"--not-start-executors"}, split=",", description = "a list of Kafka Stream executors to not start, separated by a command. Use it only with the Kafka queue, for debugging purpose.")
@CommandLine.Option(names = {"--not-start-executors"}, split=",", description = "The list of Kafka Stream executors to not start, separated by a command. Use it only with the Kafka queue, for debugging purpose.")
private List<String> notStartExecutors = Collections.emptyList();
@SuppressWarnings("unused")
@@ -66,13 +63,10 @@ public class ExecutorCommand extends AbstractServerCommand {
this.startExecutorService.applyOptions(startExecutors, notStartExecutors);
super.call();
this.shutdownHook(() -> KestraContext.getContext().shutdown());
ExecutorInterface executorService = applicationContext.getBean(ExecutorInterface.class);
executorService.run();
log.info("Executor started");
Await.until(() -> !this.applicationContext.isRunning());
return 0;

View File

@@ -1,22 +1,19 @@
package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.core.contexts.KestraContext;
import io.kestra.core.models.ServerType;
import io.kestra.core.runners.IndexerInterface;
import io.kestra.core.utils.Await;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.util.Map;
@CommandLine.Command(
name = "indexer",
description = "start an indexer"
description = "Start the Kestra indexer"
)
@Slf4j
public class IndexerCommand extends AbstractServerCommand {
@Inject
private ApplicationContext applicationContext;
@@ -31,13 +28,10 @@ public class IndexerCommand extends AbstractServerCommand {
@Override
public Integer call() throws Exception {
super.call();
this.shutdownHook(() -> KestraContext.getContext().shutdown());
IndexerInterface indexer = applicationContext.getBean(IndexerInterface.class);
indexer.run();
log.info("Indexer started");
Await.until(() -> !this.applicationContext.isRunning());
return 0;

View File

@@ -12,7 +12,7 @@ import java.util.Map;
@CommandLine.Command(
name = "local",
description = "start a local server"
description = "Start the local development server"
)
public class LocalCommand extends StandAloneCommand {
// @FIXME: Keep it for bug in micronaut that need to have inject on top level command to inject on abstract classe

View File

@@ -1,7 +1,6 @@
package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.core.contexts.KestraContext;
import io.kestra.core.models.ServerType;
import io.kestra.core.schedulers.AbstractScheduler;
import io.kestra.core.utils.Await;
@@ -14,7 +13,7 @@ import java.util.Map;
@CommandLine.Command(
name = "scheduler",
description = "start an scheduler"
description = "Start the Kestra scheduler"
)
@Slf4j
public class SchedulerCommand extends AbstractServerCommand {
@@ -31,12 +30,10 @@ public class SchedulerCommand extends AbstractServerCommand {
@Override
public Integer call() throws Exception {
super.call();
this.shutdownHook(() -> KestraContext.getContext().shutdown());
AbstractScheduler scheduler = applicationContext.getBean(AbstractScheduler.class);
scheduler.run();
log.info("Scheduler started");
Await.until(() -> !this.applicationContext.isRunning());
return 0;

View File

@@ -9,7 +9,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "server",
description = "handle servers",
description = "Manage servers",
mixinStandardHelpOptions = true,
subcommands = {
ExecutorCommand.class,

View File

@@ -1,6 +1,7 @@
package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.cli.services.FileChangedEventListener;
import io.kestra.core.contexts.KestraContext;
import io.kestra.core.models.ServerType;
import io.kestra.core.repositories.LocalFlowRepositoryLoader;
@@ -9,8 +10,8 @@ import io.kestra.core.services.SkipExecutionService;
import io.kestra.core.services.StartExecutorService;
import io.kestra.core.utils.Await;
import io.micronaut.context.ApplicationContext;
import jakarta.annotation.Nullable;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.io.File;
@@ -21,9 +22,8 @@ import java.util.Map;
@CommandLine.Command(
name = "standalone",
description = "start a standalone server"
description = "Start the standalone all-in-one server"
)
@Slf4j
public class StandAloneCommand extends AbstractServerCommand {
@CommandLine.Spec
CommandLine.Model.CommandSpec spec;
@@ -37,11 +37,15 @@ public class StandAloneCommand extends AbstractServerCommand {
@Inject
private StartExecutorService startExecutorService;
@Inject
@Nullable
private FileChangedEventListener fileWatcher;
@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 thread")
private Integer workerThread;
@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.")
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")
private List<String> skipExecutions = Collections.emptyList();
@@ -64,6 +68,9 @@ public class StandAloneCommand extends AbstractServerCommand {
@CommandLine.Option(names = {"--not-start-executors"}, split=",", description = "a list of Kafka Stream executors to not start, separated by a command. Use it only with the Kafka queue, for debugging purpose.")
private List<String> notStartExecutors = Collections.emptyList();
@CommandLine.Option(names = {"--no-indexer"}, description = "Flag to disable starting an embedded indexer.")
boolean indexerDisabled = false;
@Override
public boolean isFlowAutoLoadEnabled() {
return !tutorialsDisabled;
@@ -82,11 +89,11 @@ public class StandAloneCommand extends AbstractServerCommand {
this.skipExecutionService.setSkipFlows(skipFlows);
this.skipExecutionService.setSkipNamespaces(skipNamespaces);
this.skipExecutionService.setSkipTenants(skipTenants);
this.startExecutorService.applyOptions(startExecutors, notStartExecutors);
KestraContext.getContext().injectWorkerConfigs(workerThread, null);
super.call();
this.shutdownHook(() -> KestraContext.getContext().shutdown());
if (flowPath != null) {
try {
@@ -99,14 +106,22 @@ public class StandAloneCommand extends AbstractServerCommand {
StandAloneRunner standAloneRunner = applicationContext.getBean(StandAloneRunner.class);
if (this.workerThread != null && this.workerThread == 0) {
if (this.workerThread == 0) {
standAloneRunner.setWorkerEnabled(false);
} else if (this.workerThread != null) {
} else {
standAloneRunner.setWorkerThread(this.workerThread);
}
if (this.indexerDisabled) {
standAloneRunner.setIndexerEnabled(false);
}
standAloneRunner.run();
if (fileWatcher != null) {
fileWatcher.startListeningFromConfig();
}
Await.until(() -> !this.applicationContext.isRunning());
return 0;

View File

@@ -1,9 +1,10 @@
package io.kestra.cli.commands.servers;
import com.google.common.collect.ImmutableMap;
import io.kestra.core.contexts.KestraContext;
import io.kestra.core.models.ServerType;
import io.kestra.core.runners.IndexerInterface;
import io.kestra.core.utils.Await;
import io.kestra.core.utils.ExecutorsUtils;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
@@ -11,19 +12,27 @@ import picocli.CommandLine;
import picocli.CommandLine.Option;
import java.util.Map;
import java.util.concurrent.ExecutorService;
@CommandLine.Command(
name = "webserver",
description = "start the webserver"
description = "Start the Kestra webserver"
)
@Slf4j
public class WebServerCommand extends AbstractServerCommand {
private ExecutorService poolExecutor;
@Inject
private ApplicationContext applicationContext;
@Inject
private ExecutorsUtils executorsUtils;
@Option(names = {"--no-tutorials"}, description = "Flag to disable auto-loading of tutorial flows.")
boolean tutorialsDisabled = false;
@Option(names = {"--no-indexer"}, description = "Flag to disable starting an embedded indexer.")
boolean indexerDisabled = false;
@Override
public boolean isFlowAutoLoadEnabled() {
@@ -40,8 +49,16 @@ public class WebServerCommand extends AbstractServerCommand {
@Override
public Integer call() throws Exception {
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));
shutdownHook(false, () -> poolExecutor.shutdown());
}
log.info("Webserver started");
this.shutdownHook(() -> KestraContext.getContext().shutdown());
Await.until(() -> !this.applicationContext.isRunning());
return 0;
}

View File

@@ -7,26 +7,25 @@ import io.kestra.core.runners.Worker;
import io.kestra.core.utils.Await;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import picocli.CommandLine.Option;
import java.util.Map;
import java.util.UUID;
@CommandLine.Command(
name = "worker",
description = "start a worker"
description = "Start the Kestra worker"
)
@Slf4j
public class WorkerCommand extends AbstractServerCommand {
@Inject
private ApplicationContext applicationContext;
@CommandLine.Option(names = {"-t", "--thread"}, description = "the max number of concurrent threads to launch")
private int thread = Runtime.getRuntime().availableProcessors() * 2;
@Option(names = {"-t", "--thread"}, description = "The max number of worker threads, defaults to four times the number of available processors")
private int thread = defaultWorkerThread();
@CommandLine.Option(names = {"-g", "--worker-group"}, description = "the worker group key, must match the regex [a-zA-Z0-9_-]+ (EE only)")
@Option(names = {"-g", "--worker-group"}, description = "The worker group key, must match the regex [a-zA-Z0-9_-]+ (EE only)")
private String workerGroupKey = null;
@SuppressWarnings("unused")
@@ -38,8 +37,11 @@ public class WorkerCommand extends AbstractServerCommand {
@Override
public Integer call() throws Exception {
KestraContext.getContext().injectWorkerConfigs(thread, workerGroupKey);
super.call();
this.shutdownHook(() -> KestraContext.getContext().shutdown());
if (this.workerGroupKey != null && !this.workerGroupKey.matches("[a-zA-Z0-9_-]+")) {
throw new IllegalArgumentException("The --worker-group option must match the [a-zA-Z0-9_-]+ pattern");
}
@@ -51,15 +53,12 @@ public class WorkerCommand extends AbstractServerCommand {
worker.run();
if (this.workerGroupKey != null) {
log.info("Worker started with {} thread(s) in group '{}'", this.thread, this.workerGroupKey);
}
else {
log.info("Worker started with {} thread(s)", this.thread);
}
Await.until(() -> !this.applicationContext.isRunning());
return 0;
}
public String workerGroupKey() {
return workerGroupKey;
}
}

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,10 +10,11 @@ import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.util.List;
import java.util.Objects;
@CommandLine.Command(
name = "reindex",
description = "reindex all records of a type: read them from the database then update them",
description = "Reindex all records of a type: read them from the database then update them",
mixinStandardHelpOptions = true
)
@Slf4j
@@ -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

@@ -15,6 +15,8 @@ import picocli.CommandLine;
import java.util.Optional;
import static io.kestra.core.utils.Rethrow.throwConsumer;
@CommandLine.Command(
name = "submit-queued-execution",
description = {"Submit all queued execution to the executor",
@@ -49,7 +51,7 @@ public class SubmitQueuedCommand extends AbstractCommand {
var executionQueuedStorage = applicationContext.getBean(AbstractJdbcExecutionQueuedStorage.class);
for (ExecutionQueued queued : executionQueuedStorage.getAllForAllTenants()) {
executionQueuedStorage.pop(queued.getTenantId(), queued.getNamespace(), queued.getFlowId(), execution -> executionQueue.emit(execution.withState(State.Type.CREATED)));
executionQueuedStorage.pop(queued.getTenantId(), queued.getNamespace(), queued.getFlowId(), throwConsumer(execution -> executionQueue.emit(execution.withState(State.Type.CREATED))));
cpt++;
}
}

View File

@@ -1,6 +1,7 @@
package io.kestra.cli.commands.sys;
import io.kestra.cli.commands.sys.database.DatabaseCommand;
import io.kestra.cli.commands.sys.statestore.StateStoreCommand;
import io.micronaut.configuration.picocli.PicocliRunner;
import lombok.extern.slf4j.Slf4j;
import io.kestra.cli.AbstractCommand;
@@ -9,12 +10,13 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "sys",
description = "handle systems maintenance",
description = "Manage system maintenance mode",
mixinStandardHelpOptions = true,
subcommands = {
ReindexCommand.class,
DatabaseCommand.class,
SubmitQueuedCommand.class
SubmitQueuedCommand.class,
StateStoreCommand.class
}
)
@Slf4j

View File

@@ -8,7 +8,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "database",
description = "manage Kestra database",
description = "Manage Kestra database",
mixinStandardHelpOptions = true,
subcommands = {
DatabaseMigrateCommand.class,

View File

@@ -1,6 +1,5 @@
package io.kestra.cli.commands.sys.database;
import ch.qos.logback.classic.Level;
import io.kestra.cli.AbstractCommand;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;

View File

@@ -0,0 +1,27 @@
package io.kestra.cli.commands.sys.statestore;
import io.kestra.cli.AbstractCommand;
import io.kestra.cli.App;
import io.micronaut.configuration.picocli.PicocliRunner;
import lombok.SneakyThrows;
import picocli.CommandLine;
@CommandLine.Command(
name = "state-store",
description = "Manage Kestra State Store",
mixinStandardHelpOptions = true,
subcommands = {
StateStoreMigrateCommand.class,
}
)
public class StateStoreCommand extends AbstractCommand {
@SneakyThrows
@Override
public Integer call() throws Exception {
super.call();
PicocliRunner.call(App.class, "sys", "state-store", "--help");
return 0;
}
}

View File

@@ -0,0 +1,81 @@
package io.kestra.cli.commands.sys.statestore;
import io.kestra.cli.AbstractCommand;
import io.kestra.core.models.flows.Flow;
import io.kestra.core.repositories.FlowRepositoryInterface;
import io.kestra.core.runners.RunContext;
import io.kestra.core.runners.RunContextFactory;
import io.kestra.core.storages.StateStore;
import io.kestra.core.storages.StorageInterface;
import io.kestra.core.utils.Slugify;
import io.micronaut.context.ApplicationContext;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
@CommandLine.Command(
name = "migrate",
description = "Migrate old state store files to use the new KV Store implementation.",
mixinStandardHelpOptions = true
)
@Slf4j
public class StateStoreMigrateCommand extends AbstractCommand {
@Inject
private ApplicationContext applicationContext;
@Override
public Integer call() throws Exception {
super.call();
FlowRepositoryInterface flowRepository = this.applicationContext.getBean(FlowRepositoryInterface.class);
StorageInterface storageInterface = this.applicationContext.getBean(StorageInterface.class);
RunContextFactory runContextFactory = this.applicationContext.getBean(RunContextFactory.class);
flowRepository.findAllForAllTenants().stream().map(flow -> Map.entry(flow, List.of(
URI.create("/" + flow.getNamespace().replace(".", "/") + "/" + Slugify.of(flow.getId()) + "/states"),
URI.create("/" + flow.getNamespace().replace(".", "/") + "/states")
))).map(potentialStateStoreUrisForAFlow -> Map.entry(potentialStateStoreUrisForAFlow.getKey(), potentialStateStoreUrisForAFlow.getValue().stream().flatMap(uri -> {
try {
return storageInterface.allByPrefix(potentialStateStoreUrisForAFlow.getKey().getTenantId(), potentialStateStoreUrisForAFlow.getKey().getNamespace(), uri, false).stream();
} catch (IOException e) {
return Stream.empty();
}
}).toList())).forEach(stateStoreFileUrisForAFlow -> stateStoreFileUrisForAFlow.getValue().forEach(stateStoreFileUri -> {
Flow flow = stateStoreFileUrisForAFlow.getKey();
String[] flowQualifierWithStateQualifiers = stateStoreFileUri.getPath().split("/states/");
String[] statesUriPart = flowQualifierWithStateQualifiers[1].split("/");
String stateName = statesUriPart[0];
String taskRunValue = statesUriPart.length > 2 ? statesUriPart[1] : null;
String stateSubName = statesUriPart[statesUriPart.length - 1];
boolean flowScoped = flowQualifierWithStateQualifiers[0].endsWith("/" + flow.getId());
StateStore stateStore = new StateStore(runContext(runContextFactory, flow), false);
try (InputStream is = storageInterface.get(flow.getTenantId(), flow.getNamespace(), stateStoreFileUri)) {
stateStore.putState(flowScoped, stateName, stateSubName, taskRunValue, is.readAllBytes());
storageInterface.delete(flow.getTenantId(), flow.getNamespace(), stateStoreFileUri);
} catch (IOException e) {
throw new RuntimeException(e);
}
}));
stdOut("Successfully ran the state-store migration.");
return 0;
}
private RunContext runContext(RunContextFactory runContextFactory, Flow flow) {
Map<String, String> flowVariables = new HashMap<>();
flowVariables.put("tenantId", flow.getTenantId());
flowVariables.put("id", flow.getId());
flowVariables.put("namespace", flow.getNamespace());
return runContextFactory.of(flow, Map.of("flow", flowVariables));
}
}

View File

@@ -11,7 +11,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "template",
description = "handle templates",
description = "Manage templates",
mixinStandardHelpOptions = true,
subcommands = {
TemplateNamespaceCommand.class,

View File

@@ -1,6 +1,7 @@
package io.kestra.cli.commands.templates;
import io.kestra.cli.AbstractApiCommand;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.core.models.templates.TemplateEnabled;
import io.micronaut.context.ApplicationContext;
import io.micronaut.http.HttpRequest;
@@ -18,7 +19,7 @@ import java.nio.file.Path;
@CommandLine.Command(
name = "export",
description = "export templates to a zip file",
description = "Export templates to a ZIP file",
mixinStandardHelpOptions = true
)
@Slf4j
@@ -30,10 +31,10 @@ public class TemplateExportCommand extends AbstractApiCommand {
@Inject
private ApplicationContext applicationContext;
@CommandLine.Option(names = {"--namespace"}, description = "the namespace of templates to export")
@CommandLine.Option(names = {"--namespace"}, description = "The namespace of templates to export")
public String namespace;
@CommandLine.Parameters(index = "0", description = "the directory to export the file to")
@CommandLine.Parameters(index = "0", description = "The directory to export the file to")
public Path directory;
@Override
@@ -52,7 +53,7 @@ public class TemplateExportCommand extends AbstractApiCommand {
stdOut("Exporting template(s) for namespace '" + namespace + "' successfully done !");
} catch (HttpClientResponseException e) {
TemplateValidateCommand.handleHttpException(e, "template");
AbstractValidateCommand.handleHttpException(e, "template");
return 1;
}

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.YamlFlowParser;
import jakarta.inject.Inject;
import picocli.CommandLine;
@@ -12,12 +11,10 @@ import java.util.Collections;
@CommandLine.Command(
name = "validate",
description = "validate a template"
description = "Validate a template"
)
@TemplateEnabled
public class TemplateValidateCommand extends AbstractValidateCommand {
@Inject
private YamlFlowParser yamlFlowParser;
@Inject
private ModelValidator modelValidator;
@@ -26,12 +23,12 @@ public class TemplateValidateCommand extends AbstractValidateCommand {
public Integer call() throws Exception {
return this.call(
Template.class,
yamlFlowParser,
modelValidator,
(Object object) -> {
Template template = (Template) object;
return template.getNamespace() + " / " + template.getId();
},
(Object object) -> Collections.emptyList(),
(Object object) -> Collections.emptyList()
);
}

View File

@@ -10,7 +10,7 @@ import picocli.CommandLine;
@CommandLine.Command(
name = "namespace",
description = "handle namespace templates",
description = "Manage namespace templates",
mixinStandardHelpOptions = true,
subcommands = {
TemplateNamespaceUpdateCommand.class,

View File

@@ -1,34 +1,31 @@
package io.kestra.cli.commands.templates.namespaces;
import io.kestra.cli.AbstractValidateCommand;
import io.kestra.cli.commands.AbstractServiceNamespaceUpdateCommand;
import io.kestra.cli.commands.templates.TemplateValidateCommand;
import io.kestra.core.models.templates.Template;
import io.kestra.core.models.templates.TemplateEnabled;
import io.kestra.core.serializers.YamlFlowParser;
import io.kestra.core.serializers.YamlParser;
import io.micronaut.core.type.Argument;
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;
import java.nio.file.Files;
import java.util.List;
import java.util.stream.Collectors;
import jakarta.validation.ConstraintViolationException;
@CommandLine.Command(
name = "update",
description = "handle namespace templates",
description = "Update namespace templates",
mixinStandardHelpOptions = true
)
@Slf4j
@TemplateEnabled
public class TemplateNamespaceUpdateCommand extends AbstractServiceNamespaceUpdateCommand {
@Inject
public YamlFlowParser yamlFlowParser;
@Override
public Integer call() throws Exception {
@@ -37,8 +34,8 @@ public class TemplateNamespaceUpdateCommand extends AbstractServiceNamespaceUpda
try (var files = Files.walk(directory)) {
List<Template> templates = files
.filter(Files::isRegularFile)
.filter(YamlFlowParser::isValidExtension)
.map(path -> yamlFlowParser.parse(path.toFile(), Template.class))
.filter(YamlParser::isValidExtension)
.map(path -> YamlParser.parse(path.toFile(), Template.class))
.toList();
if (templates.isEmpty()) {
@@ -57,12 +54,12 @@ public class TemplateNamespaceUpdateCommand extends AbstractServiceNamespaceUpda
stdOut(updated.size() + " template(s) for namespace '" + namespace + "' successfully updated !");
updated.forEach(template -> stdOut("- " + template.getNamespace() + "." + template.getId()));
} catch (HttpClientResponseException e) {
TemplateValidateCommand.handleHttpException(e, "template");
AbstractValidateCommand.handleHttpException(e, "template");
return 1;
}
} catch (ConstraintViolationException e) {
TemplateValidateCommand.handleException(e, "template");
AbstractValidateCommand.handleException(e, "template");
return 1;
}

View File

@@ -1,153 +0,0 @@
package io.kestra.cli.plugins;
import com.google.common.collect.ImmutableList;
import io.micronaut.context.annotation.Value;
import io.micronaut.core.annotation.Nullable;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
import org.eclipse.aether.impl.DefaultServiceLocator;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.resolution.*;
import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
import org.eclipse.aether.spi.connector.transport.TransporterFactory;
import org.eclipse.aether.transport.file.FileTransporterFactory;
import org.eclipse.aether.transport.http.HttpTransporterFactory;
import org.eclipse.aether.util.repository.AuthenticationBuilder;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Singleton
@Slf4j
public class PluginDownloader {
private final List<RepositoryConfig> repositoryConfigs;
private final RepositorySystem system;
private final RepositorySystemSession session;
@Inject
public PluginDownloader(
List<RepositoryConfig> repositoryConfigs,
@Nullable @Value("${kestra.plugins.local-repository-path}") String localRepositoryPath
) {
this.repositoryConfigs = repositoryConfigs;
this.system = repositorySystem();
this.session = repositorySystemSession(system, localRepositoryPath);
}
public void addRepository(RepositoryConfig repositoryConfig) {
this.repositoryConfigs.add(repositoryConfig);
}
public List<URL> resolve(List<String> dependencies) throws MalformedURLException, ArtifactResolutionException, VersionRangeResolutionException {
List<RemoteRepository> repositories = remoteRepositories();
List<ArtifactResult> artifactResults = resolveArtifacts(repositories, dependencies);
List<URL> localUrls = resolveUrls(artifactResults);
log.debug("Resolved Plugin {} with {}", dependencies, localUrls);
return localUrls;
}
private List<RemoteRepository> remoteRepositories() {
return repositoryConfigs
.stream()
.map(repositoryConfig -> {
var build = new RemoteRepository.Builder(
repositoryConfig.getId(),
"default",
repositoryConfig.getUrl()
);
if (repositoryConfig.getBasicAuth() != null) {
var authenticationBuilder = new AuthenticationBuilder();
authenticationBuilder.addUsername(repositoryConfig.getBasicAuth().getUsername());
authenticationBuilder.addPassword(repositoryConfig.getBasicAuth().getPassword());
build.setAuthentication(authenticationBuilder.build());
}
return build.build();
})
.toList();
}
private static RepositorySystem repositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
return locator.getService(RepositorySystem.class);
}
private RepositorySystemSession repositorySystemSession(RepositorySystem system, String localRepositoryPath) {
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
if (localRepositoryPath == null) {
try {
final String tempDirectory = Files.createTempDirectory(this.getClass().getSimpleName().toLowerCase())
.toAbsolutePath()
.toString();
localRepositoryPath = tempDirectory;
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
try {
FileUtils.deleteDirectory(new File(tempDirectory));
} catch (IOException e) {
throw new RuntimeException(e);
}
}));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
LocalRepository localRepo = new LocalRepository(localRepositoryPath);
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
return session;
}
private List<ArtifactResult> resolveArtifacts(List<RemoteRepository> repositories, List<String> dependencies) throws ArtifactResolutionException, VersionRangeResolutionException {
List<ArtifactResult> results = new ArrayList<>(dependencies.size());
for (String dependency: dependencies) {
var artifact = new DefaultArtifact(dependency);
var version = system.resolveVersionRange(session, new VersionRangeRequest(artifact, repositories, null));
var artifactRequest = new ArtifactRequest(
new DefaultArtifact(artifact.getGroupId(), artifact.getArtifactId(), "jar", version.getHighestVersion().toString()),
repositories,
null
);
var artifactResult = system.resolveArtifact(session, artifactRequest);
results.add(artifactResult);
}
return results;
}
private List<URL> resolveUrls(List<ArtifactResult> artifactResults) throws MalformedURLException {
ImmutableList.Builder<URL> urls = ImmutableList.builder();
for (ArtifactResult artifactResult : artifactResults) {
URL url;
url = artifactResult.getArtifact().getFile().toPath().toUri().toURL();
urls.add(url);
}
return urls.build();
}
}

View File

@@ -1,30 +0,0 @@
package io.kestra.cli.plugins;
import io.micronaut.context.annotation.EachProperty;
import io.micronaut.context.annotation.Parameter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@EachProperty("kestra.plugins.repositories")
@Getter
@AllArgsConstructor
@Builder
public class RepositoryConfig {
String id;
String url;
BasicAuth basicAuth;
@Getter
@AllArgsConstructor
public static class BasicAuth {
private String username;
private String password;
}
public RepositoryConfig(@Parameter String id) {
this.id = id;
}
}

View File

@@ -0,0 +1,260 @@
package io.kestra.cli.services;
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.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.inject.Inject;
import jakarta.annotation.Nullable;
import jakarta.inject.Singleton;
import jakarta.validation.ConstraintViolationException;
import lombok.extern.slf4j.Slf4j;
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;
@Singleton
@Slf4j
@Requires(property = "micronaut.io.watch.enabled", value = "true")
public class FileChangedEventListener {
@Nullable
private final FileWatchConfiguration fileWatchConfiguration;
@Nullable
private final WatchService watchService;
@Inject
private FlowRepositoryInterface flowRepositoryInterface;
@Inject
private PluginDefaultService pluginDefaultService;
@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 boolean isStarted = false;
@Inject
public FileChangedEventListener(@Nullable FileWatchConfiguration fileWatchConfiguration, @Nullable WatchService watchService) {
this.fileWatchConfiguration = fileWatchConfiguration;
this.watchService = watchService;
}
public void startListeningFromConfig() throws IOException, InterruptedException {
if (fileWatchConfiguration != null && fileWatchConfiguration.isEnabled()) {
this.flowFilesManager = new LocalFlowFileWatcher(flowRepositoryInterface);
List<Path> paths = fileWatchConfiguration.getPaths();
this.setup(paths);
flowListeners.run();
// Init existing flows not already in files
flowListeners.listen(flows -> {
if (!isStarted) {
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()));
}
}
this.isStarted = true;
}
});
// Listen for new/updated/deleted flows
flowListeners.listen((current, previous) -> {
// If deleted
if (current.isDeleted()) {
this.flows.stream().filter(flowWithPath -> flowWithPath.uidWithoutRevision().equals(current.uidWithoutRevision())).findFirst()
.ifPresent(flowWithPath -> {
deleteFile(Paths.get(flowWithPath.getPath()));
});
this.flows.removeIf(flowWithPath -> flowWithPath.uidWithoutRevision().equals(current.uidWithoutRevision()));
} else {
// if updated/created
Optional<FlowWithPath> flowWithPath = this.flows.stream().filter(fwp -> fwp.uidWithoutRevision().equals(current.uidWithoutRevision())).findFirst();
if (flowWithPath.isPresent()) {
flowToFile(current, Paths.get(flowWithPath.get().getPath()));
} else {
flows.add(FlowWithPath.of(current, this.buildPath(current).toString()));
flowToFile(current, null);
}
}
});
this.startListening(paths);
} else {
log.info("File watching is disabled.");
}
}
public void startListening(List<Path> paths) throws IOException, InterruptedException {
for (Path path : paths) {
path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
}
WatchKey key;
while ((key = watchService.take()) != null) {
for (WatchEvent<?> watchEvent : key.pollEvents()) {
try {
WatchEvent.Kind<?> kind = watchEvent.kind();
Path entry = (Path) watchEvent.context();
if (entry.toString().endsWith(".yml") || entry.toString().endsWith(".yaml")) {
if (kind == StandardWatchEventKinds.ENTRY_CREATE || kind == StandardWatchEventKinds.ENTRY_MODIFY) {
Path filePath = ((Path) key.watchable()).resolve(entry);
if (Files.isDirectory(filePath)) {
loadFlowsFromFolder(filePath);
} else {
try {
String content = Files.readString(filePath, Charset.defaultCharset());
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
if (flows.stream().anyMatch(flowWithPath -> flowWithPath.getPath().equals(filePath.toString()))) {
Optional<FlowWithPath> previous = flows.stream().filter(flowWithPath -> flowWithPath.getPath().equals(filePath.toString())).findFirst();
// Check if Flow from file has id/namespace updated
if (previous.isPresent() && !previous.get().uidWithoutRevision().equals(flow.get().uidWithoutRevision())) {
flows.removeIf(flowWithPath -> flowWithPath.getPath().equals(filePath.toString()));
flowFilesManager.deleteFlow(previous.get().getTenantId(), previous.get().getNamespace(), previous.get().getId());
flows.add(FlowWithPath.of(flow.get(), filePath.toString()));
}
} else {
flows.add(FlowWithPath.of(flow.get(), filePath.toString()));
}
} else {
flows.add(FlowWithPath.of(flow.get(), filePath.toString()));
}
flowFilesManager.createOrUpdateFlow(GenericFlow.fromYaml(tenantId, 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);
} catch (IOException e) {
log.error("Error reading file: {}", entry, e);
}
}
} else {
Path filePath = ((Path) key.watchable()).resolve(entry);
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 (Exception e) {
log.error("Unexpected error while watching flows", e);
}
}
key.reset();
}
}
private void setup(List<Path> folders) {
for (Path folder : folders) {
this.loadFlowsFromFolder(folder);
}
}
private void loadFlowsFromFolder(Path folder) {
try {
Files.walkFileTree(folder, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
dir.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
if (!dir.equals(folder)) {
loadFlowsFromFolder(dir);
}
return FileVisitResult.CONTINUE;
}
@Override
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<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(GenericFlow.fromYaml(tenantId, content));
}
}
return FileVisitResult.CONTINUE;
}
});
log.info("Loaded files from the folder {}", folder);
} catch (IOException e) {
log.error(e.getMessage());
}
}
private void flowToFile(FlowInterface flow, Path path) {
Path defaultPath = path != null ? path : this.buildPath(flow);
try {
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<FlowWithSource> parseFlow(String content, Path entry) {
try {
FlowWithSource flow = pluginDefaultService.parseFlowWithAllDefaults(tenantId, content, false);
modelValidator.validate(flow);
return Optional.of(flow);
} catch (ConstraintViolationException | FlowProcessingException e) {
log.warn("Error while parsing flow: {}", entry, e);
}
return Optional.empty();
}
private void deleteFile(Path file) {
try {
if (Files.deleteIfExists(file)) {
log.info("File {} has been deleted successfully.", file);
} else {
log.warn("File {} does not exist.", file);
}
} catch (IOException e) {
log.error("Error deleting file: {}", file, e);
}
}
private Path buildPath(FlowInterface flow) {
return fileWatchConfiguration.getPaths().getFirst().resolve(flow.uidWithoutRevision() + ".yml");
}
}

View File

@@ -0,0 +1,13 @@
package io.kestra.cli.services;
import io.kestra.core.models.flows.FlowWithSource;
import io.kestra.core.models.flows.GenericFlow;
public interface FlowFilesManager {
FlowWithSource createOrUpdateFlow(GenericFlow flow);
void deleteFlow(FlowWithSource toDelete);
void deleteFlow(String tenantId, String namespace, String id);
}

View File

@@ -0,0 +1,34 @@
package io.kestra.cli.services;
import io.kestra.core.models.flows.FlowWithSource;
import io.kestra.core.models.flows.GenericFlow;
import io.kestra.core.repositories.FlowRepositoryInterface;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class LocalFlowFileWatcher implements FlowFilesManager {
private final FlowRepositoryInterface flowRepository;
public LocalFlowFileWatcher(FlowRepositoryInterface flowRepository) {
this.flowRepository = flowRepository;
}
@Override
public FlowWithSource createOrUpdateFlow(final GenericFlow flow) {
return flowRepository.findById(null, flow.getNamespace(), flow.getId())
.map(previous -> flowRepository.update(flow, previous))
.orElseGet(() -> flowRepository.create(flow));
}
@Override
public void deleteFlow(FlowWithSource toDelete) {
flowRepository.findByIdWithSource(toDelete.getTenantId(), toDelete.getNamespace(), toDelete.getId()).ifPresent(flowRepository::delete);
log.info("Flow {} has been deleted", toDelete.getId());
}
@Override
public void deleteFlow(String tenantId, String namespace, String id) {
flowRepository.findByIdWithSource(tenantId, namespace, id).ifPresent(flowRepository::delete);
log.info("Flow {} has been deleted", id);
}
}

View File

@@ -1,6 +1,9 @@
micronaut:
application:
name: kestra
# Disable Micronaut Open Telemetry
otel:
enabled: false
router:
static-resources:
swagger:
@@ -22,6 +25,7 @@ micronaut:
idle-timeout: 60m
netty:
max-chunk-size: 10MB
max-header-size: 32768 # increased from the default of 8k
responses:
file:
cache-seconds: 86400
@@ -36,6 +40,7 @@ micronaut:
exclusions:
- /ui/.+
- /health
- /health/.+
- /prometheus
http-version: HTTP_1_1
caches:
@@ -69,6 +74,13 @@ 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:
export:
otlp:
enabled: false
# url: http://localhost:4318/v1/metrics
jackson:
serialization:
writeDatesAsTimestamps: false
@@ -123,6 +135,7 @@ kestra:
delay: 1s
maxDelay: ""
jdbc:
queues:
min-poll-interval: 25ms
max-poll-interval: 1000ms
@@ -132,6 +145,11 @@ kestra:
initial-delay: 1h
fixed-delay: 1h
retention: 7d
types:
- type : io.kestra.core.models.executions.LogEntry
retention: 1h
- type: io.kestra.core.models.executions.MetricEntry
retention: 1h
plugins:
repositories:
@@ -150,13 +168,16 @@ kestra:
values:
recoverMissedSchedules: ALL
variables:
env-vars-prefix: KESTRA_
env-vars-prefix: ENV_
cache-enabled: true
cache-size: 1000
metrics:
prefix: kestra
traces:
root: DISABLED
server:
basic-auth:
enabled: false
@@ -186,3 +207,17 @@ kestra:
uri: https://api.kestra.io/v1/reports/usages
initial-delay: 5m
fixed-delay: 1h
hidden-labels:
prefixes:
- system.
- internal.
otel:
exclusions:
- /ping
- /metrics
- /health
- /env
- /prometheus
propagators: tracecontext, baggage

View File

@@ -0,0 +1,63 @@
package io.kestra.cli;
import io.kestra.core.models.ServerType;
import io.micronaut.configuration.picocli.MicronautFactory;
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.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import picocli.CommandLine;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
class AppTest {
@Test
void testHelp() {
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, Environment.TEST)) {
PicocliRunner.call(App.class, ctx, "--help");
assertThat(out.toString()).contains("kestra");
}
}
@ParameterizedTest
@ValueSource(strings = {"standalone", "executor", "indexer", "scheduler", "webserver", "worker", "local"})
void testServerCommandHelp(String serverType) {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
final String[] args = new String[]{"server", serverType, "--help"};
try (ApplicationContext ctx = App.applicationContext(App.class, 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);
}
}
@Test
void missingRequiredParamsPrintHelpInsteadOfException() {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setErr(new PrintStream(out));
final String[] argsWithMissingParams = new String[]{"flow", "namespace", "update"};
try (ApplicationContext ctx = App.applicationContext(App.class, argsWithMissingParams)) {
new CommandLine(App.class, new MicronautFactory(ctx)).execute(argsWithMissingParams);
assertThat(out.toString()).startsWith("Missing required parameters: ");
assertThat(out.toString()).contains("Usage: kestra flow namespace update ");
assertThat(out.toString()).doesNotContain("MissingParameterException: ");
}
}
}

View File

@@ -8,8 +8,7 @@ import org.junit.jupiter.api.Test;
import java.util.Map;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.assertj.core.api.Assertions.assertThat;
class ServerCommandValidatorTest {
@@ -40,8 +39,8 @@ class ServerCommandValidatorTest {
.start()
);
final Throwable rootException = getRootException(exception);
assertThat(rootException.getClass(), is(ServerCommandValidator.ServerCommandException.class));
assertThat(rootException.getMessage(), is("Incomplete server configuration - missing required properties"));
assertThat(rootException.getClass()).isEqualTo(ServerCommandValidator.ServerCommandException.class);
assertThat(rootException.getMessage()).isEqualTo("Incomplete server configuration - missing required properties");
}
private Throwable getRootException(Throwable exception) {

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 ConfigPropertiesCommandTest {
@Test
@@ -20,8 +19,8 @@ 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");
}
}
}

Some files were not shown because too many files have changed in this diff Show More