* allow editing flow/script summary
* feat(frontend): wire up edit summary/path on flow detail page
- Fix on:click → onclick (Svelte 5) and add title on Save button
- Make can_write reactive ($state) so onEdit prop updates correctly
- Wire onEdit in flow detail page to call FlowService.updateFlow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(frontend): use Path component for path editing in detail page header
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(frontend): extract SummaryPathDisplay component with edit popover
Consolidate the summary+path display and edit popover into a reusable
SummaryPathDisplay component, used in both the detail page header and
the flow editor toolbar.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(frontend): add size prop to Path/FolderPicker, compact popover
Add size prop ('sm' | 'md') to Path and FolderPicker components,
passed through to ToggleButton, TextInput, and Button children.
Use hideFullPath and size="sm" in the SummaryPathDisplay popover
for a compact inline path editor. Widen popover to 480px.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix add folder in path editor
* fix(frontend): disable focus trap on edit popover for drawer access
Disable melt-ui's focus trap on the SummaryPathDisplay popover so
that inputs inside drawers (e.g. New Folder) can receive focus.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* nit
* feat(frontend): auto-create folder and render drawer above popover
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(frontend): show placeholder and hover-reveal pencil in SummaryPathDisplay
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(frontend): click-to-edit SummaryPathDisplay with inline layout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(frontend): move undo/redo and tutorials into dropdown submenu with notification dot
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(frontend): stack path above summary in SummaryPathDisplay
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(frontend): bind summary/path directly in flow builder popover
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* nit
* chore: add PR screenshots (to be removed before merge)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: remove PR screenshots (moved to release assets)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Add vertical nav bar to workspace settings
* harmonize settings content titles
* remove sidebar icons
* add background to sidebar
* nit user section
* EEonly display
* Workspace settings general design
* Add schema validation and dirty detection
* Put critical alerts in a separated tab
* separate error success handler
* only enable save when there is some changes
* Fix dirty detection for deployment UI
* Only enable save button when changes for datatables ws storage
* Add setting footer component
* Use new footer setting for saving configs
* nit
* apply setting footer
* improve save button
* nit
* nit
* nit
* make ws app use same pattern as other tabs
* Separate scrolling between sidebar and content
* Gather error handlers
* use universal save button for object storage
* Title sentence case
* nit
* nit
* improve dirty config logic
* nit
* nit
* clean dead code
* Use settings footer for deployment settings
* Git sync settings
* move tabs
* fix dirty stats of error handlers
* nit
* nit
* clean plate
* npm i
* log in e2e
* global setup login
* set license key
* Revert "set license key"
This reverts commit 86d5db2c48.
* create datatable test
* fix wrong pg_creds
* data table + db manager e2e test
* DbManagerPage class
* small refactor
* create resource test + improvements
* text db manager in resources
* Factor test logic in classes
* refactoring
* refacto
* alter table test
* alter table e2e test
* set schema in test
* nits
* fix wrong schema var
* Correct setup and parallelization
* reducedMotion
* tests passing headless !
* bigger timeout
* start e2e docker compose
* e2e runs on all databases
* nit test uid fix
* refactp
* stash
* Better Workspace Storage settings
* minio setup
* nit
* nit
* super nit
* Permission settings in modal
* badge indicator
* Fetch alter table metadata much faster
* Upgrade duckdb to 1.4.3
* Ducklake tests
* Disable transactional DDL for Ducklake (bug on their side)
* git ignore env
* bigquery tests passes
* getJsonEnv
* load coldef in parallel
* Make Bigquery schema fetching much faster
* makeLoadTableMetaDataQuery for entire db in bigquery
* refactor getDbSchemas to avoid assignment side effect
* fix col def
* Better loading state mgmt
* snowflake
* fix snowflake primary keys
* Test CI
* fix setTimeout type
* remove type node
* test e2e ci
* Revert "test e2e ci"
This reverts commit bf98a755dc.
* remove ci
* fix snowflake pk query in alternate schemas
* nit wait for coldefs
* nit snowflake
* Snowflake fk fix
* UNPROCESSABLE_ENTITY instead of INTERNAL_ERROR
* nits
* fix alter pk in snowflake
* yet other fixes
* snowflake tests pass
* nits
* data tables settings ui
* install runed
* zod 4 fixes
* use new toJSONSchema
* Migrate ducklake catalogs to more generic custom instance databases
* fix compilation
* Safety conversion for old duckdb ffi
* data tables settings
* ts client basis
* inline run works
* datatables work
* Revert "datatables work"
This reverts commit 6e1588d59e.
* datatables work (without leaking pg credentials)
* println
* separate sqlUtils.ts
* nit
* Separate custom instance db Select and Wizard components
* nit
* nit wording
* add tags to custom instance dbs
* error when trying to use ducklake as datatable or opposite
* show status in dropdown
* data table instance setup works
* sqk function for ducklake
* factorize logic
* fix temp reactivity
* Data table assetexplore
* Migrate S3 permissions to modal
* Revert "Migrate S3 permissions to modal"
This reverts commit 0631d03cb0.
* nit query -> fetch
* Custom instance setup new look
* run_language_executor separate fn
* run_inline param
* nit wording
* Better typed client
* Data tables display as assets in frontend
* asset db icon
* nit
* cleaner errors
* nit
* Fix sed calls in mac
* run_inline_script_preview in python client
* basic python datatable client
* datatable and datalake parser in python
* ducklake client python
* nit fix
* Fix migration producing NULL instead of {} when no custom databases
* merge conflict fail
* python ducklake client arg fix
* parse or infer sql types in ts client
* ts asset parser, detect datatable & ducklake R/W
* fix sql repl for other read ops than select
* export type SqlTemplateFunction
* rename list_custom_instance_pg_databases
* typecheck datatable and ducklake name in Typescript
* Fix typecheck datatable and ducklake in TS
* declare module overriding instead of extending
* infer_sql_type in python client
* SqlQuery object in python
* fix merge conflicts
* update const_format
* CI fix
* factor out to var_identifiers
* sqlx prepare
* unnecessary security (admin is required)
* clearer comment
* ee repo ref
* nit snake case
* claude step 1: detect var declarations
* move detect_sql_access_type to common mod
* claude step 2: detect when saved vars are queried
* Revert "claude step 2: detect when saved vars are queried"
This reverts commit 1e1f930568.
* Revert "claude step 1: detect var declarations"
This reverts commit f866f4819d.
* remove ducklake/datatable and default
* detect data table assigns in var_identifiers
* Python parser successfully infers R/W/RW from ducklake / datatable
* still register ducklake/datatable if not used as unknown R/W
* Go to settings button in Assets Dropdown on not found
* nit
* sqlx prepare fail
* manual fix, somehow sqlx prepare won't do it
* fix frontend ci
* ee repo ref
* ducklake_user doesnt exist in unit tests
* nit fix
* ui nit
* nit
* nit missing clone
* fork ducklakes and datatables
* fix surface hover bug
* stupid mistake
* better deeply reactive mutable derived
* Ducklake picker
* Editor bar data tables
* DuckDB supports datatables
* datatable in duckdb asset parser
* duckdb asset parser var_identifiers
* Revert "duckdb asset parser var_identifiers"
This reverts commit 88068b1a77.
* sqlx prepare
* Box pin in test_workflow_as_code to fix stack overflow
* stash
* sql asset parser parses most s3 literals
* nit
* Detect attach + handle returning RW
* detect assets used with dot notation
* detect implicit access with USE dl; syntax
* Add assets as unknown if var was never used
* Support default ducklake/datatable main in parser
* ignore asset parsing errors in frontend (avoid flow layout shift)
* super weird duplication (merge conflict ?)
* nits
* fix duckdb parser detecting too much as asset when RW ctx is unknown
* fix transparent assets btn
* missing arg
* nit styling
* asset parser specific table parsing
* fix resource specific table parsing
* More concise asset display in flows + better icons
* fix assets page filtering out resources with added table
* Fix frontend to support specific table assets
* Open DB Manager to specific table
* Specific table parser in Python and TS + unit tests
* Fix UPDATE setting access to None
* fix flow edge rendering on top of output picker
* python parser fix var override bug
* add ts test
* fix compilation
* sqlx prepare
* update parsers version
* fix missing schema key onDelete
* Grant permission to create schemas in custom instance databases
* Update pg query to return empty schemas
* Create schema
* Select nits
* support schemas in sql parser
* ts parser handle schema with sql parser result
* detect .schema() syntax
* detect schema syntax in python
* support .schema() in ts and py SDK
* open db manager to specific schema
* support reassignment in ts parser
* nit better unitest
* : syntax in ts
* datatable:schema syntax in python
* fix client py
* nit select dropdown darkmode
* object | null fetchOne
* ts client nits
* parse_sql_client_name fn
* getImportWmillTsStatement refactor in EditorBar
* text to json() in python client
* update parser versions
* pkg lock
* Sql query details in TS asset parser
* code transformation with type parameter in Editor
* Custom Language Worker, code substition works !
* Error marker mapping works
* hover info is correct
* completions work correctly
* other overrides
* type inference kinda works
* Position mapping tests
* refactor prepare_queries
* Refactor PgDatabase to share common code
* Pgdatabase in prepare_queries
* TokioPgConnection refactor
* refactor prepare_queries
* type parameter to sql function
* Fix deadlock
* nit fix
* Fix worker async call freezing because of svelte Proxy
* Force worker to recompute when we set queries
* nit refactor
* nits console logs
* wait that ts worker initialize
* monaco change file version
* update diagnostics
* Refactor for errors
* Show SQL errors in Monaco
* improve sdk
* cleaning refactor + MapResource + usePreparedAssetSqlQueries
* Fixes
* Fix error position mapping
* cache in typescript worker
* fix insert no values
* don't inject type if already present
* Support schema in prepare queries
* update parsers
* ChangeOnDeepInequality
* inferAsset ScriptEditor usage refactor
* sql query typecheck work in flow editor
* Assets and SQL Query check in Raw App Inline Editor
* pkg lock
* Fix DatatableSqlTemplateFunction nit
* prepare query schema nit
* duplicate diagnostics
* nit getScriptVersion mock
* Reprepare queries when switching workspaces
* nit fix
* nit fix
* fetch_one_scalar and execute in python client
* limit pg_connections
* -- prepare flag in postgres
* skip serializing
* fix destructuring undefined
* Prepare queries in workers instead of backend
* nit
* Execute search_path instructions normally
* nit fix
* Fix SET search_path issue in prepare
* only support preparing single-statement queries for now
* update parsers
* safety
* better remove_comments
* Fix getQueryStmtCountHeuristic
* getQueryStmtCountHeuristic tests
* comment out failing tests
* Fix getQueryStmtCountHeuristic impl
* only datatable
* Fix flow time display
* Make compute timeline a separate component
* Add timeline to log viewer
* Add timeline for subflows
* remove debug log
* fix progresion display while running
* Handle loop iteration
* nit
* Display all iteration for loops
* Show total execution time for loop steps
* Show subflow timeline
* Do not hightlight selected iteration
* Add subflow duration and starting time
* Allow zoom on subflow timeline
* Show execution time
* Improve timeline layout
* nit
* hover effect
* add show timeline toggle
* reset log viewer state when job id changes
* Display history loader in flow preview
* handle branch one
* reset timeline on jobId change
* nit
* fix branch chosen default
* improve time display
* improve look v1
* improve look v2
* Allow loading of more iterations when limit is reached
* fix display
* Add tooltip
* Use popover to display durations
* allow select iteration from timeline
* remove debug log
* fix iteration to index for long loops
* select iteration based on id
* Use localModuleState to get current display job ids
* clean subflow job creation
* improve subflow fetching
* fix load more position
* improve parallele display
* clean
* Add color status
* remove unwanted change
* prevent toggle expand on click timeline
* fix expand running module
* make timeline optional
* prevent running flow be marked as error
* Fix width jump during execution
* fix typo
* nit
* Use a class for timeline computation
* nit
* improve arg layout
* improve runs row (wip)
* Add job badges
* group filters in dropdown
* improve runs row layout
* Improve filter layout
* use select for graph display
* handle width modification
* Remove useless headers
* fix bad display when result is null
* Display all jobs tags
* Improve display for 'step of flow' jobs
* Add empty message for JobAssetsViewer
* Move job preview assets tab to flow result for flows
* Only show tag in the tag column
* Add job kind to rows
* Add padding to the run preview
* nit
* move refresh on top of table
* Move filters into header bar
* move runs table topbar outside table
* Simplify layout
* Use toggle for kind for large screen
* move sync job and add batch actions breakpoint
* revert dropdown to toggle for conurrency/duration
* handle run labels overflow
* improve time display
* fix flow preview with no path display
* Add titles
* Prevent tab shift for script and flow result
* nit
* Allow job deselect
* Make job link more visible
* Fix filtering for queued job
* Fix filter not reseting after select from toggleMore
* Allways show assets for flow status viewer
* Update run chart to svelte 5 and fix reactivity issue
* migrate concurrency chart to svelte 5
* Improve admmin workspace display and fix missing in add filter popover
* nit
* fix run table resize
* Add breakpoint to hide tag in small screens
* use a css file for gathering RunRow and RunTable classes
* nit
* nit
* remove debug log
* nit
* fix typo
* Have too icons for queued workers and suspended
* add gap before auto-refresh
* Replace min max to from to calendar picker
* Add loading state for job preview
* Move duration
* Display kind full width when calendar not set
* Only show 2 digits for jobs duration
* Replace Scheduled for by a clock un the run row
* Fix typpo in dropown select to dropdown select
* Hide sync and previews in toggle more
* Fix runs row padding
* Change notification colors for queued jobs
* use utils debounce function
* fix typo
* nit
* use class instead of classNames
* clean select filter side effects
* upgrade duckdb
* basic ducklake works
* ducklake works with custom db catalogs
* fix: pwsh skip already installed modules outside of cache (#6037)
* improve query performance of user stats
* separate ducklake_catalog db
* ducklake settings
* DucklakeSettings frontend
* Ducklake ws settings saved in backend
* fetch ducklake catalog resource
* Ducklake works with configured s3 storage
* Ducklake as asset
* ducklake asset icon
* Fix duckdb array and object args not working properly (#6254)
* Fix bug with comments in duckdb
* Avoid multiple queries when doing ATTACH ducklake
* trunc sig no longer needed now that comments are trimmed
* cache DuckdbConnectionSettingsResponse
* duplicated code
* transform_attach_ducklake contributes to duckdb_connection_settings_cache
* eliminate the need for used_storages
* nit
* cleaner management of the bigquery credentials file
* DBManagerDrawer refactor to prepare for Ducklake
* get ducklake schema
* implement delete for ducklake
* load column metadata for ducklake
* Select query works for ducklake, basic db explorer works !
* duckdb count query
* Support all db ops for ducklake
* clean migrations
* SQL repl for Ducklake
* fix broken database studio
* nit
* assert function
* Ducklake in Editor Bar
* default ducklake syntax + allow extra args
* DucklakeCatalogWizard UI
* nit + remove extra $
* modal when databases do not exist
* cannot be windmill
* Ducklake works safely with instance database
* Avoid sending instance db credentials on network
* resource leak security
* remove fetch_attach_db_conn_str
* prevent instance pg password leak
* hide asset usage count when not available
* case unsensitivity duckdb
* warnings
* disable instance catalog
* use shorthand syntax when inserting with EditorBar
* Instance ducklake catalog is now safe to use
* use safer argon2 pwd
* update package json parsers
* update package json
* better msgs
* tooltips
* disable explore button until saved
* nit
* fix warnings
* better ducklake_user password management
* nit
* Sanitize passwords from errors in ducklake
* DisplayResult broken in job result
* remove superadmin requirement to check databases_exist
* duckdb_connection_settings_v2_inner
* Ducklake works on agent worker (finally)
* ci
* #[allow(dead_code)]
* fix openapi missing response
* Separate +Database button for DuckDB in EditorBar
* Fix dropdown in ducklake settings
* Attempt to fix migration race condition in CI
* update sqlx failing for some offline queries
* avoid temp password for ducklake_user
* nits
* ducklake settings nits
* update duckdb default script
* fix sql repl resetting text on refresh
* avoid pgcrypto extension
---------
Co-authored-by: HugoCasa <hugo@casademont.ch>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* Moved logic to FlowAssetsProvider
* Remove assetsMap in flow
* do not parse everything on mount + only check for missing assets fields
* add assets field in backend
* remove fallbackAccessTypes
* better structure and less queries / parsing
* Fix assets not showing when pulling raw_flow from jobs
* flow assets ctx for job run
* Fix transitive assets fetching
* Fix input args asset node
* enablePathScriptAndFlowAssets flag
* edit btn for variable
* untrack refresh
* move parseInputArgsAssets
* Assets tab in runs
* Update FlowStatusViewerInner to svelte 5 + fix asset sync bug
* avoid toast error on bad resource
* fetch res metadata for input arg asset
* Job assets viewer in run page
* r/w selector
* remove indigo badge
* store alt_access_type state in ScriptEditor
* Don't parse assets in flow script editor
* Add alt_access_type in backend
* show Read as selected by default to avoid giving the feeling of having made a decision
* keep alt_access_type when reparsing in flow raw scripts
* Remove variable asset kind, and save assets for scripts
* remove all backend asset parsing
* R/W/RW selector button nits
* fix insert into assets not saving alt access type
* support named arguments in python asset parser
* improve asset usage drawer R/W indicator
* update legacy $res: syntax
* reactivity issue
* remove last variable asset stuff
* sqlx prepare
* tooltip explainer
* deprecated variable asset nit
* 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>
* migrate FlowPreviewContent to svelte 5
* run background preview from input panel
* share local run test
* Show approval in graph is testing in graph
* use component and props instead of portal for approval in graph
* Add a toggle to show module status in graph
* open module result after each run
* Fix module reactivity issue
* Add test flow button
* Extract preview run logic from flowPreviewContent
* Revert "Extract preview run logic from flowPreviewContent"
This reverts commit a39c70a920.
* nit
* lazy load preview content
* create component for flow preview button
* open preview v0
* open preview v1
* connect open preview button
* improve graph run display
* enable cancel preview
* Run test flow from input panel
* nit
* wip
* Use global context instead of module context for moduleTestState
* nit
* fix flow preview rendering
* Add testJob to modulesTest context
* update module status based on individual test data
* fix: clear job status on run preview
* detatch run buttons from input node
* move preview job in FlowEditorContext
* move outputPickerOpenFns to FlowEditorContext
* add result panel
* Add result output picker
* add status to loops and branch
* add open detail button to result panel
* fix test up to
* clean unnecessary binding
* clean
* Make iteration annotation smaller in editmode
* detatch test button to and aproval from node
* prevent flow edition during execution
* Prevent step test run during flow run
* Show approval in graph edges
* prevent opening output popover if node is outside the graph
* fix pointerdownOutside action
* fix test up to dropdown not closing
* fix test up to
* nit
* change job status badge display
* fix running status
* Enable test flow in Dev
* fix darkmode
* fix node panel display in Dev
* fix test flow button positionning
* fix suspend in subflows
* improve lazy load of preview
* prevent preview data unmount on close drawer
* clean code
* move flowjob into flow context
* Revert "move flowjob into flow context"
This reverts commit 939e9dbaaf.
* clean context
* nit
* fix dark mode status view
* fix test button alignment
* clean job status on deleted step
* fix retry bad status display
* Detect flow change
* Update frontend/src/lib/components/flows/header/FlowPreviewButtons.svelte
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
---------
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>