feat(url-filter): add blocklist.txt endpoint for DNS-filter sync

AdGuard Home auf rebreak-mdm pullt diese Liste alle 1h für DoH-DNS-NXDOMAIN.
Single source of truth mit dem URL-Filter (NEFilter) — gleicher
getActiveBlocklistDomains() backend-call.

Public (no auth) — Casino-Domains sind keine PII, andere DNS-Blocklisten
(HaGeZi, OISD) sind genauso public.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
chahinebrini 2026-05-10 16:17:24 +02:00
parent c1a66e3d07
commit 86445d8607

View File

@ -0,0 +1,19 @@
import { getActiveBlocklistDomains } from "../../db/domains";
/**
* GET /api/url-filter/blocklist.txt
*
* Plain-text Blocklist für externe DNS-Filter (AdGuard Home, Pi-hole, etc.).
* Eine Domain pro Zeile. Wird vom rebreak-mdm DoH-Server alle 1h gepullt.
*
* Public Casino-Domains sind keine PII. Andere Filter-Listen (HaGeZi, OISD)
* sind genauso public. Single source of truth mit dem URL-Filter im NEFilter.
*/
export default defineEventHandler(async (event) => {
const domains = await getActiveBlocklistDomains();
const body = domains.map((d) => d.domain).join("\n") + "\n";
setHeader(event, "Content-Type", "text/plain; charset=utf-8");
setHeader(event, "Cache-Control", "public, max-age=300");
return body;
});