n8n-nodes-speedtest-net 0.2.1 → 0.2.3

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
@@ -3,11 +3,11 @@ TypeScript n8n community node with its own wrapper around the **official Ookla S
3
3
 
4
4
  ## Requirements
5
5
  - Self-hosted n8n and Node.js 22 or newer. Not a verified n8n Cloud node.
6
- - Install the official Ookla CLI on every worker that executes this node: https://www.speedtest.net/apps/cli
7
- - The executable must be available as `speedtest` on PATH. Administrators can instead set `N8N_SPEEDTEST_BINARY` to its absolute path. Restart n8n after changing the environment.
8
- - Do not install the unrelated Python `speedtest-cli`: it has different flags and output.
9
- - No automatic executable downloads or npm native-dependency overrides are required anymore.
10
- - For containers, bake the official CLI into a compatible image. A host installation is not automatically accessible inside the container. Check Ookla platform/runtime compatibility, particularly Alpine/musl.
6
+ - **No manual CLI installation is needed on Linux x64 or arm64**, including n8n containers. After explicit consent, the first execution downloads the official Ookla CLI 1.2.0 over HTTPS, verifies a pinned SHA-256, and caches it for later runs. No root privileges, package manager, native npm dependencies, or install scripts are required.
7
+ - The worker needs outbound HTTPS access to `install.speedtest.net` and a writable cache. The default is the visible `binaries` directory alongside the installed node. Administrators can set `N8N_SPEEDTEST_CACHE_DIR` to a writable persistent directory, particularly for read-only container filesystems. Concurrent executions share setup within a worker; files are installed atomically.
8
+ - Administrators can instead set `N8N_SPEEDTEST_BINARY` to an existing executable's absolute path; this bypasses downloads. Other operating systems/architectures currently require this override. Restart n8n after environment changes.
9
+ - The official Linux release is musl-based. Actual execution still depends on the container's architecture and security policy (for example, executable mounts must not be `noexec`).
10
+ - Do not install the unrelated Python `speedtest-cli`: it has different flags and output. Ookla terms and licensing still apply to the automatically downloaded binary.
11
11
 
12
12
  Tests measure the **n8n worker/container connection**, not your browser. They consume bandwidth and may use significant data. Tests are sequential within one node execution, but separate workflows/workers can still overlap. One input item causes one test.
13
13
 
@@ -22,7 +22,7 @@ npm run build
22
22
  npm pack
23
23
  ```
24
24
 
25
- Install the generated `n8n-nodes-speedtest-net-0.2.1.tgz` into your self-hosted n8n community-package directory (typically `~/.n8n/nodes`) with npm, using the n8n file owner's account, then restart n8n. Install on all workers in queue mode. The official CLI must be installed separately in each execution environment.
25
+ Install the generated `n8n-nodes-speedtest-net-0.2.3.tgz` into your self-hosted n8n community-package directory (typically `~/.n8n/nodes`) with npm, using the n8n file owner's account, then restart n8n. Install on all workers in queue mode. Each worker automatically provisions its CLI when first needed.
26
26
 
27
27
  For local development, point `N8N_CUSTOM_EXTENSIONS` at the built `dist/nodes` directory and make the project's dependencies available alongside it. Real n8n discovery and real Ookla requests still require verification in your environment.
28
28
 
@@ -40,13 +40,12 @@ Failures use native n8n error handling. There is no separate error-data switch:
40
40
  - **Continue (using error output)**: failed items go to n8n's **Error** output with the structured JSON below. Successful items stay on the **Success** output.
41
41
  - **Continue (using regular output)**: explicitly keeps failed items on the regular output with the same structured JSON.
42
42
 
43
- Configure this under **Settings → On Error**. Each continued failure carries n8n's top-level error marker and retains its input-item link. Existing saved `returnErrors` parameters are ignored.
43
+ Configure this under **Settings → On Error**. Each continued failure retains its input-item link and uses a JSON-only `{ "error": { ... } }` envelope recognized by n8n's error router. Do not add a top-level execution-item `error` marker: n8n normalizes it to a plain message and discards the structured JSON. Existing saved `returnErrors` parameters are ignored. On regular output, detect failures with `{{ !!$json.error }}`.
44
44
 
45
45
  Example for the reported Ookla rate limit:
46
46
 
47
47
  ```json
48
48
  {
49
- "success": false,
50
49
  "error": {
51
50
  "code": "RATE_LIMITED",
52
51
  "message": "Limit reached: Too many requests received.",
@@ -67,13 +66,14 @@ The wrapper preserves raw stdout/stderr, exit code, and termination signal when
67
66
 
68
67
  **A direct CLI wrapper cannot expose hidden HTTP response headers.** If Ookla does not print a retry duration, it remains `null`. `retryAt` is currently always `null`; a log timestamp is never treated as a quota reset. No fabricated cooldown, automatic retries, or rate-limit bypass is implemented. A rate-limit/licensing error can require more than simply waiting.
69
68
 
70
- Error codes include `RATE_LIMITED`, `TIMEOUT`, `BINARY_NOT_FOUND`, `SPAWN_ERROR`, `CLI_ERROR`, `INVALID_RESULT`, `OUTPUT_LIMIT`, and `INVALID_CONFIGURATION`.
69
+ Error codes include `RATE_LIMITED`, `TIMEOUT`, `BINARY_NOT_FOUND`, `BINARY_SETUP_ERROR`, `UNSUPPORTED_PLATFORM`, `SPAWN_ERROR`, `CLI_ERROR`, `INVALID_RESULT`, `OUTPUT_LIMIT`, and `INVALID_CONFIGURATION`. Initial binary setup has a separate 60-second download timeout and a 16 MiB archive limit; the configured test timeout starts after setup.
71
70
 
72
71
  Timeout and output-limit failures kill the direct child and wait for process termination before returning. Captured stdout/stderr is limited to 1 MiB total. Diagnostics can contain network addresses or other sensitive information: restrict access to execution data and avoid publishing raw logs.
73
72
 
74
73
  ## Tests and layout
75
74
  - `nodes/Speedtest/Speedtest.node.ts`: n8n UI and per-item integration.
76
75
  - `nodes/Speedtest/runSpeedtest.ts`: shell-free CLI execution, timeout, output bounds, and result conversion.
76
+ - `nodes/Speedtest/resolveBinary.ts`: automatic official CLI provisioning, SHA-256 verification, safe extraction, and executable caching.
77
77
  - `nodes/Speedtest/speedtestError.ts`: structured diagnostics and rate-limit classification.
78
78
  - `tests/`: mocked process tests, n8n integration unit tests, and local fixture-process tests; no real Ookla requests.
79
79
 
@@ -103,10 +103,10 @@ class Speedtest {
103
103
  });
104
104
  nodeError.context.speedtest = diagnostics;
105
105
  if (this.continueOnFail()) {
106
- // n8n needs the top-level error marker to route this item to its error output.
106
+ // n8n routes JSON-only error items without flattening their diagnostics.
107
+ // Keep only error/message/details keys: extra keys prevent error-output routing.
107
108
  output.push({
108
- json: { success: false, error: diagnostics },
109
- error: nodeError,
109
+ json: { error: diagnostics },
110
110
  pairedItem: { item: itemIndex },
111
111
  });
112
112
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"Speedtest.node.js","sourceRoot":"","sources":["../../../nodes/Speedtest/Speedtest.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Speedtest.node.js","sourceRoot":"","sources":["../../../nodes/Speedtest/Speedtest.node.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ exports.runSpeedtest = runSpeedtest;
4
4
  const node_child_process_1 = require("node:child_process");
5
5
  const node_net_1 = require("node:net");
6
6
  const speedtestError_1 = require("./speedtestError");
7
+ const resolveBinary_1 = require("./resolveBinary");
7
8
  // Bound process output so a faulty executable cannot exhaust the worker's memory.
8
9
  const MAX_OUTPUT_BYTES = 1024 * 1024;
9
10
  async function runSpeedtest(options, timeoutSeconds) {
@@ -24,9 +25,11 @@ async function runSpeedtest(options, timeoutSeconds) {
24
25
  args.push('--server-id=' + options.serverId);
25
26
  if (options.sourceIp)
26
27
  args.push('--ip=' + options.sourceIp);
28
+ const resolved = (0, resolveBinary_1.resolveBinary)();
29
+ const binary = typeof resolved === 'string' ? resolved : await resolved;
27
30
  return new Promise((resolve, reject) => {
28
31
  // Deliberately not configurable by workflow input: executable selection belongs to the administrator.
29
- const child = (0, node_child_process_1.spawn)(process.env.N8N_SPEEDTEST_BINARY || 'speedtest', args, {
32
+ const child = (0, node_child_process_1.spawn)(binary, args, {
30
33
  shell: false, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'],
31
34
  });
32
35
  let stdout = '';
@@ -1 +1 @@
1
- {"version":3,"file":"runSpeedtest.js","sourceRoot":"","sources":["../../../nodes/Speedtest/runSpeedtest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runSpeedtest.js","sourceRoot":"","sources":["../../../nodes/Speedtest/runSpeedtest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-speedtest-net",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Run Ookla internet speed tests in n8n with structured CLI diagnostics",
5
5
  "license": "MIT",
6
6
  "keywords": [