n8n-core 1.64.0 → 1.65.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.
Files changed (31) hide show
  1. package/dist/InstanceSettings.d.ts +10 -1
  2. package/dist/InstanceSettings.js +62 -3
  3. package/dist/InstanceSettings.js.map +1 -1
  4. package/dist/InstanceSettingsConfig.d.ts +3 -0
  5. package/dist/InstanceSettingsConfig.js +27 -0
  6. package/dist/InstanceSettingsConfig.js.map +1 -0
  7. package/dist/NodeExecuteFunctions.js +14 -0
  8. package/dist/NodeExecuteFunctions.js.map +1 -1
  9. package/dist/PartialExecutionUtils/DirectedGraph.d.ts +6 -0
  10. package/dist/PartialExecutionUtils/DirectedGraph.js +69 -0
  11. package/dist/PartialExecutionUtils/DirectedGraph.js.map +1 -1
  12. package/dist/PartialExecutionUtils/cleanRunData.d.ts +1 -1
  13. package/dist/PartialExecutionUtils/cleanRunData.js.map +1 -1
  14. package/dist/PartialExecutionUtils/findStartNodes.d.ts +1 -1
  15. package/dist/PartialExecutionUtils/findStartNodes.js +1 -1
  16. package/dist/PartialExecutionUtils/findStartNodes.js.map +1 -1
  17. package/dist/PartialExecutionUtils/handleCycles.d.ts +3 -0
  18. package/dist/PartialExecutionUtils/handleCycles.js +50 -0
  19. package/dist/PartialExecutionUtils/handleCycles.js.map +1 -0
  20. package/dist/PartialExecutionUtils/index.d.ts +2 -1
  21. package/dist/PartialExecutionUtils/index.js +5 -3
  22. package/dist/PartialExecutionUtils/index.js.map +1 -1
  23. package/dist/PartialExecutionUtils/recreateNodeExecutionStack.d.ts +1 -1
  24. package/dist/PartialExecutionUtils/recreateNodeExecutionStack.js.map +1 -1
  25. package/dist/WorkflowExecute.js +4 -8
  26. package/dist/WorkflowExecute.js.map +1 -1
  27. package/dist/build.tsbuildinfo +1 -1
  28. package/package.json +3 -2
  29. package/dist/PartialExecutionUtils/findCycles.d.ts +0 -2
  30. package/dist/PartialExecutionUtils/findCycles.js +0 -7
  31. package/dist/PartialExecutionUtils/findCycles.js.map +0 -1
@@ -1,19 +1,25 @@
1
+ import { InstanceSettingsConfig } from './InstanceSettingsConfig';
1
2
  interface WritableSettings {
2
3
  tunnelSubdomain?: string;
3
4
  }
4
5
  type InstanceRole = 'unset' | 'leader' | 'follower';
5
6
  export type InstanceType = 'main' | 'webhook' | 'worker';
