veza/veza-backend-api/docs/archive/REMEDIATION_PROGRESS_2025-12-15.md
senke b103a09a25 chore: consolidate CI, E2E, backend and frontend updates
- CI: workflows updates (cd, ci), remove playwright.yml
- E2E: global-setup, auth/playlists/profile specs
- Remove playwright-report and test-results artifacts from tracking
- Backend: auth, handlers, services, workers, migrations
- Frontend: components, features, vite config
- Add e2e-results.json to gitignore
- Docs: REMEDIATION_PROGRESS, audit archive
- Rust: chat-server, stream-server updates
2026-02-17 16:43:21 +01:00

6 KiB

🛠️ RAPPORT DE REMÉDIATION — VEZA BACKEND API

Date: 2025-12-15
Statut: En cours


PHASE P0 — TERMINÉE (2/2)

MOD-P0-001: Erreurs compilation uuid.New()

  • Statut: CORRIGÉ
  • Fichiers modifiés:
    • internal/core/track/service_async_test.go:219
    • internal/core/track/service_n1_test.go:48,114
  • Fix: Remplacement de uuid.New() par &fileID (variable intermédiaire)
  • Validation: go test ./internal/core/track -c compile

MOD-P0-002: Panic dans test playlist

  • Statut: CORRIGÉ
  • Fichier modifié: internal/handlers/playlist_handler_integration_test.go:139
  • Fix: Accès correct à response["data"]["playlist"] au lieu de response["playlist"]
  • Validation: go test ./internal/handlers -run TestCreatePlaylist_Success passe

🔄 PHASE P1 — EN COURS

2.1 Sécurité & Robustesse — TERMINÉ (2/2)

MOD-P1-005: Stack traces dans logs production

  • Statut: CORRIGÉ
  • Fichiers modifiés:
    • internal/middleware/recovery.go: Signature changée pour accepter includeStackTrace bool
    • internal/api/router.go: Passe includeStackTrace au Recovery middleware
    • internal/middleware/recovery_env_test.go: Tests mis à jour
    • internal/middleware/recovery_test.go: Tests mis à jour
  • Fix: Stack traces loggés uniquement si includeStackTrace=true (dev/DEBUG mode)
  • Validation: Tests passent

MOD-P1-006: /readyz en mode dégradé

  • Statut: DÉJÀ CORRIGÉ
  • Fichier: internal/handlers/health.go:182-184
  • Vérification: Code retourne 200 OK même si Redis/RabbitMQ down (mode dégradé)

2.2 Stabilité runtime — PARTIELLEMENT TERMINÉ

MOD-P1-001: 57 occurrences c.MustGet()

  • Statut: CORRIGÉ (handlers)
  • Fichiers modifiés:
    • internal/handlers/common.go: Ajout fonction GetUserIDUUID() helper
    • internal/handlers/playback_analytics_handler.go: 2 occurrences remplacées
    • internal/handlers/playback_websocket_handler.go: 1 occurrence remplacée
    • internal/handlers/social.go: 3 occurrences remplacées
    • internal/handlers/settings_handler.go: 2 occurrences remplacées
    • internal/handlers/hls_handler.go: 1 occurrence remplacée
    • internal/handlers/marketplace.go: 3 occurrences remplacées
    • internal/handlers/playlist_handler.go: 13 occurrences remplacées (GetUserIDUUID)
    • internal/handlers/comment_handler.go: 3 occurrences remplacées
  • Total remplacé: 15 occurrences réelles dans handlers
  • Reste: 17 occurrences dans internal/core/track/handler.go (commentaires uniquement, déjà corrigé avec getUserID() helper)
  • Validation: Compilation OK

MOD-P1-004: Timeouts context explicites

  • Statut: 🔄 EN COURS (partiellement)
  • Fichiers modifiés:
    • internal/handlers/common.go: Ajout fonction WithTimeout() helper
    • internal/handlers/playlist_handler.go: Timeouts ajoutés pour:
      • CreatePlaylist
      • GetPlaylists
      • GetPlaylist
      • UpdatePlaylist
      • DeletePlaylist
    • internal/handlers/auth.go: Timeouts ajoutés pour:
      • Login
      • Register
      • CreateSession
  • Reste: Autres handlers/services (à faire progressivement)
  • Validation: Compilation OK

2.3 Contrat API & erreurs — EN COURS

MOD-P1-002: 534 occurrences gin.H{"error"}

  • Statut: 🔄 EN COURS (partiellement - handlers critiques migrés)
  • Fichiers modifiés:
    • internal/handlers/auth.go: ~13 occurrences remplacées par RespondWithAppError (Login, Register, Refresh, VerifyEmail, ResendVerification, CheckUsername, GetMe)
    • internal/handlers/playlist_handler.go: ~40 occurrences remplacées dans handlers critiques:
      • CreatePlaylist, GetPlaylists, GetPlaylist, UpdatePlaylist, DeletePlaylist
      • AddTrack, RemoveTrack, ReorderTracks
      • AddCollaborator, RemoveCollaborator, UpdateCollaboratorPermission, GetCollaborators
      • CreateShareLink, FollowPlaylist, UnfollowPlaylist
      • GetPlaylistStats, DuplicatePlaylist, SearchPlaylists, GetRecommendations
  • Reste:
    • internal/handlers/playlist_handler.go: ~45 occurrences restantes (handlers moins critiques)
    • internal/handlers/auth.go: ~8 occurrences restantes (handlers moins critiques)
    • Autres handlers: ~430 occurrences
  • Méthode: Migration progressive par handler critique
  • Validation: Compilation OK , Tests passent

MOD-P1-003: 969 occurrences fmt.Errorf sans %w

  • Statut: NON COMMENCÉ
  • Priorité: Après MOD-P1-002 (format erreur d'abord)

PHASE P2 — NON COMMENCÉE

  • MOD-P2-001: 201 TODOs/FIXMEs
  • MOD-P2-002: 81 tests skippés
  • MOD-P2-003: 37 tests en quarantaine
  • MOD-P2-004: Métriques DB pool manquantes
  • MOD-P2-005: Redaction PII logs
  • MOD-P2-006: 33 panics (principalement tests)
  • MOD-P2-007: 5 log.Fatal (cmd/*) — Acceptable
  • MOD-P2-008: 2 os.Exit (tools) — Acceptable
  • MOD-P2-009: Pas de versioning API
  • MOD-P2-010: Tests flaky playlists

📊 STATISTIQUES

Progrès global

  • P0: 2/2 (100%)
  • P1: 4/6 🔄 (67% - 4 terminés, 2 en cours)
  • P2: 0/10 (0%)

Occurrences restantes

  • c.MustGet(): 0 réels (17 commentaires dans track/handler.go)
  • gin.H{"error"}: ~483 restantes (~51 corrigées dans auth/playlist handlers critiques)
  • fmt.Errorf sans %w: 969 restantes

🎯 PROCHAINES ÉTAPES

  1. Continuer MOD-P1-002: Migrer les 86 occurrences restantes dans playlist_handler.go
  2. Continuer MOD-P1-002: Migrer les handlers tracks (critiques)
  3. Continuer MOD-P1-004: Ajouter timeouts dans handlers tracks
  4. Commencer MOD-P1-003: Ajouter %w dans erreurs critiques (services auth, playlists, tracks)

VALIDATIONS

  • Compilation: go build ./internal/handlers OK
  • Tests P0: go test ./internal/core/track -c OK
  • Tests playlist: go test ./internal/handlers -run TestCreatePlaylist_Success OK
  • Tests middleware: go test ./internal/middleware -run TestRecovery OK

Fin du rapport