Files
veille-ia-gen/nodered-flows/README.md
T
cyber-mawonaj 6978fbb5b8 feat(app) : phase 2 — endpoint /api/alerts, inbox, flows Node-RED
- 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)
2026-08-01 10:40:18 -04:00

39 lines
2.1 KiB
Markdown

# 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-email` avec `smtp localhost:25` si 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).