- POST /api/alerts : token Bearer (comparaison temps constant, 503 si non configuré), schéma d'alerte PRD §4.4 validé Zod, exempté du SSO dans les hooks - Persistance alertes.yaml + commits git (réception, « traité ») - Inbox /alertes : filtres par profil impacté et statut, actions « Marquer traité » et « Créer/MAJ fiche » avec pré-remplissage du formulaire registre depuis l'alerte (aucun champ licence/capacité inventé) - nodered-flows/ : 4 flows importables (rss-ingest, license-watch, classifier avec le prompt figé du PRD §6 embarqué tel quel, notify) — nœuds core uniquement, configuration par variables d'env, README de câblage - Vérifié : check/lint/test (27) /build verts, autofixer propre, JSON des flows et fonctions embarquées validés, test fumée HTTP (201/400/401 sur l'endpoint, inbox, traité + commit, pré-remplissage MAJ fiche)
Flows Node-RED — veille-ia
Flows importables individuellement (Node-RED → menu → Import), conformes au PRD §5. N'utilisent que des nœuds core (aucune dépendance externe à installer).
| Fichier | Rôle | Entrée | Sortie |
|---|---|---|---|
rss-ingest.json |
Poll flux RSS (HF blog, releases GitHub ComfyUI), normalisation + dédup | inject horaire | POST /veille-ia/classifier |
license-watch.json |
Webhooks changedetection (pages ToS/licences) | POST /veille-ia/license-watch |
POST /veille-ia/classifier (type changement_licence, urgence haute) |
classifier.json |
Classifieur LLM, prompt système figé du PRD §6 embarqué tel quel | POST /veille-ia/classifier |
Ollama /api/chat → POST /api/alerts → notify si urgence haute |
notify.json |
Notification des urgences hautes via ntfy | POST /veille-ia/notify |
POST $NTFY_URL |
Variables d'environnement Node-RED
| Variable | Défaut | Rôle |
|---|---|---|
OLLAMA_URL |
http://127.0.0.1:11434 |
Endpoint Ollama |
CLASSIFIER_MODEL |
qwen3:32b |
Modèle classifieur |
VEILLE_IA_URL |
http://127.0.0.1:3000 |
URL de l'app (avec sous-chemin si applicable, ex. https://domaine.tld/veille) |
ALERTS_TOKEN |
(aucun — obligatoire) | Token Bearer de POST /api/alerts (visible dans /var/www/veille-ia/app/.env) |
CLASSIFIER_URL |
http://127.0.0.1:1880/veille-ia/classifier |
Chaînage interne des flows |
NTFY_URL |
(aucun) | Topic ntfy (ex. https://ntfy.sh/mon-topic) ; si absent, notification ignorée |
Câblage changedetection_ynh
Dans changedetection, pour chaque URL de ToS/licence surveillée (BFL, MiniMax Community License, cards HF, Midjourney, Runway, Suno, politiques Steam/itch.io) :
Notification URL : post://127.0.0.1:1880/veille-ia/license-watch
Notes
- L'email SMTP YunoHost n'est pas inclus (le nœud e-mail est une dépendance externe) :
ajouter
node-red-node-emailavecsmtp localhost:25si souhaité. - La chaîne RSS → classifier → alerts est idempotente côté registre : les alertes arrivent en inbox, l'action « Créer/MAJ fiche » reste humaine (anti-hallucination).