* feat: Multiplayer deploy collision warning
Show warning with diff viewer if 2+ users try to deploy flow/script/app at the same time
In other words, if user A and user B started editing same flow/script/app and user A deployed it,
user B will get warning if they try to deploy as well.
* Add warning for scripts
* Add `deployedBy` to Apps
* Format
* Fix advanced deployment on scripts
* Write comments and cleanup
* feat(frontend): unify all triggers UX and simplify flow settings (#4259)
* feat(frontend): added list of triggers in the flow graph
* feat(frontend): added list of triggers in the flow graph
* feat(frontend): clean up
* feat(frontend): improve UX
* feat(frontend): triggers
* feat(frontend): triggers
* feat(frontend): done
* feat(frontend): fix trigger when position when a preprocessor is presetn
* Glm/rework flow settings v2 (#4497)
* fat(frontend): simplify flow settings menu
* improve scroll
* changing mute toggle
* Add advanced settings badge
* Add nord theme colors
* Add bage for advanced options
* fix minor issue
* fix minor issue
* Add triggers menu to flow settings
* Add quick trigger access
* remove triggers in flow settings
* fix minor issue
* Move triggers settings to flow right panel
* polishing
* fix unset store
* remove save up to for triggers
* fix padding
* reset default tag color
* remove custom select component
* revert path change
* revert section modif
* Revert unused feature
---------
Co-authored-by: Guilhem <guilhem@mbp-de-windmill.home>
* Connect top bar cron to schedules settings
* Turn copilot into node
* fix copilot placement
* remove useless import
* fix center copilot
* fix binding
* remove copilot on top of preprocessor
* render copilot node on condition
* quickfix
* remove copilot node
* fix minor issues
* fix route count update
* fix schedule sync
* harmonize colors
* fix alignment and add edges
* recenter node summary
* fix schedules sync
* Add id title
* all
* all
* all
* iteration
* all
* all
* done
* fix
* more fixes
---------
Co-authored-by: Guilhem <guilhemlemouel@gmail.com>
Co-authored-by: Guilhem <guilhem@mbp-de-windmill.home>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
* Update ScriptBuilder.svelte
* Remove `onMount` for flows
* Use version instead of last_updated_at in flows
* Use only versions for apps
* Fetch latest data in Diffs in Apps
* Optimize with (script/flow/app)GetLatestVersion
Create several new endpoints, that returns just latest version without rest of the history
* Sync Diffs with deployed
* Improve Diff's data
* Use `getFlowLatestVersion`
---------
Co-authored-by: Faton Ramadani <faton.ramadani14@gmail.com>
Co-authored-by: Guilhem <guilhemlemouel@gmail.com>
Co-authored-by: Guilhem <guilhem@mbp-de-windmill.home>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
* feat(sso): adding the ability to define a custom display name for sso
* adding openapi-deref.json
* make the display_name field optional
* Update ee-repo-ref.txt
* Allow setting progress explicitly from script body.
This feature exposes:
* `getProgress`
* `setProgress`
* `incProgress`
API in TypeScript client (python is coming soon).
NOTE: Progress cannot be out of range 0..100 and cannot decrease.
With exposed APIs there is also UI changes, so progress can be shown for individual jobs as well.
For optimization reasons, jobs start to ask for progress only after N-seconds of execution.
* feat: Add `shell.nix`
If you dont have anything but nix, dont worry, run nix-shell in root, or activate with direnv and get all needed dependencies
NOTE: You will still need docker
* feat: Add `dev.nu` to typescript client
Little helper function, allowing developer to work on ts client easier.
To use:
`./dev.nu watch`
Now add import of windmill in body of your script and `//nobundle` on top of the file
Edit ts client in your favourite editor and hit save. Script will do the rest.
* Cleanup files
* Fix: Failed to deserialize query string: missing field `get_progress`
* perf: Implement non-naive polling mechanism for getting job progress
* Add independant delay for getProgress
Problem in `TestJobLoader`:
There should be 2 delays:
One until we find our first progress (every 5s)
Once we found our first progress, we can do it every second
* nit: Use `query_scalar!` instead of `query_as`
* Fix: Sql error, no rows returned by a query that expected to return at least one row
* refactor: Remove global CSS for JobProgressBar
* Change UI for progress of flow subjobs
* Replace `Step 1` with `Running` in ProgressBar for individual jobs
* Remove `incProgress`
incProgress is not very usefull and error-prone
* perf: Set metric only for jobs that are actually using it
(https://github.com/windmill-labs/windmill/pull/4373#discussion_r1759843773)
* Offload registering progress from clients to server
* Add `jobId?` argument to typescript-client's `setProgress` and `getProgress`
Allows to set progress of other jobs and flows,
if jobId specified, than flow id will be inferred automatically.
Could be used by SDK.
* Add `Error::MetricNotFound` for better error handling
* Fix: Make `JobProgressBar` display in red when failed
* Add persistant progress bar
Now you can reload the page after job is done and progress will be still there
* Allow succeeded individual job's progress bar stick to 100%
* Add python support
* nit: Remove usage of undefined variable in python-client
* Add `async` in ts client (for error handling)
* nit(frontend): Remove unused import
* Dont load JobProgressBar when it is not needed
* nit: npm check fix
* cargo sqlx prepare
* fix sqlx
---------
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>