n8n-nodes-tenable-community
Version:
n8n node for the Tenable One platform
64 lines (63 loc) • 2.53 kB
JavaScript
;
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;