Commit Graph
58 Commits
Author SHA1 Message Date
HugoCasa 21b9accca1 feat: replace ephemeral tokens by jwt (#3908)
* feat: replace ephemeral tokens by jwt

* fix: migration + sqlx

* fix: tests, agent, ee ref

* fix: sqlx

* fix: tests

* fix: jwt prefix change + fix tests

* fix: nit

* fix: handle agent mode
2024-06-14 13:07:35 +02:00
wendrul d3942097df Add concurrency limits observability (#3586)
* 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
2024-05-15 20:15:14 +02:00
Ruben Fiszel 4c927865ef fix compile 2024-05-09 23:42:17 +02:00
11b3ea3ac8 feat: local typescript codebase as bundle (#3694)
* codebases

* codebases

* foo

* foo

* foo

* foo

* fix(frontend): Disable the insert button when required fields are empty strings (#3659)

* fix(frontend): use normal password mask for the sensitive fields of the resource editor

* handle super admins in password arg input

* chore(main): release 1.323.2 (#3660)

* chore(main): release 1.323.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>

* foo

* all

* s3_helpers move

* progress

* all

* progress

* progress

* progress

* progress

* codebase final

* update without ee

* sqlx

* all

* all

* all

* all

* all

* all

* all

* all

* all

* all

* all

* all

* all

* all

* all

* update

* all

* all

* all

---------

Co-authored-by: Faton Ramadani <faton.ramadani14@gmail.com>
Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-05-09 18:35:50 +02:00
Ruben Fiszel 4f3c28c810 increase max worker connections to 5 2024-05-03 08:39:51 +02:00
HugoCasa 29b1e6f6a2 feat: critical error side channel (#3625)
* feat: critical error side channel

* feat: trigger workspace error handler or critical channel on schedule error handling failure

* fix: build

* feat: finish critical error side channel

* feat: channels instead of just emails + move to EE

* fix: remove superfluous func

* fix: nits + ee ref

* fix: open source build

* fix: nits

* chore: update ee ref
2024-05-02 20:21:23 +02:00
HugoCasa 1d7bab075b feat: private hub (#3491)
* feat: private hub v0

* feat: add UI setting

* Update ee.rs

* Update ee.rs

* fix: remove ee symlink

* fix: add back CE ee.rs

* feat: disable s3 embedding loading when private hub

* feat: reload embeddings on hub url change

* fix: only reload embeddings db on server mode

* patch: set default hub url const

* fix: nit
2024-04-04 04:16:53 +02:00
Ruben Fiszel 4c388533fb chore: update deps 2024-03-21 13:37:17 +01:00
Ruben Fiszel df910d7441 fix: be less agressive with log streaming for long jobs 2024-03-14 19:42:41 +01:00
Ruben Fiszel 4578ed32da feat: implement s3 oidc support + azure workload identity support 2024-03-08 22:51:16 +01:00
HugoCasaandRuben Fiszel 31c17be8b7 chore: stats in EE (#3296)
* feat: switch stats to closed source

* fix: remove symlink

* fix: add emptied stats

* fix: remove unneeded imports

* fix: embedding feature flag

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2024-02-26 20:08:22 +01:00
Ruben Fiszel 494ce162c0 chore: fasten compilation time 2024-02-24 16:29:35 +01:00
HugoCasa 458550f314 fix: backend build on macos (#3243) 2024-02-19 09:58:12 +01:00
Mikhail Zagurskiy a354ebd6ea Fix build for Windows (#3235)
* Fix build for Windows

* Fix typo
2024-02-17 10:45:38 +01:00
Ruben Fiszel 887bf6872b fix: increase default max conn of a worker to 4 2024-02-06 15:33:05 +01:00
Ruben Fiszel 2c4eb46e65 fix: decrease database connections of workers to 3 2024-02-04 18:32:14 +01:00
Ruben Fiszel 94493812ac feat: improve git sync and recompute dependents when common python script is redeployed (#2967)
* fix: allow extraConfig for agGrid to set onGridReady

* depmap

* depmap

* depmap

* depmap
2024-01-07 15:18:27 +01:00
Guillaume Bouvignies 0710ce6ef2 feat: Detailed job memory footprint on job run page (#2956)
* feat: Detailed job memory footprint

* Address rubens comment

* double presion -> real

* sql query returns only metric_type
2024-01-05 09:13:05 +01:00
Guillaume Bouvignies b44618f35b feat: Job caching now works with S3 files (#2934) 2023-12-30 03:40:05 +01:00
Guillaume BouvigniesandRuben Fiszel 26670f62e5 feat: Add default timeout for instance and custom timeout for scripts (#2811)
* 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>
2023-12-13 07:08:07 +01:00
Guillaume Bouvignies b65657d0f8 feat: Add possibility to delete flow step results when the flow is complete (#2806)
* feat: Add possibility to delete flow step results when the flow is complete

* Add third layer of tabs and gate feature to EE
2023-12-08 21:30:44 +01:00
HugoCasa 1ed52ab4c9 feat: add new stats (#2568)
* feat: add new stats

* feat: use license key id + manually send usage
2023-11-06 18:23:25 +01:00
Ruben Fiszel 55ceca1913 fix: move keep job directories and expose debug metrics to instance settings UI 2023-10-26 13:08:39 +02:00
Ruben Fiszel ea28163865 fix: prometheus metrics are an instance settings 2023-10-25 23:32:47 +02:00
Ruben Fiszel bed4b51c5b add support for batch flow jobs 2023-10-23 21:53:22 +02:00
HugoCasa 7037d70ca2 feat: add unique id (#2483)
* feat: add unique id

* fix: sqlx prepare

* feat: add disable option

* fix: cron schedule
2023-10-23 17:05:54 +02:00
3f4af48b0b feat: Priority queue (#2476)
* 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>
2023-10-23 14:22:59 +02:00
Yt 7905e2c853 feat: enable secret to be read from file (#2477) 2023-10-21 14:35:34 +02:00
Guillaume Bouvignies 2dc75f0f65 feat: Mute workspace error handler for flows and scripts (#2458)
* feat: Mute workspace error handler for flows and scripts

* implement BE muting

* Add tooltip to bell icon

* change field name to ws_error_handler_muted

* revert new field for queue table

* Error when error handler not set

* extract svelte component and use flow table column

* Fix flow error handler result arg
2023-10-17 22:07:13 +02:00
Ruben Fiszel 2f0e43bfdb feat: set instance settings from UI (#2314) 2023-09-20 23:15:19 +02:00
Ruben Fiszel 408a8b0fb4 fix nb of conns 2023-09-15 09:32:11 +02:00
Ruben Fiszel 03f75bc873 fix tests 2023-09-15 09:30:33 +02:00
Ruben Fiszel 070b16222b feat: worker groups admin panel (#2277)
* merge

* merge

* merge

* wg

* progress

* all

* all

* all

* all

* all

* all

* fix

* fix
2023-09-13 21:24:54 +02:00
Ruben Fiszel c80f155602 feat: dedicated workers for native-throughput performance (EE only) (#2239)
* dedicated worker

* dedicated worker

* merge

* progress

* progress

* progress

* merge

* update

* sqlx

* fix imports
2023-09-06 10:32:53 +02:00
Ruben Fiszel 7c5ea569a8 feat: add global cache configuration 2023-08-30 13:35:41 +02:00
Ruben Fiszel 81575468e7 fix get latest deployed for path 2023-08-29 15:12:53 +02:00
Ruben Fiszel 03e48a4ca5 feat: add caching to flows and scripts (#2193)
* cachettl

* all
2023-08-29 13:00:20 +02:00
Ruben Fiszel fbc62e8ca5 remove unecessary postgres transactions and improve performance 2023-08-22 00:34:44 +02:00
Ruben Fiszel e9c19b5b98 fix: unify clients to use server-side interpolation to retrieve full resources 2023-08-17 20:16:50 +02:00
72d0d8a7f5 chore(backend): upgrade sqlx to ^0.7 (#1865)
* DRAFT chore(backend): upgrade sqlx to ^0.7

related to:
* https://github.com/windmill-labs/windmill/pull/1858
* https://github.com/launchbadge/sqlx/issues/1163#issuecomment-1627685514

* (vol. 2) in 0.7, `Transaction` can no longer implement `Executor` directly

ref: https://github.com/launchbadge/sqlx/blob/afb6b1066e61f8e3875f530d96cfb5a299f13fda/examples/postgres/transaction/src/main.rs#L14-L17

notice that I'm temporarly using my custom patch
https://github.com/mrl5/sqlx/commit/16e4c9a8f380214ad61b1744d3e1f5fa866ffbcc
it's related to https://github.com/launchbadge/sqlx/issues/2611

* post git rebase chores

* use upstream fix from 0.7.1

* fix compile

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
2023-07-15 14:06:20 +02:00
Guillaume Bouvignies e2fb35a487 feat: Per script concurrency limit with time window (#1816)
* 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
2023-07-11 23:35:26 +02:00
Ruben Fiszel 263e03c2bd feat: remove the need for BASE_INTERNAL_URL 2023-06-12 12:00:42 +02:00
Ruben Fiszel de9abd129d feat(backend): add EXIT_AFTER_NO_JOB_FOR_SECS for ephemeral workers 2023-04-28 00:09:48 +02:00
Ruben Fiszel f568bb1bd8 fix script in schedule should use latest hash 2023-04-27 18:03:12 +02:00
Ruben Fiszel 722783f7f6 feat(backend): worker groups (#1452)
* tagged scripts

* tagged scripts

* fix

* fix

* fix

* all

* update sqlx
2023-04-23 16:57:23 +02:00
Ruben Fiszel 3d031c7017 feat(backend): only run fully deployed scripts 2023-04-21 12:49:47 +02:00
Ruben Fiszel 62d196ecec add barrier when num workers > 1 2023-04-19 17:00:03 +02:00
Ruben Fiszel 34f48aa1e3 split worker.rs into more files 2023-04-13 17:44:47 +02:00
Ruben Fiszel 3097510550 only register prometheus metrics if they are enabled 2023-04-09 15:39:25 +02:00
Ruben Fiszel 94eecea02b feat(backend): add /ready endpoint for workers 2023-04-05 10:34:25 +02:00