n8n-nodes-matrix42 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/LICENSE.md +21 -0
- package/README.md +111 -0
- package/dist/credentials/Matrix42BasicApi.credentials.d.ts +10 -0
- package/dist/credentials/Matrix42BasicApi.credentials.js +56 -0
- package/dist/credentials/Matrix42BasicApi.credentials.js.map +1 -0
- package/dist/credentials/Matrix42TokenApi.credentials.d.ts +12 -0
- package/dist/credentials/Matrix42TokenApi.credentials.js +71 -0
- package/dist/credentials/Matrix42TokenApi.credentials.js.map +1 -0
- package/dist/nodes/Matrix42/GenericFunctions.d.ts +3 -0
- package/dist/nodes/Matrix42/GenericFunctions.js +30 -0
- package/dist/nodes/Matrix42/GenericFunctions.js.map +1 -0
- package/dist/nodes/Matrix42/Matrix42.node.d.ts +19 -0
- package/dist/nodes/Matrix42/Matrix42.node.js +486 -0
- package/dist/nodes/Matrix42/Matrix42.node.js.map +1 -0
- package/dist/nodes/Matrix42/Matrix42AsqlFunctions.d.ts +17 -0
- package/dist/nodes/Matrix42/Matrix42AsqlFunctions.js +96 -0
- package/dist/nodes/Matrix42/Matrix42AsqlFunctions.js.map +1 -0
- package/dist/nodes/Matrix42/Matrix42AsqlOperations.d.ts +3 -0
- package/dist/nodes/Matrix42/Matrix42AsqlOperations.js +374 -0
- package/dist/nodes/Matrix42/Matrix42AsqlOperations.js.map +1 -0
- package/dist/nodes/Matrix42/Matrix42ImportFunctions.d.ts +2 -0
- package/dist/nodes/Matrix42/Matrix42ImportFunctions.js +19 -0
- package/dist/nodes/Matrix42/Matrix42ImportFunctions.js.map +1 -0
- package/dist/nodes/Matrix42/Matrix42ImportOperations.d.ts +3 -0
- package/dist/nodes/Matrix42/Matrix42ImportOperations.js +47 -0
- package/dist/nodes/Matrix42/Matrix42ImportOperations.js.map +1 -0
- package/dist/nodes/Matrix42/Matrix42TicketFunctions.d.ts +4 -0
- package/dist/nodes/Matrix42/Matrix42TicketFunctions.js +107 -0
- package/dist/nodes/Matrix42/Matrix42TicketFunctions.js.map +1 -0
- package/dist/nodes/Matrix42/Matrix42TicketOperations.d.ts +3 -0
- package/dist/nodes/Matrix42/Matrix42TicketOperations.js +615 -0
- package/dist/nodes/Matrix42/Matrix42TicketOperations.js.map +1 -0
- package/dist/nodes/Matrix42/matrix42.svg +6 -0
- package/dist/package.json +56 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/index.js +0 -0
- package/package.json +56 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 S&S Technologies GmbH
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# n8n-nodes-matrix42
|
|
2
|
+
|
|
3
|
+
This is an n8n community node that integrates with the Matrix42 ESMP Web Services API. It allows you to retrieve and work with Data Fragments from Matrix42 Data Definitions directly in your n8n workflows.
|
|
4
|
+
|
|
5
|
+
Matrix42’s ESMP API exposes CRUD‑style endpoints for data fragments, supporting OData‑like filtering, column selection, paging, sorting, and more.
|
|
6
|
+
|
|
7
|
+
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
|
|
8
|
+
|
|
9
|
+
[Installation](#installation)
|
|
10
|
+
[Operations](#operations)
|
|
11
|
+
[Credentials](#credentials)
|
|
12
|
+
[Compatibility](#compatibility)
|
|
13
|
+
[Resources](#resources)
|
|
14
|
+
[Version history](#version-history)
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
19
|
+
|
|
20
|
+
## Operations
|
|
21
|
+
|
|
22
|
+
This node supports multiple operations across different resources:
|
|
23
|
+
|
|
24
|
+
### Data Fragments (asql)
|
|
25
|
+
|
|
26
|
+
- **Get Fragments** (`getFragments`): Retrieve data fragments from a specified Data Definition.
|
|
27
|
+
|
|
28
|
+
- **Add Fragment** (`addFragment`): Create a new data fragment in the specified Data Definition.
|
|
29
|
+
|
|
30
|
+
- **Update Fragment** (`updateFragment`): Update an existing data fragment by its ID.
|
|
31
|
+
|
|
32
|
+
- **Delete Fragment** (`deleteFragment`): Remove a data fragment by its ID.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Data Objects (asql)
|
|
36
|
+
|
|
37
|
+
- **Add Object** (`addObject`): Create a new Data Object under a given fragment.
|
|
38
|
+
|
|
39
|
+
- **Get Object** (`getObject`): Retrieve a Data Object by its ID.
|
|
40
|
+
|
|
41
|
+
- **Update Object** (`updateObject`): Update an existing Data Object by its ID.
|
|
42
|
+
|
|
43
|
+
- **Delete Object** (`deleteObject`): Delete a Data Object by its ID.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Tickets
|
|
47
|
+
|
|
48
|
+
- **Create Ticket** (`createTicket`): Open a new ticket in the Service Desk.
|
|
49
|
+
|
|
50
|
+
- **Close Ticket** (`closeTicket`): Close an existing ticket by ID.
|
|
51
|
+
|
|
52
|
+
- **Transform Ticket** (`transformTicket`): Apply a transformation to a ticket.
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
### Import
|
|
56
|
+
|
|
57
|
+
- **Execute Import Definition** (`executeImportDefinition`): Run a predefined import definition to ingest data.
|
|
58
|
+
|
|
59
|
+
## Credentials
|
|
60
|
+
|
|
61
|
+
> **Prerequisite:** You must have access to a running Matrix42 instance with appropriate API permissions.
|
|
62
|
+
|
|
63
|
+
This node supports two authentication methods. Configure these under **Workflow → Credentials**.
|
|
64
|
+
|
|
65
|
+
### Matrix42 Token Auth
|
|
66
|
+
|
|
67
|
+
1. **API Token** — Your long‑lived Matrix42 API Token.
|
|
68
|
+
|
|
69
|
+
2. **Base URL** — Your Matrix42 server URL (e.g. `https://api.mycompany.com`).
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
On execution, the node:
|
|
73
|
+
|
|
74
|
+
- Exchanges the API Token for a short‑lived Bearer (JWT) token via `GenerateAccessTokenFromApiToken`.
|
|
75
|
+
|
|
76
|
+
- Uses the Bearer token in the `Authorization` header for all subsequent calls.
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
> **Self‑signed certificates**: If your Matrix42 server uses a self‑signed SSL certificate, you must add its CA certificate to n8n’s trusted certificate store. For details, see the n8n docs on adding self‑signed certificates: https://docs.n8n.io/hosting/configuration/configuration-examples/custom-certificate-authority/
|
|
80
|
+
|
|
81
|
+
### Matrix42 Basic Auth
|
|
82
|
+
|
|
83
|
+
1. **Username** and **Password** — Your Matrix42 user credentials.
|
|
84
|
+
|
|
85
|
+
2. **Base URL** — As above.
|
|
86
|
+
|
|
87
|
+
## Compatibility
|
|
88
|
+
|
|
89
|
+
- **n8n**: Tested with v1.100.1 and later.
|
|
90
|
+
|
|
91
|
+
- **Node.js**: v22.17.0 or higher.
|
|
92
|
+
|
|
93
|
+
- **Matrix42 ESMP API**: Tested with Matrix42 12.1.2.5325
|
|
94
|
+
|
|
95
|
+
## Resources
|
|
96
|
+
|
|
97
|
+
* [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
|
|
98
|
+
* [Matrix42 Web Services](https://help.matrix42.com/030_ESMP/030_INT/Business_Processes_and_API_Integrations/Matrix42_Web_Services_API#Public_API)
|
|
99
|
+
|
|
100
|
+
## Version History
|
|
101
|
+
|
|
102
|
+
**0.1.0:**
|
|
103
|
+
- Initial release supporting operations across multiple resources:
|
|
104
|
+
- Data Fragments: `getFragments`, `addFragment`, `updateFragment`, `deleteFragment`
|
|
105
|
+
- Data Objects: `addObject`, `getObject`, `updateObject`, `deleteObject`
|
|
106
|
+
- Tickets: `createTicket`, `closeTicket`, `transformTicket`
|
|
107
|
+
- Import: `executeImportDefinition`
|
|
108
|
+
|
|
109
|
+
- Authentication methods:
|
|
110
|
+
- Matrix42 Token API (API Token ↔︎ Bearer JWT exchange)
|
|
111
|
+
- Matrix42 Basic API (HTTP Basic Authentication)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class Matrix42BasicApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
extends: string[];
|
|
5
|
+
displayName: string;
|
|
6
|
+
documentationUrl: string;
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
authenticate: IAuthenticateGeneric;
|
|
9
|
+
test: ICredentialTestRequest;
|
|
10
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Matrix42BasicApi = void 0;
|
|
4
|
+
class Matrix42BasicApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'matrix42BasicApi';
|
|
7
|
+
this.extends = ['httpBasicAuth'];
|
|
8
|
+
this.displayName = 'Matrix42 Basic Auth API';
|
|
9
|
+
this.documentationUrl = 'https://help.matrix42.com/030_ESMP/030_INT/Business_Processes_and_API_Integrations/Web_Services%3A_Authentication_types';
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Server URL',
|
|
13
|
+
name: 'serverUrl',
|
|
14
|
+
type: 'string',
|
|
15
|
+
default: '',
|
|
16
|
+
hint: 'The URL of the Matrix42 server. (https://www.example-matrix42.com)',
|
|
17
|
+
required: true,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
displayName: 'User',
|
|
21
|
+
name: 'user',
|
|
22
|
+
type: 'string',
|
|
23
|
+
required: true,
|
|
24
|
+
default: '',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
displayName: 'Password',
|
|
28
|
+
name: 'password',
|
|
29
|
+
type: 'string',
|
|
30
|
+
required: true,
|
|
31
|
+
typeOptions: {
|
|
32
|
+
password: true,
|
|
33
|
+
},
|
|
34
|
+
default: '',
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
this.authenticate = {
|
|
38
|
+
type: 'generic',
|
|
39
|
+
properties: {
|
|
40
|
+
auth: {
|
|
41
|
+
username: '={{$credentials.user}}',
|
|
42
|
+
password: '={{$credentials.password}}',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
this.test = {
|
|
47
|
+
request: {
|
|
48
|
+
baseURL: '={{$credentials?.serverUrl}}',
|
|
49
|
+
url: '/m42Services/api/configuration/isdevelopermode',
|
|
50
|
+
skipSslCertificateValidation: true,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.Matrix42BasicApi = Matrix42BasicApi;
|
|
56
|
+
//# sourceMappingURL=Matrix42BasicApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Matrix42BasicApi.credentials.js","sourceRoot":"","sources":["../../credentials/Matrix42BasicApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,gBAAgB;IAA7B;QACC,SAAI,GAAG,kBAAkB,CAAC;QAE1B,YAAO,GAAG,CAAC,eAAe,CAAC,CAAC;QAE5B,gBAAW,GAAG,yBAAyB,CAAC;QAExC,qBAAgB,GAAG,yHAAyH,CAAC;QAE7I,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,oEAAoE;gBAC1E,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;aACX;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,IAAI,EAAE;oBACL,QAAQ,EAAE,wBAAwB;oBAClC,QAAQ,EAAE,4BAA4B;iBACtC;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,8BAA8B;gBACvC,GAAG,EAAE,gDAAgD;gBACrD,4BAA4B,EAAE,IAAI;aAClC;SACD,CAAC;IACH,CAAC;CAAA;AAtDD,4CAsDC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialDataDecryptedObject, ICredentialTestRequest, ICredentialType, IHttpRequestHelper, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class Matrix42TokenApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
preAuthentication(this: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject): Promise<{
|
|
8
|
+
accessToken: string;
|
|
9
|
+
}>;
|
|
10
|
+
authenticate: IAuthenticateGeneric;
|
|
11
|
+
test: ICredentialTestRequest;
|
|
12
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Matrix42TokenApi = void 0;
|
|
4
|
+
class Matrix42TokenApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'matrix42TokenApi';
|
|
7
|
+
this.displayName = 'Matrix42 Webservice Token Auth API';
|
|
8
|
+
this.documentationUrl = 'https://help.matrix42.com/030_ESMP/030_INT/Business_Processes_and_API_Integrations/Web_Services%3A_Authentication_types';
|
|
9
|
+
this.properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'Access Token',
|
|
12
|
+
name: 'accessToken',
|
|
13
|
+
type: 'hidden',
|
|
14
|
+
typeOptions: {
|
|
15
|
+
expirable: true,
|
|
16
|
+
password: true,
|
|
17
|
+
},
|
|
18
|
+
default: '',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
displayName: 'Server URL',
|
|
22
|
+
name: 'serverUrl',
|
|
23
|
+
type: 'string',
|
|
24
|
+
default: '',
|
|
25
|
+
hint: 'The URL of the Matrix42 server. (https://www.example-matrix42.com)',
|
|
26
|
+
required: true,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Webservice Token',
|
|
30
|
+
name: 'webserviceToken',
|
|
31
|
+
type: 'string',
|
|
32
|
+
typeOptions: {
|
|
33
|
+
password: true
|
|
34
|
+
},
|
|
35
|
+
default: '',
|
|
36
|
+
hint: 'The Webservice token of the Matrix42 server.',
|
|
37
|
+
required: true,
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
this.authenticate = {
|
|
41
|
+
type: 'generic',
|
|
42
|
+
properties: {
|
|
43
|
+
headers: {
|
|
44
|
+
Authorization: '=Bearer {{$credentials.accessToken}}',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
this.test = {
|
|
49
|
+
request: {
|
|
50
|
+
method: "GET",
|
|
51
|
+
baseURL: '={{$credentials?.serverUrl}}',
|
|
52
|
+
url: '/m42Services/api/configuration/isdevelopermode',
|
|
53
|
+
skipSslCertificateValidation: true
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async preAuthentication(credentials) {
|
|
58
|
+
const { RawToken } = (await this.helpers.httpRequest({
|
|
59
|
+
method: 'POST',
|
|
60
|
+
url: `${credentials.serverUrl}/m42Services/api/ApiToken/GenerateAccessTokenFromApiToken`,
|
|
61
|
+
skipSslCertificateValidation: true,
|
|
62
|
+
headers: {
|
|
63
|
+
'Content-Type': 'application/json',
|
|
64
|
+
'Authorization': `Bearer ${credentials.webserviceToken}`,
|
|
65
|
+
},
|
|
66
|
+
}));
|
|
67
|
+
return { accessToken: RawToken };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.Matrix42TokenApi = Matrix42TokenApi;
|
|
71
|
+
//# sourceMappingURL=Matrix42TokenApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Matrix42TokenApi.credentials.js","sourceRoot":"","sources":["../../credentials/Matrix42TokenApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,gBAAgB;IAA7B;QACC,SAAI,GAAG,kBAAkB,CAAC;QAE1B,gBAAW,GAAG,oCAAoC,CAAC;QAEnD,qBAAgB,GAAG,yHAAyH,CAAC;QAE7I,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,oEAAoE;gBAC1E,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,IAAI;aACd;SACD,CAAC;QAeF,iBAAY,GAA0B;YACrC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,sCAAsC;iBACrD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,8BAA8B;gBACvC,GAAG,EAAE,gDAAgD;gBACrD,4BAA4B,EAAE,IAAI;aAClC;SACD,CAAC;IACH,CAAC;IA9BA,KAAK,CAAC,iBAAiB,CAA2B,WAA2C;QAC5F,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACpD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,2DAA2D;YACxF,4BAA4B,EAAE,IAAI;YAClC,OAAO,EAAE;gBACR,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,WAAW,CAAC,eAAe,EAAE;aACxD;SACD,CAAC,CAAyB,CAAC;QAC5B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC;CAmBD;AArED,4CAqEC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { IDataObject, IExecuteFunctions, IHookFunctions, IHttpRequestMethods, ILoadOptionsFunctions } from 'n8n-workflow';
|
|
2
|
+
export declare function matrix42ApiRequest(this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: `/${string}`, body: object, query?: IDataObject, uri?: string): Promise<any>;
|
|
3
|
+
export declare function uuidv4(): string;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matrix42ApiRequest = matrix42ApiRequest;
|
|
4
|
+
exports.uuidv4 = uuidv4;
|
|
5
|
+
async function matrix42ApiRequest(method, endpoint, body, query, uri) {
|
|
6
|
+
const authenticationMethod = this.getNodeParameter('authentication', 0);
|
|
7
|
+
const credentialType = authenticationMethod === 'basic' ? 'matrix42BasicApi' : 'matrix42TokenApi';
|
|
8
|
+
const { serverUrl } = await this.getCredentials(credentialType);
|
|
9
|
+
const options = {
|
|
10
|
+
headers: {},
|
|
11
|
+
method,
|
|
12
|
+
body: method === 'GET' || method === 'HEAD' || method === 'DELETE' ? null : body,
|
|
13
|
+
qs: query,
|
|
14
|
+
url: uri || `${serverUrl}/m42Services/api${endpoint}`,
|
|
15
|
+
json: true,
|
|
16
|
+
skipSslCertificateValidation: true
|
|
17
|
+
};
|
|
18
|
+
if (options.body === null) {
|
|
19
|
+
delete options.body;
|
|
20
|
+
}
|
|
21
|
+
return await this.helpers.requestWithAuthentication.call(this, credentialType, options);
|
|
22
|
+
}
|
|
23
|
+
function uuidv4() {
|
|
24
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
|
|
25
|
+
const r = (Math.random() * 16) | 0;
|
|
26
|
+
const v = c === 'x' ? r : (r & 0x3) | 0x8;
|
|
27
|
+
return v.toString(16);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=GenericFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Matrix42/GenericFunctions.ts"],"names":[],"mappings":";;AAOA,gDA4BC;AAED,wBAMC;AApCM,KAAK,UAAU,kBAAkB,CAEvC,MAA2B,EAC3B,QAAsB,EACtB,IAAY,EACZ,KAAmB,EACnB,GAAY;IAGZ,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAW,CAAC;IAClF,MAAM,cAAc,GAAG,oBAAoB,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAClG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAwB,cAAc,CAAC,CAAC;IAEvF,MAAM,OAAO,GAAwB;QACpC,OAAO,EAAE,EAAE;QACX,MAAM;QACN,IAAI,EAAE,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAChF,EAAE,EAAE,KAAK;QACT,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,mBAAmB,QAAQ,EAAE;QACrD,IAAI,EAAE,IAAI;QACV,4BAA4B,EAAE,IAAI;KAClC,CAAC;IAEF,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC;IACrB,CAAC;IAEA,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED,SAAgB,MAAM;IACrB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;QAClE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodePropertyOptions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class Matrix42 implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
loadOptions: {
|
|
6
|
+
getUsers(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
|
+
getTicketUrgencies(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
8
|
+
getTicketImpacts(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
9
|
+
getTicketCategories(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
10
|
+
getTicketRoles(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
11
|
+
getTicketSlas(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
12
|
+
getTicketOlas(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
13
|
+
getTicketCloseReasons(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
14
|
+
getTicketCloseErrorTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
15
|
+
getImportDefinitions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
19
|
+
}
|