n8n-core 1.53.1 → 1.55.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 CHANGED
@@ -10,8 +10,4 @@ npm install n8n-core
10
10
 
11
11
  ## License
12
12
 
13
- n8n is [fair-code](https://faircode.io) distributed under the [**Sustainable Use License**](https://github.com/n8n-io/n8n/blob/master/packages/cli/LICENSE.md).
14
-
15
- Proprietary licenses are available for enterprise customers. [Get in touch](mailto:license@n8n.io)
16
-
17
- Additional information about the license can be found in the [docs](https://docs.n8n.io/reference/license/).
13
+ You can find the license information [here](https://github.com/n8n-io/n8n/blob/master/README.md#license)
@@ -33,8 +33,11 @@ function findReferencedMethods(obj, refs = {}, latestName = '') {
33
33
  const knownCredentials = loader.known.credentials;
34
34
  const credentialTypes = Object.values(loader.credentialTypes).map((data) => {
35
35
  const credentialType = data.type;
36
- if (knownCredentials[credentialType.name].supportedNodes?.length > 0) {
37
- delete credentialType.httpRequestNode;
36
+ if (
37
+ knownCredentials[credentialType.name].supportedNodes?.length > 0 &&
38
+ credentialType.httpRequestNode
39
+ ) {
40
+ credentialType.httpRequestNode.hidden = true;
38
41
  }
39
42
  return credentialType;
40
43
  });
@@ -10,6 +10,11 @@ export declare class InstanceSettings {
10
10
  private readonly settingsFile;
11
11
  private settings;
12
12
  readonly instanceId: string;
13
+ private instanceRole;
14
+ get isLeader(): boolean;
15
+ markAsLeader(): void;
16
+ get isFollower(): boolean;
17
+ markAsFollower(): void;
13
18
  get encryptionKey(): string;
14
19
  get tunnelSubdomain(): string | undefined;
15
20
  update(newSettings: WritableSettings): void;
@@ -26,6 +26,19 @@ let InstanceSettings = class InstanceSettings {
26
26
  this.settingsFile = path_1.default.join(this.n8nFolder, 'config');
27
27
  this.settings = this.loadOrCreate();
28
28
  this.instanceId = this.generateInstanceId();
29
+ this.instanceRole = 'unset';
30
+ }
31
+ get isLeader() {
32
+ return this.instanceRole === 'leader';
33
+ }
34
+ markAsLeader() {
35
+ this.instanceRole = 'leader';
36
+ }
37
+ get isFollower() {
38
+ return this.instanceRole === 'follower';
39
+ }
40
+ markAsFollower() {
41
+ this.instanceRole = 'follower';
29
42
  }
30
43
  get encryptionKey() {
31
44
  return this.settings.encryptionKey;
@@ -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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"}
@@ -38,6 +38,7 @@ export declare function getNodeParameter(workflow: Workflow, runExecutionData: I
38
38
  export declare function continueOnFail(node: INode): boolean;
39
39
  export declare function getNodeWebhookUrl(name: string, workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, additionalKeys: IWorkflowDataProxyAdditionalKeys, isTest?: boolean): string | undefined;
40
40
  export declare function getWebhookDescription(name: string, workflow: Workflow, node: INode): IWebhookDescription | undefined;
41
+ export declare function isFilePathBlocked(filePath: string): boolean;
41
42
  export declare function copyInputItems(items: INodeExecutionData[], properties: string[]): IDataObject[];
42
43
  export declare function getExecutePollFunctions(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): IPollFunctions;
43
44
  export declare function getExecuteTriggerFunctions(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): ITriggerFunctions;
@@ -46,4 +47,4 @@ export declare function getExecuteSingleFunctions(workflow: Workflow, runExecuti
46
47
  export declare function getCredentialTestFunctions(): ICredentialTestFunctions;
47
48
  export declare function getLoadOptionsFunctions(workflow: Workflow, node: INode, path: string, additionalData: IWorkflowExecuteAdditionalData): ILoadOptionsFunctions;
48
49
  export declare function getExecuteHookFunctions(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode, webhookData?: IWebhookData): IHookFunctions;
49
- export declare function getExecuteWebhookFunctions(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, webhookData: IWebhookData, closeFunctions: CloseFunction[]): IWebhookFunctions;
50
+ export declare function getExecuteWebhookFunctions(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, webhookData: IWebhookData, closeFunctions: CloseFunction[], runExecutionData: IRunExecutionData | null): IWebhookFunctions;
@@ -52,6 +52,7 @@ exports.getNodeParameter = getNodeParameter;
52
52
  exports.continueOnFail = continueOnFail;
53
53
  exports.getNodeWebhookUrl = getNodeWebhookUrl;
54
54
  exports.getWebhookDescription = getWebhookDescription;
55
+ exports.isFilePathBlocked = isFilePathBlocked;
55
56
  exports.copyInputItems = copyInputItems;
56
57
  exports.getExecutePollFunctions = getExecutePollFunctions;
57
58
  exports.getExecuteTriggerFunctions = getExecuteTriggerFunctions;
@@ -960,7 +961,9 @@ async function requestOAuth2(credentialsType, requestOptions, node, additionalDa
960
961
  });
961
962
  let oauthTokenData = credentials.oauthTokenData;
962
963
  if (credentials.grantType === 'clientCredentials' &&
963
- (oauthTokenData === undefined || Object.keys(oauthTokenData).length === 0)) {
964
+ (oauthTokenData === undefined ||
965
+ Object.keys(oauthTokenData).length === 0 ||
966
+ oauthTokenData.access_token === '')) {
964
967
  const { data } = await oAuthClient.credentials.getToken();
965
968
  if (!((_b = node.credentials) === null || _b === void 0 ? void 0 : _b[credentialsType])) {
966
969
  throw new n8n_workflow_1.ApplicationError('Node does not have credential type', {
@@ -2124,8 +2127,8 @@ function isFilePathBlocked(filePath) {
2124
2127
  return true;
2125
2128
  }
2126
2129
  if (blockFileAccessToN8nFiles) {
2127
- const { n8nFolder } = typedi_1.default.get(InstanceSettings_1.InstanceSettings);
2128
- const restrictedPaths = [n8nFolder];
2130
+ const { n8nFolder, staticCacheDir } = typedi_1.default.get(InstanceSettings_1.InstanceSettings);
2131
+ const restrictedPaths = [n8nFolder, staticCacheDir];
2129
2132
  if (process.env[Constants_1.CONFIG_FILES]) {
2130
2133
  restrictedPaths.push(...process.env[Constants_1.CONFIG_FILES].split(','));
2131
2134
  }
@@ -2590,8 +2593,8 @@ function getExecuteHookFunctions(workflow, node, additionalData, mode, activatio
2590
2593
  };
2591
2594
  })(workflow, node);
2592
2595
  }
2593
- function getExecuteWebhookFunctions(workflow, node, additionalData, mode, webhookData, closeFunctions) {
2594
- return ((workflow, node) => {
2596
+ function getExecuteWebhookFunctions(workflow, node, additionalData, mode, webhookData, closeFunctions, runExecutionData) {
2597
+ return ((workflow, node, runExecutionData) => {
2595
2598
  return {
2596
2599
  ...getCommonWorkflowFunctions(workflow, node, additionalData),
2597
2600
  getBodyData() {
@@ -2629,11 +2632,18 @@ function getExecuteWebhookFunctions(workflow, node, additionalData, mode, webhoo
2629
2632
  },
2630
2633
  getMode: () => mode,
2631
2634
  getNodeParameter: (parameterName, fallbackValue, options) => {
2632
- const runExecutionData = null;
2633
2635
  const itemIndex = 0;
2634
2636
  const runIndex = 0;
2635
- const connectionInputData = [];
2636
- return getNodeParameter(workflow, runExecutionData, runIndex, connectionInputData, node, parameterName, itemIndex, mode, getAdditionalKeys(additionalData, mode, null), undefined, fallbackValue, options);
2637
+ let connectionInputData = [];
2638
+ let executionData;
2639
+ if ((runExecutionData === null || runExecutionData === void 0 ? void 0 : runExecutionData.executionData) !== undefined) {
2640
+ executionData = runExecutionData.executionData.nodeExecutionStack[0];
2641
+ if (executionData !== undefined) {
2642
+ connectionInputData = executionData.data.main[0];
2643
+ }
2644
+ }
2645
+ const additionalKeys = getAdditionalKeys(additionalData, mode, runExecutionData);
2646
+ return getNodeParameter(workflow, runExecutionData, runIndex, connectionInputData, node, parameterName, itemIndex, mode, additionalKeys, executionData, fallbackValue, options);
2637
2647
  },
2638
2648
  getParamsData() {
2639
2649
  if (additionalData.httpRequest === undefined) {
@@ -2669,6 +2679,6 @@ function getExecuteWebhookFunctions(workflow, node, additionalData, mode, webhoo
2669
2679
  },
2670
2680
  nodeHelpers: getNodeHelperFunctions(additionalData, workflow.id),
2671
2681
  };
2672
- })(workflow, node);
2682
+ })(workflow, node, runExecutionData);
2673
2683
  }
2674
2684
  //# sourceMappingURL=NodeExecuteFunctions.js.map