diff --git a/src/inputs/input.js b/src/inputs/input.js index a073815..f81e976 100644 --- a/src/inputs/input.js +++ b/src/inputs/input.js @@ -39,6 +39,7 @@ export default class Input { this.prefixes = []; this.asns = []; this.cache = {}; + this.config = config; }; _isAlreadyContained = (prefix, lessSpecifics) => { diff --git a/src/inputs/inputYml.js b/src/inputs/inputYml.js index f1827bc..ba5c6c2 100644 --- a/src/inputs/inputYml.js +++ b/src/inputs/inputYml.js @@ -145,6 +145,10 @@ export default class InputYml extends Input { return "Not a valid prefix: " + prefix; } + + if (this.config.environment === "research") { + item.asn = item.asn || 0; + } if (["string", "number"].includes(typeof(item.asn))) { asns = [item.asn]; } else if (item.asn instanceof Array) { @@ -153,6 +157,7 @@ export default class InputYml extends Input { return "Not a valid AS number for: " + prefix; } + if (!new AS(asns).isValid()) { return "Not a valid AS number for: " + prefix; } diff --git a/src/model.js b/src/model.js index 1f97458..1ba1fae 100644 --- a/src/model.js +++ b/src/model.js @@ -72,7 +72,7 @@ export class AS { return false; } - return asn > 0 && asn <= 4294967295; + return asn >= 0 && asn <= 4294967295; }) && [...new Set(this.numbers.map(i => parseInt(i)))].length === this.numbers.length; } diff --git a/src/reports/reportAlerta.js b/src/reports/reportAlerta.js index ae90346..b2bbf06 100644 --- a/src/reports/reportAlerta.js +++ b/src/reports/reportAlerta.js @@ -65,12 +65,12 @@ export default class ReportAlerta extends Report { } - _createAlertaAlert = (url, message, content) => { + _createAlertaAlert = (url, channel, content) => { - const severity = (this.params && this.params.severity && this.params.severity[message]) - ? this.params.severity[message] + const severity = (this.params && this.params.severity && this.params.severity[channel]) + ? this.params.severity[channel] : "informational"; // informational level - const context = this.getContext(message, content); + const context = this.getContext(channel, content); axios({ url: url + "/alert", @@ -78,8 +78,8 @@ export default class ReportAlerta extends Report { headers: this.headers, resposnseType: "json", data: { - event: message, - resource: this.parseTemplate(this.params.resourceTemplates[message] || this.params.resourceTemplates["default"], context), + event: channel, + resource: this.parseTemplate(this.params.resourceTemplates[channel] || this.params.resourceTemplates["default"], context), text: content.message, service: ["BGPalerter"], attributes: context,