nas-runbooks/common/veille-nexum-vk-morte-fusea...

29 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Veille Dr. Nexum — VK Bifrost morte + fuseau n8n (14/07/2026)
## Symptôme
Veille « 3x/jour » (workflow n8n `Eh2nomLhSuL3iUMp`) : tous les résumés = « Résumé indisponible » sur Telegram **et** mail ; mail Pro TT non reçu ; en parallèle des mails « par tranche » (liens titre+date sans analyse).
## Root causes
1. **VK Bifrost morte.** Purge du 07/07 → rotation de la VK « Nabil-Key ». Le nœud Code `🌐 Traduire + Telegram + Build Email` avait `bfk-e5832bfe…` codée en dur → Bifrost `401 virtual_key_not_found` → chaque résumé = fallback « Résumé indisponible ».
2. **Fuseau n8n.** `GENERIC_TIMEZONE` VIDE → cron interprétés en `America/New_York`. Le cron `6/11/19` tournait à **11h/16h/00h Tunis**, jamais 7/12/20.
3. **Système parallèle.** `veille_ia_matin.py` (hermes-nyora) lancé par tâche **DSM Task Scheduler (root)** à 07h → digest brut « par tranche » + Telegram 07h. Redondant depuis fusion des sources dans n8n.
## Bonne VK
Dans `/volume1/docker/bifrost/data/config.db` (sqlite, table `governance_virtual_keys`) : 2 VK actives = Nabil-Key + Yesmine-Key. Testée sur `http://bifrost:8080/v1/chat/completions` (header `x-bf-vk`) → 200. Le restart Bifrost NE recrée PAS une VK absente (≠ bug cache).
## n8n 2.23 — piège de versionnage (CENTRAL)
Le runtime exécute la version **ACTIVE** stockée dans `workflow_history` (pointée par `workflow_entity."activeVersionId"`), pas le brouillon `workflow_entity`. `workflow_published_version` vide pour ce wf. Éditer `workflow_entity` seul ne change rien à ce qui tourne ; `publish_workflow` (MCP) renvoyait le même `activeVersionId` sans propager l'édition directe DB. → corriger AUSSI la ligne `workflow_history` de l'`activeVersionId`.
## Correctif (byte-exact, Postgres n8n)
Colonnes `nodes`/`settings`/`connections` = **json** (pas jsonb). Caster `::json` ; settings via `(settings::jsonb || '{"timezone":"Africa/Tunis"}'::jsonb)::json`. Remplacements : VK morte→active, `30 sources`→`44 sources`, cron `6/11/19`→`7/12/20`, ajout `settings.timezone=Africa/Tunis`. Appliquer sur `workflow_entity` ET sur `workflow_history WHERE "versionId"=<activeVersionId>`. Puis `docker restart n8n`. Le ScheduleTrigger prend le fuseau du workflow (`settings.timezone`) → corrige CE wf sans toucher au global ni aux autres.
## Validation (exécution production 32346)
Bifrost : que des HTTP 200 (717 s/item, reasoning). Données : 0 « Résumé indisponible », 0 « virtual key not found », footer « 44 sources ». SMTP ik.me : 2 nœuds → `250 Ok: queued` (Gmail + tunisietelecom.tn), ~37 Ko.
## Reste (accès root/DSM de Nabil)
- Désactiver la tâche DSM 07h qui lance `veille_ia_matin.py` (source des mails « par tranche » + Telegram 07h). Le pipeline n8n couvre désormais 07h → pas de perte.
- Mail Pro : ik.me accepte (250) ; si non-reçu = côté TT (spam/filtrage expéditeur `@ik.me`) → whitelister / vérifier spam.
## Sécurité
Clés provider Bifrost exposées en clair pendant le diag (`config.json`) → roter : openrouter, opencode, google (×2). Nouvelle VK aussi passée en clair dans la session → rotation ultérieure recommandée (elle est fonctionnelle, donc session dédiée).