- Update FEATURE_STATUS.md: HLS Streaming -> Opérationnel (v0.503) - Update PROJECT_STATE.md: v0.503 delivered, next version v0.601 - Add CHANGELOG.md v0.503 entry with all changes - Create SMOKE_TEST_V0503.md validation checklist - Create RETROSPECTIVE_V0503.md - Archive V0_503_RELEASE_SCOPE.md to docs/archive/ - Create V0_601_RELEASE_SCOPE.md placeholder - Update SCOPE_CONTROL.md references to v0.601 - Update .cursorrules scope to v0.601
197 lines
9.2 KiB
Markdown
197 lines
9.2 KiB
Markdown
# État du projet Veza — Février 2026
|
||
|
||
**Document opérationnel** : Où en sommes-nous, quelles sont les prochaines étapes.
|
||
|
||
---
|
||
|
||
## 1. Version actuelle
|
||
|
||
| Élément | Valeur |
|
||
|---------|--------|
|
||
| **Dernier tag** | v0.503 |
|
||
| **Branche courante** | `main` |
|
||
| **Phase** | Phase 5 Streaming & Communication — v0.503 livrée |
|
||
| **Prochaine version** | v0.601 |
|
||
|
||
---
|
||
|
||
## 2. Ce qui est livré
|
||
|
||
### v0.103 (Phase 1 Fondation)
|
||
- Auth : OAuth Spotify (A1), Sessions enrichies (A4)
|
||
- Profils : Bannière (B1), Liens sociaux (B2), Profil privé (B3)
|
||
- ⏸️ 2FA SMS, Passkeys → reportés v0.104
|
||
|
||
### v0.201 (Phase 2 Contenu — Lot E)
|
||
- ✅ Lot E — Métadonnées : BPM, musical_key, lyrics, tags (E1–E4)
|
||
- Migrations : 084 track_lyrics, 085 tracks.tags
|
||
|
||
### v0.202 (Phase 2 Contenu — Lots G, H, F, C, D)
|
||
- Lot G : Recherche avancée (musical_key, tri pertinence, autocomplete, facettes type, historique)
|
||
- Lot H : Analytics créateur (stats, graphiques, taux complétion, export CSV/JSON)
|
||
- Lot F : Seller dashboard (GET /sell/stats, liste produits marketplace)
|
||
- Lot C : Player (crossfade, gapless preload, PiP)
|
||
- Lot D : Autoplay (GET /tracks/recommendations, section « À écouter ensuite »)
|
||
|
||
### v0.203 (Phase 2 Contenu — Lots L, K, D1)
|
||
- Lot L : Social Trending (GET /social/trending, cache Redis, SocialViewTrending connecté)
|
||
- Lot K : Recherche enrichie (pg_trgm fuzzy, AND/OR/NOT/"phrase exacte", tooltip aide)
|
||
- Lot D1 : Queue collaborative (sessions partagées, bouton Partager, polling sync)
|
||
|
||
### v0.301 (Phase 3 Social — Lots P0, C1, P1, S1)
|
||
- Lot P0 : Chat Server typing protocol, auth WebSocket doc
|
||
- Lot C1 : Typing indicators, read receipts, delivered status
|
||
- Lot P1 : Présence (migration 088, GET /users/:id/presence, PresenceBadge)
|
||
- Lot S1 : Social enrichi (feed API, actor/track enrichi, pagination, explore, filtres)
|
||
|
||
### v0.302 (Phase 3 Social — Lots S2, N1, P2)
|
||
- Lot S2 : Groupes avancés (request join, invite, rôles, feed groupes, mes groupes)
|
||
- Lot N1 : Notifications push Web (subscription, envoi sur événement, préférences, badge)
|
||
- Lot P2 : Présence enrichie (rich presence track, mode invisible, PUT /users/me/presence)
|
||
|
||
### v0.303 (Phase 3 Social — Lot C2)
|
||
- Lot C2 : Chat appels WebRTC 1-to-1 (signalisation, CallButton, IncomingCallModal, ActiveCallBar)
|
||
|
||
### v0.401 (Phase 4 Commerce — Lots M1, M2, M3)
|
||
- Lot M1 : Produits & Catalogue (BPM, musical_key, category, previews, images, filtres, rich text)
|
||
- Lot M2 : Licences & Droits (product_licenses, GET /licenses/mine, LicenceCard, LicensesView)
|
||
- Lot M3 : Seller dashboard enrichi (evolution chart, top products, real sales)
|
||
|
||
### v0.402 (Phase 4 Commerce — Lots P1, P2)
|
||
- Lot P1 : Checkout Hyperswitch production-ready (return URL order_id, CheckoutSuccessView/ErrorView, webhook cancelled, CheckoutPaymentForm)
|
||
- Lot P2 : Codes promo (promo_codes, ValidatePromoCode, GET /commerce/promo/:code, PromoCodeModal connecté, OrderSummary dans Cart)
|
||
|
||
### v0.404 (Phase 4bis Stabilisation — post-audit)
|
||
- Sécurité : JWT stream token endpoint, SSRF protection webhooks (HTTPS-only), IDOR fix GetUploadStatus, Hyperswitch webhook secret requis en prod, password reset tokens hashés (SHA-256), docker-compose.hybrid supprimé, secrets CI → GitHub Secrets
|
||
- Infra : Rate limiting Redis, alerting Prometheus, PostgreSQL 16 aligné, compose staging complet, CodeQL SAST, Rust CI avec clippy
|
||
- Qualité : 40 fmt.Printf → zap, ~45 any éliminés frontend, TypeScript 5.9.3 unifié, code mort supprimé (~1600 LOC), gorilla/websocket → coder/websocket
|
||
|
||
### v0.501 (Phase 5 Streaming & Cloud — Lots S1, C1, G1)
|
||
- Lot S1 — HLS production : transcoding adaptatif 3 tiers (128k, 256k, 320k), ABR hls.js, cache segments CDN, monitoring Prometheus (4 compteurs), waveform generation (FFmpeg + audiowaveform), WaveformDisplay SVG interactif, useHLSPlayer hook
|
||
- Lot C1 — Cloud Storage MVP : gestion dossiers/fichiers, upload drag-and-drop avec quota 5GB, prévisualisation audio inline, publication cloud → track
|
||
- Lot G1 — Gear avancé : profils publics (is_public toggle, GearShowcase), galerie images multi-photo avec carousel, recherche ILIKE avec SearchBar
|
||
- Infra : MinIO S3-compatible (dev, staging, prod), 6 migrations (103–108)
|
||
- Sécurité : Trivy container scanning CI
|
||
|
||
### v0.503 (Phase 5 — HLS E2E + Chat Hardening + Cleanup)
|
||
- SS1 : HLS Streaming E2E (backend serving routes, frontend ABR player)
|
||
- CH1 : Redis rate limiter (sliding window + in-memory fallback), présence persistante Redis (2min TTL), PostgreSQL full-text search (tsvector + GIN index)
|
||
- CL1 : veza-chat-server directory supprimé, références CI/CD/config/scripts nettoyées
|
||
- QA1 : 23 Go tests passing, documentation
|
||
|
||
### v0.502 (Phase 5 Communication — Chat Server Rewrite)
|
||
- Chat Server Rust → Go : WebSocket intégré dans veza-backend-api (`/api/v1/ws`)
|
||
- Hub/Client avec goroutines readPump/writePump, 30s ping keepalive
|
||
- 18 types messages entrants, 20 types sortants (protocole identique au Rust)
|
||
- Handlers : SendMessage, EditMessage, DeleteMessage, JoinConversation, LeaveConversation, FetchHistory, SearchMessages, SyncMessages, Typing, MarkAsRead, Delivered, AddReaction, RemoveReaction, WebRTC signaling (5 types)
|
||
- PermissionService (room_members), RateLimiter (per-user per-action)
|
||
- ChatPubSubService (Redis PubSub + fallback in-memory)
|
||
- 4 nouvelles migrations (109–112), 3 modèles GORM, 4 repositories enrichis
|
||
- Docker : suppression chat-server Rust de docker-compose.yml, staging.yml, prod.yml
|
||
- Frontend : dérivation WS_URL depuis API_URL, types TS mis à jour, MSW mis à jour
|
||
- 15 tests unitaires Go, E2E tests intégration, CHAT_FEATURE_PARITY.md (25/25 OK)
|
||
|
||
---
|
||
|
||
## 3. Prochaines étapes
|
||
|
||
### v0.503 (livrée 2026-02-22)
|
||
- SS1 : HLS Streaming E2E (backend routes + frontend ABR player)
|
||
- CH1 : Chat hardening (rate limiter Redis, présence persistante Redis, FTS PostgreSQL)
|
||
- CL1 : Cleanup veza-chat-server, nettoyage CI/CD/config
|
||
- QA1 : Tests, documentation
|
||
- Référence : [V0_503_RELEASE_SCOPE.md](V0_503_RELEASE_SCOPE.md)
|
||
|
||
### Prochaine version (v0.601)
|
||
- À définir
|
||
|
||
---
|
||
|
||
## 4. Sécurité
|
||
|
||
| Métrique | Avant v0.404 | Après v0.404 |
|
||
|----------|--------------|--------------|
|
||
| **Score sécurité** | 5/10 | 7/10 |
|
||
|
||
**Améliorations v0.404 :**
|
||
- JWT stream token endpoint (`POST /auth/stream-token`) pour auth HLS/WebSocket
|
||
- SSRF protection sur webhooks (HTTPS-only, whitelist schéma)
|
||
- IDOR corrigé dans GetUploadStatus (ownership check)
|
||
- Hyperswitch webhook secret requis en production (HMAC)
|
||
- Password reset tokens hashés (SHA-256)
|
||
- Docker hybrid compose supprimé
|
||
- Credentials CI migrés vers GitHub Secrets
|
||
|
||
---
|
||
|
||
## 5. Infrastructure
|
||
|
||
| Élément | État v0.404 |
|
||
|---------|-------------|
|
||
| Rate limiting Redis | ✅ Disponible |
|
||
| Alerting Prometheus | ✅ Règles ajoutées |
|
||
| PostgreSQL | ✅ Aligné v16 |
|
||
| Compose staging | ✅ Complet (chat, stream, reverse proxy) |
|
||
| CodeQL SAST | ✅ Ajouté |
|
||
| Rust CI (clippy) | ✅ Ajouté |
|
||
|
||
---
|
||
|
||
## 6. Qualité du code
|
||
|
||
| Métrique | v0.404 |
|
||
|----------|--------|
|
||
| fmt.Printf → zap | 40 remplacements |
|
||
| any TypeScript éliminés | ~45 |
|
||
| TypeScript unifié | 5.9.3 |
|
||
| Code mort supprimé | ~1600 LOC |
|
||
| gorilla/websocket | Remplacé par coder/websocket |
|
||
|
||
---
|
||
|
||
## 7. Références rapides
|
||
|
||
| Document | Usage |
|
||
|----------|-------|
|
||
| [PLAN_V0_301_FINALISATION.md](PLAN_V0_301_FINALISATION.md) | Plan de finalisation v0.301 |
|
||
| [V0_401_RELEASE_SCOPE.md](V0_401_RELEASE_SCOPE.md) | Scope v0.401 (Phase 4 Commerce) |
|
||
| [V0_402_RELEASE_SCOPE.md](V0_402_RELEASE_SCOPE.md) | Scope v0.402 (checkout & codes promo) |
|
||
| [V0_303_RELEASE_SCOPE.md](V0_303_RELEASE_SCOPE.md) | Scope v0.303 (Chat appels WebRTC 1-to-1) |
|
||
| [PLAN_V0_401_IMPLEMENTATION.md](PLAN_V0_401_IMPLEMENTATION.md) | Plan d'implémentation v0.401 |
|
||
| [PLAN_V0_402_IMPLEMENTATION.md](PLAN_V0_402_IMPLEMENTATION.md) | Plan d'implémentation v0.402 |
|
||
| [V0_404_RELEASE_SCOPE.md](V0_404_RELEASE_SCOPE.md) | Scope v0.404 (stabilisation post-audit) |
|
||
| [V0_501_RELEASE_SCOPE.md](archive/V0_501_RELEASE_SCOPE.md) | Scope v0.501 (Streaming & Cloud, archivé) |
|
||
| [V0_502_RELEASE_SCOPE.md](archive/V0_502_RELEASE_SCOPE.md) | Scope v0.502 (Chat Server Rewrite, archivé) |
|
||
| [V0_503_RELEASE_SCOPE.md](V0_503_RELEASE_SCOPE.md) | Scope v0.503 (placeholder) |
|
||
| [CHAT_FEATURE_PARITY.md](CHAT_FEATURE_PARITY.md) | Feature parity Rust vs Go (25/25 OK) |
|
||
| [V0_301_RELEASE_SCOPE.md](V0_301_RELEASE_SCOPE.md) | Scope détaillé v0.301 (Phase 3 Social) |
|
||
| [V0_203_RELEASE_SCOPE.md](V0_203_RELEASE_SCOPE.md) | Scope v0.203 (archivé) |
|
||
| [SCOPE_CONTROL.md](SCOPE_CONTROL.md) | Anti-scope-creep, workflow |
|
||
| [FEATURE_STATUS.md](FEATURE_STATUS.md) | Statut des features par domaine |
|
||
| [CHANGELOG.md](../CHANGELOG.md) | Historique des versions |
|
||
|
||
---
|
||
|
||
## 8. Stack technique
|
||
|
||
| Composant | État |
|
||
|-----------|------|
|
||
| Backend Go | ✅ Opérationnel |
|
||
| Frontend React (Vite) | ✅ Opérationnel |
|
||
| Chat Go (intégré backend) | ✅ Opérationnel (v0.502) |
|
||
| Stream Server Rust | ✅ Compile — HLS en intégration (v0.503) |
|
||
| PostgreSQL | ✅ |
|
||
| Redis | ✅ |
|
||
|
||
---
|
||
|
||
## 9. Indicateurs
|
||
|
||
| Métrique | Valeur |
|
||
|----------|--------|
|
||
| Features livrées (cumul) | ~353 / 600 |
|
||
| Features E2E fonctionnelles | 22 |
|
||
| Score maturité produit | 5/10 |
|
||
| Module Streaming | 55% |
|
||
| Module Cloud | 30% |
|
||
| Module Gear | 60% |
|