Compare commits

...

422 Commits

Author SHA1 Message Date
Ruben Fiszel
125ecd64ac chore(main): release 1.385.0 (#4288)
* chore(main): release 1.385.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-26 18:59:38 +02:00
Ruben Fiszel
de54bfa12b update rust image to 1.80 2024-08-26 17:49:56 +02:00
Faton Ramadani
4efc40fbb0 fix(frontend): fix inserting Ws scripts from the search menu (#4290)
* fix(frontend): fix inserting Ws scripts from the AI gen

* fix(frontend): fix inserting Ws scripts from the search menu
2024-08-26 16:36:22 +02:00
HugoCasa
35d665f617 feat: s3 image preview (#4262)
* feat: s3 image preview

* fix: use url in src directly

* update ee ref
2024-08-26 13:36:07 +02:00
Ruben Fiszel
a1ac615cfb chore(main): release 1.384.0 (#4278)
* chore(main): release 1.384.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-26 11:36:07 +02:00
HugoCasa
5bd38f7808 feat: put email triggers attachments on s3 (#4272)
* feat: put email triggers attachments on s3

* update ee ref
2024-08-26 11:06:09 +02:00
Faton Ramadani
fdfd385a68 feat(frontend): hide/show app editor panels (#4266)
* feat(frontend): wip

* feat(frontend): wip

* feat(frontend): wip

* feat(frontend): wip

* feat(frontend): add all shortcuts

* feat(frontend): improve the shorcuts

* feat(frontend): improve the shorcuts

* feat(frontend): hide the buttons in preview mode

* feat(frontend): improve the shorcuts

* feat(frontend): fix shortcuts

* feat(frontend): fix shared state between log panels
2024-08-26 10:48:36 +02:00
Ruben Fiszel
32c0b89729 fix: update monaco-editor to latest monaco/language-client (#4285)
* all

* all

* all

* recomment useless extralib imports

* small impr
2024-08-25 15:29:28 +02:00
Ruben Fiszel
2382a7d7fa revert to ruff-lsp 2024-08-22 20:03:08 +02:00
Ruben Fiszel
e5dfe2e367 nit lsp 2024-08-22 17:28:09 +02:00
Ruben Fiszel
7fa648f087 fix: bun 1.1.21->1.1.25 2024-08-22 16:37:53 +02:00
Ruben Fiszel
88648af1cd fix(lsp): use ruff server instead of ruff-lsp 2024-08-22 16:32:32 +02:00
Faton Ramadani
5b2dd7573d feat(frontend): Add a toggle to disable breakpoints in the App editor (#4274)
* feat(frontend): Add a toggle to disable breakpoints in the App editor

* feat(frontend): improve UI

* feat(frontend): fix build

* feat(frontend): fix build

* feat(frontend): fix how mobileViewOnSmallerScreens works for older apps

* feat(frontend): fix build
2024-08-22 15:38:57 +02:00
Ruben Fiszel
cc738f32e7 chore(main): release 1.383.1 (#4277)
* chore(main): release 1.383.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-22 14:05:00 +02:00
Ruben Fiszel
7882d4ecdd fix: fix app navbar query reactivity + hash in ctx handling is more consistent 2024-08-22 13:55:15 +02:00
Ruben Fiszel
7d13854e38 chore(main): release 1.383.0 (#4271)
* chore(main): release 1.383.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-22 09:05:03 +02:00
Ruben Fiszel
fc12aeb396 fix(python-client): only require httpx to be >= 0.24 instead of ^0.24 2024-08-22 09:01:17 +02:00
wendrul
b5931721e2 refactor windmill concurrent index migrations using a macro (#4275)
* Add macro to run migrations

* Factor windmill migrations into the new macro

* Run formatter
2024-08-21 17:15:08 +02:00
Faton Ramadani
b3eabffb76 fix(frontend): fix large JSON viewer (#4273)
* fix(frontend): fix large JSON viewer

* fix(frontend): fix large JSON viewer

* fix(frontend): improve UX

* fix(frontend): improve show more button

* fix(frontend): add fading effect

* fix(frontend): remove show more when we reach the end

* fix(frontend): Add show more button to the raw tab

* fix(frontend): Add show more button to the raw tab
2024-08-21 16:23:53 +02:00
Ruben Fiszel
c92b008c02 fix npm check 2024-08-21 15:52:57 +02:00
Ruben Fiszel
d1c2e1f40b improve modularity for whitelabelling 2024-08-21 15:37:26 +02:00
Ruben Fiszel
22d7a2d2b6 handle better empty flows details 2024-08-21 11:29:37 +02:00
Ruben Fiszel
d604b6f2a0 feat: add native html select support + fix mobile scroll on app text component 2024-08-21 11:16:42 +02:00
HugoCasa
bcde2e62d7 feat: improve early stop (#4257) 2024-08-21 00:47:34 +02:00
Ruben Fiszel
776e978752 fix base url of flow webhooks for embedded windmill 2024-08-20 23:24:35 +02:00
Ruben Fiszel
9226d6cbc1 feat: add wrap_body header to webhooks 2024-08-20 22:58:17 +02:00
Ruben Fiszel
3f0eaa6c63 chore(main): release 1.382.2 (#4267)
* chore(main): release 1.382.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-20 18:54:40 +02:00
Henri Courdent
fa2a6070d7 Update changelog list 20_08 (#4269) 2024-08-20 18:54:26 +02:00
Faton Ramadani
84d4e2cb95 fix(frontend): Fix initial FlowGraph rendering on Chrome (#4268) 2024-08-20 18:23:30 +02:00
Ruben Fiszel
d6d33898a7 fix(app): database studio/empty table count reset 2024-08-20 18:11:57 +02:00
Ruben Fiszel
4f00120d2b ignore empty FORCE_WORKER_TAGS 2024-08-20 17:03:59 +02:00
Ruben Fiszel
7e1f28071a fix: handle more gracefully worker without tags 2024-08-20 16:27:01 +02:00
Faton Ramadani
f237d12330 Fix flow graph input step preview (#4265) 2024-08-20 16:20:19 +02:00
Ruben Fiszel
8612013026 chore(main): release 1.382.1 (#4263)
* chore(main): release 1.382.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-20 14:48:18 +02:00
Faton Ramadani
0a6832aa45 fix(frontend): Fix flow graph step preview (#4264) 2024-08-20 14:42:31 +02:00
Ruben Fiszel
b6c72dc27c chore(main): release 1.382.0 (#4256)
* chore(main): release 1.382.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-20 12:47:12 +02:00
Ruben Fiszel
8f08b55d63 nit diff editor 2024-08-20 12:46:31 +02:00
Ruben Fiszel
dc779dcf42 version diff editor takes screen height 2024-08-20 12:43:35 +02:00
Faton Ramadani
c19df12292 feat(frontend): improve versions history by adding a diff viewer with… (#4261)
* feat(frontend): improve versions history by adding a diff viewer with the previous version

* feat(frontend): support diff with all previous versions

* feat(frontend): support diff with all previous versions

* feat(frontend): improving version diff

* feat(frontend): improve UI
2024-08-20 12:19:44 +02:00
Ruben Fiszel
09c6af05cd fix: add FORCE_WORKER_TAGS & fix workers page when default worker group is missing 2024-08-20 12:15:23 +02:00
Ruben Fiszel
1a0e32b40b fix(bun): disable large transpiling cache 2024-08-20 08:49:51 +02:00
Ruben Fiszel
f3bcadbfb1 fix(cli): improve error message of cli 2024-08-19 22:18:56 +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
7fe0442a81 fix: frontend/package.json & frontend/package-lock.json to reduce vulnerabilities (#4255)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2024-08-19 14:17:47 +02:00
HugoCasa
bb92824273 fix(frontend): nit worker limits (#4258) 2024-08-19 14:15:29 +02:00
Ruben Fiszel
451b6bb22d nit remove debug text 2024-08-19 12:34:56 +02:00
Ruben Fiszel
250237793b fix: improve resource picker handling of objects 2024-08-19 11:35:16 +02:00
Faton Ramadani
632bd18a2e use xyflow internally instead of svelvet for graph rendering (#4173)
* fix(frontend): wip

* fix(frontend): wip

* fix(frontend): fix while loops + theme

* fix(frontend): wip

* fix(frontend): wip

* fix(frontend): same view as before

* fix(frontend): wip

* fix(frontend): wip

* feat(frontend): flow status viewer

* fix(frontend): wip

* feat(frontend): migrate to xyflow

* feat(frontend): dataflow

* feat(frontend): clean up

* feat(frontend): clean up

* feat(frontend): clean up

* feat(frontend): fix min-height

* feat(frontend): clean up

* feat(frontend): add missing insert button for empty loops

* feat(frontend): Fix insert

* feat(frontend): Fix branch one

* feat(frontend): Support default branch for branch one

* feat(frontend): fix add and delete branches

* feat(frontend): Make the iterations menu work

* feat(frontend): Fix graph height in the flow status viewer

* feat(frontend): code improvement

* feat(frontend): add missing trigger

* feat(frontend): add support for triggers

* feat(frontend): fix move

* feat(frontend): fix No branch for branch one

* feat(frontend): fix light theme

* feat(frontend): fix build

* feat(frontend): remove dead code

* feat(frontend): fix move

* feat(frontend): fix vertical alignement

* feat(frontend): fix viewport

* feat(frontend): style fix

* feat(frontend): fix viewgraph

* feat(frontend): fix build

* feat(frontend): Fix node position

* feat(frontend): UI nits

* feat(frontend): UI nits

* feat(frontend): fix zoom level + fix insert button position

* feat(frontend): svelvet clean up

* feat(frontend): fix paste button position

* feat(frontend): clean up

* feat(frontend): migrate Decision Tree

* feat(frontend): clean up

* feat(frontend): add callback

* feat(frontend): migrate Decision Tree

* feat(frontend): fix build

* feat(frontend): fix branches

* feat(frontend): fix branches

* feat(frontend): fix insert

* feat(frontend): wip

* feat(frontend): done

* feat(frontend): done

* feat(frontend): fix reactivity

* feat(frontend): fix z-index issues

* feat(frontend): fix bg issue

* feat(frontend): fix border status

* add padding to flow height

* Update FlowGraphV2.svelte

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2024-08-19 09:17:56 +02:00
Ruben Fiszel
de4f5e3015 chore(main): release 1.381.0 (#4248)
* chore(main): release 1.381.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-16 17:34:20 +02:00
HugoCasa
99f7828ebb feat: cache common hub scripts in image (#4249)
* feat: cache common hub scripts in image

* Delete backend/src/hubPaths.json

* fix: missing file

* fix: dockerfile

* fix: cache by path

* fix

* fix

* precreate cache folder
2024-08-16 17:30:44 +02:00
Ruben Fiszel
5a8fa1d724 fix: improve password field lifetime incorrectly recycled too early 2024-08-16 17:28:10 +02:00
Ruben Fiszel
49835ca6ca fix: workspace specific default tags do not override step level custom tags 2024-08-16 17:00:34 +02:00
HugoCasa
43459ce03a sqlx for refresh cgroup readings (#4251) 2024-08-16 14:11:56 +02:00
HugoCasa
e23c3fad62 feat: add env to refresh cgroup readings (#4250) 2024-08-16 14:00:38 +02:00
Ruben Fiszel
dffd5f7f7d fix(cli): add inject and define options 2024-08-15 19:04:11 +02:00
Ruben Fiszel
55340029db export runFlow and runFlowAsync 2024-08-15 15:17:32 +02:00
Ruben Fiszel
c9ef2c8e97 fix(typescript-client): add runFlow and runFlowAsync 2024-08-15 14:21:33 +02:00
Ruben Fiszel
3cf4f00dca fix: improve row update of aggrid table actions II 2024-08-15 12:47:21 +02:00
Ruben Fiszel
2afdb66e75 improve row update of aggrid table actions 2024-08-15 12:07:46 +02:00
HugoCasa
6705b6706f email triggers panel loading (#4247) 2024-08-15 11:12:10 +02:00
Ruben Fiszel
c4282a0656 nit highlight code 2024-08-15 10:46:57 +02:00
HugoCasa
6c9e32af10 fix(frontend): improve UI for email triggers (#4243)
* fix(frontend): improve UI for email triggers

* fix: nits
2024-08-15 10:06:35 +02:00
Ruben Fiszel
5416254aa1 chore(main): release 1.380.0 (#4242)
* chore(main): release 1.380.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-14 19:48:20 +02:00
Ruben Fiszel
11b81e3d9d nit npn check fix 2024-08-14 19:19:26 +02:00
HugoCasa
0cce27636d feat: opt-in job args in audit logs (#4241)
* feat: job args in audit logs

* update ee ref
2024-08-14 19:00:52 +02:00
Ruben Fiszel
e0857c7178 feat: recoverable error handlers 2024-08-14 18:45:29 +02:00
Ruben Fiszel
0eb96ded5f fix tests 2024-08-14 17:35:30 +02:00
Ruben Fiszel
be90b3e219 feat: togglable continue on disapproval/timeout of approvals 2024-08-14 17:24:21 +02:00
Ruben Fiszel
fbd9b87c0f dockerfile improvements 2024-08-14 15:49:33 +02:00
Ruben Fiszel
75d96baf50 small resilience nits 2024-08-14 15:24:05 +02:00
Ruben Fiszel
58adf6ad2d chore(main): release 1.379.4 (#4238)
* chore(main): release 1.379.4

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-14 14:48:36 +02:00
Ruben Fiszel
ad698768e8 fix: fix transformer issue after proxy change for apps 2024-08-14 14:45:55 +02:00
Ruben Fiszel
ecea507670 all 2024-08-14 14:34:58 +02:00
Ruben Fiszel
acfe6325a1 continue on error 2024-08-14 14:34:58 +02:00
HugoCasa
3bd461ffa1 fix: use job timeout for snowflake timeout (#4240) 2024-08-14 14:27:43 +02:00
HugoCasa
c09f078928 fix: handle time with tz col type in pg (#4239) 2024-08-14 13:25:56 +02:00
HugoCasa
f88efc2380 fix: add missing change for better key renewal (#4237) 2024-08-14 09:55:23 +02:00
Ruben Fiszel
2aa40c413e nits whitelabel 2024-08-14 02:09:22 +02:00
Ruben Fiszel
9363e6d05f chore(main): release 1.379.3 (#4235)
* chore(main): release 1.379.3

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-14 01:00:31 +02:00
Ruben Fiszel
0be8982ddc fix: improve scrolling performance of the runs page 2024-08-14 00:26:34 +02:00
Ruben Fiszel
969699ce47 chore(main): release 1.379.2 (#4234)
* chore(main): release 1.379.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-13 23:59:18 +02:00
Ruben Fiszel
b9924d01d5 fix: add fetch connection limits to bun type fetcher 2024-08-13 23:40:00 +02:00
Ruben Fiszel
35fed96cd3 fix compile 2024-08-13 22:53:32 +02:00
Ruben Fiszel
bcc94badbd fix: extend step_id being returned as part of the error of every languages 2024-08-13 22:37:05 +02:00
Ruben Fiszel
2021b8f86a add INSTANCE_IS_DEV 2024-08-13 21:44:14 +02:00
Ruben Fiszel
b626e52324 add bun bundling error info 2024-08-13 20:42:45 +02:00
Ruben Fiszel
7a68cc76c2 fix: improve logviewer behavior when job is loading 2024-08-13 20:34:46 +02:00
Ruben Fiszel
b424c61e95 fix(frontend): date input is more flexible and accept default html format as a fallback 2024-08-13 18:46:01 +02:00
Ruben Fiszel
41bf933fb7 chore(main): release 1.379.1 (#4231)
* chore(main): release 1.379.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-13 18:04:08 +02:00
Ruben Fiszel
f00545f169 fix: add an option to disable bundling globally 2024-08-13 18:00:50 +02:00
Ruben Fiszel
95a898a5d5 fix compile 2024-08-13 17:06:51 +02:00
Ruben Fiszel
1d0807f542 fix(apps): improve tanstack table handling of objects 2024-08-13 16:17:20 +02:00
Ruben Fiszel
527183874c overscan nit for job list 2024-08-13 16:06:10 +02:00
Ruben Fiszel
0d5c2e5dd7 chore(main): release 1.379.0 (#4228)
* chore(main): release 1.379.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-13 16:01:49 +02:00
Ruben Fiszel
599399870f nit w-full 2024-08-13 16:00:36 +02:00
Ruben Fiszel
955a980703 feat(frontend): group fields are mutable 2024-08-13 15:14:26 +02:00
Ruben Fiszel
7eccebf5da improve type hints II 2024-08-13 11:29:16 +02:00
Ruben Fiszel
1719c2689e fix(apps): type hints for results are automatically widened 2024-08-13 11:05:56 +02:00
Ruben Fiszel
2b99789077 feat(frontend): improve display of waiting jobs + schedule filter + suspended jobs on runs page 2024-08-13 10:41:36 +02:00
Ruben Fiszel
fd1c456fad feat: embeddable apps using jwt (#4229)
* all

* all

* all
2024-08-13 00:11:54 +02:00
Ruben Fiszel
3c4b8377ed fix: support NODE_PATH 2024-08-12 19:56:27 +02:00
Ruben Fiszel
36129fb470 chore(main): release 1.378.0 (#4219)
* chore(main): release 1.378.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-12 11:23:57 +02:00
Ruben Fiszel
e779f96386 fix: improve default value handling for date & date-time in apps 2024-08-12 11:21:00 +02:00
Ruben Fiszel
df33b281e8 fix compile 2024-08-12 10:37:51 +02:00
Guilhem
6ba3fda65d dev(frontend) move component options into editor menu (#4221)
* dev(frontend) move component options into editor menu

* dev(frontend) move component options into editor menu

* dev(frontend) add editor menu popovers

---------

Co-authored-by: Guilhem Le Mouel <guilhem.le-mouel.ext@altran.com>
2024-08-12 09:52:04 +02:00
HugoCasa
0655803860 fix: improve license key ui (#4220)
* fix: improve license key ui

* fix: stop schedules on key expiration

* update ee ref
2024-08-11 01:01:24 +02:00
Ruben Fiszel
c288d73c13 specify that windmill can be embedded if using same host 2024-08-10 22:58:46 +02:00
Ruben Fiszel
c03c0f6172 fix(frontend): user resource picker for app use lightweight component 2024-08-10 22:49:48 +02:00
Ruben Fiszel
bc512bd307 chore: improve ci to not tag PR result 2024-08-10 20:34:20 +02:00
Ruben Fiszel
e5e03b5baa chore: improve ci to not tag PR result 2024-08-10 20:08:23 +02:00
Ruben Fiszel
02fdd58e47 chore: improve ci to not tag PR result 2024-08-10 19:19:54 +02:00
Ruben Fiszel
6272c9ff41 fix: allow user resources in app to work within iframes 2024-08-10 19:19:54 +02:00
Faton Ramadani
7115a35779 fix(frontend): improve default id of the components of the topbar (#4222) 2024-08-09 16:49:37 +02:00
Faton Ramadani
c0853eafc9 fix(frontend): support plus sign in emails format fields #4223 2024-08-09 16:48:57 +02:00
Ruben Fiszel
d56a956b9a feat: windmill embed 2024-08-09 09:57:43 +02:00
Ruben Fiszel
7349d0a320 add external config to codebase 2024-08-09 08:50:54 +02:00
Ruben Fiszel
70d1e6c720 feat(cli): add customerBundler support 2024-08-09 08:13:32 +02:00
Ruben Fiszel
b78c3fe574 revert customer loader change 2024-08-09 07:50:19 +02:00
Ruben Fiszel
71d23db5cb fix fill height for deployed apps 2024-08-08 23:23:03 +02:00
Ruben Fiszel
832df264b4 chore(main): release 1.377.1 (#4216)
* chore(main): release 1.377.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-08 18:59:53 +02:00
Faton Ramadani
2334802384 fix(frontend): fix timezone issues for Date only inputs (#4215) 2024-08-08 18:08:14 +02:00
Ruben Fiszel
8ea2906d09 chore(main): release 1.377.0 (#4208) 2024-08-08 15:10:38 +02:00
Ruben Fiszel
88d0e97ce0 chore: update vite to 5.4.0 2024-08-08 15:08:47 +02:00
HugoCasa
d1e119e052 fix: handle snowflake partitions (#4214) 2024-08-08 14:50:31 +02:00
Faton Ramadani
bf629f39cc fix(frontend): fix flow warnings (#4213)
* fix(frontend): Correctly compute the array of all modules ids to build the step warnings

* fix(frontend): Correctly compute the array of all modules ids to build the step warnings
2024-08-08 14:34:57 +02:00
Faton Ramadani
c90fb8d293 fix(frontend): fix decision tree debug menu (#4212) 2024-08-08 14:17:43 +02:00
HugoCasa
55926f957f fix: case insensitive encoding for email triggers (#4211)
* fix: case insensitive encoding for email triggers

* update ee ref
2024-08-08 11:59:20 +02:00
Ruben Fiszel
2eb6a7a742 support in list_flows, flows that have no last flow_version 2024-08-08 10:08:25 +02:00
Lewis J Ellis
a77f74cb7e fix(cli): Add esbuild loader for .node files for codebase 2024-08-08 08:50:58 +02:00
Ruben Fiszel
413ad2c925 feat(app): add user resource select component 2024-08-08 00:19:37 +02:00
HugoCasa
2c3d4920e0 fix: azure git sync test connection (#4209) 2024-08-07 19:13:46 +02:00
HugoCasa
0029dc11e9 fix: handle >1 num workers stats (#4177)
* fix: handle >1 num workers stats

* fix: sqlx

* fix: ee ref test

* fix: sqlx + ee ref

* update ee ref
2024-08-07 17:52:39 +02:00
Ruben Fiszel
dd17a6bd14 fix tests 2024-08-07 17:51:41 +02:00
wendrul
4f9193c036 fix: Additional tracing when pulling and uploading search index #4207 2024-08-07 16:25:41 +02:00
Ruben Fiszel
843b14fe99 keep bin in local cache for go even in cloud 2024-08-07 16:23:13 +02:00
Ruben Fiszel
b60f42e387 chore(main): release 1.376.1 (#4202)
* chore(main): release 1.376.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-07 12:04:44 +02:00
Henri Courdent
c01e179d8f JavaScript spelling (#4206) 2024-08-07 12:04:26 +02:00
Ruben Fiszel
15d5c60d90 improve webhook panel for non root paths 2024-08-07 11:09:55 +02:00
Ruben Fiszel
d88674a7af fix non root goto with ? prefix 2024-08-07 11:05:45 +02:00
HugoCasa
6e9c350b4a fix: email triggers sqlx CE and improve email parsing (#4203)
* fix: CE sqlx

* update ee ref
2024-08-06 23:05:36 +02:00
HugoCasa
e7148f6723 fix: mysql params starting with underscore (#4201) 2024-08-06 22:06:01 +02:00
Ruben Fiszel
a84c54d663 chore(main): release 1.376.0 (#4195)
* chore(main): release 1.376.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-06 22:03:21 +02:00
HugoCasa
cfa20ae0d7 fix: mysql support for underscore in named param (#4200) 2024-08-06 21:59:29 +02:00
HugoCasa
b54edf153e feat: secure ctx variables in runnable inputs (#4142)
* feat: secure ctx variables

* feat: add on behalf of email

* oups

* fix: from onBehalfOfEmail to author
2024-08-06 17:06:02 +02:00
HugoCasa
5e3a3e2103 fix(frontend): disable email triggers by default (#4199) 2024-08-06 16:59:12 +02:00
HugoCasa
a87f34fb4a feat: email triggers (#4163)
* feat: email triggers v0

* update docker compose to nginx with tcp reverse proxy + move smtp to private

* fix: open source build

* test: update ee ref for testing

* feat: use caddy with layer4

* fix: nit

* feat: configurable email domain

* fix: nit

* fix: nit

* fix: get l4 from main

* fix: default email domain to mail.domain

* update ee ref
2024-08-06 16:17:33 +02:00
Ruben Fiszel
7886f8f471 fix: fix native scripts access to reserved variables 2024-08-06 16:15:09 +02:00
Ruben Fiszel
1e7de238cf improve rawvalue handling for lightweightarg input 2024-08-06 15:39:23 +02:00
Fred Reimer
9e78a51adc bump go version (#4192)
* bump go version

* update go version in lsp
2024-08-06 15:07:24 +02:00
Faton Ramadani
b9b30e66ec fix(frontend): Hide AgChart background to make styling work (#4197)
* fix(frontend): Hide AgChart background to make styling work

* fix(frontend): Fix dark theme
2024-08-06 12:20:16 +02:00
Faton Ramadani
6749f2c136 fix(frontend): Remove full height for the event handlers of runnables (#4196) 2024-08-06 10:59:49 +02:00
wendrul
39dc6857eb Remove admin requirement to cancel job selection (#4188) 2024-08-06 10:48:53 +02:00
wendrul
b6ab184889 Add warning of job search parse error + front fixes (#4187) 2024-08-06 10:48:22 +02:00
Faton Ramadani
5104dba631 fix(frontend): Fr/improve suspend drawer (#4189)
* fix(frontend): add missing info about the cancel url in the suspend drawer

* fix(frontend): add missing info about the cancel url in the suspend drawer
2024-08-06 10:48:08 +02:00
Ruben Fiszel
a1c40d7fd0 add timeout for app editor log panel 2024-08-06 10:39:13 +02:00
wendrul
7b3128171e feat: Tag filter on Runs page (#4193)
* Add warning of job search parse error + front fixes

* Add filter tag and add filters to small screen

* Fill missing property
2024-08-06 10:31:08 +02:00
Faton Ramadani
657f03bc67 fix(frontend): fix the app created from a script or flow with the new topbar (#4194) 2024-08-06 10:16:29 +02:00
Ruben Fiszel
fbcac1e0a6 support tarbundle in vscode extension 2024-08-06 01:02:41 +02:00
Ruben Fiszel
1c83876775 chore(main): release 1.375.0 (#4181)
* chore(main): release 1.375.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-05 13:34:54 +02:00
Ruben Fiszel
adecf4b2d1 fix codebase with start_worker 2024-08-05 13:31:05 +02:00
wendrul
f2f8bbe1d4 feat: deployment UI filter deployable items (#4183)
* Add column to workspace settings table

* Add endpoint to change the deploy UI settings

* Make frontend page to edit UI settings

* Prepare sqlx

* Add deployment restrictions to frontend

* Fix function name

* Change dependency to minimatch, CE compatibility

* Remove default include_path

* Remove picomatch types (old dep)

* Use empty list instead of globstar as default

* All deployable if config is null
2024-08-05 13:27:13 +02:00
Henri Courdent
f1fa6bca84 Changelog add native runtime support of npm packages (#4185) 2024-08-05 13:21:14 +02:00
Faton Ramadani
704e75e893 fix(frontend): fix tutorial for apps with the new topbar (#4186) 2024-08-05 13:20:56 +02:00
Ruben Fiszel
d771e38bfd add global created_at index 2024-08-05 13:12:15 +02:00
Ruben Fiszel
cc111ba7dc feat: improve indices of completed_runs for faster load 2024-08-05 12:46:07 +02:00
Faton Ramadani
43a89ee1cc fix(frontend): fix style panel for compoentn without custom css (#4182) 2024-08-05 11:06:42 +02:00
Faton Ramadani
947dd21933 fix(frontend): add missing truncate for branch predicates (#4180) 2024-08-05 09:11:24 +02:00
Ruben Fiszel
989c9e6102 chore(main): release 1.374.0 (#4175)
* chore(main): release 1.374.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-04 23:20:09 +02:00
HugoCasa
811de58712 feat: caddy with l4 image (#4178) 2024-08-04 23:17:24 +02:00
Ruben Fiszel
3508b6d793 feat: add support for assets using tar for codebase deploy 2024-08-04 23:02:51 +02:00
Ruben Fiszel
86e23f2aed fix: fix delete job 2024-08-03 08:26:29 +02:00
Ruben Fiszel
a168107d29 chore(main): release 1.373.1 (#4171)
* chore(main): release 1.373.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-02 17:36:44 +02:00
Ruben Fiszel
63abd5b146 fix: fix run_flow_async from call 2024-08-02 16:37:17 +02:00
Ruben Fiszel
c55d15c0a9 whitelabel custom settings 2024-08-02 13:47:28 +02:00
Faton Ramadani
91e364bde5 fix(frontend): Add support for array of objects in th UI (#4170) 2024-08-02 12:58:43 +02:00
Ruben Fiszel
1723e989cd chore(main): release 1.373.0 (#4168)
* chore(main): release 1.373.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-01 22:49:05 +02:00
Ruben Fiszel
1a25aca45c fix edit button newtab 2024-08-01 22:11:30 +02:00
Ruben Fiszel
cd61fc1e8c fix: app forms default values changes gets propagated 2024-08-01 21:54:21 +02:00
Ruben Fiszel
86a6a909d9 add rpi4 build 2024-08-01 18:50:33 +02:00
Ruben Fiszel
6cd698eeda update sqlx 2024-08-01 18:19:21 +02:00
wendrul
edcee6d861 feat: Indexing improvements (#4167) 2024-08-01 16:57:42 +02:00
Ruben Fiszel
e6d5689bf9 chore(main): release 1.372.0 (#4165)
* chore(main): release 1.372.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-08-01 16:28:17 +02:00
Ruben Fiszel
efcf0e40f6 fix: fix raw_deps handling 2024-08-01 16:24:30 +02:00
Ruben Fiszel
42e3ae92e3 fix: improve cancel_selection job for running jobs 2024-08-01 16:08:17 +02:00
Ruben Fiszel
b5464e2906 feat: variables created by password fields expire after 7 days 2024-08-01 16:05:03 +02:00
Ruben Fiszel
2c27083e2a avoir mistaken editor edit/deploy interaction 2024-08-01 10:07:15 +02:00
Ruben Fiszel
2b6f84e5d8 more clearly display loading when jobs filter change 2024-08-01 09:25:18 +02:00
Ruben Fiszel
c6b07561da nit fix occupancy rate 2024-08-01 09:15:55 +02:00
Ruben Fiszel
1a47325055 improve queue indices 2024-07-31 23:44:40 +02:00
Ruben Fiszel
dd1a7a1b3d chore(main): release 1.371.4 (#4158)
* chore(main): release 1.371.4

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-31 18:08:01 +02:00
Henri Courdent
79851101ae doc_link_fixes (#4157) 2024-07-31 18:03:49 +02:00
Henri Courdent
6808ee5a70 Order components + names alignment (#4160) 2024-07-31 18:03:23 +02:00
Faton Ramadani
efeb65be4c fix(frontend): If multiple recompute all present, interval is now in sync (#4162) 2024-07-31 17:45:52 +02:00
Faton Ramadani
10c699759e fix(frontend): fix recompute all (#4161)
* fix(frontend): wip

* fix(frontend): wip

* fix(frontend): fix recompute all

* fix(frontend): fix recompute all

* fix(frontend): clean up

* fix(frontend): fix how the onClick callback is called
2024-07-31 17:27:38 +02:00
Ruben Fiszel
d69aa8d484 fix: improve index usage and runs page performance 2024-07-31 13:08:28 +02:00
Ruben Fiszel
b95337fcb9 improve job result deser 2024-07-31 02:32:33 +02:00
Ruben Fiszel
9921731fdf add limits to variable list 2024-07-31 01:37:51 +02:00
Ruben Fiszel
e7cccd099e chore(main): release 1.371.3 (#4156)
* chore(main): release 1.371.3

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-30 21:54:23 +02:00
Ruben Fiszel
be8cedfe7f fix: for codebase bundle, use cjs exports instead 2024-07-30 21:48:40 +02:00
Ruben Fiszel
1a548f32a1 chore(main): release 1.371.2 (#4155)
* chore(main): release 1.371.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-30 21:28:46 +02:00
Ruben Fiszel
72ff465300 improve banner for esbuild bundle 2024-07-30 21:23:31 +02:00
Ruben Fiszel
716bb7118b fix: improve codebase handling by ignoring creating lock and bundle 2024-07-30 20:22:34 +02:00
Ruben Fiszel
4fe797eeab chore: update backend tests to 1.79 2024-07-30 18:34:59 +02:00
Ruben Fiszel
459a51c111 chore(main): release 1.371.1 (#4153)
* chore(main): release 1.371.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-30 18:21:29 +02:00
Ruben Fiszel
8c81e47564 fix: make SLEEP_QUEUE adaptative to number of subworkers 2024-07-30 17:57:14 +02:00
Ruben Fiszel
f59046a924 fix: database connections now scale linearly with number of subworkers 2024-07-30 17:45:03 +02:00
Ruben Fiszel
e5c73d66d3 chore(main): release 1.371.0 (#4151)
* chore(main): release 1.371.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-30 16:28:16 +02:00
Ruben Fiszel
cf3512ee03 update rust image to 1.79 2024-07-30 15:46:43 +02:00
Ruben Fiszel
28277da35b fix: submit and form persistence on app on render change 2024-07-30 15:43:37 +02:00
Ruben Fiszel
f63b176328 add proxy to helper 2024-07-30 12:37:24 +02:00
Ruben Fiszel
ccb892feab add proxy and useragent support for native scripts 2024-07-30 12:31:47 +02:00
Faton Ramadani
5992b82180 feat(frontend): support array of objects in schema (#4106)
* feat(frontend): Support array of objets

* feat(frontend): add support for LightweightArgInput

* feat(frontend): support objects and arrays of objects in LightweightArgInput
2024-07-30 11:42:49 +02:00
Ruben Fiszel
6a33624416 fix: fix bunnative lock creation 2024-07-30 10:01:29 +02:00
Ruben Fiszel
06433a6ec6 fix: always consider electron as external for bundles 2024-07-30 09:38:19 +02:00
Ruben Fiszel
e02e644d4c fix: support bunnative in the CLI 2024-07-30 08:58:32 +02:00
Ruben Fiszel
9942e86765 bump deno and deno_core to 1.45.4 2024-07-30 08:43:52 +02:00
Ruben Fiszel
9f8862680c chore(main): release 1.370.0 (#4150)
* chore(main): release 1.370.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-29 21:36:30 +02:00
Ruben Fiszel
6e91005daa fix: improve native runtime with axios support 2024-07-29 21:13:02 +02:00
HugoCasa
5031a8cb01 feat: get completed flow node result by api/download + eval list result json path optim (#4108)
* feat: get completed flow node result by api

* fix: missing file

* feat: fallback to completed job + fix dfs

* feat: download all results + eval improvement

* fix: nit regex

* fix: nit
2024-07-29 20:30:55 +02:00
Ruben Fiszel
28810910b1 chore(main): release 1.369.1 (#4149)
* chore(main): release 1.369.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-29 20:22:26 +02:00
Faton Ramadani
71badb959d fix(frontend): Fix how new items are processed in App select (#4109)
* fix(frontend): Fix how new items are procesed

* fix(frontend): Fix regex

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* fix(frontend): avoid duplicates

* fix(frontend): simplify code

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2024-07-29 20:21:39 +02:00
Ruben Fiszel
bc94acb378 fix: fix lang picker artefact for script editor 2024-07-29 20:18:56 +02:00
Ruben Fiszel
ca345d4755 chore(main): release 1.369.0 (#4147)
* chore(main): release 1.369.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-29 19:55:34 +02:00
Lewis J Ellis
b250890b1f Add platform: 'node' to codebase esbuild (#4148) 2024-07-29 19:49:59 +02:00
Ruben Fiszel
18f22be2ba feat: remove nativets in favor of bun with native pragma 2024-07-29 19:26:26 +02:00
Ruben Fiszel
b02baa2cfb feat: remove nativets in favor of bun with native pragma 2024-07-29 19:20:00 +02:00
Faton Ramadani
fb89eed8fa feat(frontend): App bar as components (#4103)
* feat(frontend): wip

* feat(frontend): add migration to the new top bar

* feat(frontend): fix topbar styling

* feat(frontend): fix migration code

* feat(frontend): fix migration code

* feat(frontend): fix migration code

* feat(frontend): wip

* feat(frontend): done

* feat(frontend): done

* feat(frontend): remove migration

* feat(frontend): fix top bar styling

* feat(frontend): fix sync issues

* feat(frontend): improve style

* feat(frontend): Redesign Recompute all

* feat(frontend): change icon + make the default title font bigger

* feat(frontend): Remove unecesary clearInterval

* feat(frontend): Fix dropdown menu button style
2024-07-29 17:26:18 +02:00
HugoCasa
eb6557a6be feat: add support for text/plain webhook (#4146) 2024-07-29 15:56:25 +02:00
Ruben Fiszel
4f114cbcab nit less cloning 2024-07-28 23:31:50 +02:00
Ruben Fiszel
2cc24b675e simplify noop code handling 2024-07-28 20:10:59 +02:00
Ruben Fiszel
40caa795fb chore(main): release 1.368.3 (#4143)
* chore(main): release 1.368.3

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-28 19:34:13 +02:00
Ruben Fiszel
e45a8a4591 fix: update bun to 1.1.21 2024-07-28 14:55:47 +02:00
Ruben Fiszel
3f1ed35f3e clarify //nobundling 2024-07-28 14:31:23 +02:00
Ruben Fiszel
9deba3e715 chore(main): release 1.368.2 (#4141)
* chore(main): release 1.368.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-28 11:09:31 +02:00
Ruben Fiszel
1e2e907982 fix: disable prebundling for nodejs mode scripts 2024-07-28 11:06:43 +02:00
Ruben Fiszel
c3848e2e30 fix: add the nobundling option for bun 2024-07-28 10:56:04 +02:00
Ruben Fiszel
35d567e2e0 small nit BASE_URL 2024-07-28 10:25:33 +02:00
Ruben Fiszel
7099ec48e6 chore(main): release 1.368.1 (#4140)
* chore(main): release 1.368.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-27 12:46:47 +02:00
Ruben Fiszel
df8cf402c6 improve slightly concurrency run min started_at query 2024-07-27 12:43:24 +02:00
Ruben Fiszel
2b67fbcd98 improve slightly concurrency run min started_at query 2024-07-27 12:41:01 +02:00
Ruben Fiszel
ec9aad4dae improve slightly concurrency run min started_at query 2024-07-27 12:28:55 +02:00
Ruben Fiszel
99623f31af fix: improve runs page performance through pg indices 2024-07-27 12:16:13 +02:00
Ruben Fiszel
0e908ec71f reload servers on metrics setting change 2024-07-27 07:57:49 +02:00
Ruben Fiszel
c52ca177ea chore(main): release 1.368.0 (#4129)
* chore(main): release 1.368.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-26 23:27:34 +02:00
Ruben Fiszel
545a57fd2c fix: allow colors for bun and log error directly 2024-07-26 22:42:24 +02:00
Ruben Fiszel
f1d5be8a2a feat: add FORCE_<env> to allow to override db settings 2024-07-26 21:47:06 +02:00
Ruben Fiszel
6167fbb9a5 add loading timing 2024-07-26 21:05:48 +02:00
Ruben Fiszel
07c764c167 fix tests 2024-07-26 19:26:00 +02:00
Ruben Fiszel
78fd99cb68 feat: pre-bundle bun scripts (#4132) 2024-07-26 19:00:30 +02:00
Henri Courdent
54e4397a0b Upated thumbnail repo and content of readme (#4136) 2024-07-26 18:24:53 +02:00
wendrul
c270ab1171 fix: search modal improvements (#4128)
* Message when runs filter is empty

* Improve height and width of modal
2024-07-26 11:08:16 +02:00
HugoCasa
12f9e56154 feat: job view audit logging based on env variable (#4131)
* feat: job view audit logging based on env variable

* Update jobs.rs

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2024-07-26 11:07:15 +02:00
HugoCasa
6df9eca2cf feat: multi sql statement with pg fix (#4134)
* Revert "Revert "feat: multi statement sql (#4104)" (#4133)"

This reverts commit 38f0949ce3.

* fix: sort pg args
2024-07-26 09:23:39 +02:00
Ruben Fiszel
38f0949ce3 Revert "feat: multi statement sql (#4104)" (#4133)
This reverts commit 23108b4688.
2024-07-26 01:24:03 +02:00
HugoCasa
23108b4688 feat: multi statement sql (#4104)
* feat: multi statement pg

* fix: add other flavors

* feat: make pg params start at 1 and sequential

* fix: improve sql statement parsing

* add tests

* fix: allow no semi in last statement

* fix: merge conflict

* fix: minor improvement

* fix: parser version
2024-07-25 20:46:04 +02:00
Ruben Fiszel
8daccfc876 improve s3 bucket tests 2024-07-25 13:02:59 +02:00
Ruben Fiszel
d87ae08362 fix npm_mode check from raw_deps 2024-07-25 12:58:04 +02:00
Henri Courdent
7102dd81c0 Changelog update frontend 25 07 (#4130) 2024-07-25 11:21:17 +02:00
Ruben Fiszel
8e615c900d fix: support npmjs mode for raw deps of package.json from CLI 2024-07-25 09:53:18 +02:00
Ruben Fiszel
9300ee6f47 fix docker-compose 2024-07-24 19:05:31 +02:00
Ruben Fiszel
01f2eeb3fe chore(main): release 1.367.2 (#4127)
* chore(main): release 1.367.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-24 18:28:56 +02:00
Ruben Fiszel
92dac027f2 fix: move bun cache to non mounted volume to benefit from cache optimization 2024-07-24 18:25:21 +02:00
Ruben Fiszel
9c63623436 avoid loops in symlinks 2024-07-24 16:45:04 +02:00
Ruben Fiszel
289766281c only use symlinks from buntar to job 2024-07-24 16:04:52 +02:00
Ruben Fiszel
9fd3ec5b03 only use symlinks from buntar to job 2024-07-24 15:54:46 +02:00
Ruben Fiszel
80d4fb0352 fix: use symlink and straight copy as fallback methods for buntar 2024-07-24 15:45:08 +02:00
Ruben Fiszel
aaf067eedb chore(main): release 1.367.1 (#4126)
* chore(main): release 1.367.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-24 15:27:14 +02:00
Ruben Fiszel
204e2fafda fix: delete buntar if any issue while creating it 2024-07-24 15:23:06 +02:00
Ruben Fiszel
d1012ea930 remove shared from hardlinks 2024-07-24 15:14:27 +02:00
Ruben Fiszel
7fbd0028c1 fix: generate lockfile with npm when npm mode is used 2024-07-24 14:48:25 +02:00
Ruben Fiszel
eead10bb80 chore(main): release 1.367.0 (#4118)
* chore(main): release 1.367.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-24 13:55:40 +02:00
Ruben Fiszel
d49b2d0f06 fix: fix webhooks urls after BASE_URL change 2024-07-24 13:31:06 +02:00
Ruben Fiszel
83d3f491b3 chore: update sqlx to 0.8.0 2024-07-24 11:51:54 +02:00
Ruben Fiszel
6d1fd24d37 chore: update sqlx to 0.8.0 2024-07-24 11:48:33 +02:00
wendrul
8fcda68af0 improve search backup on s3 2024-07-24 11:31:37 +02:00
Ruben Fiszel
20390c53e8 fix: respect sorting when downloading csv f rom auto table 2024-07-24 11:12:51 +02:00
Ruben Fiszel
c0f3a40c07 better split tantivy 2024-07-24 09:03:54 +02:00
Ruben Fiszel
7047e2975d better split tantivy 2024-07-24 08:15:14 +02:00
wendrul
5355af427d Prepare sqlx (#4122) 2024-07-23 20:03:30 +02:00
wendrul
eceb472d16 Prepare sqlx (#4121) 2024-07-23 19:54:31 +02:00
wendrul
cac39a1051 feat: job search index backed up and loaded from s3 (#4100)
* Add fn to get logs from disk and store as string

* Update dependencies

* Add async

* Update dependecies

* Add missing async

* Move JOB_RETENTION_SECS to windmill_common

* Update ee repo ref
2024-07-23 19:35:29 +02:00
HugoCasa
14a4f12826 feat: apply workspace specific tags only to some workspaces (#4107) 2024-07-23 19:12:11 +02:00
Ruben Fiszel
97f6b2e7ad fix: make result_json path stable for python executors 2024-07-23 17:39:40 +02:00
HugoCasa
c6dc06bf70 fix: sqlx build (#4120) 2024-07-23 17:14:36 +02:00
Ruben Fiszel
9ab5b2e32d fix: preserve force json across code preview 2024-07-23 16:42:29 +02:00
HugoCasa
13e9e8de9e fix: cgroupv1 mem limit + granular memory reporting (#4119)
* fix: cgroupv1 mem limit + granular memory reporting

* update ee ref

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2024-07-23 16:24:22 +02:00
HugoCasa
73decb24b2 fix: filter audit logs end user by username + complete resource filter (#4105)
* fix: filter audit logs end user by username + complete resource filter

* update ee ref

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2024-07-23 16:23:33 +02:00
HugoCasa
d096704b27 feat: use jwks for external jwt auth (#4089)
* feat: use jwks for external jwts

* fix: build

* update ee ref

* fix: nit error msg
2024-07-23 16:22:36 +02:00
Ruben Fiszel
48e9f089be feat: use hardlinks instead of tar to improve bun cache performances 2024-07-23 15:30:09 +02:00
Ruben Fiszel
99509ac683 chore(main): release 1.366.6 (#4117)
* chore(main): release 1.366.6

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-23 12:50:06 +02:00
Ruben Fiszel
ae4cbb0401 fix: fix copilot completion after base_url change 2024-07-23 12:21:12 +02:00
Ruben Fiszel
05388053e8 improve scrollbar styling for chrome 2024-07-23 08:57:04 +02:00
Ruben Fiszel
a117a4d017 chore(main): release 1.366.5 (#4116)
* chore(main): release 1.366.5

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-22 22:54:50 +02:00
Ruben Fiszel
bb861cfede fix: fix BASE_URL build conf 2024-07-22 22:51:08 +02:00
Ruben Fiszel
0f91539977 chore(main): release 1.366.4 (#4115)
* chore(main): release 1.366.4

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-22 22:39:39 +02:00
Ruben Fiszel
ab686ea69e fix sveltekit conf 2024-07-22 22:36:56 +02:00
Ruben Fiszel
e7cdc2b934 fix sveltekit conf 2024-07-22 22:31:53 +02:00
Ruben Fiszel
7d4dc8df26 fix sveltekit conf 2024-07-22 22:25:53 +02:00
Ruben Fiszel
6e33e4e0b9 fix: fix BASE_URL build conf 2024-07-22 21:53:08 +02:00
Ruben Fiszel
8a89652255 nit fix 2024-07-22 21:24:53 +02:00
Ruben Fiszel
f4c9ba00f1 chore(main): release 1.366.3 (#4114)
* chore(main): release 1.366.3

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-22 21:14:30 +02:00
Ruben Fiszel
25d230d8d8 nit fix 2024-07-22 21:13:43 +02:00
Ruben Fiszel
f6a948ba77 fix: fix BASE_URL build conf 2024-07-22 21:11:14 +02:00
Ruben Fiszel
fdeaf6298d chore(main): release 1.366.2 (#4113)
* chore(main): release 1.366.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-22 21:05:59 +02:00
Ruben Fiszel
c26457c967 fix: fix BASE_URL build conf 2024-07-22 21:02:19 +02:00
Ruben Fiszel
bc1c8d2d47 chore(main): release 1.366.1 (#4112)
* fix: fix BASE_URL build conf

* chore(main): release 1.366.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-22 20:57:15 +02:00
Ruben Fiszel
3131e14ca3 fix: fix BASE_URL build conf 2024-07-22 20:56:13 +02:00
Ruben Fiszel
8e7e1e94bc chore(main): release 1.366.0 (#4101)
* chore(main): release 1.366.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-22 20:41:20 +02:00
Ruben Fiszel
f65ccc07de fix: update parsers for CLI 2024-07-22 20:25:56 +02:00
Ruben Fiszel
a5627572ea small nit BASE_URL 2024-07-22 20:11:13 +02:00
Ruben Fiszel
d043df7674 small nit BASE_URL 2024-07-22 19:57:20 +02:00
Ruben Fiszel
829ee8a46a small nit BASE_URL 2024-07-22 19:56:26 +02:00
Ruben Fiszel
a15138d811 small nit BASE_URL 2024-07-22 19:47:01 +02:00
Ruben Fiszel
406414d24d small nit BASE_URL 2024-07-22 19:42:09 +02:00
Ruben Fiszel
1beed5f346 small nit BASE_URL 2024-07-22 19:38:05 +02:00
Ruben Fiszel
c5891c2bb7 small nit BASE_URL 2024-07-22 19:34:33 +02:00
Marcel Klehr
dd75dd446b fix: Allow deploying frontend in a sub directory (#3867)
* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow depolying frontend in a sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Expose base path from $lib/navigation

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow deploying frontend in sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow deploying frontend in sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow deploying frontend in sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow deploying frontend in sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* fix: Allow deploying frontend in sub directory

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

* update

* update

---------

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
2024-07-22 19:26:17 +02:00
Ruben Fiszel
26c30c4f8d feat: make components resizable directly on side 2024-07-22 18:12:35 +02:00
Ruben Fiszel
19d523dd64 feat: dynamic select (#4110) 2024-07-22 13:53:32 +02:00
HugoCasa
ea53a129af fix: improve cgroup readings (#4030)
* fix: improve cgroup readings

* feat: add staging image action

* fix: link staging image on other repo

* fix: linking

* fix: remove useless label
2024-07-18 17:12:07 +02:00
Ruben Fiszel
e91a06fa41 fix: add WM_SCHEDULED_FOR to contextual variables and early stop of flows 2024-07-18 02:10:15 +02:00
Ruben Fiszel
cb8b053476 chore(main): release 1.365.0 (#4093)
* chore(main): release 1.365.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-17 18:44:07 +02:00
Faton Ramadani
c8c5c2785b fix(frontend): close the content search modal when clicking on an item (#4098) 2024-07-17 17:17:10 +02:00
Faton Ramadani
5542b7d04d feat(frontend): array of resources (#4095)
* feat(frontend): wip

* feat(frontend): wip

* feat(frontend): add support for array of resources

* feat(frontend): improve code

* feat(frontend): add support for array of resources in the flow and app editors

* feat(frontend): improve code

* feat(frontend): display the detected resource type

* fix(frontend): Fix PR comments + add warning on the value format

* fix(frontend): improve code
2024-07-17 17:16:58 +02:00
Faton Ramadani
319454ecf2 fix(frontend): Display 'parallel'and 'skip failure' even when a summary is set (#4099) 2024-07-17 17:16:38 +02:00
Faton Ramadani
fc749c687c fix(frontend): fix flow graph when anode has multiple steps to the flow inputs (#4097) 2024-07-17 16:15:17 +02:00
Faton Ramadani
7aa2189fec fix(frontend): fix use inputs flow preview (#4094)
* fix(frontend): Fix json editor wip

* fix(frontend): Fix 'Use input' in the test flow drawer
2024-07-17 14:52:21 +02:00
Faton Ramadani
cdc7190d89 fix(frontend): improve search modal (#4088)
* feat(frontend): wip

* feat(frontend): wip

* feat(frontend): wip

* feat(frontend): improve search modal style

* feat(frontend): fix content search height

* feat(frontend): fix overflow

* feat(frontend): revert unrelated changes
2024-07-17 14:29:41 +02:00
HugoCasa
030b616999 chore: publish oneOf parser improvement (#4091)
* chore: publish oneOf parser improvement

* fix: indent
2024-07-17 11:16:26 +02:00
Ruben Fiszel
1ee85faa65 chore(main): release 1.364.3 (#4090)
* chore(main): release 1.364.3

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-16 21:39:51 +02:00
Ruben Fiszel
36277a9fd3 nit reload 2024-07-16 21:39:30 +02:00
Ruben Fiszel
bfbbeabe4f fix: fix missing workspaceId on display result of apps 2024-07-16 21:35:59 +02:00
Ruben Fiszel
929c2ce5c6 nit scroll 2024-07-16 21:31:55 +02:00
Ruben Fiszel
525e363f4b nit inputs not loaded on flow 2024-07-16 21:23:25 +02:00
Ruben Fiszel
9a5dc97b18 fix: fix erronous not connected error message 2024-07-16 21:12:44 +02:00
HugoCasa
30a77601e9 rhel9 binaries (#4086)
* feat: rhl9 img test

* fix: action

* fix: action

* fix: build

* don't use rustup

* fix: rustfmt

* fix: second apt-get

* fix

* fix: try xmlsec1 no-dev

* fix: remove scache

* fix: 1.75 rust support

* fix: rust 1.75

* fix: xmlsec1

* fix: nit

* fix: missing async recursion

* fix: missing dep + unregister from RH

* fix: add xmlsec1 openssl

* fix: check binary is running

* add link

* feat: clean rhel files

* fix: lock
2024-07-16 16:50:51 +02:00
Dominik Polzer
d9dba62165 Refactored nested match expressions for TS parser. (#3955)
* Refactored nested match expressions into inline pattern matching with early returns for improved readability and reduced nesting

* Updated fn naming, map_while instead of filter_map fix

---------

Co-authored-by: HugoCasa <hugo@casademont.ch>
2024-07-16 14:22:38 +02:00
wendrul
ae178cdaeb add more logs, change a fetch_one to opt and add back show memory every (#4087)
* add more logs, change a fetch_one to opt and add back show memory every

* Update ee repo ref
2024-07-16 14:14:21 +02:00
Ruben Fiszel
21c44c9100 chore(main): release 1.364.2 (#4085)
* chore(main): release 1.364.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-16 10:36:42 +02:00
Faton Ramadani
2859d78f3f fix(frontend): Handle three significant digits for jobs that ran in less than 1 min (#4084) 2024-07-16 10:33:19 +02:00
Ruben Fiszel
9397800f81 chore(main): release 1.364.1 (#4082)
* chore(main): release 1.364.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-15 23:08:47 +02:00
Ruben Fiszel
1deccc476d fix: fix cli build 2024-07-15 23:05:27 +02:00
Ruben Fiszel
8dda0df26d chore(main): release 1.364.0 (#4081)
* chore(main): release 1.364.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-15 20:20:53 +02:00
wendrul
3a57b202df Update ee-repo-ref.txt (#4080) 2024-07-15 20:20:39 +02:00
Ruben Fiszel
304b90fa27 fix: improve generate flow locks 2024-07-15 20:14:42 +02:00
HugoCasa
0f7f7c37a9 feat: rehydrate instance settings/configs/users from CLI (#4035)
* feat: rehydrate instance settings/configs/users from CLI

* fix: nits

* feat: encryption key, saved instances, include all workspaces

* preshot client version

* Update deps.ts
2024-07-15 19:38:44 +02:00
wendrul
86c47c3908 add workspace to authed for /api/srch endpoint (#4079) 2024-07-15 18:10:52 +02:00
Ruben Fiszel
969a86a573 chore(main): release 1.363.0 (#4075)
* chore(main): release 1.363.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-15 16:22:37 +02:00
Ruben Fiszel
70f3cc4c7a nits 2024-07-15 16:21:52 +02:00
wendrul
3e31977ba1 fix: make indexer opt-in when in standalone mode (#4076)
* Add standalone mode without indexer

* Imporve flag logic
2024-07-15 16:00:42 +02:00
Faton Ramadani
e6dfa390bb fix(frontend): flow editor improvements (#4008)
* fix(frontend): wip

* fix(frontend): wip

* fix(frontend): add missing iter input for while loops

* fix(frontend): improve code

* fix(frontend): improve code

* fix(frontend): failure status for fake modules on hold

* fix(frontend): wip

* fix(frontend): improve flow step warnings

* fix(frontend): add debounce

* fix(frontend): improve rpath detection

* feat(frontend): improve code

* fix(frontend): use the code parser to detect missing dependencies

* fix(frontend): improve code

* fix(frontend): improve code
2024-07-15 09:46:35 +02:00
Faton Ramadani
546c343811 feat(frontend): Rich result by id component (#4069)
* feat(frontend): Rich result by id component

* feat(frontend): add waitJob helper

* feat(frontend): improve code

* feat(frontend): improve code

* feat(frontend): fix build
2024-07-15 09:06:45 +02:00
Ruben Fiszel
60c229c4a1 improve schema form builder 2024-07-15 07:32:31 +02:00
Ruben Fiszel
ce73ee7c69 improve schema form builder 2024-07-15 01:05:46 +02:00
Ruben Fiszel
4caaafdd3b improve schema form builder 2024-07-15 00:48:29 +02:00
Ruben Fiszel
2ec8ce5b7d fix: improve schema editor 2024-07-14 13:30:39 +02:00
Ruben Fiszel
c84ee32797 chore(main): release 1.362.0 (#4063)
* chore(main): release 1.362.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-14 10:35:50 +02:00
Ruben Fiszel
847d82bd90 fix indexer port 2024-07-14 10:04:16 +02:00
Ruben Fiszel
c1d9784897 nit light mode flow style 2024-07-14 09:48:38 +02:00
Ruben Fiszel
290516179e nit light mode flow style 2024-07-14 09:43:18 +02:00
Ruben Fiszel
b498664c76 feat: improve flow status viewer (show branch chosen + all iterations in for loop) (#4074)
* all

* all

* all

* all

* all
2024-07-13 18:53:24 +02:00
Ruben Fiszel
eef0230ec7 nit indexer logs 2024-07-13 10:27:52 +02:00
Ruben Fiszel
52aaec634b nit indexer logs 2024-07-13 09:43:53 +02:00
wendrul
0a886e09ef Add indexer case to avoid 0 max_database_connection (#4073) 2024-07-13 00:18:56 +02:00
wendrul
88ae5e89db Make indexer mode not spawn the server specific behaviour (#4072)
* Make indexer mode not spawn the server specific behaviour

* Add ee repo ref
2024-07-12 20:36:53 +02:00
HugoCasa
3c09025296 staging image CI (#4070) 2024-07-12 16:59:57 +02:00
Ruben Fiszel
f06b53ed14 fix sqlx 2024-07-11 22:40:41 +02:00
Ruben Fiszel
b0e3c2b684 extend frontend es6 with es2017 methods 2024-07-11 18:30:35 +02:00
Ruben Fiszel
2747e1b087 feat: improve cancel all for non started jobs (#4065)
* update version

* improve cancelAll

* improve error

* update sqlx
2024-07-11 17:11:29 +02:00
Faton Ramadani
3b4a376208 feat(frontend): date select component (#4064)
* feat(frontend): add date select component

* feat(frontend): add date select component

* feat(frontend): add missing tooltip

* feat(frontend): add support for locale

* feat(frontend): correct number of days depending on month and year + fix output format

* feat(frontend): Fix display

* feat(frontend): Fix initial dimension

* feat(frontend): Fix outputs

* feat(frontend): clear and set the outputs depending on what field is enabled

* feat(frontend): improve code
2024-07-11 13:47:11 +02:00
Henri Courdent
c67170e88f Smaller and better positioned Add branch message (#4061) 2024-07-11 13:16:21 +02:00
Faton Ramadani
fd4fe15f49 fix(frontend): app editor improvements (#4052)
* fix(frontend): wip

* fix(frontend): fix dataflow to error handler module

* fix(frontend): add missing flow_input and result properties

* fix(frontend): fix build

* fix(frontend): improve code
2024-07-11 12:00:52 +02:00
wendrul
7ea554a7fd feat: Full-text search on runs using tantivy and command palette for quick actions (#4046)
* Add indexer crate and files

* POC searcher

incomplete schema
only indexes at startup

* POC search component frontend

* Demo of the frontend element

* add Results and Args as text

* minimal functionality

* Make jump to scripts by name

also flows and apps

* Add button on sidebar to open search

* Update lock on indexer after merge

* Make arrow key navigation compatible with scrol

* Show empty result screen and log as a coming feat

* Add summary to script searchable items

* Catch `parts is undefined` error (uFuzzy)

* Index refreshing using tokio interval

* Fix JobLoader workspace being wrongly defined

* Fix click outside

* Add debouncing for completed run search

* Binary mode working + job index tracker

* Warning for no license + fix height scrollbars on content search

* Make it compile without EE files

* remove panic to use errors

* Move global search

* Cleanup UI, no more tab switcher but clear placeholders and actions

* Add tantivy feature flag for windmill-api

* Rework indexer mode

* Mac compatibility for shortcut

* Update test for new run_server

* Prepare sqlx

* Mac compatibility

* Fix openapi yaml

* Fix frontend

* Frontend api fix

* Update docker-compose.yml and caddyfile

With the (by default deactivated) container and reverse proxy to use the
windmill indexer

* fix feature flag for tests

* fix feature falg for running tests

* fix feature flag for running tests

* Make content search use search modal instead

* Add tantivy feature to ee build steps

* Remove old Content search

* change volume location for indexer

* Update dependencies

* Prepare sqlx

* Uncomment line on docker compose

* Add line between input and results

* Update ee repo ref
2024-07-11 11:13:27 +02:00
Ruben Fiszel
88b61480cd remove env_id default value 2024-07-11 09:00:56 +02:00
Ruben Fiszel
90ce42b20c chore(main): release 1.361.1 (#4062)
* chore(main): release 1.361.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-11 08:02:10 +02:00
Ruben Fiszel
583190f883 fix: improve filter jobs query 2024-07-11 07:51:34 +02:00
Ruben Fiszel
299e0ee16c chore(main): release 1.361.0 (#4060)
* chore(main): release 1.361.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-11 02:24:56 +02:00
Ruben Fiszel
b4f0b32c40 fix: fix migration for instances starting from scratch 2024-07-11 02:12:51 +02:00
Ruben Fiszel
c7d4e6c0f3 specialize soft cancel filter 2024-07-11 01:27:56 +02:00
Ruben Fiszel
3b364ec385 improve try migration lock 2024-07-11 01:15:12 +02:00
Ruben Fiszel
1d1dde0d91 fix: improve performance of cancel_all 2024-07-11 00:41:03 +02:00
Ruben Fiszel
8fb91d34a5 sqlx 2024-07-11 00:12:11 +02:00
Ruben Fiszel
e450300c22 fix: improve completed_job index 2024-07-10 23:43:02 +02:00
Faton Ramadani
a6eeb68b77 feat(frontend): improve table action UX (#4056)
* feat(frontend): improve table action UX

* feat(frontend): improve table action UX
2024-07-10 19:11:48 +02:00
Faton Ramadani
c853db4e05 fix(frontend): fix style panel title (#4058) 2024-07-10 19:06:32 +02:00
Faton Ramadani
133a278912 feat(frontend): add support for GFM and fix max-width issue (#4057)
* feat(frontend): add support for GFM and fix max-width issue

* feat(frontend): enable GFM by default
2024-07-10 19:06:03 +02:00
Faton Ramadani
0b932cac6f fix(frontend): fix run page ms readability (#4059) 2024-07-10 19:05:47 +02:00
Ruben Fiszel
acc68a91b3 chore(main): release 1.360.1 (#4048)
* chore(main): release 1.360.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-09 17:16:11 +02:00
HugoCasa
82c88ad3b8 fix: update flow path (#4053) 2024-07-09 17:13:21 +02:00
Faton Ramadani
6e526327dd fix(frontend): Reload the flowStateStore when a node is restored (undo) (#4049) 2024-07-09 13:29:17 +02:00
Ruben Fiszel
e775cf351f nit improvement UX for single step flow 2024-07-09 12:45:35 +02:00
HugoCasa
eda6629bb3 fix: improve flow version fix migration (#4050) 2024-07-09 11:02:53 +02:00
Ruben Fiszel
6ada681472 nit flow inputs for simple forloops 2024-07-09 10:23:22 +02:00
Ruben Fiszel
6955fed266 nit expect 2024-07-09 08:45:36 +02:00
Ruben Fiszel
996408d73d more observability for dedicated workers 2024-07-09 08:26:40 +02:00
Ruben Fiszel
7f49798e3f fix: make dedicated workers work with dates in bun 2024-07-09 07:58:17 +02:00
Ruben Fiszel
23a00c55e9 fix: fix previous_result not always working for failure steps 2024-07-09 00:01:58 +02:00
Ruben Fiszel
9f8bb037de chore(main): release 1.360.0 (#4042)
* chore(main): release 1.360.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-08 22:56:21 +02:00
HugoCasa
9b2919be32 fix: always run flow versioning edge case fix migration (#4047) 2024-07-08 22:52:04 +02:00
Ruben Fiszel
a264a383de fix: persist enums change for string type 2024-07-08 22:27:08 +02:00
Faton Ramadani
0d3574158d fix(frontend): fix min rows for LightWeightArgInput (#4045) 2024-07-08 16:42:35 +02:00
Faton Ramadani
9e5a3f98bd feat(frontend): add custom actions header (#4044)
* feat(frontend): add custom action header for AgGrid tables

* feat(frontend): add custom action header for AgGrid tables
2024-07-08 16:11:46 +02:00
Ruben Fiszel
5657ccdbe4 fix: improve failure id assignment for parallel forloop 2024-07-08 15:50:38 +02:00
Ruben Fiszel
50e597d9a4 chore(main): release 1.359.0 (#4036)
* chore(main): release 1.359.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-08 13:45:57 +02:00
Faton Ramadani
95c2e1b21c fix(frontend): fix navbar item overflow (#4041) 2024-07-08 13:24:03 +02:00
Faton Ramadani
0ffac69406 feat(frontend): improve table actions (#4040)
* feat(frontend): wip

* feat(frontend): fix table actions width, hovering behavior and fixed connection

* feat(frontend): support infinite list + Db Explorer
2024-07-08 13:23:28 +02:00
HugoCasa
11b05b3d17 fix(backend): make value of flow_version not null (#4039)
* fix: flow versioning nit: make value of flow version not null

* fix: sqlx

* fix: missing code change

* fix: improve nit migration
2024-07-08 11:56:53 +02:00
Ruben Fiszel
9c6273e0ef fix sqlx 2024-07-08 11:55:59 +02:00
Ruben Fiszel
db19c86a2d fix: improve input history 2024-07-08 11:41:27 +02:00
HugoCasa
729f911b43 fix: flow versioning edge case (#4037) 2024-07-07 20:04:42 +02:00
Ruben Fiszel
b8f7fac12b flow layout improvements 2024-07-06 02:34:41 +02:00
Ruben Fiszel
5b9e4ee125 nit fix content search 2024-07-06 01:33:30 +02:00
Ruben Fiszel
299e7cf5cf fix: improve performance of content search for large repos 2024-07-06 01:06:50 +02:00
Ruben Fiszel
d50a1f4d94 escape html for content search 2024-07-06 00:52:07 +02:00
Ruben Fiszel
7e074b1cfb escape html for content search 2024-07-06 00:41:35 +02:00
Ruben Fiszel
e10062234e fix: improve handling of schedules with retries and concurrency limits 2024-07-05 20:37:30 +02:00
Ruben Fiszel
b9e0f2fd2f nit dataflow dark mode colors 2024-07-05 20:09:12 +02:00
Ruben Fiszel
c6fa154a50 nit dataflow dark mode colors 2024-07-05 20:06:31 +02:00
Ruben Fiszel
6d2ae7351f fix nit first step's input synchronized with flow schema 2024-07-05 18:51:43 +02:00
Ruben Fiszel
0a74faeeaf chore(main): release 1.358.1 (#4034)
* chore(main): release 1.358.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
2024-07-05 16:02:47 +02:00
Ruben Fiszel
b30bde9a9b fix: fix vscode extension dev mode with flows 2024-07-05 15:59:36 +02:00
597 changed files with 31872 additions and 11132 deletions

View File

@@ -1,5 +1,5 @@
ARG DEBIAN_IMAGE=debian:bookworm-slim
ARG RUST_IMAGE=rust:1.78-slim-bookworm
ARG RUST_IMAGE=rust:1.79-slim-bookworm
ARG PYTHON_IMAGE=python:3.11.4-slim-bookworm
FROM ${DEBIAN_IMAGE} as downloader

View File

@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: 1.78.0
toolchain: 1.79.0
# - uses: Swatinem/rust-cache@v2
# with:
# workspaces: |

View File

@@ -0,0 +1,45 @@
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository_owner }}/caddy-l4
name: Build caddy-l4
on:
workflow_dispatch:
permissions: write-all
jobs:
build_ee:
runs-on: ubicloud
steps:
- uses: actions/checkout@v4
- uses: depot/setup-action@v1
- name: Docker meta
id: meta-ee-public
uses: docker/metadata-action@v4
with:
images: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=sha
type=ref,event=branch
type=raw,value=latest,enable={{is_default_branch}}
- name: Login to registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push publicly
uses: depot/build-push-action@v1
with:
context: ./docker
file: ./docker/DockerfileCaddyL4
platforms: linux/amd64,linux/arm64
push: true
tags: |
${{ steps.meta-ee-public.outputs.tags }}
labels: |
${{ steps.meta-ee-public.outputs.labels }}

View File

@@ -0,0 +1,70 @@
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
name: Build windmill-staging
on:
workflow_dispatch:
permissions: write-all
jobs:
build_ee:
runs-on: ubicloud
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Read EE repo commit hash
run: |
echo "ee_repo_ref=$(cat ./backend/ee-repo-ref.txt)" >> "$GITHUB_ENV"
- uses: actions/checkout@v4
with:
repository: windmill-labs/windmill-ee-private
path: ./windmill-ee-private
ref: ${{ env.ee_repo_ref }}
token: ${{ secrets.WINDMILL_EE_PRIVATE_ACCESS }}
fetch-depth: 0
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2
- uses: depot/setup-action@v1
- name: Docker meta
id: meta-ee-public
uses: docker/metadata-action@v4
with:
images: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-staging-ee
flavor: |
latest=false
tags: |
type=sha
type=ref,event=branch
- name: Login to registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Substitute EE code
run: |
./backend/substitute_ee_code.sh --copy --dir ./windmill-ee-private
- name: Build and push publicly ee
uses: depot/build-push-action@v1
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
build-args: |
features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc
tags: |
${{ steps.meta-ee-public.outputs.tags }}
labels: |
${{ steps.meta-ee-public.outputs.labels }}
org.opencontainers.image.licenses=Windmill-Enterprise-License

76
.github/workflows/docker-image-rpi4.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}-rpi
name: Build windmill without jemalloc
on:
workflow_dispatch:
concurrency:
group: windmill-without-jemalloc
cancel-in-progress: true
permissions: write-all
jobs:
build:
runs-on: ubicloud
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Read EE repo commit hash
run: |
echo "ee_repo_ref=$(cat ./backend/ee-repo-ref.txt)" >> "$GITHUB_ENV"
- uses: actions/checkout@v4
with:
repository: windmill-labs/windmill-ee-private
path: ./windmill-ee-private
ref: ${{ env.ee_repo_ref }}
token: ${{ secrets.WINDMILL_EE_PRIVATE_ACCESS }}
fetch-depth: 0
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2
- uses: depot/setup-action@v1
- name: Login to registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Substitute EE code (EE logic is behind feature flag)
run: |
./backend/substitute_ee_code.sh --copy --dir ./windmill-ee-private
- name: Docker meta
id: meta-public
uses: docker/metadata-action@v4
with:
images: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=false
tags: |
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push publicly
uses: depot/build-push-action@v1
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
build-args: |
features=embedding,parquet,openidconnect
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
${{ steps.meta-public.outputs.tags }}
labels: |
${{ steps.meta-public.outputs.labels }}
org.opencontainers.image.licenses=AGPLv3

View File

@@ -1,6 +1,7 @@
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
IMAGE_NAME: ${{ github.event_name != 'pull_request' && github.repository || 'windmill-labs/windmill-test' }}
DEV_SHA: ${{ github.event_name != 'pull_request' && 'dev' || format('pr-{0}', github.event.number) }}
name: Build windmill:main
on:
@@ -62,7 +63,6 @@ jobs:
flavor: |
latest=false
tags: |
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
@@ -75,7 +75,7 @@ jobs:
build-args: |
features=embedding,parquet,openidconnect,jemalloc
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }}
${{ steps.meta-public.outputs.tags }}
labels: |
${{ steps.meta-public.outputs.labels }}
@@ -113,7 +113,6 @@ jobs:
flavor: |
latest=false
tags: |
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
@@ -135,9 +134,9 @@ jobs:
platforms: linux/amd64,linux/arm64
push: true
build-args: |
features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc
features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }}
${{ steps.meta-ee-public.outputs.tags }}
labels: |
${{ steps.meta-ee-public.outputs.labels }}
@@ -176,7 +175,6 @@ jobs:
flavor: |
latest=false
tags: |
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
@@ -198,7 +196,7 @@ jobs:
platforms: linux/amd64
push: true
build-args: |
features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc
features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy
PYTHON_IMAGE=python:3.12.2-slim-bookworm
tags: |
${{ steps.meta-ee-public-py312.outputs.tags }}
@@ -250,25 +248,25 @@ jobs:
- run: |
# pulling docker image with desired arch so that actions-docker-extract doesn't do it
docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }}
docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }}
- run: |
# Checks the image is in docker prior to running actions-docker-extract. It fails if not
# Also useful to visually check that the arch is the right opencontainers
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }}
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }}
- uses: shrink/actions-docker-extract@v3
id: extract
with:
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }}
path: "/usr/src/app/windmill"
- uses: shrink/actions-docker-extract@v3
id: extract-ee
with:
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }}
path: "/usr/src/app/windmill"
- name: Rename binary with corresponding architecture
@@ -294,25 +292,25 @@ jobs:
# - run: |
# # pulling docker image with desired arch so that actions-docker-extract doesn't do it
# docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
# docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
# docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }}
# docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }}
# - run: |
# # Checks the image is in docker prior to running actions-docker-extract. It fails if not
# # Also useful to visually check that the arch is the right opencontainers
# docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
# docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
# docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }}
# docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }}
# - uses: shrink/actions-docker-extract@v3
# id: extract
# with:
# image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
# image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }}
# path: "/usr/src/app/windmill"
# - uses: shrink/actions-docker-extract@v3
# id: extract-ee
# with:
# image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev
# image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }}
# path: "/usr/src/app/windmill"
# - name: Rename binary with corresponding architecture
@@ -354,6 +352,7 @@ jobs:
tag_latest:
runs-on: ubicloud
needs: [run_integration_test, build]
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
with:
@@ -366,12 +365,13 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Tag main and latest
run: |
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:main
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:main
tag_latest_ee:
runs-on: ubicloud
needs: [run_integration_test, build_ee]
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
with:
@@ -384,8 +384,8 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Tag main and latest for ee
run: |
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:dev --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:main
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest
docker buildx imagetools create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} --tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:main
verify_ee_image_vulnerabilities:
runs-on: ubicloud
@@ -432,6 +432,7 @@ jobs:
build_ee_nsjail:
needs: [build_ee]
runs-on: ubicloud
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
with:
@@ -451,8 +452,6 @@ jobs:
flavor: |
latest=false
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=sha,enable=true,priority=100,prefix=,suffix=,format=short
@@ -480,6 +479,7 @@ jobs:
build_ee_reports_privately:
needs: [build_ee_nsjail]
runs-on: ubicloud
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
with:
@@ -503,8 +503,6 @@ jobs:
images: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee-reports
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=sha,enable=true,priority=100,prefix=,suffix=,format=short
@@ -589,7 +587,6 @@ jobs:
flavor: |
latest=false
tags: |
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
@@ -636,7 +633,6 @@ jobs:
flavor: |
latest=false
tags: |
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}

View File

@@ -1,5 +1,661 @@
# Changelog
## [1.385.0](https://github.com/windmill-labs/windmill/compare/v1.384.0...v1.385.0) (2024-08-26)
### Features
* s3 image preview ([#4262](https://github.com/windmill-labs/windmill/issues/4262)) ([35d665f](https://github.com/windmill-labs/windmill/commit/35d665f6179e0a52dd30512e378f270c44703f48))
### Bug Fixes
* **frontend:** fix inserting Ws scripts from the search menu ([#4290](https://github.com/windmill-labs/windmill/issues/4290)) ([4efc40f](https://github.com/windmill-labs/windmill/commit/4efc40fbb0214fba65f6ff95782e6ead3b20bc71))
## [1.384.0](https://github.com/windmill-labs/windmill/compare/v1.383.1...v1.384.0) (2024-08-26)
### Features
* **frontend:** Add a toggle to disable breakpoints in the App editor ([#4274](https://github.com/windmill-labs/windmill/issues/4274)) ([5b2dd75](https://github.com/windmill-labs/windmill/commit/5b2dd7573d7ac2bd1b4ff06094a2dfd480ed24a4))
* **frontend:** hide/show app editor panels ([#4266](https://github.com/windmill-labs/windmill/issues/4266)) ([fdfd385](https://github.com/windmill-labs/windmill/commit/fdfd385a68c8e05eff147a9471a9f3f44f39e13e))
* put email triggers attachments on s3 ([#4272](https://github.com/windmill-labs/windmill/issues/4272)) ([5bd38f7](https://github.com/windmill-labs/windmill/commit/5bd38f78089a4beb4a28ba32bc99e649f8119a4c))
### Bug Fixes
* bun 1.1.21-&gt;1.1.25 ([7fa648f](https://github.com/windmill-labs/windmill/commit/7fa648f0876f5b5509fed39b314f40f08528b123))
* **lsp:** use ruff server instead of ruff-lsp ([88648af](https://github.com/windmill-labs/windmill/commit/88648af1cd6f9e4436e2fd3100f3ece764da75f1))
* update monaco-editor to latest monaco/language-client ([#4285](https://github.com/windmill-labs/windmill/issues/4285)) ([32c0b89](https://github.com/windmill-labs/windmill/commit/32c0b89729d98a25a5937af1ee41e8ea36334509))
## [1.383.1](https://github.com/windmill-labs/windmill/compare/v1.383.0...v1.383.1) (2024-08-22)
### Bug Fixes
* fix app navbar query reactivity + hash in ctx handling is more consistent ([7882d4e](https://github.com/windmill-labs/windmill/commit/7882d4ecdd1007e73a51d2a408cf2e6dc1f83213))
## [1.383.0](https://github.com/windmill-labs/windmill/compare/v1.382.2...v1.383.0) (2024-08-22)
### Features
* add native html select support + fix mobile scroll on app text component ([d604b6f](https://github.com/windmill-labs/windmill/commit/d604b6f2a0e5755c949f302c0490de47a8d662ca))
* add wrap_body header to webhooks ([9226d6c](https://github.com/windmill-labs/windmill/commit/9226d6cbc119f6a1b16936ebb855ff4f50c0e122))
* improve early stop ([#4257](https://github.com/windmill-labs/windmill/issues/4257)) ([bcde2e6](https://github.com/windmill-labs/windmill/commit/bcde2e62d7846822cfe7f8ef89a9484938829903))
### Bug Fixes
* **frontend:** fix large JSON viewer ([#4273](https://github.com/windmill-labs/windmill/issues/4273)) ([b3eabff](https://github.com/windmill-labs/windmill/commit/b3eabffb76e266269b2f5ff471a053fa065da4d0))
* **python-client:** only require httpx to be &gt;= 0.24 instead of ^0.24 ([fc12aeb](https://github.com/windmill-labs/windmill/commit/fc12aeb3961b8a1a42a8493e3774815c940b75af))
## [1.382.2](https://github.com/windmill-labs/windmill/compare/v1.382.1...v1.382.2) (2024-08-20)
### Bug Fixes
* **app:** database studio/empty table count reset ([d6d3389](https://github.com/windmill-labs/windmill/commit/d6d33898a765f910f66cd0cfbd70a439ab107528))
* **frontend:** Fix initial FlowGraph rendering on Chrome ([#4268](https://github.com/windmill-labs/windmill/issues/4268)) ([84d4e2c](https://github.com/windmill-labs/windmill/commit/84d4e2cb956ab4947b364d64c464fd5cf3c1d16f))
* handle more gracefully worker without tags ([7e1f280](https://github.com/windmill-labs/windmill/commit/7e1f28071a7d6f3f34df417ea746fc9b5dca5157))
## [1.382.1](https://github.com/windmill-labs/windmill/compare/v1.382.0...v1.382.1) (2024-08-20)
### Bug Fixes
* **frontend:** Fix flow graph step preview ([#4264](https://github.com/windmill-labs/windmill/issues/4264)) ([0a6832a](https://github.com/windmill-labs/windmill/commit/0a6832aa4561468fb0150f9eb435b7ad857fc841))
## [1.382.0](https://github.com/windmill-labs/windmill/compare/v1.381.0...v1.382.0) (2024-08-20)
### Features
* **frontend:** improve versions history by adding a diff viewer with… ([#4261](https://github.com/windmill-labs/windmill/issues/4261)) ([c19df12](https://github.com/windmill-labs/windmill/commit/c19df12292241c20c12e3de5d880c04df9b74324))
### Bug Fixes
* add FORCE_WORKER_TAGS & fix workers page when default worker group is missing ([09c6af0](https://github.com/windmill-labs/windmill/commit/09c6af05cd6e0b3b30f771a125b1fa330a938101))
* **bun:** disable large transpiling cache ([1a0e32b](https://github.com/windmill-labs/windmill/commit/1a0e32b40b5f1ac5dcfe3639e697affb6e79a558))
* **cli:** improve error message of cli ([f3bcadb](https://github.com/windmill-labs/windmill/commit/f3bcadbfb1e42b56996e273800aa0dcb01a6868b))
* frontend/package.json & frontend/package-lock.json to reduce vulnerabilities ([#4255](https://github.com/windmill-labs/windmill/issues/4255)) ([7fe0442](https://github.com/windmill-labs/windmill/commit/7fe0442a814ed42b1775386be5f4defdcb5c0a0f))
* **frontend:** nit worker limits ([#4258](https://github.com/windmill-labs/windmill/issues/4258)) ([bb92824](https://github.com/windmill-labs/windmill/commit/bb9282427399f305c3e8874204e6478272c43ff8))
* improve resource picker handling of objects ([2502377](https://github.com/windmill-labs/windmill/commit/250237793b3c2b1afd5ee122b147301bc487eeeb))
* **typescript-client:** runFlowAsync by default assume job doesn't outlive flow ([010e0fd](https://github.com/windmill-labs/windmill/commit/010e0fdc2352d740a72de124cc26eea8fc1915af))
## [1.381.0](https://github.com/windmill-labs/windmill/compare/v1.380.0...v1.381.0) (2024-08-16)
### Features
* add env to refresh cgroup readings ([#4250](https://github.com/windmill-labs/windmill/issues/4250)) ([e23c3fa](https://github.com/windmill-labs/windmill/commit/e23c3fad628cc718314472f3cb53c0f257c4c9e5))
* cache common hub scripts in image ([#4249](https://github.com/windmill-labs/windmill/issues/4249)) ([99f7828](https://github.com/windmill-labs/windmill/commit/99f7828ebb5fddf799afb52af7214ba4119e57b9))
### Bug Fixes
* **cli:** add inject and define options ([dffd5f7](https://github.com/windmill-labs/windmill/commit/dffd5f7f7d5c84624953bf8c778b14586a14e2d4))
* **frontend:** improve UI for email triggers ([#4243](https://github.com/windmill-labs/windmill/issues/4243)) ([6c9e32a](https://github.com/windmill-labs/windmill/commit/6c9e32af104a897e5c2a5b41867d2ffbbacc8acb))
* improve password field lifetime incorrectly recycled too early ([5a8fa1d](https://github.com/windmill-labs/windmill/commit/5a8fa1d72487ac2a29dca8833b8c92b8cac3726e))
* improve row update of aggrid table actions II ([3cf4f00](https://github.com/windmill-labs/windmill/commit/3cf4f00dca677fc592d5dde8a7b8fdcac5f08e0a))
* **typescript-client:** add runFlow and runFlowAsync ([c9ef2c8](https://github.com/windmill-labs/windmill/commit/c9ef2c8e97bdecb16b9a54805f1c90523e3b406f))
* workspace specific default tags do not override step level custom tags ([49835ca](https://github.com/windmill-labs/windmill/commit/49835ca6ca65e569ea2915b2ef4f7ce1c4988cae))
## [1.380.0](https://github.com/windmill-labs/windmill/compare/v1.379.4...v1.380.0) (2024-08-14)
### Features
* opt-in job args in audit logs ([#4241](https://github.com/windmill-labs/windmill/issues/4241)) ([0cce276](https://github.com/windmill-labs/windmill/commit/0cce27636d128972730427a33b7be954d00210dc))
* recoverable error handlers ([e0857c7](https://github.com/windmill-labs/windmill/commit/e0857c7178ac9657173e9ed597d072130e41fe47))
* togglable continue on disapproval/timeout of approvals ([be90b3e](https://github.com/windmill-labs/windmill/commit/be90b3e2192cdae88e38fd7e269ad8abc8f7c054))
## [1.379.4](https://github.com/windmill-labs/windmill/compare/v1.379.3...v1.379.4) (2024-08-14)
### Bug Fixes
* add missing change for better key renewal ([#4237](https://github.com/windmill-labs/windmill/issues/4237)) ([f88efc2](https://github.com/windmill-labs/windmill/commit/f88efc2380bf5b055b2633b24cb94fc46e6cdca5))
* fix transformer issue after proxy change for apps ([ad69876](https://github.com/windmill-labs/windmill/commit/ad698768e8fdbcc4a90f138f74ceee20d2d68a9b))
* handle time with tz col type in pg ([#4239](https://github.com/windmill-labs/windmill/issues/4239)) ([c09f078](https://github.com/windmill-labs/windmill/commit/c09f078928fb9f4b52df641580505d98bb728aa0))
* use job timeout for snowflake timeout ([#4240](https://github.com/windmill-labs/windmill/issues/4240)) ([3bd461f](https://github.com/windmill-labs/windmill/commit/3bd461ffa1fcbe19c9007b1b15970be21cff08ef))
## [1.379.3](https://github.com/windmill-labs/windmill/compare/v1.379.2...v1.379.3) (2024-08-13)
### Bug Fixes
* improve scrolling performance of the runs page ([0be8982](https://github.com/windmill-labs/windmill/commit/0be8982ddc263b76dab2c87cb6fa63e21effd58c))
## [1.379.2](https://github.com/windmill-labs/windmill/compare/v1.379.1...v1.379.2) (2024-08-13)
### Bug Fixes
* add fetch connection limits to bun type fetcher ([b9924d0](https://github.com/windmill-labs/windmill/commit/b9924d01d54f6dfaf5d719c13a38bb3dccbfe3b9))
* extend step_id being returned as part of the error of every languages ([bcc94ba](https://github.com/windmill-labs/windmill/commit/bcc94badbd848b6838dd0e353c3a30e7a1889ff8))
* **frontend:** date input is more flexible and accept default html format as a fallback ([b424c61](https://github.com/windmill-labs/windmill/commit/b424c61e95e3cc9213d4d3efbe4173857d4e80fd))
* improve logviewer behavior when job is loading ([7a68cc7](https://github.com/windmill-labs/windmill/commit/7a68cc76c2d5d7a66f080afdfcb6c5cd09fc25b5))
## [1.379.1](https://github.com/windmill-labs/windmill/compare/v1.379.0...v1.379.1) (2024-08-13)
### Bug Fixes
* add an option to disable bundling globally ([f00545f](https://github.com/windmill-labs/windmill/commit/f00545f1691c5107d1103f89bf68fdc3915ddd82))
* **apps:** improve tanstack table handling of objects ([1d0807f](https://github.com/windmill-labs/windmill/commit/1d0807f54238c8d8d242e3e5534c6d0868b3172b))
## [1.379.0](https://github.com/windmill-labs/windmill/compare/v1.378.0...v1.379.0) (2024-08-13)
### Features
* embeddable apps using jwt ([#4229](https://github.com/windmill-labs/windmill/issues/4229)) ([fd1c456](https://github.com/windmill-labs/windmill/commit/fd1c456fad16229112d9329e7c7eb9d60561efc0))
* **frontend:** group fields are mutable ([955a980](https://github.com/windmill-labs/windmill/commit/955a980703362b78bf24a47ec348878d7aac94e3))
* **frontend:** improve display of waiting jobs + schedule filter + suspended jobs on runs page ([2b99789](https://github.com/windmill-labs/windmill/commit/2b99789077b66991902819b26b140e2681a51344))
### Bug Fixes
* **apps:** type hints for results are automatically widened ([1719c26](https://github.com/windmill-labs/windmill/commit/1719c2689e2cdcbf4e88a5133e0d6c5626c8d6d9))
* support NODE_PATH ([3c4b837](https://github.com/windmill-labs/windmill/commit/3c4b8377ed4689704cb7baaee13e8acaa91e8611))
## [1.378.0](https://github.com/windmill-labs/windmill/compare/v1.377.1...v1.378.0) (2024-08-12)
### Features
* **cli:** add customerBundler support ([70d1e6c](https://github.com/windmill-labs/windmill/commit/70d1e6c7208b59890ad4d15cad28b1f32d7970d2))
* windmill embed ([d56a956](https://github.com/windmill-labs/windmill/commit/d56a956b9a471cca4042f43ba4e3922e42f121f1))
### Bug Fixes
* allow user resources in app to work within iframes ([6272c9f](https://github.com/windmill-labs/windmill/commit/6272c9ff41e5359f38ae13e879aa615da0fb0d09))
* **frontend:** improve default id of the components of the topbar ([#4222](https://github.com/windmill-labs/windmill/issues/4222)) ([7115a35](https://github.com/windmill-labs/windmill/commit/7115a3577947c52aa72edcc134dcb8e739208df0))
* **frontend:** support plus sign in emails format fields [#4223](https://github.com/windmill-labs/windmill/issues/4223) ([c0853ea](https://github.com/windmill-labs/windmill/commit/c0853eafc9f9bf6d454c6a70800c98c75c9d8ba3))
* **frontend:** user resource picker for app use lightweight component ([c03c0f6](https://github.com/windmill-labs/windmill/commit/c03c0f61726e7b6196fe5222c44d4d635e907b20))
* improve default value handling for date & date-time in apps ([e779f96](https://github.com/windmill-labs/windmill/commit/e779f963869fcb22d73f02b6a806e3fdac978959))
* improve license key ui ([#4220](https://github.com/windmill-labs/windmill/issues/4220)) ([0655803](https://github.com/windmill-labs/windmill/commit/06558038601d6f78b234519d4b48f229a2bf9fc8))
## [1.377.1](https://github.com/windmill-labs/windmill/compare/v1.377.0...v1.377.1) (2024-08-08)
### Bug Fixes
* **frontend:** fix timezone issues for Date only inputs ([#4215](https://github.com/windmill-labs/windmill/issues/4215)) ([2334802](https://github.com/windmill-labs/windmill/commit/2334802384e86c4269e1cbfd4f6f98a9a1e58f68))
## [1.377.0](https://github.com/windmill-labs/windmill/compare/v1.376.1...v1.377.0) (2024-08-08)
### Features
* **app:** add user resource select component ([413ad2c](https://github.com/windmill-labs/windmill/commit/413ad2c9259fd30871b5184bc4f7c3fece60918d))
### Bug Fixes
* Additional tracing when pulling and uploading search index [#4207](https://github.com/windmill-labs/windmill/issues/4207) ([4f9193c](https://github.com/windmill-labs/windmill/commit/4f9193c03664c336095e9aa2ea6232a4815c7387))
* azure git sync test connection ([#4209](https://github.com/windmill-labs/windmill/issues/4209)) ([2c3d492](https://github.com/windmill-labs/windmill/commit/2c3d4920e0b575019dd18d0a4a9609e6f66be60e))
* case insensitive encoding for email triggers ([#4211](https://github.com/windmill-labs/windmill/issues/4211)) ([55926f9](https://github.com/windmill-labs/windmill/commit/55926f957f83cf87a52070577ed79bed15e38836))
* **cli:** Add esbuild loader for .node files for codebase ([a77f74c](https://github.com/windmill-labs/windmill/commit/a77f74cb7ea5ed3633564075169a5aeedae06152))
* **frontend:** fix decision tree debug menu ([#4212](https://github.com/windmill-labs/windmill/issues/4212)) ([c90fb8d](https://github.com/windmill-labs/windmill/commit/c90fb8d293ef3aaa8264c2a2984e4203e4851f5c))
* **frontend:** fix flow warnings ([#4213](https://github.com/windmill-labs/windmill/issues/4213)) ([bf629f3](https://github.com/windmill-labs/windmill/commit/bf629f39ccc411b6ed98081f414a8c3238d52957))
* handle &gt;1 num workers stats ([#4177](https://github.com/windmill-labs/windmill/issues/4177)) ([0029dc1](https://github.com/windmill-labs/windmill/commit/0029dc11e9f0828c4a129586ac90a18b3f4dfe79))
* handle snowflake partitions ([#4214](https://github.com/windmill-labs/windmill/issues/4214)) ([d1e119e](https://github.com/windmill-labs/windmill/commit/d1e119e0526933cf39320eecf7c4836cd45d0eb0))
## [1.376.1](https://github.com/windmill-labs/windmill/compare/v1.376.0...v1.376.1) (2024-08-07)
### Bug Fixes
* email triggers sqlx CE and improve email parsing ([#4203](https://github.com/windmill-labs/windmill/issues/4203)) ([6e9c350](https://github.com/windmill-labs/windmill/commit/6e9c350b4aa27355d03cb409da36e8f44ff548dc))
* mysql params starting with underscore ([#4201](https://github.com/windmill-labs/windmill/issues/4201)) ([e7148f6](https://github.com/windmill-labs/windmill/commit/e7148f672303ccf2b5c49bd9d75ee9764657490e))
## [1.376.0](https://github.com/windmill-labs/windmill/compare/v1.375.0...v1.376.0) (2024-08-06)
### Features
* email triggers ([#4163](https://github.com/windmill-labs/windmill/issues/4163)) ([a87f34f](https://github.com/windmill-labs/windmill/commit/a87f34fb4a5e54da38e2dbabf2ac551d35b021ee))
* secure ctx variables in runnable inputs ([#4142](https://github.com/windmill-labs/windmill/issues/4142)) ([b54edf1](https://github.com/windmill-labs/windmill/commit/b54edf153ec90b9bafad9ed7bc92c29345951fe6))
* Tag filter on Runs page ([#4193](https://github.com/windmill-labs/windmill/issues/4193)) ([7b31281](https://github.com/windmill-labs/windmill/commit/7b3128171ea7193efea569297a099bb9ee6935e1))
### Bug Fixes
* fix native scripts access to reserved variables ([7886f8f](https://github.com/windmill-labs/windmill/commit/7886f8f471bcb33f7cc640eab64ffc0dd3cb1726))
* **frontend:** disable email triggers by default ([#4199](https://github.com/windmill-labs/windmill/issues/4199)) ([5e3a3e2](https://github.com/windmill-labs/windmill/commit/5e3a3e2103ce6218a60c570546355ef6ca574df2))
* **frontend:** fix the app created from a script or flow with the new topbar ([#4194](https://github.com/windmill-labs/windmill/issues/4194)) ([657f03b](https://github.com/windmill-labs/windmill/commit/657f03bc67f84a8593b28483684c2ad8ad432865))
* **frontend:** Fr/improve suspend drawer ([#4189](https://github.com/windmill-labs/windmill/issues/4189)) ([5104dba](https://github.com/windmill-labs/windmill/commit/5104dba63140e2186dc1eed7f0bf4e14e357bf3d))
* **frontend:** Hide AgChart background to make styling work ([#4197](https://github.com/windmill-labs/windmill/issues/4197)) ([b9b30e6](https://github.com/windmill-labs/windmill/commit/b9b30e66ec485cc019561b092fc27d08aa4666b3))
* **frontend:** Remove full height for the event handlers of runnables ([#4196](https://github.com/windmill-labs/windmill/issues/4196)) ([6749f2c](https://github.com/windmill-labs/windmill/commit/6749f2c1367bdbecb12941baaa87b63c4b4c6f20))
* mysql support for underscore in named param ([#4200](https://github.com/windmill-labs/windmill/issues/4200)) ([cfa20ae](https://github.com/windmill-labs/windmill/commit/cfa20ae0d740014baea2e534cea5f787acaeb028))
## [1.375.0](https://github.com/windmill-labs/windmill/compare/v1.374.0...v1.375.0) (2024-08-05)
### Features
* deployment UI filter deployable items ([#4183](https://github.com/windmill-labs/windmill/issues/4183)) ([f2f8bbe](https://github.com/windmill-labs/windmill/commit/f2f8bbe1d4364540854fef3bf11df5bb4252c17d))
* improve indices of completed_runs for faster load ([cc111ba](https://github.com/windmill-labs/windmill/commit/cc111ba7dcd7fe6c4280d394d4eb0e723e9d8b19))
### Bug Fixes
* **frontend:** add missing truncate for branch predicates ([#4180](https://github.com/windmill-labs/windmill/issues/4180)) ([947dd21](https://github.com/windmill-labs/windmill/commit/947dd219335244728213e95a46e577428ac65464))
* **frontend:** fix style panel for compoentn without custom css ([#4182](https://github.com/windmill-labs/windmill/issues/4182)) ([43a89ee](https://github.com/windmill-labs/windmill/commit/43a89ee1ccbeeac11211277f8005d85541c71dc3))
* **frontend:** fix tutorial for apps with the new topbar ([#4186](https://github.com/windmill-labs/windmill/issues/4186)) ([704e75e](https://github.com/windmill-labs/windmill/commit/704e75e893a94e71091c840aa5608837c0617526))
## [1.374.0](https://github.com/windmill-labs/windmill/compare/v1.373.1...v1.374.0) (2024-08-04)
### Features
* add support for assets using tar for codebase deploy ([3508b6d](https://github.com/windmill-labs/windmill/commit/3508b6d793b0ce21c0c264a50bb000cd61c21920))
* caddy with l4 image ([#4178](https://github.com/windmill-labs/windmill/issues/4178)) ([811de58](https://github.com/windmill-labs/windmill/commit/811de58712f619045a3653fe5b98ff0c7599f392))
### Bug Fixes
* fix delete job ([86e23f2](https://github.com/windmill-labs/windmill/commit/86e23f2aed234a64fce46e1b6253f788546876af))
## [1.373.1](https://github.com/windmill-labs/windmill/compare/v1.373.0...v1.373.1) (2024-08-02)
### Bug Fixes
* fix run_flow_async from call ([63abd5b](https://github.com/windmill-labs/windmill/commit/63abd5b14606869eafbd25d8469638b85b96e199))
* **frontend:** Add support for array of objects in th UI ([#4170](https://github.com/windmill-labs/windmill/issues/4170)) ([91e364b](https://github.com/windmill-labs/windmill/commit/91e364bde5459447945d7dae65c1cab2858c69ac))
## [1.373.0](https://github.com/windmill-labs/windmill/compare/v1.372.0...v1.373.0) (2024-08-01)
### Features
* Indexing improvements ([#4167](https://github.com/windmill-labs/windmill/issues/4167)) ([edcee6d](https://github.com/windmill-labs/windmill/commit/edcee6d8611ff96bfbca7ba811e5e67beaa80f5a))
### Bug Fixes
* app forms default values changes gets propagated ([cd61fc1](https://github.com/windmill-labs/windmill/commit/cd61fc1e8c00cc3a57af0228cdf958b2fb3a2699))
## [1.372.0](https://github.com/windmill-labs/windmill/compare/v1.371.4...v1.372.0) (2024-08-01)
### Features
* variables created by password fields expire after 7 days ([b5464e2](https://github.com/windmill-labs/windmill/commit/b5464e2906bdaedb4752e198e40b7e8c4dbb1338))
### Bug Fixes
* fix raw_deps handling ([efcf0e4](https://github.com/windmill-labs/windmill/commit/efcf0e40f68342f8330cf5d610979eb7fe92ce09))
* improve cancel_selection job for running jobs ([42e3ae9](https://github.com/windmill-labs/windmill/commit/42e3ae92e3841579f8ac0821b58ebb72c4204c98))
## [1.371.4](https://github.com/windmill-labs/windmill/compare/v1.371.3...v1.371.4) (2024-07-31)
### Bug Fixes
* **frontend:** fix recompute all ([#4161](https://github.com/windmill-labs/windmill/issues/4161)) ([10c6997](https://github.com/windmill-labs/windmill/commit/10c699759e1d06d009783b9f5cba2cbf3ba6a7da))
* **frontend:** If multiple recompute all present, interval is now in sync ([#4162](https://github.com/windmill-labs/windmill/issues/4162)) ([efeb65b](https://github.com/windmill-labs/windmill/commit/efeb65be4c91491bb4fbedfbc160da7517ebe1d6))
* improve index usage and runs page performance ([d69aa8d](https://github.com/windmill-labs/windmill/commit/d69aa8d484de016ae7e7bbd190ce6c254818c861))
## [1.371.3](https://github.com/windmill-labs/windmill/compare/v1.371.2...v1.371.3) (2024-07-30)
### Bug Fixes
* for codebase bundle, use cjs exports instead ([be8cedf](https://github.com/windmill-labs/windmill/commit/be8cedfe7fe42105a375c92536ec7f5e5a1343bf))
## [1.371.2](https://github.com/windmill-labs/windmill/compare/v1.371.1...v1.371.2) (2024-07-30)
### Bug Fixes
* improve codebase handling by ignoring creating lock and bundle ([716bb71](https://github.com/windmill-labs/windmill/commit/716bb7118b0d5b8dd86799d5514f37b068613256))
## [1.371.1](https://github.com/windmill-labs/windmill/compare/v1.371.0...v1.371.1) (2024-07-30)
### Bug Fixes
* database connections now scale linearly with number of subworkers ([f59046a](https://github.com/windmill-labs/windmill/commit/f59046a9249962ba7e1739de579cd8d885ec63a8))
## [1.371.0](https://github.com/windmill-labs/windmill/compare/v1.370.0...v1.371.0) (2024-07-30)
### Features
* **frontend:** support array of objects in schema ([#4106](https://github.com/windmill-labs/windmill/issues/4106)) ([5992b82](https://github.com/windmill-labs/windmill/commit/5992b821803d9cdc45fa0dee100f159dd3ed557f))
### Bug Fixes
* always consider electron as external for bundles ([06433a6](https://github.com/windmill-labs/windmill/commit/06433a6ec65534e1a11085cefd6a67699e4eb0a0))
* fix bunnative lock creation ([6a33624](https://github.com/windmill-labs/windmill/commit/6a33624416cc48e2a1ab21afbd2ac4ab48be2559))
* submit and form persistence on app on render change ([28277da](https://github.com/windmill-labs/windmill/commit/28277da35bae1c18f16e85d093989e0d419b3601))
* support bunnative in the CLI ([e02e644](https://github.com/windmill-labs/windmill/commit/e02e644d4ca16773bae3cc2a6b52ac08417d3905))
## [1.370.0](https://github.com/windmill-labs/windmill/compare/v1.369.1...v1.370.0) (2024-07-29)
### Features
* get completed flow node result by api/download + eval list result json path optim ([#4108](https://github.com/windmill-labs/windmill/issues/4108)) ([5031a8c](https://github.com/windmill-labs/windmill/commit/5031a8cb015e3ba8d668f5de769b8d67da82c116))
### Bug Fixes
* improve native runtime with axios support ([6e91005](https://github.com/windmill-labs/windmill/commit/6e91005daa4bbe2f0bd1f8b1c2cce1f68485f9ef))
## [1.369.1](https://github.com/windmill-labs/windmill/compare/v1.369.0...v1.369.1) (2024-07-29)
### Bug Fixes
* fix lang picker artefact for script editor ([bc94acb](https://github.com/windmill-labs/windmill/commit/bc94acb378b1310271dd3dda80614e0e38b5285f))
## [1.369.0](https://github.com/windmill-labs/windmill/compare/v1.368.3...v1.369.0) (2024-07-29)
### Features
* add support for text/plain webhook ([#4146](https://github.com/windmill-labs/windmill/issues/4146)) ([eb6557a](https://github.com/windmill-labs/windmill/commit/eb6557a6beb5d3b2324b30f2abc117b1a122c3f7))
* **frontend:** App bar as components ([#4103](https://github.com/windmill-labs/windmill/issues/4103)) ([fb89eed](https://github.com/windmill-labs/windmill/commit/fb89eed8fa43568ffe3a22c5a6dd0b9f38890a37))
* remove nativets in favor of bun with native pragma ([18f22be](https://github.com/windmill-labs/windmill/commit/18f22be2bae3136f1d9ff06c74f3751504bef60b))
* remove nativets in favor of bun with native pragma ([b02baa2](https://github.com/windmill-labs/windmill/commit/b02baa2cfb242f7f6ed64e9861a8562272fb2974))
## [1.368.3](https://github.com/windmill-labs/windmill/compare/v1.368.2...v1.368.3) (2024-07-28)
### Bug Fixes
* update bun to 1.1.21 ([e45a8a4](https://github.com/windmill-labs/windmill/commit/e45a8a4591649de240a4bff0a25301a2586618bf))
## [1.368.2](https://github.com/windmill-labs/windmill/compare/v1.368.1...v1.368.2) (2024-07-28)
### Bug Fixes
* add the nobundling option for bun ([c3848e2](https://github.com/windmill-labs/windmill/commit/c3848e2e3011c7e74d5ae6eb85605476ef2998f4))
* disable prebundling for nodejs mode scripts ([1e2e907](https://github.com/windmill-labs/windmill/commit/1e2e907982eab2ea7e713d9cfbec046527616fa2))
## [1.368.1](https://github.com/windmill-labs/windmill/compare/v1.368.0...v1.368.1) (2024-07-27)
### Bug Fixes
* improve runs page performance through pg indices ([99623f3](https://github.com/windmill-labs/windmill/commit/99623f31af109463b065688058d0cab8ea9910de))
## [1.368.0](https://github.com/windmill-labs/windmill/compare/v1.367.2...v1.368.0) (2024-07-26)
### Features
* add FORCE_&lt;env&gt; to allow to override db settings ([f1d5be8](https://github.com/windmill-labs/windmill/commit/f1d5be8a2a76d5c0d37c55ba762f2cd7a6f6982f))
* job view audit logging based on env variable ([#4131](https://github.com/windmill-labs/windmill/issues/4131)) ([12f9e56](https://github.com/windmill-labs/windmill/commit/12f9e56154b32d839f49dd967ada4952ca4c395d))
* multi sql statement with pg fix ([#4134](https://github.com/windmill-labs/windmill/issues/4134)) ([6df9eca](https://github.com/windmill-labs/windmill/commit/6df9eca2cffef754ee27b3219f18d0ad69615c83))
* multi statement sql ([#4104](https://github.com/windmill-labs/windmill/issues/4104)) ([23108b4](https://github.com/windmill-labs/windmill/commit/23108b4688ec9c9683371ee70a50658f6baae42f))
* pre-bundle bun scripts ([#4132](https://github.com/windmill-labs/windmill/issues/4132)) ([78fd99c](https://github.com/windmill-labs/windmill/commit/78fd99cb6843c7f8045acd6a6a8df851ec6b35d1))
### Bug Fixes
* allow colors for bun and log error directly ([545a57f](https://github.com/windmill-labs/windmill/commit/545a57fd2c425f02d867f4183aac37131e17210f))
* search modal improvements ([#4128](https://github.com/windmill-labs/windmill/issues/4128)) ([c270ab1](https://github.com/windmill-labs/windmill/commit/c270ab11718f8d41fe764d5d2116bb3b9aa20cb2))
* support npmjs mode for raw deps of package.json from CLI ([8e615c9](https://github.com/windmill-labs/windmill/commit/8e615c900de46632c52d78a1ec4b6ccc2cec79ff))
## [1.367.2](https://github.com/windmill-labs/windmill/compare/v1.367.1...v1.367.2) (2024-07-24)
### Bug Fixes
* move bun cache to non mounted volume to benefit from cache optimization ([92dac02](https://github.com/windmill-labs/windmill/commit/92dac027f26dfa880e22b1896b48605ae2ef2794))
* use symlink and straight copy as fallback methods for buntar ([80d4fb0](https://github.com/windmill-labs/windmill/commit/80d4fb0352606948b01f4918e11f80a0bef544f4))
## [1.367.1](https://github.com/windmill-labs/windmill/compare/v1.367.0...v1.367.1) (2024-07-24)
### Bug Fixes
* delete buntar if any issue while creating it ([204e2fa](https://github.com/windmill-labs/windmill/commit/204e2fafda681347813ab91f96cee4194db2e156))
* generate lockfile with npm when npm mode is used ([7fbd002](https://github.com/windmill-labs/windmill/commit/7fbd0028c1f2dfbd6a5cde12e6a0e314ed31552a))
## [1.367.0](https://github.com/windmill-labs/windmill/compare/v1.366.6...v1.367.0) (2024-07-24)
### Features
* apply workspace specific tags only to some workspaces ([#4107](https://github.com/windmill-labs/windmill/issues/4107)) ([14a4f12](https://github.com/windmill-labs/windmill/commit/14a4f1282671d1c6a2481123cd5a4297fbd89607))
* job search index backed up and loaded from s3 ([#4100](https://github.com/windmill-labs/windmill/issues/4100)) ([cac39a1](https://github.com/windmill-labs/windmill/commit/cac39a105187bd005dee442c4968ebbd9ba163d7))
* use hardlinks instead of tar to improve bun cache performances ([48e9f08](https://github.com/windmill-labs/windmill/commit/48e9f089beff10828eef7a35fb341894eb50d25d))
* use jwks for external jwt auth ([#4089](https://github.com/windmill-labs/windmill/issues/4089)) ([d096704](https://github.com/windmill-labs/windmill/commit/d096704b27f169672d8949f8570b2b5cba25e78c))
### Bug Fixes
* cgroupv1 mem limit + granular memory reporting ([#4119](https://github.com/windmill-labs/windmill/issues/4119)) ([13e9e8d](https://github.com/windmill-labs/windmill/commit/13e9e8de9e49f9513ad0cd8ac5a3b8b356de02a9))
* filter audit logs end user by username + complete resource filter ([#4105](https://github.com/windmill-labs/windmill/issues/4105)) ([73decb2](https://github.com/windmill-labs/windmill/commit/73decb24b23e1a998957455cf4f4148be5990cce))
* fix webhooks urls after BASE_URL change ([d49b2d0](https://github.com/windmill-labs/windmill/commit/d49b2d0f06842e70180f931ac7b4ac683c1c65b6))
* make result_json path stable for python executors ([97f6b2e](https://github.com/windmill-labs/windmill/commit/97f6b2e7ad9962c99e566238bde40cdba0ffc3a8))
* preserve force json across code preview ([9ab5b2e](https://github.com/windmill-labs/windmill/commit/9ab5b2e32d78056752f654769154b90872a9ab85))
* respect sorting when downloading csv f rom auto table ([20390c5](https://github.com/windmill-labs/windmill/commit/20390c53e82686ac6a8b7a9bc1bf9fb8e014e3c5))
* sqlx build ([#4120](https://github.com/windmill-labs/windmill/issues/4120)) ([c6dc06b](https://github.com/windmill-labs/windmill/commit/c6dc06bf702b501225a51813a2489ce9ea3c4636))
## [1.366.6](https://github.com/windmill-labs/windmill/compare/v1.366.5...v1.366.6) (2024-07-23)
### Bug Fixes
* fix copilot completion after base_url change ([ae4cbb0](https://github.com/windmill-labs/windmill/commit/ae4cbb0401b01e1e378b2a982d7a610648c96239))
## [1.366.5](https://github.com/windmill-labs/windmill/compare/v1.366.4...v1.366.5) (2024-07-22)
### Bug Fixes
* fix BASE_URL build conf ([bb861cf](https://github.com/windmill-labs/windmill/commit/bb861cfedef1e5531f31b62dd73907b89ddd473a))
## [1.366.4](https://github.com/windmill-labs/windmill/compare/v1.366.3...v1.366.4) (2024-07-22)
### Bug Fixes
* fix BASE_URL build conf ([6e33e4e](https://github.com/windmill-labs/windmill/commit/6e33e4e0b9fce86407cc7cfc9a4a57e03ec5199b))
## [1.366.3](https://github.com/windmill-labs/windmill/compare/v1.366.2...v1.366.3) (2024-07-22)
### Bug Fixes
* fix BASE_URL build conf ([f6a948b](https://github.com/windmill-labs/windmill/commit/f6a948ba7705b5b59af87bff7d17252ec1c8e739))
## [1.366.2](https://github.com/windmill-labs/windmill/compare/v1.366.1...v1.366.2) (2024-07-22)
### Bug Fixes
* fix BASE_URL build conf ([c26457c](https://github.com/windmill-labs/windmill/commit/c26457c967c07f05110ca31c987247869e267c51))
## [1.366.1](https://github.com/windmill-labs/windmill/compare/v1.366.0...v1.366.1) (2024-07-22)
### Bug Fixes
* fix BASE_URL build conf ([9cb4586](https://github.com/windmill-labs/windmill/commit/9cb4586211af8159037e402dc03b85f37db8aa5f))
## [1.366.0](https://github.com/windmill-labs/windmill/compare/v1.365.0...v1.366.0) (2024-07-22)
### Features
* dynamic select ([#4110](https://github.com/windmill-labs/windmill/issues/4110)) ([19d523d](https://github.com/windmill-labs/windmill/commit/19d523dd64327cc8c590737f6a14a5d10fe19aa6))
* make components resizable directly on side ([26c30c4](https://github.com/windmill-labs/windmill/commit/26c30c4f8df6eac7c1d99770c99b8159bd3afe49))
### Bug Fixes
* add WM_SCHEDULED_FOR to contextual variables and early stop of flows ([e91a06f](https://github.com/windmill-labs/windmill/commit/e91a06fa41a1bdcc781126b936e20a83e540c9f9))
* Allow deploying frontend in a sub directory ([#3867](https://github.com/windmill-labs/windmill/issues/3867)) ([dd75dd4](https://github.com/windmill-labs/windmill/commit/dd75dd446b5d155ac0c9a007e694732a81dc6b35))
* improve cgroup readings ([#4030](https://github.com/windmill-labs/windmill/issues/4030)) ([ea53a12](https://github.com/windmill-labs/windmill/commit/ea53a129afc520ee804f473f63847df57e7287a2))
* update parsers for CLI ([f65ccc0](https://github.com/windmill-labs/windmill/commit/f65ccc07de8e1367ce5acc45d4f3674593351b75))
## [1.365.0](https://github.com/windmill-labs/windmill/compare/v1.364.3...v1.365.0) (2024-07-17)
### Features
* **frontend:** array of resources ([#4095](https://github.com/windmill-labs/windmill/issues/4095)) ([5542b7d](https://github.com/windmill-labs/windmill/commit/5542b7d04d0aabff29636b6e0e2e7ff6b5098206))
### Bug Fixes
* **frontend:** close the content search modal when clicking on an item ([#4098](https://github.com/windmill-labs/windmill/issues/4098)) ([c8c5c27](https://github.com/windmill-labs/windmill/commit/c8c5c2785b2c88d35f5bfe8ed65935dd658afd98))
* **frontend:** Display 'parallel'and 'skip failure' even when a summary is set ([#4099](https://github.com/windmill-labs/windmill/issues/4099)) ([319454e](https://github.com/windmill-labs/windmill/commit/319454ecf2143703dd7aca9147a9c7d95f83c6a6))
* **frontend:** fix flow graph when anode has multiple steps to the flow inputs ([#4097](https://github.com/windmill-labs/windmill/issues/4097)) ([fc749c6](https://github.com/windmill-labs/windmill/commit/fc749c687c3919ad57f8bdd7e0b2313c57f0d737))
* **frontend:** fix use inputs flow preview ([#4094](https://github.com/windmill-labs/windmill/issues/4094)) ([7aa2189](https://github.com/windmill-labs/windmill/commit/7aa2189feca1b502674c5c1957f207b3dd1e7264))
* **frontend:** improve search modal ([#4088](https://github.com/windmill-labs/windmill/issues/4088)) ([cdc7190](https://github.com/windmill-labs/windmill/commit/cdc7190d8962ca98e78d04e3a7f4da7aa3391ec3))
## [1.364.3](https://github.com/windmill-labs/windmill/compare/v1.364.2...v1.364.3) (2024-07-16)
### Bug Fixes
* fix erronous not connected error message ([9a5dc97](https://github.com/windmill-labs/windmill/commit/9a5dc97b184a6b4a027baaa244c117885fb86fbb))
* fix missing workspaceId on display result of apps ([bfbbeab](https://github.com/windmill-labs/windmill/commit/bfbbeabe4f57ed65a0190715028ed6df9a201e06))
## [1.364.2](https://github.com/windmill-labs/windmill/compare/v1.364.1...v1.364.2) (2024-07-16)
### Bug Fixes
* **frontend:** Handle three significant digits for jobs that ran in less than 1 min ([#4084](https://github.com/windmill-labs/windmill/issues/4084)) ([2859d78](https://github.com/windmill-labs/windmill/commit/2859d78f3fe8c261ce4ca1af6a4a5ee53b6aeb29))
## [1.364.1](https://github.com/windmill-labs/windmill/compare/v1.364.0...v1.364.1) (2024-07-15)
### Bug Fixes
* fix cli build ([1deccc4](https://github.com/windmill-labs/windmill/commit/1deccc476d4db07e1530ac5b642e619b9d7b618f))
## [1.364.0](https://github.com/windmill-labs/windmill/compare/v1.363.0...v1.364.0) (2024-07-15)
### Features
* rehydrate instance settings/configs/users from CLI ([#4035](https://github.com/windmill-labs/windmill/issues/4035)) ([0f7f7c3](https://github.com/windmill-labs/windmill/commit/0f7f7c37a97efda3fa41f1856aec658425349abd))
### Bug Fixes
* improve generate flow locks ([304b90f](https://github.com/windmill-labs/windmill/commit/304b90fa2751a024f294efe8bbe587d9524f3418))
## [1.363.0](https://github.com/windmill-labs/windmill/compare/v1.362.0...v1.363.0) (2024-07-15)
### Features
* **frontend:** Rich result by id component ([#4069](https://github.com/windmill-labs/windmill/issues/4069)) ([546c343](https://github.com/windmill-labs/windmill/commit/546c343811a6eb66a49670c915e984cb68f5aab1))
### Bug Fixes
* **frontend:** flow editor improvements ([#4008](https://github.com/windmill-labs/windmill/issues/4008)) ([e6dfa39](https://github.com/windmill-labs/windmill/commit/e6dfa390bbf27ed8d4d13128c33b7fd5b2ef69ab))
* improve schema editor ([2ec8ce5](https://github.com/windmill-labs/windmill/commit/2ec8ce5b7da76d7b5429120b749c66ffb833ff68))
* make indexer opt-in when in standalone mode ([#4076](https://github.com/windmill-labs/windmill/issues/4076)) ([3e31977](https://github.com/windmill-labs/windmill/commit/3e31977ba1de984d256dbd888b769ddd9f566b04))
## [1.362.0](https://github.com/windmill-labs/windmill/compare/v1.361.1...v1.362.0) (2024-07-14)
### Features
* **frontend:** date select component ([#4064](https://github.com/windmill-labs/windmill/issues/4064)) ([3b4a376](https://github.com/windmill-labs/windmill/commit/3b4a3762087cc3f75f7ac297b236bfd98f858076))
* Full-text search on runs using tantivy and command palette for quick actions ([#4046](https://github.com/windmill-labs/windmill/issues/4046)) ([7ea554a](https://github.com/windmill-labs/windmill/commit/7ea554a7fd315dd6f91b9cbdc12c36fdf50ede9e))
* improve cancel all for non started jobs ([#4065](https://github.com/windmill-labs/windmill/issues/4065)) ([2747e1b](https://github.com/windmill-labs/windmill/commit/2747e1b0879a734077df363594363ea552f96f9c))
* improve flow status viewer (show branch chosen + all iterations in for loop) ([#4074](https://github.com/windmill-labs/windmill/issues/4074)) ([b498664](https://github.com/windmill-labs/windmill/commit/b498664c76246931d77cdf6740b15160bd8379a5))
### Bug Fixes
* **frontend:** app editor improvements ([#4052](https://github.com/windmill-labs/windmill/issues/4052)) ([fd4fe15](https://github.com/windmill-labs/windmill/commit/fd4fe15f49be5cd68c4af8fdba8dbaf61cbc68cc))
## [1.361.1](https://github.com/windmill-labs/windmill/compare/v1.361.0...v1.361.1) (2024-07-11)
### Bug Fixes
* improve filter jobs query ([583190f](https://github.com/windmill-labs/windmill/commit/583190f883e2a82fb6d0ab0d882283d5da5436c5))
## [1.361.0](https://github.com/windmill-labs/windmill/compare/v1.360.1...v1.361.0) (2024-07-11)
### Features
* **frontend:** add support for GFM and fix max-width issue ([#4057](https://github.com/windmill-labs/windmill/issues/4057)) ([133a278](https://github.com/windmill-labs/windmill/commit/133a2789120c50f2733af4bce5290bd7365b566d))
* **frontend:** improve table action UX ([#4056](https://github.com/windmill-labs/windmill/issues/4056)) ([a6eeb68](https://github.com/windmill-labs/windmill/commit/a6eeb68b77c49e2fa41e2bb62e72ce4446841fbc))
### Bug Fixes
* fix migration for instances starting from scratch ([b4f0b32](https://github.com/windmill-labs/windmill/commit/b4f0b32c40bc63b4063816f51c5a30679edf03f4))
* **frontend:** fix run page ms readability ([#4059](https://github.com/windmill-labs/windmill/issues/4059)) ([0b932ca](https://github.com/windmill-labs/windmill/commit/0b932cac6f8cd959a10d057e53985d876fe158f2))
* **frontend:** fix style panel title ([#4058](https://github.com/windmill-labs/windmill/issues/4058)) ([c853db4](https://github.com/windmill-labs/windmill/commit/c853db4e0570346b35dcb2249723e42b1af86547))
* improve completed_job index ([e450300](https://github.com/windmill-labs/windmill/commit/e450300c225a965cde3472013b5ae7fb83200a31))
* improve performance of cancel_all ([1d1dde0](https://github.com/windmill-labs/windmill/commit/1d1dde0d91644c8b973a4104a93d4c7cd123ac56))
## [1.360.1](https://github.com/windmill-labs/windmill/compare/v1.360.0...v1.360.1) (2024-07-09)
### Bug Fixes
* fix previous_result not always working for failure steps ([23a00c5](https://github.com/windmill-labs/windmill/commit/23a00c55e95054ecebbcbb829499f5a1d622efd5))
* **frontend:** Reload the flowStateStore when a node is restored (undo) ([#4049](https://github.com/windmill-labs/windmill/issues/4049)) ([6e52632](https://github.com/windmill-labs/windmill/commit/6e526327dd0259eb096fdaf387dfc9206936c19b))
* improve flow version fix migration ([#4050](https://github.com/windmill-labs/windmill/issues/4050)) ([eda6629](https://github.com/windmill-labs/windmill/commit/eda6629bb381469ba27e5a479bb39f7428920aec))
* make dedicated workers work with dates in bun ([7f49798](https://github.com/windmill-labs/windmill/commit/7f49798e3fb7a2aa528388a1718fd459de19deb8))
* update flow path ([#4053](https://github.com/windmill-labs/windmill/issues/4053)) ([82c88ad](https://github.com/windmill-labs/windmill/commit/82c88ad3b893e3222391ade65a10dfb2ef1c0fc7))
## [1.360.0](https://github.com/windmill-labs/windmill/compare/v1.359.0...v1.360.0) (2024-07-08)
### Features
* **frontend:** add custom actions header ([#4044](https://github.com/windmill-labs/windmill/issues/4044)) ([9e5a3f9](https://github.com/windmill-labs/windmill/commit/9e5a3f98bdc3b66736b099f5828a4c7060b653cd))
### Bug Fixes
* always run flow versioning edge case fix migration ([#4047](https://github.com/windmill-labs/windmill/issues/4047)) ([9b2919b](https://github.com/windmill-labs/windmill/commit/9b2919be329f687740e1169aae61073437d328a5))
* **frontend:** fix min rows for LightWeightArgInput ([#4045](https://github.com/windmill-labs/windmill/issues/4045)) ([0d35741](https://github.com/windmill-labs/windmill/commit/0d3574158dbe963c940e06b98896f5d4ab3c3edb))
* improve failure id assignment for parallel forloop ([5657ccd](https://github.com/windmill-labs/windmill/commit/5657ccdbe4b19756f6365579d8ef4760450d08d7))
* persist enums change for string type ([a264a38](https://github.com/windmill-labs/windmill/commit/a264a383de5e57c25b4d3b9250f260f3ed64fc2d))
## [1.359.0](https://github.com/windmill-labs/windmill/compare/v1.358.1...v1.359.0) (2024-07-08)
### Features
* **frontend:** improve table actions ([#4040](https://github.com/windmill-labs/windmill/issues/4040)) ([0ffac69](https://github.com/windmill-labs/windmill/commit/0ffac69406e1cd068a172b528037bb396fe9e092))
### Bug Fixes
* **backend:** make value of flow_version not null ([#4039](https://github.com/windmill-labs/windmill/issues/4039)) ([11b05b3](https://github.com/windmill-labs/windmill/commit/11b05b3d17897d45cda032353eecbd24ad7f2ec5))
* flow versioning edge case ([#4037](https://github.com/windmill-labs/windmill/issues/4037)) ([729f911](https://github.com/windmill-labs/windmill/commit/729f911b436613991c351c6c48db9429d6a8e8cb))
* **frontend:** fix navbar item overflow ([#4041](https://github.com/windmill-labs/windmill/issues/4041)) ([95c2e1b](https://github.com/windmill-labs/windmill/commit/95c2e1b21c1e0ca169513bf1fa773fe9e8dd8e81))
* improve handling of schedules with retries and concurrency limits ([e100622](https://github.com/windmill-labs/windmill/commit/e10062234efa2b87364468a089b6a888123f73b6))
* improve input history ([db19c86](https://github.com/windmill-labs/windmill/commit/db19c86a2d5da734fb3485056447b5bf879bd68e))
* improve performance of content search for large repos ([299e7cf](https://github.com/windmill-labs/windmill/commit/299e7cf5cf87aedf53b97d002545031de49fc9b9))
## [1.358.1](https://github.com/windmill-labs/windmill/compare/v1.358.0...v1.358.1) (2024-07-05)
### Bug Fixes
* fix vscode extension dev mode with flows ([b30bde9](https://github.com/windmill-labs/windmill/commit/b30bde9a9bf7fa912cd34b5fa956df4b58a6bf5c))
## [1.358.0](https://github.com/windmill-labs/windmill/compare/v1.357.0...v1.358.0) (2024-07-05)

View File

@@ -1,7 +1,18 @@
{
layer4 {
:25 {
proxy {
to windmill_server:2525
}
}
}
}
{$BASE_URL} {
bind {$ADDRESS}
reverse_proxy /ws/* http://lsp:3001
# reverse_proxy /ws_mp/* http://multiplayer:3002
# reverse_proxy /api/srch/* http://windmill_indexer:8001
reverse_proxy /* http://windmill_server:8000
# tls /certs/cert.pem /certs/key.pem
}

View File

@@ -1,5 +1,5 @@
ARG DEBIAN_IMAGE=debian:bookworm-slim
ARG RUST_IMAGE=rust:1.78-slim-bookworm
ARG RUST_IMAGE=rust:1.80-slim-bookworm
ARG PYTHON_IMAGE=python:3.11.8-slim-bookworm
FROM ${RUST_IMAGE} AS rust_base
@@ -41,6 +41,7 @@ COPY /typescript-client/docs/ /frontend/static/tsdocs/
RUN npm run generate-backend-client
ENV NODE_OPTIONS "--max-old-space-size=8192"
ARG VITE_BASE_URL ""
RUN npm run build
@@ -58,7 +59,9 @@ ARG features=""
COPY --from=planner /windmill/recipe.json recipe.json
RUN apt-get update && apt-get install -y libxml2-dev libxmlsec1-dev clang libclang-dev cmake
RUN apt-get update && apt-get install -y libxml2-dev=2.9.* libxmlsec1-dev=1.2.* clang=1:14.0-55.* libclang-dev=1:14.0-55.* cmake=3.25.* && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN --mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=$SCCACHE_DIR,sharing=locked \
@@ -91,14 +94,17 @@ ARG WITH_HELM=true
RUN apt-get update \
&& apt-get install -y ca-certificates wget curl git jq unzip build-essential unixodbc xmlsec1 software-properties-common \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN if [ "$WITH_POWERSHELL" = "true" ]; then \
if [ "$TARGETPLATFORM" = "linux/amd64" ]; then apt-get update -y && apt install libicu-dev -y && wget -O 'pwsh.deb' "https://github.com/PowerShell/PowerShell/releases/download/v${POWERSHELL_VERSION}/powershell_${POWERSHELL_DEB_VERSION}.deb_amd64.deb" && \
if [ "$TARGETPLATFORM" = "linux/amd64" ]; then apt-get update -y && apt install libicu-dev -y && wget -O 'pwsh.deb' "https://github.com/PowerShell/PowerShell/releases/download/v${POWERSHELL_VERSION}/powershell_${POWERSHELL_DEB_VERSION}.deb_amd64.deb" && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && \
dpkg --install 'pwsh.deb' && \
rm 'pwsh.deb'; \
elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then apt-get update -y && apt install libicu-dev -y && wget -O powershell.tar.gz "https://github.com/PowerShell/PowerShell/releases/download/v${POWERSHELL_VERSION}/powershell-${POWERSHELL_VERSION}-linux-arm64.tar.gz" && \
elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then apt-get update -y && apt install libicu-dev -y && wget -O powershell.tar.gz "https://github.com/PowerShell/PowerShell/releases/download/v${POWERSHELL_VERSION}/powershell-${POWERSHELL_VERSION}-linux-arm64.tar.gz" && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && \
mkdir -p /opt/microsoft/powershell/7 && \
tar zxf powershell.tar.gz -C /opt/microsoft/powershell/7 && \
chmod +x /opt/microsoft/powershell/7/pwsh && \
@@ -126,13 +132,13 @@ RUN set -eux; \
arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
case "$arch" in \
'amd64') \
targz='go1.21.6.linux-amd64.tar.gz'; \
targz='go1.22.5.linux-amd64.tar.gz'; \
;; \
'arm64') \
targz='go1.21.6.linux-arm64.tar.gz'; \
targz='go1.22.5.linux-arm64.tar.gz'; \
;; \
'armhf') \
targz='go1.21.6.linux-armv6l.tar.gz'; \
targz='go1.22.5.linux-armv6l.tar.gz'; \
;; \
*) echo >&2 "error: unsupported architecture '$arch' (likely packaging update needed)"; exit 1 ;; \
esac; \
@@ -142,7 +148,8 @@ ENV PATH="${PATH}:/usr/local/go/bin"
ENV GO_PATH=/usr/local/go/bin/go
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash -
RUN apt-get -y update && apt-get install -y curl nodejs awscli
RUN apt-get -y update && apt-get install -y curl nodejs awscli && apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# go build is slower the first time it is ran, so we prewarm it in the build
RUN mkdir -p /tmp/gobuildwarm && cd /tmp/gobuildwarm && go mod init gobuildwarm && printf "package foo\nimport (\"fmt\")\nfunc main() { fmt.Println(42) }" > warm.go && go mod tidy && go build -x && rm -rf /tmp/gobuildwarm
@@ -154,9 +161,9 @@ RUN /usr/local/bin/python3 -m pip install pip-tools
COPY --from=builder /frontend/build /static_frontend
COPY --from=builder /windmill/target/release/windmill ${APP}/windmill
COPY --from=denoland/deno:1.44.4 --chmod=755 /usr/bin/deno /usr/bin/deno
COPY --from=denoland/deno:1.45.4 --chmod=755 /usr/bin/deno /usr/bin/deno
COPY --from=oven/bun:1.1.18 /usr/local/bin/bun /usr/bin/bun
COPY --from=oven/bun:1.1.25 /usr/local/bin/bun /usr/bin/bun
COPY --from=php:8.3.7-cli /usr/local/bin/php /usr/bin/php
COPY --from=composer:2.7.6 /usr/bin/composer /usr/bin/composer
@@ -168,7 +175,11 @@ WORKDIR ${APP}
RUN ln -s ${APP}/windmill /usr/local/bin/windmill
RUN windmill cache
COPY ./frontend/src/lib/hubPaths.json ${APP}/hubPaths.json
RUN windmill cache ${APP}/hubPaths.json
RUN rm ${APP}/hubPaths.json
EXPOSE 8000

View File

@@ -3,7 +3,7 @@
</p>
<p align=center>
Open-source developer infrastructure for internal tools (APIs, background jobs, workflows and UIs). Self-hostable alternative to Airplane, Pipedream, Superblocks and a simplified Temporal with autogenerated UIs and custom UIs to trigger workflows and scripts as internal apps.
Open-source developer infrastructure for internal tools (APIs, background jobs, workflows and UIs). Self-hostable alternative to Retool, Pipedream, Superblocks and a simplified Temporal with autogenerated UIs and custom UIs to trigger workflows and scripts as internal apps.
<p align=center>
Scripts are turned into sharable UIs automatically, and can be composed together into flows or used into richer apps built with low-code. Supported script languages supported are: Python, TypeScript, Go, Bash, SQL, and GraphQL.
@@ -110,8 +110,8 @@ You can build your entire infra on top of Windmill!
```typescript
//import any dependency from npm
import * as wmill from "https://deno.land/x/windmill@v1.136.0/mod.ts";
import cowsay from "npm:cowsay@1.5.0";
import * as wmill from "windmill-client"
import * as cowsay from 'cowsay@1.5.0';
// fill the type, or use the +Resource type to get a type-safe reference to a resource
type Postgresql = {
@@ -131,7 +131,7 @@ export async function main(
e = { nested: "object" }
//f: wmill.Base64
) {
const email = Deno.env.get("WM_EMAIL");
const email = process.env["WM_EMAIL"];
// variables are permissioned and by path
let variable = await wmill.getVariable("f/company-folder/my_secret");
const lastTimeRun = await wmill.getState();
@@ -146,10 +146,8 @@ export async function main(
## CLI
We have a powerful CLI to interact with the windmill platform and sync your
scripts from local files, github repos and to run scripts and flows on the
instance from local commands. See
[more details](https://github.com/windmill-labs/windmill/tree/main/cli).
We have a powerful CLI to interact with the windmill platform and sync your scripts from local files, GitHub repos and to run scripts and flows on the instance from local commands. See
[more details](https://www.windmill.dev/docs/advanced/cli).
![CLI Screencast](./cli/vhs/output/setup.gif)
@@ -165,22 +163,21 @@ Code extension: <https://www.windmill.dev/docs/cli_local_dev/vscode-extension>.
## Stack
- Postgres as the database
- backend in Rust with the following highly-available and horizontally scalable
architecture:
- stateless API backend
- workers that pull jobs from a queue in Postgres (and later, Kafka or Redis.
Upvote [#173](#https://github.com/windmill-labs/windmill/issues/173) if
interested )
- frontend in Svelte
- scripts executions are sandboxed using google's
[nsjail](https://github.com/google/nsjail)
- javascript runtime is the
- Postgres as the database.
- Backend in Rust with the following highly-available and horizontally scalable.
Architecture:
- Stateless API backend.
- Workers that pull jobs from a queue in Postgres (and later, Kafka or Redis.
Upvote [#173](#https://github.com/windmill-labs/windmill/issues/173) if interested).
- Frontend in Svelte.
- Scripts executions are sandboxed using Google's
[nsjail](https://github.com/google/nsjail).
- Javascript runtime is the
[deno_core rust library](https://denolib.gitbook.io/guide/) (which itself uses
the [rusty_v8](https://github.com/denoland/rusty_v8) and hence V8 underneath)
- typescript runtime is deno
- python runtime is python3
- golang runtime is 1.19.1
the [rusty_v8](https://github.com/denoland/rusty_v8) and hence V8 underneath).
- TypeScript runtime is Bun and deno.
- Python runtime is python3.
- Golang runtime is 1.19.1.
## Fastest Self-Hostable Workflow Engine
@@ -399,4 +396,4 @@ running options.
## Copyright
Windmill Labs, Inc 2023
Windmill Labs, Inc 2023

3
backend/.gitignore vendored
View File

@@ -4,4 +4,5 @@ oauth.json
oauth2.json
windmill-api/openapi-deref.yaml
tracing.folded
heaptrack*
heaptrack*
index/

View File

@@ -1,23 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "SELECT flow_status FROM completed_job WHERE id = $1 AND workspace_id = $2",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "flow_status",
"type_info": "Jsonb"
}
],
"parameters": {
"Left": [
"Uuid",
"Text"
]
},
"nullable": [
true
]
},
"hash": "061ff848f258dc880bec81d923370c905e689f37c6d931ee4559c3cfd394e168"
}

View File

@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO email_to_igroup (email, igroup) VALUES ($1, $2)",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Varchar",
"Varchar"
]
},
"nullable": []
},
"hash": "07834003a631acac03a52a128d3dfce162abdef0d94e5020b84fed424dfd1ae9"
}

View File

@@ -55,7 +55,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -0,0 +1,14 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO windmill_migrations (name) VALUES ($1) ON CONFLICT DO NOTHING",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Text"
]
},
"nullable": []
},
"hash": "15105be6247457fc01b7d65767ccdde047d0f0c172c7a01eeabe3bd8206a3069"
}

View File

@@ -0,0 +1,12 @@
{
"db_name": "PostgreSQL",
"query": "DELETE FROM password",
"describe": {
"columns": [],
"parameters": {
"Left": []
},
"nullable": []
},
"hash": "16c93e721e30b72197e6143e0ebe46931ce25efc5ea0c53e160fcd98a96f4306"
}

View File

@@ -0,0 +1,25 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO completed_job AS cj\n ( workspace_id\n , id\n , parent_job\n , created_by\n , created_at\n , started_at\n , duration_ms\n , success\n , script_hash\n , script_path\n , args\n , result\n , raw_code\n , raw_lock\n , canceled\n , canceled_by\n , canceled_reason\n , job_kind\n , schedule_path\n , permissioned_as\n , flow_status\n , raw_flow\n , is_flow_step\n , is_skipped\n , language\n , email\n , visible_to_owner\n , mem_peak\n , tag\n , priority\n )\n SELECT workspace_id\n , id\n , parent_job\n , created_by\n , created_at\n , now()\n , 0\n , false\n , script_hash\n , script_path\n , args\n , $4\n , raw_code\n , raw_lock\n , true\n , $1\n , canceled_reason\n , job_kind\n , schedule_path\n , permissioned_as\n , flow_status\n , raw_flow\n , is_flow_step\n , false\n , language\n , email\n , visible_to_owner\n , mem_peak\n , tag\n , priority FROM queue \n WHERE id = any($2) AND running = false AND parent_job IS NULL AND workspace_id = $3 AND schedule_path IS NULL FOR UPDATE SKIP LOCKED\n ON CONFLICT (id) DO NOTHING RETURNING id",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Uuid"
}
],
"parameters": {
"Left": [
"Varchar",
"UuidArray",
"Text",
"Jsonb"
]
},
"nullable": [
false
]
},
"hash": "170f620fbd99269d194d14d56f6a3863d9db5fe736a0a34325b824d9cec9b1a0"
}

View File

@@ -112,6 +112,11 @@
"ordinal": 21,
"name": "default_scripts",
"type_info": "Jsonb"
},
{
"ordinal": 22,
"name": "deploy_ui",
"type_info": "Jsonb"
}
],
"parameters": {
@@ -141,6 +146,7 @@
true,
true,
false,
true,
true
]
},

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "SELECT\n -- slack_team_id, \n -- slack_name, \n -- slack_command_script, \n -- CASE WHEN slack_email = 'missing@email.xyz' THEN NULL ELSE slack_email END AS slack_email,\n auto_invite_domain IS NOT NULL AS \"auto_invite_enabled!\",\n CASE WHEN auto_invite_operator IS TRUE THEN 'operator' ELSE 'developer' END AS \"auto_invite_as!\", \n CASE WHEN auto_add IS TRUE THEN 'add' ELSE 'invite' END AS \"auto_invite_mode!\", \n webhook, \n deploy_to, \n error_handler, \n openai_resource_path, \n code_completion_enabled, \n error_handler_extra_args, \n error_handler_muted_on_cancel, \n large_file_storage, \n git_sync, \n default_app,\n default_scripts \n FROM workspace_settings\n WHERE workspace_id = $1",
"query": "SELECT\n -- slack_team_id, \n -- slack_name, \n -- slack_command_script, \n -- CASE WHEN slack_email = 'missing@email.xyz' THEN NULL ELSE slack_email END AS slack_email,\n auto_invite_domain IS NOT NULL AS \"auto_invite_enabled!\",\n CASE WHEN auto_invite_operator IS TRUE THEN 'operator' ELSE 'developer' END AS \"auto_invite_as!\", \n CASE WHEN auto_add IS TRUE THEN 'add' ELSE 'invite' END AS \"auto_invite_mode!\", \n webhook, \n deploy_to, \n error_handler, \n openai_resource_path, \n code_completion_enabled, \n error_handler_extra_args, \n error_handler_muted_on_cancel, \n large_file_storage, \n git_sync,\n default_app,\n default_scripts,\n workspace.name\n FROM workspace_settings\n LEFT JOIN workspace ON workspace.id = workspace_settings.workspace_id\n WHERE workspace_id = $1",
"describe": {
"columns": [
{
@@ -72,6 +72,11 @@
"ordinal": 13,
"name": "default_scripts",
"type_info": "Jsonb"
},
{
"ordinal": 14,
"name": "name",
"type_info": "Varchar"
}
],
"parameters": {
@@ -93,8 +98,9 @@
true,
true,
true,
true
true,
false
]
},
"hash": "8626f698fd20f2da77edcd9912a6f840f49002353d5c900a25a3024d7634a89c"
"hash": "188534f4b29f6461b1a6214d060f183c830b19a403ebb7b8be55a691675010c3"
}

View File

@@ -49,7 +49,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -0,0 +1,18 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO instance_group (name, summary, id, scim_display_name, external_id) VALUES ($1, $2, $3, $4, $5)",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Varchar",
"Varchar",
"Varchar",
"Varchar",
"Varchar"
]
},
"nullable": []
},
"hash": "234a278f20cb73f8ce10d2bfb67af58e5dd888581467c976e76f140b2c00f6d7"
}

View File

@@ -0,0 +1,14 @@
{
"db_name": "PostgreSQL",
"query": "UPDATE workspace_settings SET deploy_ui = NULL WHERE workspace_id = $1",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Text"
]
},
"nullable": []
},
"hash": "26b3e1f531909a2d841cfed49bb76be8aaa74ec3d32596c76a2041769478e61e"
}

View File

@@ -0,0 +1,29 @@
{
"db_name": "PostgreSQL",
"query": "SELECT coalesce(COUNT(*) FILTER(WHERE suspend = 0 AND running = false), 0) as \"database_length!\", coalesce(COUNT(*) FILTER(WHERE suspend > 0), 0) as \"suspended!\" FROM queue WHERE (workspace_id = $1 OR $2) AND scheduled_for <= now()",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "database_length!",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "suspended!",
"type_info": "Int8"
}
],
"parameters": {
"Left": [
"Text",
"Bool"
]
},
"nullable": [
null,
null
]
},
"hash": "28a878c59b6d52f42d315eabb34c96133b69542b01232295c26cc9e093c372f9"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO variable\n (workspace_id, path, value, is_secret, description, account, is_oauth)\n VALUES ($1, $2, $3, $4, $5, $6, $7)",
"query": "INSERT INTO variable\n (workspace_id, path, value, is_secret, description, account, is_oauth, expires_at)\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8)",
"describe": {
"columns": [],
"parameters": {
@@ -11,10 +11,11 @@
"Bool",
"Varchar",
"Int4",
"Bool"
"Bool",
"Timestamptz"
]
},
"nullable": []
},
"hash": "2e4115bb2e6c8c85ad1492ad135d6b0454b342126cb5fa17e58caf71b32ee755"
"hash": "2be66f23536223549db9b50025932b6b1bad90b8fa47d97acb7d75aa3c37ef86"
}

View File

@@ -0,0 +1,24 @@
{
"db_name": "PostgreSQL",
"query": "SELECT CASE WHEN pg_column_size(args) < 40000 OR $3 THEN args ELSE '\"WINDMILL_TOO_BIG\"'::jsonb END as args FROM completed_job WHERE id = $1 AND workspace_id = $2 UNION ALL SELECT CASE WHEN pg_column_size(args) < 40000 OR $3 THEN args ELSE '\"WINDMILL_TOO_BIG\"'::jsonb END as args FROM input WHERE id = $1 AND workspace_id = $2",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "args",
"type_info": "Jsonb"
}
],
"parameters": {
"Left": [
"Uuid",
"Text",
"Bool"
]
},
"nullable": [
null
]
},
"hash": "2bfb918104568288bb57e64d1cf914c14cd493f96005017c299a805c48aef092"
}

View File

@@ -0,0 +1,12 @@
{
"db_name": "PostgreSQL",
"query": "DELETE FROM email_to_igroup",
"describe": {
"columns": [],
"parameters": {
"Left": []
},
"nullable": []
},
"hash": "39154d865946cb99219ae0139dcc758523610d1260ff59aace18abaf4869edd3"
}

View File

@@ -0,0 +1,17 @@
{
"db_name": "PostgreSQL",
"query": "UPDATE queue SET flow_status = JSONB_SET(flow_status, ARRAY['modules', $1::TEXT, 'flow_jobs_success', $3::TEXT], $4) WHERE id = $2",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Text",
"Uuid",
"Text",
"Jsonb"
]
},
"nullable": []
},
"hash": "3b4b62161a5197f37850c8c4197ea026d8e94a3cb9cdcfa5fde19343acf81ecc"
}

View File

@@ -16,7 +16,7 @@
]
},
"nullable": [
true
false
]
},
"hash": "4a764cdcb847b71183425a7a0e863708ef7fe2c88b28d0667988a47b9e995c0e"

View File

@@ -0,0 +1,20 @@
{
"db_name": "PostgreSQL",
"query": "SELECT value FROM metrics WHERE id = 'email_trigger_usage' AND created_at > NOW() - INTERVAL '1 day' ORDER BY created_at DESC LIMIT 1",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "value",
"type_info": "Jsonb"
}
],
"parameters": {
"Left": []
},
"nullable": [
false
]
},
"hash": "4e6e4ecaa7a874b07b6599b6b7b3f307eb201534aa25d8a2049d1949f4ec9e77"
}

View File

@@ -0,0 +1,22 @@
{
"db_name": "PostgreSQL",
"query": "SELECT EXISTS(SELECT name FROM windmill_migrations WHERE name = $1)",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "exists",
"type_info": "Bool"
}
],
"parameters": {
"Left": [
"Text"
]
},
"nullable": [
null
]
},
"hash": "51a7e36ba1cc1616a19485eb5930cf90df758e85a8cac6037d044d5bd7440681"
}

View File

@@ -112,6 +112,11 @@
"ordinal": 21,
"name": "default_scripts",
"type_info": "Jsonb"
},
{
"ordinal": 22,
"name": "deploy_ui",
"type_info": "Jsonb"
}
],
"parameters": {
@@ -141,6 +146,7 @@
true,
true,
false,
true,
true
]
},

View File

@@ -0,0 +1,68 @@
{
"db_name": "PostgreSQL",
"query": "SELECT email, password_hash, login_type, super_admin, verified, name, company, first_time_user, username FROM password",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "email",
"type_info": "Varchar"
},
{
"ordinal": 1,
"name": "password_hash",
"type_info": "Varchar"
},
{
"ordinal": 2,
"name": "login_type",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "super_admin",
"type_info": "Bool"
},
{
"ordinal": 4,
"name": "verified",
"type_info": "Bool"
},
{
"ordinal": 5,
"name": "name",
"type_info": "Varchar"
},
{
"ordinal": 6,
"name": "company",
"type_info": "Varchar"
},
{
"ordinal": 7,
"name": "first_time_user",
"type_info": "Bool"
},
{
"ordinal": 8,
"name": "username",
"type_info": "Varchar"
}
],
"parameters": {
"Left": []
},
"nullable": [
false,
true,
false,
false,
false,
true,
true,
false,
true
]
},
"hash": "598d4be56bb8c5174b279c183fffa96f763e48316fb7420f2aad733562cab582"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "UPDATE queue SET canceled = true, canceled_by = $1, canceled_reason = $2, scheduled_for = now(), suspend = 0 WHERE id = $3 AND workspace_id = $4 AND canceled = false RETURNING id",
"query": "UPDATE queue SET canceled = true, canceled_by = $1, canceled_reason = $2, scheduled_for = now(), suspend = 0 WHERE id = $3 AND workspace_id = $4 AND (canceled = false OR canceled_reason != $2) RETURNING id",
"describe": {
"columns": [
{
@@ -21,5 +21,5 @@
false
]
},
"hash": "aa923ddc251f5daf4bf075cb251dfddf87877f12fbbc8fbf3cfd08f43bbad8a0"
"hash": "5dfa6932d7c6d5006fe352da3041680b2ee1ebe9258355a0db24ce4fd26f23de"
}

View File

@@ -69,7 +69,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -0,0 +1,24 @@
{
"db_name": "PostgreSQL",
"query": "SELECT CASE WHEN pg_column_size(args) < 40000 OR $3 THEN args ELSE '\"WINDMILL_TOO_BIG\"'::jsonb END as args FROM completed_job WHERE id = $1 AND workspace_id = $2",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "args",
"type_info": "Jsonb"
}
],
"parameters": {
"Left": [
"Uuid",
"Text",
"Bool"
]
},
"nullable": [
null
]
},
"hash": "6fa6fa8eb511119c6adb18bd4f9f174bbb48eef8952f91911b8d9b45357372d9"
}

View File

@@ -1,23 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "SELECT coalesce(COUNT(*), 0) as \"database_length!\" FROM queue WHERE (workspace_id = $1 OR $2) AND scheduled_for <= now() AND running = false",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "database_length!",
"type_info": "Int8"
}
],
"parameters": {
"Left": [
"Text",
"Bool"
]
},
"nullable": [
null
]
},
"hash": "8481d1bd91b7d23f946b4cf0d312acfc0ed4973309b4860e93882a37a21a0bd0"
}

View File

@@ -54,7 +54,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "DELETE FROM queue WHERE id = any($1) AND workspace_id = $2",
"describe": {
"columns": [],
"parameters": {
"Left": [
"UuidArray",
"Text"
]
},
"nullable": []
},
"hash": "8d655c34a00510699d2ad7044f7e526ba5082e5d1945c76a98404fe5d92e32ee"
}

View File

@@ -35,7 +35,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -0,0 +1,23 @@
{
"db_name": "PostgreSQL",
"query": "SELECT created_at FROM script WHERE workspace_id = $1 AND hash = $2",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "created_at",
"type_info": "Timestamptz"
}
],
"parameters": {
"Left": [
"Text",
"Int8"
]
},
"nullable": [
false
]
},
"hash": "8fef781ecef8bb7e4f5172adbab1d1eefa5cf05ff6521ee605af7ac2b90fa60b"
}

View File

@@ -0,0 +1,50 @@
{
"db_name": "PostgreSQL",
"query": "SELECT name, summary, array_remove(array_agg(email_to_igroup.email), null) as emails, id, scim_display_name, external_id FROM email_to_igroup RIGHT JOIN instance_group ON instance_group.name = email_to_igroup.igroup GROUP BY name",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "name",
"type_info": "Varchar"
},
{
"ordinal": 1,
"name": "summary",
"type_info": "Varchar"
},
{
"ordinal": 2,
"name": "emails",
"type_info": "VarcharArray"
},
{
"ordinal": 3,
"name": "id",
"type_info": "Varchar"
},
{
"ordinal": 4,
"name": "scim_display_name",
"type_info": "Varchar"
},
{
"ordinal": 5,
"name": "external_id",
"type_info": "Varchar"
}
],
"parameters": {
"Left": []
},
"nullable": [
false,
true,
null,
true,
true,
true
]
},
"hash": "9cd6e964ba933de247ba7ddce0acef0b70b784c2410f3a5f51288aaea6904b8f"
}

View File

@@ -54,7 +54,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -49,7 +49,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -0,0 +1,20 @@
{
"db_name": "PostgreSQL",
"query": "SELECT pg_try_advisory_lock(4242)",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "pg_try_advisory_lock",
"type_info": "Bool"
}
],
"parameters": {
"Left": []
},
"nullable": [
null
]
},
"hash": "9dd0cf1627f9e767af8758f26d8bf9e96a48e45daf4a3c54f7b81a7b92d39431"
}

View File

@@ -0,0 +1,22 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO password(email, password_hash, login_type, super_admin, verified, name, company, first_time_user, username)\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Varchar",
"Varchar",
"Varchar",
"Bool",
"Bool",
"Varchar",
"Varchar",
"Bool",
"Varchar"
]
},
"nullable": []
},
"hash": "9f0783aae9cf5a6de2ca783aeba7a8c2f0eb5cc11cb2f49222f5eef4a21d8c41"
}

View File

@@ -0,0 +1,24 @@
{
"db_name": "PostgreSQL",
"query": "SELECT CASE WHEN pg_column_size(args) < 40000 OR $3 THEN args ELSE '\"WINDMILL_TOO_BIG\"'::jsonb END as args FROM input WHERE id = $1 AND workspace_id = $2",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "args",
"type_info": "Jsonb"
}
],
"parameters": {
"Left": [
"Uuid",
"Text",
"Bool"
]
},
"nullable": [
null
]
},
"hash": "a22146c0a924e5a1a99bc72775399a8c3db31b57ae9ded5bff55f44321c3f3c2"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "SELECT worker, worker_instance, vcpus, ping_at, started_at FROM worker_ping WHERE ping_at > now() - interval '30 days'",
"query": "SELECT worker, worker_instance, vcpus, memory, ping_at, started_at FROM worker_ping WHERE ping_at > now() - interval '30 days' ORDER BY started_at",
"describe": {
"columns": [
{
@@ -20,11 +20,16 @@
},
{
"ordinal": 3,
"name": "memory",
"type_info": "Int8"
},
{
"ordinal": 4,
"name": "ping_at",
"type_info": "Timestamptz"
},
{
"ordinal": 4,
"ordinal": 5,
"name": "started_at",
"type_info": "Timestamptz"
}
@@ -36,9 +41,10 @@
false,
false,
true,
true,
false,
false
]
},
"hash": "8480792eefdd0f31a49afec0f91262a6973c068da5413b154eff9b9da90db95f"
"hash": "a51007ca7b509b92faa6fe7aa59fa738594a2b7eaab8e38f3ca30e548f9a49a7"
}

View File

@@ -0,0 +1,20 @@
{
"db_name": "PostgreSQL",
"query": "SELECT EXISTS(SELECT name FROM windmill_migrations WHERE name = 'fix_flow_versioning_2')",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "exists",
"type_info": "Bool"
}
],
"parameters": {
"Left": []
},
"nullable": [
null
]
},
"hash": "a6af0760c20eb9a7db648ea5d643b4c5703b776dc6cb1c5315e26569a2daa240"
}

View File

@@ -0,0 +1,12 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO metrics (id, value) VALUES ('email_trigger_usage', to_jsonb(1))",
"describe": {
"columns": [],
"parameters": {
"Left": []
},
"nullable": []
},
"hash": "a7d107fbeb8749d16ea3fea091573324cd5cbae2c3b77f24027802ea3896ef26"
}

View File

@@ -1,26 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "WITH active_users as (SELECT distinct username as email FROM audit WHERE timestamp > NOW() - INTERVAL '1 month' AND (operation = 'users.login' OR operation = 'oauth.login')),\n active_user_count as (SELECT count(email)::INT as count from active_users),\n active_author_count as (SELECT count(distinct email)::INT as count FROM usr WHERE usr.operator IS false AND email IN (SELECT email FROM active_users))\n SELECT active_author_count.count as author_count, active_user_count.count - active_author_count.count as operator_count FROM active_user_count, active_author_count",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "author_count",
"type_info": "Int4"
},
{
"ordinal": 1,
"name": "operator_count",
"type_info": "Int4"
}
],
"parameters": {
"Left": []
},
"nullable": [
null,
null
]
},
"hash": "ad8d9c00bd2d3515ad4afa87aa24b243615484bbad5a793438e23908c3f20c2f"
}

View File

@@ -0,0 +1,20 @@
{
"db_name": "PostgreSQL",
"query": "DELETE FROM variable WHERE expires_at IS NOT NULL AND expires_at < now() RETURNING path",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "path",
"type_info": "Varchar"
}
],
"parameters": {
"Left": []
},
"nullable": [
false
]
},
"hash": "b0c2f470f7d2df567eca550db1ae638fcb554622b61a5f4fb6b6696f6283516a"
}

View File

@@ -0,0 +1,26 @@
{
"db_name": "PostgreSQL",
"query": "SELECT name, config FROM config",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "name",
"type_info": "Varchar"
},
{
"ordinal": 1,
"name": "config",
"type_info": "Jsonb"
}
],
"parameters": {
"Left": []
},
"nullable": [
false,
true
]
},
"hash": "b1f2ab29cb09a213a38a711d5c228f4f735a3343fbae15d2bc3510c3308d16ba"
}

View File

@@ -0,0 +1,26 @@
{
"db_name": "PostgreSQL",
"query": "SELECT name, value FROM global_settings",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "name",
"type_info": "Varchar"
},
{
"ordinal": 1,
"name": "value",
"type_info": "Jsonb"
}
],
"parameters": {
"Left": []
},
"nullable": [
false,
false
]
},
"hash": "b30a29fa6edbeacaddad2a8b79a9aa73fcb0e8cb1f5e863f31faf98e4137b5e6"
}

View File

@@ -1,23 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "SELECT args FROM completed_job WHERE id = $1 AND workspace_id = $2 UNION ALL SELECT args FROM input WHERE id = $1 AND workspace_id = $2",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "args",
"type_info": "Jsonb"
}
],
"parameters": {
"Left": [
"Uuid",
"Text"
]
},
"nullable": [
null
]
},
"hash": "bbd5f968d7b62a55a7ebf7b98cfd411678ce544fdb9472d8d223235fb2818aaf"
}

View File

@@ -1,12 +1,17 @@
{
"db_name": "PostgreSQL",
"query": "SELECT coalesce(COUNT(*), 0) as \"database_length!\" FROM completed_job WHERE workspace_id = $1",
"query": "SELECT coalesce(COUNT(*), 0) as \"database_length!\", null::bigint as suspended FROM completed_job WHERE workspace_id = $1",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "database_length!",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "suspended",
"type_info": "Int8"
}
],
"parameters": {
@@ -15,8 +20,9 @@
]
},
"nullable": [
null,
null
]
},
"hash": "f5681df5935ec753f4a6d9ab8b927bbf890f0b4fe2de16dc764b24f24d7bbdca"
"hash": "bf04a017bc55f6e1f5f25f697b3c4828611591c76dd32541735095c010d6cdf2"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "UPDATE worker_ping SET ping_at = now(), jobs_executed = $1, custom_tags = $2, occupancy_rate = $3, memory_usage = $4, wm_memory_usage = $5, current_job_id = NULL, current_job_workspace_id = NULL WHERE worker = $6",
"query": "UPDATE worker_ping SET ping_at = now(), jobs_executed = $1, custom_tags = $2, occupancy_rate = $3, memory_usage = $4, wm_memory_usage = $5, current_job_id = NULL, current_job_workspace_id = NULL, vcpus = COALESCE($7, vcpus), memory = COALESCE($8, memory) WHERE worker = $6",
"describe": {
"columns": [],
"parameters": {
@@ -10,10 +10,12 @@
"Float4",
"Int8",
"Int8",
"Text"
"Text",
"Int8",
"Int8"
]
},
"nullable": []
},
"hash": "4398bc6f701dcba647a259ec2d091a70938a3ecd7ff8a89277cc35d119e2bad4"
"hash": "c1de24c68933ab35934395d74c5d2747b3da80c96e255ccf0c4e053206a9ad1b"
}

View File

@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "UPDATE workspace_settings SET deploy_ui = $1 WHERE workspace_id = $2",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Jsonb",
"Text"
]
},
"nullable": []
},
"hash": "c3364a5cd3fb7d43a6a6f484009f47a3b108bbf61c9f4afd364ed869deac75a5"
}

View File

@@ -0,0 +1,12 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO windmill_migrations (name) VALUES ('fix_flow_versioning_2')",
"describe": {
"columns": [],
"parameters": {
"Left": []
},
"nullable": []
},
"hash": "c4d032639dbfb47c84a2fbcb4cdca75af3007499a9f6c8c492a32fac5274aeb2"
}

View File

@@ -0,0 +1,12 @@
{
"db_name": "PostgreSQL",
"query": "DELETE FROM instance_group",
"describe": {
"columns": [],
"parameters": {
"Left": []
},
"nullable": []
},
"hash": "c7dbcb52f6b44c8fc0d6240b7d73717ee7f24abd54fab5b4a687490b7c0b3672"
}

View File

@@ -1,30 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "SELECT leaf_jobs->$1::text as leaf_jobs, parent_job FROM queue WHERE COALESCE((SELECT root_job FROM queue WHERE id = $2), $2) = id AND workspace_id = $3",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "leaf_jobs",
"type_info": "Jsonb"
},
{
"ordinal": 1,
"name": "parent_job",
"type_info": "Uuid"
}
],
"parameters": {
"Left": [
"Text",
"Uuid",
"Text"
]
},
"nullable": [
null,
true
]
},
"hash": "c8ac658002423906f2a6e43e423a9e24561dfaa6b07ce89063d0910d2342a83b"
}

View File

@@ -0,0 +1,38 @@
{
"db_name": "PostgreSQL",
"query": "WITH active_users as (SELECT distinct username as email FROM audit WHERE timestamp > NOW() - INTERVAL '1 month' AND (operation = 'users.login' OR operation = 'oauth.login')),\n active_authors as (SELECT distinct email FROM usr WHERE usr.operator IS false AND email IN (SELECT email FROM active_users)),\n active_authors_agg as (SELECT array_agg(email) as authors FROM active_authors),\n active_ops_agg as (SELECT array_agg(email) as operators from active_users WHERE email NOT IN (SELECT email FROM active_authors))\n SELECT active_authors_agg.authors, active_ops_agg.operators, array_length(active_authors_agg.authors, 1) as author_count, array_length(active_ops_agg.operators, 1) as operator_count FROM active_authors_agg, active_ops_agg",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "authors",
"type_info": "VarcharArray"
},
{
"ordinal": 1,
"name": "operators",
"type_info": "VarcharArray"
},
{
"ordinal": 2,
"name": "author_count",
"type_info": "Int4"
},
{
"ordinal": 3,
"name": "operator_count",
"type_info": "Int4"
}
],
"parameters": {
"Left": []
},
"nullable": [
null,
null,
null,
null
]
},
"hash": "cce991f582bc9d2ba28a5b2b41c679366bb07bc6a100727721a787160ac6910c"
}

View File

@@ -75,7 +75,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -54,7 +54,8 @@
"graphql",
"powershell",
"mssql",
"php"
"php",
"bunnative"
]
}
}

View File

@@ -0,0 +1,20 @@
{
"db_name": "PostgreSQL",
"query": "SELECT id FROM queue",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Uuid"
}
],
"parameters": {
"Left": []
},
"nullable": [
false
]
},
"hash": "e207bbcdd478758562e3082330836d6efe1dd6c4f719bc415222eba78d5e63fc"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "UPDATE script SET lock = $1 WHERE hash = $2 AND workspace_id = $3",
"query": "UPDATE script SET lock = $1, created_at = now() WHERE hash = $2 AND workspace_id = $3",
"describe": {
"columns": [],
"parameters": {
@@ -12,5 +12,5 @@
},
"nullable": []
},
"hash": "d697b7311430e7bd5375ec5494179f4071e3bfe123d9600249cfa80c1103edd8"
"hash": "ec47955683d811b12e82ff3e6aeafa0df46a320c436bad5eb1acc127df138a61"
}

View File

@@ -0,0 +1,41 @@
{
"db_name": "PostgreSQL",
"query": "SELECT created_by, CONCAT(coalesce(completed_job.logs, ''), coalesce(job_logs.logs, '')) as logs, job_logs.log_offset, job_logs.log_file_index\n FROM completed_job\n LEFT JOIN job_logs ON job_logs.job_id = completed_job.id\n WHERE completed_job.id = $1 AND completed_job.workspace_id = $2",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "created_by",
"type_info": "Varchar"
},
{
"ordinal": 1,
"name": "logs",
"type_info": "Text"
},
{
"ordinal": 2,
"name": "log_offset",
"type_info": "Int4"
},
{
"ordinal": 3,
"name": "log_file_index",
"type_info": "TextArray"
}
],
"parameters": {
"Left": [
"Uuid",
"Text"
]
},
"nullable": [
false,
null,
false,
true
]
},
"hash": "f04fa0262091c5a4abf7dddafeec1b34ed806dda70592b0030067aed46a104d9"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "SELECT COALESCE((SELECT MIN(started_at) as min_started_at\n FROM queue\n WHERE script_path = $1 AND job_kind != 'dependencies' AND running = true AND workspace_id = $2 AND canceled = false\n GROUP BY script_path), $3) as min_started_at, now() AS now",
"query": "SELECT COALESCE((SELECT MIN(started_at) as min_started_at\n FROM queue\n WHERE script_path = $1 AND job_kind != 'dependencies' AND running = true AND workspace_id = $2 AND canceled = false AND concurrent_limit > 0), $3) as min_started_at, now() AS now",
"describe": {
"columns": [
{
@@ -26,5 +26,5 @@
null
]
},
"hash": "3901cce744c9b246b661c817e068bdb3b1ab504ff8070fcccf6c909ad75f1f6d"
"hash": "f3d20b0fa17836538ec93b84b08ffc6b555371d6eeeadfc54f5bf0bcbe93d8b4"
}

View File

@@ -0,0 +1,14 @@
{
"db_name": "PostgreSQL",
"query": "UPDATE metrics SET value = $1 WHERE id = 'email_trigger_usage' AND created_at > NOW() - INTERVAL '1 day'",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Jsonb"
]
},
"nullable": []
},
"hash": "f4942f502ba7f66bafb0b2de6979601723de8092796f3bbeb78191c1da30d225"
}

2094
backend/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
[package]
name = "windmill"
version = "1.358.0"
version = "1.385.0"
authors.workspace = true
edition.workspace = true
@@ -13,6 +13,7 @@ members = [
"./windmill-common",
"./windmill-audit",
"./windmill-git-sync",
"./windmill-indexer",
"./parsers/windmill-parser",
"./parsers/windmill-parser-ts",
"./parsers/windmill-parser-wasm",
@@ -24,7 +25,7 @@ members = [
]
[workspace.package]
version = "1.358.0"
version = "1.385.0"
authors = ["Ruben Fiszel <ruben@windmill.dev>"]
edition = "2021"
@@ -38,7 +39,7 @@ incremental = true
[features]
default = []
enterprise = ["windmill-worker/enterprise", "windmill-queue/enterprise", "windmill-api/enterprise", "windmill-git-sync/enterprise", "windmill-common/prometheus", "windmill-common/enterprise"]
enterprise = ["windmill-worker/enterprise", "windmill-queue/enterprise", "windmill-api/enterprise", "windmill-git-sync/enterprise", "windmill-common/prometheus", "windmill-common/enterprise", "windmill-indexer/enterprise"]
enterprise_saml = ["windmill-api/enterprise_saml"]
stripe = ["windmill-api/stripe"]
benchmark = ["windmill-api/benchmark", "windmill-worker/benchmark", "windmill-queue/benchmark"]
@@ -46,12 +47,14 @@ flamegraph = ["windmill-common/flamegraph", "windmill-worker/flamegraph"]
loki = ["windmill-common/loki"]
pg_embed = ["dep:pg-embed"]
embedding = ["windmill-api/embedding"]
parquet = ["windmill-api/parquet", "windmill-common/parquet", "windmill-worker/parquet"]
parquet = ["windmill-api/parquet", "windmill-common/parquet", "windmill-worker/parquet", "windmill-indexer/parquet"]
prometheus = ["windmill-common/prometheus", "windmill-api/prometheus", "windmill-worker/prometheus", "windmill-queue/prometheus"]
flow_testing = ["windmill-worker/flow_testing"]
openidconnect = ["windmill-api/openidconnect"]
cloud = ["windmill-queue/cloud", "windmill-worker/cloud"]
jemalloc = ["windmill-common/jemalloc", "dep:tikv-jemallocator", "dep:tikv-jemalloc-sys", "dep:tikv-jemalloc-ctl"]
tantivy = ["dep:windmill-indexer", "windmill-api/tantivy"]
sqlx = ["windmill-worker/sqlx"]
[dependencies]
anyhow.workspace = true
@@ -62,6 +65,7 @@ windmill-common = { workspace = true, default-features = false }
windmill-git-sync.workspace = true
windmill-api = { workspace = true, default-features = false }
windmill-worker.workspace = true
windmill-indexer = { workspace = true, optional = true }
futures.workspace = true
tracing.workspace = true
sqlx.workspace = true
@@ -80,7 +84,8 @@ gethostname.workspace = true
serde_json.workspace = true
serde.workspace = true
deno_core.workspace = true
pg-embed = {git = "https://github.com/faokunega/pg-embed", optional = true, default-features = false, features = ['rt_tokio']}
pg-embed = {git = "https://github.com/faokunega/pg-embed", optional = true, default-features = false, features = ['rt_tokio']}
[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = { optional = true, workspace = true }
@@ -103,6 +108,7 @@ windmill-worker = { path = "./windmill-worker" }
windmill-common = { path = "./windmill-common", default-features = false }
windmill-audit = { path = "./windmill-audit" }
windmill-git-sync = { path = "./windmill-git-sync" }
windmill-indexer = {path = "./windmill-indexer"}
windmill-parser = { path = "./parsers/windmill-parser" }
windmill-parser-ts = { path = "./parsers/windmill-parser-ts" }
windmill-parser-py = { path = "./parsers/windmill-parser-py" }
@@ -150,7 +156,7 @@ mail-send = { version = "0.4.0", features = ["builder"], default-features=false
urlencoding = "^2"
url = "^2"
async-oauth2 = "^0"
reqwest = { version = "^0.12", features = ["json", "stream"] }
reqwest = { version = "^0.12", features = ["json", "stream", "gzip"] }
time = "0.3.16"
serde_urlencoded = "^0"
tokio-tar = "^0"
@@ -159,24 +165,25 @@ tokio-util = { version = "^0", features = ["io"] }
json-pointer = "^0"
itertools = "^0"
regex = "^1"
deno_fetch = "0.182.0"
deno_tls = "0.145.0"
deno_console = "0.158.0"
deno_url = "0.158.0"
deno_webidl = "0.158.0"
deno_web = "0.189.0"
deno_net = "0.150.0"
deno_core = "0.290.0"
deno_ast = { version = "=0.39.2", features = ["transpiling"] }
deno_fetch = "0.187.0"
deno_tls = "0.150.0"
deno_console = "0.163.0"
deno_url = "0.163.0"
deno_webidl = "0.163.0"
deno_web = "0.194.0"
deno_net = "0.155.0"
deno_core = "0.299.0"
deno_ast = { version = "=0.40.0", features = ["transpiling"] }
async-recursion = "^1"
swc_common = "=0.33.26"
swc_ecma_parser = "=0.144.3"
swc_ecma_ast = "=0.113.7"
swc_ecma_visit = "=0.99.1"
base64 = "0.21.0"
base32 = "^0"
hmac = "0.12.1"
sha2 = "0.10.6"
sqlx = { version = "0.7.3", features = [
sqlx = { version = "0.8.0", features = [
"macros",
"migrate",
"uuid",
@@ -219,7 +226,7 @@ mysql_async = { version = "*", default-features = false, features = ["minimal",
postgres-native-tls = "^0"
native-tls = "^0"
# samael will break compilation on MacOS. Use this fork instead to make it work
# samael = { git="https://github.com/njaremko/samael", rev="464d015e3ae393e4b5dd00b4d6baa1b617de0dd6", features = ["xmlsec"] }
# samael = { git="https://github.com/njaremko/samael", rev="464d015e3ae393e4b5dd00b4d6baa1b617de0dd6", features = ["xmlsec"] }
samael = { version="0.0.14", features = ["xmlsec"] }
gcp_auth = "0.9.0"
rust_decimal = { version = "^1", features = ["db-postgres"]}
@@ -235,6 +242,9 @@ candle-nn = "0.3.0"
tiberius = { git = "https://github.com/prisma/tiberius", rev = "8f66a699dfa041e7b5f736c7e94f92c945453c9e", default-features = false, features = ["rustls", "tds73", "chrono", "sql-browser-tokio"]}
pin-project = "1"
indexmap = { version = "2.2.5", features = ["serde"]}
tokio-native-tls = "^0"
openssl = "=0.10"
mail-parser = "^0"
datafusion = "39.0.0"
object_store = { version = "0.10.0", features = ["aws", "azure"] }
@@ -254,3 +264,5 @@ tikv-jemalloc-ctl = { version = "^0.5" }
# 0.1.12 broken (nested dependency of swc_common)
triomphe = "<0.1.12"
tantivy = "0.22.0"

View File

@@ -0,0 +1,20 @@
INSERT INTO flow_version (workspace_id, path, value, schema, created_by, created_at)
SELECT workspace_id, path, value, schema, edited_by, edited_at
FROM flow
WHERE NOT EXISTS (SELECT 1 FROM flow_version WHERE flow_version.workspace_id = flow.workspace_id AND flow_version.path = flow.path);
UPDATE flow
SET versions = subquery.versions
FROM (
SELECT
path,
workspace_id,
array_agg(id ORDER BY created_at ASC) AS versions
FROM
flow_version
GROUP BY
path,
workspace_id
) subquery
WHERE
flow.path = subquery.path
AND flow.workspace_id = subquery.workspace_id;

View File

@@ -1 +1 @@
d414242f92cfaf9f364e9aeb321a511c3ad46fa7
5dd850a7851bf359702e96871caaedc0913522c2

View File

@@ -0,0 +1,2 @@
-- Add down migration script here
ALTER TABLE flow_version ALTER COLUMN value DROP NOT NULL;

View File

@@ -0,0 +1,3 @@
-- Add up migration script here
UPDATE flow_version SET value = '{"modules":[]}'::jsonb WHERE value IS NULL;
ALTER TABLE flow_version ALTER COLUMN value SET NOT NULL;

View File

@@ -0,0 +1 @@
-- Add down migration script here

View File

@@ -0,0 +1,5 @@
-- Add up migration script here
ALTER TABLE queue ALTER COLUMN env_id DROP NOT NULL;
ALTER TABLE queue ALTER COLUMN env_id DROP DEFAULT;
ALTER TABLE completed_job ALTER COLUMN env_id DROP NOT NULL;
ALTER TABLE completed_job ALTER COLUMN env_id DROP DEFAULT;

View File

@@ -0,0 +1 @@
-- Add down migration script here

View File

@@ -0,0 +1 @@
CREATE INDEX IF NOT EXISTS queue_concurrency_started_at ON queue (workspace_id, script_path, started_at) WHERE concurrent_limit > 0 AND running = true AND job_kind != 'dependencies' AND canceled = false;-- Add up migration script here

View File

@@ -0,0 +1 @@
-- Add down migration script here

View File

@@ -0,0 +1,2 @@
-- Add up migration script here
ALTER TYPE SCRIPT_LANG ADD VALUE IF NOT EXISTS 'bunnative';

View File

@@ -0,0 +1 @@
-- Add down migration script here

View File

@@ -0,0 +1,3 @@
-- Add up migration script here
alter table queue drop constraint if exists queue_workspace_id_fkey;
alter table completed_job drop constraint if exists completed_job_workspace_id_fkey;

View File

@@ -0,0 +1 @@
-- Add down migration script here

View File

@@ -0,0 +1,4 @@
-- Add up migration script here
DROP INDEX IF EXISTS queue_sort;
CREATE INDEX IF NOT EXISTS queue_sort ON queue (running, tag, priority DESC NULLS LAST, scheduled_for, created_at) WHERE running = false;
CREATE INDEX IF NOT EXISTS queue_sort_2 ON queue (running, priority DESC NULLS LAST, scheduled_for, created_at) WHERE running = false;

View File

@@ -0,0 +1,2 @@
-- Add down migration script here
ALTER TABLE variable DROP COLUMN IF EXISTS expires_at;

View File

@@ -0,0 +1,3 @@
-- Add up migration script here
ALTER TABLE variable ADD COLUMN IF NOT EXISTS expires_at TIMESTAMP WITH TIME ZONE;
UPDATE variable SET expires_at = (now() + '7 days'::interval) WHERE path LIKE 'u/%/secret_arg/%'

View File

@@ -0,0 +1,2 @@
-- Add down migration script here
ALTER TABLE workspace_settings DROP COLUMN deploy_ui;

View File

@@ -0,0 +1,2 @@
-- Add up migration script here
ALTER TABLE workspace_settings ADD COLUMN IF NOT EXISTS deploy_ui JSONB;

View File

@@ -58,6 +58,7 @@ fn parse_bash_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
default: default.clone().map(|x| json!(x)),
otyp: None,
has_default: default.is_some(),
oidx: None,
});
} else {
break;
@@ -94,6 +95,7 @@ fn parse_powershell_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
default: default.clone(),
otyp: None,
has_default: default.is_some(),
oidx: None,
});
}
}
@@ -130,35 +132,40 @@ non_required="${5:-}"
name: "token".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: None,
name: "image".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: None,
name: "digest".to_string(),
typ: Typ::Str(None),
default: Some(json!("latest with spaces")),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "text".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: None,
name: "non_required".to_string(),
typ: Typ::Str(None),
default: Some(json!("")),
has_default: true
has_default: true,
oidx: None
}
],
no_main_func: None

View File

@@ -27,7 +27,14 @@ pub fn parse_go_sig(code: &str) -> anyhow::Result<MainArgSignature> {
.iter()
.map(|param| {
let (otyp, typ) = parse_go_typ(&param.typ);
Arg { name: get_name(param), otyp, typ, default: None, has_default: false }
Arg {
name: get_name(param),
otyp,
typ,
default: None,
has_default: false,
oidx: None,
}
})
.collect_vec();
Ok(MainArgSignature {
@@ -179,28 +186,32 @@ func main(x int, y string, z bool, l []string, o struct { Name string `json:"nam
name: "x".to_string(),
typ: Typ::Int,
has_default: false,
default: None
default: None,
oidx: None
},
Arg {
otyp: Some("string".to_string()),
name: "y".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: Some("bool".to_string()),
name: "z".to_string(),
typ: Typ::Bool,
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: Some("[]string".to_string()),
name: "l".to_string(),
typ: Typ::List(Box::new(Typ::Str(None))),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: Some("struct { Name string `json:\"name\"` }".to_string()),
@@ -210,21 +221,24 @@ func main(x int, y string, z bool, l []string, o struct { Name string `json:"nam
typ: Box::new(Typ::Str(None))
},]),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: Some("interface{}".to_string()),
name: "n".to_string(),
typ: Typ::Object(vec![]),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: Some("map[string]interface{}".to_string()),
name: "m".to_string(),
typ: Typ::Object(vec![]),
default: None,
has_default: false
has_default: false,
oidx: None
},
],
no_main_func: Some(false)

View File

@@ -51,6 +51,7 @@ fn parse_graphql_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
default: parsed_default,
otyp: Some(typ.unwrap()),
has_default,
oidx: None,
});
}
@@ -93,21 +94,24 @@ query($i: Int, $arr: [String]!, $wahoo: String = "wahoo") {
name: "i".to_string(),
typ: Typ::Int,
default: None,
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: Some("[String]".to_string()),
name: "arr".to_string(),
typ: Typ::List(Box::new(Typ::Str(None))),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: Some("String".to_string()),
name: "wahoo".to_string(),
typ: Typ::Str(None),
default: Some(json!("wahoo")),
has_default: true
has_default: true,
oidx: None
}
],
no_main_func: None

View File

@@ -85,6 +85,7 @@ pub fn parse_php_signature(
typ,
has_default: default.is_some(),
default,
oidx: None,
}
})
.collect();
@@ -135,35 +136,40 @@ function main(string $input1 = \"hey\", bool $input2 = false, int $input3 = 3, f
name: "input1".to_string(),
typ: Typ::Str(None),
has_default: true,
default: Some(Value::String("hey".to_string()))
default: Some(Value::String("hey".to_string())),
oidx: None
},
Arg {
otyp: None,
name: "input2".to_string(),
typ: Typ::Bool,
has_default: true,
default: Some(Value::Bool(false))
default: Some(Value::Bool(false)),
oidx: None
},
Arg {
otyp: None,
name: "input3".to_string(),
typ: Typ::Int,
has_default: true,
default: Some(Value::Number(Number::from(3)))
default: Some(Value::Number(Number::from(3))),
oidx: None
},
Arg {
otyp: None,
name: "input4".to_string(),
typ: Typ::Float,
has_default: true,
default: Some(Value::Number(Number::from_f64(f64::from(4.5)).unwrap()))
default: Some(Value::Number(Number::from_f64(f64::from(4.5)).unwrap())),
oidx: None
},
Arg {
otyp: None,
name: "resource".to_string(),
typ: Typ::Resource("stripe".to_string()),
has_default: false,
default: None
default: None,
oidx: None
}
],
no_main_func: Some(false)

View File

@@ -114,6 +114,7 @@ pub fn parse_python_signature(
typ,
has_default: default.is_some(),
default,
oidx: None,
}
})
.collect(),
@@ -187,6 +188,9 @@ fn parse_typ(id: &str) -> Typ {
"datetime" => Typ::Datetime,
"datetime.datetime" => Typ::Datetime,
"Sql" | "sql" => Typ::Sql,
x @ _ if x.starts_with("DynSelect_") => {
Typ::DynSelect(x.strip_prefix("DynSelect_").unwrap().to_string())
}
_ => Typ::Resource(id.to_string()),
}
}
@@ -268,49 +272,56 @@ def main(test1: str, name: datetime.datetime = datetime.now(), byte: bytes = byt
name: "test1".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: None,
name: "name".to_string(),
typ: Typ::Unknown,
default: Some(json!("<function call>")),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "byte".to_string(),
typ: Typ::Bytes,
default: Some(json!("<function call>")),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "f".to_string(),
typ: Typ::Str(None),
default: Some(json!("wewe")),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "g".to_string(),
typ: Typ::Int,
default: Some(json!(21)),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "h".to_string(),
typ: Typ::List(Box::new(Typ::Int)),
default: Some(json!([1, 2])),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "i".to_string(),
typ: Typ::Bool,
default: Some(json!(true)),
has_default: true
has_default: true,
oidx: None
},
],
no_main_func: Some(false),
@@ -349,28 +360,32 @@ def main(test1: str,
name: "test1".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: None,
name: "name".to_string(),
typ: Typ::Unknown,
default: Some(json!("<function call>")),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "byte".to_string(),
typ: Typ::Bytes,
default: Some(json!("<function call>")),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "resource".to_string(),
typ: Typ::Resource("postgresql".to_string()),
default: Some(json!("$res:g/all/resource")),
has_default: true
has_default: true,
oidx: None
}
],
no_main_func: Some(false),
@@ -404,28 +419,32 @@ def main(test1: str,
name: "test1".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: None,
name: "s3o".to_string(),
typ: Typ::Resource("S3Object".to_string()),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: None,
name: "name".to_string(),
typ: Typ::Str(None),
default: Some(json!("test")),
has_default: true
has_default: true,
oidx: None
},
Arg {
otyp: None,
name: "byte".to_string(),
typ: Typ::Bytes,
default: Some(json!("<function call>")),
has_default: true
has_default: true,
oidx: None
}
],
no_main_func: Some(false),
@@ -456,7 +475,8 @@ def main(test1: Literal["foo", "bar"], test2: List[Literal["foo", "bar"]]): retu
name: "test1".to_string(),
typ: Typ::Str(Some(vec!["foo".to_string(), "bar".to_string()])),
default: None,
has_default: false
has_default: false,
oidx: None
},
Arg {
otyp: None,
@@ -466,7 +486,8 @@ def main(test1: Literal["foo", "bar"], test2: List[Literal["foo", "bar"]]): retu
"bar".to_string()
])))),
default: None,
has_default: false
has_default: false,
oidx: None
}
],
no_main_func: Some(false),
@@ -475,4 +496,34 @@ def main(test1: Literal["foo", "bar"], test2: List[Literal["foo", "bar"]]): retu
Ok(())
}
#[test]
fn test_parse_python_sig_5() -> anyhow::Result<()> {
let code = r#"
import os
def main(test1: DynSelect_foo): return
"#;
//println!("{}", serde_json::to_string()?);
assert_eq!(
parse_python_signature(code, None)?,
MainArgSignature {
star_args: false,
star_kwargs: false,
args: vec![Arg {
otyp: None,
name: "test1".to_string(),
typ: Typ::DynSelect("foo".to_string()),
default: None,
has_default: false,
oidx: None
}],
no_main_func: Some(false),
}
);
Ok(())
}
}

View File

@@ -4,7 +4,11 @@ use anyhow::anyhow;
use regex::Regex;
use serde_json::json;
use std::collections::HashMap;
use std::{
collections::{HashMap, HashSet},
iter::Peekable,
str::CharIndices,
};
pub use windmill_parser::{Arg, MainArgSignature, Typ};
pub fn parse_mysql_sig(code: &str) -> anyhow::Result<MainArgSignature> {
@@ -62,9 +66,32 @@ pub fn parse_db_resource(code: &str) -> Option<String> {
cap.map(|x| x.get(1).map(|x| x.as_str().to_string()).unwrap())
}
pub fn parse_sql_blocks(code: &str) -> Vec<&str> {
let mut blocks = vec![];
let mut last_idx = 0;
run_on_sql_statement_matches(
code,
|char, _| char == ';',
|idx, _| {
blocks.push(&code[last_idx..=idx]);
last_idx = idx + 1;
},
);
if last_idx < code.len() {
let last_block = &code[last_idx..];
if RE_NONEMPTY_SQL_BLOCK.is_match(last_block) {
blocks.push(last_block);
}
}
blocks
}
lazy_static::lazy_static! {
static ref RE_CODE_PGSQL: Regex = Regex::new(r#"(?m)\$(\d+)(?:::(\w+(?:\[\])?))?"#).unwrap();
static ref RE_NONEMPTY_SQL_BLOCK: Regex = Regex::new(r#"(?m)^\s*[^\s](?:[^-]|$)"#).unwrap();
static ref RE_DB: Regex = Regex::new(r#"(?m)^-- database (\S+) *(?:\r|\n|$)"#).unwrap();
// -- $1 name (type) = default
@@ -117,6 +144,7 @@ fn parse_mysql_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
default: parsed_default,
otyp: Some(typ),
has_default,
oidx: None,
});
}
@@ -140,6 +168,7 @@ fn parse_mysql_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
default: parsed_default,
otyp: Some(typ),
has_default,
oidx: None,
});
}
}
@@ -147,7 +176,105 @@ fn parse_mysql_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
Ok(Some(args))
}
enum ParserState {
Normal,
InSingleQuote,
InDoubleQuote,
InSingleLineComment,
InMultiLineComment,
}
fn run_on_sql_statement_matches<
F1: FnMut(char, &mut Peekable<CharIndices>) -> bool,
F2: FnMut(usize, &mut Peekable<CharIndices>) -> (),
>(
code: &str,
mut cond: F1,
mut case: F2,
) {
let mut chars = code.char_indices().peekable();
let mut state = ParserState::Normal;
while let Some((idx, char)) = chars.next() {
match (&state, char) {
(ParserState::Normal, '\'') => {
state = ParserState::InSingleQuote;
}
(ParserState::Normal, '"') => {
state = ParserState::InDoubleQuote;
}
(ParserState::Normal, '-')
if chars.peek().is_some_and(|&(_, next_char)| next_char == '-') =>
{
state = ParserState::InSingleLineComment;
}
(ParserState::Normal, '/')
if chars.peek().is_some_and(|&(_, next_char)| next_char == '*') =>
{
state = ParserState::InMultiLineComment;
}
(ParserState::Normal, _) if cond(char, &mut chars) => {
case(idx, &mut chars);
}
(ParserState::InSingleQuote, '\'') => {
if chars
.peek()
.is_some_and(|&(_, next_char)| next_char == '\'')
{
chars.next(); // skip the escaped single quote
} else {
state = ParserState::Normal;
}
}
(ParserState::InDoubleQuote, '"') => {
if chars.peek().is_some_and(|&(_, next_char)| next_char == '"') {
chars.next(); // skip the escaped single quote
} else {
state = ParserState::Normal;
}
}
(ParserState::InSingleLineComment, '\n') => {
state = ParserState::Normal;
}
(ParserState::InMultiLineComment, '*')
if chars.peek().is_some_and(|&(_, next_char)| next_char == '/') =>
{
state = ParserState::Normal;
}
_ => {}
}
}
}
pub fn parse_pg_statement_arg_indices(code: &str) -> HashSet<i32> {
let mut arg_indices = HashSet::new();
run_on_sql_statement_matches(
code,
|char, chars| {
char == '$'
&& chars
.peek()
.is_some_and(|&(_, next_char)| next_char.is_ascii_digit())
},
|_, chars| {
let mut arg_idx = String::new();
while let Some(&(_, char)) = chars.peek() {
if char.is_ascii_digit() {
arg_idx.push(char);
chars.next();
} else {
break;
}
}
if let Ok(arg_idx) = arg_idx.parse::<i32>() {
arg_indices.insert(arg_idx);
}
},
);
arg_indices
}
fn parse_pg_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
let mut args = vec![];
let mut hm: HashMap<i32, String> = HashMap::new();
for cap in RE_CODE_PGSQL.captures_iter(code) {
hm.insert(
@@ -159,39 +286,74 @@ fn parse_pg_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
.unwrap_or_else(|| "text".to_string()),
);
}
let mut args = vec![];
for i in 1..50 {
if hm.contains_key(&i) {
let typ = hm.get(&i).unwrap().to_lowercase();
args.push(Arg {
name: format!("${}", i),
typ: parse_pg_typ(typ.as_str()),
default: None,
otyp: Some(typ),
has_default: false,
});
} else {
break;
}
for (i, v) in hm.iter() {
let typ = v.to_lowercase();
args.push(Arg {
name: format!("${}", i),
typ: parse_pg_typ(typ.as_str()),
default: None,
otyp: Some(typ),
has_default: false,
oidx: Some(*i),
});
}
args.sort_by(|a, b| a.oidx.unwrap().cmp(&b.oidx.unwrap()));
for cap in RE_ARG_PGSQL.captures_iter(code) {
let i = cap.get(1).and_then(|x| x.as_str().parse::<i32>().ok());
if i.is_none() || i.unwrap() as usize > args.len() {
continue;
}
let name = cap.get(2).map(|x| x.as_str().to_string()).unwrap();
let default = cap.get(3).map(|x| x.as_str().to_string());
let has_default = default.is_some();
let oarg = args[(i.unwrap() - 1) as usize].clone();
let parsed_default = default.and_then(|x| parsed_default(&oarg.typ, x));
let i = cap
.get(1)
.and_then(|x| x.as_str().parse::<i32>().ok())
.map(|x| x);
args[(i.unwrap() - 1) as usize] =
Arg { name, typ: oarg.typ, default: parsed_default, otyp: oarg.otyp, has_default };
if let Some(arg_pos) = args
.iter()
.position(|x| i.is_some_and(|i| x.oidx.unwrap() == i))
{
let name = cap.get(2).map(|x| x.as_str().to_string()).unwrap();
let default = cap.get(3).map(|x| x.as_str().to_string());
let has_default = default.is_some();
let oarg = args[arg_pos].clone();
let parsed_default = default.and_then(|x| parsed_default(&oarg.typ, x));
args[arg_pos] = Arg {
name,
typ: oarg.typ,
default: parsed_default,
otyp: oarg.otyp,
has_default,
oidx: oarg.oidx,
};
}
}
Ok(Some(args))
}
pub fn parse_sql_statement_named_params(code: &str, prefix: char) -> HashSet<String> {
let mut arg_names = HashSet::new();
run_on_sql_statement_matches(
code,
|char, chars| {
char == prefix
&& chars
.peek()
.is_some_and(|&(_, next_char)| next_char.is_alphanumeric() || next_char == '_')
},
|_, chars| {
let mut arg_name = String::new();
while let Some(&(_, char)) = chars.peek() {
if char.is_alphanumeric() || char == '_' {
arg_name.push(char);
chars.next();
} else {
break;
}
}
arg_names.insert(arg_name);
},
);
arg_names
}
fn parse_bigquery_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
let mut args: Vec<Arg> = vec![];
@@ -213,6 +375,7 @@ fn parse_bigquery_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
default: parsed_default,
otyp: Some(typ),
has_default,
oidx: None,
});
}
@@ -240,6 +403,7 @@ fn parse_snowflake_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
default: parsed_default,
otyp: Some(typ),
has_default,
oidx: None,
});
}
@@ -267,6 +431,7 @@ fn parse_mssql_file(code: &str) -> anyhow::Result<Option<Vec<Arg>>> {
default: parsed_default,
otyp: Some(typ),
has_default,
oidx: None,
});
}
@@ -372,7 +537,7 @@ mod tests {
use super::*;
#[test]
fn test_parse_sql_sig() -> anyhow::Result<()> {
fn test_parse_pgsql_sig() -> anyhow::Result<()> {
let code = r#"
SELECT * FROM table WHERE token=$1::TEXT AND image=$2::BIGINT
"#;
@@ -388,14 +553,237 @@ SELECT * FROM table WHERE token=$1::TEXT AND image=$2::BIGINT
name: "$1".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
has_default: false,
oidx: Some(1),
},
Arg {
otyp: Some("bigint".to_string()),
name: "$2".to_string(),
typ: Typ::Int,
default: None,
has_default: false
has_default: false,
oidx: Some(2),
},
],
no_main_func: None
}
);
Ok(())
}
#[test]
fn test_parse_pgsql_mutli_sig() -> anyhow::Result<()> {
let code = r#"
-- $1 param1
-- $2 param2
-- $3 param3
SELECT $3::TEXT, $1::BIGINT;
SELECT $2::TEXT;
"#;
//println!("{}", serde_json::to_string()?);
assert_eq!(
parse_pgsql_sig(code)?,
MainArgSignature {
star_args: false,
star_kwargs: false,
args: vec![
Arg {
otyp: Some("bigint".to_string()),
name: "param1".to_string(),
typ: Typ::Int,
default: None,
has_default: false,
oidx: Some(1),
},
Arg {
otyp: Some("text".to_string()),
name: "param2".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: Some(2),
},
Arg {
otyp: Some("text".to_string()),
name: "param3".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: Some(3),
},
],
no_main_func: None
}
);
Ok(())
}
#[test]
fn test_parse_sql_blocks_multi_2semi() -> anyhow::Result<()> {
let code = r#"
-- $1 param1
-- $2 param2
-- $3 param3
SELECT '--', ';' $3::TEXT, $1::BIGINT;
-- ;
SELECT $2::TEXT;
"#;
assert_eq!(parse_sql_blocks(code).len(), 2);
Ok(())
}
#[test]
fn test_parse_sql_blocks_multi_1semi() -> anyhow::Result<()> {
let code = r#"
-- $1 param1
-- $2 param2
-- $3 param3
SELECT '--', ';' $3::TEXT, $1::BIGINT;
-- ;
SELECT $2::TEXT
"#;
assert_eq!(
parse_sql_blocks(code),
vec![
r#"
-- $1 param1
-- $2 param2
-- $3 param3
SELECT '--', ';' $3::TEXT, $1::BIGINT;"#,
r#"
-- ;
SELECT $2::TEXT
"#
]
);
Ok(())
}
#[test]
fn test_parse_sql_blocks_single_1semi() -> anyhow::Result<()> {
let code = r#"
-- $1 param1
-- $2 param2
-- $3 param3
SELECT '--', ';' $3::TEXT, $1::BIGINT;
-- hey
"#;
assert_eq!(
parse_sql_blocks(code),
vec![
r#"
-- $1 param1
-- $2 param2
-- $3 param3
SELECT '--', ';' $3::TEXT, $1::BIGINT;"#,
]
);
Ok(())
}
#[test]
fn test_parse_sql_blocks_single_nosemi() -> anyhow::Result<()> {
let code = r#"
-- $1 param1
-- $2 param2
-- $3 param3
SELECT '--', ';' $3::TEXT, $1::BIGINT
"#;
assert_eq!(
parse_sql_blocks(code),
vec![
r#"
-- $1 param1
-- $2 param2
-- $3 param3
SELECT '--', ';' $3::TEXT, $1::BIGINT
"#
]
);
Ok(())
}
#[test]
fn test_parse_mysql_positional_sig() -> anyhow::Result<()> {
let code = r#"
-- ? param1 (int) = 3
-- ? param2 (text)
SELECT ?, ?;
"#;
assert_eq!(
parse_mysql_sig(code)?,
MainArgSignature {
star_args: false,
star_kwargs: false,
args: vec![
Arg {
otyp: Some("int".to_string()),
name: "param1".to_string(),
typ: Typ::Int,
default: Some(json!(3)),
has_default: true,
oidx: None,
},
Arg {
otyp: Some("text".to_string()),
name: "param2".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: None,
},
],
no_main_func: None
}
);
Ok(())
}
#[test]
fn test_parse_mysql_sig() -> anyhow::Result<()> {
let code = r#"
-- :param1 (int) = 3
-- :param2 (text)
-- :param_3 (text)
SELECT :param_3, :param1;
SELECT :param2;
"#;
assert_eq!(
parse_mysql_sig(code)?,
MainArgSignature {
star_args: false,
star_kwargs: false,
args: vec![
Arg {
otyp: Some("int".to_string()),
name: "param1".to_string(),
typ: Typ::Int,
default: Some(json!(3)),
has_default: true,
oidx: None,
},
Arg {
otyp: Some("text".to_string()),
name: "param2".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: None,
},
Arg {
otyp: Some("text".to_string()),
name: "param_3".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: None,
},
],
no_main_func: None
@@ -408,9 +796,10 @@ SELECT * FROM table WHERE token=$1::TEXT AND image=$2::BIGINT
#[test]
fn test_parse_bigquery_sig() -> anyhow::Result<()> {
let code = r#"
-- @token (string)
-- @token (string) = abc
-- @image (int64)
SELECT * FROM table WHERE token=@token AND image=@image
SELECT * FROM table WHERE token=@token AND image=@image;
SELECT @token;
"#;
//println!("{}", serde_json::to_string()?);
assert_eq!(
@@ -423,15 +812,111 @@ SELECT * FROM table WHERE token=@token AND image=@image
otyp: Some("string".to_string()),
name: "token".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false
default: Some(json!("abc")),
has_default: true,
oidx: None,
},
Arg {
otyp: Some("int64".to_string()),
name: "image".to_string(),
typ: Typ::Int,
default: None,
has_default: false
has_default: false,
oidx: None,
},
],
no_main_func: None
}
);
Ok(())
}
#[test]
fn test_parse_snowflake_sig() -> anyhow::Result<()> {
let code = r#"
-- ? param1 (int) = 3
-- ? param2 (varchar)
SELECT ?, ?;
-- ? param3 (varchar)
SELECT ?;
"#;
assert_eq!(
parse_snowflake_sig(code)?,
MainArgSignature {
star_args: false,
star_kwargs: false,
args: vec![
Arg {
otyp: Some("int".to_string()),
name: "param1".to_string(),
typ: Typ::Int,
default: Some(json!(3)),
has_default: true,
oidx: None,
},
Arg {
otyp: Some("varchar".to_string()),
name: "param2".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: None,
},
Arg {
otyp: Some("varchar".to_string()),
name: "param3".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: None,
}
],
no_main_func: None
}
);
Ok(())
}
#[test]
fn test_parse_mssql_sig() -> anyhow::Result<()> {
let code = r#"
-- @p1 param1 (int) = 3
-- @p2 param2 (varchar)
-- @p3 param3 (varchar)
SELECT @p3, @p1;
SELECT @p2;
"#;
assert_eq!(
parse_mssql_sig(code)?,
MainArgSignature {
star_args: false,
star_kwargs: false,
args: vec![
Arg {
otyp: Some("int".to_string()),
name: "param1".to_string(),
typ: Typ::Int,
default: Some(json!(3)),
has_default: true,
oidx: None,
},
Arg {
otyp: Some("varchar".to_string()),
name: "param2".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: None,
},
Arg {
otyp: Some("varchar".to_string()),
name: "param3".to_string(),
typ: Typ::Str(None),
default: None,
has_default: false,
oidx: None,
},
],
no_main_func: None

View File

@@ -204,6 +204,7 @@ fn parse_param(
typ,
default: None,
has_default: ident.id.optional || nullable,
oidx: None,
})
}
// Pat::Object(ObjectPat { ... }) = todo!()
@@ -250,13 +251,13 @@ fn parse_param(
if typ == Typ::Unknown && dflt.is_some() {
typ = json_to_typ(dflt.as_ref().unwrap());
}
Ok(Arg { otyp: None, name, typ, default: dflt, has_default: true })
Ok(Arg { otyp: None, name, typ, default: dflt, has_default: true, oidx: None })
}
Pat::Object(ObjectPat { type_ann, .. }) => {
let (typ, nullable) = eval_type_ann(&type_ann);
*counter += 1;
let name = format!("anon{}", counter);
Ok(Arg { otyp: None, name, typ, default: None, has_default: nullable })
Ok(Arg { otyp: None, name, typ, default: None, has_default: nullable, oidx: None })
}
_ => Err(anyhow::anyhow!(
"parameter syntax unsupported: `{}`: {:#?}",
@@ -402,72 +403,8 @@ fn tstype_to_typ(ts_type: &TsType) -> (Typ, bool) {
(tstype_to_typ(&types[other_p]).0, true)
} else {
if types.len() > 1 {
let one_of_values: Vec<OneOfVariant> = types
.into_iter()
.map_while(|x| match &**x {
TsType::TsTypeLit(TsTypeLit { members, .. }) => {
let label = members
.iter()
.find_map(|y| match y {
TsTypeElement::TsPropertySignature(
TsPropertySignature { key, type_ann, .. },
) => match (&**key, type_ann) {
(Expr::Ident(Ident { sym, .. }), type_ann) => {
if sym.to_string() == "label" {
type_ann.as_ref().map(|z| match &*z.type_ann {
TsType::TsLitType(TsLitType {
lit: TsLit::Str(Str { value, .. }),
..
}) => Some(value.to_string()),
_ => None,
})
} else {
None
}
}
_ => None,
},
_ => None,
})
.flatten();
match label {
Some(label) => {
let properties: Vec<ObjectProperty> = members
.into_iter()
.filter_map(|x| match x {
TsTypeElement::TsPropertySignature(
TsPropertySignature { key, type_ann, .. },
) => match (*key.to_owned(), type_ann) {
(Expr::Ident(Ident { sym, .. }), type_ann) => {
Some(ObjectProperty {
key: sym.to_string(),
typ: type_ann
.as_ref()
.map(|typ| {
Box::new(
tstype_to_typ(
&*typ.type_ann,
)
.0,
)
})
.unwrap_or(Box::new(Typ::Unknown)),
})
}
_ => None,
},
_ => None,
})
.collect();
Some(OneOfVariant { label, properties })
}
_ => None,
}
}
_ => None,
})
.collect();
let one_of_values: Vec<OneOfVariant> =
types.into_iter().map_while(parse_one_of_type).collect();
if one_of_values.len() == types.len() {
return (Typ::OneOf(one_of_values), false);
@@ -526,6 +463,10 @@ fn tstype_to_typ(ts_type: &TsType) -> (Typ, bool) {
"Base64" => (Typ::Bytes, false),
"Email" => (Typ::Email, false),
"Sql" => (Typ::Sql, false),
x @ _ if x.starts_with("DynSelect_") => (
Typ::DynSelect(x.strip_prefix("DynSelect_").unwrap().to_string()),
false,
),
x @ _ => (Typ::Resource(to_snake_case(x)), false),
}
}
@@ -533,6 +474,66 @@ fn tstype_to_typ(ts_type: &TsType) -> (Typ, bool) {
}
}
fn parse_one_of_type(x: &Box<TsType>) -> Option<OneOfVariant> {
match &**x {
TsType::TsTypeLit(TsTypeLit { members, .. }) => {
let label = one_of_label(members)?;
let properties = one_of_properties(members);
Some(OneOfVariant { label, properties })
}
_ => None,
}
}
fn one_of_label(members: &Vec<TsTypeElement>) -> Option<String> {
members.iter().find_map(|y| {
let TsTypeElement::TsPropertySignature(TsPropertySignature { key, type_ann, .. }) = y
else {
return None;
};
let Expr::Ident(Ident { sym, .. }) = &**key else {
return None;
};
if sym != "label" {
return None;
}
let Some(type_ann) = type_ann.as_ref() else {
return None;
};
let TsType::TsLitType(TsLitType { lit: TsLit::Str(Str { value, .. }), .. }) =
&*type_ann.type_ann
else {
return None;
};
Some(value.to_string())
})
}
fn one_of_properties(members: &Vec<TsTypeElement>) -> Vec<ObjectProperty> {
members
.iter()
.filter_map(|x| {
let TsTypeElement::TsPropertySignature(TsPropertySignature { key, type_ann, .. }) = x
else {
return None;
};
let Expr::Ident(Ident { sym, .. }) = *key.to_owned() else {
return None;
};
let typ = type_ann
.as_ref()
.map(|typ| Box::new(tstype_to_typ(&*typ.type_ann).0))
.unwrap_or(Box::new(Typ::Unknown));
Some(ObjectProperty { key: sym.to_string(), typ })
})
.collect()
}
fn find_undefined(types: &Vec<Box<TsType>>) -> Option<usize> {
types.into_iter().position(|x| match **x {
TsType::TsKeywordType(TsKeywordType { kind, .. }) => {

2
backend/parsers/windmill-parser-wasm/build.sh Normal file → Executable file
View File

@@ -1,4 +1,4 @@
#!/bin/bash
set -eou pipefail
deno task wasmbuild --out ../../../cli/wasm/
deno task wasmbuild --out ../../../cli/wasm/ -p windmill-parser-wasm

View File

@@ -1,5 +1,5 @@
{
"tasks": {
"wasmbuild": "deno run -A https://deno.land/x/wasmbuild@0.15.4/main.ts"
}
}
"tasks": {
"wasmbuild": "deno run -A jsr:@deno/wasmbuild@0.17.2"
}
}

View File

@@ -3,7 +3,7 @@
"collaborators": [
"Ruben Fiszel <ruben@windmill.dev>"
],
"version": "1.355.4",
"version": "1.367.2",
"files": [
"windmill_parser_wasm_bg.wasm",
"windmill_parser_wasm.js",

View File

@@ -6,6 +6,20 @@ heap.push(undefined, null, true, false);
function getObject(idx) { return heap[idx]; }
let heap_next = heap.length;
function dropObject(idx) {
if (idx < 132) return;
heap[idx] = heap_next;
heap_next = idx;
}
function takeObject(idx) {
const ret = getObject(idx);
dropObject(idx);
return ret;
}
let WASM_VECTOR_LEN = 0;
let cachedUint8Memory0 = null;
@@ -84,27 +98,13 @@ function getInt32Memory0() {
return cachedInt32Memory0;
}
let heap_next = heap.length;
let cachedFloat64Memory0 = null;
function dropObject(idx) {
if (idx < 132) return;
heap[idx] = heap_next;
heap_next = idx;
}
function takeObject(idx) {
const ret = getObject(idx);
dropObject(idx);
return ret;
}
const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );
if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };
function getStringFromWasm0(ptr, len) {
ptr = ptr >>> 0;
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
function getFloat64Memory0() {
if (cachedFloat64Memory0 === null || cachedFloat64Memory0.byteLength === 0) {
cachedFloat64Memory0 = new Float64Array(wasm.memory.buffer);
}
return cachedFloat64Memory0;
}
function addHeapObject(obj) {
@@ -116,13 +116,13 @@ function addHeapObject(obj) {
return idx;
}
let cachedFloat64Memory0 = null;
const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );
function getFloat64Memory0() {
if (cachedFloat64Memory0 === null || cachedFloat64Memory0.byteLength === 0) {
cachedFloat64Memory0 = new Float64Array(wasm.memory.buffer);
}
return cachedFloat64Memory0;
if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };
function getStringFromWasm0(ptr, len) {
ptr = ptr >>> 0;
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
}
let cachedBigInt64Memory0 = null;
@@ -585,6 +585,13 @@ async function __wbg_load(module, imports) {
function __wbg_get_imports() {
const imports = {};
imports.wbg = {};
imports.wbg.__wbg_eval_aa725d466edcea2c = function(arg0, arg1) {
const ret = eval(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
};
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
takeObject(arg0);
};
imports.wbg.__wbindgen_string_get = function(arg0, arg1) {
const obj = getObject(arg1);
const ret = typeof(obj) === 'string' ? obj : undefined;
@@ -593,13 +600,6 @@ function __wbg_get_imports() {
getInt32Memory0()[arg0 / 4 + 1] = len1;
getInt32Memory0()[arg0 / 4 + 0] = ptr1;
};
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
takeObject(arg0);
};
imports.wbg.__wbindgen_error_new = function(arg0, arg1) {
const ret = new Error(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
};
imports.wbg.__wbindgen_boolean_get = function(arg0) {
const v = getObject(arg0);
const ret = typeof(v) === 'boolean' ? (v ? 1 : 0) : 2;
@@ -636,8 +636,8 @@ function __wbg_get_imports() {
const ret = BigInt.asUintN(64, arg0);
return addHeapObject(ret);
};
imports.wbg.__wbg_eval_64ce1594989e82f8 = function(arg0, arg1) {
const ret = eval(getStringFromWasm0(arg0, arg1));
imports.wbg.__wbindgen_error_new = function(arg0, arg1) {
const ret = new Error(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
};
imports.wbg.__wbindgen_jsval_loose_eq = function(arg0, arg1) {

Some files were not shown because too many files have changed in this diff Show More