n8n-nodes-ms-dataverse 0.1.1

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 (24) hide show
  1. package/README.md +134 -0
  2. package/dist/credentials/MicrosoftDataverseOAuth2Api.credentials.d.ts +11 -0
  3. package/dist/credentials/MicrosoftDataverseOAuth2Api.credentials.js +80 -0
  4. package/dist/credentials/MicrosoftDataverseOAuth2Api.credentials.js.map +1 -0
  5. package/dist/nodes/MicrosoftDataverse/GenericFunctions.d.ts +12 -0
  6. package/dist/nodes/MicrosoftDataverse/GenericFunctions.js +101 -0
  7. package/dist/nodes/MicrosoftDataverse/GenericFunctions.js.map +1 -0
  8. package/dist/nodes/MicrosoftDataverse/MicrosoftDataverse.node.d.ts +11 -0
  9. package/dist/nodes/MicrosoftDataverse/MicrosoftDataverse.node.js +118 -0
  10. package/dist/nodes/MicrosoftDataverse/MicrosoftDataverse.node.js.map +1 -0
  11. package/dist/nodes/MicrosoftDataverse/MicrosoftDataverse.node.json +19 -0
  12. package/dist/nodes/MicrosoftDataverse/dataverse.svg +8 -0
  13. package/dist/nodes/MicrosoftDataverse/descriptions.d.ts +8 -0
  14. package/dist/nodes/MicrosoftDataverse/descriptions.js +386 -0
  15. package/dist/nodes/MicrosoftDataverse/descriptions.js.map +1 -0
  16. package/dist/nodes/MicrosoftDataverse/operations/RecordOperations.d.ts +6 -0
  17. package/dist/nodes/MicrosoftDataverse/operations/RecordOperations.js +77 -0
  18. package/dist/nodes/MicrosoftDataverse/operations/RecordOperations.js.map +1 -0
  19. package/dist/nodes/MicrosoftDataverse/types.d.ts +35 -0
  20. package/dist/nodes/MicrosoftDataverse/types.js +3 -0
  21. package/dist/nodes/MicrosoftDataverse/types.js.map +1 -0
  22. package/dist/package.json +54 -0
  23. package/dist/tsconfig.tsbuildinfo +1 -0
  24. package/package.json +54 -0
