UNPKG

n8n-nodes-arubaclearpass

Version:

n8n community node for Aruba ClearPass API integration with comprehensive identity, policy, and enforcement profile management

174 lines (173 loc) 6.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ArubaClearPass = void 0; const executeOperation_1 = require("./helpers/executeOperation"); // // Add more domain description inports here // // ⚠️ IMPORTANT: The class MUST be named "index" for n8n to load it correctly class ArubaClearPass { constructor() { this.description = { displayName: 'Aruba ClearPass', name: 'arubaClearPass', icon: 'file:clearpass.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["domain"] + ": " + $parameter["resource"] + " - " + $parameter["operation"]}}', description: 'Interact with Aruba ClearPass API', defaults: { name: 'Aruba ClearPass', }, usableAsTool: true, inputs: ['main'], outputs: ['main'], credentials: [ { name: 'clearPassApi', required: true, }, ], properties: [ { displayName: 'Domain', name: 'domain', type: 'options', options: [ { name: 'Identities', value: 'Identities', }, { name: 'Policy Elements', value: 'PolicyElements', }, { name: 'Enforcement Profile', value: 'EnforcementProfile', }, // Other domains can be added here when implemented ], default: 'Identities', required: true, description: 'API domain to access', }, // Resource selection property for Identities domain { displayName: 'Resource', name: 'resource', type: 'options', displayOptions: { show: { domain: ['Identities'], }, }, options: [ { name: 'Devices', value: 'Device', }, { name: 'Endpoints', value: 'Endpoint', }, { name: 'Guest Users', value: 'GuestUser', }, { name: 'Local Users', value: 'LocalUser', }, ], default: 'Endpoint', required: true, description: 'Resource to consume', }, // Resource selection property for PolicyElements domain { displayName: 'Resource', name: 'resource', type: 'options', displayOptions: { show: { domain: ['PolicyElements'], }, }, options: [ { name: 'Roles', value: 'Role', }, { name: 'Role Mappings', value: 'RoleMapping', }, { name: 'Enforcement Policies', value: 'EnforcementPolicy', }, ], default: 'Role', required: true, description: 'Resource to consume', }, { displayName: 'Resource', name: 'resource', type: 'options', displayOptions: { show: { domain: ['EnforcementProfile'], }, }, options: [ { name: 'Enforcement Profiles', value: 'EnforcementProfile', }, ], default: 'EnforcementProfile', required: true, description: 'Resource to consume', }, // Import the properties from the descriptions ...require('./descriptions/Identities/Device.descriptions').deviceProperties, ...require('./descriptions/Identities/Endpoint.descriptions').endpointProperties, ...require('./descriptions/Identities/GuestUser.descriptions').guestUserProperties, ...require('./descriptions/Identities/LocalUser.descriptions').localUserProperties, ...require('./descriptions/PolicyElements/Role.descriptions').roleProperties, ...require('./descriptions/PolicyElements/RoleMapping.descriptions').roleMappingProperties, ...require('./descriptions/PolicyElements/EnforcementPolicy.descriptions') .enforcementPolicyProperties, ...require('./descriptions/EnforcementProfile/EnforcementProfile.descriptions') .enforcementProfileProperties, /// // Add imports for other descriptions here /// ], }; } async execute() { console.log('\n\n========== CLEARPASS NODE EXECUTION STARTED =========='); try { const result = await executeOperation_1.executeOperation.call(this); // Add some debugging information console.log(`Operation executed successfully, returning ${result.length} items`); return [result]; // Return the result wrapped in an array } catch (error) { console.log('ERROR in node execution:'); console.log(error); if (this.continueOnFail()) { console.log('Continue on fail is enabled, returning error as output'); return [[{ json: { error: error.message } }]]; } throw error; } finally { console.log('========== CLEARPASS NODE EXECUTION COMPLETED ==========\n\n'); } } } exports.ArubaClearPass = ArubaClearPass;