n8n-nodes-whm 1.0.0 → 1.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 CHANGED
@@ -63,6 +63,48 @@ Then in n8n add a **WHM API** credential:
63
63
 
64
64
  The credential **Test** button calls the harmless `version` function.
65
65
 
66
+ ## HashiCorp Vault mode
67
+
68
+ WHM API tokens are all-or-nothing, so keeping them out of n8n is worth doing. Set
69
+ the node's **Authentication** to **HashiCorp Vault** and it reads the host and
70
+ token from Vault on every execution instead of from an n8n credential. The
71
+ **Server** field picks which WHM server, and it accepts an expression, so a single
72
+ node can reach any server (for example `{{ $json.server_id }}`).
73
+
74
+ One secret per server in a KV engine, at `<KV Mount>/<Path Prefix>/<Server>`:
75
+
76
+ | key | required | value |
77
+ |-----|----------|-------|
78
+ | `host` | yes | `whm.example.com`, `whm.example.com:2087` or `https://whm.example.com:2087` |
79
+ | `token` | yes | the WHM API token |
80
+ | `user` | no | WHM user the token belongs to, default `root` (a reseller works too) |
81
+ | `port` | no | overrides the port in `host`; default 2087, or 2086 without SSL |
82
+ | `use_ssl` | no | `true` / `false`, default `true` (an `http://` host implies `false`) |
83
+ | `allow_unauthorized_certs` | no | `true` for a WHM that still has its self-signed certificate |
84
+
85
+ ```bash
86
+ vault kv put secret/n8n/whm/main host=https://whm.example.com:2087 token=THE_TOKEN user=root
87
+ ```
88
+
89
+ Then add a **WHM (HashiCorp Vault) API** credential: Vault URL, AppRole
90
+ (Role ID + Secret ID) or a token, KV mount, KV version and path prefix (`n8n/whm`
91
+ for the example above). Its **Test** button logs in and lists the servers it can
92
+ see. A minimal read-only policy:
93
+
94
+ ```hcl
95
+ path "secret/data/n8n/whm/*" { capabilities = ["read"] }
96
+ path "secret/metadata/n8n/whm/*" { capabilities = ["list", "read"] }
97
+ path "secret/metadata/n8n/whm" { capabilities = ["list"] } # only for the credential Test
98
+ path "auth/token/revoke-self" { capabilities = ["update"] }
99
+ ```
100
+
101
+ Per execution the node logs in once (AppRole), reads each distinct server's
102
+ secret once, and revokes its own token when it finishes, even if an item
103
+ fails. A static token set in the credential is used as-is and never revoked.
104
+ The server name must be letters, digits, `.`, `-` or `_`, so an expression cannot
105
+ walk to another Vault path. The WHM token never appears in the node's output.
106
+ Rotating a token is a `vault kv put`; nothing in n8n changes.
107
+
66
108
  ## What the WHM node can do
67
109
 
68
110
  | Resource | Operations |
