This should never happen as normally we should have taskrun already in place whenever we call this method.
But a user report seeing it and I also already seen it once or two. I think it can happen when there is an unexpected event (like a restart or a bug somewhere else that lead to an execution in an unexpected state) so it's better to fix it to be more resilient.
Fixes#11703
* Fix the issue of downloading the file with space in name
* fix(core): encode filenames with spaces in URI and add test
* fix: Indent Issue and remove the empty unnecessary lines
* Resolve the error in DownloadFileTest
* Fix: DownloadFileTest issue
* resolve the weirdName issue
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>
By evaluating multiple condition in a separate queue, we serialize their evaluation which avoir races when we compute the outputs for flow triggers.
This is because evaluation is a multi step process: first you get the existing condtion, then you evaluate, then you store the result. As this is not guarded by a lock you must not do it concurrently.
The race can still occurs if muiltiple executors run but this is less probable. A re-implementation would be needed probably in 2.0 for that.
Fixes https://github.com/kestra-io/kestra-ee/issues/4602
* fix: set Label schema definition as list of label only, deprecate old serdes for it and add schema definition for label
related to kestra-io/client-sdk#62
* fix: Modified the @Schema to avoid remove the map.class definition in schema annotation
* feat: implement Flows as a DataSource for dashboards
* chore: review changes
* fix: method signature changes from another commit apply in new flow fetchData method
There was two issues here:
- When killing a queued execution, the associated ExecutionQueued record was not deleted
- When terminating a killed execution that has concurrency limit, we poped an execution even if the execution was not running (no associated ExecutionRunning record) which may exceed concurrency limit
Fixes#11574
I also fix the TestRunnerUtils that should test the predicate before returning the last execution not after.
* using element plus native splitter el-splitter for resing the side panel
* chore
* ForEachItem iteration now starts with 0 instead of 1
* updated the tests for "ForEachItem" to handle iteration starting from 0
* update TaskRun.java to start iteration with 0
* forEachItem test case fixed
* Resolved task also need to starts iteration at 0
---------
Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
* fix(core): Add warning logs for mismatched (Parent-Subflow) inputs for subflow plugin.
* feat(test): added JUnit support for trigger testing via @EvaluateTrigger annotation
* refactor(test): improve test to assert on Execution Creation
* fix(tests): add sleep before restarting to make sure the queue is clean
* fix(tests): add retry on a flaky test
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* fix(API): implement the exist for tenant method with no ACL filter
* clean(API): change method name to include the no acl information
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* fix(test): disable flaky test and add configuration to the ELS indexer poll duration
* fix(test): retry a flaky test and fix a flaky
* feat(test): disable a test until we have time to fix the bug
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
This will log this kind of line at startup, helping to understand possible infrastructure limitation by looking at the starting logs.
```
14:38:17.018 INFO main i.k.c.c.s.AbstractServerCommand Machine information: 16 available cpu(s), 2048MB max memory, Java version 21.0.5+11-LTS
```
- Logs errors from the Executor catched execution
- Logs errors from the Scheduler catched execution
- Avoid most places where the warning "unable to change state already..." could occur
- Log using the run context logger flow issues from executable tasks so they appears inside execution logs
* fix(core): Add warning logs for mismatched (Parent-Subflow) inputs for subflow plugin.
* feat: add check and log to FlowInputOutput.java
* enhancement: avoid unnecessary input validation in ExecutableUtils.subflowExecution() when no mismatches exist
* feat(tests): rework runner utils to not use the queue during testing
* feat(tests): rework runner utils to not use the queue during testing
* test: rework RetryCaseTest to not rely on executionQueue
* fix(tests): don't catch the Queue exception
* fix(tests): don't catch the Queue exception
* fix compile
* fix(test): concurrency error and made runner test parallel ready
* fix(tests): remove test instance
* feat(tests): use Test Runner Utils
* fix(tests): flaky tests
* fix(test): flaky tests
* feat(tests): rework runner utils to not use the queue during testing
* feat(tests): rework runner utils to not use the queue during testing
* test: rework RetryCaseTest to not rely on executionQueue
* fix(tests): don't catch the Queue exception
* fix(tests): don't catch the Queue exception
* fix compile
* fix(test): concurrency error and made runner test parallel ready
* fix(tests): remove test instance
* feat(tests): use Test Runner Utils
* fix(tests): flaky tests
* fix(test): flaky tests
* fix(tests): flaky set test
* fix(tests): remove RunnerUtils
* fix(tests): fix flaky
* feat(test): rework runner tests to remove the queue usage
* feat(test): fix a flaky and remove parallelism from mysql test suit
* fix(tests): flaky tests
* clean(tests): unwanted test
* add debug exec when fail
* feat(tests): add thread to mysql thread pool
* fix(test): flaky and disable a test
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
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>
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>
* nanoid function
* nanoid function
* Update core/src/main/java/io/kestra/core/runners/pebble/functions/NanoIDFunction.java
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
* Update core/src/test/java/io/kestra/core/runners/pebble/functions/NanoIDFuntionTest.java
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
* fix: nanoId to parse Long to work with Kestra yaml
---------
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
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>
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>
As if it's not updated in the database, it would not be detected as changed so that terminal actions (like purge) would not be done.
Fixes #11022Fixes#11025Fixes#8143
* test: make AbstractExecutionRepositoryTest parallelizable
* feat(tests): play jdbc h2 tests in parallel
* fix(tests): failing unit tests
* tests: add await until timeout on some tests
* fix(tests): failing unit tests
* fix(tests): failing unit tests
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Nicolas K. <nk_mikmak@hotmail.com>
This table contains executions for flows that have a concurrency that are currently running.
It has been added in 0.24 but in that release there was a bug that may prevent some records to being correctly removed from this table.
To fix that, we truncate it once.
* test: parallelize AbstractRunnerTest
* test: add TestsUtils.randomTenant(..) function
* test: i think i found a bug
* revert debug
* test: add comment on potential bug, make test pass
* test: fix test metadata
* test: unflaky PluginDefaultServiceTest by separating class
* test: add log on JdbcServiceLivenessCoordinatorTest to debug
* test: cleanup debug log
* fix
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>
- advance on #11264
* feat(ci-cd): play tests in parallel and synchronize plugin registry init
* fix(tests): change memory to h2 because the configuration have changed
* feat(tests): use tenant id to run runner tests in parallel
* run AbstractRunnerTest test methods in parallel
* feat(tests): use tenant id to run runner tests in parallel
* feat(tests): remove unwanted generated files
---------
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Make CRC32 calculation for lazy plugin JAR files
to avoid excessive startup time and performance impact.
Avoid byte buffer reallocation while computing CRC32.
- this will probably fix https://github.com/kestra-io/kestra-ee/issues/4980
the issue was recursiveFlowTopology was returning a lot of duplicates, it was aggravated when having many Flows and multiple Flow triggers
### What I did
- Improved the exception message in HttpFunction.java to make debugging easier.
### Why
- The original message was too generic. This change makes it clearer where the issue occurs.
* fix(docs): correct core properties and other docs
Correct grammar, punctuation, and consistency
* Apply suggestions from code review
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
* Apply suggestions from code review
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
* Apply suggestions from code review
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
---------
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
Compute a quick CRC32 of each plugin based on the Central Directory
of the JarFile to ensure change detection - allowing re-upload
of a same plugin version (EE)
Fix: kestra-io/kestra-ee#4925Fix: kestra-io/kestra-ee#4882
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(docs): fix grammar and punctuation in core storage
* Apply suggestions from code review
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
---------
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(storage): delete the metadata with the key when we delete an KV store entry
* Update core/src/main/java/io/kestra/core/storages/kv/InternalKVStore.java
Co-authored-by: brian-mulier-p <bmmulier@hotmail.fr>
* fix(storage): fix typo
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: brian-mulier-p <bmmulier@hotmail.fr>
Closes https://github.com/kestra-io/kestra-ee/issues/3270
This allow listening to the QUEUED state on the flow trigger.
This also fixes an issue that when concurrency limit is setup, you would not listen to the RUNNING state.
* feat(API): add a new endpoint to replay and execution / task with new inputs
* clean(API): code review
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
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>
Fixes#9794
The Pause task was previously immediatly termindated without taken into account any errors or finally block.
To allow processing those blocks, we need to store the terminated state in the output, then use it to resolve the final state.
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>
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>
This PR modify our existing CI to allow publishing our docker image with 2 semver tags.
Example: for a CI on a tag v0.24.99 it will push both tags v0.24.99 and v0.24.
When this CI is settled on this repo (after one micro release for example), I will do the same for EE.
What has been done:
merge docker.yml into workflow-publish-docker.yml
make workflow-publish-docker.yml handle both tags (releases) and develop CI
when in a tag CI, extract the minor version, push it as well as the full vMAJOR.MINOR.PATCH version (see the related issue Add Multiple Semantic Version (SemVer) Tags for Docker Images #10575)
* refactor(core): new No Data page when no versioned plugins
* chore(core): localize to languages other than english (#10752)
Co-authored-by: GitHub Action <actions@github.com>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
Ensure that preconditions are always re-rendered for any
new executions
Changes:
* add new fluent skipCache methods on RunContextProperty and Property
classes
Fix: #10651
Parallel flowable tasks like `Parallel`, `Dag` and `ForEach` are racy. When a task fail in a branch, other concurrent branches that have flowable may never ends.
We make sure that all children are terminated when a flowable is itself terminated.
Fixes#6780
* feat(storages): #10636 add get path without tenant id
* feat(storages): #10636 remove first / from get path method
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* wip(storages): add non tenant dependant method to storage interface
* feat(storages): #10636 add instance method to retrieve resources without the tenant id
* fix(stores): #4353 failing unit tests after now that tenant id can't be null
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
This is because the execution is never considered fully terminated so concurrency limit is not handled properly.
This should also affect SLA, trigger lock, and other cleaning stuff.
The root issue is that, with a worker task from afterExecution, there are no other update on the execution itself (as it's already terminated) so no execution messages are again processed by the executor.
Because of that, the worker task result message from the afterExecution block is the last message, but unfortunatly as messages from the worker task result have no flow attached, the computation of the final termination is incorrect.
The solution is to load the flow if null inside the executor and the execution is terminated which should only occurs inside afterExecution.
Fixes#10657Fixes#8459Fixes#8609
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>
This occurs in Postgres using the `\u0000` unicode sequence. Postgres refuse to store any JSONB with this sequence as it has no textual representation.
We now properly detect that and fail the task.
Fixes#10326
* refactor(namespace): migrate namespace module to pinia
* refactor(namespaces): override the store and fix the test
* fix: test in good way
* refactor: rename action as ee
* refactor: state and action is different
* refactor: namespaces store in composition API and composable to use the common state, actions
* fix: export validate
Ensure that JDBC queue records are committed to the consumer
after processing. This fixes a rare issue where executions could be blocked after a runner crash.
* feat(stores): #4353 list all KV for namespace and parent namespaces
* feat(stores): #4353 list all KV for namespace and parent namespaces
* feat(stores): #4353 list all KV for namespace and parent namespaces
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
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>
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>
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(tests): rework basic auth service test
* fix(tests): clean basic auth service test
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
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>
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>
As we deprecate the `extension` property but still have a default for it, the warning is always disaply.
Removing the default and applying only when needed fixes the issue.
Fixes#10361
When you use flow watching, a file can be updated then deleted, if it occurs quickly you could have a modified event, read the file then have a file not found exception as it has been deleted.
We should delete the flow in this case.
This has been detected because the related tests are flaky, doing that reduce falkiness of the related tests
* fix(core): amend misc label-related issues
* re-enabled bulk update of label value
* re-enabled merging flow-execution labels by key
* made duplicated keys rejection readable
* forced multiple validations within `RequestUtils`
* ensured existing labels can be overriden
* added multiple tests validating complex scenarios
BREAKING CHANGE: switched from first to last label value override
BREAKING CHANGE: preventing empty key/value labels
BREAKING CHANGE: preventing whitespace in key
* fix(core): reflect feedback
* Deduplicated a list inside the `Labels` task.
* Worked around label mutation at `Worker`.
* Attempted to deduplicate labels within `Execution` as possible.
* fix(core): remove irrelevant changes
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>
This is due to the fact that we now process the execution queue concurrently so there is a race when counting currently running executions. This can be seen easily using a ForEachItem as it could create tens or hundreds of executions almost instantly leading to almost all those executions started as they would all see 0 executions running...
Using a dedicated execution running queue, as done in EE, would serialize the messages and fix the issue.
However, if using multiple executor instances and concurrency limit = 1, there is a theoretical race as no locks will be done if no execution is running. A max surge of executions could be as high as the number of executor but this race is less probable to happen in real world scenario.
Fixes#10167
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(cli): #10062 add tenant to load flows properly at the startup
* fix(cli): #10062 add fallback tenant to ee service
* fix(cli): #10062 use tenant id in all cli
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
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>
* chore(test): Improved TestsUtils and added more tests for coverage in ExecutionControllerRunnerTest
* fix: revert testUtils + reduce sleep time
* fix: replace 2s sleep to 250ms
In some test situation, awaitExecution may receive old messages so we strenghten the predicate to be sure to wait for the correct execution: the one that ends successfully
When a flow fail and is restarted and contains either a finally or an afterExecution block, those are not resetted so the restart will skip all task and terminate the flow.
The fix will reset the status of those tasks so they are restarted.
Fixes#10155
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>
Use the part name for the input ID, this is a BC.
Use the filename attribute of the part for creating the file inside the internal storage.
Detect previous usage of part name and filename and emit a deprecation warning.
* feat(core): add troubleshooting button and doc
* fix: add ?
* fix: type warn
* chore(core): localize to languages other than english (#10193)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
* fix(core): update text from user to account.
* chore(core): localize to languages other than english (#10188)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
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>
This avoid potential connection leak by closing them if nothing happen inside it.
These is very unlickly to happen but as some follow endpoint may have races, for ex an execution ends between the time we fetch it and start listening to its event, this is better to add this as a safety net.
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(core): fixes some design tweaks for Ai Agent
* minor tweaks
* fix: show prompt only when AI is enabled.
* fix: dark button
* remove
* fix(core): repair GlobalSearch
* fix(ai): swap shortcut to CTRL + ALT + SHIFT + K to avoid collisions
* fix: add key shortcuts in dropdown
* fix(ui): update AI width , toggle shortcut and editor top spacing
* fix: en.json
---------
Co-authored-by: brian.mulier <bmmulier@hotmail.fr>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* feat(executions): added the ui part for being able to unqueue exeution to different state
---------
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
* feat(pebble): add a timestampMilli pebble function
* feat(test): add a timestampMilli pebble function test
* fix(docs): fix typo
* feat(docs): add a timestampMilli pebble function docs
---------
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
* test(e2e): include E2E tests in PR CI
* Update e2e.yml to fix report
* tests(e2e): video and trace on failure
* tests(e2e): unflaky assertion exec
* tests(e2e): slowMo 100ms
As discussed with Bart it is not helping us, it is often red and the conf is not right, and anyway he believes codecov on frontend is not easy and perfect
from Bart: Nuance: I believe that having code coverage on Frontend is a great tool to see where we should track more, but having it as a metric is very unproductive.
The only thing I care about being tested are:
if a component renders at all
what it looks like
... interactions
None of this is covered by code lines.
We could have a demand for 10% coverage of every patch and that's it.
A flowable may compute its outputs before it is terminated. In this case, they can be wiped out when we compute the outputs when terminated.
So we need to merge the maps.
* fix(security): add back www-authenticate header
* fix basic auth again
* fix: if setup is not done go to setup
* fix(security): don't persist basic auth config if already persisted
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
- When creating an execution, you can pass a breakpoint of the form `taskId.value` and an execution kind.
- An execution with a breakpoint will be suspended in the `BREAKPOINT` state when arriving at the point where the breakpoint task should be executed
- You can resume an execution from a breakpoint, this would resume the execution and remove the existing breakpoint. At this time a new breakpoint can be passed.
- You can pass a breakpoint when replaying an execution.
Part-of: https://github.com/kestra-io/kestra-ee/issues/1547
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>
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>
* chore(core): localize to languages other than english (#9966)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(security) #4311 add basic auth whitelist for config and add new config parameter for basic auth initialized
* fix(security) #4311 failing unit tests
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* feat(core): introducing OSS authentication
* use pinia
* fix: error message
* fix logo
* fix import
* fix: i18n
* feat: show dialog fter 30days and send to login page if basicauth is true
* fix: minor tweaks
* fix(ui): ensure email and password are required.
* feat(security)!: make basic auth required on OSS
* clean(security)!: put the auth filter code into a publisher
* clean(security)!: add unit tests
* fix(core): merge
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
We created miltiple worker job queue because the bean was in the prototype scope.
This was needed only for tests as they are closing it.
Switching to singleton and rebuilding the context of the test that needs it fixes the issue.
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>
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>
The exception message is already included in the payload returned from the response, so we don't have to include it in the HTTP Reason phrase. This leads to a wrong error message format in the UI which is in the form {Reason}: {Error Message}. With the current code Reason=Error Message
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>
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>
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>
In case multiple instances of the executor are started, the execution delay loop and the monitoring SLA loop have a risk of duplicate execution resume or execution SLA violation computation.
This could create some race conditions and duplicate execution update.
But this may also risk to create some deadlocks as two instances of the executor may try to lock the same exection to restart it (or fail it due to SLA).
Automatically fetch namespace files from URI with the 'nsfile' scheme.
The authority allow to fetch file from another namespace.
The following has been done:
- Supports using nsfile inside `from`
- Supports using nsfile inside input files
- Supports using nsfile as a FILE input defaults
- Supports using nsfile inside the Pebble files functions
Closes: #9741
* added steps in bar chart
* date issue fixed
* cohre: minor tweak
* added stepsize for Bar.ue as well
---------
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
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>
This is because the executor didn't have the flow inside it so the execution is not correctly terminated.
It may fix other issues (like flow triggers, purge, ...)
Fixes#9618
This would facilitate dev experience as he would be able to directly use a typed object not a Map.
This will not be used inside a Kestra instance as deserialization would always deserialize to a Map as the `from` attribute is an Object.
* fix(triggers): #4110 NPE when disable trigger with empty body
* fix(triggers): #4110 unit tests
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* fix(core): #9609 delete tutorial flows and triggers before migrating the database
* fix(core): #9609 delete tutorial flows and triggers before migrating the database for EE version
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* feat(repositories): clean and fix query filters
* fix(core): #4106 Clean and add unit tests to query filters
* clean(core): format string more cleanly
* fix(core): unit test failing on mysql flow repository
* feat(core): #4106 update ui filters
* fix(ui): add date filter on flows back
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
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>
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>
Make ExecutorService responsible for deleting WorkerJobRunning
when a terminated TaskRun is added to an execution.
Changes:
- Remove unecessary read before delete on WorkerJobRunning table.
Close: #9493
* fix: move type back to left
* make version field always readonly
* fix: add final touches
* fix: prefill anyof with current value type
* chore(core): localize to languages other than english (#9488)
Co-authored-by: GitHub Action <actions@github.com>
* fix: title of string pebble
* fix translations
* chore(core): localize to languages other than english
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
---------
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
* fix(ui): Better duplicate key mananage in the pair component
close#9220
* fix(ui): add a have-error prop on inputText that show a red shadow
* refactor: simplify inputpair component (#9491)
* fix: only show lock if disabled
* alertState define order
---------
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
* fix: resolve filter display inconsistency between dark and light themes
Updates KestraFilter.vue styling to ensure search criteria display
consistently across both theme modes.
Fixes#9398
* fix: resolve filter display inconsistency between dark and light themes
Updates KestraFilter.vue styling to ensure search criteria display
consistently across both theme modes.
* fix: resolve filter display inconsistency between dark and light themes
Updates KestraFilter.vue styling to ensure search criteria display
consistently across both theme modes.
---------
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Currently labels just blend with the table row's background. This makes selecting labels slightly unpleasant.
This change makes labels a bit more visible, but still not as much visible as in e.g. v0.20.
We previously starts 2 queues: one for emit, and a specific one for receive wich handle WorkerJobRunning under the cover.
We can replace by using a single queue that will transparently handle WorkerJobRunning. As queues starts thread pools their cost is not negligeable.
Fixes#9007
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>
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(flows): #9319 error when puase with timeout trigger an execution even after it's terminated
* fix(flows): only skip paused flow when execution is terminated
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
For AdditionalPlugin, as we resolves subtypes using isAssignable, we will resolve ourself as a subtype which leads to infinite loop while parsing the schema.
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>
States that now will be filtered for the `In Progress` table:
- `CREATED`
- `RESTARTED`
- `QUEUED`
- `RUNNING`
- `PAUSED`
- `RETRYING`
- `KILLING`
Closes https://github.com/kestra-io/kestra/issues/9125.
* apply correctly the default filter for namespace and flow pages
* apply a default date on charts if none is set
* add flow_id filter in the global filter
* fix(core): bring back radio styles.
* bring radio back
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
---------
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
When a worker transitition to the TERMINATED_FORCED, the LivenessCoordinator
should wait for termination grace period to ensure
that all in-flight task-runs had time to be completely processed by the executors
Related-to: #8334
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix/8050 - Improve padding and font sizes on the Blueprints tab in the Editor
fix(ui): improve padding and font sizes on Blueprints tab in Editor
Image 1:
- Added a "Blueprints" tittle
- Added 32px horizontal padding and 16px bottom padding to blueprint container
- Change font tittle
- Reduced blueprint title font size
- Added spacing between Source title and code block
- Changed background to ks-background-input
- Changed editor to ks-background-input
Image 2:
- Changed top spacing
- Changed background to ks-background-input
- Changed "bold" tittle blueprint to "regular"
Fixes#8950
* fix/8050 - Improve padding and font sizes on the Blueprints tab in the Editor
fix(ui): improve padding and font sizes on Blueprints tab in Editor
- FIx padding between tittle "Source" and code block
- changed css &.custom-dark-vs-theme
- Add Community top spacing
Fixes#8950
* fix(ui): improve padding and font sizes on Blueprints tab in Editor
- Updated back button with rounded background and ChevronLeft icon
- Reduced blueprint title font size and improved header layout
- Added proper spacing and alignment for header elements
Fixes#8950
* revert gitignore and application.yml
* fix(ui): minor tweaks.
---------
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* feat:
- Implement width property
- Replace custom dashboard
- Started to integrate the KPI chart
* feat(ui): introduce dashboard chart layout system
* feat(ui): introduce dashboard chart kpi card
* chore(ui): amend layout widths for sm screen size
* chore(ui): prevent editing of default dashboard
* chore(ui): centering the KPI text inside the box
* chore(ui): dashboard edit preview to respect set layouts
* chore(ui): initial work on setting the default flow & namespace dashboards
* fix(ui): make sure there is no naming clashes
* feat: KPI chart backend implementation
* feat: validation annotations
* chore(ui): make chart legend align to right side
* chore(ui): properly show chart labels
* chore(ui): improve state and ID components inside custom tabels
* chore(ui): add proper link to execution in tables
* feat: implemented Triggers as Datasource for custom dashboards
close kestra-io/kestra-ee#3740
* feat: modified the Markdown chart so now it accept different sources
* feat: rename KPI property to numerator & where
close#3739
* chore(ui): improve markdown component
* chore(ui): markdown charts
* chore(ui): markdown charts
* chore(ui): markdown charts remove padding
* chore(ui): markdown charts
* feat: fixes + define custom dashboard equivalent to current default dashboard with some modification
* fix: round double value
* chore(ui): improve flows and ns charts
* chore(ui): make sure that table shows execution links only if namespace and flowId exist
* chore(ui): make sure markdown is properly shown on dashboard edititng
* fix: correctly do preview instead of load on homepage
* fix: correctly preview markdown chart and add description in default flow dashboard
* fix: apply review changes
* fix: modify test following classes modifications on charts
* tests: restore package-lock
* remove chromatic tools and a warning
---------
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
* fix(ui): show proper no result
* Migrated the `SelectTable` component away from `NoData` to the
placeholder text attribute.
* Enabled `NoData` for logs since their empty result case was also
not clear.
* fix(core): make selection work and few more tweak.
---------
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(core): few tweaks to align the placeholder and ui as per design.
* fix: minor tweak
---------
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
* fix(core): navigating back to plugins home.
* fix: keep the scroll to top
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
---------
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
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>
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(filters): change label filtering to 'and' instead of 'or'
link to #8489
* test(execution): add test to validate and behavior
* test(execution): fix test
* test(controller): add logs to understand why the test fail
* test(controller): add logs to make sure the executions are running
* test(controller): add logs to make sure the executions are running
* test(controller): add logs to make sure the executions are running
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
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>
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>
* refactor: remove SECTIONS from local constants
* fix(ui): make delete button work for section, errors & tasks
* fix: allow delete of error, finally and afterexec
* fix: allow deleting fro any section
* use updated YAML_UTILS
* fix keyname usage
* update ui-libs for yaml utils
* fix: delete all tasks and keep order in creation
* chore: update ui-libs
When a queue is at max poll size, this means that it is at full capacity. In this case skip the sleep and process immediatly the next batch of message.
This improve latency at high thoughput without adding too much load to the database.
We can even go further by skipping sleep each time the poll returns messages but this would imply database cost so for now we balance performance and database cost by only skipping sleep when at max capacity.
Added test cases for:
Listing all available subcommands in the PluginCommand CLI help output.
Verifying that external plugins are not loaded by default in PluginCommand.
Updated existing tests for:
Enhanced help output validation to check for the presence of all expected subcommands/
Explicitly asserted the behavior of the loadExternalPlugins() method.
Ensured coverage for:
Edge cases where subcommands might be missing from the help output.
Input variants by directly invoking the command and capturing CLI output.
Error handling by confirming correct CLI configuration and plugin loading behavior.
* feat(core): #3427 add OSS tenant migration scripts
* clean(core): fixes after review
* clean(core): make only one command for oss and EE migration
* fix(core): user synchronisation command and clean PR
---------
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* feat(core)!: WIP make tenant id required
* feat(core)!: WIP make tenant id required
* test(core)!: WIP fix storage unit test
* build(deps): bump com.google.guava:guava from 33.4.7-jre to 33.4.8-jre
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.4.7-jre to 33.4.8-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)
---
updated-dependencies:
- dependency-name: com.google.guava:guava
dependency-version: 33.4.8-jre
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump io.micronaut.platform:micronaut-platform
Bumps [io.micronaut.platform:micronaut-platform](https://github.com/micronaut-projects/micronaut-platform) from 4.8.0 to 4.8.2.
- [Release notes](https://github.com/micronaut-projects/micronaut-platform/releases)
- [Commits](https://github.com/micronaut-projects/micronaut-platform/compare/v4.8.0...v4.8.2)
---
updated-dependencies:
- dependency-name: io.micronaut.platform:micronaut-platform
dependency-version: 4.8.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump flyingSaucerVersion from 9.11.6 to 9.12.0
Bumps `flyingSaucerVersion` from 9.11.6 to 9.12.0.
Updates `org.xhtmlrenderer:flying-saucer-core` from 9.11.6 to 9.12.0
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.6...v9.12.0)
Updates `org.xhtmlrenderer:flying-saucer-pdf` from 9.11.6 to 9.12.0
- [Release notes](https://github.com/flyingsaucerproject/flyingsaucer/releases)
- [Changelog](https://github.com/flyingsaucerproject/flyingsaucer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyingsaucerproject/flyingsaucer/compare/v9.11.6...v9.12.0)
---
updated-dependencies:
- dependency-name: org.xhtmlrenderer:flying-saucer-core
dependency-version: 9.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: org.xhtmlrenderer:flying-saucer-pdf
dependency-version: 9.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump software.amazon.awssdk:bom from 2.31.21 to 2.31.25
Bumps software.amazon.awssdk:bom from 2.31.21 to 2.31.25.
---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
dependency-version: 2.31.25
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump com.github.oshi:oshi-core from 6.8.0 to 6.8.1
Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.8.0 to 6.8.1.
- [Release notes](https://github.com/oshi/oshi/releases)
- [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.8.0...oshi-parent-6.8.1)
---
updated-dependencies:
- dependency-name: com.github.oshi:oshi-core
dependency-version: 6.8.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump org.opensearch.client:opensearch-java
Bumps [org.opensearch.client:opensearch-java](https://github.com/opensearch-project/opensearch-java) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/opensearch-project/opensearch-java/releases)
- [Changelog](https://github.com/opensearch-project/opensearch-java/blob/v2.23.0/CHANGELOG.md)
- [Commits](https://github.com/opensearch-project/opensearch-java/compare/v2.22.0...v2.23.0)
---
updated-dependencies:
- dependency-name: org.opensearch.client:opensearch-java
dependency-version: 2.23.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump co.elastic.logging:logback-ecs-encoder
Bumps [co.elastic.logging:logback-ecs-encoder](https://github.com/elastic/ecs-logging-java) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/elastic/ecs-logging-java/releases)
- [Commits](https://github.com/elastic/ecs-logging-java/compare/v1.6.0...v1.7.0)
---
updated-dependencies:
- dependency-name: co.elastic.logging:logback-ecs-encoder
dependency-version: 1.7.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* tests(system): isolate SchedulerScheduleTest tests with tenantId
* Feat/storage outputs (#8361)
* feat(executions): Store outputs inside the internal storage (1/2)
* feat(executions): Store outputs inside the internal storage (2/2)
* feat(test): allow passing tenantId to tests
---------
Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>
* chore(deps): regular dependency update (#8484)
Performing a weekly round of dependency updates in the NPM ecosystem to keep everything up to date.
* fix(ui): full view height for single task logs (#8042)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
* feat: synchronize task edition with editor (#8433)
* fix(controls): adjust bottom position of contorls in multiPanelsEditor (#8465)
* fix(executions): unqueing execution must remove the execution queued
When an execution is queued in the JDBC backend, a record is inserted inside the execution_queued table, we must remove this record when we unqeue an execution.
Fixes#8448
* chore(core): localize to languages other than english (#8485)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* tests(webserver): fix flaky test which could query previous tests tasks
* tests(system): debug flaky error of shouldPauseExecutionByQueryRunningFlows
* tests(system): debug flaky error of shouldPauseExecutionByQueryRunningFlows
* tests(system): try with different task id
* tests(system): bump sleep-short sleep time to 10s
* fix(execution)*: decode and hide nested inputs of type SECRET
Fixes#7964
* refactor(core): pass the dynamic concurrency schema to no code editor (#8488)
There was an issue with passing hard-coded concurrency schema to be rendered in No Code editor, which is now amended and we're passing down the previously fetched one
* chore(deps): update gradle version
* doc(basic.md): add link to configuration for kestra property variables (#8490)
* fix(flows): properly check average duration for dashboard graphs (#8457)
There was a problem on flows view with the main chart not showing proper data until user clicks on duration toggle.
Closes https://github.com/kestra-io/kestra/issues/8435.
Closes https://github.com/kestra-io/kestra-ee/issues/3499.
* docs(core-pause): update pauseDuration properties, titles, descriptions (#8495)
* fix(system): restrict the JdbcConcurrencyLimitService to the JDBC runner
* fix(core): fix indexer metric description (#8500)
* Add examples with expression and trimmed values (#6154)
* chore(ui): improvement to drilldown for Default and Custom Charts. (#7885)
* chore(ui): improvement to drilldown for Default and Custom Charts.
* minor tweak
* test: fix the Barchart stories to test drilldown
---------
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
* fix(ui): restart trigger position for backfill column (#8246)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
* feat(plugin): add a way to provide additional type of plugins
Provide a way for plugins to define a new type of plugins.
To do that, a plugin must provide both an abstract base class that extends AdditionalPlugin and a set of concret classes.
Both the abstract base class and the concrete classes mut be inside the same plugin. This is a limitation that we may work on later by providing, for example, an SPI to add base classes to the application classloader.
* fix(ui): save existing flow after making changes (#8378)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
* fix(core): failing DocumentationGeneratorTest.returnDoc()
* chore(core): refactor component to composition API structure and with some styling (#8504)
* feat(flows): add validation for use of inputs and outputs with '-' in the name (#8379)
* test(core): fix breaking change in local flow repository (#8517)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* feat(system)!: remove the SQLServer runner
Part-of: https://github.com/kestra-io/kestra-ee/issues/3504
* chore(build): add Postgres stat extension
* feat(plugins): add Langchain4J plugins
* chore(system): add warn log when emit logQueue failed (#8432)
* feat(plugins): add Go Script plugin
* fix(jdbc): add service_id index on service_instance table
* chore(flows): improve the blueprints view within the flow editing panels (#7983)
Changes here consist of removing the tags from blueprint view on Multi Panel flow editor, along with couple of other UI improvements.
Closes https://github.com/kestra-io/kestra/issues/7881.
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
* fix(flows): properly load blueprints in multi panel view (#8524)
While using the new Multi Panel view blueprints were not loading properly due to wrong paramtere being sent to action. now that's sorted.
Closes https://github.com/kestra-io/kestra/issues/8523.
* feat(flows): improve the display of array inputs when running an execution (#7953)
This PR is introducing a change of how the `array` inputs are displayed inside the flow run dialog, to be more user-friendly.
Closes https://github.com/kestra-io/kestra/issues/6947.
---------
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
* fix(system): change default config values for liveness
Change kestra.server.liveness.interval from 5s to 10s
to be less agressive on liveness check. Align
other default liveness configs with kafka implementation.
* fix(ui): amend Absolute date filter's looks (#8501)
* chore(core): localize to languages other than english (#8528)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* docs(flow-trigger): add note about no Pebble in conditions
* fix(ui): remove parts of filter using backspace (#8105)
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
* fix(ui): open link in markdown in other tab. (#8258)
* fix(ui): open link in markdown in other tab.
* chore(core): restrict attribute to external links.
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
---------
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
* fix(system): load OpenTelemetry lib in the app classloader
Without that, as we have it here, plugins may have class loading issue if they use OpenTelemetry internally (like in the Elasticsearch client).
* feat(ui): Add search in internal docs (#8458)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
* fix(triggers): inject default later inside the Scheduler
Today, as they are injected eagerly, they are done even if no trigger exists.
This is counter-performant, and in case the flow is an error will log each seconds.
Doing it a little later will be better.
* build(deps): bump software.amazon.awssdk:bom from 2.31.25 to 2.31.30
Bumps software.amazon.awssdk:bom from 2.31.25 to 2.31.30.
---
updated-dependencies:
- dependency-name: software.amazon.awssdk:bom
dependency-version: 2.31.30
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump org.wiremock:wiremock-jetty12 from 3.12.1 to 3.13.0
Bumps [org.wiremock:wiremock-jetty12](https://github.com/wiremock/wiremock) from 3.12.1 to 3.13.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.12.1...3.13.0)
---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-jetty12
dependency-version: 3.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump jacksonVersion from 2.18.3 to 2.19.0
Bumps `jacksonVersion` from 2.18.3 to 2.19.0.
Updates `com.fasterxml.jackson:jackson-bom` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.18.3...jackson-bom-2.19.0)
Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.18.3...jackson-core-2.19.0)
Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson/commits)
Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson/commits)
Updates `com.fasterxml.jackson.module:jackson-module-parameter-names` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-modules-java8/compare/jackson-modules-java8-2.18.3...jackson-modules-java8-2.19.0)
Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-yaml` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.18.3...jackson-dataformats-text-2.19.0)
Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-smile` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.18.3...jackson-dataformats-binary-2.19.0)
Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-cbor` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformats-binary/compare/jackson-dataformats-binary-2.18.3...jackson-dataformats-binary-2.19.0)
Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-ion` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformat-ion/commits)
Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.18.3...jackson-dataformat-xml-2.19.0)
Updates `com.fasterxml.jackson.datatype:jackson-datatype-guava` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-datatypes-collections/compare/jackson-datatypes-collections-2.18.3...jackson-datatypes-collections-2.19.0)
Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.18.3 to 2.19.0
Updates `com.fasterxml.jackson.datatype:jackson-datatype-jdk8` from 2.18.3 to 2.19.0
---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-core
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-databind
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.module:jackson-module-parameter-names
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-smile
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-cbor
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-ion
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-xml
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-guava
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
dependency-version: 2.19.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore(execution): update display names for executions. (#8527)
* fix(core): change incorrectly used search parameter (#8534)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* fix(ui): set isCreating to false when opening flow edit mode (#8549)
* fix(core): safely access section and identifier query params (#8542)
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
* fix(ui): update storybook editor tests with provided keys (#8550)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
* chore(core): localize to languages other than english (#8554)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* fix(triggers): amend broken filtering on triggers tab (#8553)
There was a problem with both namespace and state filters on Triggers page which is now properly sorted.
Closes https://github.com/kestra-io/kestra/issues/8529.
* chore: attempt to fix flaky tests (#8537)
SingleFlowCommandsTest:
The flow Delete -> Create -> Update sequence is weird - delete got HTTP 404.
Reworked to Create -> Update -> Delete sequence.
PurgeLogsTest:
The log repository contained the prepared single entry but also might
contain additional entries from previously logged messages.
* fix(namespaces): namespaceFiles with same name are wrongly overwritten (#8562)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
* feat(core): forward execution labels in Flow Trigger
* chore(triggers)*: properly handle switches for triggers disabled from within flow source (#8106)
It was not clear as to which trigger can not be enabled and why. Now, that is much more clear with the proper tooltips and disabling of switch toggling.
Closes https://github.com/kestra-io/kestra/issues/8011.
Closes https://github.com/kestra-io/kestra/issues/5736.
* fix(executions): fix execution failure due to UnsupportedOperationException (#8563)
Fix: #8563
* chore(core): localize to languages other than english (#8568)
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
Co-authored-by: GitHub Action <actions@github.com>
* feat(system): add TestSuite model,taskFixture impl
* fix: redirect to edit when saving new flow (#8560)
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
* feat(system)*: decrease defaut JDBC queue poll size
Decreasing it from 100 to 50 didn't show any performance hit but should lower the memory consumption now that we process the queue concurrently in the executor.
## BEFORE - pollSize=100
- 10 tx/s: 150ms
- 25 tx/s: 200ms
- 50 tx/s: 300ms
- 75 tx/s: 5.2s
- 100 tx/s: 15s
## AFTER - pollSize=50
- 10 tx/s: 150ms
- 25 tx/s: 200ms
- 50 tx/s: 300ms
- 75 tx/s: 4.8s
- 100 tx/s: 14s
* feat(flows): Allow to define an onPause task on the Pause task
The onPause task will be executed immediatly when the execution is paused.
Part-of: #3601
* feat(core)!: WIP make tenant id required
* feat(core)!: WIP make tenant id required
* Feat/storage outputs (#8361)
* feat(executions): Store outputs inside the internal storage (1/2)
* feat(executions): Store outputs inside the internal storage (2/2)
* feat(test): allow passing tenantId to tests
---------
Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>
* tests(webserver): fix flaky test which could query previous tests tasks
* feat(executions): Add workerId to each worker task attemps
Closes#7799
* Feat/storage outputs (#8361)
* feat(executions): Store outputs inside the internal storage (1/2)
* feat(executions): Store outputs inside the internal storage (2/2)
* feat(test): allow passing tenantId to tests
---------
Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>
* wip(core): fix unit tests
* test(core): fix unit tests
* test(core): fix unit tests
* test(core): fix unit tests
* feat(core): make tenant id required everywhere
* feat(core): make tenant required in create user command
* feat(core): clean the PR
* feat(core): add tenant id to dashboard controller
* fix(core): tests after merging
* clean(core): fixes after review
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Roman Acevedo <roman.acevedo62@gmail.com>
Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
Co-authored-by: Ludovic DEHON <tchiot.ludo@gmail.com>
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
Co-authored-by: Piyush Bhaskar <102078527+Piyush-r-bhaskar@users.noreply.github.com>
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: AJ Emerich <aemerich@kestra.io>
Co-authored-by: ben8t <46634684+Ben8t@users.noreply.github.com>
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
Co-authored-by: Satvik Kushwaha <59243339+satvik2131@users.noreply.github.com>
Co-authored-by: Karuna Tata <karuna.tata@devrev.ai>
Co-authored-by: Hashim Khalifa <105060840+hashimzs@users.noreply.github.com>
Co-authored-by: lwyang <1670906161@qq.com>
Co-authored-by: 杨利伟 <yangliwei@xiaomi.com>
Co-authored-by: Florian Hussonnois <fhussonnois@kestra.io>
Co-authored-by: yuri <1969yuri1969@gmail.com>
Co-authored-by: AJ Emerich <aj-emerich@proton.me>
Co-authored-by: rajatsingh23 <48049052+rajatsingh23@users.noreply.github.com>
* feat(core): replace select with tabs for schema selection.
* feat(core): change selection to tab and remove display of type and tooltip.
* fix: remove obsolete component and add class.
* chore(core): task enclosed under a border.
* fixes enclosed border only for anyOf type
---------
Co-authored-by: Barthélémy Ledoux <bledoux@kestra.io>
Instead of consuming multiple time the queue, which lead to concurrent queries on the `queues` table, process concurrently via an ExecutorService the messages from the queue.
We dind't process a new batch of messages until the existing one is totally process to be sure we process in FIFO the same execution message.
Also, go back to a poll size of 100 to mitiguate the performance hit due to this change.
Surprisingly, this method appear in some CPU and allocation profile as having a high cost, especially on the scheduler.
Switching to using a StringJoiner brings 4x perf improvements in method execution time (great improvement also on allocation but didn't have a measurement).
One of the two is failing pretty often, using @ExecuteFlow instead of @LoadFlow seems to make them non-flaky.
We can also remove the second ad those are duplicated test but maybe the person that duplicate it has some reason...
* feat(demo): add video support to various demo components and enhance layout
* update video sources
* feat(core): Embed videos directly on EE-feature teasers.
* chore(core): localize to languages other than english
Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference.
* Apply suggestions from code review
---------
Co-authored-by: GitHub Action <actions@github.com>
Co-authored-by: Anna Geller <anna.m.geller@gmail.com>
Enable concatenation of arbitrary scalar values (e.g., numbers, booleans)
into a string when setting a typed plugin property expecting a single value:
e.g., the `value` property of the `io.kestra.plugin.core.kv.Set` task.
Fix: kestra-io/kestra-ee#3570
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>
advance on CRUD UI for Add unit tests for flows — new tab on the Flows page, runnable from the UI, API or from CI/CD (needs CLI and GitHub Action) kestra-ee#3110
linked to feat(system): add TestSuite list and edit pages kestra-ee#3585
This is a breaking change as existing flow trigger wich didn't filter to any states on conditiosn or preconditions was before triggering executions only on terminal states and will now trigger executions on terminated and paused states.
Fixes https://github.com/kestra-io/kestra-ee/issues/3535
Purge service instance in EMPTY state after a certain duration, 30 days by default, to avoid never ending groth on the service_instances table.
Fixes#8514
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>
This change is introducing a new setting for users to choose - the automatic table refresh interval.
---------
Co-authored-by: MilosPaunovic <paun992@hotmail.com>
Label for triggering autocompletion was `CMD/CTRL + SPACE`, but on `MacOS`, that was triggering a Spotlight search. As the `CTRL + SPACE` works on `MacOS` also, the label is tweaked.
Closes https://github.com/kestra-io/kestra/issues/8617
---
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
- By default, switch from quick polling to long polling after 30s of inacitvity on a queue
- By default, configure long polling interval to 500ms
- Use steps to goes from quick polling to long polling (5 steps automatically computed)
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>
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>
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>
Made changes to backfilling executions input to fill the default input value by the input value set within a schedule.
Co-authored-by: Miloš Paunović <paun992@hotmail.com>
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>
Decreasing it from 100 to 50 didn't show any performance hit but should lower the memory consumption now that we process the queue concurrently in the executor.
## BEFORE - pollSize=100
- 10 tx/s: 150ms
- 25 tx/s: 200ms
- 50 tx/s: 300ms
- 75 tx/s: 5.2s
- 100 tx/s: 15s
## AFTER - pollSize=50
- 10 tx/s: 150ms
- 25 tx/s: 200ms
- 50 tx/s: 300ms
- 75 tx/s: 4.8s
- 100 tx/s: 14s
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>
SingleFlowCommandsTest:
The flow Delete -> Create -> Update sequence is weird - delete got HTTP 404.
Reworked to Create -> Update -> Delete sequence.
PurgeLogsTest:
The log repository contained the prepared single entry but also might
contain additional entries from previously logged messages.
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>
Today, as they are injected eagerly, they are done even if no trigger exists.
This is counter-performant, and in case the flow is an error will log each seconds.
Doing it a little later will be better.
* fix(ui): open link in markdown in other tab.
* chore(core): restrict attribute to external links.
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
---------
Co-authored-by: Barthélémy Ledoux <ledouxb@me.com>
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>
Change kestra.server.liveness.interval from 5s to 10s
to be less agressive on liveness check. Align
other default liveness configs with kafka implementation.
While using the new Multi Panel view blueprints were not loading properly due to wrong paramtere being sent to action. now that's sorted.
Closes https://github.com/kestra-io/kestra/issues/8523.
Provide a way for plugins to define a new type of plugins.
To do that, a plugin must provide both an abstract base class that extends AdditionalPlugin and a set of concret classes.
Both the abstract base class and the concrete classes mut be inside the same plugin. This is a limitation that we may work on later by providing, for example, an SPI to add base classes to the application classloader.
* chore(ui): improvement to drilldown for Default and Custom Charts.
* minor tweak
* test: fix the Barchart stories to test drilldown
---------
Co-authored-by: Bart Ledoux <bledoux@kestra.io>
There was an issue with passing hard-coded concurrency schema to be rendered in No Code editor, which is now amended and we're passing down the previously fetched one
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>
When an execution is queued in the JDBC backend, a record is inserted inside the execution_queued table, we must remove this record when we unqeue an execution.
Fixes#8448
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>
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.
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.
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.
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>
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
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>
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>
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>
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>
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
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>
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.
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.
* 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>
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.
Add a new checked exception FlowProcessingException to enhance error
handling when parsing, validating a flow, and injecting plugin defaults.
Related-to: #7894
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.
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
* 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
* 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
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
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.
* 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
* 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
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.
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.
* 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>
* 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
@@ -23,13 +23,18 @@ In the meantime, you can move onto the next step...
---
### Requirements
- Java 21 (LTS versions).
> ⚠️ Java 24 and above are not supported yet and will fail with `invalid source release: 21`.
- Gradle (comes with wrapper `./gradlew`)
- Docker (optional, for running Kestra in containers)
### Development:
-Create a`.env.development.local`file in the`ui` folder and paste the following:
```bash
# This lets the frontend know what the backend URL is but you are free to change this to your actual server URL e.g. hosted version of Kestra.
VITE_APP_API_URL=http://localhost:8080
-(Optional) By default, your dev server will target `localhost:8080`. If your backend is running elsewhere, you can create`.env.development.local`under`ui` folder with this content:
```
VITE_APP_API_URL={myApiUrl}
```
- Navigate into the `ui` folder and run `npm install` to install the dependencies for the frontend project.
@@ -37,6 +37,10 @@ The following dependencies are required to build Kestra locally:
- Docker & Docker Compose
- an IDE (Intellij IDEA, Eclipse or VS Code)
Thanks to the Kestra community, if using VSCode, you can also start development on either the frontend or backend with a bootstrapped docker container without the need to manually set up the environment.
Check out the [README](../.devcontainer/README.md) for set-up instructions and the associated [Dockerfile](../.devcontainer/Dockerfile) in the respository to get started.
To start contributing:
- [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the repository
- cron:"0 9-21 * * *"# Every hour from 9 AM to 9 PM
- cron:"0 9-21/3 * * *"# Every 3 hours from 9 AM to 9 PM
workflow_dispatch:
inputs:
retranslate_modified_keys:
@@ -20,13 +20,13 @@ jobs:
runs-on:ubuntu-latest
timeout-minutes:10
steps:
- uses:actions/checkout@v4
- uses:actions/checkout@v5
name:Checkout
with:
fetch-depth:0
- name:Set up Python
uses:actions/setup-python@v5
uses:actions/setup-python@v6
with:
python-version:"3.x"
@@ -39,13 +39,10 @@ jobs:
OPENAI_API_KEY:${{ secrets.OPENAI_API_KEY }}
- name:Set up Node
uses:actions/setup-node@v4
uses:actions/setup-node@v5
with:
node-version:"20.x"
- name:Check keys matching
run:node ui/src/translations/check.js
- name:Set up Git
run:|
git config --global user.name "GitHub Action"
@@ -62,6 +59,9 @@ jobs:
echo "No changes to commit. Exiting with success."
exit 0
fi
git commit -m "chore(translations): localize to languages other than English"
git commit -m "chore(core): localize to languages other than english" -m "Extended localization support by adding translations for multiple languages using English as the base. This enhances accessibility and usability for non-English-speaking users while keeping English as the source reference."
gh pr create --title "Translations from en.json" --body "This PR was created automatically by a GitHub Action." --base develop --head $BRANCH_NAME --assignee anna-geller --reviewer anna-geller
gh pr create --title "Translations from en.json" --body $'This PR was created automatically by a GitHub Action.\n\nSomeone from the @kestra-io/frontend team needs to review and merge.' --base ${{ github.ref_name }} --head $BRANCH_NAME
# 'New E2E tests implementation started by Roman. Based on playwright in npm UI project, tests Kestra OSS develop docker image. These tests are written from zero, lets make them unflaky from the start!.'
This file provides guidance for AI coding agents working on the Kestra project. Kestra is an open-source data orchestration and scheduling platform built with Java (Micronaut) and Vue.js.
## Repository Layout
- **`core/`**: Core Kestra framework and task definitions
- **`cli/`**: Command-line interface and server implementation
- **`webserver/`**: REST API server implementation
- **jdbc-h2,jdbc-mysql,jdbc-postgres:** Add an index on queues.key ([412837952](https://github.com/kestra-io/kestra/commit/412837952))
- **ui:** Ability to hide secret value when typing in secrets ([59cc56186](https://github.com/kestra-io/kestra/commit/59cc56186))
### 🩹 Fixes
- **core:** Default namespace in namespace file ([ffd06a57e](https://github.com/kestra-io/kestra/commit/ffd06a57e))
- **ui:** Prevent infinite loading loop in Namespace KV Store & Secrets pages if there is none ([8fb6e6af2](https://github.com/kestra-io/kestra/commit/8fb6e6af2))
- Add afterExecution to basic.md ([#8126](https://github.com/kestra-io/kestra/pull/8126))
### 🩹 Fixes
- **cli**: prevent FlowUpdatesCommand to crash due to plugin loader ([YannC](https://github.com/kestra-io/kestra/commit/3ce2cdaeb915d98debfb635215d8604abbc869c2))
- **core:** Use a stable flow logger name ([7cfbb91e7](https://github.com/kestra-io/kestra/commit/7cfbb91e7))
- **core:** HttpClient log the URL even if it's a secret" ([ae223c8d7](https://github.com/kestra-io/kestra/commit/ae223c8d7))
- **core:** Mask secrets on log attributes ([94dcba126](https://github.com/kestra-io/kestra/commit/94dcba126))
- **ui:** Keep fetching if filtered kvs & secrets have no elements after fetch ([5757b576e](https://github.com/kestra-io/kestra/commit/5757b576e))
- **gradle:** Windows selfrun.bat ([9cb51ba0e](https://github.com/kestra-io/kestra/commit/9cb51ba0e))
- **jdbc:** Possible deadlock on service instance ([6ead4e63c](https://github.com/kestra-io/kestra/commit/6ead4e63c))
- **cli:** Fix NPE for commands not requiring plugins ([#8212](https://github.com/kestra-io/kestra/pull/8212))
- **core:** Be tolerant of decryption issue ([38f68dae5](https://github.com/kestra-io/kestra/commit/38f68dae5))
- **jdbc:** #8219 unquoted timestamp field breaking query ([#8222](https://github.com/kestra-io/kestra/pull/8222), [#8219](https://github.com/kestra-io/kestra/issues/8219))
### 🏡 Chore
- **version:** Update the CHANGELOG.MD with details for 0.22.0 ([b78748ebf](https://github.com/kestra-io/kestra/commit/b78748ebf))
- **ci:** Modify publish docker to align on EE ([fedbffbdf](https://github.com/kestra-io/kestra/commit/fedbffbdf))
- **ci:** Align plugins handle for docker publish on EE CI ([632c5836d](https://github.com/kestra-io/kestra/commit/632c5836d))
- ae223c8: Revert "fix(core): HttpClient log the URL even if it's a secret" (Loïc Mathieu)
- Upgrade to 0.22.1 ([9857930da](https://github.com/kestra-io/kestra/commit/9857930da))
- **core,jdbc:** Switch back to a cached thread pool for async JDBC queue ([c2e62d653](https://github.com/kestra-io/kestra/commit/c2e62d653))
- **build:** Configure heap size to max 50% of available memory ([#7800](https://github.com/kestra-io/kestra/pull/7800))
- **core:** Redact KESTRA_JAVA_OPTS from the env available to executions ([ecfe925ec](https://github.com/kestra-io/kestra/commit/ecfe925ec))
- Add finally to the flow assets in basic.md ([#7857](https://github.com/kestra-io/kestra/pull/7857))
- **core:** Add afterExecution to the topology ([f7019af9d](https://github.com/kestra-io/kestra/commit/f7019af9d))
- **ui:** Add `afterExecution` block to no code editor ([#7848](https://github.com/kestra-io/kestra/pull/7848))
- **cli:** Add new --all option to plugin install cmd ([#7375](https://github.com/kestra-io/kestra/pull/7375))
- **core:** Add Kestra env name and URL to the expression context ([1ba54cd08](https://github.com/kestra-io/kestra/commit/1ba54cd08))
- **webserver:** Add Kestra URL to the config endpoint ([70e6d47c1](https://github.com/kestra-io/kestra/commit/70e6d47c1))
- **ui:** Add copy button to kv store listing rows ([#7907](https://github.com/kestra-io/kestra/pull/7907))
- **ui:** Implement a default tab setting for flows ([#7917](https://github.com/kestra-io/kestra/pull/7917))
- ⚠️ Make kv pebble function raise error by default ([#7855](https://github.com/kestra-io/kestra/pull/7855))
- **ui:** Add the option to copy single/all logs to clipboard ([#7755](https://github.com/kestra-io/kestra/pull/7755))
- **ui:** Add beta badge global component ([#7934](https://github.com/kestra-io/kestra/pull/7934))
- **model, core:** Document tasks props that are internal storage URI ([745c64c4b](https://github.com/kestra-io/kestra/commit/745c64c4b))
- **core:** Add correlationId to the Flow trigger ([a7433c6f6](https://github.com/kestra-io/kestra/commit/a7433c6f6))
- ***:** Allow disabling flow logs and use a specific logger for executions, tasks and triggers ([11a166486](https://github.com/kestra-io/kestra/commit/11a166486))
- **core:** Add new subkey arg to secret pebble function ([0987d0b34](https://github.com/kestra-io/kestra/commit/0987d0b34))
- Multi panel editor without the refactor ([#7971](https://github.com/kestra-io/kestra/pull/7971))
- Parse docs is 2 steps to avoid user waiting with nothing ([#7149](https://github.com/kestra-io/kestra/pull/7149))
- **core,jdbc:** Reset the trigger inside the JdbcExecutor ([4a3d6b30d](https://github.com/kestra-io/kestra/commit/4a3d6b30d))
- **ui:** Introduce global Secrets page ([d9ac26716](https://github.com/kestra-io/kestra/commit/d9ac26716))
- **docs:** Add example for best practice with multiline json http post request ([#8023](https://github.com/kestra-io/kestra/pull/8023))
- **core:** #5467 add inheritance for KV in pebble and Get task ([#8031](https://github.com/kestra-io/kestra/pull/8031), [#5467](https://github.com/kestra-io/kestra/issues/5467))
- **cicd:** Add npm install on vulnerabilities check ([9790f0237](https://github.com/kestra-io/kestra/commit/9790f0237))
- **ci:** Workflow test ouptputs + changes for codecov ([c3e830c2c](https://github.com/kestra-io/kestra/commit/c3e830c2c))
- **ci:** Inputs instead of secrets ([c53239470](https://github.com/kestra-io/kestra/commit/c53239470))
- **core:** #7227 cron schedule with timezone and backfile not triggering ([#7285](https://github.com/kestra-io/kestra/pull/7285), [#7227](https://github.com/kestra-io/kestra/issues/7227))
- Force run docs ([#7289](https://github.com/kestra-io/kestra/pull/7289))
- Collapsed menu colors in light mode ([0becf7433](https://github.com/kestra-io/kestra/commit/0becf7433))
- **ui:** Match chart colors ([#7290](https://github.com/kestra-io/kestra/pull/7290))
- **makefile:** Build plugin now build main branch too ([#7297](https://github.com/kestra-io/kestra/pull/7297))
- **core:** Flacky trigger with backfile test ([#7295](https://github.com/kestra-io/kestra/pull/7295))
- **core:** Http client was not using deprecated setter ([25370d10b](https://github.com/kestra-io/kestra/commit/25370d10b))
- **core:** Do not validate subflow if namespace or id is pebble ([#7294](https://github.com/kestra-io/kestra/pull/7294))
- **h2:** Remove indenting in sql file ([#7306](https://github.com/kestra-io/kestra/pull/7306))
- **core:** Add request.yaml file back ([#7308](https://github.com/kestra-io/kestra/pull/7308))
- **core:** Possible NPE when an execution has no labels ([7dbf86d54](https://github.com/kestra-io/kestra/commit/7dbf86d54))
- **cicd:** Npm install in the wrong folder for vulnerabilities checks ([7bf42cb1c](https://github.com/kestra-io/kestra/commit/7bf42cb1c))
- Add proper ellipsis to sidemenu ([#7361](https://github.com/kestra-io/kestra/pull/7361))
- Trim bookmarks better ([#7359](https://github.com/kestra-io/kestra/pull/7359))
- **ui:** Make sure bulk selection is taking into account only selected items ([#7362](https://github.com/kestra-io/kestra/pull/7362))
- Make menu hierarchy get closer to the original designs ([#7102](https://github.com/kestra-io/kestra/pull/7102))
- **core:** Render list ([b45a44bd3](https://github.com/kestra-io/kestra/commit/b45a44bd3))
- **jdbc:** Delete the executor state at the correct stage ([1d65fd96b](https://github.com/kestra-io/kestra/commit/1d65fd96b))
- **ui:** Refresh dashboard list ([#7370](https://github.com/kestra-io/kestra/pull/7370))
- **core:** Handle http request with no content type ([239fb6a68](https://github.com/kestra-io/kestra/commit/239fb6a68))
- **cicd:** Add mariadb plugins on docker image ([5b29a0d07](https://github.com/kestra-io/kestra/commit/5b29a0d07))
- **scheduler:** Delete trigger when flow is not found ([#7366](https://github.com/kestra-io/kestra/pull/7366))
- **cli:** Disable by default OTEL metrics ([def8fa3ff](https://github.com/kestra-io/kestra/commit/def8fa3ff))
- Changing language should work with providers too ([b8d0ae3ec](https://github.com/kestra-io/kestra/commit/b8d0ae3ec))
- **ui:** Fix slack button on error toast ([ad651cdc5](https://github.com/kestra-io/kestra/commit/ad651cdc5))
- **ui:** Properly handle the operation labels in filter component ([#7399](https://github.com/kestra-io/kestra/pull/7399))
- **core:** Taskrun list can be null ([ddfed2e65](https://github.com/kestra-io/kestra/commit/ddfed2e65))
- **ui:** Correct english translations ([#7401](https://github.com/kestra-io/kestra/pull/7401))
- **core:** ForEachItem inside an If task ([d9d2f8697](https://github.com/kestra-io/kestra/commit/d9d2f8697))
- **test:** Attempt at making the test not flakky ([#7400](https://github.com/kestra-io/kestra/pull/7400))
- Enable rendering of commands properties inside CommandsWrapper ([#7381](https://github.com/kestra-io/kestra/pull/7381))
- Restore red dot when there is news ([fbd893434](https://github.com/kestra-io/kestra/commit/fbd893434))
- **tests:** Wider maxDuration for retry-failed-flow-duration.yml ([d55ce16f5](https://github.com/kestra-io/kestra/commit/d55ce16f5))
- **ui:** Better duration consistency on Gantt chart ([4a55485cd](https://github.com/kestra-io/kestra/commit/4a55485cd))
- **tests:** Logs are asynchronously inserted so we wait for them to be fully in ([13cb0fb96](https://github.com/kestra-io/kestra/commit/13cb0fb96))
- **ui:** Improve modifying inputs from no code editor ([#7440](https://github.com/kestra-io/kestra/pull/7440))
- **core:** Provide tenantId when looking for subflow ([#7442](https://github.com/kestra-io/kestra/pull/7442))
- **core:** Move back to the old worker thread pool because it was restricting it to 1 thread ([372327581](https://github.com/kestra-io/kestra/commit/372327581))
- **core:** Remove props with default from `required` in json schema to avoid validation errors ([15b85ac95](https://github.com/kestra-io/kestra/commit/15b85ac95))
- **core:** Render `delete` property at the beginning in Docker task runner ([16e3830c9](https://github.com/kestra-io/kestra/commit/16e3830c9))
- **tests:** Increase timeout on JdbcServiceLivenessCoordinatorTest.taskResubmitSkipExecution ([cebe8f354](https://github.com/kestra-io/kestra/commit/cebe8f354))
- **ui:** Executions naviation based on start Date. ([#7626](https://github.com/kestra-io/kestra/pull/7626))
- **core:** No longer lowercasing PluginClassIdentifier to have proper validation upon Plugin deserialization ([17e54134c](https://github.com/kestra-io/kestra/commit/17e54134c))
- **ui:** Additional check for text label of filters section ([446a034d6](https://github.com/kestra-io/kestra/commit/446a034d6))
- **ui:** Improve check for text label of filters section ([036a7cf4f](https://github.com/kestra-io/kestra/commit/036a7cf4f))
- **ui:** Use watch with ref instead of accessing the value ([5f21eb579](https://github.com/kestra-io/kestra/commit/5f21eb579))
- **ui:** Allow sidebar theme toggle to update the editor theme ([#7648](https://github.com/kestra-io/kestra/pull/7648))
- **ui:** Prevent context docs open on editor custom blueprints click ([#7716](https://github.com/kestra-io/kestra/pull/7716))
- **runner-memory:** Delete MemorySchedulerTriggerState back due to cherry-pick ([593558dd2](https://github.com/kestra-io/kestra/commit/593558dd2))
- **ui:** Improved fetch of type for pluginDoc and avoid removing doc if map has "type" as property but without doc (like ENUM value) ([#7727](https://github.com/kestra-io/kestra/pull/7727))
- **demo:** On pages stop showing the docs without a button ([07e4598fa](https://github.com/kestra-io/kestra/commit/07e4598fa))
- Repair collapsed menu submenus ([467861652](https://github.com/kestra-io/kestra/commit/467861652))
- **flow editor:** Enhance behavior when switching file tabs ([#7722](https://github.com/kestra-io/kestra/pull/7722))
- **tests:** Reject promise with 404 instead of empty resolve if non-mocked store call in flowAutoCompletionProvider.spec.ts ([166262209](https://github.com/kestra-io/kestra/commit/166262209))
- **jdbc:** Resubmit worker job to the good worker group ([7696d41d5](https://github.com/kestra-io/kestra/commit/7696d41d5))
- **ci:** Generate_translations.py is now deleting keys that are no longer in en translation to avoid ghost translations ([440a94290](https://github.com/kestra-io/kestra/commit/440a94290))
- **core:** ThresholdFilter is now stricly lower" ([4276a0afd](https://github.com/kestra-io/kestra/commit/4276a0afd))
- **core:** Failing schedule test ([#7783](https://github.com/kestra-io/kestra/pull/7783))
- **core:** Wait for service-manager-task thread to be stopped ([01036c829](https://github.com/kestra-io/kestra/commit/01036c829))
- **tests:** Increase seconds diff between dates ([#7785](https://github.com/kestra-io/kestra/pull/7785))
- **core:** #7740 http configuration bearer token may change to basic because of allowFailed ([#7788](https://github.com/kestra-io/kestra/pull/7788), [#7740](https://github.com/kestra-io/kestra/issues/7740))
- **jdbc:** Return correct total when paginating custom dashboard chart ([#7790](https://github.com/kestra-io/kestra/pull/7790))
- **webserver:** Add endpoint for inherited secrets ([9b5b2b981](https://github.com/kestra-io/kestra/commit/9b5b2b981))
- **ui:** Make switch view buttons from dashboard editor the same as flow editor ones ([82a346b2c](https://github.com/kestra-io/kestra/commit/82a346b2c))
- **ui:** Remove errors from dashboard validation if it's fixed ([4a1282768](https://github.com/kestra-io/kestra/commit/4a1282768))
- **platform:** Move slf4j api to enforce platform to fix it's version in test ([#8007](https://github.com/kestra-io/kestra/pull/8007))
- **core:** Handling for trailing slash in the KESTRA_URL configuration ([#6373](https://github.com/kestra-io/kestra/pull/6373))
- **ui:** Prevent function parameters autocompletion from deleting parenthesis ([74455ad99](https://github.com/kestra-io/kestra/commit/74455ad99))
- **ui:** Handle properly layout of global Secrets when there is a secret manager ([edbf14c1b](https://github.com/kestra-io/kestra/commit/edbf14c1b))
- **core:** Ensure defaults can be injected in flows ([#3206](https://github.com/kestra-io/kestra/pull/3206))
- **ui:** Allow multi label filtering ([#8022](https://github.com/kestra-io/kestra/pull/8022))
- **ui:** Fail-safe secrets API calls ([c64c2c710](https://github.com/kestra-io/kestra/commit/c64c2c710))
- **ui:** Amend operator value of labels inside the filter ([#8028](https://github.com/kestra-io/kestra/pull/8028))
- **ui:** Fail-safe secrets API calls on global secrets view ([28d1f005a](https://github.com/kestra-io/kestra/commit/28d1f005a))
- **core:** Fix NPE when closing standalone runner ([6c9dc8fba](https://github.com/kestra-io/kestra/commit/6c9dc8fba))
- **ui:** Make sure global secret view iterates over all secrets ([75e763550](https://github.com/kestra-io/kestra/commit/75e763550))
- **cli:** Make worker args available through static KestraContext ([dea66ca25](https://github.com/kestra-io/kestra/commit/dea66ca25))
- **core:** Flatten map should not throw an exception ([4c93a2b0e](https://github.com/kestra-io/kestra/commit/4c93a2b0e))
- **webserver:** First eval without masking secret function to error in case of missing secret ([8f4ce5fc1](https://github.com/kestra-io/kestra/commit/8f4ce5fc1))
- **ui:** Properly detect yaml to inject json schema into MonacoEditor ([8be17827c](https://github.com/kestra-io/kestra/commit/8be17827c))
- **core:** HttpClient log the URL even if it's a secret ([54aa93570](https://github.com/kestra-io/kestra/commit/54aa93570))
- **core:** Properly fix the issue with MapUtils.flattenToNestedMap ([b8e8333f6](https://github.com/kestra-io/kestra/commit/b8e8333f6))
- **translations:** Standalone action for translations ([#7597](https://github.com/kestra-io/kestra/pull/7597))
- **translations:** Localize to languages other than English ([#7605](https://github.com/kestra-io/kestra/pull/7605))
- **translations:** Localize to languages other than English " ([#7605](https://github.com/kestra-io/kestra/pull/7605), [#7609](https://github.com/kestra-io/kestra/pull/7609))
- **translations:** Localize to languages other than English ([#7610](https://github.com/kestra-io/kestra/pull/7610))
- **translations:** Localize to languages other than English ([#7613](https://github.com/kestra-io/kestra/pull/7613))
- **translations:** Localize to languages other than English ([#7618](https://github.com/kestra-io/kestra/pull/7618))
- **ui:** Improve label for text search in filters section ([#7631](https://github.com/kestra-io/kestra/pull/7631))
- **translations:** Localize to languages other than English ([#7633](https://github.com/kestra-io/kestra/pull/7633))
- **ui:** Remove crud details from execution overview ([#7634](https://github.com/kestra-io/kestra/pull/7634))
- **ui:** Improve empty state of the namespace files editor ([#7495](https://github.com/kestra-io/kestra/pull/7495))
- **translations:** Localize to languages other than English ([#7635](https://github.com/kestra-io/kestra/pull/7635))
- **core:** Eval value property once for flowable task Switch ([bfd82e0b5](https://github.com/kestra-io/kestra/commit/bfd82e0b5))
- **ui:** Improve the topology tooltip label for adding task button ([#7656](https://github.com/kestra-io/kestra/pull/7656))
- **ui:** Properly sanitize markdown content before rendering ([#7662](https://github.com/kestra-io/kestra/pull/7662))
- **ui:** Make sure chart stacks are following the same order every time ([#7664](https://github.com/kestra-io/kestra/pull/7664))
- **ui:** Properly sanitize markdown content before rendering ([#7697](https://github.com/kestra-io/kestra/pull/7697))
- **ui:** Auto expand first element in execution overview cascaders ([#7715](https://github.com/kestra-io/kestra/pull/7715))
- **core:** Make registry unregister usable with immutable list ([9a56b763f](https://github.com/kestra-io/kestra/commit/9a56b763f))
- **ui:** Properly sanitize markdown content before rendering ([#7724](https://github.com/kestra-io/kestra/pull/7724))
- **ui:** Uniforming empty state for components ([#7737](https://github.com/kestra-io/kestra/pull/7737))
- **translations:** Localize to languages other than English ([#7739](https://github.com/kestra-io/kestra/pull/7739))
- **ui:** Use uniformed pagination component for custom dashboard tables ([#7744](https://github.com/kestra-io/kestra/pull/7744))
- **translations:** Localize to languages other than English ([#7746](https://github.com/kestra-io/kestra/pull/7746))
- **ui:** Remove single empty space between label key and value so it can be copied ([#7774](https://github.com/kestra-io/kestra/pull/7774))
- **docker:** Fixed version of qemu ([49fe36250](https://github.com/kestra-io/kestra/commit/49fe36250))
- **docker:** Revert fixed qemu version ([cfc0c9f9f](https://github.com/kestra-io/kestra/commit/cfc0c9f9f))
- **publish-docker:** Attempts with ubuntu 0.20 ([#7431](https://github.com/kestra-io/kestra/pull/7431))
- **publish-docker:** Attempts with command on qemu docker image ([a89ef7158](https://github.com/kestra-io/kestra/commit/a89ef7158))
- **test:** Force test if ref is a tag ([a020e3f3a](https://github.com/kestra-io/kestra/commit/a020e3f3a))
### ⚠️ Breaking Changes
### EE: Default tenant deprecation
Multi-tenancy was introduced in Kestra 0.13. For backward compatibility with older versions (≤0.12), you could use the concept of a default tenant, which imitated the multitenancy feature with the so-called “null”-tenant. One and a half years later, in Kestra 0.22, we are deprecating the default tenant functionality and plan to remove it in the future. We will provide a detailed migration guide for all customers who still use the default tenant. Until then, you can continue using `defaultTenant` by setting the corresponding configuration flag to `true`:
```yaml
kestra:
tenants:
enabled:true
defaultTenant:true
```
Note that in Kestra 0.22 and higher, `defaultTenant` is NOT enabled by default, so you must explicitly set that configuration option to `true` to keep using the default tenant.
Also, keep in mind that prior to Kestra 0.22, `tenants.enabled` was by default set to `false` and now they are enabled.
### EE: Azure log exporter
The log exporter plugin for Azure `io.kestra.plugin.ee.azure.LogExporter`, introduced in Kestra 0.21, got split into two `io.kestra.plugin.ee.azure.monitor.LogExporter` and `io.kestra.plugin.ee.azure.storage.LogExporter` to reflect that you can now export your log to Azure either using Azure Monitor or using Azure Blob Storage.
### EE: Enterprise Edition API changes
Before Kestra 0.22, the Service Account name had to be globally unique within the instance. As a result, attempting to create a Service Account `cicd` in a `dev` tenant would raise an error `"Username already exists"` if your `prod` tenant also has a Service Account with the name `cicd`.
To support multiple service accounts with the same name, we’ve renamed the `username` property to `name` in the JSON payload for the following REST API endpoint: `POST /api/v1{/tenant}/users/service-accounts{/id}`.
### EE: Too many failed login attempts now lock the account
To improve the security of your Enterprise Edition instance, we now automatically lock user accounts after a `threshold` number of failed login attempts made within `monitoring-window`. Both, the number of failed attempts, the monitoring window to track consecutive number of failed attempts and (soon) the duration of how long the user remains locked are configurable.
```yaml
security:
login:
failed-attempts:
threshold:10
monitoring-window:PT15M # period to count failed attempts
# lockout-duration: PT24H # period the account remains locked — will be added in the next release
```
Note that this change is only relevant for users who leverage LDAP or basic authentication (not relevant for SSO-users). Superadmin can unlock the user manually by resetting their password from the user's detail page.
### Change to `readinessProbe` and `livenessProbe`
Before [this PR](https://github.com/kestra-io/helm-charts/pull/62/files), both probes pointed to `/health`. This caused Kubernetes to restart the pod when an external component was unavailable. To resolve this, we updated the value file to configure the liveness and readiness probes to use the health paths recommended by Micronaut:
- Liveness probe now points to `/health/liveness`
- Readiness probe now points to `/health/readiness`.
### Plugins using the `version` property
With the introduction of plugin versioning, we reserve the `version` keyword for internal use, allowing us to specify the Kestra plugin version. As a result, we’ve renamed the `version` property for a few plugins that already used it, incl. the following:
-`io.kestra.plugin.elasticsearch.Get` → renamed as `docVersion`
-`io.kestra.plugin.opensearch.Get` → renamed as `docVersion`
-`io.kestra.plugin.mqtt.RealtimeTrigger` → renamed as `mqttVersion`
-`io.kestra.plugin.mqtt.Trigger` → renamed as `mqttVersion`
-`io.kestra.plugin.serdes.parquet.IonToParquet` → renamed as `parquetVersion`
Note that your **custom plugins** will need an equivalent approach of renaming any plugin that uses the `version` property, as this is now a core property reserved for plugin management. If any of your custom plugins rely on a `version` property, they won't compile anymore unless you rename that property to a different name.
### Change in the default value for the `kv()` function
Before Kestra 0.22, the `kv()` function had the property `errorOnMissing` set to `false` by default. We changed it to be `true` by default. If you want to keep the previous behavior of returning `null` without an error when attempting to fetch non-existing KV-pairs, use the syntax `"{{ kv('NON_EXISTING_KV_PAIR', errorOnMissing=false) }}"`.
@@ -42,6 +44,9 @@ public class KvUpdateCommand extends AbstractApiCommand {
@Option(names={"-f","--file-value"},description="The file from which to read the value to set. If this is provided, it will take precedence over any specified value.")
publicPathfileValue;
@Inject
privateTenantIdSelectorServicetenantService;
@Override
publicIntegercall()throwsException{
super.call();
@@ -56,7 +61,7 @@ public class KvUpdateCommand extends AbstractApiCommand {
@CommandLine.Option(names={"--port"},description="The port to bind")
IntegerserverPort;
@Override
publicIntegercall()throwsException{
log.info("Machine information: {} available cpu(s), {}MB max memory, Java version {}",Runtime.getRuntime().availableProcessors(),maxMemoryInMB(),Runtime.version());
@CommandLine.Option(names={"--skip-indexer-records"},split=",",description="a list of indexer record keys, separated by a coma; for troubleshooting purpose only")
@@ -44,7 +45,10 @@ public class StandAloneCommand extends AbstractServerCommand {
@CommandLine.Option(names={"-f","--flow-path"},description="the flow path containing flow to inject at startup (when running with a memory flow repository)")
privateFileflowPath;
@CommandLine.Option(names={"--worker-thread"},description="the number of worker threads, defaults to four times the number of available processors. Set it to 0 to avoid starting a worker.")
@CommandLine.Option(names="--tenant",description="Tenant identifier, Required to load flows from path with the enterprise edition")
privateStringtenantId;
@CommandLine.Option(names={"--worker-thread"},description="the number of worker threads, defaults to eight times the number of available processors. Set it to 0 to avoid starting a worker.")
privateintworkerThread=defaultWorkerThread();
@CommandLine.Option(names={"--skip-executions"},split=",",description="a list of execution identifiers to skip, separated by a coma; for troubleshooting purpose only")
@@ -59,6 +63,9 @@ public class StandAloneCommand extends AbstractServerCommand {
@CommandLine.Option(names={"--skip-tenants"},split=",",description="a list of tenants to skip, separated by a coma; for troubleshooting purpose only")
@CommandLine.Option(names={"--skip-indexer-records"},split=",",description="a list of indexer record keys, separated by a coma; for troubleshooting purpose only")
@@ -28,11 +31,17 @@ public class WebServerCommand extends AbstractServerCommand {
@Inject
privateExecutorsUtilsexecutorsUtils;
@Inject
privateSkipExecutionServiceskipExecutionService;
@Option(names={"--no-tutorials"},description="Flag to disable auto-loading of tutorial flows.")
booleantutorialsDisabled=false;
privatebooleantutorialsDisabled=false;
@Option(names={"--no-indexer"},description="Flag to disable starting an embedded indexer.")
booleanindexerDisabled=false;
privatebooleanindexerDisabled=false;
@CommandLine.Option(names={"--skip-indexer-records"},split=",",description="a list of indexer record keys, separated by a coma; for troubleshooting purpose only")
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.