n8n-nodes-dremio 1.0.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 +93 -0
- package/package.json +45 -0
package/README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Dremio n8n Connector
|
|
2
|
+
|
|
3
|
+
A custom Dremio node for n8n, enabling you to execute SQL queries against both **Dremio Cloud** and **Dremio Software** directly from your workflows.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Execute SQL**: Run any SQL query supported by Dremio.
|
|
8
|
+
- **Dual Compatibility**: First-class support for both Dremio Cloud and Dremio Software (self-hosted).
|
|
9
|
+
- **Secure Authentication**:
|
|
10
|
+
- **Cloud**: Authentication via Personal Access Token (PAT) and Project ID.
|
|
11
|
+
- **Software**: Authentication via Personal Access Token (PAT) and Base URL.
|
|
12
|
+
- **SSL Flexibility**: Option to ignore SSL certificate validation for self-hosted instances with self-signed certificates.
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
### For n8n Cloud / Enterprise (Verified Community Node)
|
|
17
|
+
|
|
18
|
+
*Note: Custom nodes must be published to npm or verified to be installable on n8n Cloud.*
|
|
19
|
+
|
|
20
|
+
1. **Publish (If you are the developer)**:
|
|
21
|
+
Ensure this package is published to npm:
|
|
22
|
+
```bash
|
|
23
|
+
npm publish --access public
|
|
24
|
+
```
|
|
25
|
+
2. **Install**:
|
|
26
|
+
- Go to your n8n dashboard.
|
|
27
|
+
- Navigate to **Settings** > **Community Nodes**.
|
|
28
|
+
- Click **Install Node**.
|
|
29
|
+
- Enter the package name: `n8n-nodes-dremio` (or your published name).
|
|
30
|
+
- Click **Install**.
|
|
31
|
+
- The node "Dremio" will now be available in the workflow editor.
|
|
32
|
+
|
|
33
|
+
### For Self-Hosted n8n (npm link)
|
|
34
|
+
|
|
35
|
+
If you are developing or running n8n locally:
|
|
36
|
+
|
|
37
|
+
1. **Clone & Build**:
|
|
38
|
+
```bash
|
|
39
|
+
git clone https://github.com/alexmerced/dremio-n8n.git
|
|
40
|
+
cd dremio-n8n
|
|
41
|
+
npm install
|
|
42
|
+
npm run build
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
2. **Link**:
|
|
46
|
+
Navigate to your n8n custom extension directory (usually `~/.n8n/custom`):
|
|
47
|
+
```bash
|
|
48
|
+
mkdir -p ~/.n8n/custom
|
|
49
|
+
cd ~/.n8n/custom
|
|
50
|
+
npm link /path/to/dremio-n8n
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
3. **Restart**: Restart your n8n instance.
|
|
54
|
+
|
|
55
|
+
## Usage Guide
|
|
56
|
+
|
|
57
|
+
### 1. Add the Node
|
|
58
|
+
Open your n8n workflow, click the **+** button, and search for **Dremio**.
|
|
59
|
+
|
|
60
|
+
### 2. Configure Credentials
|
|
61
|
+
You can configure a single credential to use across multiple nodes.
|
|
62
|
+
|
|
63
|
+
#### Option A: Dremio Cloud
|
|
64
|
+
- **Type**: Select `Cloud`
|
|
65
|
+
- **Base URL**: `https://api.dremio.cloud` (Default) or `https://api.eu.dremio.cloud` for EU control plane.
|
|
66
|
+
- **Project ID**: Found in your Dremio Project Settings.
|
|
67
|
+
- **Access Token**: Your Personal Access Token (PAT).
|
|
68
|
+
- **Ignore SSL Issues**: Leave off (False).
|
|
69
|
+
|
|
70
|
+
#### Option B: Dremio Software
|
|
71
|
+
- **Type**: Select `Software`
|
|
72
|
+
- **Base URL**: Your Dremio API base URL, e.g., `http://dremio.example.com:9047/api/v3`.
|
|
73
|
+
- **Access Token**: Your Personal Access Token (PAT).
|
|
74
|
+
- **Ignore SSL Issues**: set to `True` if using a self-signed certificate.
|
|
75
|
+
|
|
76
|
+
### 3. Execute SQL
|
|
77
|
+
- **Resource**: `Query`
|
|
78
|
+
- **Operation**: `Execute`
|
|
79
|
+
- **SQL Query**: Enter your SQL statement.
|
|
80
|
+
- *Example*: `SELECT * FROM "Samples"."samples.dremio.com"."NYC-taxi-trips" LIMIT 10`
|
|
81
|
+
- *Tip*: Use expressions to dynamically build queries based on previous node outputs.
|
|
82
|
+
|
|
83
|
+
## How it Works
|
|
84
|
+
The connector uses the Dremio REST API to submit and monitor jobs:
|
|
85
|
+
1. **Submission**: It posts the SQL query to the `/sql` endpoint.
|
|
86
|
+
2. **Polling**: It receives a Job ID and polls the Job Status endpoint until the state is `COMPLETED`.
|
|
87
|
+
3. **Retrieval**: Once completed, it fetches the results from the `/results` endpoint and returns them as JSON items.
|
|
88
|
+
|
|
89
|
+
## Troubleshooting
|
|
90
|
+
|
|
91
|
+
- **Job Failed**: If the node errors with "Job Failed", check the Dremio UI Jobs page for detailed error messages regarding your SQL syntax.
|
|
92
|
+
- **SSL Error**: If connecting to a local Dremio Software instance fails with SSL errors, ensure "Ignore SSL Issues" is toggled ON in the credentials.
|
|
93
|
+
- **Timeout**: Large queries might time out if the n8n execution timeout is too short. Try to limit results using `LIMIT` or paginate if possible.
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-dremio",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "n8n node for Dremio",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package"
|
|
7
|
+
],
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"homepage": "https://github.com/alexmerced/dremio-n8n",
|
|
10
|
+
"author": {
|
|
11
|
+
"name": "Alex Merced",
|
|
12
|
+
"email": "alex.merced@dremio.com"
|
|
13
|
+
},
|
|
14
|
+
"main": "index.js",
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "npx tsc && npx gulp",
|
|
17
|
+
"dev": "tsc --watch",
|
|
18
|
+
"test": "jest",
|
|
19
|
+
"lint": "tslint -p tsconfig.json -c tslint.json"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"n8n": {
|
|
25
|
+
"nodes": [
|
|
26
|
+
"dist/nodes/Dremio/Dremio.node.js"
|
|
27
|
+
],
|
|
28
|
+
"credentials": [
|
|
29
|
+
"dist/credentials/DremioApi.credentials.js"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/express": "^4.17.6",
|
|
34
|
+
"@types/request-promise-native": "^1.0.17",
|
|
35
|
+
"gulp": "^4.0.2",
|
|
36
|
+
"n8n-core": "^0.1.0",
|
|
37
|
+
"n8n-workflow": "^0.1.0",
|
|
38
|
+
"prettier": "^2.0.5",
|
|
39
|
+
"tslint": "^6.1.2",
|
|
40
|
+
"typescript": "^4.0.2"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"axios": "^1.6.0"
|
|
44
|
+
}
|
|
45
|
+
}
|