Commit Graph

6608 Commits

Author SHA1 Message Date
Ruben Fiszel e36d8b00e4 nit behavior for invalid keys 2025-07-13 11:13:06 +00:00
Ruben Fiszel e6301702f5 fix: prevent workers from being stuck on kill signal 2025-07-13 11:05:46 +00:00
Alexander Petric d93ef6acfa fix: set urllib user-agent header in loader.py (cloudflare block) (#6169)
Co-authored-by: Alexander Petric <alex@macbook-pro.lan>
2025-07-12 00:36:34 +02:00
Alexander Petric 9a8bed128f fix: worker symlink dir + path fixes + npm postinstall on windows (#6167) 2025-07-11 22:51:48 +02:00
Ruben Fiszel f8342bb95e chore(main): release 1.505.0 (#6163)
* chore(main): release 1.505.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-07-11 18:23:17 +00:00
Ruben Fiszel 11cf60f4a5 improve edit history behavior (#6166) 2025-07-11 18:19:47 +00:00
HugoCasa 328ef605ad feat: triggers error handler and retry (#6138)
* feat: http triggers error handling and retries

* feat: handle sync http triggers

* feat: triggers retry and error handling

* feat: frontend and preprocessor

* fix build

* minimum allow dead code

* check workspace tags in schedules

* fix flow preprocesor + hub urls

* update ee ref

* nit

* nit

* final nits

* schedule UI nits

* migrate workspace settings to svelte 5
2025-07-11 18:55:23 +02:00
Ruben Fiszel bfb2277ff1 fix: audit log truncation fix 2025-07-11 16:23:18 +00:00
Diego Imbert 433341b295 feat: assets as a primary concept (#6125)
* assets migration

* parse assets (duckdb)

* iterate on assets

* S3 object Preview

* remove pagination

* filterText

* better occurence list

* tweak

* assets in JobPreview

* clone impl

* AssetsDetectedBadge

* improve DbManagerButton + asset dropdown button

* edit resource btn

* warning when incorrect resource

* +Resource in DuckDB

* +S3 Object editor bar

* nit fix rename

* flow asset badge

* More Generic OnChange

* Highlight assets used in modules

* Show occurence count in flow

* Better UX, avoid moving parts

* nit

* Asset nodes

* move to dedicated Asset ctx

* fix layoutNodes not handling first assetsMap

* explore asset btn in flow asset node

* correct offset

* single computeAssetNodes function

* Fix y positioning of nodes with assets

* resource editor

* write mode node (ui)

* accessType in ctx + fix insert button positioning

* right positioning when mixing read and write nodes

* right positioning when mixing R and W assets

* Better layout fix algorithm

* listAssetsByUsage and asset nodes on transitive usages

* refactor + remove linkAssets

* Refactor to allow for custom R/W modes

* AssetsDropdownButton in flow script editor

* R/W/RW selection and changes node pos in flow

* layoutNodes doesnt need recompute now

* fix wrong assumption that nodes recompute when assets change

* r/w/rw multi toggle

* MultiToggle cool animation + clearable

* rename + 1px nit

* remove mini toggle button group, use ToggleButtonGroup

* Combinator parser that detects R / W asset context

* nit fix missing flex-1

* missing order by

* better ui indication for access type

* special x offset case when only one asset node for clarity

* parse getResource in TS with swc ecma parser

* support load and write s3 detection in TS

* Python asset parser

* support wmill api calls without special $res: or s3:// syntax

* detect out of context asset uris python

* do not use access type override when not ambiguous in flow graph

* parse_assets match case in rust

* AsRef<str> refactor

* From impl

* Save flow assets

* Save script asset usages + fixes + save fallback access types

* asset sub icon

* max total asset node width to avoid overlap

* small refactor

* don't parse comments in duckdb assets

* fix assets clearing on parse error

* fix script asset save in wrong place

* load initial asset fallback access types

* support variables

* ui fixes

* Support S3Object as URI in TS client

* support new syntax in python client

* Support +S3Object in EditorBar for TS and python

* Reduce resource requests in assets page

* import windmill client when necessary

* update s3Types.d.ts

* nit fix

* Show input resources and s3 objects as assets

* improve asset icons

* DarkModeObserver refactor

* asset page tabs

* Moved resource variables and s3object pages to assets tabs

* fetch resource usages

* Get variables usages

* move assets usage dropdown to component

* Revert "move assets usage dropdown to component"

This reverts commit 622ea4ab12.

* Revert "Get variables usages"

This reverts commit b11ced4e29.

* Revert "fetch resource usages"

This reverts commit aa5187ad4b.

* Revert "Moved resource variables and s3object pages to assets tabs"

This reverts commit 4430487be4.

* Revert "asset page tabs"

This reverts commit dacc2f0da5.

* move assets usage dropdown to component

* asset icon in asset pages

* tooltip

* details

* Storage selector in S3 File Picker

* make edge less opaque

* Refactor computeAssetNodes to separate in and out nodes

* AssetsOverflowedNode

* nits

* fix assets not being parsed in flows sometimes

* show asset kind and resource_type

* ui nits

* support res:// in duckdb

* add banner for old deployments

* Fix permissionning

* fix broken disable /enable all

* assets page view permission for operators

* Disable ExploreAssetButton for operators

* asset kind as subtitle

* do not spam getResource in assets page. prob. revert fail

* update assets page on workspace change

* reload storage names on ws change

* delete assets on archive / deletion

* sqlx prepare

* missing update when updating user

* add indexes on asset

* better message

* missing loadInit: false

* dead code

* use transaction

* typo

* update package.json

* update package.json

---------

Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2025-07-11 09:56:53 +00:00
Ruben Fiszel 5c4b6e7b6f nits 2025-07-10 13:07:05 +00:00
Ruben Fiszel 95e1c3fe51 chore(main): release 1.504.0 (#6153)
* chore(main): release 1.504.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-07-10 12:48:55 +00:00
Diego Imbert f924a73c32 feat: storage selector in S3 File Picker (#6154)
* Storage selector in S3 File Picker

* Update SQLx metadata

---------

Co-authored-by: GitHub Action <action@github.com>
2025-07-10 12:27:00 +00:00
Ruben Fiszel b83aca30d2 feat: use process groups to improve zombie job handling (#6157)
* useProcessGroups

* nit
2025-07-10 08:49:56 +00:00
Ruben Fiszel 270d6a9a88 nit sleep between pull timeouts 2025-07-09 13:09:49 +00:00
Ruben Fiszel 8cbb88757d timeout on job pull iuf necessary 2025-07-09 13:08:44 +00:00
Ruben Fiszel c7fb066301 fix: improve index migration failure handling 2025-07-09 12:56:26 +00:00
Ruben Fiszel b9e92e8c0d chore(main): release 1.503.3 (#6152)
* chore(main): release 1.503.3

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-07-09 09:52:34 +00:00
HugoCasa e5f9e395d3 fix: prevent kafka metadata fetching from blocking windmill (#6151) 2025-07-09 09:49:05 +00:00
Ruben Fiszel d180a97ae2 chore(main): release 1.503.2 (#6149)
* chore(main): release 1.503.2

* Apply automatic changes

* pin rcmp

* pin rcmp

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-07-09 09:35:59 +00:00
Ruben Fiszel e369bba7bc chore(main): release 1.503.1 (#6140)
* chore(main): release 1.503.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-07-08 22:53:17 +00:00
Alexander Petric 4482e9d86a fix: correct paths and no symlink for windows (go) (#6139)
* fix: correct paths and no symlink for windows (go)

* fix: improve Windows Go executor compatibility

- Fix path handling inconsistency - use consistent double backslashes
- Replace hardcoded Windows paths with dynamic system path detection
- Add missing env_clear() call for mod init command
- Create helper functions to reduce Windows environment setup duplication
- Use SYSTEMDRIVE and TMP/TEMP environment variables for better compatibility

Co-authored-by: Alexander Petric <alpetric@users.noreply.github.com>

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2025-07-08 06:52:44 +00:00
Ruben Fiszel 3a82a68d7e chore(main): release 1.503.0 (#6121)
* chore(main): release 1.503.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-07-07 15:53:08 +00:00
Ruben Fiszel 566a9c45d0 fix: fix frontend scripts in app editor copying their content 2025-07-07 15:41:32 +00:00
wendrul 835645643e feat: Better tracing for audit logs, including a graph to visualize them (#6078)
* Migrate audit log page to svelte 5

* Add email and span cols to audit table

* Add token_prefixs to audit logs (into AuditAuthorable trait)

* Add audit logs graph (wip)

* Add audit span on push and jwt

* Unify same job audit into the same audit span

* Improve the graph visually

* Fix typo

* functioning graph with svelte issue

* Fix leak

* feat: migrate AuditLogsTable from DataTable to VirtualList for performance

- Replace DataTable component with VirtualList for handling thousands of rows
- Migrate to Svelte 5 runes ($props, $bindable, $derived, $state)
- Implement flattenLogs() for virtual scrolling with grouped date headers
- Add sticky indices and dynamic height calculation
- Update parent component to use callback prop pattern instead of events
- Preserve all existing functionality: filtering, selection, pagination
- Follows RunsTable.svelte implementation pattern

Resolves performance issues when displaying large audit log datasets.

🤖 Generated with [Claude Code](https://claude.ai/code)

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

* Fix remaining virtual list issues

* WIP graph

* Fix chart styling

* Fix npm check

* Fix missing audit_span arguments

* Update sqlx

* use varchar 255 for email as in other tables

* Remove syntax inconsistency

* Match struct with ee crate

* Update ee-repo-ref.txt

* Update worker_flow.rs

* Remove redefinition of trait to prevent shadowing

* Re add trait on oss but only when no `private` flag

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2025-07-03 21:02:45 +00:00
claude[bot] 13716c7df3 chore: update croner dependency to version 2.2.0 (#6119)
Update croner dependency from 2.0.6 to 2.2.0 as requested in #6118.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2025-07-03 09:08:25 +00:00
Ruben Fiszel 846ca65b87 chore(main): release 1.502.2 (#6108)
* chore(main): release 1.502.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-07-02 05:47:44 +00:00
pyranota a2334629d3 ci: add tests for python's global-site-packages (#6112)
Signed-off-by: pyranota <pyra@duck.com>
2025-07-01 23:38:26 +02:00
Alexander Petric dd91089436 improve graphql error reporting (#6092) 2025-07-01 15:45:04 +02:00
Ruben Fiszel 218792c80b chore(main): release 1.502.1 (#6103)
* chore(main): release 1.502.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-07-01 14:16:13 +02:00
Ruben Fiszel 77a59501b6 chore(main): release 1.502.0 (#6082)
* chore(main): release 1.502.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-06-30 20:18:34 +00:00
windmill-internal-app[bot] c51e128920 fix: add support for GCS object storage (#6083)
* AI: Updates to files (run 15923369101)

* all

* ee ref

* unneeded

---------

Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
Co-authored-by: HugoCasa <hugo@casademont.ch>
2025-06-30 20:11:57 +00:00
Ruben Fiszel e1ff8c1e53 fix cargo check 2025-06-30 16:41:09 +00:00
Ruben Fiszel e4eae849c9 fix cargo check 2025-06-30 16:33:03 +00:00
Ruben Fiszel bb110985e2 make OUTSTANDING_WAITING_TIME_TS configurable 2025-06-28 19:06:55 +02:00
Ruben Fiszel d15b889fb4 warn after long list_jobs duration 2025-06-28 19:02:34 +02:00
HugoCasa 8edf4b2b92 feat: kafka better retry and errors (#6067)
* feat: kafka better retry and errors

* update ee ref
2025-06-27 22:34:58 +02:00
pyranota bcba46225f fix: fix critical alerts flapping on low disk (#6075)
* fix: fix critical alert on low disk flapping

* sqlx update

* Update ee-repo-ref.txt
2025-06-27 09:31:44 +00:00
claude[bot] 115785644b Allow change_workspace_id on CLOUD_HOSTED for superadmins (#6073)
* feat: allow change_workspace_id on CLOUD_HOSTED for superadmins

- Import is_super_admin_email function from windmill_common::auth
- Modify CLOUD_HOSTED restriction to bypass for superadmin users  
- Resolves request to allow workspace ID changes for superadmins only

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

* feat: allow superadmins to change workspace ID on cloud hosted environments

Update frontend conditional logic to show workspace ID change button for superadmins on cloud hosted environments. This complements the backend changes that already allow superadmins to perform the workspace ID change operation.

Changes:
- Add superadmin import from $lib/stores
- Update condition from `!isCloudHosted()` to `!isCloudHosted() || $superadmin`

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

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
2025-06-27 08:50:07 +00:00
Ruben Fiszel 57bc221458 chore(main): release 1.501.4 (#6061)
* chore(main): release 1.501.4

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-06-26 14:41:26 +02:00
Alexander Petric 835f1d2ec9 fix: add windows paths to uv install to find git/ssh (#6063) 2025-06-26 08:26:59 +02:00
claude[bot] d933648d36 fix: optionally enable CSP headers (#6033)
* feat: add optional CSP headers when ENABLE_CSP_HEADERS is set

- Add middleware to conditionally set Content-Security-Policy headers
- Check for ENABLE_CSP_HEADERS environment variable  
- Apply secure default CSP policy suitable for web applications
- Follows existing middleware patterns in codebase

Resolves #6031

🤖 Generated with [Claude Code](https://claude.ai/code)

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

* perf: optimize CSP headers with lazy_static and add configurability

- Cache CSP_ENABLED and CSP_POLICY using lazy_static to avoid env var lookups on every request
- Add comprehensive documentation to add_csp_headers middleware function
- Make CSP policy configurable via CSP_POLICY environment variable
- Maintain backward compatibility with secure default policy
- Implement proper error handling for custom CSP policy values

Co-authored-by: Alexander Petric &lt;alpetric@users.noreply.github.com&gt;

* refactor: conditionally add CSP middleware layer instead of NO-OP

- Use .option_layer() to only add CSP middleware when ENABLE_CSP_HEADERS is set
- Remove runtime conditional check from add_csp_headers function
- Improve performance by avoiding unnecessary middleware execution when disabled

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

* refactor: conditionally add CSP middleware layer instead of NO-OP

Remove CSP_ENABLED variable and instead check if CSP_POLICY is not empty.
This eliminates the need for a separate enable flag and simplifies the logic
to just check if a meaningful CSP policy is configured.

- Remove CSP_ENABLED lazy_static variable
- Simplify CSP_POLICY to use unwrap_or_default()
- Update conditional middleware logic to check !CSP_POLICY.is_empty()
- Update documentation to reflect new behavior

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

* refactor: conditionally add CSP middleware layer instead of NO-OP

Move CSP headers from general middleware stack to static assets only.
CSP headers are only relevant for browsers consuming static content,
not for API endpoints.

Changes:
- Add CSP headers directly to static asset responses in serve_path()
- Remove CSP middleware from general middleware stack
- Remove unused add_csp_headers middleware function
- Maintain same CSP_POLICY environment variable configuration

Co-authored-by: Alexander Petric <alpetric@users.noreply.github.com>

* fix: conditionally compile CSP header imports with static_frontend feature

Fixes unused import errors by wrapping HeaderValue and CSP_POLICY imports 
with #[cfg(feature = "static_frontend")] to match their usage context.

Co-authored-by: Alexander Petric <alpetric@users.noreply.github.com>

* refactor: move CSP lazy static block to static_assets.rs

- Move CSP_POLICY lazy static from lib.rs to static_assets.rs for better encapsulation
- Remove crate-level import since CSP_POLICY is now local to static_assets module
- Maintain same functionality with proper feature gating for static_frontend

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

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
Co-authored-by: Alexander Petric <alpetric@users.noreply.github.com>
2025-06-25 21:15:22 +02:00
Ruben Fiszel 2039c93d4c chore(main): release 1.501.3 (#6051)
* chore(main): release 1.501.3

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-06-25 21:14:43 +02:00
HugoCasa 7a8c6d9dbb upgrade hf hub to prevent error on pull (#6057) 2025-06-25 18:34:47 +02:00
Tom Deckers 44457c72cf fix(backend): return correct content-type for openapi spec (#6045) 2025-06-25 16:41:35 +02:00
Ruben Fiszel 900c8edd7b fix: ignore type only imports when computing ts lockfiles 2025-06-25 14:29:52 +02:00
Ruben Fiszel d24eea2fde chore(main): release 1.501.2 (#6044)
* chore(main): release 1.501.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-06-24 20:30:34 +02:00
Ruben Fiszel f3f0b3d01a chore(main): release 1.501.1 (#6038)
* chore(main): release 1.501.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-06-24 16:56:33 +02:00
Ruben Fiszel 1bdd00a3e4 fix: optimize jobs list run incremental refresh performance 2025-06-24 16:21:23 +02:00
Ruben Fiszel 517b61e196 improve query performance of user stats 2025-06-24 13:36:50 +02:00
HugoCasa 29f6fab60c fix: pwsh skip already installed modules outside of cache (#6037) 2025-06-24 12:41:54 +02:00