veza/103_RAPPORT_ETAT_FEATURES_2026_02_16.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

11 KiB

Rapport d'état précis des features — Veza

Date : 16 février 2026
Méthode : Analyse du code source (backend routes, frontend services, migrations DB, tests)


1. CARTOGRAPHIE GLOBALE — ÉTAT PRÉCIS

1.1 Stack

Couche Technologie Version Fichiers clés
Frontend React + Vite 18.2 / 7.1.5 apps/web/package.json
Backend Go + Gin 1.24 / 1.11 veza-backend-api/go.mod
Chat Rust + Axum 0.8 veza-chat-server/Cargo.toml
Stream Rust + Axum 0.8 veza-stream-server/Cargo.toml
DB PostgreSQL 16 docker-compose.prod.yml
Cache Redis 7 idem
Queue RabbitMQ 3 idem

1.2 Organisation du repo

  • apps/web : Frontend React (features/, services/, mocks/)
  • veza-backend-api : API REST (router principal : internal/api/router.go)
  • veza-chat-server : WebSocket chat
  • veza-stream-server : Streaming audio
  • veza-common : Lib Rust partagée
  • packages/ : NPM packages partagés

1.3 Point d'entrée API

Le routeur actif est APIRouter dans internal/api/router.go.
Le fichier api_manager.go est exclu de la compilation (//go:build ignore) — tout ce qu'il contient (achievements, leaderboard, GraphQL, gRPC, etc.) est du code mort.


2. ÉTAT PRÉCIS DE CHAQUE FEATURE

2.1 Auth (register, login, JWT, refresh)

Aspect État Preuve
Backend Complet routes_auth.go : register, login, refresh, logout, /me, 2FA, OAuth, password reset
Frontend Complet authStore, LoginForm, TwoFactorVerify, ProtectedRoute
DB Tables users, sessions, refresh_tokens, email_verification_tokens
Tests auth_handler_test.go, auth_integration_test.go, LoginForm.stories
Sécurité JWT iss/aud/exp, token version, bcrypt cost 12, rate limit login

Verdict : Opérationnel


2.2 2FA (TOTP)

Aspect État Preuve
Backend TwoFactorHandler : setup, verify, disable, status
Frontend TwoFactorSetup.tsx, TwoFactorVerify.tsx
DB Colonnes two_factor_enabled, two_factor_secret, backup_codes
Tests two_factor_handler_test.go

Verdict : Opérationnel


2.3 OAuth (Google, GitHub, Discord)

Aspect État Preuve
Backend OAuthHandler : providers, initiate, callback
Frontend Boutons OAuth, callback handling
DB oauth_accounts, users

Verdict : Opérationnel


2.4 Profils utilisateur

Aspect État Preuve
Backend routes_users.go : GET/PUT/DELETE /users/:id, settings, avatar, follow, block
Frontend ProfileView, ProfilePage, useUser
DB users, user_profiles, user_settings

Verdict : Opérationnel


2.5 Upload de tracks (chunked)

Aspect État Preuve
Backend routes_tracks.go : initiate, chunk, complete, resume, quota
Frontend trackService, upload flow
DB tracks, track_uploads
Sécurité RequireContentCreatorRole, ClamAV optionnel

Verdict : Opérationnel


2.6 CRUD Tracks

Aspect État Preuve
Backend GET/PUT/DELETE tracks, comments, likes, share, versions, play
Frontend trackService, LibraryPage, TrackDetailPage
DB tracks, track_comments, track_likes

Verdict : Opérationnel


2.7 Playlists (CRUD, collaboration)

Aspect État Preuve
Backend routes_playlists.go : CRUD, collaborators, tracks
Frontend playlistService, PlaylistDetailPage
DB playlists, playlist_collaborators, playlist_tracks

Verdict : Opérationnel


2.8 Chat WebSocket

Aspect État Preuve
Backend routes_chat.go : POST /chat/token, GET /chat/stats
Chat Server Rust, compile OK
Frontend ChatView, WebSocket client
DB chat_messages (Chat Server)

Verdict : Opérationnel (Chat Server doit être démarré)


2.9 Dashboard

Aspect État Preuve
Backend routes_core.go:319 : GET /dashboard, DashboardHandler
Frontend dashboardService.getDashboardData() → apiClient.get('/dashboard')
MSW Mock dans handlers-admin.ts (fallback Storybook)

Note : FEATURE_STATUS.md indiquait "MSW" — faux. Le backend expose bien /api/v1/dashboard.

Verdict : Opérationnel


2.10 Recherche

Aspect État Preuve
Backend TrackSearchService, endpoints search
Frontend SearchPage, searchService

Verdict : Opérationnel


2.11 Social (feed, posts, groups, follows, blocks)

Aspect État Preuve
Backend routes_social.go : feed, posts, groups, like, comments, join/leave
Frontend SocialView, useSocialView
DB posts, social_groups, user_follows, user_blocks

Verdict : Opérationnel


2.12 Administration

Aspect État Preuve
Backend routes_core.go : admin group, RequireAdmin
Frontend AdminDashboardPage, adminService
Audit audit/logs, audit/stats

Verdict : Opérationnel


2.13 Marketplace

Aspect État Preuve
Backend routes_marketplace.go : products, cart, orders, licenses
Frontend MarketplacePage, Cart, PurchasesView
Paiement Hyperswitch intégré
DB marketplace_products, orders, licenses

Verdict : Opérationnel


2.14 Webhooks

Aspect État Preuve
Backend routes_webhooks.go : CRUD, regenerate-key, test, stats
Frontend webhookService.ts (apiClient), WebhooksView
DB webhooks

Note : webhookApi.ts supprimé — remplacé par webhookService.ts qui appelle l'API directement.

Verdict : Opérationnel


2.15 Inventory / Gear

Aspect État Preuve
Backend routes_gear.go : GET/POST/PUT/DELETE /inventory/gear
Frontend gearService.ts, GearView, GearPage
DB Migration 076 : gear_items
MSW Mock dans handlers-misc.ts (Storybook)

Note : FEATURE_STATUS.md indiquait "UI + mocks, pas de backend" — faux. Backend complet.

Verdict : Opérationnel


2.16 Live Streaming

Aspect État Preuve
Backend routes_live.go : GET /live/streams, GET /live/streams/:id, POST (auth)
Frontend liveService.ts, LiveView, LivePage
DB Migration 077 : live_streams
MSW Mock dans handlers-misc.ts

Note : Le streaming vidéo réel (WebRTC/HLS) est géré par le Stream Server. Les routes backend gèrent les métadonnées des streams (titre, description, is_live).

Verdict : Opérationnel (métadonnées). Stream vidéo dépend du Stream Server.


2.17 Analytics

Aspect État Preuve
Backend routes_analytics.go : tracks plays, top, dashboard
Frontend AnalyticsView, useAnalyticsView
DB track_plays, analytics events

Verdict : Opérationnel


2.18 Roles

Aspect État Preuve
Backend setupRoleRoutes : assign, revoke
Frontend AssignRoleModal, RolesPage
DB roles, user_roles

Verdict : Opérationnel


2.19 Notifications

Aspect État Preuve
Backend routes_core.go : GET/POST/DELETE /api/v1/notifications, unread-count, read, read-all. Création auto pour follow, like, comment (Phase 2.2)
Frontend NotificationsPage, notificationService
DB Table notifications (migration 047)

Verdict : Opérationnel


2.20 Gamification (achievements, leaderboard)

Aspect État Preuve
Backend Code mort api_manager.go (build ignore) : handleGetAchievements, handleGetLeaderboard
Frontend ⚠️ Composants Storybook : AchievementCard, LeaderboardView, XPBar — pas de route /gamification
MSW ? Handlers gamification possibles dans mocks

Verdict : Fantôme — api_manager désactivé, pas de route active


2.21 Studio (Cloud File Browser)

Aspect État Preuve
Backend Aucune route
Frontend Dossier features/studio/ n'existe pas (supprimé)

Verdict : Supprimé


2.22 Education

Aspect État Preuve
Backend Aucune route
Frontend Dossier features/education/ n'existe pas (supprimé)

Verdict : Supprimé


3. RÉCAPITULATIF

Features opérationnelles (19)

Auth, 2FA, OAuth, Profils, Upload tracks, CRUD tracks, Playlists, Chat, Dashboard, Recherche, Social, Admin, Marketplace, Webhooks, Gear, Live (métadonnées), Analytics, Roles, Notifications.

Features partielles (0)

Aucune.

Features fantômes (1)

Gamification — code dans api_manager (mort), composants Storybook.

Features supprimées (2)

Studio, Education — dossiers supprimés.


4. INCOHÉRENCES DOCUMENTATION / CODE

Document Affirmation Réalité
FEATURE_STATUS.md Dashboard : MSW Backend réel GET /dashboard
FEATURE_STATUS.md Inventory : pas de backend Backend complet /inventory/gear
FEATURE_STATUS.md Live : contenu minimal Backend complet /live/streams
FEATURE_STATUS.md Studio : UI seule Dossier supprimé
FEATURE_STATUS.md Education : MSW Dossier supprimé

Recommandation : Mettre à jour docs/FEATURE_STATUS.md et apps/web/docs/FEATURE_STATUS.md.


5. FICHIERS CRITIQUES PAR FEATURE

Feature Backend Frontend service Route
Auth routes_auth.go authStore /auth/*
Tracks routes_tracks.go trackService /tracks/*
Playlists routes_playlists.go playlistService /playlists/*
Chat routes_chat.go - /chat/*
Dashboard routes_core.go dashboardService /dashboard
Social routes_social.go - /social/*
Marketplace routes_marketplace.go - /marketplace/*
Webhooks routes_webhooks.go webhookService /webhooks/*
Gear routes_gear.go gearService /inventory/gear
Live routes_live.go liveService /live/streams
Analytics routes_analytics.go - /analytics/*
Roles routes_users.go - /users/:id/roles

Rapport généré le 16 février 2026