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
JavaScript
"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);
}
}