fix: address code review issues for PR #467

- Add 5-minute TTL to version cache (prevents stale data after upgrades)
- Add type validation for version string from settings response
- Support 'v' prefix in version strings (e.g., v1.2.3)
- Fix race condition in getVersion() using promise-based locking
- Fix empty settings regression (Issue #431) - use minimal defaults

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Romuald Członkowski
2025-12-05 12:00:13 +01:00
parent 5057481e70
commit 1524fd5a08
3 changed files with 76 additions and 28 deletions

View File

@@ -181,9 +181,17 @@ export function cleanWorkflowForUpdate(workflow: Workflow): Partial<Workflow> {
filteredSettings[key] = value;
}
}
cleanedWorkflow.settings = filteredSettings;
// If no valid properties remain after filtering, use minimal defaults
// Issue #431: n8n API rejects empty settings objects
if (Object.keys(filteredSettings).length > 0) {
cleanedWorkflow.settings = filteredSettings;
} else {
// Minimal valid settings - executionOrder v1 is the modern default
cleanedWorkflow.settings = { executionOrder: 'v1' as const };
}
} else {
cleanedWorkflow.settings = {};
// No settings provided - use minimal valid defaults
cleanedWorkflow.settings = { executionOrder: 'v1' as const };
}
return cleanedWorkflow;