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.
Files changed (2) hide show
  1. package/README.md +93 -0
  2. 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
+ }