n8n-nodes-arubaclearpass 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.
- package/dist/credentials/ClearPassApi.credentials.d.ts +7 -0
- package/dist/credentials/ClearPassApi.credentials.js +69 -0
- package/dist/credentials/ClearPassOAuth2Api.credentials.d.ts +10 -0
- package/dist/credentials/ClearPassOAuth2Api.credentials.js +55 -0
- package/dist/nodes/ArubaCentral/clearpass.svg +4 -0
- package/dist/nodes/ArubaClearPass/ArubaClearPass.node.d.ts +5 -0
- package/dist/nodes/ArubaClearPass/ArubaClearPass.node.js +173 -0
- package/dist/nodes/ArubaClearPass/descriptions/EnforcementProfile/EnforcementProfile.descriptions.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/descriptions/EnforcementProfile/EnforcementProfile.descriptions.js +361 -0
- package/dist/nodes/ArubaClearPass/descriptions/EnforcementProfile/index.d.ts +2 -0
- package/dist/nodes/ArubaClearPass/descriptions/EnforcementProfile/index.js +11 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/ApiClient.descriptions.d.ts +0 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/ApiClient.descriptions.js +0 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/DenyListedUsers.descriptions.d.ts +0 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/DenyListedUsers.descriptions.js +0 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/Device.descriptions.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/Device.descriptions.js +668 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/Endpoint.descriptions.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/Endpoint.descriptions.js +255 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/ExternalAccount.descriptions.d.ts +0 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/ExternalAccount.descriptions.js +0 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/GuestUser.descriptions.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/GuestUser.descriptions.js +477 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/LocalUser.descriptions.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/LocalUser.descriptions.js +384 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/StaticHostList.descriptions.d.ts +0 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/StaticHostList.descriptions.js +0 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/index.d.ts +2 -0
- package/dist/nodes/ArubaClearPass/descriptions/Identities/index.js +23 -0
- package/dist/nodes/ArubaClearPass/descriptions/PolicyElements/EnforcementPolicy.descriptions.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/descriptions/PolicyElements/EnforcementPolicy.descriptions.js +432 -0
- package/dist/nodes/ArubaClearPass/descriptions/PolicyElements/Role.descriptions.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/descriptions/PolicyElements/Role.descriptions.js +263 -0
- package/dist/nodes/ArubaClearPass/descriptions/PolicyElements/RoleMapping.descriptions.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/descriptions/PolicyElements/RoleMapping.descriptions.js +365 -0
- package/dist/nodes/ArubaClearPass/descriptions/PolicyElements/index.d.ts +2 -0
- package/dist/nodes/ArubaClearPass/descriptions/PolicyElements/index.js +19 -0
- package/dist/nodes/ArubaClearPass/helpers/apiRequest.d.ts +9 -0
- package/dist/nodes/ArubaClearPass/helpers/apiRequest.js +72 -0
- package/dist/nodes/ArubaClearPass/helpers/errorHandler.d.ts +4 -0
- package/dist/nodes/ArubaClearPass/helpers/errorHandler.js +31 -0
- package/dist/nodes/ArubaClearPass/helpers/executeOperation.d.ts +5 -0
- package/dist/nodes/ArubaClearPass/helpers/executeOperation.js +164 -0
- package/dist/nodes/ArubaClearPass/helpers/responseFormatter.d.ts +5 -0
- package/dist/nodes/ArubaClearPass/helpers/responseFormatter.js +17 -0
- package/dist/nodes/ArubaClearPass/helpers/tokenManager.d.ts +5 -0
- package/dist/nodes/ArubaClearPass/helpers/tokenManager.js +63 -0
- package/dist/nodes/ArubaClearPass/methods/EnforcementProfile/EnforcementProfile.methods.d.ts +41 -0
- package/dist/nodes/ArubaClearPass/methods/EnforcementProfile/EnforcementProfile.methods.js +395 -0
- package/dist/nodes/ArubaClearPass/methods/Identities/Device.methods.d.ts +41 -0
- package/dist/nodes/ArubaClearPass/methods/Identities/Device.methods.js +409 -0
- package/dist/nodes/ArubaClearPass/methods/Identities/Endpoint.methods.d.ts +33 -0
- package/dist/nodes/ArubaClearPass/methods/Identities/Endpoint.methods.js +212 -0
- package/dist/nodes/ArubaClearPass/methods/Identities/GuestUser.methods.d.ts +41 -0
- package/dist/nodes/ArubaClearPass/methods/Identities/GuestUser.methods.js +589 -0
- package/dist/nodes/ArubaClearPass/methods/Identities/LocalUser.methods.d.ts +41 -0
- package/dist/nodes/ArubaClearPass/methods/Identities/LocalUser.methods.js +407 -0
- package/dist/nodes/ArubaClearPass/methods/PolicyElements/EnforcementPolicy.methods.d.ts +41 -0
- package/dist/nodes/ArubaClearPass/methods/PolicyElements/EnforcementPolicy.methods.js +361 -0
- package/dist/nodes/ArubaClearPass/methods/PolicyElements/Role.methods.d.ts +41 -0
- package/dist/nodes/ArubaClearPass/methods/PolicyElements/Role.methods.js +298 -0
- package/dist/nodes/ArubaClearPass/methods/PolicyElements/RoleMapping.methods.d.ts +41 -0
- package/dist/nodes/ArubaClearPass/methods/PolicyElements/RoleMapping.methods.js +358 -0
- package/dist/nodes/ArubaClearPass/types/EnforcementProfile/EnforcementProfile.types.d.ts +131 -0
- package/dist/nodes/ArubaClearPass/types/EnforcementProfile/EnforcementProfile.types.js +2 -0
- package/dist/nodes/ArubaClearPass/types/Identities/Device.types.d.ts +55 -0
- package/dist/nodes/ArubaClearPass/types/Identities/Device.types.js +2 -0
- package/dist/nodes/ArubaClearPass/types/Identities/Endpoint.types.d.ts +12 -0
- package/dist/nodes/ArubaClearPass/types/Identities/Endpoint.types.js +2 -0
- package/dist/nodes/ArubaClearPass/types/Identities/GuestUser.types.d.ts +31 -0
- package/dist/nodes/ArubaClearPass/types/Identities/GuestUser.types.js +2 -0
- package/dist/nodes/ArubaClearPass/types/Identities/LocalUser.types.d.ts +51 -0
- package/dist/nodes/ArubaClearPass/types/Identities/LocalUser.types.js +2 -0
- package/dist/nodes/ArubaClearPass/types/PolicyElements/EnforcementPolicy.types.d.ts +37 -0
- package/dist/nodes/ArubaClearPass/types/PolicyElements/EnforcementPolicy.types.js +2 -0
- package/dist/nodes/ArubaClearPass/types/PolicyElements/Role.types.d.ts +15 -0
- package/dist/nodes/ArubaClearPass/types/PolicyElements/Role.types.js +2 -0
- package/dist/nodes/ArubaClearPass/types/PolicyElements/RoleMapping.types.d.ts +63 -0
- package/dist/nodes/ArubaClearPass/types/PolicyElements/RoleMapping.types.js +2 -0
- package/package.json +72 -0
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.roleMappingProperties = exports.roleMappingFields = exports.roleMappingOperations = void 0;
|
|
4
|
+
// Define operations for RoleMapping resource
|
|
5
|
+
exports.roleMappingOperations = {
|
|
6
|
+
displayName: 'Operation',
|
|
7
|
+
name: 'operation',
|
|
8
|
+
type: 'options',
|
|
9
|
+
displayOptions: {
|
|
10
|
+
show: {
|
|
11
|
+
domain: ['PolicyElements'],
|
|
12
|
+
resource: ['RoleMapping'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
name: 'Create',
|
|
18
|
+
value: 'create',
|
|
19
|
+
description: 'Create a new role mapping',
|
|
20
|
+
action: 'Create a role mapping',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Delete',
|
|
24
|
+
value: 'delete',
|
|
25
|
+
description: 'Delete a role mapping',
|
|
26
|
+
action: 'Delete a role mapping',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'Get',
|
|
30
|
+
value: 'get',
|
|
31
|
+
description: 'Get a role mapping by ID',
|
|
32
|
+
action: 'Get a role mapping',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'Get By Name',
|
|
36
|
+
value: 'getByName',
|
|
37
|
+
description: 'Get a role mapping by name',
|
|
38
|
+
action: 'Get a role mapping by name',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'List',
|
|
42
|
+
value: 'list',
|
|
43
|
+
description: 'Get all role mappings',
|
|
44
|
+
action: 'List all role mappings',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Update',
|
|
48
|
+
value: 'update',
|
|
49
|
+
description: 'Update a role mapping',
|
|
50
|
+
action: 'Update a role mapping',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'Replace',
|
|
54
|
+
value: 'replace',
|
|
55
|
+
description: 'Replace a role mapping',
|
|
56
|
+
action: 'Replace a role mapping',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'Delete By Name',
|
|
60
|
+
value: 'deleteByName',
|
|
61
|
+
description: 'Delete a role mapping by name',
|
|
62
|
+
action: 'Delete a role mapping by name',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Update By Name',
|
|
66
|
+
value: 'updateByName',
|
|
67
|
+
description: 'Update a role mapping by name',
|
|
68
|
+
action: 'Update a role mapping by name',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'Replace By Name',
|
|
72
|
+
value: 'replaceByName',
|
|
73
|
+
description: 'Replace a role mapping by name',
|
|
74
|
+
action: 'Replace a role mapping by name',
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
default: 'list',
|
|
78
|
+
};
|
|
79
|
+
// Define fields for RoleMapping resource
|
|
80
|
+
exports.roleMappingFields = [
|
|
81
|
+
// Fields for ID-based operations
|
|
82
|
+
{
|
|
83
|
+
displayName: 'Role Mapping ID',
|
|
84
|
+
name: 'roleMappingId',
|
|
85
|
+
type: 'string',
|
|
86
|
+
required: true,
|
|
87
|
+
default: '',
|
|
88
|
+
displayOptions: {
|
|
89
|
+
show: {
|
|
90
|
+
domain: ['PolicyElements'],
|
|
91
|
+
resource: ['RoleMapping'],
|
|
92
|
+
operation: ['get', 'update', 'delete', 'replace'],
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
description: 'The ID of the role mapping',
|
|
96
|
+
},
|
|
97
|
+
// Fields for name-based operations
|
|
98
|
+
{
|
|
99
|
+
displayName: 'Name',
|
|
100
|
+
name: 'name',
|
|
101
|
+
type: 'string',
|
|
102
|
+
required: true,
|
|
103
|
+
default: '',
|
|
104
|
+
displayOptions: {
|
|
105
|
+
show: {
|
|
106
|
+
domain: ['PolicyElements'],
|
|
107
|
+
resource: ['RoleMapping'],
|
|
108
|
+
operation: ['getByName', 'deleteByName', 'updateByName', 'replaceByName'],
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
description: 'The unique name of the role mapping',
|
|
112
|
+
},
|
|
113
|
+
// Common fields for create and replace operations
|
|
114
|
+
{
|
|
115
|
+
displayName: 'Name',
|
|
116
|
+
name: 'name',
|
|
117
|
+
type: 'string',
|
|
118
|
+
required: true,
|
|
119
|
+
default: '',
|
|
120
|
+
displayOptions: {
|
|
121
|
+
show: {
|
|
122
|
+
domain: ['PolicyElements'],
|
|
123
|
+
resource: ['RoleMapping'],
|
|
124
|
+
operation: ['create', 'replace', 'replaceByName'],
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
description: 'Name of the role mapping policy',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
displayName: 'Default Role Name',
|
|
131
|
+
name: 'default_role_name',
|
|
132
|
+
type: 'string',
|
|
133
|
+
required: true,
|
|
134
|
+
default: '',
|
|
135
|
+
displayOptions: {
|
|
136
|
+
show: {
|
|
137
|
+
domain: ['PolicyElements'],
|
|
138
|
+
resource: ['RoleMapping'],
|
|
139
|
+
operation: ['create', 'replace', 'replaceByName'],
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
description: 'Default role name for the role mapping',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
displayName: 'Rule Combine Algorithm',
|
|
146
|
+
name: 'rule_combine_algo',
|
|
147
|
+
type: 'options',
|
|
148
|
+
options: [
|
|
149
|
+
{
|
|
150
|
+
name: 'First Applicable',
|
|
151
|
+
value: 'first-applicable',
|
|
152
|
+
description: 'Stop processing once a rule matches',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: 'Evaluate All',
|
|
156
|
+
value: 'evaluate-all',
|
|
157
|
+
description: 'Process all rules regardless of matches',
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
required: true,
|
|
161
|
+
default: 'first-applicable',
|
|
162
|
+
displayOptions: {
|
|
163
|
+
show: {
|
|
164
|
+
domain: ['PolicyElements'],
|
|
165
|
+
resource: ['RoleMapping'],
|
|
166
|
+
operation: ['create', 'replace', 'replaceByName'],
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
description: 'Algorithm to use when evaluating rules',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
displayName: 'Description',
|
|
173
|
+
name: 'description',
|
|
174
|
+
type: 'string',
|
|
175
|
+
required: false,
|
|
176
|
+
default: '',
|
|
177
|
+
displayOptions: {
|
|
178
|
+
show: {
|
|
179
|
+
domain: ['PolicyElements'],
|
|
180
|
+
resource: ['RoleMapping'],
|
|
181
|
+
operation: ['create', 'replace', 'replaceByName'],
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
description: 'Description of the role mapping',
|
|
185
|
+
},
|
|
186
|
+
// Rules JSON Field for create/replace - This is complex, so we'll use JSON input
|
|
187
|
+
{
|
|
188
|
+
displayName: 'Rules',
|
|
189
|
+
name: 'rules',
|
|
190
|
+
type: 'json',
|
|
191
|
+
required: true,
|
|
192
|
+
default: '[]',
|
|
193
|
+
displayOptions: {
|
|
194
|
+
show: {
|
|
195
|
+
domain: ['PolicyElements'],
|
|
196
|
+
resource: ['RoleMapping'],
|
|
197
|
+
operation: ['create', 'replace', 'replaceByName'],
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
description: 'JSON array of mapping rules. Each rule should have match_type, role_name, and condition properties.',
|
|
201
|
+
placeholder: `[
|
|
202
|
+
{
|
|
203
|
+
"match_type": "AND",
|
|
204
|
+
"role_name": "Guest",
|
|
205
|
+
"condition": {
|
|
206
|
+
"type": "Connection",
|
|
207
|
+
"name": "Connection:Protocol",
|
|
208
|
+
"oper": "EQUALS",
|
|
209
|
+
"value": "MAC"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
]`,
|
|
213
|
+
},
|
|
214
|
+
// Update fields
|
|
215
|
+
{
|
|
216
|
+
displayName: 'Update Fields',
|
|
217
|
+
name: 'updateFields',
|
|
218
|
+
type: 'collection',
|
|
219
|
+
placeholder: 'Add Field',
|
|
220
|
+
default: {},
|
|
221
|
+
displayOptions: {
|
|
222
|
+
show: {
|
|
223
|
+
domain: ['PolicyElements'],
|
|
224
|
+
resource: ['RoleMapping'],
|
|
225
|
+
operation: ['update', 'updateByName'],
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
options: [
|
|
229
|
+
{
|
|
230
|
+
displayName: 'Name',
|
|
231
|
+
name: 'name',
|
|
232
|
+
type: 'string',
|
|
233
|
+
default: '',
|
|
234
|
+
description: 'Name of the role mapping policy',
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
displayName: 'Description',
|
|
238
|
+
name: 'description',
|
|
239
|
+
type: 'string',
|
|
240
|
+
default: '',
|
|
241
|
+
description: 'Description of the role mapping',
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
displayName: 'Default Role Name',
|
|
245
|
+
name: 'default_role_name',
|
|
246
|
+
type: 'string',
|
|
247
|
+
default: '',
|
|
248
|
+
description: 'Default role name for the role mapping',
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
displayName: 'Rule Combine Algorithm',
|
|
252
|
+
name: 'rule_combine_algo',
|
|
253
|
+
type: 'options',
|
|
254
|
+
options: [
|
|
255
|
+
{
|
|
256
|
+
name: 'First Applicable',
|
|
257
|
+
value: 'first-applicable',
|
|
258
|
+
description: 'Stop processing once a rule matches',
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
name: 'Evaluate All',
|
|
262
|
+
value: 'evaluate-all',
|
|
263
|
+
description: 'Process all rules regardless of matches',
|
|
264
|
+
},
|
|
265
|
+
],
|
|
266
|
+
default: 'first-applicable',
|
|
267
|
+
description: 'Algorithm to use when evaluating rules',
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
displayName: 'Rules',
|
|
271
|
+
name: 'rules',
|
|
272
|
+
type: 'json',
|
|
273
|
+
default: '[]',
|
|
274
|
+
description: 'JSON array of mapping rules. Each rule should have match_type, role_name, and condition properties.',
|
|
275
|
+
placeholder: `[
|
|
276
|
+
{
|
|
277
|
+
"match_type": "AND",
|
|
278
|
+
"role_name": "Guest",
|
|
279
|
+
"condition": {
|
|
280
|
+
"type": "Connection",
|
|
281
|
+
"name": "Connection:Protocol",
|
|
282
|
+
"oper": "EQUALS",
|
|
283
|
+
"value": "MAC"
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
]`,
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
},
|
|
290
|
+
// Fields for list operation
|
|
291
|
+
{
|
|
292
|
+
displayName: 'Return All',
|
|
293
|
+
name: 'returnAll',
|
|
294
|
+
type: 'boolean',
|
|
295
|
+
displayOptions: {
|
|
296
|
+
show: {
|
|
297
|
+
domain: ['PolicyElements'],
|
|
298
|
+
resource: ['RoleMapping'],
|
|
299
|
+
operation: ['list'],
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
default: false,
|
|
303
|
+
description: 'Whether to return all results or only up to a given limit',
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
displayName: 'Limit',
|
|
307
|
+
name: 'limit',
|
|
308
|
+
type: 'number',
|
|
309
|
+
displayOptions: {
|
|
310
|
+
show: {
|
|
311
|
+
domain: ['PolicyElements'],
|
|
312
|
+
resource: ['RoleMapping'],
|
|
313
|
+
operation: ['list'],
|
|
314
|
+
returnAll: [false],
|
|
315
|
+
},
|
|
316
|
+
},
|
|
317
|
+
typeOptions: {
|
|
318
|
+
minValue: 1,
|
|
319
|
+
maxValue: 1000,
|
|
320
|
+
},
|
|
321
|
+
default: 100,
|
|
322
|
+
description: 'Max number of results to return',
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
displayName: 'Filters',
|
|
326
|
+
name: 'filters',
|
|
327
|
+
type: 'collection',
|
|
328
|
+
placeholder: 'Add Filter',
|
|
329
|
+
default: {},
|
|
330
|
+
displayOptions: {
|
|
331
|
+
show: {
|
|
332
|
+
domain: ['PolicyElements'],
|
|
333
|
+
resource: ['RoleMapping'],
|
|
334
|
+
operation: ['list'],
|
|
335
|
+
},
|
|
336
|
+
},
|
|
337
|
+
options: [
|
|
338
|
+
{
|
|
339
|
+
displayName: 'Filter',
|
|
340
|
+
name: 'filter',
|
|
341
|
+
type: 'string',
|
|
342
|
+
default: '',
|
|
343
|
+
description: 'JSON filter expression specifying the items to return',
|
|
344
|
+
placeholder: '{"name": {"$contains": "Guest"}}',
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
displayName: 'Sort',
|
|
348
|
+
name: 'sort',
|
|
349
|
+
type: 'string',
|
|
350
|
+
default: '+id',
|
|
351
|
+
description: 'Sort ordering for returned items (default +id)',
|
|
352
|
+
placeholder: '+name or -created_at',
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
displayName: 'Calculate Count',
|
|
356
|
+
name: 'calculate_count',
|
|
357
|
+
type: 'boolean',
|
|
358
|
+
default: false,
|
|
359
|
+
description: 'Whether to calculate the total item count',
|
|
360
|
+
},
|
|
361
|
+
],
|
|
362
|
+
},
|
|
363
|
+
];
|
|
364
|
+
// Export combined properties for use in index.ts
|
|
365
|
+
exports.roleMappingProperties = [exports.roleMappingOperations, ...exports.roleMappingFields];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.policyElementsResources = void 0;
|
|
4
|
+
// Define the resources for the PolicyElements domain
|
|
5
|
+
exports.policyElementsResources = [
|
|
6
|
+
{
|
|
7
|
+
name: 'Role',
|
|
8
|
+
value: 'Role',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'Role Mapping',
|
|
12
|
+
value: 'RoleMapping',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'Enforcement Policy',
|
|
16
|
+
value: 'EnforcementPolicy',
|
|
17
|
+
},
|
|
18
|
+
// Add more resources as needed
|
|
19
|
+
];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions, IDataObject, IHttpRequestMethods } from 'n8n-workflow';
|
|
2
|
+
/**
|
|
3
|
+
* Make an API request to Aruba ClearPass
|
|
4
|
+
*/
|
|
5
|
+
export declare function apiRequest(this: IExecuteFunctions | ILoadOptionsFunctions | IHookFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, query?: IDataObject): Promise<any>;
|
|
6
|
+
/**
|
|
7
|
+
* Make paginated API requests to Aruba ClearPass and return all results
|
|
8
|
+
*/
|
|
9
|
+
export declare function apiRequestAllItems(this: IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, query?: IDataObject): Promise<any>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.apiRequest = apiRequest;
|
|
4
|
+
exports.apiRequestAllItems = apiRequestAllItems;
|
|
5
|
+
// helpers/apiRequest.ts
|
|
6
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
|
+
const tokenManager_1 = require("./tokenManager");
|
|
8
|
+
/**
|
|
9
|
+
* Make an API request to Aruba ClearPass
|
|
10
|
+
*/
|
|
11
|
+
async function apiRequest(method, endpoint, body = {}, query = {}) {
|
|
12
|
+
const credentials = (await this.getCredentials('clearPassApi'));
|
|
13
|
+
const baseUrl = credentials.url;
|
|
14
|
+
const options = {
|
|
15
|
+
method,
|
|
16
|
+
url: `${baseUrl}/api${endpoint}`,
|
|
17
|
+
headers: {
|
|
18
|
+
'Content-Type': 'application/json',
|
|
19
|
+
},
|
|
20
|
+
qs: query,
|
|
21
|
+
body,
|
|
22
|
+
json: true,
|
|
23
|
+
};
|
|
24
|
+
if (Object.keys(body).length === 0) {
|
|
25
|
+
delete options.body;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
// If using Client ID/Secret auth, get token directly. Otherwise, use OAuth2 authentication
|
|
29
|
+
if (credentials.authType === 'clientCredentials') {
|
|
30
|
+
const token = await tokenManager_1.getToken.call(this, credentials);
|
|
31
|
+
options.headers = {
|
|
32
|
+
...options.headers,
|
|
33
|
+
Authorization: `Bearer ${token}`,
|
|
34
|
+
};
|
|
35
|
+
return await this.helpers.request(options);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// OAuth2 authentication (processed by n8n)
|
|
39
|
+
return await this.helpers.requestWithAuthentication.call(this, 'clearPassApi', options);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
// Fix error handling
|
|
44
|
+
throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Make paginated API requests to Aruba ClearPass and return all results
|
|
49
|
+
*/
|
|
50
|
+
async function apiRequestAllItems(method, endpoint, body = {}, query = {}) {
|
|
51
|
+
const returnData = [];
|
|
52
|
+
// Set initial parameters for pagination
|
|
53
|
+
let responseData;
|
|
54
|
+
query.limit = query.limit || 100;
|
|
55
|
+
query.offset = 0;
|
|
56
|
+
do {
|
|
57
|
+
responseData = await apiRequest.call(this, method, endpoint, body, query);
|
|
58
|
+
if (responseData._embedded && responseData._embedded.items) {
|
|
59
|
+
returnData.push.apply(returnData, responseData._embedded.items);
|
|
60
|
+
}
|
|
61
|
+
else if (Array.isArray(responseData)) {
|
|
62
|
+
returnData.push.apply(returnData, responseData);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
returnData.push(responseData);
|
|
66
|
+
}
|
|
67
|
+
query.offset = query.offset + query.limit;
|
|
68
|
+
} while (responseData._embedded &&
|
|
69
|
+
responseData._embedded.items &&
|
|
70
|
+
responseData._embedded.items.length === query.limit);
|
|
71
|
+
return returnData;
|
|
72
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleApiError = handleApiError;
|
|
4
|
+
// helpers/errorHandler.ts
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
/**
|
|
7
|
+
* Handle common error scenarios for ClearPass API
|
|
8
|
+
*/
|
|
9
|
+
function handleApiError(node, error) {
|
|
10
|
+
let errorMessage = 'An error occurred while making the API request: ';
|
|
11
|
+
// Handle standard API error responses
|
|
12
|
+
if (error.response && error.response.body) {
|
|
13
|
+
const body = error.response.body;
|
|
14
|
+
if (typeof body.detail === 'string') {
|
|
15
|
+
errorMessage += body.detail;
|
|
16
|
+
}
|
|
17
|
+
else if (typeof body.message === 'string') {
|
|
18
|
+
errorMessage += body.message;
|
|
19
|
+
}
|
|
20
|
+
else if (typeof body.title === 'string') {
|
|
21
|
+
errorMessage += body.title;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
errorMessage += JSON.stringify(body);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else if (error.message) {
|
|
28
|
+
errorMessage += error.message;
|
|
29
|
+
}
|
|
30
|
+
throw new n8n_workflow_1.NodeApiError(node, error, { message: errorMessage });
|
|
31
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.executeOperation = executeOperation;
|
|
37
|
+
const deviceMethods = __importStar(require("../methods/Identities/Device.methods"));
|
|
38
|
+
const endpointMethods = __importStar(require("../methods/Identities/Endpoint.methods"));
|
|
39
|
+
const guestUserMethods = __importStar(require("../methods/Identities/GuestUser.methods"));
|
|
40
|
+
const localUserMethods = __importStar(require("../methods/Identities/LocalUser.methods"));
|
|
41
|
+
const roleMethods = __importStar(require("../methods/PolicyElements/Role.methods"));
|
|
42
|
+
const roleMappingMethods = __importStar(require("../methods/PolicyElements/RoleMapping.methods"));
|
|
43
|
+
const enforcementPolicyMethods = __importStar(require("../methods/PolicyElements/EnforcementPolicy.methods"));
|
|
44
|
+
const enforcementProfileMethods = __importStar(require("../methods/EnforcementProfile/EnforcementProfile.methods"));
|
|
45
|
+
// ... Add more methods for other endpoints here
|
|
46
|
+
/**
|
|
47
|
+
* Execute the appropriate operation based on user selection
|
|
48
|
+
*/
|
|
49
|
+
async function executeOperation() {
|
|
50
|
+
const domain = this.getNodeParameter('domain', 0);
|
|
51
|
+
const resource = this.getNodeParameter('resource', 0);
|
|
52
|
+
const operation = this.getNodeParameter('operation', 0);
|
|
53
|
+
console.log(`Executing ${domain}.${resource}.${operation}`);
|
|
54
|
+
// Define handlers for each domain/resource/operation combination
|
|
55
|
+
const handlers = {
|
|
56
|
+
Identities: {
|
|
57
|
+
Device: {
|
|
58
|
+
list: deviceMethods.listDevices,
|
|
59
|
+
get: deviceMethods.getDevice,
|
|
60
|
+
getByMac: deviceMethods.getDeviceByMac,
|
|
61
|
+
create: deviceMethods.createDevice,
|
|
62
|
+
update: deviceMethods.updateDevice,
|
|
63
|
+
updateByMac: deviceMethods.updateDeviceByMac,
|
|
64
|
+
replace: deviceMethods.replaceDevice,
|
|
65
|
+
replaceByMac: deviceMethods.replaceDeviceByMac,
|
|
66
|
+
delete: deviceMethods.deleteDevice,
|
|
67
|
+
deleteByMac: deviceMethods.deleteDeviceByMac,
|
|
68
|
+
},
|
|
69
|
+
Endpoint: {
|
|
70
|
+
list: endpointMethods.listEndpoints,
|
|
71
|
+
get: endpointMethods.getEndpoint,
|
|
72
|
+
getByMac: endpointMethods.getEndpointByMac,
|
|
73
|
+
create: endpointMethods.createEndpoint,
|
|
74
|
+
update: endpointMethods.updateEndpoint,
|
|
75
|
+
updateByMac: endpointMethods.updateEndpointByMac,
|
|
76
|
+
delete: endpointMethods.deleteEndpoint,
|
|
77
|
+
deleteByMac: endpointMethods.deleteEndpointByMac,
|
|
78
|
+
},
|
|
79
|
+
GuestUser: {
|
|
80
|
+
// Add this section for GuestUser operations
|
|
81
|
+
list: guestUserMethods.listGuestUsers,
|
|
82
|
+
get: guestUserMethods.getGuestUser,
|
|
83
|
+
getByUsername: guestUserMethods.getGuestUserByUsername,
|
|
84
|
+
create: guestUserMethods.createGuestUser,
|
|
85
|
+
update: guestUserMethods.updateGuestUser,
|
|
86
|
+
updateByUsername: guestUserMethods.updateGuestUserByUsername,
|
|
87
|
+
replace: guestUserMethods.replaceGuestUser,
|
|
88
|
+
replaceByUsername: guestUserMethods.replaceGuestUserByUsername,
|
|
89
|
+
delete: guestUserMethods.deleteGuestUser,
|
|
90
|
+
deleteByUsername: guestUserMethods.deleteGuestUserByUsername,
|
|
91
|
+
},
|
|
92
|
+
LocalUser: {
|
|
93
|
+
list: localUserMethods.listLocalUsers,
|
|
94
|
+
get: localUserMethods.getLocalUser,
|
|
95
|
+
getByUserId: localUserMethods.getLocalUserByUserId,
|
|
96
|
+
create: localUserMethods.createLocalUser,
|
|
97
|
+
update: localUserMethods.updateLocalUser,
|
|
98
|
+
updateByUserId: localUserMethods.updateLocalUserByUserId,
|
|
99
|
+
replace: localUserMethods.replaceLocalUser,
|
|
100
|
+
replaceByUserId: localUserMethods.replaceLocalUserByUserId,
|
|
101
|
+
delete: localUserMethods.deleteLocalUser,
|
|
102
|
+
deleteByUserId: localUserMethods.deleteLocalUserByUserId,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
PolicyElements: {
|
|
106
|
+
Role: {
|
|
107
|
+
list: roleMethods.listRoles,
|
|
108
|
+
get: roleMethods.getRole,
|
|
109
|
+
getByName: roleMethods.getRoleByName,
|
|
110
|
+
create: roleMethods.createRole,
|
|
111
|
+
update: roleMethods.updateRole,
|
|
112
|
+
updateByName: roleMethods.updateRoleByName,
|
|
113
|
+
replace: roleMethods.replaceRole,
|
|
114
|
+
replaceByName: roleMethods.replaceRoleByName,
|
|
115
|
+
delete: roleMethods.deleteRole,
|
|
116
|
+
deleteByName: roleMethods.deleteRoleByName,
|
|
117
|
+
},
|
|
118
|
+
RoleMapping: {
|
|
119
|
+
list: roleMappingMethods.listRoleMappings,
|
|
120
|
+
get: roleMappingMethods.getRoleMapping,
|
|
121
|
+
getByName: roleMappingMethods.getRoleMappingByName,
|
|
122
|
+
create: roleMappingMethods.createRoleMapping,
|
|
123
|
+
update: roleMappingMethods.updateRoleMapping,
|
|
124
|
+
updateByName: roleMappingMethods.updateRoleMappingByName,
|
|
125
|
+
replace: roleMappingMethods.replaceRoleMapping,
|
|
126
|
+
replaceByName: roleMappingMethods.replaceRoleMappingByName,
|
|
127
|
+
delete: roleMappingMethods.deleteRoleMapping,
|
|
128
|
+
deleteByName: roleMappingMethods.deleteRoleMappingByName,
|
|
129
|
+
},
|
|
130
|
+
EnforcementPolicy: {
|
|
131
|
+
list: enforcementPolicyMethods.listEnforcementPolicies,
|
|
132
|
+
get: enforcementPolicyMethods.getEnforcementPolicy,
|
|
133
|
+
getByName: enforcementPolicyMethods.getEnforcementPolicyByName,
|
|
134
|
+
create: enforcementPolicyMethods.createEnforcementPolicy,
|
|
135
|
+
update: enforcementPolicyMethods.updateEnforcementPolicy,
|
|
136
|
+
updateByName: enforcementPolicyMethods.updateEnforcementPolicyByName,
|
|
137
|
+
replace: enforcementPolicyMethods.replaceEnforcementPolicy,
|
|
138
|
+
replaceByName: enforcementPolicyMethods.replaceEnforcementPolicyByName,
|
|
139
|
+
delete: enforcementPolicyMethods.deleteEnforcementPolicy,
|
|
140
|
+
deleteByName: enforcementPolicyMethods.deleteEnforcementPolicyByName,
|
|
141
|
+
},
|
|
142
|
+
// Add other PolicyElements resources as needed
|
|
143
|
+
},
|
|
144
|
+
EnforcementProfile: {
|
|
145
|
+
EnforcementProfile: {
|
|
146
|
+
list: enforcementProfileMethods.listEnforcementProfiles,
|
|
147
|
+
get: enforcementProfileMethods.getEnforcementProfile,
|
|
148
|
+
getByName: enforcementProfileMethods.getEnforcementProfileByName,
|
|
149
|
+
create: enforcementProfileMethods.createEnforcementProfile,
|
|
150
|
+
update: enforcementProfileMethods.updateEnforcementProfile,
|
|
151
|
+
updateByName: enforcementProfileMethods.updateEnforcementProfileByName,
|
|
152
|
+
replace: enforcementProfileMethods.replaceEnforcementProfile,
|
|
153
|
+
replaceByName: enforcementProfileMethods.replaceEnforcementProfileByName,
|
|
154
|
+
delete: enforcementProfileMethods.deleteEnforcementProfile,
|
|
155
|
+
deleteByName: enforcementProfileMethods.deleteEnforcementProfileByName,
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
// Add other domain resources as needed
|
|
159
|
+
};
|
|
160
|
+
if (!handlers[domain] || !handlers[domain][resource] || !handlers[domain][resource][operation]) {
|
|
161
|
+
throw new Error(`The operation ${domain}.${resource}.${operation} is not supported!`);
|
|
162
|
+
}
|
|
163
|
+
return await handlers[domain][resource][operation].call(this);
|
|
164
|
+
}
|