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
JavaScript
;
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;