UNPKG

n8n-nodes-arubaclearpass

Version:

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

362 lines (361 loc) 13.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listEnforcementPolicies = listEnforcementPolicies; exports.getEnforcementPolicy = getEnforcementPolicy; exports.getEnforcementPolicyByName = getEnforcementPolicyByName; exports.createEnforcementPolicy = createEnforcementPolicy; exports.updateEnforcementPolicy = updateEnforcementPolicy; exports.updateEnforcementPolicyByName = updateEnforcementPolicyByName; exports.replaceEnforcementPolicy = replaceEnforcementPolicy; exports.replaceEnforcementPolicyByName = replaceEnforcementPolicyByName; exports.deleteEnforcementPolicy = deleteEnforcementPolicy; exports.deleteEnforcementPolicyByName = deleteEnforcementPolicyByName; // methods/PolicyElements/EnforcementPolicy.methods.ts const n8n_workflow_1 = require("n8n-workflow"); const apiRequest_1 = require("../../helpers/apiRequest"); const responseFormatter_1 = require("../../helpers/responseFormatter"); /** * List all enforcement policies */ async function listEnforcementPolicies() { try { const returnAll = this.getNodeParameter('returnAll', 0); const filters = this.getNodeParameter('filters', 0, {}); const endpoint = '/enforcement-policy'; let responseData; if (returnAll) { responseData = await apiRequest_1.apiRequestAllItems.call(this, 'GET', endpoint, {}, filters); } else { const limit = this.getNodeParameter('limit', 0); if (!filters.limit) { filters.limit = limit; } responseData = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, filters); } return responseFormatter_1.formatResponse.call(this, responseData); } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in listEnforcementPolicies'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Get an enforcement policy by ID */ async function getEnforcementPolicy() { try { const enforcementPolicyId = this.getNodeParameter('enforcementPolicyId', 0); const endpoint = `/enforcement-policy/${enforcementPolicyId}`; const responseData = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, responseData); } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in getEnforcementPolicy'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Get an enforcement policy by name */ async function getEnforcementPolicyByName() { try { const name = this.getNodeParameter('name', 0); const endpoint = `/enforcement-policy/name/${name}`; const responseData = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, responseData); } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in getEnforcementPolicyByName'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Create a new enforcement policy */ async function createEnforcementPolicy() { try { const body = {}; // Add required fields body.name = this.getNodeParameter('name', 0); body.enforcement_type = this.getNodeParameter('enforcement_type', 0); body.default_enforcement_profile = this.getNodeParameter('default_enforcement_profile', 0); body.rule_eval_algo = this.getNodeParameter('rule_eval_algo', 0); // Add optional fields const description = this.getNodeParameter('description', 0, ''); if (description) { body.description = description; } // Add rules (required) const rulesJson = this.getNodeParameter('rules', 0); try { body.rules = JSON.parse(rulesJson); } catch (parseError) { throw new Error(`Invalid JSON in rules: ${parseError.message}`); } const endpoint = '/enforcement-policy'; const responseData = await apiRequest_1.apiRequest.call(this, 'POST', endpoint, body); return responseFormatter_1.formatResponse.call(this, responseData); } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in createEnforcementPolicy'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Update an enforcement policy by ID */ async function updateEnforcementPolicy() { try { const enforcementPolicyId = this.getNodeParameter('enforcementPolicyId', 0); const updateFields = this.getNodeParameter('updateFields', 0, {}); if (!Object.keys(updateFields).length) { throw new Error('Please specify at least one field to update'); } const body = {}; // Handle fields Object.entries(updateFields).forEach(([key, value]) => { if (key === 'rules' && typeof value === 'string') { try { body[key] = JSON.parse(value); } catch (parseError) { throw new Error(`Invalid JSON in rules: ${parseError.message}`); } } else { body[key] = value; } }); const endpoint = `/enforcement-policy/${enforcementPolicyId}`; const responseData = await apiRequest_1.apiRequest.call(this, 'PATCH', endpoint, body); return responseFormatter_1.formatResponse.call(this, responseData); } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in updateEnforcementPolicy'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Update an enforcement policy by name */ async function updateEnforcementPolicyByName() { try { const name = this.getNodeParameter('name', 0); const updateFields = this.getNodeParameter('updateFields', 0, {}); if (!Object.keys(updateFields).length) { throw new Error('Please specify at least one field to update'); } const body = {}; // Handle fields Object.entries(updateFields).forEach(([key, value]) => { if (key === 'rules' && typeof value === 'string') { try { body[key] = JSON.parse(value); } catch (parseError) { throw new Error(`Invalid JSON in rules: ${parseError.message}`); } } else { body[key] = value; } }); const endpoint = `/enforcement-policy/name/${name}`; const responseData = await apiRequest_1.apiRequest.call(this, 'PATCH', endpoint, body); return responseFormatter_1.formatResponse.call(this, responseData); } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in updateEnforcementPolicyByName'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Replace an enforcement policy by ID */ async function replaceEnforcementPolicy() { try { const enforcementPolicyId = this.getNodeParameter('enforcementPolicyId', 0); const body = {}; // Add required fields body.name = this.getNodeParameter('name', 0); body.enforcement_type = this.getNodeParameter('enforcement_type', 0); body.default_enforcement_profile = this.getNodeParameter('default_enforcement_profile', 0); body.rule_eval_algo = this.getNodeParameter('rule_eval_algo', 0); // Add optional fields const description = this.getNodeParameter('description', 0, ''); if (description) { body.description = description; } // Add rules (required) const rulesJson = this.getNodeParameter('rules', 0); try { body.rules = JSON.parse(rulesJson); } catch (parseError) { throw new Error(`Invalid JSON in rules: ${parseError.message}`); } const endpoint = `/enforcement-policy/${enforcementPolicyId}`; const responseData = await apiRequest_1.apiRequest.call(this, 'PUT', endpoint, body); return responseFormatter_1.formatResponse.call(this, responseData); } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in replaceEnforcementPolicy'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Replace an enforcement policy by name */ async function replaceEnforcementPolicyByName() { try { const name = this.getNodeParameter('name', 0); const body = {}; // Add required fields body.name = this.getNodeParameter('name', 0); body.enforcement_type = this.getNodeParameter('enforcement_type', 0); body.default_enforcement_profile = this.getNodeParameter('default_enforcement_profile', 0); body.rule_eval_algo = this.getNodeParameter('rule_eval_algo', 0); // Add optional fields const description = this.getNodeParameter('description', 0, ''); if (description) { body.description = description; } // Add rules (required) const rulesJson = this.getNodeParameter('rules', 0); try { body.rules = JSON.parse(rulesJson); } catch (parseError) { throw new Error(`Invalid JSON in rules: ${parseError.message}`); } const endpoint = `/enforcement-policy/name/${name}`; const responseData = await apiRequest_1.apiRequest.call(this, 'PUT', endpoint, body); return responseFormatter_1.formatResponse.call(this, responseData); } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in replaceEnforcementPolicyByName'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Delete an enforcement policy by ID */ async function deleteEnforcementPolicy() { try { const enforcementPolicyId = this.getNodeParameter('enforcementPolicyId', 0); const endpoint = `/enforcement-policy/${enforcementPolicyId}`; await apiRequest_1.apiRequest.call(this, 'DELETE', endpoint); return [{ json: { success: true } }]; } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in deleteEnforcementPolicy'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } } /** * Delete an enforcement policy by name */ async function deleteEnforcementPolicyByName() { try { const name = this.getNodeParameter('name', 0); const endpoint = `/enforcement-policy/name/${name}`; await apiRequest_1.apiRequest.call(this, 'DELETE', endpoint); return [{ json: { success: true } }]; } catch (error) { const errorObject = {}; if (error instanceof Error) { errorObject.message = error.message; if (error.stack) { errorObject.stackTrace = error.stack; } } else { errorObject.message = 'Unknown error in deleteEnforcementPolicyByName'; } throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject); } }