Version 0.9.x
Vue d'ensemble
Version 0.9.x est une version majeure qui introduit un Système complet de Contrôle d'Accès Utilisateur et de Sécurité. Cette version transforme duplistatus d'une application en accès libre en un système sécurisé multi-utilisateurs avec contrôle d'accès basé sur les rôles, journalisation d'audit complète et fonctionnalités de sécurité de niveau entreprise. Toutes les fonctionnalités existantes sont maintenant protégées par authentification, garantissant que seuls les utilisateurs autorisés peuvent accéder et gérer la surveillance des sauvegardes.
Modifications Incompatibles
Authentification requise
- Tous les pages nécessitent maintenant une authentification - Les utilisateurs doivent se connecter pour accéder à l'application
- Le compte admin par défaut est créé automatiquement :
- Nom d'utilisateur :
admin - Mot de passe :
Duplistatus09(doit être modifié à la première connexion)
- Nom d'utilisateur :
- Les sessions existantes sont invalidées - Tous les utilisateurs doivent se connecter après la mise à niveau
- Les points de terminaison API nécessitent maintenant une authentification - Les intégrations externes doivent inclure les cookies de session ou utiliser des requêtes authentifiées
Tous les utilisateurs doivent se connecter après la mise à niveau vers la version 0.9.x. Les identifiants admin par défaut sont admin/Duplistatus09. Changez le mot de passe immédiatement après la première connexion.
Migration du Schéma de Base de Données
- Migration automatique de v3.1 vers v4.0 pour les installations existantes
- Nouvelles tables ajoutées :
users,sessions,audit_log - Sauvegarde de la base de données créée automatiquement avant la migration
- Les nouvelles installations démarrent directement avec le schéma v4.0 (aucune migration nécessaire)
Nouvelles fonctionnalités
Contrôle d'accès utilisateur et système de sécurité
Système d'authentification
- Fonctionnalité de connexion/déconnexion utilisateur avec gestion sécurisée des sessions
- Authentification par mot de passe avec hachage bcrypt (facteur de coût 12)
- Mécanisme de verrouillage de compte (5 tentatives échouées, verrouillage de 15 minutes)
- Changement de mot de passe forcé à la première connexion
- Application de la politique de mot de passe :
- Minimum 8 caractères
- Au moins une lettre majuscule
- Au moins une lettre minuscule
- Au moins un chiffre
- Caractères spéciaux optionnel
- Fonctionnalité « Se souvenir de moi » avec persistance du nom d'utilisateur dans localStorage
- Authentification basée sur les sessions avec sessions sauvegardées en base de données (remplace la mémoire interne)
- Protection CSRF intégrée à l'authentification
- Cookies HTTP-only pour la sécurité des sessions
- Suivi de l'adresse IP et de l'agent utilisateur pour la surveillance de la sécurité
Gestion des utilisateurs (Admin uniquement)
- Création d'utilisateur avec génération automatique de mot de passe temporaire
- Liste d'utilisateurs avec recherche, pagination et filtrage
- Édition d'utilisateur (nom d'utilisateur, statut admin, exigence de changement de mot de passe)
- Fonctionnalité de réinitialisation du mot de passe avec affichage du mot de passe temporaire
- Suppression d'utilisateur avec protections (empêche la suppression du dernier admin)
- Contrôle d'accès basé sur les rôles (rôles Admin/Utilisateur)
- Indicateurs de statut (Actif, Verrouillé, Doit changer le mot de passe)
- Suivi de la dernière connexion et affichage
Système de journalisation d'audit
- Journal d'Audit complet pour tous les changements système et actions utilisateur
- Visualiseur de journal d'audit avec filtrage avancé :
- Filtrage par plage de dates
- Filtrage par utilisateur
- Filtrage par action
- Filtrage par catégorie
- Filtrage par statut
- Fonctionnalité d'export (formats CSV et JSON)
- Statistiques et analyses du journal d'audit
- Période de rétention configurable (30-365 jours, par défaut : 90 jours)
- Tâche cron de nettoyage automatique (s'exécute quotidiennement à 2 h UTC)
- API de nettoyage manuel avec support de simulation
- Journalisation d'audit pour :
- Événements d'authentification (connexion, déconnexion, changements de mot de passe, verrouillages de compte)
- Opérations de gestion des utilisateurs (création, mise à jour, suppression, réinitialisations de mot de passe)
- Changements de configuration (e-mail, NTFY, modèles, tolérance de retard, paramètres de sauvegarde)
- Opérations de sauvegarde (collection, suppression, nettoyage)
- Gestion des serveurs (ajout, mise à jour, suppression)
- Opérations système (migrations, nettoyage, notifications)
Refonte de la page Paramètres
- Navigation latérale moderne avec barre latérale réductible
- Persistance de l'état de la barre latérale spécifique à l'utilisateur (préférence réduite/développée sauvegardée par utilisateur)
- Sections de paramètres groupées :
- Notifications : Notifications de sauvegarde, Surveillance de sauvegarde, Modèles
- Intégrations : NTFY, E-mail
- Système : Serveurs, Utilisateurs (admin uniquement), Journal d'Audit
- Barre latérale fixe qui reste visible lors du défilement
- Conception réactive avec espacement optimisé
- Icône de paramètres et titre « Paramètres Système » dans l'en-tête de la barre latérale
- Bouton Retour intégré dans l'en-tête de l'application
Améliorations de l'Interface Utilisateur
- Page de connexion autonome avec design moderne
- Case à cocher « Se souvenir de moi » sur le formulaire de connexion pour la persistance du nom d'utilisateur
- Boutons Afficher/Masquer le mot de passe sur les formulaires de connexion et de changement de mot de passe
- Modal Changer le mot de passe avec liste de validation en temps réel
- Indicateur d'utilisateur et bouton Déconnexion dans l'en-tête de l'application
- Visibilité de l'interface basée sur le rôle (fonctionnalités réservées aux Admin masquées des utilisateurs ordinaires)
- Badges et indicateurs de statut dans toute l'interface utilisateur
- Préférences spécifiques à l'utilisateur stockées dans localStorage (par exemple, état de la barre latérale réduite)
Fonctionnalités de Sécurité
- Hachage du mot de passe avec bcrypt (norme de l'industrie)
- Assainissement des données sensibles dans les journaux d'audit (les mots de passe, jetons et secrets ne sont jamais enregistrés)
- Limitation du débit pour les tentatives de connexion
- Expiration de session (24 heures)
- Validation du jeton CSRF pour toutes les opérations modifiant l'état
- Outil CLI de récupération Admin pour la réinitialisation du mot de passe en cas de verrouillage
Outils de développement
- Script CLI de récupération Admin (
admin-recovery) pour une exécution facile dans les conteneurs Docker - Fonctionne à la fois localement et dans Docker avec détection automatique du chemin
- Interfaces TypeScript complètes (pas de types
any) - Middleware d'authentification pour la protection des routes
- Classe utilitaire de journal d'audit avec des méthodes pratiques
🚀 Notes de Migration
À partir de la Version 0.8.x
Cette version introduit l'authentification et nécessite que tous les utilisateurs se connectent. Quand vous effectuez une mise à niveau à partir de la version 0.8.x :
- Migration automatique de la base de données : L'application migrera automatiquement votre schéma de base de données de la v3.1 à la v4.0
- Sauvegarde de la base de données : Une sauvegarde automatique est créée avant la migration
- Compte Admin par défaut : Un compte Admin par défaut est créé :
- Nom d'utilisateur :
admin - Mot de passe :
Duplistatus09 - Vous devez modifier ce mot de passe à la première connexion
- Nom d'utilisateur :
- Invalidation de session : Toutes les sessions existantes sont invalidées
- Connexion utilisateur requise : Tous les utilisateurs doivent se connecter après la mise à niveau
- Authentification API : Les intégrations externes doivent être mises à jour pour inclure l'authentification
Considérations de sécurité
- Modifier le mot de passe par défaut : Modifiez le mot de passe admin par défaut immédiatement après votre première connexion
- Créer des comptes utilisateur : Créez des comptes utilisateur individuels pour chaque personne qui a besoin d'accès
- Vérifier les journaux d'audit : Vérifiez régulièrement les journaux d'audit pour la surveillance de la sécurité
- Configurer la rétention : Définissez une période de rétention appropriée du journal d'audit en fonction de vos exigences de conformité
- Sauvegarder la clé maître : Si vous effectuez une mise à niveau à partir de 0.8.x, assurez-vous que le fichier
.duplistatus.keyest sauvegardé
Premières étapes de connexion
- Se connecter avec les identifiants par défaut (
admin/Duplistatus09) - Changer le mot de passe quand vous y êtes invité (obligatoire à la première connexion)
- Créer l'utilisateur pour les autres utilisateurs (Paramètres → Utilisateurs)
- Configurer la Rétention du journal d'audit si nécessaire (Paramètres → Journal d'Audit)
- Consulter les Journaux d'Audit pour vérifier que le Système fonctionne correctement
🐛 Corrections de bogues
- Correction des problèmes de persistance de session lors des redémarrages du serveur
- Amélioration de la gestion des erreurs pour les échecs d'authentification
- Amélioration des commentaires de validation du mot de passe
- Correction des incohérences de l'interface utilisateur dans la page Paramètres
- Amélioration des performances de filtrage du Journal d'Audit
Points de terminaison API
Points de terminaison d'authentification
POST /api/auth/login- Authentification de l'utilisateurPOST /api/auth/logout- Terminaison de sessionGET /api/auth/me- Informations de l'utilisateur actuelPOST /api/auth/change-password- Modification du mot de passe
Points de terminaison de gestion des utilisateurs (Admin uniquement)
GET /api/users- Lister les utilisateursPOST /api/users- Créer l'utilisateurPATCH /api/users/{id}- Mettre à jour l'utilisateurDELETE /api/users/{id}- Supprimer l'utilisateur
Points de Terminaison du Journal d'Audit
GET /api/audit-log- Interroger les journaux d'auditGET /api/audit-log/download- Exporter les journaux d'auditGET /api/audit-log/stats- Statistiques d'auditPOST /api/audit-log/cleanup- Nettoyage manuel (admin uniquement)GET /api/audit-log/retention- Obtenir le paramètre de rétentionPATCH /api/audit-log/retention- Mettre à jour la rétention (admin uniquement)
Tous les points de terminaison API nécessitent maintenant une authentification. Consultez la Référence API pour plus de détails sur l'authentification.
Support
Aide
- Documentation : Guide de l'utilisateur
- Référence API : Documentation API
- Guide de migration : Migration de mise à niveau de version
- Récupération Admin : Récupération du compte Admin
- Communauté : Discussions GitHub
- Problèmes : Problèmes GitHub
Signaler des bogues
Lors de la signalisation de bogues, veuillez inclure :
- Version : 0.9.x
- Système d'exploitation et version
- Version de Docker
- Messages d'erreur et journaux
- Étapes pour reproduire
- Rôle utilisateur (admin/utilisateur) si pertinent
Journal des modifications
Modifications détaillées
- Added: Système complet d'authentification et d'autorisation
- Added: Gestion des utilisateurs avec contrôle d'accès basé sur les rôles
- Added: Système complet de journalisation d'audit
- Added: Refonte de la page Paramètres avec barre latérale repliable
- Added: Outil CLI de récupération Admin
- Added: Application de la politique de mot de passe
- Added: Mécanisme de verrouillage de compte
- Added: Gestion des sessions avec persistance en base de données
- Changed: Toutes les pages nécessitent maintenant une authentification
- Changed: Schéma de base de données de v3.1 à v4.0
- Changed: Stockage des sessions de la mémoire à la base de données
- Changed: Disposition et navigation de la page Paramètres
- Fixed: Persistance des sessions après redémarrage du serveur
- Fixed: Diverses incohérences d'interface utilisateur
- Improved: Posture de sécurité avec système complet de journalisation d'audit
- Improved: Expérience utilisateur avec pages de connexion et paramètres modernes
- Improved: Qualité du code avec interfaces TypeScript et principes DRY
Licence
Ce projet est licencié sous la Licence Apache 2.0.
Copyright © 2025 Waldemar Scudeller Jr.