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
| Attribut | Valeur |
|---|---|
| Source | 20-docker-admin-manager/server.py |
| Nature | Micro-service de régulation et monitoring (Flask API) |
| Conteneur | echo-admin-manager (Python 3.11) |
| Docker Daemon | Accès via socket Unix /var/run/docker.sock monté en volume |
| Stockage | Accès direct au volume /app/backend/data/users/ pour les backups |
| Mémoire | Requê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 :
-
Sessions actives : compteur basé sur les fichiers
.dbprésents dans les répertoires/chats/de l'Espace Personnel de chaque utilisateur. - Identité SSO & Sessions : supervision des sessions d'authentification centralisées (ECHO Auth) en temps réel.
- Volume Vault : taille totale occupée par les documents, bases SQLite et fichiers d'identité - exprimée en Mo/Go.
- Santé Docker & WAF : état de chaque conteneur de la stack ECHO, avec redémarrage forcé depuis l'interface. En cas d'activation de BunkerWeb, affichage interactif des bannissements actifs.
-
Métriques système : CPU, RAM et I/O disque via
psutil.
2. Cycle de Vie et Oubli Organique (TTL)
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 :
| Niveau | Label | Durée TTL |
|---|---|---|
| 1 | Trivial | 30 jours |
| 2 | Mineur | 60 jours |
| 3 | Utile | 180 jours |
| 4 | Majeur | 365 jours |
| 5 | Axiome | 540 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 :
- Révocation Dynamique des Sessions : La désactivation d'un compte, la réinitialisation de son MFA ou sa suppression entraînent instantanément la destruction de ses jetons de session actifs en mémoire (IdP), forçant une reconnexion.
- Tunnel SSH Antigravity (PKCE) : Le système intègre un serveur SSH éphémère qui expose dynamiquement les ports 8020 à 8024 pour le flux d'autorisation OAuth2 PKCE (RFC 7636).
-
BunkerWeb Forward Auth : ECHO Auth est couplé au WAF BunkerWeb via l'endpoint
/api/verify, protégeant l'ensemble de la pile derrière une authentification forte (TOTP) sans exposer directement les services. -
Purge de Base de Données Exhaustive : Lorsqu'un utilisateur est supprimé du système, l'Admin Manager n'efface pas uniquement la table
userouchat. Par une introspection dynamique (sqlite_master et PRAGMA table_info), il scrute toutes les tables du moteur Open WebUI possédant une colonneuser_idet supprime les enregistrements orphelins (fichiers, outils personnalisés, modèles, mémoires). Cette purge chirurgicale garantit zéro fuite de données (Data Leak) en base.
4. Sauvegardes et Restauration à Chaud
Le module de backup garantit une reprise d'activité après sinistre :
-
Procédure : arrêt temporaire du conteneur Open WebUI Core, compression
atomique (
tar.gz) du répertoire/app/backend/data/, redémarrage immédiat. L'interruption de service est de l'ordre de quelques secondes. -
Rotation : nettoyage automatique des anciennes archives selon un nombre
limite ou un âge maximum (configurable). Les archives sont stockées dans
/opt/ECHO/backups/.
4. Surface de Sécurité
-
Reset Auth : purge instantanée de tous les tokens Google enregistrés
dans les fichiers
identity.dbde l'Espace Personnel. -
Rotation de mot de passe : modification du mot de passe de l'hôte
système via un pont SSH sécurisé utilisant
paramiko. -
Secret Maître : l'endpoint
/api/admin/passwordpermet la récupération sécurisée du mot de passe administrateur Open WebUI généré lors du bootstrap (stocké dans/opt/ECHO/.secrets).
⚙️ 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é.