Commit Graph

43 Commits

Author SHA1 Message Date
pyranota
f1bcf784c9 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
d3e0b1c636 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
b5a9111d07 fix: improve runFlowAsync and run_flow_async default behavior + time formatting of scheduled for 2024-09-11 23:52:02 +02:00
Ruben Fiszel
94d92e9020 Update client.ts 2024-08-19 17:16:22 +02:00
Ruben Fiszel
47c5ca7ada fix(typescript-client): runFlowAsync by default assume job doesn't outlive flow 2024-08-19 17:03:06 +02:00
Ruben Fiszel
901c7ed181 fix(typescript-client): add runFlow and runFlowAsync 2024-08-15 14:21:33 +02:00
Ruben Fiszel
ccf965e87d fix: improve failure id assignment for parallel forloop 2024-07-08 15:50:38 +02:00
Ruben Fiszel
caf007f68e fix: typescript file upload supports arbitrary storage 2024-05-31 13:26:51 +02:00
Ruben Fiszel
0e7a25c0bd 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
126459f972 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 afae33f5f8.

* feat: add username to email function

* fix: nit

* fix: add docstring to global func
2024-05-23 17:23:50 +02:00
Ruben Fiszel
6b49f47c5c 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
c91418ffad fix(typescript-client): improve setFlowUserState undefined value 2024-04-01 11:59:10 +02:00
Ruben Fiszel
8c50b8844a improve getUserClient in typescript 2024-03-26 18:53:18 +01:00
Ruben Fiszel
6b842b3c53 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
d634778810 fix(typescript-client): improve runScript 2024-03-25 08:55:44 +01:00
Ruben Fiszel
62e443f458 client nits 2024-03-06 01:56:55 +01:00
Ruben Fiszel
df3ae5c018 fix: add more functions to typescript client 2024-03-06 01:00:15 +01:00
Ruben Fiszel
e004f5179f workflow as code ts improvements 2024-03-05 23:22:25 +01:00
Ruben Fiszel
14154d2e79 feat: workflow as code for typescript 2024-03-05 23:14:04 +01:00
Ruben Fiszel
83120fe4b4 fix: crash on init script failure 2024-02-26 19:50:33 +01:00
Ruben Fiszel
3ad9ef1c9f fix: add get_root_job_id typescript-client 2024-02-06 00:42:37 +01:00
Ruben Fiszel
7db2501cc1 fix: add get_root_job_id 2024-02-06 00:17:50 +01:00
Guillaume Bouvignies
0003673e8d 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
2e6835f610 feat: Download s3 file as stream in Python and TS (#3099) 2024-01-29 14:49:08 +01:00
Guillaume Bouvignies
ef76a90e34 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
5b33be089a fix: improve npm typescript client 2024-01-23 01:07:42 +01:00
Guillaume Bouvignies
4f4b59c77a 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
064611617a fix typescript client 2024-01-17 10:05:01 +01:00
Ruben Fiszel
bc939e2a71 fix typescript client 2024-01-17 08:40:29 +01:00
Ruben Fiszel
a24645ee00 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
539312bb7e 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
7a875e0cf7 fix: Re-add TS SDK changes for S3 (#2899) 2023-12-20 18:12:37 +01:00
Guillaume Bouvignies
c1e04e104c fix: TS SDK not found upon install error (#2895) 2023-12-20 16:53:42 +01:00
Guillaume Bouvignies
fd55c3d8e3 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
b484a8dc27 feat: Add download button to S3 file picker (#2857) 2023-12-14 15:45:37 +01:00
Ruben Fiszel
e9a3b15a3d fix: migrate old state env variable to new env variable 2023-11-18 17:32:41 +01:00
Ruben Fiszel
efac70453e fix: improve error message for unauthorized variables/resources 2023-11-18 16:27:09 +01:00
Ruben Fiszel
8fdd1d3d29 fix: fix windmill-client 2023-08-26 11:41:58 +02:00
Ruben Fiszel
5fd36052fa feat: add lockfile for deno + use npm module for deno for windmill-client 2023-08-26 11:14:01 +02:00
Ruben Fiszel
a8c46066b1 fix: unify clients to use server-side interpolation to retrieve full resources 2023-08-17 20:16:50 +02:00
Ruben Fiszel
4f577892a6 fix(bun): windmill-client does not require set to be initalized 2023-08-13 09:01:33 +02:00
Ruben Fiszel
9970f6daeb feat: migrate state path to new schema 2023-08-11 18:54:47 +02:00
Ruben Fiszel
4317f065f5 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