* Add concurrency_key table and field to payload
Add a new table custom_concurrency_key for storing concurrency keys on a
per job basis. Add the field to the job payload to populate the table on
creation of a new job.
* Rename to custom_concurrency_key
Be more explicit about the nature of the option variable by calling it
a more appropriate name.
* Delete concurrency_keys on delete_expire_items
* Propagate db errors up
* Add ref to EE changes
* update sqlx
* Add concurrency_key to tests
* Revert renaming of FlowValue field
FlowValue field concurrency_key must be named concurrency_key for
serialization purposes.
* Remove debug print statement
* Get concurrency_key from Job
Whether it is a Completed job or a queued one, add a ways to get the
associated concurrency key
* Add endpoint to get concurrency_key
* Add endpoint and button to get job concurrency_key
Add a line with a link on the FlowMetadata that goes to the
concurrency_groups page. add endpoint to get the concurrency_key of a
job
* Merge concurrency_key tables into one
migration + change all related querrys
* Add concurrency plot to the runs page
* Prepare sqlx
* Add concurrency Key filter on UI
* Prepare sqlx
* Prepare sqlx
* Fix filter and order query
The limit makes more sense if we cut the older rows, so order by
started_at
* Factor interpolation to reuse on concurrency key
Factor the arg interpolation logic into a function and finish the
processing of concurrency key before insertion
* Remove old concurrency key processing logic
* Second transaction with userdb
To send all concurrency intervals but revealing only uuids of accessible
jobs, make a second transaction with the userdb.
* Remove old second endpoint
the intervals endpoint now also gets the concurrencyt key information
for all jobs
* Show external jobs
* Put filters into a dropdown
Create a ToggleButtonMore and put elements into a dropdown
* Add toggle between two graphs
* Add filter functionality to concurrency graph
* Improve concurrency graph front
* Fix concurrency groups page
* Prepare sqlx
* Add ref to ee
* Change migration to create new table instead
Instead of renaming the custom_concurrency_key_ended atble, we create a
new table and we will delete custom_concurrency_key_ended in the future
when it is no longer linked to any jobs
* Do small UI improvements
* Fix range fusion by not filtering past jobs
Instead of filtering jobs in the backend on a startedAfter value, limit
the query to 1000 and query all possible towards the past to get a good
context for the graph in most sane situations
* Improve frontend UI
* feat: Add default timeout for instance and custom timeout for scripts
* final
* sqlx prepare
* Logs a warning in the job logs
* Fix merge
* JOB_DEFAULT_TIMEOUT is an optional
* Fix JOB_DEFAULT_TIMEOUT monitor loading
---------
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
* BE v1 for priority queue
* Add FE prototype
* sqlx prepare
* Disply priority badge in job detail view
* sqlx prepare post merge
* Add priority number input field next to toggle
* increase dnd timeout for app events
* Update db migration
* Fix FE import
* Add badge to script/flow details page and fix EE-only mention in tooltip
---------
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* Add concurrency a per-script concurrency limit
* Add a per-script per time window concurrency limit
* Improve feature with a better estimation of the next schedule timestamp
* Add concurrency limits for inline scripts
* Fix tests
* run sqlx prepare
* Add requeue event to job logs
* basic cron schedule editing ui
* schedules run in a user-specified timezone
* fix other uses of CronInput component
* use now() from database to schedule next job
* offset -> IANA timezone conversion on db migration
* sqlx ci
---------
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>