@@ -0,0 +1,386 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getManyOperationFields = exports.updateOperationFields = exports.getOperationFields = exports.createOperationFields = exports.tableDescription = exports.operationDescription = exports.resourceDescription = void 0;
4
+ exports.resourceDescription = {
5
+ displayName: 'Resource',
6
+ name: 'resource',
7
+ type: 'options',
8
+ noDataExpression: true,
9
+ options: [
10
+ {
11
+ name: 'Record',
12
+ value: 'record',
13
+ },
14
+ ],
15
+ default: 'record',
16
+ };
17
+ exports.operationDescription = {
18
+ displayName: 'Operation',
19
+ name: 'operation',
20
+ type: 'options',
21
+ noDataExpression: true,
22
+ displayOptions: {
23
+ show: {
24
+ resource: ['record'],
25
+ },
26
+ },
27
+ options: [
28
+ {
29
+ name: 'Create',
30
+ value: 'create',
31
+ description: 'Create a new record',
32
+ action: 'Create a record',
33
+ },
34
+ {
35
+ name: 'Delete',
36
+ value: 'delete',
37
+ description: 'Delete a record',
38
+ action: 'Delete a record',
39
+ },
40
+ {
41
+ name: 'Get',
42
+ value: 'get',
43
+ description: 'Get a single record',
44
+ action: 'Get a record',
45
+ },
46
+ {
47
+ name: 'Get Many',
48
+ value: 'getMany',
49
+ description: 'Get multiple records',
50
+ action: 'Get many records',
51
+ },
52
+ {
53
+ name: 'Update',
54
+ value: 'update',
55
+ description: 'Update a record',
56
+ action: 'Update a record',
57
+ },
58
+ ],
59
+ default: 'get',
60
+ };
61
+ exports.tableDescription = {
62
+ displayName: 'Table',
63
+ name: 'table',
64
+ type: 'resourceLocator',
65
+ default: { mode: 'list', value: '' },
66
+ required: true,
67
+ modes: [
68
+ {
69
+ displayName: 'From List',
70
+ name: 'list',
71
+ type: 'list',
72
+ typeOptions: {
73
+ searchListMethod: 'searchTables',
74
+ searchable: true,
75
+ },
76
+ },
77
+ {
78
+ displayName: 'By Name',
79
+ name: 'name',
80
+ type: 'string',
81
+ placeholder: 'e.g. accounts',
82
+ validation: [
83
+ {
84
+ type: 'regex',
85
+ properties: {
86
+ regex: '^[a-z_][a-z0-9_]*$',
87
+ errorMessage: 'Table name must be lowercase and contain only letters, numbers, and underscores',
88
+ },
89
+ },
90
+ ],
91
+ },
92
+ {
93
+ displayName: 'By ID',
94
+ name: 'id',
95
+ type: 'string',
96
+ placeholder: 'e.g. account',
97
+ validation: [
98
+ {
99
+ type: 'regex',
100
+ properties: {
101
+ regex: '^[a-z_][a-z0-9_]*$',
102
+ errorMessage: 'Table ID must be lowercase and contain only letters, numbers, and underscores',
103
+ },
104
+ },
105
+ ],
106
+ },
107
+ ],
108
+ };
109
+ exports.createOperationFields = [
110
+ {
111
+ displayName: 'Fields',
112
+ name: 'fields',
113
+ type: 'fixedCollection',
114
+ typeOptions: {
115
+ multipleValues: true,
116
+ },
117
+ placeholder: 'Add Field',
118
+ default: {},
119
+ displayOptions: {
120
+ show: {
121
+ resource: ['record'],
122
+ operation: ['create'],
123
+ },
124
+ },
125
+ options: [
126
+ {
127
+ displayName: 'Field',
128
+ name: 'field',
129
+ values: [
130
+ {
131
+ displayName: 'Field Name',
132
+ name: 'name',
133
+ type: 'string',
134
+ default: '',
135
+ description: 'Name of the field to set',
136
+ placeholder: 'e.g. name',
137
+ },
138
+ {
139
+ displayName: 'Field Value',
140
+ name: 'value',
141
+ type: 'string',
142
+ default: '',
143
+ description: 'Value to set for the field',
144
+ },
145
+ ],
146
+ },
147
+ ],
148
+ },
149
+ ];
150
+ exports.getOperationFields = [
151
+ {
152
+ displayName: 'Record ID Type',
153
+ name: 'recordIdType',
154
+ type: 'options',
155
+ displayOptions: {
156
+ show: {
157
+ resource: ['record'],
158
+ operation: ['get'],
159
+ },
160
+ },
161
+ options: [
162
+ {
163
+ name: 'Primary Key (ID)',
164
+ value: 'id',
165
+ description: 'Use the primary key GUID',
166
+ },
167
+ {
168
+ name: 'Alternate Key',
169
+ value: 'alternateKey',
170
+ description: 'Use alternate key-value pairs',
171
+ },
172
+ ],
173
+ default: 'id',
174
+ description: 'How to identify the record',
175
+ },
176
+ {
177
+ displayName: 'Record ID',
178
+ name: 'recordId',
179
+ type: 'string',
180
+ displayOptions: {
181
+ show: {
182
+ resource: ['record'],
183
+ operation: ['get', 'delete', 'update'],
184
+ recordIdType: ['id'],
185
+ },
186
+ },
187
+ default: '',
188
+ required: true,
189
+ description: 'The GUID of the record',
190
+ placeholder: 'e.g. 00000000-0000-0000-0000-000000000000',
191
+ },
192
+ {
193
+ displayName: 'Alternate Keys',
194
+ name: 'alternateKeys',
195
+ type: 'fixedCollection',
196
+ typeOptions: {
197
+ multipleValues: true,
198
+ },
199
+ placeholder: 'Add Key',
200
+ default: {},
201
+ displayOptions: {
202
+ show: {
203
+ resource: ['record'],
204
+ operation: ['get'],
205
+ recordIdType: ['alternateKey'],
206
+ },
207
+ },
208
+ options: [
209
+ {
210
+ displayName: 'Key',
211
+ name: 'key',
212
+ values: [
213
+ {
214
+ displayName: 'Key Name',
215
+ name: 'name',
216
+ type: 'string',
217
+ default: '',
218
+ description: 'Name of the alternate key',
219
+ placeholder: 'e.g. emailaddress1',
220
+ },
221
+ {
222
+ displayName: 'Key Value',
223
+ name: 'value',
224
+ type: 'string',
225
+ default: '',
226
+ description: 'Value of the alternate key',
227
+ },
228
+ ],
229
+ },
230
+ ],
231
+ },
232
+ {
233
+ displayName: 'Select Fields',
234
+ name: 'selectFields',
235
+ type: 'string',
236
+ displayOptions: {
237
+ show: {
238
+ resource: ['record'],
239
+ operation: ['get', 'getMany'],
240
+ },
241
+ },
242
+ default: '',
243
+ description: 'Comma-separated list of fields to return (leave empty for all fields)',
244
+ placeholder: 'e.g. name,emailaddress1,telephone1',
245
+ },
246
+ ];
247
+ exports.updateOperationFields = [
248
+ {
249
+ displayName: 'Update Fields',
250
+ name: 'updateFields',
251
+ type: 'fixedCollection',
252
+ typeOptions: {
253
+ multipleValues: true,
254
+ },
255
+ placeholder: 'Add Field',
256
+ default: {},
257
+ displayOptions: {
258
+ show: {
259
+ resource: ['record'],
260
+ operation: ['update'],
261
+ },
262
+ },
263
+ options: [
264
+ {
265
+ displayName: 'Field',
266
+ name: 'field',
267
+ values: [
268
+ {
269
+ displayName: 'Field Name',
270
+ name: 'name',
271
+ type: 'string',
272
+ default: '',
273
+ description: 'Name of the field to update',
274
+ placeholder: 'e.g. name',
275
+ },
276
+ {
277
+ displayName: 'Field Value',
278
+ name: 'value',
279
+ type: 'string',
280
+ default: '',
281
+ description: 'New value for the field',
282
+ },
283
+ ],
284
+ },
285
+ ],
286
+ },
287
+ ];
288
+ exports.getManyOperationFields = [
289
+ {
290
+ displayName: 'Query Type',
291
+ name: 'queryType',
292
+ type: 'options',
293
+ displayOptions: {
294
+ show: {
295
+ resource: ['record'],
296
+ operation: ['getMany'],
297
+ },
298
+ },
299
+ options: [
300
+ {
301
+ name: 'OData',
302
+ value: 'odata',
303
+ description: 'Use OData query syntax',
304
+ },
305
+ {
306
+ name: 'FetchXML',
307
+ value: 'fetchxml',
308
+ description: 'Use FetchXML query',
309
+ },
310
+ ],
311
+ default: 'odata',
312
+ description: 'Type of query to use',
313
+ },
314
+ {
315
+ displayName: 'OData Filter',
316
+ name: 'odataFilter',
317
+ type: 'string',
318
+ displayOptions: {
319
+ show: {
320
+ resource: ['record'],
321
+ operation: ['getMany'],
322
+ queryType: ['odata'],
323
+ },
324
+ },
325
+ default: '',
326
+ description: 'OData $filter query parameter',
327
+ placeholder: "e.g. name eq 'Contoso'",
328
+ },
329
+ {
330
+ displayName: 'OData Order By',
331
+ name: 'odataOrderBy',
332
+ type: 'string',
333
+ displayOptions: {
334
+ show: {
335
+ resource: ['record'],
336
+ operation: ['getMany'],
337
+ queryType: ['odata'],
338
+ },
339
+ },
340
+ default: '',
341
+ description: 'OData $orderby query parameter',
342
+ placeholder: 'e.g. createdon desc',
343
+ },
344
+ {
345
+ displayName: 'Limit',
346
+ name: 'limit',
347
+ type: 'number',
348
+ displayOptions: {
349
+ show: {
350
+ resource: ['record'],
351
+ operation: ['getMany'],
352
+ queryType: ['odata'],
353
+ },
354
+ },
355
+ typeOptions: {
356
+ minValue: 1,
357
+ maxValue: 5000,
358
+ },
359
+ default: 50,
360
+ description: 'Max number of results to return',
361
+ },
362
+ {
363
+ displayName: 'FetchXML Query',
364
+ name: 'fetchXml',
365
+ type: 'string',
366
+ displayOptions: {
367
+ show: {
368
+ resource: ['record'],
369
+ operation: ['getMany'],
370
+ queryType: ['fetchxml'],
371
+ },
372
+ },
373
+ typeOptions: {
374
+ rows: 10,
375
+ },
376
+ default: '',
377
+ description: 'Complete FetchXML query',
378
+ placeholder: `<fetch top="50">
379
+ <entity name="account">
380
+ <attribute name="name" />
381
+ <attribute name="emailaddress1" />
382
+ </entity>
383
+ </fetch>`,
384
+ },
385
+ ];
386
+ //# sourceMappingURL=descriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptions.js","sourceRoot":"","sources":["../../../nodes/MicrosoftDataverse/descriptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions, IDataObject, INodeExecutionData } from 'n8n-workflow';
2
+ export declare function createRecord(this: IExecuteFunctions, table: string, itemIndex: number): Promise<IDataObject>;
3
+ export declare function getRecord(this: IExecuteFunctions, table: string, itemIndex: number): Promise<IDataObject>;
4
+ export declare function getManyRecords(this: IExecuteFunctions, table: string, itemIndex: number): Promise<INodeExecutionData[]>;
5
+ export declare function updateRecord(this: IExecuteFunctions, table: string, itemIndex: number): Promise<IDataObject>;
6
+ export declare function deleteRecord(this: IExecuteFunctions, table: string, itemIndex: number): Promise<IDataObject>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRecord = createRecord;
4
+ exports.getRecord = getRecord;
5
+ exports.getManyRecords = getManyRecords;
6
+ exports.updateRecord = updateRecord;
7
+ exports.deleteRecord = deleteRecord;
8
+ const GenericFunctions_1 = require("../GenericFunctions");
9
+ async function createRecord(table, itemIndex) {
10
+ const fields = this.getNodeParameter('fields.field', itemIndex, []);
11
+ const body = (0, GenericFunctions_1.fieldsToObject)(fields);
12
+ return await GenericFunctions_1.dataverseApiRequest.call(this, 'POST', `/${table}`, body);
13
+ }
14
+ async function getRecord(table, itemIndex) {
15
+ const recordIdType = this.getNodeParameter('recordIdType', itemIndex);
16
+ const selectFields = this.getNodeParameter('selectFields', itemIndex, '');
17
+ let recordIdentifier = '';
18
+ if (recordIdType === 'id') {
19
+ const recordId = this.getNodeParameter('recordId', itemIndex);
20
+ recordIdentifier = (0, GenericFunctions_1.buildRecordIdentifier)('id', recordId);
21
+ }
22
+ else {
23
+ const alternateKeys = this.getNodeParameter('alternateKeys.key', itemIndex, []);
24
+ recordIdentifier = (0, GenericFunctions_1.buildRecordIdentifier)('alternateKey', undefined, alternateKeys);
25
+ }
26
+ const qs = {};
27
+ if (selectFields) {
28
+ qs.$select = selectFields;
29
+ }
30
+ return await GenericFunctions_1.dataverseApiRequest.call(this, 'GET', `/${table}(${recordIdentifier})`, undefined, qs);
31
+ }
32
+ async function getManyRecords(table, itemIndex) {
33
+ const queryType = this.getNodeParameter('queryType', itemIndex);
34
+ const returnData = [];
35
+ if (queryType === 'odata') {
36
+ const odataFilter = this.getNodeParameter('odataFilter', itemIndex, '');
37
+ const odataOrderBy = this.getNodeParameter('odataOrderBy', itemIndex, '');
38
+ const limit = this.getNodeParameter('limit', itemIndex, 50);
39
+ const selectFields = this.getNodeParameter('selectFields', itemIndex, '');
40
+ const qs = (0, GenericFunctions_1.buildODataQuery)(odataFilter, odataOrderBy, selectFields, limit);
41
+ const response = (await GenericFunctions_1.dataverseApiRequest.call(this, 'GET', `/${table}`, undefined, qs));
42
+ const records = (response.value || []);
43
+ for (const record of records) {
44
+ returnData.push({
45
+ json: record,
46
+ pairedItem: { item: itemIndex },
47
+ });
48
+ }
49
+ }
50
+ else {
51
+ const fetchXml = this.getNodeParameter('fetchXml', itemIndex);
52
+ const response = (await GenericFunctions_1.dataverseApiRequest.call(this, 'GET', `/${table}`, undefined, {
53
+ fetchXml: fetchXml,
54
+ }));
55
+ const records = (response.value || []);
56
+ for (const record of records) {
57
+ returnData.push({
58
+ json: record,
59
+ pairedItem: { item: itemIndex },
60
+ });
61
+ }
62
+ }
63
+ return returnData;
64
+ }
65
+ async function updateRecord(table, itemIndex) {
66
+ const recordId = this.getNodeParameter('recordId', itemIndex);
67
+ const updateFields = this.getNodeParameter('updateFields.field', itemIndex, []);
68
+ const body = (0, GenericFunctions_1.fieldsToObject)(updateFields);
69
+ const response = await GenericFunctions_1.dataverseApiRequest.call(this, 'PATCH', `/${table}(${recordId})`, body);
70
+ return response || { success: true, id: recordId };
71
+ }
72
+ async function deleteRecord(table, itemIndex) {
73
+ const recordId = this.getNodeParameter('recordId', itemIndex);
74
+ await GenericFunctions_1.dataverseApiRequest.call(this, 'DELETE', `/${table}(${recordId})`);
75
+ return { success: true, id: recordId };
76
+ }
77
+ //# sourceMappingURL=RecordOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordOperations.js","sourceRoot":"","sources":["../../../../nodes/MicrosoftDataverse/operations/RecordOperations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { IDataObject } from 'n8n-workflow';
2
+ export interface DataverseEntity {
3
+ LogicalName: string;
4
+ EntitySetName: string;
5
+ DisplayName?: {
6
+ UserLocalizedLabel?: {
7
+ Label: string;
8
+ };
9
+ };
10
+ PrimaryIdAttribute?: string;
11
+ Attributes?: Array<{
12
+ LogicalName: string;
13
+ AttributeType: string;
14
+ DisplayName?: {
15
+ UserLocalizedLabel?: {
16
+ Label: string;
17
+ };
18
+ };
19
+ }>;
20
+ }
21
+ export interface DataverseApiResponse {
22
+ value?: IDataObject[];
23
+ [key: string]: unknown;
24
+ }
25
+ export interface FieldValue {
26
+ name: string;
27
+ value: string;
28
+ }
29
+ export interface AlternateKey {
30
+ name: string;
31
+ value: string;
32
+ }
33
+ export type RecordIdType = 'id' | 'alternateKey';
34
+ export type QueryType = 'odata' | 'fetchxml';
35
+ export type Operation = 'create' | 'delete' | 'get' | 'getMany' | 'update';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../nodes/MicrosoftDataverse/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "n8n-nodes-ms-dataverse",
3
+ "version": "0.1.1",
4
+ "description": "n8n community node for Microsoft Dataverse (Power Platform)",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/wtyeung/n8n-nodes-ms-dataverse#readme",
7
+ "keywords": [
8
+ "n8n-community-node-package",
9
+ "n8n",
10
+ "dataverse",
11
+ "microsoft",
12
+ "power-platform",
13
+ "dynamics-365"
14
+ ],
15
+ "author": {
16
+ "name": "Tim Yeung",
17
+ "email": "tim.yeung@hku.hk"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/wtyeung/n8n-nodes-ms-dataverse.git"
22
+ },
23
+ "scripts": {
24
+ "build": "n8n-node build",
25
+ "build:watch": "tsc --watch",
26
+ "dev": "n8n-node dev",
27
+ "lint": "n8n-node lint",
28
+ "lint:fix": "n8n-node lint --fix",
29
+ "release": "n8n-node release",
30
+ "prepublishOnly": "n8n-node prerelease"
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "n8n": {
36
+ "n8nNodesApiVersion": 1,
37
+ "credentials": [
38
+ "dist/credentials/MicrosoftDataverseOAuth2Api.credentials.js"
39
+ ],
40
+ "nodes": [
41
+ "dist/nodes/MicrosoftDataverse/MicrosoftDataverse.node.js"
42
+ ]
43
+ },
44
+ "devDependencies": {
45
+ "@n8n/node-cli": "*",
46
+ "eslint": "9.32.0",
47
+ "prettier": "3.6.2",
48
+ "release-it": "^19.0.4",
49
+ "typescript": "5.9.2"
50
+ },
51
+ "peerDependencies": {
52
+ "n8n-workflow": "*"
53
+ }
54
+ }