Features
- core: add labels on runContext (Ludovic DEHON)
- webserver: store Basic Authentication in Repository + force email address as username #2911 (brian.mulier)
- core: add an enum to specify the Comparison to use when matching namespace (#2930) #2930 (brian-mulier-p)
- core: usage per tenant #2927 (brian.mulier)
- *****: upgrade to Micronaut 4 and SLF4J 2 #2750 (Loïc Mathieu)
- *****: move to Jakarate EE #2750 (Loïc Mathieu)
- webserver: remove usage of media type text/json #2750 (Loïc Mathieu)
- *****: improve closing of the queue and the server components #2750 (Loïc Mathieu)
- *****: upgrade to Micronaut 4.2.2 and all other libs #2750 (Loïc Mathieu)
- *****: Migrate from RxJava2 to Reactor #2750 (Loïc Mathieu)
- core: allow flow to define and expose outputs (#2133) #2910 (Florian Hussonnois)
- webserver: rename trigger endpoint (Ludovic DEHON)
- docker: introduce Solace plugin #2932 (Florian Hussonnois)
- core: rename input id to input name (#2950) #2950 (Ludovic DEHON)
- core: add Pebble encrypt and decrypt functions #2892 (Loïc Mathieu)
- core: increase flow wait duration in PauseTest #2889 (Loïc Mathieu)
- core: Execution Resumed #2889 (Loïc Mathieu)
- ui: stats page in Administration menu #2963 (brian.mulier)
- make bug report template shorter (#2916) #2916 (Anna Geller)
- new SECRET input type #2946 (Loïc Mathieu)
- allow encryption via the RunContext #2971 (Loïc Mathieu)
- tasks: add a storage task to reverse a file (Ludovic DEHON)
- core: fetch last revision of a flow #2968 (brian.mulier)
- webserver: generate outdated warning upon Flow validation if revision is provided #2968 (brian.mulier)
- ui: display warning and additional confirm popup in case of editing an outdated revision #2968 (brian.mulier)
- core: remove deprecated handlebars (#2986) #2986 (Ludovic DEHON)
- core: add plugin configurations (#2952) #2975 (Florian Hussonnois)
- core: add a filter for child executions (#2993) #2993 (Ludovic DEHON)
- core: transmit kill to subflows (#2220) #2970 (Florian Hussonnois)
- allow to delete flow execution logs #3002 (Loïc Mathieu)
- core: remove newline to allow multi-line secret #2974 (Loïc Mathieu)
- automatic encryption and decryption of task outputs #3005 (Loïc Mathieu)
- core: Add a namespace condition on the flow trigger without any condition #3013 (Loïc Mathieu)
- core: automaticaly hide secret on log (#3018) #3018 (Ludovic DEHON)
- new execution date property (#2793) #2793 (YannC)
- *****: remove logId and delete log by query #3028 (Loïc Mathieu)
- new backfill implementation (#3019) #3019 (YannC)
- add a step to automate adding BC to release notes (Anna Geller)
- core: disable trigger (#3052) #3052 (YannC)
- core: Trigger stopAfter #3054 (Loïc Mathieu)
- ui: introduce new tabs (Ludovic DEHON)
- ui: display pagination at top (Ludovic DEHON)
- *****: emit a warning when using the 'system' namespace #3056 (Loïc Mathieu)
- add makefile to build and deploy kestra locally #2966 (Florian Hussonnois)
- core: generates a fail execution if we cannot evaluate a Schedule #3066 (Loïc Mathieu)
- make backfill end date not mandatory (#3078) #3078 (YannC)
- backfill progression (#3097) #3097 (YannC)
- core: send a failed execution if evaluating a condition fail for a polling trigger #3092 (Loïc Mathieu)
- *****: update execution labels #3081 (Loïc Mathieu)
- *****: enable mass resume (#3105) #3105 (yuri)
- core: Recover Missed Schedule #3102 (Loïc Mathieu)
- core: add type to flow outputs (#3094) #3109 (Florian Hussonnois)
- ui: move save on editor at top (Ludovic DEHON)
- scheduler: schedulecondition to condition (#3115) #3115 (YannC)
- cli: add --api-token option #3104 (Florian Hussonnois)
- core: Deprecate
tasks
anderrors
property of Pause task (#3122) #3122 (YannC) - core: add enum input & output type (Ludovic DEHON)
- core: add new Deduplicate task for storage #3123 (Florian Hussonnois)
- core: add new FilterItems task for filtering records from file #3161 (Florian Hussonnois)
- ForEachItem as a flowable #3119 (Loïc Mathieu)
- ui: add homepage doc in flow editor (YannC)
Bug Fixes
- core-ee: avoid the need of recursiveness when generating outputFiles (brian.mulier)
- ui: add cookie on api call (Ludovic DEHON)
- use same JDBC mapper (#2915) #2915 (YannC)
- tests: ExecutionControllerTest.downloadFile test is no longer based on application.yml to prevent changes from failing it (brian.mulier)
- core: map with nested number list are properly rendered #2928 (brian.mulier)
- tests: longer timeout for parallel flow testing #2928 (brian.mulier)
- webserver: use a POJO to bind the request in the stats API #2750 (Loïc Mathieu)
- webserver: cannot bind multiple time the request body #2750 (Loïc Mathieu)
- jdbc: close gracefully the JdbcExecutor in case of unhandled exceptions #2750 (Loïc Mathieu)
- jdbc: use a thread executor per jdbc queue #2750 (Loïc Mathieu)
- core: validation messages has changed #2750 (Loïc Mathieu)
- jdbc: use a qualified asterisk to fix a jOOQ bug with MySQL #2750 (Loïc Mathieu)
- webserver: workaround or Micronaut 4 bugs with subtype serialization #2750 (Loïc Mathieu)
- core: workaround Micronaut 4 unable to replace a validator #2750 (Loïc Mathieu)
- core: remove @notblank on Log.message #2750 (Loïc Mathieu)
- ui: handle empty message log (Ludovic DEHON)
- core: use consistent hashing function for storage prefix (#2934) #2935 (Florian Hussonnois)
- typo in the link (Anna Geller)
- core: taskRunValue should be optional for task state file #2955 (Florian Hussonnois)
- webserver: don't load the flow from the execution as we already have it #2960 (Loïc Mathieu)
- missing type (Anna Geller)
- re-enable test #2954 (Loïc Mathieu)
- ui: forgotten renaming name to id (YannC)
- core: Jakarta package (Loïc Mathieu)
- ui: fix task run logs download #2885 (yuri1969)
- ui: rename name for id #2946 (YannC)
- jdbc: retry flaky test #2971 (Loïc Mathieu)
- core: don't crash upon injecting Namespace Files if the root folder doesn't exist #2977 (brian.mulier)
- ui: using Utils to download logs to prevent polluting body #2978 (brian.mulier)
- ui: no more error due to lacking revision upon generating graph from source #2988 (brian.mulier)
- ui: id and namespace are reset if changed on an existing flow #2989 (brian.mulier)
- ui: fix duplicated subflow logs (#2641) #2990 (Florian Hussonnois)
- core: missing title for subgroup plugins (Ludovic DEHON)
- ui: better naming for executions filters (Anna Geller)
- core: filtering on flowId is not working (Ludovic DEHON)
- lint error on Kill.vue #3010 (Loïc Mathieu)
- core: log on console are not working anymore (Ludovic DEHON)
- core: worker group validation issue (#3015) #3015 (YannC)
- jdbc: JDBC concurrency limit #2995 (Loïc Mathieu)
- core: add a setter on AbstractTrigger.minLogLevel for backward compatibility (Loïc Mathieu)
- core: init logger before computing variables in the run context #3017 (Loïc Mathieu)
- core: implement concurrency without ExecutionQueued #2994 (Loïc Mathieu)
- core: trigger immediatly new triggers #3027 (Loïc Mathieu)
- prevent worker exit when instance is standalone (#3046) #3046 (YannC)
- alert action step (Anna Geller)
- webserver: change default logging for access (Ludovic DEHON)
- ui: select font-size align to other form items (Ludovic DEHON)
- ui: fix relative time filter range #3031 (yuri1969)
- ui: remove end date range for the execution search #3053 (Loïc Mathieu)
- ui: render trigger description as Markdown (#3050) #3050 (yuri)
- heartbeat: revert prevent systemExit on standalone and add more logs (#3057) #3057 (YannC)
- backfill doc (Anna Geller)
- remove backfill from examples (Anna Geller)
- backfill deleted when shouldn't (#3064) #3064 (YannC)
- ui: allow to save the default flow without any modification #3063 (Loïc Mathieu)
- missing button in admin triggers (#3065) #3065 (YannC)
- ui: proper select size for small and large (Ludovic DEHON)
- ui: fix style of date time input on disabled date (Ludovic DEHON)
- ui: enhance ux on flow backfill (Ludovic DEHON)
- core: polling trigger didn't update their next evaluation date #3070 (Loïc Mathieu)
- core: stopAfter tests didn't really test that the trigger is disabled #3066 (Loïc Mathieu)
- update readme (Anna Geller)
- ui: better absolute / relative filter design (Ludovic DEHON)
- only required one double click to execute action (#3077) #3077 (YannC)
- ui: make polling trigger visible in UI (#3080) #3080 (YannC)
- correct next execution date when updating trigger from ui/source (#3079) #3079 (YannC)
- ui: tabs are not handle when the menu is collapsed (Ludovic DEHON)
- core: deprecated properties failed to render as markdown (Ludovic DEHON)
- core: fix plugin document generation (Ludovic DEHON)
- ui: export flows #3093 (Loïc Mathieu)
- ui: lint issue (Loïc Mathieu)
- fix issue at backfill creation (#3096) #3096 (YannC)
- ui: render HTML inside bulk select button #3100 (yuri1969)
- ui: minor UI fix #3081 (YannC)
- core: WorkerGroupValidator never validates on the Namespaces page #3103 (Loïc Mathieu)
- ui: reset the set labels dialog (#3110) #3110 (yuri)
- core: base64 decode the provided encryption key #3114 (Loïc Mathieu)
- ui: éxécution -> exécution #3102 (Loïc Mathieu)
- SchedulesScheduleTests don't need to start the worker #3102 (Loïc Mathieu)
- core: rename recoverMissedSchedules property #3117 (Loïc Mathieu)
- core: fix SchedulerScheduleTest #3118 (Loïc Mathieu)
- ui: foreach button size (#3120) #3120 (YannC)
- core: prevent standalone worker from being evicted #3116 (Florian Hussonnois)
- ui: trigger with no state on the triggers page (Ludovic DEHON)
- ui: remove char from html in App.vue (YannC)
- ui: editorView CSS (YannC)
- ui: missing executions page daily statistic #3125 (Loïc Mathieu)
- ui: display topology view (YannC)
- core: default documentation to required false #3146 (Loïc Mathieu)
- ui: french translation execution -> exécution (Loïc Mathieu)
- ui: no error on settings page for super admin with no tenant access (#3151) #3151 (YannC)
- ui: prevent enabled/disabled trigger already disabled from flow definition (#3149) #3149 (YannC)
- core: don't break on core for an invalid class (Ludovic DEHON)
- ui: prevent html tags (Ludovic DEHON)
- ui: remove magic numbers (Ludovic DEHON)
- ui: Do not display any state for trigger when no execution (#3166) #3166 (YannC)
- ui: light mode selected editor button (#3167) #3167 (YannC)
- core: invalid examples (Ludovic DEHON)
- core: fix falling test on trigger controller (Ludovic DEHON)
- ui: fix toast for validating security #3169 (Florian Hussonnois)
- ui: dialog header padding (Ludovic DEHON)
- core: rename task Deduplicate to DeduplicateItems #3173 (Florian Hussonnois)
- ui: don't display top pagination on embed (Ludovic DEHON)
- ui: don't display flow revision on the dashboard (Ludovic DEHON)
- core: fix Pause task topology when no sub-tasks #3175 (Loïc Mathieu)
- core: FlowTriggerTest #3177 (Loïc Mathieu)
- core: log empty messages #3178 (yuri1969)
- ui: refresh is directly enable if set on relative (#3181) #3181 (YannC)
- ui: issue when no message in logline (#3183) #3183 (YannC)
- ui: fix style of execution filter query labels (#3168) #3186 (Florian Hussonnois)
- ui: taskruns page issue (YannC)
- ui: make prism-js responsive (YannC)
- ui: lint issue (Loïc Mathieu)
Documentation
- add example for accessing parent taskrun value (#3033) #3033 (Anna Geller)
- add stopAfter example (Anna Geller)
- add timezone link (Anna Geller)
Code Refactoring
- core: use plugin configurations to enable/disable subflow outputs (#2952) #2975 (Florian Hussonnois)
- ui: remove on backfill duplicate from flow run (Ludovic DEHON)
Chores
- version: update snapshot version 'v0.15.0-SNAPSHOT'. (Ludovic DEHON)
- test: fix falling test (Ludovic DEHON)
- core: add new interface for accessing Kestra storage #2929 (Florian Hussonnois)
- ui: introduce ESLint check in build (#1860) #1860 (yuri)
- cicd: use a special database for each unit test (Ludovic DEHON)
- deps: bump some gh actions (Ludovic DEHON)
- jdbc: retry flacky test JdbcRunnerTest.forEachItemSubflowOutputs (Loïc Mathieu)
- core: move all flow listeners test to their own namespace #3013 (Loïc Mathieu)
- core: rename CryptoService to EncryptionService and made the key optional #3017 (Loïc Mathieu)
- core: rename prop for enabling subflow outputs (#2953) #3021 (Florian Hussonnois)
- *****: upgrade to Micronaut 4.3 with other dependency upgrades #3014 (Loïc Mathieu)
- webserver: retry flaky test ExecutionControllerTest.killPaused() #3014 (Loïc Mathieu)
- core: add required utility methods #3044 (Florian Hussonnois)
- ui: add a toast asking user to validate their instance security (#2583) #3157 (Florian Hussonnois)
- test: fix falling test (Ludovic DEHON)
- deps: update ui deps (Ludovic DEHON)
- deps: update all java deps (Ludovic DEHON)
- webserver: test request utils (#3006) #3006 (yuri)
- deps: bump org.apache.logging.log4j:log4j-to-slf4j #3141 (dependabot[bot])
- version: update to version 'v0.15.0'. (Loïc Mathieu)
Commits
- c7640c8: Update README.md (#2933) (Scott Gunn) #2933
- ea52d21: fix(cli,core): simplify KestraAplicationContextBuilder (Loïc Mathieu) #2750
- bedb22b: feat(webserver,cli): replace our custom access log by Micronaut's one (Loïc Mathieu) #2750
- 7b52ef4: fix(cli,core): disable for now tests that needs plugin recompilation (Loïc Mathieu) #2750
- feature(core): relative time filter #2894 (yuri1969)
- 7af71aa: Feat(core, jdbc): refactor execution loggind and add the tenant (Loïc Mathieu) #3071
- 0514962: Feat/schedule refacto (#3075) (Loïc Mathieu) #3075
- ffc8800: fix(ui, websever): rename startDateRange to timeRange and add support for it in the mass actions (Loïc Mathieu) #3099
- ff725e1: feat/setup-configuration (#3025) (brian-mulier-p) #3025
- 6740aa2: closes #3111 (Anna Geller)
Breaking Changes
- Migration to Micronaut 4: Kestra 0.15.0 migrates to Micronaut 4.3. This migration brings a lot of improvements and new features, but it also introduces some breaking changes. Check the migration guide for more details on how you can migrate your custom plugins.
- Change in concurrency control with the Kafka runner: if you're on the Kestra Enterprise Edition with a Kafka backend, make sure that all executions that use concurrency limits terminate (they must finish or you need to manually kill them) before upgrading to 0.15.0. This is due to a fix implementing concurrency limits without
ExecutionQueued
. To efficiently drain all your executions, you can stop the Webserver and the Scheduler, and then wait for the Executor and the Worker to finish pending executions. Once all executions are finished, you can upgrade to 0.15.0. - Backfill change: Deprecation of
backfill
source code property in theSchedule
trigger in favor of the new UI backfill feature. You can still have backfills specified in the source code but they will have no effect, as backfill is now an API-first feature. - Inputs now use
id
instead ofname
: thename
property is deprecated in favor ofid
for consistency with the rest of the Kestra flow configuration, including the flows, tasks, and triggers. This deprecation is implemented in a non-breaking way so that you don't need to immediately change your existing flows in order to successfully migrate to 0.15.0, but we recommend using theid
property at least for new flows. Thename
property will be removed in the future. - Subflow outputs behavior: the
outputs
property of aSubflow
task is deprecated. Instead, use flowoutputs
to pass data between flows. If you have many subflows passing data between each other and you need more time for the migration, you can add a configuration to keep the old behavior. Check the migration documentation for more details. scheduleConditions
deprecation: to make the configuration more consistent, we've unified thescheduleConditions
with the generic triggerconditions
. As a result of this change, thescheduleConditions
property is marked as deprecated; simply rename it toconditions
to future-proof your flows. This change is implemented in a non-breaking way, so you don't need to immediately change your existing flows in order to successfully migrate to 0.15.0. However, we recommend using theconditions
property at least for new flows. ThescheduleConditions
property will be removed in the future. For more details and examples, check the Schedule Conditions migration guide.