10a. Admin Manager (Console de Régulation)

L'Admin Manager est le système de gouvernance infrastructure d'ECHO. Il surveille la santé du cluster Docker via un Dashboard interactif (Gridstack), orchestre la purge temporelle de la mémoire vectorielle (Qdrant), gère les sauvegardes et la consolidation des bases de données.

💡 L'analogie du système immunitaire

Si ECHO est un organisme vivant, l'Admin Manager est son système immunitaire et métabolique. Il surveille que tout fonctionne correctement, nettoie les vieux souvenirs devenus inutiles (Élagage TTL), crée des copies de sécurité régulières, et contrôle les accès aux systèmes critiques. Il opère en arrière-plan sans interrompre la génération.

Fiche d'identité technique

AttributValeur
Source20-docker-admin-manager/server.py
NatureMicro-service de régulation et monitoring (Flask API)
Conteneurecho-admin-manager (Python 3.11)
Docker DaemonAccès via socket Unix /var/run/docker.sock monté en volume
StockageAccès direct au volume /app/backend/data/users/ pour les backups
MémoireRequête l'API Qdrant (:6333) pour la maintenance des vecteurs

1. Monitoring Holistique (Dashboard Gridstack)

📸 Découverte Visuelle

Pour explorer des captures d'écran de ces différentes interfaces en conditions réelles, consultez la section Console d'Infrastructure du Manuel Utilisateur.

L'interface de l'Admin Manager repose sur un Dashboard interactif propulsé par Gridstack.js. Il permet de réorganiser les widgets en drag & drop et affiche en temps réel les constantes vitales de l'infrastructure :

2. Cycle de Vie et Oubli Organique (TTL)

Cycle de Vie des Données (Admin Manager) [RÉGULATION & PURGE]
flowchart TD AM[Admin Manager
Cron Jobs] --> TTL[Purge TTL
echo_meta_artifacts] AM --> ORPH[Sync Qdrant
Points orphelins] AM --> EPH[Purge Post-Session
echo_session_rag] AM --> VAC[Vacuum & Consolidation
SQLite] AM --> BAK[Sauvegardes à chaud
/backups] classDef job fill:#1e1b4b,stroke:#4338ca,color:#fff class AM job

L'Admin Manager centralise la logique d'Atrophie Sémantique - la purge des données devenues obsolètes - pour alléger le traitement en temps réel des filtres.

run_semantic_pruning() - Purge TTL

Cette fonction (server.py) itère sur tous les points de la collection echo_meta_artifacts dans Qdrant et supprime ceux dont l'âge dépasse la durée de rétention associée à leur niveau d'importance :

NiveauLabelDurée TTL
1Trivial30 jours
2Mineur60 jours
3Utile180 jours
4Majeur365 jours
5Axiome540 jours

🛡️ Garde-fous API & Base de données

Avant d'initier la purge, le système s'authentifie formellement auprès de l'API (obtention d'un jeton JWT) et vérifie la lisibilité et la non-vacuité de la base de données SQLite d'Open WebUI. Si la base est corrompue, inaccessible ou vide, la purge est purement et simplement annulée pour empêcher toute destruction accidentelle de la mémoire vectorielle.

Sync Qdrant

Élimination des points vectoriels orphelins : points liés à des user_id ou chat_id qui ont été supprimés dans Open WebUI mais dont les vecteurs subsistent dans Qdrant.

Purge Post-Session (echo_session_rag)

Suppression de tous les vecteurs appartenant à un chat_id terminé dans la collection echo_session_rag. Cette purge garantit que les données intermédiaires (analyses web, distillations) ne s'accumulent pas indéfiniment.

Vacuum & Consolidation SQLite

Optimisation physique régulière des bases de données de session (commande SQL VACUUM) pour récupérer l'espace disque des enregistrements supprimés et maintenir les performances d'accès. L'Admin Manager exécute également une consolidation des fragments de bases en mode WAL.

3. Sécurité SSO et Purge Dynamique

L'Admin Manager possède une intégration forte avec ECHO Auth (IdP local). Les actions d'administration déclenchent des répercussions immédiates sur l'ensemble du système :

4. Sauvegardes et Restauration à Chaud

Le module de backup garantit une reprise d'activité après sinistre :

4. Surface de Sécurité

⚙️ Isolation Privilégiée

Bien que l'Admin Manager ait accès au Docker Daemon (via socket Unix), il n'est jamais exposé directement sur le WAN par défaut. Son accès est filtré par BunkerWeb (WAF) et nécessite une authentification forte. En déploiement local pur, il n'est accessible que depuis le réseau bridge Docker interne ou le proxy inverse sécurisé.

← Périphériques & Infra    ECHO Auth SSO & MFA →