Repository Public
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// KA ID v2 — tick d'évaluation des alertes (pm2 cron horaire sur le nœud) :3// GET /api/kaid/alerts/tick?key=<KAID_TICK_KEY>4// Relance chaque recherche sauvegardée avec alerte active sur l'API publique5// de sa plateforme, compare au dernier total connu et notifie par courriel6// (voir src/lib/alerts.ts). Clé requise — jamais exposée au navigateur.7import { NextRequest, NextResponse } from "next/server";8import crypto from "crypto";9import { runAlerts } from "@/lib/alerts";1011export const dynamic = "force-dynamic";12export const maxDuration = 300;1314export async function GET(req: NextRequest) {15 const key = req.nextUrl.searchParams.get("key") ?? "";16 const expected = process.env.KAID_TICK_KEY ?? "";17 const a = Buffer.from(key);18 const b = Buffer.from(expected);19 if (!expected || a.length !== b.length || !crypto.timingSafeEqual(a, b))20 return NextResponse.json({ error: "clé invalide" }, { status: 401 });21 const summary = await runAlerts();22 return NextResponse.json({ ok: true, ...summary });23}24