Diego Imbert
3fdb3047a7
Merge commit '5dfb2f30f74cedaae9f113383e42d3a35cde5189' into HEAD
...
# Conflicts:
# backend/ee-repo-ref.txt
# backend/windmill-common/src/datatable_roles.rs
2026-09-17 18:23:38 +02:00
Diego Imbert
5dfb2f30f7
Merge commit '76a10f8ee8' into HEAD
...
# Conflicts:
# backend/ee-repo-ref.txt
# backend/windmill-common/src/lib.rs
2026-09-17 18:22:16 +02:00
Diego Imbert
76a10f8ee8
Merge commit 'c9e2246e1c2480135884c9b3dcace11da0907dba' into HEAD
...
# Conflicts:
# backend/windmill-api-workspaces/src/workspaces.rs
# backend/windmill-api-workspaces/src/workspaces_extra.rs
2026-09-17 18:21:18 +02:00
Diego Imbert
c9e2246e1c
Merge remote-tracking branch 'origin/fork-database-authorization' into HEAD
2026-09-17 18:17:06 +02:00
Diego Imbert and Claude Opus 5
b68768084e
fix(datatables): bind fork database copies to their workspace, and count every use before dropping one
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 18:16:48 +02:00
Diego Imbert
4a0d7c0c29
Merge commit 'd62807e9edc553b1eb08c10ce28521a71007a263' into HEAD
2026-09-17 18:04:22 +02:00
Diego Imbert and Claude Opus 5
d62807e9ed
fix(datatables): stop counting storage-only fork cleanup rows as uses of an external database
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 18:04:19 +02:00
Diego Imbert and Claude Opus 5
48f026eb0f
fix(datatables): refuse rolling back while external data tables are under roles, and type external_instance in the CLI
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 16:35:45 +02:00
Diego Imbert
0e659898f3
Merge commit 'a296ca016a' into HEAD
...
# Conflicts:
# backend/ee-repo-ref.txt
2026-09-17 16:35:45 +02:00
Diego Imbert
a296ca016a
Merge commit '7c16d482fd' into HEAD
...
# Conflicts:
# backend/ee-repo-ref.txt
2026-09-17 16:34:50 +02:00
Diego Imbert and Claude Opus 5
7c16d482fd
fix(datatables): refuse fork cleanup of an external database another workspace uses
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 16:34:14 +02:00
Diego Imbert
c55ff3141c
Merge commit '5eec203099ba1034039f8b52e81400078cac919d' into HEAD
2026-09-17 16:17:18 +02:00
Diego Imbert and Claude Opus 5
5eec203099
fix(datatables): keep certificate verification when DuckDB attaches an external data table
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 16:17:15 +02:00
Diego Imbert and Claude Opus 5
0b3882f2b2
fix(datatables): keep certificate verification when DuckDB attaches an external data table
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 16:17:02 +02:00
Diego Imbert
58731b1828
Merge commit '53d62dd399' into HEAD
...
# Conflicts:
# backend/ee-repo-ref.txt
2026-09-17 16:17:02 +02:00
Diego Imbert and Claude Opus 5
53d62dd399
fix(datatables): register external fork catalogs under the lifecycle lock, and keep certificate verification in DuckDB attaches
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 16:07:40 +02:00
Diego Imbert
e17b76c255
Merge commit '5ddaee5b78' into HEAD
...
# Conflicts:
# backend/ee-repo-ref.txt
2026-09-17 16:07:40 +02:00
Diego Imbert and Claude Opus 5
5ddaee5b78
fix(datatables): write the external cluster setting under the lifecycle lock, and check fork targets are registered
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 16:04:18 +02:00
Diego Imbert and Claude Opus 5
0406f133c5
feat(datatables): per-cluster data table role catalogs, with roles on the external instance cluster
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 15:59:22 +02:00
Diego Imbert and Claude Opus 5
b62d8b246a
fix(datatables): protect external databases pending fork cleanup, and describe Ducklake usage in the API
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 15:30:25 +02:00
Diego Imbert and Claude Opus 5
3981b2eb1b
fix(datatables): refuse repointing the external cluster while it is in use, and keep verify-ca working for pg_dump
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 15:28:31 +02:00
Diego Imbert
5bc2f13565
Merge commit '3981b2eb1b3bf77cdc1a5cbf43090e6b9706aa1f' into datatable-external-instance-3
2026-09-17 15:28:31 +02:00
Diego Imbert
a928253af0
Merge remote-tracking branch 'origin/datatable-roles-redesign-part-2' into datatable-roles-redesign-part-4
...
# Conflicts:
# backend/windmill-common/src/workspaces.rs
2026-09-17 15:22:45 +02:00
Diego Imbert
5d8f031cf6
Merge branch 'datatable-roles-redesign' into datatable-roles-redesign-part-2
2026-09-17 15:22:26 +02:00
Diego Imbert and Claude Opus 5
8a7f364cfe
fix(datatables): hold the parent's settings while a fork points at its data tables
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 13:29:35 +02:00
Diego Imbert and Claude Opus 5
ee176e24d5
perf(datatables): resolve a workspace's data tables per pointer hop, not per entry
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 13:04:26 +02:00
Diego Imbert and Claude Opus 5
4bdc5a9e20
fix(datatables): drop a DuckDB data table secret once its ATTACH has used it
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 12:17:30 +02:00
Diego Imbert
0c53990d18
Merge commit '9b0046d8671697e6f6568c89170052367139d157' into datatable-external-instance-3
...
# Conflicts:
# backend/ee-repo-ref.txt
# backend/windmill-common/src/external_instance_pg.rs
2026-09-17 11:50:21 +02:00
Diego Imbert and Claude Opus 5
9b0046d867
docs(datatables): state the authorization contract of external database usage lookups
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 11:50:10 +02:00
Diego Imbert
1f78ce77f5
Merge commit 'dbe0230f483bbe10aeca055c4d39506fea41459d' into HEAD
...
# Conflicts:
# backend/ee-repo-ref.txt
2026-09-17 11:50:00 +02:00
Diego Imbert and Claude Opus 5
dbe0230f48
fix(datatables): never grant CREATEROLE to custom_instance_user on the external cluster
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 11:49:20 +02:00
Diego Imbert and Claude Opus 5
67f488c676
feat(datatables): Ducklake catalogs on the external instance cluster
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 11:47:25 +02:00
Diego Imbert
ced4913b33
Merge commit 'b3a3f1cf5a0e6f97af2679c8abf640c6b832d7db' into datatable-external-instance-2
...
# Conflicts:
# backend/ee-repo-ref.txt
2026-09-17 11:34:32 +02:00
Diego Imbert
b3a3f1cf5a
Merge remote-tracking branch 'origin/datatable-roles-redesign-part-4' into HEAD
...
# Conflicts:
# backend/ee-repo-ref.txt
2026-09-17 11:34:28 +02:00
Diego Imbert
92e51f19aa
Merge remote-tracking branch 'origin/datatable-roles-redesign-part-2' into datatable-roles-redesign-part-4
...
# Conflicts:
# backend/ee-repo-ref.txt
# backend/windmill-api-integration-tests/tests/datatable_roles.rs
# backend/windmill-api-workspaces/src/datatable_permissions_oss.rs
# backend/windmill-api-workspaces/src/workspaces.rs
# backend/windmill-common/src/datatable_roles_oss.rs
# backend/windmill-common/src/workspaces.rs
# frontend/src/lib/components/datatableAcl/PgAclEditor.svelte
# frontend/src/lib/components/workspaceSettings/DataTablePermissionsButton.svelte
# frontend/src/lib/components/workspaceSettings/DataTableRolesSection.svelte
# frontend/src/lib/components/workspaceSettings/DataTableSettings.svelte
# frontend/src/lib/components/workspaceSettings/InstanceRolesButton.svelte
2026-09-17 10:03:05 +02:00
Diego Imbert and Claude Opus 5
36532c35d8
fix: check ACL read reach against the entry it connects from
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BRoYE5ZeAVvrDYdfhDAYXb
2026-09-17 10:01:19 +02:00
Diego Imbert and Claude Opus 5
79481a2f02
fix: build the ACL connection from the authorized data table entry
...
Resolving the settings again could land on a resource with the same
database name on another server, which the later entry checks never see.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BRoYE5ZeAVvrDYdfhDAYXb
2026-09-17 10:01:19 +02:00
Diego Imbert and Claude Opus 5
c884597e56
fix: hold the ACL connection to the database that was authorized
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BRoYE5ZeAVvrDYdfhDAYXb
2026-09-17 10:01:19 +02:00
Diego Imbert and Claude Opus 5
115448d3d1
fix: run one data table ACL apply at a time per server before it connects
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BRoYE5ZeAVvrDYdfhDAYXb
2026-09-17 10:01:19 +02:00
Diego Imbert and Claude Opus 5
1ece278fd2
fix: add only missing grant options before an ACL apply, never default privileges
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BRoYE5ZeAVvrDYdfhDAYXb
2026-09-17 10:01:19 +02:00
Diego Imbert and Claude Opus 5
7819d48df9
fix: refresh grant options only after the ACL apply validates its plan
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BRoYE5ZeAVvrDYdfhDAYXb
2026-09-17 10:01:19 +02:00
Diego Imbert and Claude Opus 5
ce1f720d85
fix: take every pooled connection before the ACL apply locks
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BRoYE5ZeAVvrDYdfhDAYXb
2026-09-17 10:01:19 +02:00
Diego Imbert and Claude Opus 5
93d346e54b
feat(datatables): add an ACL editor for data table roles
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 10:01:19 +02:00
Diego Imbert and Claude Opus 5
9378828472
docs(datatables): note that legacy names with ? cannot be migrated
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 10:01:15 +02:00
Diego Imbert and Claude Opus 5
79bb761c5d
fix(datatables): serialize roles going on with aliases saved from other workspaces
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 10:01:15 +02:00
Diego Imbert and Claude Opus 5
d191cfe4eb
fix(datatables): let CE migrations connect as an explicitly named admin
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 10:01:15 +02:00
Diego Imbert and Claude Opus 5
31b5b0a062
fix(datatables): refuse roles while a same-workspace alias reaches the database
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-17 10:01:15 +02:00
windmill-internal-app[bot]
d1c2f801f4
chore: update ee-repo-ref to a1873dbb67f2302b85ff5362f8387b48eccdb607
...
This commit updates the EE repository reference after PR #783 was merged in windmill-ee-private.
Previous ee-repo-ref: 5c853e2c20eca6b748415fc0d6862a6ebfb5fec4
New ee-repo-ref: a1873dbb67f2302b85ff5362f8387b48eccdb607
Automated by sync-ee-ref workflow.
2026-09-17 10:01:15 +02:00
Diego Imbert and Claude Opus 5
d3ee67c9bc
test(datatables): run the tenant matcher test on the enterprise edition
...
The matcher it covers is enterprise code now, so without the enterprise
edition the test hit the stub and failed the default windmill-common run. It
runs with private and enterprise, and a counterpart without them asserts that
no tenant list covers anyone, the wildcard and a workspace admin included.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BjfMkJyKzodxkobqGZ6Lqb
2026-09-17 10:01:15 +02:00
Diego Imbert and Claude Opus 5
eafc551651
feat(datatables): gate the roles UI mount sites on an enterprise license
...
Both mount sites are still commented out; the gate travels with them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BjfMkJyKzodxkobqGZ6Lqb
2026-09-17 10:01:15 +02:00