Migration m22: coda notifiche_email_coda, preferenze_utente, trigger che accoda ogni notifica di notifiche_utente e tre funzioni RPC riservate alla service role. Worker in mailer/ (bun + nodemailer, solo polling in uscita) con backoff, tetto giornaliero e healthcheck. Interruttore «Email» in Profilo → Opzioni, acceso di default. Test unit e di integrazione; documentazione aggiornata (DD-036 accettata). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
12 lines
473 B
JavaScript
12 lines
473 B
JavaScript
// Healthcheck del container: sano se l'ultimo ciclo riuscito è recente (vedi mailer.mjs).
|
|
import { readFile } from "node:fs/promises";
|
|
import { staSano } from "./mailer-core.ts";
|
|
|
|
const FILE_SALUTE = process.env.MAILER_FILE_SALUTE ?? "/tmp/mailer-ok";
|
|
const MAX_MS = 5 * 60_000;
|
|
|
|
const ultimo = await readFile(FILE_SALUTE, "utf8")
|
|
.then((t) => Number(t))
|
|
.catch(() => null);
|
|
process.exit(staSano(Number.isFinite(ultimo) ? ultimo : null, Date.now(), MAX_MS) ? 0 : 1);
|