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>
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""
|
|
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']
|
|
) |