@@ -0,0 +1,7 @@
1
+ import type { ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class WhmVaultApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ }
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhmVaultApi = void 0;
4
+ class WhmVaultApi {
5
+ constructor() {
6
+ this.name = 'whmVaultApi';
7
+ this.displayName = 'WHM (HashiCorp Vault) API';
8
+ this.documentationUrl = 'https://github.com/Falcyn/n8n-nodes-whm#hashicorp-vault-mode';
9
+ this.properties = [
10
+ {
11
+ displayName: 'Vault URL',
12
+ name: 'vaultUrl',
13
+ type: 'string',
14
+ default: '',
15
+ placeholder: 'https://vault.example.com:8200',
16
+ required: true,
17
+ description: 'Base URL of the Vault server, without /v1',
18
+ },
19
+ {
20
+ displayName: 'Authentication',
21
+ name: 'authMethod',
22
+ type: 'options',
23
+ default: 'appRole',
24
+ options: [
25
+ {
26
+ name: 'AppRole',
27
+ value: 'appRole',
28
+ description: 'Recommended. Logs in per execution and revokes the short-lived token afterwards.',
29
+ },
30
+ {
31
+ name: 'Token',
32
+ value: 'token',
33
+ description: 'A long-lived Vault token. It is never revoked by the node.',
34
+ },
35
+ ],
36
+ },
37
+ {
38
+ displayName: 'Role ID',
39
+ name: 'roleId',
40
+ type: 'string',
41
+ default: '',
42
+ displayOptions: { show: { authMethod: ['appRole'] } },
43
+ required: true,
44
+ },
45
+ {
46
+ displayName: 'Secret ID',
47
+ name: 'secretId',
48
+ type: 'string',
49
+ typeOptions: { password: true },
50
+ default: '',
51
+ displayOptions: { show: { authMethod: ['appRole'] } },
52
+ required: true,
53
+ },
54
+ {
55
+ displayName: 'AppRole Mount Path',
56
+ name: 'appRolePath',
57
+ type: 'string',
58
+ default: 'approle',
59
+ displayOptions: { show: { authMethod: ['appRole'] } },
60
+ description: 'Mount path of the AppRole auth method, without auth/',
61
+ },
62
+ {
63
+ displayName: 'Token',
64
+ name: 'token',
65
+ type: 'string',
66
+ typeOptions: { password: true },
67
+ default: '',
68
+ displayOptions: { show: { authMethod: ['token'] } },
69
+ required: true,
70
+ },
71
+ {
72
+ displayName: 'KV Mount',
73
+ name: 'kvMount',
74
+ type: 'string',
75
+ default: 'secret',
76
+ description: 'Mount path of the KV secrets engine that holds the WHM secrets',
77
+ },
78
+ {
79
+ displayName: 'KV Version',
80
+ name: 'kvVersion',
81
+ type: 'options',
82
+ default: 'v2',
83
+ options: [
84
+ { name: 'V1', value: 'v1' },
85
+ { name: 'V2', value: 'v2' },
86
+ ],
87
+ },
88
+ {
89
+ displayName: 'Path Prefix',
90
+ name: 'pathPrefix',
91
+ type: 'string',
92
+ default: 'whm',
93
+ placeholder: 'n8n/whm',
94
+ description: 'Folder under the KV mount that holds one secret per WHM server. The node reads <KV Mount>/<Path Prefix>/<Server>.',
95
+ },
96
+ {
97
+ displayName: 'Namespace',
98
+ name: 'namespace',
99
+ type: 'string',
100
+ default: '',
101
+ description: 'Vault Enterprise namespace. Leave empty otherwise.',
102
+ },
103
+ {
104
+ displayName: 'Ignore Vault SSL Issues',
105
+ name: 'allowUnauthorizedCerts',
106
+ type: 'boolean',
107
+ default: false,
108
+ description: 'Whether to connect to Vault even if its certificate cannot be validated. Applies to Vault only; WHM uses allow_unauthorized_certs in each secret.',
109
+ },
110
+ ];
111
+ }
112
+ }
113
+ exports.WhmVaultApi = WhmVaultApi;
114
+ //# sourceMappingURL=WhmVaultApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhmVaultApi.credentials.js","sourceRoot":"","sources":["../../credentials/WhmVaultApi.credentials.ts"],"names":[],"mappings":";;;AAWA,MAAa,WAAW;IAAxB;QACC,SAAI,GAAG,aAAa,CAAC;QAErB,gBAAW,GAAG,2BAA2B,CAAC;QAE1C,qBAAgB,GAAG,8DAA8D,CAAC;QAElF,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,2CAA2C;aACxD;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;wBAChB,WAAW,EAAE,kFAAkF;qBAC/F;oBACD;wBACC,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,OAAO;wBACd,WAAW,EAAE,4DAA4D;qBACzE;iBACD;aACD;YACD;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;gBACrD,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;gBACrD,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,SAAS;gBAClB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;gBACrD,WAAW,EAAE,sDAAsD;aACnE;YACD;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;gBACnD,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,gEAAgE;aAC7E;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACR,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;oBAC3B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;iBAC3B;aACD;YACD;gBACC,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,SAAS;gBACtB,WAAW,EACV,mHAAmH;aACpH;YACD;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,oDAAoD;aACjE;YACD;gBACC,WAAW,EAAE,yBAAyB;gBACtC,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK;gBACd,WAAW,EACV,mJAAmJ;aACpJ;SACD,CAAC;IACH,CAAC;CAAA;AA/GD,kCA+GC"}
@@ -1,4 +1,5 @@
1
1
  import type { IDataObject, IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions } from 'n8n-workflow';
