veza/docs/PROJECT_STATE.md

159 lines
6.4 KiB
Markdown
Raw Normal View History

# É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.404 |
2026-02-22 02:46:10 +00:00
| **Branche courante** | `main` |
| **Phase** | Phase 4bis Stabilisation — v0.404 livrée |
| **Prochaine version** | v0.501 |
---
## 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 (E1E4)
- 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)
2026-02-22 02:46:10 +00:00
### 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
---
## 3. Prochaines étapes
### Prochaine version (v0.501)
- **Phase 5 — Streaming & Cloud** : HLS production-ready, Cloud storage MVP, Gear avancé
- Référence : [V0_501_RELEASE_SCOPE.md](V0_501_RELEASE_SCOPE.md)
---
## 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) |
2026-02-22 13:26:28 +00:00
| [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 |
2026-02-22 13:26:28 +00:00
| [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](V0_501_RELEASE_SCOPE.md) | Scope v0.501 (Streaming & Cloud) |
| [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 Server Rust | ✅ Opérationnel (compile) |
| Stream Server Rust | ⚠️ Imports manquants |
| PostgreSQL | ✅ |
| Redis | ✅ |
---
## 9. Indicateurs
| Métrique | Valeur |
|----------|--------|
| Features livrées (cumul) | ~345 / 600 |