Files
rpa_vision_v3/core/system/models.py
Dom 4b96524964 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>
2026-01-19 15:34:51 +01:00

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']
)