2
+ import type { WhmConnection } from './VaultFunctions';
2
3
  type Ctx = IExecuteFunctions | ILoadOptionsFunctions | IHookFunctions;
3
4
  export type ApiKind = 'whm' | 'uapi' | 'api2';
4
5
  export declare function whmBaseUrl(credentials: IDataObject): string;
@@ -7,8 +8,8 @@ export declare function encodeForm(params: IDataObject): string;
7
8
  export declare function safeMerge(target: IDataObject, source: IDataObject | undefined): IDataObject;
8
9
  export declare function parseCustomParameters(raw: IDataObject | undefined): IDataObject;
9
10
  export declare function parseJsonParameter(this: IExecuteFunctions, value: unknown, fieldName: string, itemIndex: number): IDataObject;
10
- export declare function whmApiRequest(this: Ctx, fn: string, params?: IDataObject): Promise<IDataObject>;
11
- export declare function cpanelApiRequest(this: Ctx, kind: 'uapi' | 'api2', cpanelUser: string, module: string, fn: string, params?: IDataObject): Promise<IDataObject>;
11
+ export declare function whmApiRequest(this: Ctx, fn: string, params?: IDataObject, conn?: WhmConnection): Promise<IDataObject>;
12
+ export declare function cpanelApiRequest(this: Ctx, kind: 'uapi' | 'api2', cpanelUser: string, module: string, fn: string, params?: IDataObject, conn?: WhmConnection): Promise<IDataObject>;
12
13
  export declare function extractData(kind: ApiKind, response: IDataObject): unknown;
13
14
  export declare function toRecordList(payload: unknown, dataKey?: string): IDataObject[];
14
15
  export declare function whmFieldSpec(index: number): string;
@@ -122,22 +122,38 @@ function parseJsonParameter(value, fieldName, itemIndex) {
122
122
  });
123
123
  }
124
124
  }
