Files
serv_benchmark/docs/CHANGELOG_2025-12-13.md
Gilles Soulier c67befc549 addon
2026-01-05 16:08:01 +01:00

6.5 KiB
Executable File

Changelog - 13 Décembre 2025

Version : 1.1.0 (Backend 1.0.1 + Frontend 1.1.0) Date : 13 décembre 2025


📋 Résumé des Changements

Cette mise à jour apporte des corrections de bugs critiques dans le backend et des améliorations majeures d'UX dans le frontend.


🐛 Backend - Corrections de Bugs (v1.0.1)

Bug #1 : Timestamp de mise à jour non fonctionnel ⚠️ CRITIQUE

  • Fichier : backend/app/api/devices.py:270
  • Problème : Le champ updated_at n'était jamais mis à jour lors de modifications
  • Fix : Utilisation de datetime.utcnow() au lieu de requête SQL inutile
  • Impact : Les timestamps sont maintenant correctement mis à jour

Bug #2 : Gestion incorrecte des sessions DB ⚠️ CRITIQUE

  • Fichier : backend/app/main.py:71
  • Problème : L'endpoint /api/stats gérait manuellement la session DB
  • Fix : Utilisation du pattern FastAPI standard avec Depends(get_db)
  • Impact : Pas de fuites de connexions, meilleure cohérence du code

Bug #3 : Gestion d'erreurs limitée dans l'API frontend

  • Fichier : frontend/js/api.js:11
  • Problème : Messages d'erreur génériques, pas de détection des erreurs réseau
  • Fix : Erreurs détaillées avec status, endpoint, et messages en français
  • Impact : Meilleur débogage et messages clairs pour l'utilisateur

Bug #4 : Validation manquante des scores

  • Fichier : backend/app/schemas/benchmark.py:10
  • Problème : Aucune validation des plages de valeurs (scores négatifs possibles)
  • Fix : Ajout de validations Pydantic avec Field(ge=0, le=100)
  • Impact : Données plus fiables, rejet automatique des valeurs invalides

📄 Documentation détaillée : BUGFIXES_2025-12-13.md


Frontend - Améliorations UX (v1.1.0)

Fonctionnalité #1 : Recherche en Temps Réel 🔍

  • Fichiers : frontend/index.html, frontend/js/dashboard.js
  • Barre de recherche avec filtrage instantané (debounced 300ms)
  • Filtre sur hostname, description, et location
  • Bouton "Effacer" pour réinitialiser
  • Bénéfice : Trouve un device parmi des dizaines en quelques secondes

Fonctionnalité #2 : Bouton d'Actualisation Manuelle 🔄

  • Fichiers : frontend/index.html, frontend/js/dashboard.js
  • Bouton "🔄 Actualiser" avec état visuel pendant le chargement
  • Horodatage de dernière mise à jour
  • Désactivation automatique pendant le chargement
  • Bénéfice : Contrôle total sur le rafraîchissement des données

Fonctionnalité #3 : Gestion d'Erreurs avec Retry 🔄

  • Fichier : frontend/js/dashboard.js:132
  • Messages d'erreur clairs avec détails
  • Bouton "🔄 Réessayer" sur chaque erreur
  • Message spécifique pour erreurs réseau
  • Bénéfice : Résolution autonome des problèmes temporaires

Fonctionnalité #4 : Skeleton Loaders 💫

  • Fichier : frontend/css/components.css:3
  • Animations de chargement professionnelles
  • Styles réutilisables (.skeleton, .skeleton-text, .skeleton-card)
  • Transitions fluides avec .fade-in
  • Bénéfice : Perception de chargement plus rapide

Fonctionnalité #5 : Protection Anti-Spam

  • Fichier : frontend/js/dashboard.js:11
  • Flag isLoading pour éviter les requêtes multiples
  • Désactivation du bouton pendant le chargement
  • Bénéfice : Meilleure performance, pas de concurrence de données

📄 Documentation détaillée : FRONTEND_IMPROVEMENTS_2025-12-13.md


📊 Statistiques

Code modifié

  • Backend : 4 fichiers, ~60 lignes
  • Frontend : 3 fichiers, ~160 lignes
  • Total : ~220 lignes de code ajoutées/modifiées

Tests effectués

  • Endpoint /api/stats - Fonctionne
  • Endpoint /api/health - Fonctionne
  • Endpoint /api/devices - Fonctionne
  • Recherche frontend - Fonctionne
  • Bouton actualiser - Fonctionne
  • Gestion d'erreurs - Fonctionne

🚀 Migration

Pour appliquer cette mise à jour :

cd /home/gilles/Documents/vscode/serv_benchmark

# 1. Rebuild backend (pour les corrections de bugs)
docker compose build backend

# 2. Redémarrer les services
docker compose restart backend frontend

# 3. Vérifier que tout fonctionne
curl http://localhost:8007/api/health
curl http://localhost:8087/ | grep searchInput

# 4. Tester dans le navigateur
# Ouvrir http://localhost:8087/

Aucune migration de base de données requise


📝 Fichiers Modifiés

Backend (v1.0.1)

Fichier Type Description
backend/app/api/devices.py Bug fix Correction timestamp update
backend/app/main.py Bug fix Fix session DB management
frontend/js/api.js Amélioration Meilleure gestion d'erreurs
backend/app/schemas/benchmark.py Validation Ajout validations Pydantic

Frontend (v1.1.0)

Fichier Type Description
frontend/index.html Feature Ajout toolbar avec recherche
frontend/js/dashboard.js Feature Recherche, refresh, retry
frontend/css/components.css UI Skeleton loaders, animations

🎯 Prochaines Étapes Recommandées

Priorité Haute

  • Tests sur navigateurs différents (Chrome, Firefox, Safari)
  • Tests sur mobile/tablet
  • Ajouter des tests unitaires backend (pytest)

Priorité Moyenne

  • Graphiques d'évolution des scores (Chart.js)
  • Filtres avancés (par score, date, type)
  • Mode sombre/clair

Priorité Basse

  • Export CSV/JSON
  • Dashboard temps réel (WebSockets)
  • Notifications push

🔗 Liens Utiles


Validation

  • Tous les bugs backend corrigés
  • Toutes les features frontend implémentées
  • Tests manuels effectués
  • Documentation mise à jour
  • Services Docker redémarrés
  • Changelog créé

Status : PRODUCTION READY

Versions :

  • Backend : 1.0.0 → 1.0.1
  • Frontend : 1.0.0 → 1.1.0
  • Global : 1.0.0 → 1.1.0

Date de release : 13 décembre 2025 Auteurs : Assistant AI + Gilles @ maison43


Linux BenchTools - Benchmarking simplifié pour votre infrastructure Linux 🚀