runbook: veille Nexum — VK Bifrost morte + fuseau n8n (14/07)

This commit is contained in:
bolbol 2026-07-14 19:07:25 +00:00
parent 3774e02a33
commit 805dbf8b3e
1 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,28 @@
# 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).