n8n-nodes-better-http-request 0.1.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 ADDED
@@ -0,0 +1,79 @@
1
+ # n8n-nodes-better-http-request
2
+
3
+ An enhanced **HTTP Request** community node for [n8n](https://n8n.io) that adds automatic retry logic for failed items on top of all the capabilities already provided by the built-in HTTP Request node.
4
+
5
+ ## Features
6
+
7
+ - **All standard HTTP Request capabilities** – HTTP methods (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), query parameters, request headers, JSON/form/raw bodies, file uploads, pagination, batching, authentication, SSL certificates, and more.
8
+ - **Retry failed items** – automatically re-sends requests that failed with configurable HTTP status codes. Unlike the built-in node's retry which re-runs every item, this feature retries *only* the items that failed, leaving successful items untouched.
9
+ - Configurable maximum retry attempts (default: 3).
10
+ - Configurable delay between retries (default: 1000 ms).
11
+ - Configurable list of retriable status codes (default: `429,500,502,503,504`).
12
+ - Respects the `Retry-After` response header for HTTP 429 responses.
13
+ - **Domain restrictions** – credential-level allowlists prevent requests from being sent to unauthorized domains.
14
+
15
+ ## Installation
16
+
17
+ ### In your n8n instance
18
+
19
+ 1. Open **Settings → Community Nodes**.
20
+ 2. Click **Install a community node**.
21
+ 3. Enter `n8n-nodes-better-http-request` and confirm the installation.
22
+
23
+ ### Manual install on self-hosted
24
+
25
+ ```bash
26
+ npm install n8n-nodes-better-http-request
27
+ ```
28
+
29
+ Then restart n8n.
30
+
31
+ ## Usage
32
+
33
+ After installation the node appears in the node palette as **Better HTTP Request**.
34
+
35
+ ### Basic request
36
+
37
+ 1. Add the **Better HTTP Request** node to your workflow.
38
+ 2. Set the **Method** (GET, POST, …) and the **URL**.
39
+ 3. Optionally configure **Query Parameters**, **Headers**, and a **Body** in the respective sections.
40
+ 4. Execute the workflow.
41
+
42
+ ### Retry failed items
43
+
44
+ 1. Enable **Continue On Fail** on the node (gear icon → *Continue On Fail*).
45
+ 2. Open the **Options** section and turn on **Retry Failed Items**.
46
+ 3. Adjust **Max Retries**, **Retry Delay (ms)**, and **Retry On Status Codes** to your needs.
47
+
48
+ When the workflow runs, any item whose request returns one of the configured status codes will be retried up to the specified number of times. All other items pass through immediately without waiting.
49
+
50
+ ## Options reference
51
+
52
+ | Option | Default | Description |
53
+ |---|---|---|
54
+ | **Retry Failed Items** | `false` | Enable automatic retry for failed items. Requires *Continue On Fail* to be active. |
55
+ | **Max Retries** | `3` | Maximum number of retry attempts per failed item (1–10). |
56
+ | **Retry Delay (ms)** | `1000` | Milliseconds to wait between retry attempts. For HTTP 429, the `Retry-After` header value takes precedence. |
57
+ | **Retry On Status Codes** | `429,500,502,503,504` | Comma-separated list of HTTP status codes that trigger a retry. |
58
+ | **Batching** | – | Split items into batches and add a delay between them to avoid rate limits. |
59
+ | **Timeout** | `10000` (10 s) | Time in ms to wait for the server to start responding before aborting. |
60
+ | **Send Credentials on Cross-Origin Redirect** | `false` | Forward auth headers when following cross-origin redirects. |
61
+
62
+ ## Development
63
+
64
+ ```bash
65
+ # Install dependencies
66
+ npm ci
67
+
68
+ # Build
69
+ npm run build
70
+
71
+ # Run tests
72
+ npm test
73
+ ```
74
+
75
+ The project is written in TypeScript. The compiled output is placed in `dist/`.
76
+
77
+ ## License
78
+
79
+ MIT
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class BetterHttpRequest implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }