58 lines
3.4 KiB
Markdown
58 lines
3.4 KiB
Markdown
|
|
# Rapport Audit QA E2E Frontend - Veza
|
||
|
|
|
||
|
|
**Date:** 7 Décembre 2025
|
||
|
|
**Statut:** ⛔ CRITIQUE (Flux Auth Bloqué)
|
||
|
|
**Testeur:** Antigravity AI Agent
|
||
|
|
|
||
|
|
## 1. Résumé Exécutif
|
||
|
|
|
||
|
|
L'audit E2E complet n'a pas pu être mené à terme en raison d'un blocage critique et persistant sur le flux d'authentification (Inscription & Connexion). Malgré plusieurs interventions correctives sur le backend et la base de données, l'accès au tableau de bord (Dashboard) reste impossible.
|
||
|
|
|
||
|
|
**État Global:** 🔴 NON FONCTIONNEL
|
||
|
|
**Blocage Principal:** Erreur 500 silencieuse sur `/api/v1/auth/register` et `/api/v1/auth/login`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Résultats Authentification
|
||
|
|
|
||
|
|
| Action | Tentative | Résultat | Analyse Technique |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| **Inscription** | UI Web | ❌ Échec | Erreur générique "Failed to create user". Logs backend initiaux indiquaient violation de contrainte `idx_users_slug`. Correctif appliqué, mais erreur persiste sans logs. |
|
||
|
|
| **Inscription** | SQL Direct | ✅ Succès | Injection manuelle via `psql` réussie (`qa_test_user_01`). Hash Bcrypt généré via outil Go compatible (cmd/tools/hash_gen). |
|
||
|
|
| **Login** | UI Web | ❌ Échec | Erreur "Erreur de connexion" / "Failed to authenticate". |
|
||
|
|
| **Diagnostic Login** | Logs Backend | ⚠️ Critique | Erreur détectée: `pq: null value in column "token" of relation "refresh_tokens"`. La table DB attendait une colonne `token` NOT NULL, alors que le code Go ne remplit que `token_hash`. |
|
||
|
|
| **Correctif Login** | Hotfix DB | ✅ Appliqué | `ALTER TABLE refresh_tokens ALTER COLUMN token DROP NOT NULL`. |
|
||
|
|
| **Retest Login** | UI Web | ❌ Échec | Malgré le hotfix et restart backend, le login échoue toujours. **Aucun log d'erreur** n'apparaît désormais dans `backend.log`, suggérant une erreur silencieuse ou une défaillance en amont (HAProxy/Network) ou aval (Parsing frontend). |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. Navigation & Features (Non Testables)
|
||
|
|
|
||
|
|
En raison de l'impossibilité de se connecter, l'audit des fonctionnalités suivantes est **BLOQUÉ** :
|
||
|
|
- 🔒 Tableau de bord
|
||
|
|
- 🔒 Upload de fichiers
|
||
|
|
- 🔒 Bibliothèque / Playlist
|
||
|
|
- 🔒 Profil Utilisateur
|
||
|
|
- 🔒 Chat en temps réel
|
||
|
|
|
||
|
|
Les pages publiques (`/login`, `/register`) s'affichent correctement, validant le fonctionnement de base du routage Frontend et du serveur Web.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. Recommandations & Plan d'Action
|
||
|
|
|
||
|
|
### P0 - Résoudre le Login (Blocant)
|
||
|
|
1. **Alignment Modèle/DB**: Le code Go `internal/services/refresh_token_service.go` doit être révisé pour supprimer toute référence implicite à la colonne `token` ou la DB doit être migrée proprement pour supprimer cette colonne héritée.
|
||
|
|
2. **Logging**: Activer un niveau de log plus verbeux (DEBUG/TRACE) sur le serveur de production/lab pour comprendre l'échec silencieux post-hotfix.
|
||
|
|
3. **Validation Token**: Vérifier si la génération du JWT (`authService.Login`) n'échoue pas silencieusement (ex: secret key manquante).
|
||
|
|
|
||
|
|
### P1 - Fixer l'Inscription
|
||
|
|
1. **Tests Unitaires**: Écrire un test unitaire Go focalisé sur `authService.Register` pour isoler la logique de création (Slug, Password, DB) du contexte HTTP.
|
||
|
|
|
||
|
|
### P2 - Nettoyage
|
||
|
|
1. **Process Management**: Cesser d'utiliser `nohup` pour le développement. Privilégier un exécuteur de tâches qui capture stdout/stderr proprement.
|
||
|
|
|
||
|
|
## 5. Conclusion
|
||
|
|
|
||
|
|
Le module Authentification est actuellement instable et empêche toute qualification fonctionnelle du produit. Une intervention développeur Backend est requise immédiatement pour rétablir le service de Login.
|