UNPKG

n8n-nodes-tenable-community

Version:

n8n node for the Tenable One platform

114 lines (113 loc) 5.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IdentityExposure = void 0; const GenericFunctions_1 = require("./GenericFunctions"); const IdentityExposure_node_options_1 = require("./IdentityExposure.node.options"); class IdentityExposure { constructor() { this.description = { displayName: 'Tenable Identity Exposure', name: 'identityExposure', icon: 'file:tenable.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Interacts with the Tenable Identity Exposure API', defaults: { name: 'Tenable Identity Exposure', }, inputs: ["main" /* NodeConnectionType.Main */], outputs: ["main" /* NodeConnectionType.Main */], credentials: [ { name: 'tenableApi', required: true, }, ], properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'AD Objects', value: 'adObjects', }, { name: 'Alerts', value: 'alerts', }, ], default: 'adObjects', }, ...IdentityExposure_node_options_1.identityExposureOperations, ...IdentityExposure_node_options_1.identityExposureFields, ], }; } async execute() { const items = this.getInputData(); const returnData = []; const length = items.length; let responseData; for (let i = 0; i < length; i++) { const resource = this.getNodeParameter('resource', i); const operation = this.getNodeParameter('operation', i); const body = {}; const qs = {}; if (resource === 'adObjects') { if (operation === 'get') { const directoryId = this.getNodeParameter('directoryId', i); const adObjectId = this.getNodeParameter('adObjectId', i); qs.directoryId = directoryId; qs.id = adObjectId; } if (operation === 'search') { const profileId = this.getNodeParameter('profileId', i); const checkerId = this.getNodeParameter('checkerId', i); const additionalFields = this.getNodeParameter('additionalFields', i); if (additionalFields.perPage) { qs.perPage = additionalFields.perPage; } if (additionalFields.page) { qs.page = additionalFields.page; } const expression = this.getNodeParameter('expression', i); const directories = this.getNodeParameter('directories', i); const reasons = this.getNodeParameter('reasons', i); const showIgnored = this.getNodeParameter('showIgnored', i); body.expression = expression; body.directories = directories.split(','); body.reasons = reasons.split(','); body.showIgnored = showIgnored; qs.profileId = profileId; qs.checkerId = checkerId; } } if (resource === 'alerts') { if (operation === 'get') { const alertId = this.getNodeParameter('alertId', i); qs.id = alertId; } if (operation === 'update') { const alertId = this.getNodeParameter('alertId', i); const additionalFields = this.getNodeParameter('additionalFields', i); if (additionalFields.archived) { body.archived = additionalFields.archived; } if (additionalFields.read) { body.read = additionalFields.read; } qs.id = alertId; } } responseData = await GenericFunctions_1.identityExposureApiRequest.call(this, resource, operation, body, qs); const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } }); returnData.push(...executionData); } return [this.helpers.returnJsonArray(returnData)]; } } exports.IdentityExposure = IdentityExposure;