mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
feat(core): Change workflow deletions to soft deletes (#14894)
Adds soft‑deletion support for workflows through a new boolean column `isArchived`. When a workflow is archived we now set `isArchived` flag to true and the workflows stays in the database and is omitted from the default workflow listing query. Archived workflows can be viewed in read-only mode, but they cannot be activated. Archived workflows are still available by ID and can be invoked as sub-executions, so existing Execute Workflow nodes continue to work. Execution engine doesn't care about isArchived flag. Users can restore workflows via Unarchive action at the UI.
This commit is contained in:
@@ -258,7 +258,8 @@ const isCanvasReadOnly = computed(() => {
|
||||
return (
|
||||
isDemoRoute.value ||
|
||||
isReadOnlyEnvironment.value ||
|
||||
!(workflowPermissions.value.update ?? projectPermissions.value.workflow.update)
|
||||
!(workflowPermissions.value.update ?? projectPermissions.value.workflow.update) ||
|
||||
editableWorkflow.value.isArchived
|
||||
);
|
||||
});
|
||||
|
||||
@@ -759,8 +760,9 @@ function onPinNodes(ids: string[], source: PinDataSource) {
|
||||
|
||||
async function onSaveWorkflow() {
|
||||
const workflowIsSaved = !uiStore.stateIsDirty;
|
||||
const workflowIsArchived = workflowsStore.workflow.isArchived;
|
||||
|
||||
if (workflowIsSaved) {
|
||||
if (workflowIsSaved || workflowIsArchived) {
|
||||
return;
|
||||
}
|
||||
const saved = await workflowHelpers.saveCurrentWorkflow();
|
||||
|
||||
Reference in New Issue
Block a user