3022 Commits

Author SHA1 Message Date
Loïc Mathieu
fd5279eea4 feat(execution): SDK auto auth for plugins 2026-02-02 17:33:10 +01:00
AJ Emerich
a8544a8b7a docs(core-plugins): add and improve descriptions 2026-02-02 11:10:56 +01:00
brian-mulier-p
41aa1cb1f6 fix(core): namespace file read scheduler backed with buffering queue (#14370)
closes https://github.com/kestra-io/kestra/issues/14226
2026-02-02 10:52:56 +01:00
Nicolas K.
f655e4d7f8 feat(apps): add human task validation to apps (#14358)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2026-01-30 17:13:11 +01:00
Nicolas K.
264b0cb66b feat(executions): prevent killed execution to re restarted or have it status changed (#14374)
Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2026-01-30 16:31:44 +01:00
Loïc Mathieu
0a5f915fe4 chore(system): remove unused deleted column in logs and metrics 2026-01-30 11:47:41 +01:00
Loïc Mathieu
bfcdba42c5 chore(system): implements soft deletion consistenly accross entities 2026-01-30 11:47:41 +01:00
Mustafa Tarek
664ec7bcf0 chore(tests): enhance test coverage for WaitFor max duration functionality 2026-01-30 10:02:47 +01:00
brian-mulier-p
034eedc69d fix(assets): task-level declared output assets can use current task output in pebble (#14345)
closes https://github.com/kestra-io/kestra-ee/issues/6424
2026-01-29 15:28:49 +01:00
Mustafa Tarek
a058315ce7 fix(core): os incompatibility file path problem (#13783)
closes #13740
2026-01-29 13:24:47 +01:00
Andor Markus
b306907b12 feat(webhook): add responseContentType property for custom response content types
Add support for custom response content-type in webhook triggers to enable
integration with services like Microsoft Graph that require text/plain responses
for validation handshakes.

Changes:
- Add responseContentType property to Webhook trigger (allowed: application/json, text/plain)
- Update ExecutionController to handle text/plain responses when returnOutputs is true
- Add validation for allowed content type values
- Add example for Microsoft Graph webhook validation use case
- Add unit and integration tests

Closes #14272
2026-01-29 10:55:21 +01:00
Loïc Mathieu
194cb675d1 chore(flows): deprecate io.kestra.plugin.core.log.Fetch task in favor of io.kestra.plugin.kestra.logs.Fetch 2026-01-29 10:34:03 +01:00
Loïc Mathieu
8c6ffc7fe1 fix(dashboard): filter for NORMAL kind on KPI 2026-01-28 13:33:41 +01:00
brian-mulier-p
2045dc43df fix(core): Exit task was not setting the parent taskrun attempt state (#14316)
closes https://github.com/kestra-io/kestra/issues/14309
2026-01-27 14:05:45 +01:00
wangk
4cee20e771 add test
Added a test for fetching execution values in the dashboard, ensuring that test executions are not included in the results.
2026-01-27 11:58:50 +01:00
Will Russell
b7acf44d42 docs(conditions): add deprecated note (#14291) 2026-01-23 13:40:35 +00:00
Swoyamjeetcodes
cb7e0ef112 fix(core): allow string expressions in Property schema validation 2026-01-22 15:21:57 +01:00
gluttonweb
5a16157ee5 chore(system): Abstract the implementation of the emitOnly method into the interface as well 2026-01-22 15:19:22 +01:00
Shivansh Sharma
868afe41a8 chore: implement HasUID constraint in JDBC repositories and refactor AbstractJdbcCrudRepository 2026-01-21 17:57:45 +01:00
Loïc Mathieu
cb72a6ef63 fix(system): honor JDK proxies when installing plugins
Fixes https://github.com/kestra-io/kestra-ee/issues/6417
2026-01-21 13:18:23 +01:00
Roman Acevedo
4cd0da8c45 test(system): bring back partial parallelization + load flow with tenant annotation
* test(system): bring back parallelization on core, jdbc-h2, jdbc-mysql and jdbc-postgres

* fix(tests): make some tests sequential

* feat(tests): make tests run in parallel

* fix(tests):make unit test pass

* fix(tests): add load flow with tenant to clean the tests and remove flakyness

* fix(tests): failing unit test

* test: remove // on core

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
Co-authored-by: Nicolas K. <nk_mikmak@hotmail.com>
2026-01-21 12:16:32 +01:00
Mustafa Tarek
beabf236e8 fix(execution): decrypt secret output when used with on resume for pause task (#14179)
* feat(core): return EncryptedString object for SecretInput in case of pause task
- this is important for proper decryption when secret input is from onResume in pause task

* feat(tests): add test coverage for secret input decryption case for onResume with PauseTask

* fix(tests): create state for execution to avoid failing tests in InputsTest

* fix(tests): add the missing secret input and assert on it at resumeExecutionPausedWithInputs() test

* feat(core): return EncryptedString object for secret inputs
- providing type is required for decrypting pause task secret outputs
- remove the redundant explicit mapping to EncryptedString in typedOutputs() method

* chore(tests): remove unnecessary added execution state at InputsTest

* fix(tests): resumeExecutionPausedWithInputs() expects encrypted secret inputs

* fix(core): handle secret input casting to map when masking log in case of decryption is not enabled

* chore(tests): update secret input assertions to assert on type and value

* chore(core): use decryptVariables for validation when extracting secret input value for log masking

* chore(core): simplify by using object variable
2026-01-21 11:42:06 +01:00
Will Russell
f60423b70f docs(logging): fix typo (#14236) 2026-01-20 17:44:17 +00:00
Will Russell
a9290386f8 docs(storage): fix examples (#14222)
* fix: concat examples

* fix: split, size and reverse examples

* fix: write, delete examples

* fix: purge execution files

* fix: concat with foreach

* fix: filteritems

* fix: deduplicate task

* fix: output

* fix properties

* fix: description

* fix: examples

* Update core/src/main/java/io/kestra/plugin/core/storage/FilterItems.java

Co-authored-by: AJ Emerich <aemerich@kestra.io>

* fix typo

---------

Co-authored-by: AJ Emerich <aemerich@kestra.io>
2026-01-20 14:30:46 +01:00
Loïc Mathieu
c032d4621a fix(trigger): Expression and ExecutionOutputs should not be scheduled condition
ScheduledCondition are special types of conditions used when computing the Schedule trigger next date.
If no next date can be computed, the Scheduler will try to compute again the next date after 1s.
So ScheduleConditions must be conditions that only works on date to limit the number of date a trigger should be scheduled on.

Without that, it creates a kind of inifinte loop.
In my local machine, this uses 5% CPU whereas with the fix the CPU becomes idle.
On resource restricted computers this can cost way more.

Fixes https://github.com/kestra-io/kestra-ee/issues/6444
2026-01-20 12:00:26 +01:00
YannC
c5df113bbe fix: add multiple type in json schema if there is aliases (#14219)
* fix: add multiple type in json schema if there is aliases

* chore: added a test that assert there is two value in the type property
2026-01-20 09:41:22 +01:00
brian-mulier-p
1d02192659 fix(kv): add metadata to KV get controller endpoint (#14198)
closes https://github.com/kestra-io/kestra/issues/14150
2026-01-19 18:42:35 +01:00
yuri
e32819a1da chore(core): use record instead of value class (#14178)
Modernized & possible perf optimization.
2026-01-19 16:37:27 +01:00
Florian Hussonnois
2fa3153560 refactor(core): cleanup API and config for namespace
Changes:
* Extract interface from NamespaceService
* Move NamespaceService.issNamespaceExist impl to FlowRepositoryInterface
* Simplify DefaultNamespaceService
* Create new KestraConfig to encapsulate kestra instance config
* Move static methods from NamespaceUtils.asTreee to NamespaceInterface
* Remove NamespaceUtils
2026-01-19 12:12:37 +01:00
Loïc Mathieu
0a95c1dc70 chore(system): deprecate RunnerUtils
TestRunnerUtils should be used in test.
The only usage has been replaced by polling the repository
2026-01-19 11:22:36 +01:00
Karel Krýda
7310b0925f Added test to validate filename population 2026-01-19 11:07:41 +01:00
Karel Krýda
6efc7078b2 Deduplicated validate function in FlowService 2026-01-19 11:07:41 +01:00
Karel Krýda
0bd850fdd9 Adapted tests 2026-01-19 11:07:41 +01:00
Karel Krýda
b91c6a3b48 Use multipart for flows validation instead of YAML string body 2026-01-19 11:07:41 +01:00
Loïc Mathieu
877775cd81 fix(execution): improve flow trigger processing perf
By initializing a condition context later
2026-01-16 12:11:54 +01:00
Yaroslav Halchenko
2b2d2bbc25 Add codespell support (config, workflow to detect/not fix) and make it fix some typos (#12912)
* Add github action to codespell develop on push and PRs

* Add rudimentary codespell config

* Tune up excludes for codespell

* [DATALAD RUNCMD] chore: run codespell throughout fixing a few typos interactively

=== Do not change lines below ===
{
 "chain": [],
 "cmd": "codespell -w -i 3 -C 4",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [],
 "pwd": "."
}
^^^ Do not change lines above ^^^

* Add inline codespell ignores in a few spots

* [DATALAD RUNCMD] chore: run codespell on two files ignoring our mixed case skips

=== Do not change lines below ===
{
 "chain": [],
 "cmd": "codespell -w core/src/main/java/io/kestra/core/runners/pebble/AbstractIndent.java ui/src/components/logs/linkify.ts",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [
  "core",
  "ui"
 ],
 "pwd": "."
}
^^^ Do not change lines above ^^^

* [DATALAD RUNCMD] chore: run codespell throughout fixing a few  new typos automagically

=== Do not change lines below ===
{
 "chain": [],
 "cmd": "codespell -w",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [],
 "pwd": "."
}
^^^ Do not change lines above ^^^

---------

Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
2026-01-15 17:42:05 +01:00
Mustafa Tarek
ed654db3d3 feat(flow): enable strict parsing for flows imported from files (#14098)
* feat(core): invalid flow yaml files shouldn't be imported

* feat(core): enhance import flow file endpoint call to have failOnError as true
- this is to allow the endpoint to catch illegal flow files when there is wrong files

* fix(tests): use valid tenant id for FlowTopologyTest

* feat(core): apply strict parsing on flow import

* chore(core): remove unnecessary validation in importFlow()
- we need to apply strict parsing only

* feat(tests): add test coverage for strict parsing for flow files import

* chore(tests): add the second flow using Download

* chore(core): use overloaded method to simplify changes

* Update core/src/main/java/io/kestra/core/services/ExecutionService.java

---------

Co-authored-by: Loïc Mathieu <loikeseke@gmail.com>
2026-01-15 15:12:48 +01:00
Nicolas K.
1faf9e1f4d fix(repositories): use term query instead of prefix for mysql (#14093)
* fix(repositories): use term query instead of prefix for mysql

* fix(repository): make mysql fulltext query works like other repositories

* clean(repository): combine term query and like query to be close to search query

---------

Co-authored-by: nKwiatkowski <nkwiatkowski@kestra.io>
2026-01-15 14:50:18 +01:00
Loïc Mathieu
ace2cb9b2b chore(system): tiny improvements
- Make `Execution.removeDisabled(List<ResolvedTask>)` public and use it instread of the passthrought `Execution.findTaskDependingFlowState(List<ResolvedTask>)` method and delete the later.
- Add namespace to the error log inside the `TestRunnerUtils`.
- Code against interfaces
- Init hashmap with the right size when possible
- Avoid cloning collections when possible
2026-01-15 14:47:26 +01:00
Florian Hussonnois
e0a97d90df refactor(system): re-implement MaintenanceService api
Adds listener pattern for maintenance mode

Changes:
* Adds utility class Disposable
2026-01-15 12:15:49 +01:00
Zhangxinyi
1d8c433130 fix: Increase job name random suffix to prevent collisions under high concurrency (#14135)
* 增加随机数长度,避免podname重名问题

* 增加单测

* 8

---------

Co-authored-by: 张新奕 <zhangxinyi25@xiaomi.com>
2026-01-14 14:48:19 +01:00
Georg Traar
e473bb8297 feat(http): add digest auth (RFC 7616) (#14149)
* feat(http): add digest auth (RFC 7616)

Adds options.auth.type: DIGEST (username/password) for HTTP tasks (Request/Download/http()).

Digest requires an initial 401 challenge/response handshake, so failure handling runs after execution to avoid aborting negotiation.

Also preserves allowedResponseCodes semantics, scopes digest creds to per-request HttpClientContext, and centralizes error construction for readability.

* chore(http): add explicit getType overrides

Avoid relying on Lombok-generated getters to satisfy AbstractAuthConfiguration.getType; add explicit @Override methods and suppress Lombok getter generation for the type field.
2026-01-13 17:52:29 +01:00
Loïc Mathieu
53ec98b2d2 fix(executions): Subflow and ForEachItem should transmit the kind
Fixes https://github.com/kestra-io/kestra/issues/14141
2026-01-13 15:57:43 +01:00
Loïc Mathieu
53f6cc03d8 Update core/src/test/java/io/kestra/core/models/tasks/runners/ScriptServiceTest.java 2026-01-13 12:56:18 +01:00
张新奕
cebe97c0d3 可靠地移除所有结尾的无效字符 2026-01-13 12:56:18 +01:00
wangk
004908bf54 chore: add tests 2026-01-13 12:02:58 +01:00
wangk
cd68717e6a fix(core):In parallel tasks, if one task is disabled, the other tasks will not run in parallel mode
In parallel tasks, if one task is disabled, the other tasks will not run in parallel mode
2026-01-13 12:02:58 +01:00
yuri1969
409723b2d2 chore(core): use annotation instead of logger field 2026-01-13 11:52:43 +01:00
Roman Acevedo
a14d965b39 fix(executions): dont persist State.getDurationOrComputeIt method 2026-01-13 10:07:38 +01:00
Roman Acevedo
390b9c3709 fix(system): ee encryptedOutputs was not applied
- This reverts commit 46025460 because we need to override this bean in EE to add additional encryption capabilities
2026-01-13 10:01:26 +01:00