Commit Graph

43 Commits

Author SHA1 Message Date
pyranota
01c16f29a8 floor progress in typescript client (#4420)
If user passes float to setProgress it will result BadRequest from server but without any explanation.

Sometimes it is non intuitive that endpoint accepts only integers, so to reduce confusion we convert progress to int.
2024-09-23 11:45:13 +02:00
pyranota
d6d4756b7a feat: Allow setProgress and getProgress from within the script (#4400)
* 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>
2024-09-18 01:16:19 +02:00
Ruben Fiszel
51e6f36e13 fix: improve runFlowAsync and run_flow_async default behavior + time formatting of scheduled for 2024-09-11 23:52:02 +02:00
Ruben Fiszel
75852f27b5 Update client.ts 2024-08-19 17:16:22 +02:00
Ruben Fiszel
010e0fdc23 fix(typescript-client): runFlowAsync by default assume job doesn't outlive flow 2024-08-19 17:03:06 +02:00
Ruben Fiszel
c9ef2c8e97 fix(typescript-client): add runFlow and runFlowAsync 2024-08-15 14:21:33 +02:00
Ruben Fiszel
5657ccdbe4 fix: improve failure id assignment for parallel forloop 2024-07-08 15:50:38 +02:00
Ruben Fiszel
9e822d4c75 fix: typescript file upload supports arbitrary storage 2024-05-31 13:26:51 +02:00
Ruben Fiszel
a22dc985fa feat: support multiple object storage + parquet_csv + polars -> datafusion" (#3853)
* multiple storage

* all

* rm symlinks

* all

* all
2024-05-31 11:59:51 +02:00
HugoCasa
62f318077c feat: improve permissioned audit logs (#3799)
* fix: increase token label size in db

* Revert "Revert "feat:  improve premissioned audit logs (#3793)" (#3798)"

This reverts commit 43a24d997e.

* feat: add username to email function

* fix: nit

* fix: add docstring to global func
2024-05-23 17:23:50 +02:00
Ruben Fiszel
8b21f0812c feat: nativets can use the wmill library + setClient not required anymore (#3714)
* all

* all

* all

* all
2024-05-13 08:26:03 +02:00
Ruben Fiszel
ba679c64b7 fix(typescript-client): improve setFlowUserState undefined value 2024-04-01 11:59:10 +02:00
Ruben Fiszel
ab53dd5b76 improve getUserClient in typescript 2024-03-26 18:53:18 +01:00
Ruben Fiszel
ef1ce83279 feat: add set_flow_user_states and get_flow_user_states api and sdk support 2024-03-26 17:31:17 +01:00
Ruben Fiszel
aaa766bcd6 fix(typescript-client): improve runScript 2024-03-25 08:55:44 +01:00
Ruben Fiszel
caed0fdd43 client nits 2024-03-06 01:56:55 +01:00
Ruben Fiszel
465dfc186b fix: add more functions to typescript client 2024-03-06 01:00:15 +01:00
Ruben Fiszel
0fe9ac10bb workflow as code ts improvements 2024-03-05 23:22:25 +01:00
Ruben Fiszel
e3e86e5c34 feat: workflow as code for typescript 2024-03-05 23:14:04 +01:00
Ruben Fiszel
c7f6e6f9d5 fix: crash on init script failure 2024-02-26 19:50:33 +01:00
Ruben Fiszel
9877c5fd9d fix: add get_root_job_id typescript-client 2024-02-06 00:42:37 +01:00
Ruben Fiszel
60f3a9fa6b fix: add get_root_job_id 2024-02-06 00:17:50 +01:00
Guillaume Bouvignies
5dabe22935 feat: migrate s3 client to object_store (#3116)
* feat: migrate s3 client to object_store

* remove multipart from open API

* Remove multipart in favor of a single stream

* progress report

* add progress reader on server side

* small nit fix

* fix read chunk

* Fix TS and python SDK

* Fix download button

* Fix download button object viewer

* fix list

* Better errors

* export loadS3FileContent

* revert changes SDK

* fix browser

* small file list unavailable fix

* Old endpoints throws informative error messages

* Typescript SDK uses raw fetch

* update python SDK

* Error if uploaded file > 50Mb

* revert python SDL changes

* Update python SDK method docs

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
2024-02-01 16:03:30 +01:00
Guillaume Bouvignies
6160889793 feat: Download s3 file as stream in Python and TS (#3099) 2024-01-29 14:49:08 +01:00
Guillaume Bouvignies
da6edee450 fix: Better UI for S3 download and S3 TS SDK endpoints (#3065)
* Better UI for S3 download and S3 TS SDK endpoints

* gitignore typescript client node_modules

* USe Windmill BE upload endpoint for TS SDK

* Use WM backend endpoint in Python upload SDK endpoint

* revert changes

* Add expiration for Python

* Add downaload endpoint

* Add toggle for public S3 resource

* revert changes to package.json

* Add link to doc page

* fix unauthorized bug
2024-01-25 15:34:40 +01:00
Ruben Fiszel
5b98b005cd fix: improve npm typescript client 2024-01-23 01:07:42 +01:00
Guillaume Bouvignies
376038d70b feat: Download button for s3 files (#3059)
* feat: Download button for s3 files

* Add S3 load and write endpoint to Python and TS SDK

* fix
2024-01-22 21:40:30 +01:00
Ruben Fiszel
27c143c3dc fix typescript client 2024-01-17 10:05:01 +01:00
Ruben Fiszel
8be1ad81bb fix typescript client 2024-01-17 08:40:29 +01:00
Ruben Fiszel
640ebcb146 feat: OIDC support (#3017)
* oidc

* update

* feat: add support for multiselect in python

* d

* d

* progress

* all

* all

* all
2024-01-16 23:32:26 +01:00
Guillaume Bouvignies
3cbdd890cd fix: Update S3 TS code snippets and Python SDK for Polars 0.20.X (#2911)
* fix: update S3 TS code snippets

* use S3Object type from SDK

* update python snippets as well

* Update python SDK for Polars 0.20.X
2023-12-22 08:39:35 +01:00
Guillaume Bouvignies
5fafd71135 fix: Re-add TS SDK changes for S3 (#2899) 2023-12-20 18:12:37 +01:00
Guillaume Bouvignies
46e9818c00 fix: TS SDK not found upon install error (#2895) 2023-12-20 16:53:42 +01:00
Guillaume Bouvignies
2155a6c133 feat: S3 objects are now typed in Python and TS SDK (#2878)
* feat: S3 objects are now typed in Python and TS SDK

* fix ts and python SDK after testing

* cleanup
2023-12-20 09:16:33 +01:00
Guillaume Bouvignies
f8c7a8edf8 feat: Add download button to S3 file picker (#2857) 2023-12-14 15:45:37 +01:00
Ruben Fiszel
2692737418 fix: migrate old state env variable to new env variable 2023-11-18 17:32:41 +01:00
Ruben Fiszel
5a72ca9b24 fix: improve error message for unauthorized variables/resources 2023-11-18 16:27:09 +01:00
Ruben Fiszel
7defd451ac fix: fix windmill-client 2023-08-26 11:41:58 +02:00
Ruben Fiszel
9547a061da feat: add lockfile for deno + use npm module for deno for windmill-client 2023-08-26 11:14:01 +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
Ruben Fiszel
993a14502f fix(bun): windmill-client does not require set to be initalized 2023-08-13 09:01:33 +02:00
Ruben Fiszel
de8a7279b6 feat: migrate state path to new schema 2023-08-11 18:54:47 +02:00
Ruben Fiszel
2921649c3c feat: bun support (#1800)
* feat: bun support

* feat: bun support

* add bun support

* add bun support

* add bun support

* add bun
2023-07-06 21:19:07 +02:00