Files
UFW-AbuseIPDB-Reporter/scripts/validations/index.js
T

34 lines
970 B
JavaScript

const { repoName } = require('../repo.js');
const validateConfig = require('./validateConfig.js');
const { rules: common, services } = require('./common.js');
const PROJECT_RULES = {
suricata: require('./suricata.js'),
ufw: require('./ufw.js'),
't-pot': require('./tpot.js'),
cloudflare: require('./cloudflare.js'),
};
const resolveByRepoName = (map, name) => {
const lower = name.toLowerCase();
for (const [key, value] of Object.entries(map)) {
if (lower.includes(key)) return value;
}
return null;
};
module.exports = config => {
const rules = [...common];
const serviceConf = resolveByRepoName(services, repoName);
if (serviceConf) {
rules.push({ key: serviceConf.apiKey, type: String, nonEmpty: true });
rules.push({ key: 'IP_REPORT_COOLDOWN', type: Number, min: serviceConf.minCooldown });
}
const projectRules = resolveByRepoName(PROJECT_RULES, repoName);
if (projectRules) rules.push(...projectRules);
validateConfig(config, rules);
};