Dev/3.0.0 #131

Merged
nicolas merged 11 commits from dev/3.0.0 into master 2026-11-09 15:06:03 +01:00
Owner

Changelog

Ajouts — serveur

  • Module Feedback avec deux routes anonymes (défi anti-spam, envoi d’une demande) et cinq routes d’administration : vue d’ensemble, liste, détail, modification du statut, suppression. Les modifications passent par des requêtes signées.
  • FeedbackGuard : défi anti-spam à usage unique (preuve de calcul) et limites par adresse IP, gardées en mémoire seulement (3 demandes / 10 min, 10 / jour).
  • FeedbackStore : un fichier JSON par demande, rangé par jeu et par mois, écrit de façon atomique. Plafonds : 300 demandes par jour et par jeu, 5 000 par jeu, 100 Mo au total, 500 Mo d’espace disque libre minimum.
  • RetentionService : purge au démarrage puis chaque jour.
    • Demandes : supprimées 12 mois après leur clôture, et au plus tard 24 mois après réception.
    • Journal d’audit : purgé au-delà de 12 mois, ce qui corrige l’écart RGPD relevé.
  • AuditLog.Purge, nouveaux réglages Feedback et Audit, et limite de débit feedback.
  • Anonymat : aucune adresse IP n’est enregistrée avec une demande ni dans l’audit de son envoi, et nginx n’écrit pas ces requêtes dans ses journaux.

Ajouts — contrats et client

  • Contracts/Feedback :
    • FeedbackForms : les 4 formulaires et leurs champs prédéfinis ;
    • FeedbackRules : validation commune au launcher et au serveur (caractères invisibles refusés, longueurs bornées) ;
    • FeedbackProof : le défi anti-spam ;
    • les objets échangés.
  • Routes, permissions feedback.read et feedback.manage, codes d’erreur feedback_full et proof_invalid.
  • Groupes par défaut :
    • Administrateur : reçoit les deux nouvelles permissions ;
    • Éditeur : aucune.
  • LauncherApiClient.SendFeedbackAsync (envoi anonyme) et les méthodes d’administration dans AdminSession.

Ajouts — launcher

  • Nouveau projet GameLauncher.Modules.Feedback, ajouté à la solution : le formulaire du joueur et les informations techniques.
  • Bouton Aide dans la barre de titre, absent sans apiUrl.
  • Fenêtre FeedbackWindow en trois étapes :
    • choix du type ;
    • formulaire : étoiles, listes, compteurs de caractères ;
    • confirmation avec la référence et un bouton pour la copier.
  • La saisie est conservée si l’envoi échoue, et Échap ne ferme pas la fenêtre pendant la saisie.
  • Icônes Star, Lightbulb, Bug et MessageQuestion.

Ajouts — menu d’administration

  • Page « Demandes des joueurs » :
    • choix du jeu, avec le nombre de nouvelles demandes sur chaque tuile ;
    • filtres : type, statut (« À traiter » par défaut) et recherche ;
    • liste et fiche en deux colonnes ;
    • statut, note interne, suppression confirmée.
  • Carte « Demandes des joueurs » sur le tableau de bord.

Documentation

  • LISEZMOI.md (étape 3 octies, arborescence, surveillance), nginx-api.conf, appsettings.json.
  • ADMIN-ARCHITECTURE.md (§ 4, § 7, § 11 quinquies, phase 7d, § 14) et README.md.

Tests

  • FeedbackRulesTests, FeedbackModuleTests et FeedbackPanelTests ; le projet de tests référence Modules.Feedback.
