Commit Graph
15295 Commits
Author SHA1 Message Date
hugocasaandClaude Opus 5.5 39ac1d8491 fix: keep pre-connection triggers working, and guard reconnects and service removal
- The migration recovers a service's connection when the workspace row lost its path,
  which saving the OAuth app or an abandoned instance connect used to do.
- A trigger created without a connection uses the shared account, as older clients and
  trigger specs expect.
- Only whoever connected a path, or an admin, may reconnect over it.
- Removing a service or sharing an account checks a path-scoped token against what it touches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:39:55 +02:00
hugocasaandClaude Opus 5.5 9e0bd22a88 fix: make the OAuth app dialog's open prop required
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 23c6364f0c fix: say members can browse what a shared native trigger account can access
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 18c404556e fix: point native trigger error hints at the account picker and the shared account
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 e361399ea2 feat: one status line per native trigger service, a Nextcloud admin hint, and clearer refusals
The shared account is a regular form field, Nextcloud shows an alert while no
admin account is shared, a non-admin Nextcloud account gets a message saying why
it cannot create triggers, and the OAuth dialog only accepts a full server URL.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 17d9e8b996 fix: pick the shared account with an inline select, and keep Nextcloud's own-account path in its wording
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 9f1e4165de feat: say what members can do with each native trigger service, keep the shared account optional
Nextcloud, whose webhooks need an admin account, offers connecting and sharing one
directly instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 fe087b18ec fix: say who configured each native trigger service, and name removal for what it removes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 4996d1f2e1 feat: show the OAuth app status in each native trigger card's header
App actions move into a menu, the card body holds only the shared account, and
service descriptions name what fires the trigger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 3ed7d6844c fix: compact the native trigger service card
Edit and Remove sit on the workspace OAuth app row, and the workspace connection
reads as part of the same section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 9a90b1eb47 fix: lead the OAuth app row with which app is in use, with a link to change it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 2465e974da fix: drop a stray brace from the OAuth app dialog binding
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 e2174c8057 feat: configure a native trigger service's OAuth app in a dialog
The card states once which OAuth app is in use, with a single Configure action,
and the form follows the design system.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 b27dfac402 feat: show each native trigger service's OAuth app status and keep removal apart
Remove now only appears with a workspace OAuth app, since a workspace using the
instance app has nothing of its own to remove.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 56ceb95ac7 fix: let admins share any connection, serialize service removal with trigger creation
An admin can already read every connection, so restricting sharing to their own
added nothing. Removing a service now takes each connection's lock and keeps
everything if a trigger was created meanwhile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 ec9511f699 fix: drop the own-account note from the workspace connection field
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 22be6ce379 fix: label the disconnect action in the connection picker
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 c176bcef00 feat: pick the workspace connection like other workspace resources, connect and disconnect from the picker
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 85e44e851d feat: let an admin share one native trigger connection with the whole workspace
Members can use the shared connection without reading its token. It reuses
workspace_integrations.resource_path, so existing workspace connections stay
usable by members after upgrading.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 400c7927ec fix: key token write-back by account and serialize trigger creation with disconnect
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 28799bd920 fix: scope-check the connection path when connecting, keep a connection still in use
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 bcd37c9999 fix: skip triggers moved since their scope check when disconnecting
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 8d1219bb2a fix: delete only the scope-checked triggers when disconnecting
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 51f742410c chore: order the native trigger connection migration after account ownership
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 97638e495f fix: authorize oauth account links and scope native trigger disconnects
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 541705e792 fix: bind native trigger oauth state to its user and follow connection renames
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 18d0d3ccf0 feat: let native triggers act through per-user or shared connections
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:10 +02:00
hugocasaandClaude Opus 5.5 c00f00057d fix: stop listing the ignored account input in the chat's write_variable instructions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:36:07 +02:00
hugocasaandClaude Opus 5.5 e03ff93280 refactor: create an OAuth token variable and its account in one request
createAccount takes the variable and the store creates both in one
transaction, so a connect is either fully saved or not at all. The connect
flows make that single call instead of creating the variable and linking it
afterwards.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:08:47 +02:00
hugocasaandClaude Opus 5.5 01c45104fd fix: keep the resource AppConnect fills when linking its account fails
Deleting a variable also deletes the resource at its path, so the rollback
is skipped when filling an existing resource.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:55:26 +02:00
hugocasaandClaude Opus 5.5 40f3f6a515 fix: delete AppConnect's token variable when linking its account fails, so Save can be retried
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:41:22 +02:00
hugocasaandClaude Opus 5.5 d171c31674 chore: pin the EE refresh and linking checks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 11:57:16 +02:00
hugocasaandClaude Opus 5.5 a895f9736e fix: stop exporting the OAuth account a variable links, and regenerate the chat tool schema
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 11:45:38 +02:00
hugocasaandClaude Opus 5.5 aeeecf5622 fix: link the account to the token variable AppConnect created, even if the path is edited mid-save
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 11:43:20 +02:00
hugocasaandClaude Opus 5.5 46f1ed15c8 chore: keep the MCP secret variable test's formatting
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 11:01:38 +02:00
hugocasaandClaude Opus 5.5 ad8bc5d4df refactor: link a variable to its OAuth account only in the connect flow
The variable endpoints no longer take an account link from the caller. The connect
flows create the token variable first and pass its path to create_account, which
links it server-side. This replaces the creator check and the created_by
bookkeeping, along with both migrations.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 11:01:11 +02:00
hugocasaandClaude Opus 5.5 ae87cff76f fix: follow a non-member superadmin's instance username on the OAuth accounts they created
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 10:27:21 +02:00
hugocasaandClaude Opus 5.5 245d03b254 fix: keep an oauth account's creator in step with the user's username
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 18:04:02 +02:00
hugocasaandClaude Opus 5.5 1fea77178d test: cover a permitted relink through a variable update
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 18:04:02 +02:00
hugocasaandClaude Opus 5.5 8037627b93 test: cover relinking an oauth account through a variable update
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 18:04:02 +02:00
hugocasaandClaude Opus 5.5 d5cbd9f62c fix: drop an oauth account link the caller may not hold instead of failing
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 18:04:02 +02:00
hugocasaandClaude Opus 5.5 f12d139a49 fix: only let an oauth account's creator or readers link it to a variable
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 18:04:02 +02:00
AlexRV12 7da2344813 fix: let raw app SDK tokens read the viewer's identity without a toggle (#11790)
* feat: grant raw app SDK tokens identity access without a toggle

