manche 4: SMTP migration OVH->ik.me + INCIDENT state.db (lecon: jamais replace texte sur .db)
This commit is contained in:
parent
44ffd8b5a2
commit
f7fcb54b67
|
|
@ -99,4 +99,9 @@ Le préfixe réutilisé couvrait **~11 familles** (pas 5) + fuite dans **context
|
||||||
- **Bifrost VKs** (Nabil-Key + Yesmine-Key) : rotation dans `config.db` (`UPDATE governance_virtual_keys SET value=…` + `allow_all_keys=1`) + **restart bifrost**. **Piège port** : l'API bifrost est en **3085** (8080 interne), **3086 = proxy openresty** (renvoie 401 trompeur) → tester sur 3085. **Piège scan** : la VK vit aussi dans `redaction-pro/nginx.conf` (`.conf` raté par un scan `.env/.json/.yml`) et dans **9 workflows n8n en base** (`UPDATE workflow_entity SET nodes=replace(nodes::text,old,new)::jsonb` sur postgres n8n-DB `n8nuser`/`n8n`, puis restart n8n pour recharger le cache). Vérif : nouvelle VK → 200, ancienne → 401 `virtual_key_not_found`. Yesmine-Key = aucun consommateur infra (clé perso).
|
- **Bifrost VKs** (Nabil-Key + Yesmine-Key) : rotation dans `config.db` (`UPDATE governance_virtual_keys SET value=…` + `allow_all_keys=1`) + **restart bifrost**. **Piège port** : l'API bifrost est en **3085** (8080 interne), **3086 = proxy openresty** (renvoie 401 trompeur) → tester sur 3085. **Piège scan** : la VK vit aussi dans `redaction-pro/nginx.conf` (`.conf` raté par un scan `.env/.json/.yml`) et dans **9 workflows n8n en base** (`UPDATE workflow_entity SET nodes=replace(nodes::text,old,new)::jsonb` sur postgres n8n-DB `n8nuser`/`n8n`, puis restart n8n pour recharger le cache). Vérif : nouvelle VK → 200, ancienne → 401 `virtual_key_not_found`. Yesmine-Key = aucun consommateur infra (clé perso).
|
||||||
- **Scrub** : 673 secrets masqués dans 105 fichiers de log (sessions/cron/claude_contexte/data-logs/anciens .env) via `sudo python3`.
|
- **Scrub** : 673 secrets masqués dans 105 fichiers de log (sessions/cron/claude_contexte/data-logs/anciens .env) via `sudo python3`.
|
||||||
|
|
||||||
|
- **SMTP** : migration OVH `postmaster@bolbol.tn` → **Infomaniak `nabil.derouiche@ik.me`** (mail.infomaniak.com, 465 SSL / 587 STARTTLS) pour baserow + portainer/311. ⚠️ Infomaniak SMTP externe **exige un mot de passe d'application** (le mdp compte/webmail est rejeté `535`). Baserow : `EMAIL_SMTP_USE_SSL` et `USE_TLS` **mutuellement exclusifs** (Django ImproperlyConfigured → crashloop) → n'en garder qu'un.
|
||||||
|
|
||||||
|
### 🚨 INCIDENT — leçon critique : jamais de remplacement texte sur des `.db`/binaires
|
||||||
|
Un `open(f).read().replace(old,new)` en masse sur `hermes-platform` a corrompu les **3 `state.db` SQLite** des agents (décalage d'octets) → **perte de l'historique conversation** (tables sessions/messages), aucun backup. Savoir des agents intact (fichiers). Récup : stop agent → `mv state.db*` → start (recrée vierge) → **supprimer le lock `gateway-locks/telegram-bot-token-*.lock`** sinon le bot Telegram ne poll plus. **RÈGLE : tout script de scrub/remplacement DOIT exclure `*.db*`/binaires et se scoper aux extensions texte.**
|
||||||
|
|
||||||
**Nouvelles valeurs** : PAS dans ce runbook — remises à Nabil (Bitwarden). **Reste** : SMTP OVH (externe), SSH_PASS_NYORA, re-scoper token `nyora-notes-claude-code`, nettoyer docs/skills restants, run non-root.
|
**Nouvelles valeurs** : PAS dans ce runbook — remises à Nabil (Bitwarden). **Reste** : SMTP OVH (externe), SSH_PASS_NYORA, re-scoper token `nyora-notes-claude-code`, nettoyer docs/skills restants, run non-root.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue