veza/docs/archive/V0_602_RELEASE_SCOPE.md
senke 83ed4f315b
Some checks failed
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
chore(release): v0.602 — Payout, Dette Technique & Tests E2E
- Stripe Connect: onboarding, balance, SellerDashboardView
- Interceptors: auth.ts, error.ts extracted, facade
- Grafana: dashboards enriched (p50, top endpoints, 4xx, WS, commerce)
- E2E commerce: product->order->review->invoice
- SMOKE_TEST_V0602, RETROSPECTIVE_V0602, PAYOUT_MANUAL
- Archive V0_602 scope, V0_603 placeholder, SCOPE_CONTROL v0.603
- Fix sanitizer regex (Go no backreferences)
- Marketplace test schema: product_licenses, product_images, orders, licenses
2026-02-23 22:32:01 +01:00

6.9 KiB

V0.602 Release Scope — Payout, Dette Technique & Tests E2E

Statut : Livré (taguée v0.602) Phase : 6+ Prérequis : v0.601 (taguée) Date cible : TBD Estimation : ~5 sprints (25 jours ouvrés) Précédente : v0.601


1. Objectif

Finaliser la boucle commerce avec le payout vendeurs (Stripe Connect), réduire la dette technique restante (split interceptors auth/error), consolider les dashboards Grafana avec métriques réelles, et valider le flux commerce par des tests E2E. Optionnel : migration React 19 si faisable sans risque.


2. État actuel (post-v0.601)

Composant État Détail
Payout Non implémenté Stripe Connect reporté depuis v0.601
Interceptors ⚠️ Partiel auth.ts et error.ts non extraits ; error handler ~600 LOC dans interceptors.ts
Grafana ⚠️ Placeholders Dashboards créés mais métriques réelles à connecter
Tests E2E commerce Absent Pas de flow upload → achat → review → facture → remboursement
React 18.x Migration React 19 optionnelle

3. Lots

Lot P3 — Payout vendeurs (Stripe Connect)

Objectif : Permettre aux vendeurs de recevoir les revenus des ventes.

# Tâche Fichiers impactés Effort
P3-01 Config Stripe Connect — client_id, secret, webhook secret internal/config/config.go, .env.example S
P3-02 Migration seller_stripe_accounts — lien user ↔ Stripe account migrations/114_seller_stripe_accounts.sql S
P3-03 POST /sell/connect/onboard — redirect Stripe Express onboarding internal/handlers/sell_handler.go, routes M
P3-04 GET /sell/balance — balance disponible, en attente (depuis Stripe ou table) internal/services/sell_service.go, handlers M
P3-05 Transfert après vente — webhook ou post-order : transfer vers compte Connect internal/services/hyperswitch/, webhooks M
P3-06 SellerDashboardView — carte balance, bouton « Configurer les paiements » apps/web/src/features/seller/, marketplaceService.ts M
P3-07 MSW + Stories — handlers balance, onboarding apps/web/src/mocks/, stories S

Lot CLN2 — Dette technique (split interceptors)

Objectif : Finaliser le découpage des interceptors (auth, error) identifié en rétro v0.601.

# Tâche Fichiers impactés Effort
CLN2-01 Extraire auth interceptor — token refresh, queue, processQueue interceptors/auth.ts, interceptors.ts M
CLN2-02 Extraire error interceptor — gestion erreurs, retry, toast, parseApiError interceptors/error.ts, interceptors.ts M
CLN2-03 Réduire interceptors.ts à facade — composition des 5 modules interceptors.ts, interceptors/index.ts S
CLN2-04 Validation — chaque fichier < 400 LOC, tests passent S

Lot INF2 — Dashboards Grafana (métriques réelles)

Objectif : Connecter les dashboards aux métriques Prometheus réelles du backend.

# Tâche Fichiers impactés Effort
INF2-01 API dashboard — panels request_rate, latency p50/p95, error_rate, top endpoints config/grafana/dashboards/api-overview.json M
INF2-02 Chat dashboard — connexions WS actives, messages/s, présence config/grafana/dashboards/chat-overview.json S
INF2-03 Commerce dashboard — orders/min, checkout success, refunds, promo usage config/grafana/dashboards/commerce-overview.json S
INF2-04 Vérifier exposition métriques backend — middleware Prometheus, labels veza-backend-api/internal/middleware/ S

Lot QA2 — Tests E2E commerce

Objectif : Valider le flux commerce complet de bout en bout.

# Tâche Fichiers impactés Effort
QA2-01 E2E commerce — upload produit → achat → review → facture → remboursement (optionnel) veza-backend-api/internal/integration/ ou Playwright M
QA2-02 Smoke test v0.602 — checklist 30+ features E2E incluant payout docs/SMOKE_TEST_V0602.md S
QA2-03 Mise à jour PROJECT_STATE, FEATURE_STATUS, CHANGELOG docs/ S
QA2-04 Archiver V0_602_RELEASE_SCOPE, placeholder V0_603, rétrospective, tag docs/archive/, Git S

Lot OPT — Optionnel (si temps disponible)

# Tâche Fichiers impactés Effort
OPT-01 Migration React 19 — upgrade, vérifier compatibilité apps/web/package.json, tests M

4. Hors scope v0.602

Élément Version cible
Go Live (streaming vidéo) v0.703
2FA SMS / Passkeys v0.104
IaC (Terraform/Pulumi) v0.801
Payout manuel (sans Stripe Connect) v0.603 si P3 trop complexe

5. Fichiers impactés (récapitulatif)

Backend Go (nouveau)

Fichier Action
migrations/114_seller_stripe_accounts.sql Nouveau — lien vendeur ↔ Stripe
internal/services/stripe_connect_service.go Nouveau — onboarding, balance, transferts

Backend Go (modifier)

Fichier Action
internal/config/config.go Stripe Connect config
internal/handlers/sell_handler.go Onboard, balance
internal/services/hyperswitch/ Transfer après vente
internal/middleware/ Métriques Prometheus (si manquantes)

Frontend (nouveau/modifier)

Fichier Action
apps/web/src/services/api/interceptors/auth.ts Nouveau — extrait
apps/web/src/services/api/interceptors/error.ts Nouveau — extrait
apps/web/src/services/api/interceptors.ts Réduire à facade
apps/web/src/features/seller/SellerDashboardView.tsx Balance, bouton onboarding
apps/web/src/mocks/ Handlers payout

Infra

Fichier Action
config/grafana/dashboards/*.json Panels métriques réelles

6. Critères d'acceptation globaux

  • Payout : vendeur peut s'onboarder Stripe Connect, voir sa balance
  • Transfert après vente documenté (PAYOUT_MANUAL.md pour v0.603)
  • interceptors : auth.ts et error.ts extraits, chaque fichier < 400 LOC
  • Dashboards Grafana alimentés par métriques réelles
  • Tests E2E commerce : flow product → order → review → invoice
  • Smoke test v0.602 documenté
  • Tag v0.602 créé

7. Risques

Risque Mitigation
Stripe Connect complexité / quotas MVP = balance affichée sans transfert auto ; documenter limites
Hyperswitch vs Stripe Connect Vérifier compatibilité ; Hyperswitch peut avoir Connect-like
Métriques backend non exposées Audit middleware Prometheus, ajouter si manquant
React 19 breaking changes Lot optionnel ; reporter si régression