From 643eeb41cbff81d58ef3502b34a15f6c4697ec4a Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Fri, 13 Mar 2026 21:08:59 +0100 Subject: [PATCH] Revert "Disable forking for resource datatables" This reverts commit 9561cc8fd4564586e7dfe6c2edd9bb32ec2993b1. --- .../windmill-api-workspaces/src/workspaces.rs | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/backend/windmill-api-workspaces/src/workspaces.rs b/backend/windmill-api-workspaces/src/workspaces.rs index 857a255385..363fc6af1b 100644 --- a/backend/windmill-api-workspaces/src/workspaces.rs +++ b/backend/windmill-api-workspaces/src/workspaces.rs @@ -1645,9 +1645,7 @@ async fn fork_all_datatables( datatable_behaviors: &Option>, ) -> Result<()> { if !target_workspace_id.starts_with("wm-fork") { - return Err(Error::BadRequest( - "Target workspace is not a fork".to_string(), - )); + return Err(Error::BadRequest("Target workspace is not a fork".to_string())); } let datatable_config = sqlx::query_scalar!( "SELECT datatable FROM workspace_settings WHERE workspace_id = $1", @@ -1665,7 +1663,7 @@ async fn fork_all_datatables( None => return Ok(()), }; - for (name, dt) in &datatables { + for (name, _dt) in &datatables { let behavior = datatable_behaviors .as_ref() .and_then(|m| m.get(name).copied()) @@ -1675,21 +1673,12 @@ async fn fork_all_datatables( continue; } - // Resource-type datatables cannot be forked (would require creating an instance DB - // from an external resource). Skip gracefully. - if dt.database.resource_type != DataTableCatalogResourceType::Instance { - tracing::warn!( - "Skipping fork of datatable '{}' in '{}': resource type '{}' is not supported for forking", - name, - source_workspace_id, - dt.database.resource_type.as_ref() - ); - continue; - } - let include_data = behavior == DataTableForkBehavior::SchemaAndData && !*CLOUD_HOSTED; - let new_db_name = format!("{}__$current_name", target_workspace_id.replace('-', "_")); + let new_db_name = format!( + "{}__$current_name", + target_workspace_id.replace('-', "_") + ); if let Err(e) = fork_datatable( db, target_workspace_id,