veza/docs/AUDIT_103_CORRECTIONS.md

132 lines
5.3 KiB
Markdown
Raw Normal View History

# Corrections par rapport à l'audit 103
**Date** : 16 février 2026
**Référence** : `103_audit_global_features_states.md`
**Objectif** : Documenter les écarts entre l'audit et l'état réel du backend, sans modifier le fichier d'audit lui-même.
---
## 1. Module 6 — Social & Communauté
**Audit (ligne 466)** : « Le frontend a des composants Social mais ils appellent des endpoints qui **n'existent pas** dans le backend (uniquement MSW mocks) »
**Correction** : Le backend expose des routes Social dans `veza-backend-api/internal/api/routes_social.go` :
- `GET /api/v1/social/feed` — flux social
- `GET /api/v1/social/posts/user/:user_id` — posts par utilisateur
- `GET /api/v1/social/groups` — liste des groupes
- `GET /api/v1/social/groups/:id` — détail d'un groupe
- `POST /api/v1/social/posts` — créer un post (protégé)
- `POST /api/v1/social/like` — like (protégé)
- `POST /api/v1/social/comments` — commenter (protégé)
- `POST /api/v1/social/groups` — créer un groupe (protégé)
- `POST /api/v1/social/groups/:id/join` — rejoindre un groupe (protégé)
- `DELETE /api/v1/social/groups/:id/leave` — quitter un groupe (protégé)
---
## 2. Module 9 — Gestion de Matériel (Gear)
**Audit (ligne 506)** : « Le frontend a des composants via MSW mocks (`/api/v1/inventory/gear`), mais **aucun endpoint backend n'existe** »
**Correction** : Le backend expose des routes Gear dans `veza-backend-api/internal/api/routes_gear.go` :
- `GET /api/v1/inventory/gear` — liste du matériel
- `POST /api/v1/inventory/gear` — créer un équipement (protégé)
- `GET /api/v1/inventory/gear/:id` — détail d'un équipement
- `PUT /api/v1/inventory/gear/:id` — modifier (protégé)
- `DELETE /api/v1/inventory/gear/:id` — supprimer (protégé)
---
## 3. Live Streams
**Audit (ligne 135)** : « `GET /api/v1/live/streams/*` — pas de routes live dans le backend »
**Correction** : Le backend expose des routes Live dans `veza-backend-api/internal/api/routes_live.go` :
- `GET /api/v1/live/streams` — liste des streams
- `GET /api/v1/live/streams/:id` — détail d'un stream
- `POST /api/v1/live/streams` — créer un stream (protégé)
---
## 4. Routes Notifications
**Audit** : Le rapport 103 indique un backend « limité » pour les notifications.
**Correction** : Les routes `/api/v1/notifications/*` existent dans `veza-backend-api/internal/api/routes_core.go` (lignes 344-353) :
- `GET /api/v1/notifications` — liste des notifications
- `GET /api/v1/notifications/unread-count` — nombre de non lues
- `POST /api/v1/notifications/:id/read` — marquer comme lue
- `POST /api/v1/notifications/read-all` — tout marquer comme lu
- `DELETE /api/v1/notifications/:id` — supprimer une notification
- `DELETE /api/v1/notifications` — supprimer toutes les notifications
**Phase 2.2** : Création automatique de notifications pour follow, like et comment (handlers ProfileHandler, TrackHandler, CommentHandler).
---
## 5. Job Queue (RabbitMQ)
**Audit** : Mention de job queue non connectée.
**Correction** : RabbitMQ est configuré et connecté via `config.RabbitMQEventBus` (`veza-backend-api/internal/config/config.go`). Le service démarre avec RabbitMQ si `RABBITMQ_ENABLE=true`. Le health check `/readyz` inclut RabbitMQ (mode dégradé si indisponible).
---
## 6. Stream Server — Callback HTTP
**Audit** : Référence au Stream Server.
**Correction** : Le backend expose un endpoint de callback pour le Stream Server :
- `POST /api/v1/internal/tracks/:id/stream-ready` — callback après transcoding (authentifié par `X-Internal-API-Key`)
- Également disponible en legacy : `POST /internal/tracks/:id/stream-ready`
---
## 7. Recherche unifiée
**Audit (ligne 192)** : « /search » listé comme inexistant.
**Correction** : La recherche unifiée existe dans `veza-backend-api/internal/api/routes_search.go` :
- `GET /api/v1/search` — recherche unifiée (tracks, users, playlists)
---
## 8. Tests E2E Playwright
**Prérequis** : Backend API doit être démarré sur `http://localhost:8080` pour les tests smoke/auth (login, upload, playlists).
**Configuration** :
- `PORT=5174` : évite conflit avec dev server sur 5173
- `playwright.config.ts` : webServer timeout 5 min, Vite respecte `process.env.PORT`
- `vite.config.ts` : `server.port` utilise `process.env.PORT || 5173`
**Commande** :
```bash
# Backend + Frontend requis
cd apps/web && PORT=5174 VITE_API_URL=http://localhost:8080/api/v1 npx playwright test --project=chromium
```
---
## 9. Analytics — track_plays.device
**Vérification** : La table `track_plays` possède bien la colonne `device` (modèle `TrackPlay` dans `internal/models/track_play.go`). Le handler `GetDeviceBreakdown` interroge correctement cette colonne. `GetTrafficSources` renvoie `[]` car `track_plays` n'a pas de colonne `source` — comportement documenté dans le handler.
---
## 10. Routes orphelines (backend exposé, frontend non consommateur)
Routes disponibles pour usage futur (pas de UI dédiée actuellement) :
- `POST /api/v1/tracks/initiate`, `POST /api/v1/tracks/complete`, `GET /api/v1/tracks/resume/:uploadId` — upload chunked
- `POST /api/v1/tracks/batch/delete`, `POST /api/v1/tracks/batch/update` — opérations batch
- `GET /api/v1/tracks/shared/:token` — partage par token
- `GET /api/v1/users/me/export` — export données utilisateur
- `POST /api/v1/audit/cleanup` — nettoyage audit (admin)