UNPKG

n8n-nodes-tenable-community

Version:

n8n node for the Tenable One platform

64 lines (63 loc) 2.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VulnerabilityManagementTrigger = void 0; const GenericFunctions_1 = require("./GenericFunctions"); class VulnerabilityManagementTrigger { constructor() { this.description = { displayName: 'Tenable VM Trigger', name: 'tenableVulnerabilityManagementTrigger', icon: 'file:tenable.svg', group: ['trigger'], version: 1, description: 'Triggers when a new vulnerability is found', defaults: { name: 'Tenable VM Trigger', }, inputs: [], outputs: ["main" /* NodeConnectionType.Main */], credentials: [ { name: 'tenableApi', required: true, }, ], properties: [ { displayName: 'Severity', name: 'severity', type: 'options', options: [ { name: 'Critical', value: 'critical' }, { name: 'High', value: 'high' }, { name: 'Info', value: 'info' }, { name: 'Low', value: 'low' }, { name: 'Medium', value: 'medium' }, ], default: 'high', description: 'The minimum severity of the vulnerability to trigger on', }, ], }; } async trigger() { const severity = this.getNodeParameter('severity', 'high'); const lastRunAt = this.getWorkflowStaticData('node').lastRunAt; const filters = { state: ['OPEN', 'REOPENED'], severity: [severity.toUpperCase()], }; if (lastRunAt) { filters.since = Math.floor(new Date(lastRunAt).getTime() / 1000); } const response = await GenericFunctions_1.vulnerabiltyManagementApiRequest.call(this, 'vulnerability', 'export', { filters }); this.getWorkflowStaticData('node').lastRunAt = new Date().toISOString(); if (response && Array.isArray(response.vulnerabilities) && response.vulnerabilities.length > 0) { this.emit([this.helpers.returnJsonArray(response.vulnerabilities)]); } return { closeFunction: async () => { }, }; } } exports.VulnerabilityManagementTrigger = VulnerabilityManagementTrigger;