n8nac 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/commands/base.d.ts +39 -0
- package/dist/commands/base.d.ts.map +1 -1
- package/dist/commands/base.js +84 -36
- package/dist/commands/base.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +2 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +28 -6
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +2 -2
- package/dist/commands/test.js.map +1 -1
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/services/folder-path-resolver.d.ts +51 -0
- package/dist/core/services/folder-path-resolver.d.ts.map +1 -0
- package/dist/core/services/folder-path-resolver.js +123 -0
- package/dist/core/services/folder-path-resolver.js.map +1 -0
- package/dist/core/services/n8n-api-client.d.ts +53 -1
- package/dist/core/services/n8n-api-client.d.ts.map +1 -1
- package/dist/core/services/n8n-api-client.js +184 -2
- package/dist/core/services/n8n-api-client.js.map +1 -1
- package/dist/core/services/resolution-manager.d.ts.map +1 -1
- package/dist/core/services/resolution-manager.js +4 -4
- package/dist/core/services/resolution-manager.js.map +1 -1
- package/dist/core/services/state-manager.d.ts +1 -1
- package/dist/core/services/state-manager.d.ts.map +1 -1
- package/dist/core/services/sync-engine.d.ts +48 -1
- package/dist/core/services/sync-engine.d.ts.map +1 -1
- package/dist/core/services/sync-engine.js +200 -6
- package/dist/core/services/sync-engine.js.map +1 -1
- package/dist/core/services/sync-manager.d.ts.map +1 -1
- package/dist/core/services/sync-manager.js +10 -8
- package/dist/core/services/sync-manager.js.map +1 -1
- package/dist/core/services/tls-certificates.d.ts +105 -0
- package/dist/core/services/tls-certificates.d.ts.map +1 -0
- package/dist/core/services/tls-certificates.js +329 -0
- package/dist/core/services/tls-certificates.js.map +1 -0
- package/dist/core/services/workflow-path-utils.d.ts +56 -0
- package/dist/core/services/workflow-path-utils.d.ts.map +1 -0
- package/dist/core/services/workflow-path-utils.js +102 -0
- package/dist/core/services/workflow-path-utils.js.map +1 -0
- package/dist/core/services/workflow-state-tracker.d.ts +56 -0
- package/dist/core/services/workflow-state-tracker.d.ts.map +1 -1
- package/dist/core/services/workflow-state-tracker.js +225 -32
- package/dist/core/services/workflow-state-tracker.js.map +1 -1
- package/dist/core/services/workflow-transformer-adapter.d.ts +7 -1
- package/dist/core/services/workflow-transformer-adapter.d.ts.map +1 -1
- package/dist/core/services/workflow-transformer-adapter.js +8 -2
- package/dist/core/services/workflow-transformer-adapter.js.map +1 -1
- package/dist/core/types.d.ts +84 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.js +46 -10
- package/dist/index.js.map +1 -1
- package/dist/services/config-service.d.ts +33 -6
- package/dist/services/config-service.d.ts.map +1 -1
- package/dist/services/config-service.js +54 -3
- package/dist/services/config-service.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,6 +4,8 @@ import EventEmitter from 'events';
|
|
|
4
4
|
import { WorkflowTransformerAdapter } from './workflow-transformer-adapter.js';
|
|
5
5
|
import { HashUtils } from './hash-utils.js';
|
|
6
6
|
import { WorkflowSyncStatus } from '../types.js';
|
|
7
|
+
import { FolderPathResolver, sanitizePathSegment } from './folder-path-resolver.js';
|
|
8
|
+
import { listWorkflowFilesRecursive, normalizeWorkflowRelativePath, workflowRelativePathToAbsolute } from './workflow-path-utils.js';
|
|
7
9
|
const WINDOWS_RESERVED_FILENAMES = new Set([
|
|
8
10
|
'CON',
|
|
9
11
|
'PRN',
|
|
@@ -48,6 +50,8 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
48
50
|
ignoredTags;
|
|
49
51
|
projectId;
|
|
50
52
|
stateFilePath;
|
|
53
|
+
folderSync;
|
|
54
|
+
warnedFolderMetadataUnavailable = false;
|
|
51
55
|
isConnected = true;
|
|
52
56
|
/** True during the first refreshRemoteState() call — suppresses status broadcasts */
|
|
53
57
|
isInitialRemoteLoad = false;
|
|
@@ -66,6 +70,8 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
66
70
|
remoteActive = new Map(); // workflowId -> active
|
|
67
71
|
/** Remote archived flag per workflow (populated by refreshRemoteState / updateSingleRemoteState). */
|
|
68
72
|
remoteArchived = new Map(); // workflowId -> isArchived
|
|
73
|
+
remoteParentFolderIds = new Map(); // workflowId -> parentFolderId
|
|
74
|
+
remoteFolderPaths = new Map(); // workflowId -> folder path segments
|
|
69
75
|
constructor(client, options) {
|
|
70
76
|
super();
|
|
71
77
|
this.client = client;
|
|
@@ -73,6 +79,7 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
73
79
|
this.syncInactive = options.syncInactive;
|
|
74
80
|
this.ignoredTags = options.ignoredTags;
|
|
75
81
|
this.projectId = options.projectId;
|
|
82
|
+
this.folderSync = options.folderSync ?? false;
|
|
76
83
|
this.stateFilePath = path.join(this.directory, '.n8n-state.json');
|
|
77
84
|
// Restore persisted mappings immediately so 'pull' and other commands can find workflows
|
|
78
85
|
this.restoreMappingsFromState();
|
|
@@ -93,7 +100,7 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
93
100
|
this.localHashes.clear();
|
|
94
101
|
return;
|
|
95
102
|
}
|
|
96
|
-
const files =
|
|
103
|
+
const files = listWorkflowFilesRecursive(this.directory);
|
|
97
104
|
const currentFiles = new Set(files);
|
|
98
105
|
// Remove entries for files that no longer exist
|
|
99
106
|
for (const filename of this.localHashes.keys()) {
|
|
@@ -110,7 +117,7 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
110
117
|
const fileContents = [];
|
|
111
118
|
const newlyTracked = [];
|
|
112
119
|
for (const filename of files) {
|
|
113
|
-
const filePath =
|
|
120
|
+
const filePath = workflowRelativePathToAbsolute(this.directory, filename);
|
|
114
121
|
const content = this.readJsonFile(filePath); // Quick ID extraction
|
|
115
122
|
if (content) {
|
|
116
123
|
fileContents.push({ filename, content });
|
|
@@ -241,6 +248,10 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
241
248
|
this.remoteNames.clear();
|
|
242
249
|
this.remoteActive.clear();
|
|
243
250
|
this.remoteArchived.clear();
|
|
251
|
+
this.remoteParentFolderIds.clear();
|
|
252
|
+
this.remoteFolderPaths.clear();
|
|
253
|
+
const folderResolver = await this.createFolderResolver(remoteWorkflows);
|
|
254
|
+
const state = this.loadState();
|
|
244
255
|
// Build set of already-assigned filenames to prevent collisions
|
|
245
256
|
const assignedFilenames = new Set();
|
|
246
257
|
for (const wf of remoteWorkflows) {
|
|
@@ -253,8 +264,29 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
253
264
|
// Store active and archived flags from API
|
|
254
265
|
this.remoteActive.set(wf.id, wf.active === true);
|
|
255
266
|
this.remoteArchived.set(wf.id, wf.isArchived === true);
|
|
267
|
+
// Cache remote updatedAt for cheap drift detection in getLightweightList.
|
|
268
|
+
// The lightweight `list` path cannot afford a per-workflow hash compare,
|
|
269
|
+
// but `updatedAt` (already returned by /api/v1/workflows) is enough to
|
|
270
|
+
// detect "remote changed since last sync" without an extra API call.
|
|
271
|
+
if (wf.updatedAt)
|
|
272
|
+
this.remoteTimestamps.set(wf.id, wf.updatedAt);
|
|
273
|
+
const parentFolderId = wf.parentFolderId ?? wf.parentFolder?.id ?? null;
|
|
274
|
+
const folderPath = folderResolver ? folderResolver.getPathForWorkflow(wf) : [];
|
|
275
|
+
this.remoteParentFolderIds.set(wf.id, parentFolderId);
|
|
276
|
+
this.remoteFolderPaths.set(wf.id, folderPath);
|
|
256
277
|
// CRITICAL: Use ID-based mapping with PERSISTED state as source of truth
|
|
257
278
|
let filename = this.idToFileMap.get(wf.id);
|
|
279
|
+
if (!filename) {
|
|
280
|
+
const persistedFilename = state.workflows[wf.id]?.filename;
|
|
281
|
+
if (persistedFilename) {
|
|
282
|
+
try {
|
|
283
|
+
filename = normalizeWorkflowRelativePath(persistedFilename);
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
filename = undefined;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
258
290
|
// If no valid mapping, scan local files to discover/rediscover the workflow
|
|
259
291
|
if (!filename) {
|
|
260
292
|
filename = this.findFilenameByWorkflowId(wf.id);
|
|
@@ -265,12 +297,12 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
265
297
|
}
|
|
266
298
|
// If still not found, this is a NEW remote workflow - generate filename
|
|
267
299
|
if (!filename) {
|
|
268
|
-
const baseName =
|
|
300
|
+
const baseName = this.buildRelativeFilename(wf, folderPath);
|
|
269
301
|
// Check if this base name is already assigned to another workflow
|
|
270
302
|
if (assignedFilenames.has(baseName)) {
|
|
271
303
|
// Name collision - generate unique filename with ID suffix
|
|
272
304
|
const idSuffix = wf.id.substring(0, 8);
|
|
273
|
-
filename =
|
|
305
|
+
filename = this.buildRelativeFilename(wf, folderPath, idSuffix);
|
|
274
306
|
}
|
|
275
307
|
else {
|
|
276
308
|
// Name is free - use it
|
|
@@ -349,9 +381,9 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
349
381
|
// If workflow not tracked yet (first sync of local-only workflow),
|
|
350
382
|
// scan directory to find the file with this ID
|
|
351
383
|
if (!filename) {
|
|
352
|
-
const files =
|
|
384
|
+
const files = listWorkflowFilesRecursive(this.directory);
|
|
353
385
|
for (const file of files) {
|
|
354
|
-
const filePath =
|
|
386
|
+
const filePath = workflowRelativePathToAbsolute(this.directory, file);
|
|
355
387
|
const content = this.readJsonFile(filePath);
|
|
356
388
|
if (content?.id === workflowId) {
|
|
357
389
|
filename = file;
|
|
@@ -366,7 +398,7 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
366
398
|
}
|
|
367
399
|
}
|
|
368
400
|
// Get current reality
|
|
369
|
-
const filePath =
|
|
401
|
+
const filePath = workflowRelativePathToAbsolute(this.directory, filename);
|
|
370
402
|
const content = this.readJsonFile(filePath);
|
|
371
403
|
if (!content) {
|
|
372
404
|
throw new Error(`Cannot finalize sync: local file not found for ${workflowId}`);
|
|
@@ -417,6 +449,8 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
417
449
|
this.remoteNames.delete(id);
|
|
418
450
|
this.remoteActive.delete(id);
|
|
419
451
|
this.remoteArchived.delete(id);
|
|
452
|
+
this.remoteParentFolderIds.delete(id);
|
|
453
|
+
this.remoteFolderPaths.delete(id);
|
|
420
454
|
this.remoteIds.delete(id);
|
|
421
455
|
}
|
|
422
456
|
/**
|
|
@@ -444,14 +478,21 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
444
478
|
const filename = workflowState?.filename;
|
|
445
479
|
if (!filename)
|
|
446
480
|
continue;
|
|
447
|
-
|
|
481
|
+
let normalizedFilename;
|
|
482
|
+
try {
|
|
483
|
+
normalizedFilename = normalizeWorkflowRelativePath(filename);
|
|
484
|
+
}
|
|
485
|
+
catch {
|
|
486
|
+
continue;
|
|
487
|
+
}
|
|
488
|
+
const filePath = workflowRelativePathToAbsolute(this.directory, normalizedFilename);
|
|
448
489
|
if (!fs.existsSync(filePath))
|
|
449
490
|
continue;
|
|
450
491
|
if (!this.idToFileMap.has(workflowId)) {
|
|
451
|
-
this.idToFileMap.set(workflowId,
|
|
492
|
+
this.idToFileMap.set(workflowId, normalizedFilename);
|
|
452
493
|
}
|
|
453
|
-
if (!this.fileToIdMap.has(
|
|
454
|
-
this.fileToIdMap.set(
|
|
494
|
+
if (!this.fileToIdMap.has(normalizedFilename)) {
|
|
495
|
+
this.fileToIdMap.set(normalizedFilename, workflowId);
|
|
455
496
|
}
|
|
456
497
|
}
|
|
457
498
|
}
|
|
@@ -594,6 +635,48 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
594
635
|
}
|
|
595
636
|
return finalName;
|
|
596
637
|
}
|
|
638
|
+
/**
|
|
639
|
+
* Builds the resolver that turns a remote workflow's folder into local path
|
|
640
|
+
* segments — when n8n tells us what that folder is.
|
|
641
|
+
*
|
|
642
|
+
* As of n8n 2.32 it does not: `parentFolderId` is declared `writeOnly` in the
|
|
643
|
+
* public API spec, the read handlers never load the `parentFolder` relation,
|
|
644
|
+
* and no endpoint maps workflows to folders. This holds on every edition,
|
|
645
|
+
* Enterprise included, so pull lays workflows out flat and this returns null.
|
|
646
|
+
*
|
|
647
|
+
* The detection is deliberately based on the payload rather than a version
|
|
648
|
+
* check: the day a workflow read carries folder fields, nested pulls start
|
|
649
|
+
* working with no change here.
|
|
650
|
+
*/
|
|
651
|
+
async createFolderResolver(remoteWorkflows) {
|
|
652
|
+
if (!this.folderSync)
|
|
653
|
+
return null;
|
|
654
|
+
const hasWorkflowFolderFields = remoteWorkflows.some((workflow) => workflow.parentFolderId !== undefined || workflow.parentFolder?.id);
|
|
655
|
+
if (!hasWorkflowFolderFields || typeof this.client.getFolders !== 'function') {
|
|
656
|
+
this.warnFolderMetadataUnavailable();
|
|
657
|
+
return null;
|
|
658
|
+
}
|
|
659
|
+
try {
|
|
660
|
+
return new FolderPathResolver(await this.client.getFolders(this.projectId));
|
|
661
|
+
}
|
|
662
|
+
catch (error) {
|
|
663
|
+
this.warnFolderMetadataUnavailable(error?.message);
|
|
664
|
+
return null;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
warnFolderMetadataUnavailable(reason) {
|
|
668
|
+
if (this.warnedFolderMetadataUnavailable)
|
|
669
|
+
return;
|
|
670
|
+
this.warnedFolderMetadataUnavailable = true;
|
|
671
|
+
console.warn(`[WorkflowStateTracker] folderSync is enabled, but n8n's public API does not report which folder a workflow is in${reason ? ` (${reason})` : ''}. ` +
|
|
672
|
+
`Pull keeps workflows flat; push still mirrors your local folders onto n8n.`);
|
|
673
|
+
}
|
|
674
|
+
buildRelativeFilename(workflow, folderPath = [], idSuffix) {
|
|
675
|
+
const baseName = `${this.safeName(workflow.name)}${idSuffix ? `_${idSuffix}` : ''}.workflow.ts`;
|
|
676
|
+
if (!this.folderSync || folderPath.length === 0)
|
|
677
|
+
return baseName;
|
|
678
|
+
return normalizeWorkflowRelativePath([...folderPath.map(sanitizePathSegment), baseName].join('/'));
|
|
679
|
+
}
|
|
597
680
|
/**
|
|
598
681
|
* Find local file that contains a specific workflow ID
|
|
599
682
|
* Used when we have an ID but no filename mapping yet (e.g., after file rename)
|
|
@@ -602,10 +685,9 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
602
685
|
if (!fs.existsSync(this.directory)) {
|
|
603
686
|
return undefined;
|
|
604
687
|
}
|
|
605
|
-
const files =
|
|
606
|
-
.filter(f => f.endsWith('.workflow.ts') && !f.startsWith('.'));
|
|
688
|
+
const files = listWorkflowFilesRecursive(this.directory);
|
|
607
689
|
for (const file of files) {
|
|
608
|
-
const content = this.readJsonFile(
|
|
690
|
+
const content = this.readJsonFile(workflowRelativePathToAbsolute(this.directory, file));
|
|
609
691
|
if (content?.id === workflowId) {
|
|
610
692
|
return file;
|
|
611
693
|
}
|
|
@@ -738,8 +820,15 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
738
820
|
// For local-only files, extract the name from the @workflow decorator for an accurate display.
|
|
739
821
|
// Fall back to filename-derived name as last resort.
|
|
740
822
|
const workflowName = (workflowId && this.remoteNames.get(workflowId))
|
|
741
|
-
|| this.readJsonFile(
|
|
823
|
+
|| this.readJsonFile(workflowRelativePathToAbsolute(this.directory, filename))?.name
|
|
742
824
|
|| filename.replace('.workflow.ts', '');
|
|
825
|
+
// Cheap drift signal: only computed when both reference state and the
|
|
826
|
+
// remote `updatedAt` from this refresh are available. See computeDrift().
|
|
827
|
+
// `remoteKnown` already implies `workflowId` is defined (see above), so the
|
|
828
|
+
// non-null assertion is safe and keeps this branch narrow.
|
|
829
|
+
const drift = remoteKnown && workflowId
|
|
830
|
+
? this.computeDrift(filename, workflowId, state, this.remoteTimestamps.get(workflowId))
|
|
831
|
+
: undefined;
|
|
743
832
|
results.set(filename, {
|
|
744
833
|
id: workflowId || '',
|
|
745
834
|
name: workflowName,
|
|
@@ -749,7 +838,13 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
749
838
|
projectId: undefined, // Not available in lightweight mode
|
|
750
839
|
projectName: undefined, // Not available in lightweight mode
|
|
751
840
|
homeProject: undefined, // Not available in lightweight mode
|
|
752
|
-
isArchived
|
|
841
|
+
isArchived,
|
|
842
|
+
drift,
|
|
843
|
+
lastSyncedAt: workflowId ? state.workflows[workflowId]?.lastSyncedAt : undefined,
|
|
844
|
+
remoteUpdatedAt: workflowId ? this.remoteTimestamps.get(workflowId) : undefined,
|
|
845
|
+
parentFolderId: workflowId ? this.remoteParentFolderIds.get(workflowId) : undefined,
|
|
846
|
+
folderPath: workflowId ? this.remoteFolderPaths.get(workflowId) : undefined,
|
|
847
|
+
folderPathString: workflowId ? this.remoteFolderPaths.get(workflowId)?.join('/') : undefined,
|
|
753
848
|
});
|
|
754
849
|
}
|
|
755
850
|
// 2. Process all remote workflows not yet in results
|
|
@@ -777,29 +872,90 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
777
872
|
projectId: undefined, // Not available in lightweight mode
|
|
778
873
|
projectName: undefined, // Not available in lightweight mode
|
|
779
874
|
homeProject: undefined, // Not available in lightweight mode
|
|
780
|
-
isArchived
|
|
875
|
+
isArchived,
|
|
876
|
+
parentFolderId: this.remoteParentFolderIds.get(workflowId),
|
|
877
|
+
folderPath: this.remoteFolderPaths.get(workflowId),
|
|
878
|
+
folderPathString: this.remoteFolderPaths.get(workflowId)?.join('/'),
|
|
781
879
|
});
|
|
782
880
|
}
|
|
783
881
|
}
|
|
784
882
|
return Array.from(results.values());
|
|
785
883
|
}
|
|
884
|
+
/**
|
|
885
|
+
* Cheap drift computation for the lightweight `list` path.
|
|
886
|
+
*
|
|
887
|
+
* Single source of truth (SSOT) for the "did either side change since last sync?"
|
|
888
|
+
* question when a remote hash is not yet cached (i.e. before `n8nac fetch <id>`
|
|
889
|
+
* runs the expensive per-workflow hash roundtrip).
|
|
890
|
+
*
|
|
891
|
+
* Returns `undefined` when there is no reference state for the workflow
|
|
892
|
+
* (never pulled / first sync), so consumers can distinguish "no drift known"
|
|
893
|
+
* from "drift checked and nothing changed". Within the returned object each
|
|
894
|
+
* axis is likewise `undefined` when its input is missing, so an absent axis
|
|
895
|
+
* reads as "unknown" and never as "unchanged".
|
|
896
|
+
*
|
|
897
|
+
* Cost: O(1) Map lookups, one string compare and one timestamp parse. No AST,
|
|
898
|
+
* no I/O, no extra API calls.
|
|
899
|
+
* The data sources are already populated by the existing lightweight refresh:
|
|
900
|
+
* - `localHashes[filename]` - populated by `refreshLocalState`
|
|
901
|
+
* - `state.workflows[id]` - read from `.n8n-state.json`
|
|
902
|
+
* - `remoteTimestamp` - returned by `/api/v1/workflows` (now cached by
|
|
903
|
+
* `refreshRemoteState` into `remoteTimestamps`)
|
|
904
|
+
*/
|
|
905
|
+
computeDrift(filename, workflowId, state, remoteTimestamp) {
|
|
906
|
+
const baseState = state.workflows[workflowId];
|
|
907
|
+
const lastSyncedHash = baseState?.lastSyncedHash;
|
|
908
|
+
const lastSyncedAt = baseState?.lastSyncedAt;
|
|
909
|
+
if (!lastSyncedHash || !lastSyncedAt)
|
|
910
|
+
return undefined;
|
|
911
|
+
const localHash = this.localHashes.get(filename);
|
|
912
|
+
return {
|
|
913
|
+
// `undefined` when the file has no entry in localHashes, i.e. it could not
|
|
914
|
+
// be hashed during the local scan (refreshLocalState skips files that fail
|
|
915
|
+
// to parse). Reporting `false` there would claim "matches the last sync"
|
|
916
|
+
// for a file we never actually read.
|
|
917
|
+
local: localHash === undefined ? undefined : localHash !== lastSyncedHash,
|
|
918
|
+
// `undefined` when the instance returned no `updatedAt`: with nothing to
|
|
919
|
+
// compare, remote drift can be neither confirmed nor ruled out. Reporting
|
|
920
|
+
// `false` here would repeat, on the remote axis, the false "everything is
|
|
921
|
+
// aligned" this signal exists to prevent.
|
|
922
|
+
remote: remoteTimestamp === undefined ? undefined : this.isNewerThan(remoteTimestamp, lastSyncedAt),
|
|
923
|
+
};
|
|
924
|
+
}
|
|
925
|
+
/**
|
|
926
|
+
* True when the remote `updatedAt` is strictly newer than the recorded `lastSyncedAt`.
|
|
927
|
+
*
|
|
928
|
+
* `lastSyncedAt` is normally a verbatim copy of the remote `updatedAt` (see
|
|
929
|
+
* `updateWorkflowState`), so both sides usually share the same representation and
|
|
930
|
+
* equality means "in sync". They can still diverge in format — the fallback in
|
|
931
|
+
* `updateWorkflowState` writes a client-side `new Date().toISOString()` when the API
|
|
932
|
+
* response carried no `updatedAt`, and n8n instances differ in how they serialise
|
|
933
|
+
* timestamps. A lexical compare across two formats misreports silently (`' '` < `'T'`
|
|
934
|
+
* makes a space-separated timestamp always look older), so compare parsed instants,
|
|
935
|
+
* consistent with the existing remote-change guard in `sync-engine.ts`.
|
|
936
|
+
*/
|
|
937
|
+
isNewerThan(remote, base) {
|
|
938
|
+
const remoteMs = Date.parse(remote);
|
|
939
|
+
const baseMs = Date.parse(base);
|
|
940
|
+
if (Number.isNaN(remoteMs) || Number.isNaN(baseMs)) {
|
|
941
|
+
// Unparseable on either side: fall back to an exact-string mismatch. This errs
|
|
942
|
+
// toward reporting drift, which is the safe direction — a missed remote change
|
|
943
|
+
// is the failure this signal exists to prevent.
|
|
944
|
+
return remote !== base;
|
|
945
|
+
}
|
|
946
|
+
return remoteMs > baseMs;
|
|
947
|
+
}
|
|
786
948
|
/**
|
|
787
949
|
* Get list of local workflow filenames (just checks file system, no parsing)
|
|
788
950
|
*/
|
|
789
951
|
getLocalWorkflowFilenames() {
|
|
790
|
-
const filenames = [];
|
|
791
952
|
try {
|
|
792
|
-
|
|
793
|
-
for (const file of files) {
|
|
794
|
-
if (file.endsWith('.workflow.ts')) {
|
|
795
|
-
filenames.push(file);
|
|
796
|
-
}
|
|
797
|
-
}
|
|
953
|
+
return listWorkflowFilesRecursive(this.directory);
|
|
798
954
|
}
|
|
799
955
|
catch (error) {
|
|
800
956
|
console.debug('[WorkflowStateTracker] Failed to read local directory:', error);
|
|
801
957
|
}
|
|
802
|
-
return
|
|
958
|
+
return [];
|
|
803
959
|
}
|
|
804
960
|
async getStatusMatrix() {
|
|
805
961
|
const results = new Map();
|
|
@@ -809,7 +965,7 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
809
965
|
try {
|
|
810
966
|
// Read local workflows
|
|
811
967
|
for (const [filename] of this.localHashes.entries()) {
|
|
812
|
-
const filePath =
|
|
968
|
+
const filePath = workflowRelativePathToAbsolute(this.directory, filename);
|
|
813
969
|
if (fs.existsSync(filePath)) {
|
|
814
970
|
try {
|
|
815
971
|
const workflow = await this.readWorkflowFile(filePath);
|
|
@@ -846,7 +1002,10 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
846
1002
|
projectId: workflow?.projectId,
|
|
847
1003
|
projectName: workflow?.projectName,
|
|
848
1004
|
homeProject: workflow?.homeProject,
|
|
849
|
-
isArchived
|
|
1005
|
+
isArchived,
|
|
1006
|
+
parentFolderId: workflowId ? this.remoteParentFolderIds.get(workflowId) : undefined,
|
|
1007
|
+
folderPath: workflowId ? this.remoteFolderPaths.get(workflowId) : undefined,
|
|
1008
|
+
folderPathString: workflowId ? this.remoteFolderPaths.get(workflowId)?.join('/') : undefined,
|
|
850
1009
|
});
|
|
851
1010
|
}
|
|
852
1011
|
// 2. Process all remote workflows not yet in results
|
|
@@ -868,7 +1027,10 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
868
1027
|
projectId: workflow?.projectId,
|
|
869
1028
|
projectName: workflow?.projectName,
|
|
870
1029
|
homeProject: workflow?.homeProject,
|
|
871
|
-
isArchived: workflow?.isArchived ?? false
|
|
1030
|
+
isArchived: workflow?.isArchived ?? false,
|
|
1031
|
+
parentFolderId: this.remoteParentFolderIds.get(workflowId),
|
|
1032
|
+
folderPath: this.remoteFolderPaths.get(workflowId),
|
|
1033
|
+
folderPathString: this.remoteFolderPaths.get(workflowId)?.join('/'),
|
|
872
1034
|
});
|
|
873
1035
|
}
|
|
874
1036
|
}
|
|
@@ -891,7 +1053,10 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
891
1053
|
projectId: workflow?.projectId,
|
|
892
1054
|
projectName: workflow?.projectName,
|
|
893
1055
|
homeProject: workflow?.homeProject,
|
|
894
|
-
isArchived: workflow?.isArchived ?? false
|
|
1056
|
+
isArchived: workflow?.isArchived ?? false,
|
|
1057
|
+
parentFolderId: this.remoteParentFolderIds.get(id),
|
|
1058
|
+
folderPath: this.remoteFolderPaths.get(id),
|
|
1059
|
+
folderPathString: this.remoteFolderPaths.get(id)?.join('/'),
|
|
895
1060
|
});
|
|
896
1061
|
}
|
|
897
1062
|
}
|
|
@@ -934,7 +1099,7 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
934
1099
|
const workflows = [];
|
|
935
1100
|
// 1. Get all local workflows
|
|
936
1101
|
for (const [filename, _] of this.localHashes.entries()) {
|
|
937
|
-
const filepath =
|
|
1102
|
+
const filepath = workflowRelativePathToAbsolute(this.directory, filename);
|
|
938
1103
|
try {
|
|
939
1104
|
const workflow = await this.readWorkflowFile(filepath);
|
|
940
1105
|
if (workflow) {
|
|
@@ -997,6 +1162,16 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
997
1162
|
this.remoteNames.delete(oldId);
|
|
998
1163
|
this.remoteNames.set(newId, name);
|
|
999
1164
|
}
|
|
1165
|
+
const parentFolderId = this.remoteParentFolderIds.get(oldId);
|
|
1166
|
+
if (parentFolderId !== undefined) {
|
|
1167
|
+
this.remoteParentFolderIds.delete(oldId);
|
|
1168
|
+
this.remoteParentFolderIds.set(newId, parentFolderId);
|
|
1169
|
+
}
|
|
1170
|
+
const folderPath = this.remoteFolderPaths.get(oldId);
|
|
1171
|
+
if (folderPath) {
|
|
1172
|
+
this.remoteFolderPaths.delete(oldId);
|
|
1173
|
+
this.remoteFolderPaths.set(newId, folderPath);
|
|
1174
|
+
}
|
|
1000
1175
|
// Migrate remote ID set
|
|
1001
1176
|
if (this.remoteIds.has(oldId)) {
|
|
1002
1177
|
this.remoteIds.delete(oldId);
|
|
@@ -1029,15 +1204,33 @@ export class WorkflowStateTracker extends EventEmitter {
|
|
|
1029
1204
|
// Store active and archived flags
|
|
1030
1205
|
this.remoteActive.set(remoteWf.id, remoteWf.active === true);
|
|
1031
1206
|
this.remoteArchived.set(remoteWf.id, remoteWf.isArchived === true);
|
|
1207
|
+
const parentFolderId = remoteWf.parentFolderId ?? remoteWf.parentFolder?.id ?? null;
|
|
1208
|
+
let folderPath = [];
|
|
1209
|
+
if (this.folderSync && parentFolderId && typeof this.client.getFolders === 'function') {
|
|
1210
|
+
try {
|
|
1211
|
+
// Same project-id caveat as the push path: the folder list endpoint
|
|
1212
|
+
// needs a real id, not the `personal` placeholder.
|
|
1213
|
+
const folderProjectId = typeof this.client.resolveFolderProjectId === 'function'
|
|
1214
|
+
? await this.client.resolveFolderProjectId(this.projectId)
|
|
1215
|
+
: this.projectId;
|
|
1216
|
+
const resolver = new FolderPathResolver(await this.client.getFolders(folderProjectId ?? this.projectId));
|
|
1217
|
+
folderPath = resolver.getPathForWorkflow(remoteWf);
|
|
1218
|
+
}
|
|
1219
|
+
catch (error) {
|
|
1220
|
+
this.warnFolderMetadataUnavailable(error?.message);
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
1223
|
+
this.remoteParentFolderIds.set(remoteWf.id, parentFolderId);
|
|
1224
|
+
this.remoteFolderPaths.set(remoteWf.id, folderPath);
|
|
1032
1225
|
// Establish mapping if it doesn't exist yet (allows 'pull' after single 'fetch')
|
|
1033
1226
|
if (!this.idToFileMap.has(remoteWf.id)) {
|
|
1034
1227
|
let filename = this.findFilenameByWorkflowId(remoteWf.id);
|
|
1035
1228
|
if (!filename) {
|
|
1036
|
-
const baseName =
|
|
1229
|
+
const baseName = this.buildRelativeFilename(remoteWf, folderPath);
|
|
1037
1230
|
filename = baseName;
|
|
1038
1231
|
// Simple collision check against existing mappings
|
|
1039
1232
|
if (this.fileToIdMap.has(filename)) {
|
|
1040
|
-
filename =
|
|
1233
|
+
filename = this.buildRelativeFilename(remoteWf, folderPath, remoteWf.id.substring(0, 8));
|
|
1041
1234
|
}
|
|
1042
1235
|
}
|
|
1043
1236
|
this.idToFileMap.set(remoteWf.id, filename);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-state-tracker.js","sourceRoot":"","sources":["../../../src/core/services/workflow-state-tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-state-tracker.js","sourceRoot":"","sources":["../../../src/core/services/workflow-state-tracker.ts"],"names":[],"mappings":"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"}
|