6
7
  export declare class InstanceSettings {
8
+ private readonly config;
7
9
  private readonly userHome;
8
10
  readonly n8nFolder: string;
9
11
  readonly staticCacheDir: string;
10
12
  readonly customExtensionDir: string;
11
13
  readonly nodesDownloadDir: string;
12
14
  private readonly settingsFile;
15
+ readonly enforceSettingsFilePermissions: {
16
+ isSet: boolean;
17
+ enforce: boolean;
18
+ };
13
19
  private settings;
14
20
  readonly instanceId: string;
15
21
  readonly instanceType: InstanceType;
16
- constructor();
22
+ constructor(config: InstanceSettingsConfig);
17
23
  instanceRole: InstanceRole;
18
24
  readonly hostId: string;
19
25
  get isLeader(): boolean;
@@ -27,5 +33,8 @@ export declare class InstanceSettings {
27
33
  private loadOrCreate;
28
34
  private generateInstanceId;
29
35
  private save;
36
+ private loadEnforceSettingsFilePermissionsFlag;
37
+ private ensureSettingsFilePermissions;
38
+ private isWindows;
30
39
  }
31
40
  export {};
@@ -19,16 +19,19 @@ const n8n_workflow_1 = require("n8n-workflow");
19
19
  const nanoid_1 = require("nanoid");
20
20
  const path_1 = __importDefault(require("path"));
21
21
  const typedi_1 = require("typedi");
22
+ const InstanceSettingsConfig_1 = require("./InstanceSettingsConfig");
22
23
  const nanoid = (0, nanoid_1.customAlphabet)(n8n_workflow_1.ALPHABET, 16);
23
24
  const inTest = process.env.NODE_ENV === 'test';
24
25
  let InstanceSettings = class InstanceSettings {
25
- constructor() {
26
+ constructor(config) {
27
+ this.config = config;
26
28
  this.userHome = this.getUserHome();
27
29
  this.n8nFolder = path_1.default.join(this.userHome, '.n8n');
28
30
  this.staticCacheDir = path_1.default.join(this.userHome, '.cache/n8n/public');
29
31
  this.customExtensionDir = path_1.default.join(this.n8nFolder, 'custom');
30
32
  this.nodesDownloadDir = path_1.default.join(this.n8nFolder, 'nodes');
31
33
  this.settingsFile = path_1.default.join(this.n8nFolder, 'config');
34
+ this.enforceSettingsFilePermissions = this.loadEnforceSettingsFilePermissionsFlag();
32
35
  this.settings = this.loadOrCreate();
33
36
  this.instanceId = this.generateInstanceId();
34
37
  this.instanceRole = 'unset';
@@ -66,6 +69,7 @@ let InstanceSettings = class InstanceSettings {
66
69
  loadOrCreate() {
67
70
  if ((0, fs_1.existsSync)(this.settingsFile)) {
68
71
  const content = (0, fs_1.readFileSync)(this.settingsFile, 'utf8');
72
+ this.ensureSettingsFilePermissions();
69
73
  const settings = (0, n8n_workflow_1.jsonParse)(content, {
70
74
  errorMessage: `Error parsing n8n-config file "${this.settingsFile}". It does not seem to be valid JSON.`,
71
75
  });
@@ -84,6 +88,7 @@ let InstanceSettings = class InstanceSettings {
84
88
  if (!inTest && !process.env.N8N_ENCRYPTION_KEY) {
85
89
  console.info(`No encryption key found - Auto-generated and saved to: ${this.settingsFile}`);
86
90
  }
91
+ this.ensureSettingsFilePermissions();
87
92
  return settings;
88
93
  }
89
94
  generateInstanceId() {
@@ -94,12 +99,66 @@ let InstanceSettings = class InstanceSettings {
94
99
  }
95
100
  save(settings) {
96
101
  this.settings = settings;
97
- (0, fs_1.writeFileSync)(this.settingsFile, JSON.stringify(settings, null, '\t'), 'utf-8');
102
+ (0, fs_1.writeFileSync)(this.settingsFile, JSON.stringify(this.settings, null, '\t'), {
103
+ mode: this.enforceSettingsFilePermissions.enforce ? 0o600 : undefined,
104
+ encoding: 'utf-8',
105
+ });
106
+ }
107
+ loadEnforceSettingsFilePermissionsFlag() {
108
+ const { enforceSettingsFilePermissions } = this.config;
109
+ const isEnvVarSet = !!process.env.N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS;
110
+ if (this.isWindows()) {
111
+ if (isEnvVarSet) {
112
+ console.warn('Ignoring N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS as it is not supported on Windows.');
113
+ }
114
+ return {
115
+ isSet: isEnvVarSet,
116
+ enforce: false,
117
+ };
118
+ }
119
+ return {
120
+ isSet: isEnvVarSet,
121
+ enforce: enforceSettingsFilePermissions,
122
+ };
123
+ }
124
+ ensureSettingsFilePermissions() {
125
+ if (this.enforceSettingsFilePermissions.isSet && !this.enforceSettingsFilePermissions.enforce) {
126
+ return;
127
+ }
128
+ if (this.isWindows()) {
129
+ return;
130
+ }
131
+ const permissionsResult = (0, n8n_workflow_1.toResult)(() => {
132
+ const stats = (0, fs_1.statSync)(this.settingsFile);
133
+ return stats.mode & 0o777;
134
+ });
135
+ if (!permissionsResult.ok) {
136
+ console.warn(`Could not ensure settings file permissions: ${permissionsResult.error.message}. To skip this check, set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false.`);
137
+ return;
138
+ }
139
+ const arePermissionsCorrect = permissionsResult.result === 0o600;
140
+ if (arePermissionsCorrect) {
141
+ return;
142
+ }
143
+ if (!this.enforceSettingsFilePermissions.isSet) {
144
+ console.warn(`Permissions 0${permissionsResult.result.toString(8)} for n8n settings file ${this.settingsFile} are too wide. This is ignored for now, but in the future n8n will attempt to change the permissions automatically. To automatically enforce correct permissions now set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true (recommended), or turn this check off set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false.`);
145
+ return;
146
+ }
147
+ if (this.enforceSettingsFilePermissions.enforce) {
148
+ console.warn(`Permissions 0${permissionsResult.result.toString(8)} for n8n settings file ${this.settingsFile} are too wide. Changing permissions to 0600..`);
149
+ const chmodResult = (0, n8n_workflow_1.toResult)(() => (0, fs_1.chmodSync)(this.settingsFile, 0o600));
150
+ if (!chmodResult.ok) {
151
+ console.warn(`Could not enforce settings file permissions: ${chmodResult.error.message}. To skip this check, set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false.`);
152
+ }
153
+ }
154
+ }
155
+ isWindows() {
156
+ return process.platform === 'win32';
98
157
  }
99
158
  };
100
159
  exports.InstanceSettings = InstanceSettings;
101
160
  exports.InstanceSettings = InstanceSettings = __decorate([
102
161
  (0, typedi_1.Service)(),
103
- __metadata("design:paramtypes", [])
162
+ __metadata("design:paramtypes", [InstanceSettingsConfig_1.InstanceSettingsConfig])
104
163
  ], InstanceSettings);
105
164
  //# sourceMappingURL=InstanceSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceSettings.js","sourceRoot":"","sources":["../src/InstanceSettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstanceSettings.js","sourceRoot":"","sources":["../src/InstanceSettings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare class InstanceSettingsConfig {
2
+ enforceSettingsFilePermissions: boolean;
3
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.InstanceSettingsConfig = void 0;
13
+ const config_1 = require("@n8n/config");
14
+ let InstanceSettingsConfig = class InstanceSettingsConfig {
15
+ constructor() {
16
+ this.enforceSettingsFilePermissions = false;
17
+ }
18
+ };
19
+ exports.InstanceSettingsConfig = InstanceSettingsConfig;
20
+ __decorate([
21
+ (0, config_1.Env)('N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS'),
22
+ __metadata("design:type", Boolean)
23
+ ], InstanceSettingsConfig.prototype, "enforceSettingsFilePermissions", void 0);
24
+ exports.InstanceSettingsConfig = InstanceSettingsConfig = __decorate([
25
+ config_1.Config
26
+ ], InstanceSettingsConfig);
27
+ //# sourceMappingURL=InstanceSettingsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstanceSettingsConfig.js","sourceRoot":"","sources":["../src/InstanceSettingsConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA0C;AAGnC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAA5B;QAON,mCAA8B,GAAY,KAAK,CAAC;IACjD,CAAC;CAAA,CAAA;AARY,wDAAsB;AAOlC;IADC,IAAA,YAAG,EAAC,uCAAuC,CAAC;;8EACG;iCAPpC,sBAAsB;IADlC,eAAM;GACM,sBAAsB,CAQlC"}
@@ -2658,6 +2658,20 @@ function getExecuteWebhookFunctions(workflow, node, additionalData, mode, webhoo
2658
2658
  return await getInputConnectionData.call(this, workflow, runExecutionData, runIndex, connectionInputData, additionalData, executeData, mode, closeFunctions, inputName, itemIndex);
2659
2659
  },
2660
2660
  getMode: () => mode,
2661
+ evaluateExpression: (expression, evaluateItemIndex) => {
2662
+ const itemIndex = evaluateItemIndex === undefined ? 0 : evaluateItemIndex;
2663
+ const runIndex = 0;
2664
+ let connectionInputData = [];
2665
+ let executionData;
2666
+ if (runExecutionData?.executionData !== undefined) {
2667
+ executionData = runExecutionData.executionData.nodeExecutionStack[0];
2668
+ if (executionData !== undefined) {
2669
+ connectionInputData = executionData.data.main[0];
2670
+ }
2671
+ }
2672
+ const additionalKeys = getAdditionalKeys(additionalData, mode, runExecutionData);
2673
+ return workflow.expression.resolveSimpleParameterValue(`=${expression}`, {}, runExecutionData, runIndex, itemIndex, node.name, connectionInputData, mode, additionalKeys, executionData);
2674
+ },
2661
2675
  getNodeParameter: (parameterName, fallbackValue, options) => {
2662
2676
  const itemIndex = 0;
2663
2677
  const runIndex = 0;