UNPKG

n8n-nodes-tenable-community

Version:

n8n node for the Tenable One platform

151 lines (150 loc) 6.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TenableOne = void 0; const GenericFunctions_1 = require("./GenericFunctions"); const TenableOne_node_options_1 = require("./TenableOne.node.options"); class TenableOne { constructor() { this.description = { displayName: 'Tenable One', name: 'tenableOne', icon: 'file:tenable.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Interacts with the Tenable One API', defaults: { name: 'Tenable One', }, inputs: ["main" /* NodeConnectionType.Main */], outputs: ["main" /* NodeConnectionType.Main */], credentials: [ { name: 'tenableApi', required: true, }, ], properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Exposure View', value: 'exposureView', }, { name: 'Inventory', value: 'inventory', }, ], default: 'exposureView', }, ...TenableOne_node_options_1.tenableOneOperations, ...TenableOne_node_options_1.tenableOneFields, ], }; } 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 === 'exposureView') { if (operation === 'searchCards') { const additionalFields = this.getNodeParameter('additionalFields', i); if (additionalFields.is_global_card) { qs.is_global_card = additionalFields.is_global_card; } if (additionalFields.text_query) { qs.text_query = additionalFields.text_query; } if (additionalFields.sorting_order) { qs.sorting_order = additionalFields.sorting_order; } if (additionalFields.limit) { qs.limit = additionalFields.limit; } if (additionalFields.offset) { qs.offset = additionalFields.offset; } } if (operation === 'getCardDetails') { const cardId = this.getNodeParameter('cardId', i); const additionalFields = this.getNodeParameter('additionalFields', i); qs.card_id = cardId; if (additionalFields.trend_start_date) { qs.trend_start_date = additionalFields.trend_start_date; } if (additionalFields.trend_end_date) { qs.trend_end_date = additionalFields.trend_end_date; } if (additionalFields.sla_efficiency_start_date) { qs.sla_efficiency_start_date = additionalFields.sla_efficiency_start_date; } if (additionalFields.sla_efficiency_end_date) { qs.sla_efficiency_end_date = additionalFields.sla_efficiency_end_date; } if (additionalFields.sla_breakdown_filter) { qs.sla_breakdown_filter = additionalFields.sla_breakdown_filter; } if (additionalFields.include_trend_events) { qs.include_trend_events = additionalFields.include_trend_events; } } } if (resource === 'inventory') { if (operation === 'searchAssets') { const query = this.getNodeParameter('query', i); const filters = this.getNodeParameter('filters', i); body.query = query; body.filters = filters; const additionalFields = this.getNodeParameter('additionalFields', i); if (additionalFields.extra_properties) { qs.extra_properties = additionalFields.extra_properties; } if (additionalFields.offset) { qs.offset = additionalFields.offset; } if (additionalFields.limit) { qs.limit = additionalFields.limit; } if (additionalFields.sort) { qs.sort = additionalFields.sort; } } if (operation === 'searchSoftware') { const query = this.getNodeParameter('query', i); const filters = this.getNodeParameter('filters', i); body.query = query; body.filters = filters; const additionalFields = this.getNodeParameter('additionalFields', i); if (additionalFields.extra_properties) { qs.extra_properties = additionalFields.extra_properties; } if (additionalFields.offset) { qs.offset = additionalFields.offset; } if (additionalFields.limit) { qs.limit = additionalFields.limit; } if (additionalFields.sort) { qs.sort = additionalFields.sort; } } } responseData = await GenericFunctions_1.tenableOneApiRequest.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.TenableOne = TenableOne;