n8n-nodes-ldxhub 0.9.0 → 0.9.2
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 +28 -10
- package/dist/credentials/LdxHubApi.credentials.d.ts +1 -2
- package/dist/credentials/LdxHubApi.credentials.js +1 -8
- package/dist/credentials/LdxHubApi.credentials.js.map +1 -1
- package/dist/nodes/LdxHub/LdxHub.node.js +0 -31
- package/dist/nodes/LdxHub/LdxHub.node.js.map +1 -1
- package/dist/nodes/LdxHub/shared/transport.js +3 -18
- package/dist/nodes/LdxHub/shared/transport.js.map +1 -1
- package/dist/package.json +2 -3
- package/package.json +2 -3
- package/dist/credentials/LdxHubDynamicApi.credentials.d.ts +0 -9
- package/dist/credentials/LdxHubDynamicApi.credentials.js +0 -40
- package/dist/credentials/LdxHubDynamicApi.credentials.js.map +0 -1
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ n8n community node for **LDX hub** — AI-powered document processing platform:
|
|
|
14
14
|
## Table of Contents
|
|
15
15
|
|
|
16
16
|
- [Features](#features)
|
|
17
|
+
- [Quick Start](#quick-start)
|
|
17
18
|
- [Installation](#installation)
|
|
18
19
|
- [Prerequisites](#prerequisites)
|
|
19
20
|
- [Credentials Setup](#credentials-setup)
|
|
@@ -30,6 +31,22 @@ n8n community node for **LDX hub** — AI-powered document processing platform:
|
|
|
30
31
|
- [Changelog](#changelog)
|
|
31
32
|
- [License](#license)
|
|
32
33
|
|
|
34
|
+
## Quick Start
|
|
35
|
+
|
|
36
|
+
After [installation](#installation):
|
|
37
|
+
|
|
38
|
+
1. Get a free API key at [gw.portal.ldxhub.io](https://gw.portal.ldxhub.io) (no credit card)
|
|
39
|
+
2. Import [`all-services-demo.json`](examples/all-services-demo.json)
|
|
40
|
+
3. Create an **LDXhub API** credential with both fields set to expressions:
|
|
41
|
+
- **Base URL**: `={{ $('On form submission').item.json.host }}`
|
|
42
|
+
- **API Key**: `={{ $('On form submission').item.json.api_key }}`
|
|
43
|
+
4. Select this credential in each LDXhub node
|
|
44
|
+
5. Run the workflow — enter your API key (and optionally a custom host) in the form
|
|
45
|
+
|
|
46
|
+
All 5 services (StructFlow / RefineLoop / RenderOCR / CastDoc / ExtractDoc) accessible from a single Form Trigger. **The API key is consumed per execution, never stored in n8n.**
|
|
47
|
+
|
|
48
|
+
For traditional single-service usage with a static credential, see [Usage](#usage) below.
|
|
49
|
+
|
|
33
50
|
## Features
|
|
34
51
|
|
|
35
52
|
- **StructFlow**: Extract structured JSON from unstructured text using AI models (medical records, customer feedback, legal documents, and more)
|
|
@@ -64,28 +81,29 @@ In your n8n instance:
|
|
|
64
81
|
5. In n8n, create a new **LDXhub API** credential:
|
|
65
82
|
- **Base URL**: `https://gw.ldxhub.io` (default; leave as-is for production)
|
|
66
83
|
- **API Key**: paste the key from step 4
|
|
67
|
-
6. Click **Save**
|
|
84
|
+
6. Click **Save**
|
|
68
85
|
|
|
69
|
-
If
|
|
86
|
+
If API calls fail with 401 Unauthorized, verify:
|
|
70
87
|
- The API key is active (shown with a green dot in the DevPortal)
|
|
71
88
|
- The Base URL has no trailing slash
|
|
72
89
|
- Your network allows outbound HTTPS to `gw.ldxhub.io`
|
|
73
90
|
|
|
74
|
-
### Dynamic
|
|
91
|
+
### Dynamic API Key (Advanced)
|
|
75
92
|
|
|
76
|
-
For workflows where the API key should be provided dynamically per execution (e.g., from a Form Trigger, an upstream node, or an AI agent context),
|
|
93
|
+
For workflows where the API key should be provided dynamically per execution (e.g., from a Form Trigger, an upstream node, or an AI agent context), set the **API Key** field of your LDXhub API credential to an n8n expression instead of a static value:
|
|
77
94
|
|
|
78
|
-
1. Create a new **LDXhub
|
|
79
|
-
2.
|
|
80
|
-
3.
|
|
95
|
+
1. Create a new **LDXhub API** credential
|
|
96
|
+
2. Switch the **API Key** field to **Expression** mode
|
|
97
|
+
3. Enter an expression that resolves at execution time, e.g., `{{ $json.api_key }}`
|
|
98
|
+
4. Save the credential
|
|
81
99
|
|
|
82
|
-
The Model
|
|
100
|
+
The Model and Engine dropdowns load from LDX hub's public metadata endpoints without authentication, so the node UI works normally during workflow design even when the API Key is an unresolved expression.
|
|
83
101
|
|
|
84
102
|
**Example**: [Dynamic credentials workflow](examples/structflow-dynamic-inline-demo.json)
|
|
85
103
|
|
|
86
104
|
## Usage
|
|
87
105
|
|
|
88
|
-
> 💡 **
|
|
106
|
+
> 💡 **Examples**: All ready-to-use workflows are in [`examples/`](examples/). Each individual demo requires a **LDXhub API** credential and a placeholder input file path to be updated.
|
|
89
107
|
|
|
90
108
|
1. Add **LDXhub API** credentials (see [Credentials Setup](#credentials-setup))
|
|
91
109
|
2. Add the **LDXhub** node to your workflow
|
|
@@ -99,7 +117,7 @@ The Model dropdown loads from LDX hub's public metadata endpoints without authen
|
|
|
99
117
|
- **Inline Inputs**: Provide ID + Data pairs directly in the workflow (good for small batches, quick prototyping)
|
|
100
118
|
- **Binary File**: Provide a JSONL file as binary input (good for large batches, or as part of an ExtractDoc → StructFlow pipeline)
|
|
101
119
|
|
|
102
|
-
**Examples**: [Inline mode](examples/structflow-inline-demo.json) · [Binary mode](examples/structflow-binary-demo.json)
|
|
120
|
+
**Examples**: [Inline mode](examples/structflow-inline-demo.json) · [Binary mode](examples/structflow-binary-demo.json) · [Dynamic API key](examples/structflow-dynamic-inline-demo.json)
|
|
103
121
|
|
|
104
122
|
### RefineLoop — XLIFF translation refinement
|
|
105
123
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IAuthenticateGeneric, Icon,
|
|
1
|
+
import type { IAuthenticateGeneric, Icon, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
2
|
export declare class LdxHubApi implements ICredentialType {
|
|
3
3
|
name: string;
|
|
4
4
|
displayName: string;
|
|
@@ -6,5 +6,4 @@ export declare class LdxHubApi implements ICredentialType {
|
|
|
6
6
|
documentationUrl: string;
|
|
7
7
|
properties: INodeProperties[];
|
|
8
8
|
authenticate: IAuthenticateGeneric;
|
|
9
|
-
test: ICredentialTestRequest;
|
|
10
9
|
}
|
|
@@ -23,7 +23,7 @@ class LdxHubApi {
|
|
|
23
23
|
typeOptions: { password: true },
|
|
24
24
|
default: '',
|
|
25
25
|
required: true,
|
|
26
|
-
description: 'Get a free
|
|
26
|
+
description: 'Your LDX hub API key. Supports expressions for per-execution keys (e.g., {{ $json.api_key }}). Get a free key at https://gw.portal.ldxhub.io.',
|
|
27
27
|
},
|
|
28
28
|
];
|
|
29
29
|
this.authenticate = {
|
|
@@ -34,13 +34,6 @@ class LdxHubApi {
|
|
|
34
34
|
},
|
|
35
35
|
},
|
|
36
36
|
};
|
|
37
|
-
this.test = {
|
|
38
|
-
request: {
|
|
39
|
-
baseURL: '={{$credentials.baseUrl}}',
|
|
40
|
-
url: '/refineloop/models',
|
|
41
|
-
method: 'GET',
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
37
|
}
|
|
45
38
|
}
|
|
46
39
|
exports.LdxHubApi = LdxHubApi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LdxHubApi.credentials.js","sourceRoot":"","sources":["../../credentials/LdxHubApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,SAAS;IAAtB;QACC,SAAI,GAAG,WAAW,CAAC;QAEnB,gBAAW,GAAG,YAAY,CAAC;QAE3B,SAAI,GAAS,iBAAiB,CAAC;QAE/B,qBAAgB,GAAG,0CAA0C,CAAC;QAE9D,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,sBAAsB;gBAC/B,WAAW,EAAE,sBAAsB;gBACnC,WAAW,EAAE,mDAAmD;aAChE;YACD;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"LdxHubApi.credentials.js","sourceRoot":"","sources":["../../credentials/LdxHubApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,SAAS;IAAtB;QACC,SAAI,GAAG,WAAW,CAAC;QAEnB,gBAAW,GAAG,YAAY,CAAC;QAE3B,SAAI,GAAS,iBAAiB,CAAC;QAE/B,qBAAgB,GAAG,0CAA0C,CAAC;QAE9D,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,sBAAsB;gBAC/B,WAAW,EAAE,sBAAsB;gBACnC,WAAW,EAAE,mDAAmD;aAChE;YACD;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,+IAA+I;aAC5J;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,kCAAkC;iBACjD;aACD;SACD,CAAC;IACH,CAAC;CAAA;AArCD,8BAqCC"}
|
|
@@ -41,40 +41,9 @@ class LdxHub {
|
|
|
41
41
|
{
|
|
42
42
|
name: 'ldxHubApi',
|
|
43
43
|
required: true,
|
|
44
|
-
displayOptions: {
|
|
45
|
-
show: {
|
|
46
|
-
authentication: ['apiKey'],
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: 'ldxHubDynamicApi',
|
|
52
|
-
required: true,
|
|
53
|
-
displayOptions: {
|
|
54
|
-
show: {
|
|
55
|
-
authentication: ['apiKeyDynamic'],
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
44
|
},
|
|
59
45
|
],
|
|
60
46
|
properties: [
|
|
61
|
-
{
|
|
62
|
-
displayName: 'Authentication',
|
|
63
|
-
name: 'authentication',
|
|
64
|
-
type: 'options',
|
|
65
|
-
options: [
|
|
66
|
-
{
|
|
67
|
-
name: 'API Key',
|
|
68
|
-
value: 'apiKey',
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
name: 'API Key (Dynamic)',
|
|
72
|
-
value: 'apiKeyDynamic',
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
default: 'apiKey',
|
|
76
|
-
description: 'How to authenticate. Use "Dynamic" for per-execution API keys via expressions (e.g., form input).',
|
|
77
|
-
},
|
|
78
47
|
{
|
|
79
48
|
displayName: 'Resource',
|
|
80
49
|
name: 'resource',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LdxHub.node.js","sourceRoot":"","sources":["../../../nodes/LdxHub/LdxHub.node.ts"],"names":[],"mappings":";;;AAMA,+CAAuE;AAEvE,+EAA4E;AAC5E,2FAAwF;AACxF,qFAAkF;AAClF,iGAA8F;AAC9F,+DAA4D;AAC5D,mFAAgF;AAChF,uFAAoF;AACpF,+FAA4F;AAC5F,mFAAgF;AAChF,iDAAyD;AACzD,uEAA2F;AAC3F,uDAA+D;AAC/D,0EAAiG;AACjG,uDAA+D;AAC/D,0EAAiG;AACjG,qDAA6D;AAC7D,yEAA+F;AAC/F,uDAA+D;AAC/D,0EAAiG;AAEjG,MAAa,MAAM;IAAnB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,QAAQ;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,8DAA8D;YAC3E,QAAQ,EAAE;gBACT,IAAI,EAAE,QAAQ;aACd;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"LdxHub.node.js","sourceRoot":"","sources":["../../../nodes/LdxHub/LdxHub.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,32 +4,18 @@ exports.DEFAULT_LDX_HUB_BASE_URL = void 0;
|
|
|
4
4
|
exports.getBaseUrl = getBaseUrl;
|
|
5
5
|
exports.ldxHubApiRequest = ldxHubApiRequest;
|
|
6
6
|
exports.DEFAULT_LDX_HUB_BASE_URL = 'https://gw.ldxhub.io';
|
|
7
|
-
async function getAuthenticationMode() {
|
|
8
|
-
try {
|
|
9
|
-
return this.getNodeParameter('authentication', 0, 'apiKey');
|
|
10
|
-
}
|
|
11
|
-
catch {
|
|
12
|
-
return 'apiKey';
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function getCredentialNameForMode(authentication) {
|
|
16
|
-
return authentication === 'apiKeyDynamic' ? 'ldxHubDynamicApi' : 'ldxHubApi';
|
|
17
|
-
}
|
|
18
7
|
function isPublicEndpoint(endpoint) {
|
|
19
8
|
return /\/(models|engines)$/.test(endpoint);
|
|
20
9
|
}
|
|
21
10
|
async function getBaseUrl() {
|
|
22
11
|
var _a;
|
|
23
|
-
const
|
|
24
|
-
const credentialName = getCredentialNameForMode(authentication);
|
|
25
|
-
const credentials = await this.getCredentials(credentialName);
|
|
12
|
+
const credentials = await this.getCredentials('ldxHubApi');
|
|
26
13
|
const raw = (_a = credentials.baseUrl) !== null && _a !== void 0 ? _a : exports.DEFAULT_LDX_HUB_BASE_URL;
|
|
27
14
|
const trimmed = raw.trim().replace(/\/+$/, '');
|
|
28
15
|
return trimmed.length > 0 ? trimmed : exports.DEFAULT_LDX_HUB_BASE_URL;
|
|
29
16
|
}
|
|
30
17
|
async function ldxHubApiRequest(method, endpoint, body = undefined, qs = {}) {
|
|
31
|
-
|
|
32
|
-
if (authentication === 'apiKeyDynamic' && isPublicEndpoint(endpoint)) {
|
|
18
|
+
if (isPublicEndpoint(endpoint)) {
|
|
33
19
|
const options = {
|
|
34
20
|
method,
|
|
35
21
|
url: `${exports.DEFAULT_LDX_HUB_BASE_URL}${endpoint}`,
|
|
@@ -47,7 +33,6 @@ async function ldxHubApiRequest(method, endpoint, body = undefined, qs = {}) {
|
|
|
47
33
|
body,
|
|
48
34
|
json: true,
|
|
49
35
|
};
|
|
50
|
-
|
|
51
|
-
return this.helpers.httpRequestWithAuthentication.call(this, credentialName, options);
|
|
36
|
+
return this.helpers.httpRequestWithAuthentication.call(this, 'ldxHubApi', options);
|
|
52
37
|
}
|
|
53
38
|
//# sourceMappingURL=transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../nodes/LdxHub/shared/transport.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../nodes/LdxHub/shared/transport.ts"],"names":[],"mappings":";;;AAeA,gCAOC;AAED,4CA2BC;AA1CY,QAAA,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,SAAS,gBAAgB,CAAC,QAAgB;IACzC,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,UAAU;;IAG/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAC,WAAW,CAAC,OAA8B,mCAAI,gCAAwB,CAAC;IACpF,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAwB,CAAC;AAChE,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAErC,MAA2B,EAC3B,QAAgB,EAChB,OAAgC,SAAS,EACzC,KAAkB,EAAE;IAEpB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAAwB;YACpC,MAAM;YACN,GAAG,EAAE,GAAG,gCAAwB,GAAG,QAAQ,EAAE;YAC7C,EAAE;YACF,IAAI;YACJ,IAAI,EAAE,IAAI;SACV,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAwB;QACpC,MAAM;QACN,GAAG,EAAE,GAAG,OAAO,GAAG,QAAQ,EAAE;QAC5B,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI;KACV,CAAC;IACF,OAAO,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AACpF,CAAC"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-ldxhub",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "n8n community node for LDX hub — AI-powered document processing platform with structured data extraction (StructFlow), layout-preserving OCR (RenderOCR), text-based PDF conversion (CastDoc), and XLIFF translation refinement (RefineLoop)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://ldxlab.io/ldxhub",
|
|
@@ -59,8 +59,7 @@
|
|
|
59
59
|
"n8nNodesApiVersion": 1,
|
|
60
60
|
"strict": true,
|
|
61
61
|
"credentials": [
|
|
62
|
-
"dist/credentials/LdxHubApi.credentials.js"
|
|
63
|
-
"dist/credentials/LdxHubDynamicApi.credentials.js"
|
|
62
|
+
"dist/credentials/LdxHubApi.credentials.js"
|
|
64
63
|
],
|
|
65
64
|
"nodes": [
|
|
66
65
|
"dist/nodes/LdxHub/LdxHub.node.js"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-ldxhub",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "n8n community node for LDX hub — AI-powered document processing platform with structured data extraction (StructFlow), layout-preserving OCR (RenderOCR), text-based PDF conversion (CastDoc), and XLIFF translation refinement (RefineLoop)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://ldxlab.io/ldxhub",
|
|
@@ -59,8 +59,7 @@
|
|
|
59
59
|
"n8nNodesApiVersion": 1,
|
|
60
60
|
"strict": true,
|
|
61
61
|
"credentials": [
|
|
62
|
-
"dist/credentials/LdxHubApi.credentials.js"
|
|
63
|
-
"dist/credentials/LdxHubDynamicApi.credentials.js"
|
|
62
|
+
"dist/credentials/LdxHubApi.credentials.js"
|
|
64
63
|
],
|
|
65
64
|
"nodes": [
|
|
66
65
|
"dist/nodes/LdxHub/LdxHub.node.js"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { IAuthenticateGeneric, Icon, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
-
export declare class LdxHubDynamicApi implements ICredentialType {
|
|
3
|
-
name: string;
|
|
4
|
-
displayName: string;
|
|
5
|
-
icon: Icon;
|
|
6
|
-
documentationUrl: string;
|
|
7
|
-
properties: INodeProperties[];
|
|
8
|
-
authenticate: IAuthenticateGeneric;
|
|
9
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LdxHubDynamicApi = void 0;
|
|
4
|
-
class LdxHubDynamicApi {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.name = 'ldxHubDynamicApi';
|
|
7
|
-
this.displayName = 'LDXhub Dynamic API';
|
|
8
|
-
this.icon = 'file:ldxhub.svg';
|
|
9
|
-
this.documentationUrl = 'https://gw.portal.ldxhub.io/introduction';
|
|
10
|
-
this.properties = [
|
|
11
|
-
{
|
|
12
|
-
displayName: 'Base URL',
|
|
13
|
-
name: 'baseUrl',
|
|
14
|
-
type: 'string',
|
|
15
|
-
default: 'https://gw.ldxhub.io',
|
|
16
|
-
placeholder: 'https://gw.ldxhub.io',
|
|
17
|
-
description: 'LDX hub API base URL (e.g., https://gw.ldxhub.io)',
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
displayName: 'API Key',
|
|
21
|
-
name: 'apiKey',
|
|
22
|
-
type: 'string',
|
|
23
|
-
typeOptions: { password: true },
|
|
24
|
-
default: '',
|
|
25
|
-
required: true,
|
|
26
|
-
description: 'API Key for per-execution authentication. Use expressions to resolve at runtime (e.g., {{ $json.api_key }}). No connection test on save.',
|
|
27
|
-
},
|
|
28
|
-
];
|
|
29
|
-
this.authenticate = {
|
|
30
|
-
type: 'generic',
|
|
31
|
-
properties: {
|
|
32
|
-
headers: {
|
|
33
|
-
Authorization: '=Bearer {{$credentials?.apiKey}}',
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.LdxHubDynamicApi = LdxHubDynamicApi;
|
|
40
|
-
//# sourceMappingURL=LdxHubDynamicApi.credentials.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LdxHubDynamicApi.credentials.js","sourceRoot":"","sources":["../../credentials/LdxHubDynamicApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,gBAAgB;IAA7B;QACC,SAAI,GAAG,kBAAkB,CAAC;QAE1B,gBAAW,GAAG,oBAAoB,CAAC;QAEnC,SAAI,GAAS,iBAAiB,CAAC;QAE/B,qBAAgB,GAAG,0CAA0C,CAAC;QAE9D,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,sBAAsB;gBAC/B,WAAW,EAAE,sBAAsB;gBACnC,WAAW,EAAE,mDAAmD;aAChE;YACD;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,0IAA0I;aACvJ;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,kCAAkC;iBACjD;aACD;SACD,CAAC;IACH,CAAC;CAAA;AArCD,4CAqCC"}
|