125
- async function rawRequest(path, form) {
126
- const credentials = await this.getCredentials('whmApi');
127
- const options = {
128
- method: 'POST',
129
- url: `${whmBaseUrl(credentials)}${path}`,
130
- body: form,
131
- headers: {
132
- 'Content-Type': 'application/x-www-form-urlencoded',
133
- Accept: 'application/json',
134
- },
135
- json: true,
136
- skipSslCertificateValidation: credentials.allowUnauthorizedCerts === true,
125
+ async function rawRequest(path, form, conn) {
126
+ const headers = {
127
+ 'Content-Type': 'application/x-www-form-urlencoded',
128
+ Accept: 'application/json',
137
129
  };
130
+ let options;
131
+ if (conn) {
132
+ options = {
133
+ method: 'POST',
134
+ url: `${conn.baseUrl}${path}`,
135
+ body: form,
136
+ headers: { ...headers, Authorization: conn.authorization },
137
+ json: true,
138
+ skipSslCertificateValidation: conn.skipSsl,
139
+ };
140
+ }
141
+ else {
142
+ const credentials = await this.getCredentials('whmApi');
143
+ options = {
144
+ method: 'POST',
145
+ url: `${whmBaseUrl(credentials)}${path}`,
146
+ body: form,
147
+ headers,
148
+ json: true,
149
+ skipSslCertificateValidation: credentials.allowUnauthorizedCerts === true,
150
+ };
151
+ }
138
152
  let response;
139
153
  try {
140
- response = await this.helpers.httpRequestWithAuthentication.call(this, 'whmApi', options);
154
+ response = conn
155
+ ? await this.helpers.httpRequest(options)
156
+ : await this.helpers.httpRequestWithAuthentication.call(this, 'whmApi', options);
141
157
  }
142
158
  catch (error) {
143
159
  try {
@@ -164,14 +180,14 @@ async function rawRequest(path, form) {
164
180
  }
165
181
  return response;
166
182
  }
167
- async function whmApiRequest(fn, params = {}) {
183
+ async function whmApiRequest(fn, params = {}, conn) {
168
184
  var _a, _b;
169
185
  const name = fn.trim();
170
186
  if (!/^[A-Za-z0-9_]+$/.test(name)) {
171
187
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `"${fn}" is not a valid WHM API function name.`);
172
188
  }
173
189
  const form = encodeForm({ 'api.version': 1, ...params });
174
- const response = await rawRequest.call(this, `/json-api/${name}`, form);
190
+ const response = await rawRequest.call(this, `/json-api/${name}`, form, conn);
175
191
  const metadata = ((_a = response.metadata) !== null && _a !== void 0 ? _a : {});
176
192
  if (metadata.result !== undefined && Number(metadata.result) === 0) {
177
193
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `WHM API error on "${name}": ${(_b = metadata.reason) !== null && _b !== void 0 ? _b : 'Unknown error'}`, {
@@ -184,7 +200,7 @@ async function whmApiRequest(fn, params = {}) {
184
200
  }
185
201
  return response;
186
202
  }
187
- async function cpanelApiRequest(kind, cpanelUser, module, fn, params = {}) {
203
+ async function cpanelApiRequest(kind, cpanelUser, module, fn, params = {}, conn) {
188
204
  var _a, _b, _c, _d, _e, _f, _g, _h;
189
205
  const user = cpanelUser.trim();
190
206
  if (!/^[A-Za-z0-9_.-]+$/.test(user)) {
@@ -201,7 +217,7 @@ async function cpanelApiRequest(kind, cpanelUser, module, fn, params = {}) {
201
217
  cpanel_jsonapi_func: fn.trim(),
202
218
  ...params,
203
219
  });
204
- const response = await rawRequest.call(this, '/json-api/cpanel', form);
220
+ const response = await rawRequest.call(this, '/json-api/cpanel', form, conn);
205
221
  const metadata = response.metadata;
206
222
  if (metadata && metadata.result !== undefined && Number(metadata.result) === 0) {
207
223
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `WHM error calling ${module}::${fn} for "${user}": ${metadata.reason}`);
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Whm/GenericFunctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Whm/GenericFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { IDataObject } from 'n8n-workflow';
2
+ export interface WhmConnection {
3
+ baseUrl: string;
4
+ authorization: string;
5
+ skipSsl: boolean;
6
+ }
7
+ export interface VaultHttpRequest {
8
+ method: 'GET' | 'POST';
9
+ url: string;
10
+ headers: IDataObject;
11
+ body?: IDataObject;
12
+ skipSsl: boolean;
13
+ }
14
+ export interface VaultHttpResponse {
15
+ status: number;
16
+ body: IDataObject;
17
+ }
18
+ export type VaultSend = (request: VaultHttpRequest) => Promise<VaultHttpResponse>;
19
+ export declare class VaultError extends Error {
20
+ readonly description?: string | undefined;
21
+ constructor(message: string, description?: string | undefined);
22
+ }
23
+ export declare function cleanServerName(raw: unknown): string;
24
+ export declare function connectionFromSecret(secret: IDataObject, where: string): WhmConnection;
25
+ export declare class WhmVaultSession {
26
+ private readonly credentials;
27
+ private readonly send;
28
+ private token;
29
+ private ownsToken;
30
+ private readonly cache;
31
+ private readonly baseUrl;
32
+ private readonly skipSsl;
33
+ constructor(credentials: IDataObject, send: VaultSend);
34
+ private headers;
35
+ private call;
36
+ login(): Promise<void>;
37
+ private secretPath;
38
+ connection(serverName: unknown): Promise<WhmConnection>;
39
+ private load;
40
+ listServers(): Promise<string[] | null>;
41
+ close(): Promise<void>;
42
+ }
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhmVaultSession = exports.VaultError = void 0;
4
+ exports.cleanServerName = cleanServerName;
5
+ exports.connectionFromSecret = connectionFromSecret;
6
+ class VaultError extends Error {
7
+ constructor(message, description) {
8
+ super(message);
9
+ this.description = description;
10
+ this.name = 'VaultError';
11
+ }
12
+ }
13
+ exports.VaultError = VaultError;
14
+ const SEGMENT = /^[A-Za-z0-9_.-]+$/;
15
+ const SERVER_NAME = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/;
16
+ const WHM_USER = /^[A-Za-z0-9_.-]{1,64}$/;
17
+ const HOSTNAME = /^(?:[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)*|\[[0-9A-Fa-f:.]+\])$/;
18
+ function cleanPath(raw, label, allowEmpty) {
19
+ const segments = String(raw !== null && raw !== void 0 ? raw : '')
20
+ .split('/')
21
+ .map((s) => s.trim())
22
+ .filter((s) => s !== '');
23
+ if (!segments.length && !allowEmpty)
24
+ throw new Error(`${label} is empty.`);
25
+ for (const s of segments) {
26
+ if (!SEGMENT.test(s) || s === '.' || s === '..') {
27
+ throw new Error(`${label} "${String(raw)}" contains an invalid segment "${s}".`);
28
+ }
29
+ }
30
+ return segments.join('/');
31
+ }
32
+ function cleanServerName(raw) {
33
+ const name = String(raw !== null && raw !== void 0 ? raw : '').trim();
34
+ if (!SERVER_NAME.test(name) || name.includes('..')) {
35
+ throw new Error(`"${name}" is not a valid server name. Use letters, digits, dot, dash or underscore (it becomes the last segment of the Vault path).`);
36
+ }
37
+ return name;
38
+ }
39
+ function asBool(value, fallback) {
40
+ if (value === undefined || value === null || value === '')
41
+ return fallback;
42
+ if (typeof value === 'boolean')
43
+ return value;
44
+ const s = String(value).trim().toLowerCase();
45
+ if (['1', 'true', 'yes', 'on'].includes(s))
46
+ return true;
47
+ if (['0', 'false', 'no', 'off'].includes(s))
48
+ return false;
49
+ return fallback;
50
+ }
51
+ function vaultErrors(body) {
52
+ const errors = body === null || body === void 0 ? void 0 : body.errors;
53
+ if (Array.isArray(errors) && errors.length)
54
+ return errors.map(String).join('; ');
55
+ return '';
56
+ }
57
+ function connectionFromSecret(secret, where) {
58
+ var _a, _b, _c;
59
+ const token = String((_a = secret.token) !== null && _a !== void 0 ? _a : '').trim();
60
+ if (!token)
61
+ throw new Error(`Vault secret ${where} has no "token" key.`);
62
+ const rawHost = String((_b = secret.host) !== null && _b !== void 0 ? _b : '').trim();
63
+ if (!rawHost)
64
+ throw new Error(`Vault secret ${where} has no "host" key.`);
65
+ let host = rawHost;
66
+ let useSsl;
67
+ let port;
68
+ const scheme = /^(https?):\/\//i.exec(host);
69
+ if (scheme) {
70
+ useSsl = scheme[1].toLowerCase() === 'https';
71
+ host = host.slice(scheme[0].length);
72
+ }
73
+ host = host.replace(/\/.*$/, '');
74
+ const hostPort = /^(.*?):(\d{1,5})$/.exec(host);
75
+ if (hostPort && !host.endsWith(']')) {
76
+ host = hostPort[1];
77
+ port = Number(hostPort[2]);
78
+ }
79
+ if (!HOSTNAME.test(host))
80
+ throw new Error(`Vault secret ${where} has an invalid "host" value.`);
81
+ useSsl = asBool(secret.use_ssl, useSsl !== null && useSsl !== void 0 ? useSsl : true);
82
+ if (secret.port !== undefined && secret.port !== null && secret.port !== '')
83
+ port = Number(secret.port);
84
+ if (port === undefined)
85
+ port = useSsl ? 2087 : 2086;
86
+ if (!Number.isInteger(port) || port < 1 || port > 65535) {
87
+ throw new Error(`Vault secret ${where} has an invalid "port" value.`);
88
+ }
89
+ const user = String((_c = secret.user) !== null && _c !== void 0 ? _c : 'root').trim() || 'root';
90
+ if (!WHM_USER.test(user))
91
+ throw new Error(`Vault secret ${where} has an invalid "user" value.`);
92
+ return {
93
+ baseUrl: `${useSsl ? 'https' : 'http'}://${host}:${port}`,
94
+ authorization: `whm ${user}:${token}`,
95
+ skipSsl: asBool(secret.allow_unauthorized_certs, false),
96
+ };
97
+ }
98
+ class WhmVaultSession {
99
+ constructor(credentials, send) {
100
+ var _a;
101
+ this.credentials = credentials;
102
+ this.send = send;
103
+ this.token = '';
104
+ this.ownsToken = false;
105
+ this.cache = new Map();
106
+ const url = String((_a = credentials.vaultUrl) !== null && _a !== void 0 ? _a : '')
107
+ .trim()
108
+ .replace(/\/+$/, '')
109
+ .replace(/\/v1$/, '');
110
+ if (!/^https?:\/\/[^/\s]+/i.test(url))
111
+ throw new Error('The Vault URL in the credential must start with http:// or https://.');
112
+ this.baseUrl = url;
113
+ this.skipSsl = credentials.allowUnauthorizedCerts === true;
114
+ }
115
+ headers(withToken) {
116
+ var _a;
117
+ const h = {
118
+ 'Content-Type': 'application/json',
119
+ Accept: 'application/json',
120
+ };
121
+ const ns = String((_a = this.credentials.namespace) !== null && _a !== void 0 ? _a : '').trim();
122
+ if (ns)
123
+ h['X-Vault-Namespace'] = ns;
124
+ if (withToken)
125
+ h['X-Vault-Token'] = this.token;
126
+ return h;
127
+ }
128
+ async call(method, path, body, withToken = true) {
129
+ var _a;
130
+ try {
131
+ return await this.send({
132
+ method,
133
+ url: `${this.baseUrl}/v1/${path}`,
134
+ headers: this.headers(withToken),
135
+ body,
136
+ skipSsl: this.skipSsl,
137
+ });
138
+ }
139
+ catch (error) {
140
+ throw new VaultError(`Could not reach Vault at ${this.baseUrl}.`, (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : 'unknown error');
141
+ }
142
+ }
143
+ async login() {
144
+ var _a, _b, _c, _d, _e;
145
+ if (this.token)
146
+ return;
147
+ if (this.credentials.authMethod === 'token') {
148
+ this.token = String((_a = this.credentials.token) !== null && _a !== void 0 ? _a : '').trim();
149
+ if (!this.token)
150
+ throw new Error('The Vault token in the credential is empty.');
151
+ return;
152
+ }
153
+ const mount = cleanPath(this.credentials.appRolePath || 'approle', 'AppRole mount path', false);
154
+ const res = await this.call('POST', `auth/${mount}/login`, {
155
+ role_id: String((_b = this.credentials.roleId) !== null && _b !== void 0 ? _b : ''),
156
+ secret_id: String((_c = this.credentials.secretId) !== null && _c !== void 0 ? _c : ''),
157
+ }, false);
158
+ const clientToken = (_e = (_d = res.body) === null || _d === void 0 ? void 0 : _d.auth) === null || _e === void 0 ? void 0 : _e.client_token;
159
+ if (res.status !== 200 || typeof clientToken !== 'string' || !clientToken) {
160
+ throw new Error(`Vault AppRole login failed (HTTP ${res.status}). ${vaultErrors(res.body) || 'No client_token returned.'}`);
161
+ }
162
+ this.token = clientToken;
163
+ this.ownsToken = true;
164
+ }
165
+ secretPath(server, metadata = false) {
166
+ const mount = cleanPath(this.credentials.kvMount || 'secret', 'KV mount', false);
167
+ const prefix = cleanPath(this.credentials.pathPrefix, 'Path prefix', true);
168
+ const rest = [prefix, server].filter(Boolean).join('/');
169
+ if (this.credentials.kvVersion === 'v1')
170
+ return `${mount}/${rest}`;
171
+ return `${mount}/${metadata ? 'metadata' : 'data'}/${rest}`;
172
+ }
173
+ async connection(serverName) {
174
+ const server = cleanServerName(serverName);
175
+ let pending = this.cache.get(server);
176
+ if (!pending) {
177
+ pending = this.load(server);
178
+ this.cache.set(server, pending);
179
+ pending.catch(() => this.cache.delete(server));
180
+ }
181
+ return await pending;
182
+ }
183
+ async load(server) {
184
+ var _a, _b;
185
+ await this.login();
186
+ const path = this.secretPath(server);
187
+ const res = await this.call('GET', path);
188
+ if (res.status === 404)
189
+ throw new Error(`No WHM secret at ${path} in Vault.`);
190
+ if (res.status === 403)
191
+ throw new Error(`Vault denied reading ${path}. Check the policy attached to the credential's role or token.`);
192
+ if (res.status !== 200)
193
+ throw new Error(`Vault read of ${path} failed (HTTP ${res.status}). ${vaultErrors(res.body)}`);
194
+ const data = (_a = res.body) === null || _a === void 0 ? void 0 : _a.data;
195
+ const secret = (_b = (this.credentials.kvVersion === 'v1' ? data : data === null || data === void 0 ? void 0 : data.data)) !== null && _b !== void 0 ? _b : {};
196
+ return connectionFromSecret(secret, path);
197
+ }
198
+ async listServers() {
199
+ var _a, _b;
200
+ await this.login();
201
+ const mount = cleanPath(this.credentials.kvMount || 'secret', 'KV mount', false);
202
+ const prefix = cleanPath(this.credentials.pathPrefix, 'Path prefix', true);
203
+ const path = this.credentials.kvVersion === 'v1'
204
+ ? [mount, prefix].filter(Boolean).join('/')
205
+ : [mount, 'metadata', prefix].filter(Boolean).join('/');
206
+ const res = await this.call('GET', `${path}?list=true`);
207
+ if (res.status === 404)
208
+ return [];
209
+ if (res.status !== 200)
210
+ return null;
211
+ const keys = (_b = (_a = res.body) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.keys;
212
+ return Array.isArray(keys) ? keys.map(String).filter((k) => !k.endsWith('/')) : [];
213
+ }
214
+ async close() {
215
+ if (!this.ownsToken || !this.token)
216
+ return;
217
+ try {
218
+ await this.call('POST', 'auth/token/revoke-self');
219
+ }
220
+ catch {
221
+ }
222
+ finally {
223
+ this.token = '';
224
+ this.ownsToken = false;
225
+ }
226
+ }
227
+ }
228
+ exports.WhmVaultSession = WhmVaultSession;
229
+ //# sourceMappingURL=VaultFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VaultFunctions.js","sourceRoot":"","sources":["../../../nodes/Whm/VaultFunctions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
- import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
1
+ import type { ICredentialsDecrypted, ICredentialTestFunctions, IExecuteFunctions, INodeCredentialTestResult, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
2
  export declare class Whm implements INodeType {
3
3
  description: INodeTypeDescription;
4
+ methods: {
5
+ credentialTest: {
6
+ whmVaultApiTest(this: ICredentialTestFunctions, credential: ICredentialsDecrypted): Promise<INodeCredentialTestResult>;
7
+ };
8
+ };
4
9
  execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
10
  }