Files
rpa_vision_v3/web_dashboard
Dom 48b1fc2800
Some checks failed
tests / Lint (ruff + black) (push) Failing after 1m58s
tests / Tests unitaires (sans GPU) (push) Failing after 2m8s
tests / Tests sécurité (critique) (push) Has been skipped
feat(deploy): install silencieuse (dashboard) + MAJ GPO clients Léa + procédure Julien — 2026-07-06
Deux canaux de déploiement des clients Léa, en s'appuyant sur l'installeur EXE
v1.0.2 existant (per-user, upgrade-safe, mode /VERYSILENT /CONFIG=).

- Route dashboard `GET /api/fleet/installer` (web_dashboard/app.py, insertion pure,
  125 lignes, 0 suppression) : sert un ZIP {EXE + install_silencieux.bat + enroll.txt
  (SERVER_URL/token injectés via _resolve_public_server_url) + LISEZMOI} pour un poste
  NEUF. L'EXE génère lui-même le machine_id → pas de pré-enregistrement (distinct de
  la voie ZIP download_agent_package). Tri EXE en semver (1.0.10 > 1.0.2). Testée e2e.
- deploy/installer/silent/ : lanceur d'install silencieuse + gabarit enroll + notice.
- deploy/gpo/Deploy-LeaUpdate.ps1 : MAJ upgrade-safe via GPO **logon script user-context**
  (install per-user invisible au contexte SYSTEM). Détection version = **DisplayVersion
  du registre HKCU** (primaire pour install EXE ; le config.txt EXE ne porte PAS la
  version — vérifié sur poste réel), fallback RPA_AGENT_VERSION (installs ZIP).
  Comparaison semver, idempotent, journalisation best-effort silencieuse, non bloquant
  à l'ouverture de session. Options -DryRun / -TargetVersionOverride / -LogShareOverride.
  **Validé sur poste réel .11 (Windows PowerShell 5.1)** : branche « déjà à jour » et
  branche « MAJ requise » (DryRun, 0 install), détection = 1.0.2.
- docs/PROCEDURE_DEPLOIEMENT_LEA_JULIEN.md : procédure (poste neuf / MAJ manuelle / GPO / rollback).
- EXE binaire jamais versionné (deploy/installer/releases/.gitignore).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 10:35:22 +02:00
..

Dashboard Web RPA Vision V3

Interface web pour visualiser les logs et lancer les tests unitaires de RPA Vision V3.

🚀 Lancement Rapide

cd rpa_vision_v3
./web_dashboard/start_dashboard.sh

Puis ouvrir dans le navigateur : http://localhost:5001

Fonctionnalités

📊 Statut du Système

  • Nombre total de tests (unitaires, intégration, performance)
  • État des dépendances (PyTorch, OpenCLIP, FAISS)
  • Chemins des répertoires

🧪 Tests Unitaires

  • Liste de tous les tests disponibles
  • Lancement individuel de chaque test
  • Lancement groupé par type (unit, integration, performance)
  • Affichage en temps réel de la sortie

📝 Logs en Temps Réel

  • Affichage des 50 derniers logs
  • Rafraîchissement automatique toutes les 5 secondes
  • Scroll automatique vers les nouveaux logs
  • Filtrage par fichier de log

📋 Sortie des Tests

  • Affichage détaillé de la sortie des tests
  • Code retour et statut ( RÉUSSI / ÉCHOUÉ)
  • STDOUT et STDERR séparés
  • Format console avec coloration

🛠️ Installation Manuelle

Si le script automatique ne fonctionne pas :

# 1. Activer l'environnement virtuel
source venv_v3/bin/activate

# 2. Installer Flask
pip install Flask==3.0.0

# 3. Lancer le dashboard
cd web_dashboard
python3 app.py

📁 Structure

web_dashboard/
├── app.py                  # Application Flask
├── templates/
│   └── index.html         # Interface web
├── requirements.txt       # Dépendances
├── start_dashboard.sh     # Script de lancement
└── README.md             # Ce fichier

🔧 Configuration

Port

Par défaut, le dashboard écoute sur le port 5001. Pour changer :

# Dans app.py, ligne finale
app.run(debug=True, host='0.0.0.0', port=5001)  # Changer 5001

Logs

Les logs sont lus depuis rpa_vision_v3/logs/*.log. Pour changer :

# Dans app.py
LOGS_DIR = BASE_DIR / "logs"  # Changer le chemin

Tests

Les tests sont lus depuis rpa_vision_v3/tests/. Structure attendue :

tests/
├── unit/           # Tests unitaires
├── integration/    # Tests d'intégration
└── performance/    # Tests de performance

🎨 Interface

Thème

L'interface utilise un thème moderne avec :

  • Gradient violet/bleu pour l'en-tête
  • Cartes blanches avec ombres
  • Console sombre pour les logs et sorties
  • Boutons colorés par type de test

Responsive

L'interface s'adapte automatiquement :

  • Desktop : 2 colonnes
  • Mobile : 1 colonne

🔄 Auto-Refresh

  • Logs : Rafraîchissement automatique toutes les 5 secondes
  • Statut système : Rafraîchissement toutes les 10 secondes
  • Tests : Rafraîchissement manuel uniquement

🐛 Dépannage

Erreur "Flask not found"

pip install Flask==3.0.0

Erreur "Port 5001 already in use"

Tuer le processus existant :

lsof -ti:5001 | xargs kill -9

Ou changer le port dans app.py.

Logs vides

Vérifier que le dossier logs/ existe :

mkdir -p rpa_vision_v3/logs

Tests non trouvés

Vérifier la structure des dossiers :

ls -la rpa_vision_v3/tests/unit/
ls -la rpa_vision_v3/tests/integration/

📝 API Endpoints

GET /api/system/status

Retourne le statut du système.

Réponse :

{
  "dependencies_ok": true,
  "tests": {
    "unit": 10,
    "integration": 5,
    "performance": 3,
    "total": 18
  },
  "logs_dir": "/path/to/logs",
  "base_dir": "/path/to/rpa_vision_v3"
}

GET /api/tests

Liste tous les tests disponibles.

Réponse :

{
  "tests": [
    {
      "name": "test_fusion_engine",
      "path": "tests/unit/test_fusion_engine.py",
      "type": "unit",
      "status": "unknown"
    }
  ]
}

POST /api/tests/run

Lance un test spécifique.

Requête :

{
  "test_path": "tests/unit/test_fusion_engine.py"
}

Réponse :

{
  "success": true,
  "returncode": 0,
  "stdout": "...",
  "stderr": "..."
}

POST /api/tests/run-all

Lance tous les tests d'un type.

Requête :

{
  "type": "unit"  // ou "integration", "performance", "all"
}

Réponse :

{
  "success": true,
  "returncode": 0,
  "stdout": "...",
  "stderr": "..."
}

GET /api/logs

Récupère les logs récents.

Réponse :

{
  "logs": [
    {
      "timestamp": "2024-11-24T10:30:00",
      "file": "app.log",
      "message": "Test completed successfully"
    }
  ]
}

🚀 Utilisation en Production

Pour un déploiement en production, utiliser gunicorn :

pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5001 app:app

📄 Licence

Même licence que RPA Vision V3.

🤝 Contribution

Pour contribuer :

  1. Améliorer l'interface (CSS, JavaScript)
  2. Ajouter des graphiques de métriques
  3. Ajouter des filtres de logs
  4. Améliorer la gestion des erreurs

Créé pour RPA Vision V3 - Dashboard de monitoring et de tests