mirror of
https://github.com/n8n-io/n8n-docs.git
synced 2025-11-20 17:48:34 +00:00
docs: Add native Python env vars and feature details (#3645)
Co-authored-by: Kartik Balasubramanian <22399046+HumanistSerif@users.noreply.github.com>
This commit is contained in:
parent
41a59cf57a
commit
42b8147846
@ -54,9 +54,11 @@ The syntax to use the built-in methods and variables is `$variableName` or `$met
|
||||
|
||||
### Keyboard shortcuts
|
||||
|
||||
The Code node editing environment supports time-saving and useful keyboard shortcuts for a range of operations from autocompletion to code-folding and using multiple-cursors. A full list can be found in the [list of keyboard shortcuts](/integrations/builtin/core-nodes/n8n-nodes-base.code/keyboard-shortcuts.md).
|
||||
The Code node editing environment supports time-saving and useful keyboard shortcuts for a range of operations from autocompletion to code-folding and using multiple-cursors. See the full list of [keyboard shortcuts](/integrations/builtin/core-nodes/n8n-nodes-base.code/keyboard-shortcuts.md).
|
||||
|
||||
## Python
|
||||
## Python (Pyodide - legacy)
|
||||
|
||||
Pyodide is a legacy feature. Future versions of n8n will no longer support this feature.
|
||||
|
||||
n8n added Python support in version 1.0. It doesn't include a Python executable. Instead, n8n provides Python support using [Pyodide](https://pyodide.org/en/stable/), which is a port of CPython to WebAssembly. This limits the available Python packages to the [Packages included with Pyodide](https://pyodide.org/en/stable/usage/packages-in-pyodide.html#packages-in-pyodide). n8n downloads the package automatically the first time you use it.
|
||||
|
||||
@ -71,7 +73,7 @@ The syntax to use the built-in methods and variables is `_variableName` or `_met
|
||||
|
||||
### Keyboard shortcuts
|
||||
|
||||
The Code node editing environment supports time-saving and useful keyboard shortcuts for a range of operations from autocompletion to code-folding and using multiple-cursors. A full list can be found in the [list of keyboard shortcuts](/integrations/builtin/core-nodes/n8n-nodes-base.code/keyboard-shortcuts.md).
|
||||
The Code node editing environment supports time-saving and useful keyboard shortcuts for a range of operations from autocompletion to code-folding and using multiple-cursors. See the full list of [keyboard shortcuts](/integrations/builtin/core-nodes/n8n-nodes-base.code/keyboard-shortcuts.md).
|
||||
|
||||
## File system and HTTP requests
|
||||
|
||||
@ -80,6 +82,21 @@ You can't access the file system or make HTTP requests. Use the following nodes
|
||||
* [Read/Write File From Disk](/integrations/builtin/core-nodes/n8n-nodes-base.readwritefile.md)
|
||||
* [HTTP Request](/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/index.md)
|
||||
|
||||
## Python (Native - beta)
|
||||
|
||||
n8n added native Python support using task runners (beta) in version 1.111.0.
|
||||
|
||||
Main differences from Pyodide:
|
||||
|
||||
- Native Python supports only `_items` in all-items mode and `_item` in per-item mode. It doesn't support other n8n built-in methods and variables.
|
||||
- Native Python supports importing native Python modules from the standard library and from third-parties, if the `n8nio/runners` image includes them and explicitly allowlists them. See [task runners](/hosting/configuration/task-runners.md) for more details.
|
||||
- Denies insecure built-ins by default. See [task runners environment variables](/hosting/configuration/environment-variables/task-runners.md) for more details.
|
||||
- Unlike Pyodide, which accepts dot access notation, for example, `item.json.myNewField`, native Python only accepts bracket access notation, for example, `item["json"]["my_new_field"]`. There may be other minor syntax differences where Pyodide accepts constructs that aren't legal in native Python.
|
||||
|
||||
Keep in mind upgrading to native Python is a breaking change, so you may need to adjust your Python scripts to use the native Python runner.
|
||||
|
||||
This feature is in beta and is subject to change. As it becomes stable, n8n will roll it out progressively to n8n cloud users during 2025. Self-hosting users can [try it out](/hosting/configuration/environment-variables/task-runners.md) and provide feedback.
|
||||
|
||||
## Coding in n8n
|
||||
|
||||
There are two places where you can use code in n8n: the Code node and the expressions editor. When using either area, there are some key concepts you need to know, as well as some built-in methods and variables to help with common tasks.
|
||||
|
||||
@ -31,7 +31,6 @@ hide:
|
||||
| `N8N_RUNNERS_HEARTBEAT_INTERVAL` | Number | `30` | How often (in seconds) the runner must send a heartbeat to the broker, else the task aborts and the runner restarts. Must be greater than 0. |
|
||||
| `N8N_RUNNERS_INSECURE_MODE` | Boolean | `false` | Whether to disable all security measures in the task runner, for compatibility with modules that rely on insecure JS features. **Discouraged for production use.** |
|
||||
|
||||
|
||||
## Task runner launcher environment variables
|
||||
|
||||
| Variable | Type | Default | Description |
|
||||
@ -43,10 +42,8 @@ hide:
|
||||
| `N8N_RUNNERS_LAUNCHER_HEALTH_CHECK_PORT` | Number | `5680` | Port for the launcher's health check server. |
|
||||
| `N8N_RUNNERS_MAX_PAYLOAD` | Number | `1 073 741 824` | Maximum payload size in bytes for communication between a task broker and a task runner. |
|
||||
| `N8N_RUNNERS_MAX_CONCURRENCY` | Number | `5` | The number of concurrent tasks a task runner can execute at a time. |
|
||||
| `NODE_OPTIONS` | String | - | [Options](https://nodejs.org/api/cli.html#node_optionsoptions) for Node.js. |
|
||||
|
||||
|
||||
## Task runner environment variables
|
||||
## Task runner environment variables (all languages)
|
||||
|
||||
| Variable | Type | Default | Description |
|
||||
| :------- | :---- | :------- | :---------- |
|
||||
@ -56,7 +53,23 @@ hide:
|
||||
| `N8N_RUNNERS_LAUNCHER_HEALTH_CHECK_PORT` | Number | `5680` | Port for the launcher's health check server. |
|
||||
| `N8N_RUNNERS_MAX_PAYLOAD` | Number | `1 073 741 824` | Maximum payload size in bytes for communication between a task broker and a task runner. |
|
||||
| `N8N_RUNNERS_MAX_CONCURRENCY` | Number | `5` | The number of concurrent tasks a task runner can execute at a time. |
|
||||
|
||||
## Task runner environment variables (JavaScript)
|
||||
|
||||
| Variable | Type | Default | Description |
|
||||
| :------- | :---- | :------- | :---------- |
|
||||
| `NODE_FUNCTION_ALLOW_BUILTIN` | String | - | Permit users to import specific built-in modules in the Code node. Use * to allow all. n8n disables importing modules by default. |
|
||||
| `NODE_FUNCTION_ALLOW_EXTERNAL` | String | - | Permit users to import specific external modules (from `n8n/node_modules`) in the Code node. n8n disables importing modules by default. |
|
||||
| `N8N_RUNNERS_ALLOW_PROTOTYPE_MUTATION` | Boolean | `false` | Whether to allow prototype mutation for external libraries. Set to `true` to allow modules that rely on runtime prototype mutation (for example, [`puppeteer`](https://pptr.dev/)) at the cost of relaxing security. |
|
||||
| `GENERIC_TIMEZONE` | * | `America/New_York` | The [same default timezone as configured for the n8n instance](/hosting/configuration/environment-variables/timezone-localization.md). |
|
||||
| `NODE_OPTIONS` | String | - | [Options](https://nodejs.org/api/cli.html#node_optionsoptions) for Node.js. |
|
||||
| `N8N_RUNNERS_MAX_OLD_SPACE_SIZE` | String | | The `--max-old-space-size` option to use for a task runner (in MB). By default, Node.js will set this based on available memory. |
|
||||
|
||||
## Task runner environment variables (Python)
|
||||
|
||||
| Variable | Type | Default | Description |
|
||||
| :------- | :---- | :------- | :---------- |
|
||||
|
||||
| `N8N_RUNNERS_STDLIB_ALLOW` | String | - | Permit users to import specific Python standard library modules in the Code node. Use `*` to allow all. n8n disables all Python standard library imports by default. |
|
||||
| `N8N_RUNNERS_EXTERNAL_ALLOW` | String | - | Permit users to import specific third-party Python modules (if available in the `n8nio/runners` image) in the Code node. Use `*` to allow all. n8n disables all third-party Python modules by default. |
|
||||
| `N8N_RUNNERS_BUILTINS_DENY` | String | `eval,exec,compile,open,input,breakpoint,getattr,object,type,vars,setattr,delattr,hasattr,dir,memoryview,__build_class__` | List of insecure Python built-ins aren't allowed. Set to an empty string to allow all. |
|
||||
Loading…
Reference in New Issue
Block a user