Notifier: Email
Status: spec klaar; implementatie in milestone C.
Email als handoff-kanaal voor integer-modus. SMTP-out + lokaal Flask-mini-portaal voor magic-link-respons. Geen IMAP, geen reply-parsing — die zijn fragiel en geven ondoorzichtige audit-trails.
Hoe het werkt
- IntegerMode escaleert een hoog-risico Decision.
- EmailNotifier verstuurt een SMTP-mail naar de auditor met vier
magic-link-knoppen:
Goedkeuren,Afwijzen,Aanpassen,Afbreken. - Auditor klikt op een knop in zijn mail-client; browser opent
http://localhost:8765/decision/<id>/<action>. - Het lokale Flask-portaal valideert het token (single-use, TTL 24u),
roept
DecisionResolver.resolve()aan, en toont een bevestigingspagina. - Pipeline-thread hervat met het besluit.
Configuratie
| Env-var | Verplicht | Beschrijving |
|---|---|---|
ISO_AUDIT_SMTP_HOST |
ja | SMTP-host voor outbound mail |
ISO_AUDIT_SMTP_PORT |
ja | SMTP-poort (587 voor STARTTLS, 465 voor SMTPS) |
ISO_AUDIT_SMTP_USER |
ja | SMTP-account |
ISO_AUDIT_SMTP_PASS |
ja | SMTP-wachtwoord (gebruik secrets-manager) |
ISO_AUDIT_SMTP_FROM |
ja | Afzender-adres |
ISO_AUDIT_AUDITOR_EMAIL |
ja | Ontvanger (de auditor die handoffs krijgt) |
ISO_AUDIT_PORTAL_PORT |
nee | Default 8765 |
ISO_AUDIT_PORTAL_TOKEN_TTL_HOURS |
nee | Default 24 |
Acceptable-risk: HTTP zonder TLS
Het Flask-portaal draait standaard HTTP zonder TLS. Reden: het draait lokaal op de pipeline-host, magic-link-tokens zijn single-use én tijd-gelimiteerd. Bij multi-host-deployment SHALL TLS via reverse-proxy verplicht worden — dat is dan eigen change-proposal.
Documenteer dit risico in elke deployment-omgeving expliciet. Een audit-tool dat zelf op losse HTTP draait zonder dat ergens te benoemen ondermijnt geloofwaardigheid bij externe certificeerder.
Audit-trail
Outbound mail-headers (Message-ID, To, Subject, timestamp) én
HTTP-request-log van het portaal worden gelogd. Single-use-tokens worden
na consumptie gemarkeerd in een email_tokens-tabel; expired-tokens
laten een log-entry zien.
decisions.notifier_naam = "email" voor cross-channel-analyse.
Aanroep
iso-audit pipeline --source drive --mode integer --notifier email