n8n-nodes-arubaclearpass 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Cybernetic Node Composer
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,140 @@
1
+ # n8n-nodes-arubaclearpass
2
+
3
+ This is an n8n community node for Aruba ClearPass API integration. It provides comprehensive access to ClearPass identity, policy, and enforcement management capabilities for network security operations.
4
+
5
+ [Aruba ClearPass](https://www.arubanetworks.com/products/network-management-operations/clearpass/) is a comprehensive network access control (NAC) solution that provides policy management, device profiling, and network security for enterprise environments.
6
+
7
+ ## Installation
8
+
9
+ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
10
+
11
+ ## Operations
12
+
13
+ This node provides access to all major ClearPass API domains:
14
+
15
+ ### Identities
16
+ - **Devices**: Manage network devices, device profiling, and device attributes
17
+ - **Endpoints**: Monitor and manage endpoint devices, endpoint profiling
18
+ - **Guest Users**: Create, update, and manage guest user accounts and access
19
+ - **Local Users**: Manage local user accounts, passwords, and user attributes
20
+
21
+ ### Policy Elements
22
+ - **Roles**: Define and manage user roles and role-based access control
23
+ - **Role Mappings**: Configure role mapping rules and policies
24
+ - **Enforcement Policies**: Create and manage network enforcement policies
25
+
26
+ ### Enforcement Profile
27
+ - **Enforcement Profiles**: Configure network enforcement profiles and VLAN assignments
28
+
29
+ ## Key Features
30
+
31
+ ### Device Management
32
+ - Add, update, and delete network devices
33
+ - Configure device attributes and settings
34
+ - Monitor device status and connectivity
35
+ - Manage device profiling and classification
36
+
37
+ ### User Management
38
+ - Create and manage guest user accounts
39
+ - Configure local user accounts and credentials
40
+ - Set user attributes and permissions
41
+ - Manage user roles and access levels
42
+
43
+ ### Policy Management
44
+ - Define role-based access control policies
45
+ - Configure enforcement rules and VLAN assignments
46
+ - Manage policy mapping and enforcement profiles
47
+ - Monitor policy compliance and violations
48
+
49
+ ### Endpoint Control
50
+ - Track and manage endpoint devices
51
+ - Configure endpoint profiling rules
52
+ - Monitor endpoint compliance and status
53
+ - Manage endpoint access and permissions
54
+
55
+ ## Authentication
56
+
57
+ This node supports both API key and OAuth2 authentication with ClearPass:
58
+
59
+ ### API Key Authentication
60
+ 1. Log into your ClearPass Policy Manager
61
+ 2. Navigate to Administration > API Services > API Clients
62
+ 3. Create a new API client or use an existing one
63
+ 4. Note the Client ID and Client Secret
64
+ 5. Configure the API credentials in n8n
65
+
66
+ ### OAuth2 Authentication
67
+ 1. Configure OAuth2 application in ClearPass
68
+ 2. Set up the OAuth2 credentials in n8n
69
+ 3. Authorize the application for API access
70
+
71
+ ### Setting up Authentication
72
+
73
+ 1. Access your ClearPass Policy Manager web interface
74
+ 2. Navigate to Administration > API Services
75
+ 3. Configure API access and create application credentials
76
+ 4. Set appropriate permissions for the API operations you need
77
+ 5. Use the credentials in n8n's ClearPass API credential configuration
78
+
79
+ ## Compatibility
80
+
81
+ - Requires n8n version 1.0.0 or later
82
+ - Compatible with ClearPass API versions 6.7 and later
83
+ - Supports ClearPass Policy Manager deployments
84
+ - Works with both on-premises and cloud ClearPass instances
85
+
86
+ ## Resources
87
+
88
+ - [ClearPass API Documentation](https://developer.arubanetworks.com/clearpass)
89
+ - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
90
+ - [ClearPass Policy Manager User Guide](https://www.arubanetworks.com/techdocs/ClearPass/)
91
+
92
+ ## License
93
+
94
+ MIT License - see LICENSE file for details
95
+
96
+ ## Support
97
+
98
+ This is a community-maintained node. For issues and questions:
99
+
100
+ - Check the [ClearPass API documentation](https://developer.arubanetworks.com/clearpass) for API-specific questions
101
+ - Use the [n8n community forum](https://community.n8n.io) for general n8n questions
102
+ - Report bugs and feature requests in the GitHub repository
103
+
104
+ ## Contributing
105
+
106
+ Contributions are welcome! Please read our contributing guidelines and submit pull requests for any improvements.
107
+
108
+ ## Version History
109
+
110
+ ### 1.0.0
111
+ - Initial release with comprehensive ClearPass API support
112
+ - Identity management: Devices, Endpoints, Guest Users, Local Users
113
+ - Policy management: Roles, Role Mappings, Enforcement Policies
114
+ - Enforcement profile management
115
+ - API key and OAuth2 authentication support
116
+ - Comprehensive CRUD operations for all resource types
117
+ - Enterprise-grade error handling and logging
118
+
119
+ ## Use Cases
120
+
121
+ ### Network Access Control
122
+ - Automate guest user provisioning and management
123
+ - Implement dynamic policy enforcement based on device profiling
124
+ - Monitor and respond to network access violations
125
+
126
+ ### Identity Management
127
+ - Synchronize user accounts with external systems
128
+ - Automate role-based access control assignments
129
+ - Manage device registration and compliance
130
+
131
+ ### Security Operations
132
+ - Monitor endpoint compliance and security posture
133
+ - Automate response to security policy violations
134
+ - Generate reports on network access and policy enforcement
135
+
136
+ ### Integration Scenarios
137
+ - Connect ClearPass with ITSM systems for automated ticket creation
138
+ - Integrate with HR systems for user lifecycle management
139
+ - Sync with asset management systems for device tracking
140
+ - Connect with SIEM systems for security event correlation
@@ -68,9 +68,16 @@ async function createEnforcementProfile() {
68
68
  body.action = action;
69
69
  }
70
70
  // Add complex configuration
71
- const profileConfigJson = this.getNodeParameter('profileConfig', 0, '{}');
71
+ const profileConfigRaw = this.getNodeParameter('profileConfig', 0, '{}');
72
72
  try {
73
- const profileConfig = JSON.parse(profileConfigJson);
73
+ let profileConfig;
74
+ // Handle both string (JSON) and object inputs
75
+ if (typeof profileConfigRaw === 'string') {
76
+ profileConfig = JSON.parse(profileConfigRaw);
77
+ }
78
+ else {
79
+ profileConfig = profileConfigRaw;
80
+ }
74
81
  // Merge the profile config with the body
75
82
  Object.entries(profileConfig).forEach(([key, value]) => {
76
83
  body[key] = value;
@@ -168,7 +175,14 @@ async function updateEnforcementProfile() {
168
175
  // Handle complex profile configuration if provided
169
176
  if (updateFields.profileConfig) {
170
177
  try {
171
- const profileConfig = JSON.parse(updateFields.profileConfig);
178
+ let profileConfig;
179
+ // Handle both string (JSON) and object inputs
180
+ if (typeof updateFields.profileConfig === 'string') {
181
+ profileConfig = JSON.parse(updateFields.profileConfig);
182
+ }
183
+ else {
184
+ profileConfig = updateFields.profileConfig;
185
+ }
172
186
  // Merge the profile config with the body
173
187
  Object.entries(profileConfig).forEach(([key, value]) => {
174
188
  body[key] = value;
@@ -219,7 +233,14 @@ async function updateEnforcementProfileByName() {
219
233
  // Handle complex profile configuration if provided
220
234
  if (updateFields.profileConfig) {
221
235
  try {
222
- const profileConfig = JSON.parse(updateFields.profileConfig);
236
+ let profileConfig;
237
+ // Handle both string (JSON) and object inputs
238
+ if (typeof updateFields.profileConfig === 'string') {
239
+ profileConfig = JSON.parse(updateFields.profileConfig);
240
+ }
241
+ else {
242
+ profileConfig = updateFields.profileConfig;
243
+ }
223
244
  // Merge the profile config with the body
224
245
  Object.entries(profileConfig).forEach(([key, value]) => {
225
246
  body[key] = value;
@@ -267,9 +288,16 @@ async function replaceEnforcementProfile() {
267
288
  body.action = action;
268
289
  }
269
290
  // Add complex configuration
270
- const profileConfigJson = this.getNodeParameter('profileConfig', 0, '{}');
291
+ const profileConfigRaw = this.getNodeParameter('profileConfig', 0, '{}');
271
292
  try {
272
- const profileConfig = JSON.parse(profileConfigJson);
293
+ let profileConfig;
294
+ // Handle both string (JSON) and object inputs
295
+ if (typeof profileConfigRaw === 'string') {
296
+ profileConfig = JSON.parse(profileConfigRaw);
297
+ }
298
+ else {
299
+ profileConfig = profileConfigRaw;
300
+ }
273
301
  // Merge the profile config with the body
274
302
  Object.entries(profileConfig).forEach(([key, value]) => {
275
303
  body[key] = value;
@@ -316,9 +344,16 @@ async function replaceEnforcementProfileByName() {
316
344
  body.action = action;
317
345
  }
318
346
  // Add complex configuration
319
- const profileConfigJson = this.getNodeParameter('profileConfig', 0, '{}');
347
+ const profileConfigRaw = this.getNodeParameter('profileConfig', 0, '{}');
320
348
  try {
321
- const profileConfig = JSON.parse(profileConfigJson);
349
+ let profileConfig;
350
+ // Handle both string (JSON) and object inputs
351
+ if (typeof profileConfigRaw === 'string') {
352
+ profileConfig = JSON.parse(profileConfigRaw);
353
+ }
354
+ else {
355
+ profileConfig = profileConfigRaw;
356
+ }
322
357
  // Merge the profile config with the body
323
358
  Object.entries(profileConfig).forEach(([key, value]) => {
324
359
  body[key] = value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-arubaclearpass",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "n8n community node for Aruba ClearPass API integration with comprehensive identity, policy, and enforcement profile management",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",