# **Changelog** ## **Ajouts — serveur** - Module `Feedback` avec deux routes anonymes (défi anti-spam, envoi d’une demande) et cinq routes d’administration : vue d’ensemble, liste, détail, modification du statut, suppression. Les modifications passent par des requêtes signées. - `FeedbackGuard` : défi anti-spam à usage unique (preuve de calcul) et limites par adresse IP, gardées en mémoire seulement (3 demandes / 10 min, 10 / jour). - `FeedbackStore` : un fichier JSON par demande, rangé par jeu et par mois, écrit de façon atomique. Plafonds : 300 demandes par jour et par jeu, 5 000 par jeu, 100 Mo au total, 500 Mo d’espace disque libre minimum. - `RetentionService` : purge au démarrage puis chaque jour. - Demandes : supprimées 12 mois après leur clôture, et au plus tard 24 mois après réception. - Journal d’audit : purgé au-delà de 12 mois, ce qui corrige l’écart RGPD relevé. - `AuditLog.Purge`, nouveaux réglages `Feedback` et `Audit`, et limite de débit `feedback`. - Anonymat : aucune adresse IP n’est enregistrée avec une demande ni dans l’audit de son envoi, et nginx n’écrit pas ces requêtes dans ses journaux. ## **Ajouts — contrats et client** - `Contracts/Feedback` : - `FeedbackForms` : les 4 formulaires et leurs champs prédéfinis ; - `FeedbackRules` : validation commune au launcher et au serveur (caractères invisibles refusés, longueurs bornées) ; - `FeedbackProof` : le défi anti-spam ; - les objets échangés. - Routes, permissions `feedback.read` et `feedback.manage`, codes d’erreur `feedback_full` et `proof_invalid`. - Groupes par défaut : - Administrateur : reçoit les deux nouvelles permissions ; - Éditeur : aucune. - `LauncherApiClient.SendFeedbackAsync` (envoi anonyme) et les méthodes d’administration dans `AdminSession`. ## **Ajouts — launcher** - Nouveau projet `GameLauncher.Modules.Feedback`, ajouté à la solution : le formulaire du joueur et les informations techniques. - Bouton Aide dans la barre de titre, absent sans `apiUrl`. - Fenêtre `FeedbackWindow` en trois étapes : - choix du type ; - formulaire : étoiles, listes, compteurs de caractères ; - confirmation avec la référence et un bouton pour la copier. - La saisie est conservée si l’envoi échoue, et Échap ne ferme pas la fenêtre pendant la saisie. - Icônes Star, Lightbulb, Bug et MessageQuestion. ## **Ajouts — menu d’administration** - Page « Demandes des joueurs » : - choix du jeu, avec le nombre de nouvelles demandes sur chaque tuile ; - filtres : type, statut (« À traiter » par défaut) et recherche ; - liste et fiche en deux colonnes ; - statut, note interne, suppression confirmée. - Carte « Demandes des joueurs » sur le tableau de bord. ## **Documentation** - `LISEZMOI.md` (étape 3 octies, arborescence, surveillance), `nginx-api.conf`, `appsettings.json`. - `ADMIN-ARCHITECTURE.md` (§ 4, § 7, § 11 quinquies, phase 7d, § 14) et `README.md`. ## **Tests** - `FeedbackRulesTests`, `FeedbackModuleTests` et `FeedbackPanelTests` ; le projet de tests référence `Modules.Feedback`.
nicolas added this to the Système de feedback milestone 2026-11-09 15:05:08 +01:00
nicolas added the Ajout label 2026-11-09 15:05:08 +01:00
nicolas self-assigned this 2026-11-09 15:05:08 +01:00
nicolas_gitea was assigned by nicolas 2026-11-09 15:05:08 +01:00
nicolas added this to the Système de feedback project 2026-11-09 15:05:08 +01:00
nicolas added 11 commits 2026-11-09 15:05:08 +01:00
nicolas requested review from nicolas_gitea 2026-11-09 15:05:08 +01:00
nicolas_gitea left a comment
Owner

Code ok, je valide

Code ok, je valide
nicolas moved this to En cours in Système de feedback on 2026-11-09 15:05:49 +01:00
nicolas merged commit ade18e84d2 into master 2026-11-09 15:06:03 +01:00
nicolas moved this to Terminée in Système de feedback on 2026-11-09 15:06:55 +01:00
Sign in to join this conversation.