* test: pin the implicit identity scope on raw app SDK tokens

* refactor: let raw app SDK tokens reach whoami at the route check
2026-10-15 17:21:56 +02:00
GuilhemandClaude Opus 5.5 1f1df1254e fix: relock scripts and flow steps whose code changed on deploy (#11794)
* fix: relock scripts deployed from a draft that carries the deployed lock

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore: reword fetchDeployed lock comment

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: drop the lock of flow steps whose code the chat changed

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: drop stale flow step locks at deploy, from drafts and the flow editor

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: keep locks of copied flows and never block a deploy on the lock check

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: keep the lock of a renamed or duplicated flow step with unchanged code

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 17:21:28 +02:00
f9513e82ee feat: run duckdb jobs out of process under job isolation, drop the engine fork, bump to 1.5.6 (#11780)
* feat: prototype running duckdb jobs out of process inside nsjail

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: bound runner output, honor force install outside the jail, set oom score before exec

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: gate the duckdb runner bin behind a feature and decode pre-install errors

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat: allowlist-only policy inside the duckdb jail, with its own extension cache

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat: run duckdb jobs out of process under job isolation and drop the engine fork

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat: runner everywhere, stock duckdb engine, no sql fence

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore: update ee-repo-ref to 24bdc6615b3f651141fb740e2cacf9c3c2d81252

This commit updates the EE repository reference after PR #884 was merged in windmill-ee-private.

Previous ee-repo-ref: 73452bbc280cc9ca33cf0fe325d26c2fbf3aace4

New ee-repo-ref: 24bdc6615b3f651141fb740e2cacf9c3c2d81252

Automated by sync-ee-ref workflow.

* fix: pass the windows system env and TZ to the duckdb runner

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat: cap a jailed duckdb job's disk use from the worker, 6GiB by default on cloud

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: keep a disk-backed jail tmp under the duckdb disk cap

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore: drop the benchmark scaffolding and bump duckdb to 1.5.6

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-10-15 16:49:50 +02:00
GuilhemandClaude Opus 5 8c0185d55a feat: let operators save resource and variable drafts (#11736)
* feat: operators get AI sessions

`prefersSessionHandoff` stops taking the role, so every AI entry point an operator
can reach — Ask AI, the home composer, Open in session, the flow editor's hand-off,
the raw-app template picker — opens a session for them like anyone else. The
sessions page drops its refusal, and the layout stops keeping them on the docked
chat.

In the sidebar they now get the Workspace/AI Sessions switch and session mode, and
lose the Ask AI entry that stood in for them, since the pane behind it is no longer
the one they are sent to.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* feat: operators get run-oriented examples in the home composer

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs: note builder_flows in the operator composer examples comment

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: gate session tools and editors on operator rights

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: keep operator AI sessions behind a browser opt-in

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: keep flows refused in the prompt for operators without builder rights

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* refactor: decide every frontend edit check through one editRights module

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: let admins who are also operators open session editors, as drafts.rs does

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: let operators with manage rights save schedule and trigger drafts

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: keep rebase_draft from operators who can only draft schedules and triggers

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: let operators save resource and variable drafts

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: name deploy and delete tools only where a kind is left to act on

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: list an operator's draft-only resources and variables while they may draft them

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-15 16:43:11 +02:00
64e1630d49 fix: let Teams handlers post with job tokens again (#11792)
* fix: let job tokens post Teams messages to their own workspace's team

* chore: point ee-repo-ref at the Teams job-token check

* chore: update ee-repo-ref to 3b6bd2b15d9bddb0bb8f1de08b30b897db0415b4

This commit updates the EE repository reference after PR #885 was merged in windmill-ee-private.

Previous ee-repo-ref: e8e4bcd63d6fc804d29e67d42ca6d4163b144a33

New ee-repo-ref: 3b6bd2b15d9bddb0bb8f1de08b30b897db0415b4

Automated by sync-ee-ref workflow.

---------

Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2026-10-15 16:41:21 +02:00
3ce2f653c9 count homepage ai session hero removals and re-pins (#11781)
* feat: count homepage ai session hero removals and re-pins

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore: update ee-repo-ref to 0253ffdd6c0b0f1ba162a43d19aed56bc7bd7a71

This commit updates the EE repository reference after PR #882 was merged in windmill-ee-private.

Previous ee-repo-ref: a5d4fd2b21ffd0a6ced604c34d39a5747d9ea940

New ee-repo-ref: 0253ffdd6c0b0f1ba162a43d19aed56bc7bd7a71

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2026-10-15 16:38:56 +02:00
GuilhemandClaude Opus 5.5 3bee9c9401 fix: show the app's summary in the app viewer's page header (#11782)
The viewer registered its header item with the path only, so a deployed app's
summary never reached the band. It is read from the lite app endpoint the viewer
already calls, which also covers sandboxed low-code apps whose content loads in
an iframe.

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 16:36:38 +02:00
GuilhemandClaude Opus 5.5 6d76781d4e drop the breadcrumb navigation picker on sessions (#11793)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 16:31:49 +02:00