cleaned up rules code

This commit is contained in:
Viet Huynh
2023-09-12 17:04:28 +07:00
parent 40772b567d
commit 9c4ce9c759
2 changed files with 21 additions and 25 deletions
+9 -17
View File
@@ -1,21 +1,13 @@
import { createZeroTrustRule, getZeroTrustLists } from './lib/api.js';
import { createZeroTrustRule, getZeroTrustLists } from "./lib/api.js";
;(async() => {
const { result: lists } = await getZeroTrustLists();
const filtered_lists = lists.filter(list => list.name.startsWith('CGPS List'));
const { result: lists } = await getZeroTrustLists();
const wirefilterExpression = lists.reduce((previous, current, index) => {
if (!current.name.startsWith("CGPS List")) return previous;
let wirefilter_expression = '';
// Remove the trailing ' or '
if (index === lists.length - 1) return previous.slice(0, -4);
// Build the wirefilter expression
for (const list of filtered_lists) {
wirefilter_expression += `any(dns.domains[*] in \$${list.id}) or `;
}
// Remove the trailing ' or '
if (wirefilter_expression.endsWith(' or ')) {
wirefilter_expression = wirefilter_expression.slice(0, -4);
}
wirefilter_expression = wirefilter_expression.trim().replace('\n', '');
if (!process.env.CI) console.log(`Firewall expression contains ${wirefilter_expression.length} characters, and checks against ${filtered_lists.length} filter lists.`)
return `${previous} any(dns.domains[*] in \$${current.id}) or `;
}, "");
await createZeroTrustRule(wirefilter_expression);
})();
await createZeroTrustRule(wirefilterExpression);