feat(system): Ajouter gestionnaires backup et version pour Dashboard
BackupExporter (backup_exporter.py): - Export complet (workflows, correction packs, coaching sessions, configs) - Export sélectif (workflows only, configs only, etc.) - Export modèles entraînés opt-in (embeddings, FAISS anonymisés) - Sanitisation des configs (masquage des secrets) - Statistiques de backup disponibles VersionManager (version_manager.py): - Suivi de version avec composants - Vérification des mises à jour (manifest local) - Vérification intégrité packages (SHA-256) - Création/restauration de backups pour rollback - Information système complète Ces modules supportent les fonctionnalités Dashboard: - Téléchargement sauvegardes par le client - Mise à jour du système - Rollback en cas de problème Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
40
core/system/models.py
Normal file
40
core/system/models.py
Normal file
@@ -0,0 +1,40 @@
|
||||
"""
|
||||
Modèles partagés pour le système d'auto-healing - Fiche #22
|
||||
|
||||
Modèles de données partagés entre CircuitBreaker et AutoHealManager
|
||||
pour éviter les imports circulaires.
|
||||
|
||||
Auteur: Dom, Alice Kiro - 23 décembre 2024
|
||||
"""
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from typing import Dict, Any
|
||||
|
||||
|
||||
@dataclass
|
||||
class SimpleFailureEvent:
|
||||
"""Événement d'échec simple pour le CircuitBreaker"""
|
||||
timestamp: datetime
|
||||
workflow_id: str
|
||||
step_id: str
|
||||
failure_type: str
|
||||
|
||||
def to_dict(self) -> Dict[str, Any]:
|
||||
"""Convertir en dictionnaire"""
|
||||
return {
|
||||
'timestamp': self.timestamp.isoformat(),
|
||||
'workflow_id': self.workflow_id,
|
||||
'step_id': self.step_id,
|
||||
'failure_type': self.failure_type
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: Dict[str, Any]) -> 'SimpleFailureEvent':
|
||||
"""Créer SimpleFailureEvent depuis un dictionnaire"""
|
||||
return cls(
|
||||
timestamp=datetime.fromisoformat(data['timestamp']),
|
||||
workflow_id=data['workflow_id'],
|
||||
step_id=data['step_id'],
|
||||
failure_type=data['failure_type']
|
||||
)
|
||||
Reference in New Issue
Block a user