ARCHIVED — Completed 2026-02-22
Ce document a été archivé à l'issue de la v0.404. Référence active : V0_501_RELEASE_SCOPE.md
V0_404_RELEASE_SCOPE.md — Stabilisation post-audit
Phase : 4bis — Stabilisation
Version précédente : v0.403 (Phase 4 Commerce — Payout, reviews, factures, remboursements)
Version suivante : v0.501 (Phase 5 — Streaming & Cloud)
Durée estimée : 7 semaines (5 sprints)
Objectif : Résoudre les blocages critiques identifiés par l'audit technique du 2026-02-22 et rendre le produit déployable en production avec confiance.
1. Contexte
L'audit technique (AUDIT_TECHNIQUE_2026-02-22.md) a identifié :
- 5 blocages critiques empêchant tout déploiement production
- 19 vulnérabilités (3 critiques, 5 élevées, 7 moyennes, 4 faibles)
- Un écart de 78% entre features déclarées et features E2E fonctionnelles
- Un score d'opérabilité de 3/10 et de maturité produit de 3/10
Verdict audit : NO-GO production en l'état. Conditionnel à 4-6 semaines de stabilisation.
La v0.404 est une version de stabilisation pure. Aucune nouvelle feature. L'objectif est de passer de "NO-GO" à "GO conditionnel".
2. Périmètre IN SCOPE
2.1 Sécurité critique (Sprint 1 — jours 1-5)
| ID |
Action |
Réf. audit |
| SEC-01 |
Fixer pipeline CD (secrets.* → vars.*, needs: ci) |
Risque #1 |
| SEC-02 |
Auth Redis production (--requirepass) |
Risque #3 |
| SEC-03 |
Endpoint POST /auth/stream-token pour auth HLS/WebSocket |
Risque #2 |
| SEC-04 |
Supprimer ou sécuriser docker-compose.hybrid.yml |
VEZA-SEC-012 |
| SEC-05 |
JWT_SECRET pour stream-server en prod compose |
Risque associé |
| SEC-06 |
Fix IDOR GetUploadStatus (ownership check) |
VEZA-SEC-007 |
| SEC-07 |
Validation SSRF webhooks (whitelist schéma + block IPs privées) |
VEZA-SEC-009 |
| SEC-08 |
Vérification signature HMAC webhook Hyperswitch |
VEZA-SEC-010 |
| SEC-09 |
Unifier Go 1.24 (go.mod, CI, Dockerfile.production) |
Incohérence stack |
| SEC-10 |
Migrer secrets CI vers GitHub Secrets |
VEZA-SEC-013 |
2.2 Infra & CI/CD (Sprint 2 — jours 6-12)
| ID |
Action |
Réf. audit |
| INF-01 |
Rate limiter Redis (remplacer in-memory) |
Risque #4 |
| INF-02 |
Aligner PostgreSQL 16 dans tous les composes |
Incohérence stack |
| INF-03 |
Frontend CI : lint + typecheck + build |
Opérabilité |
| INF-04 |
Backend CI : go vet + gofmt |
Opérabilité |
| INF-05 |
Rust CI : clippy -D warnings |
Opérabilité |
| INF-06 |
SAST (CodeQL ou Semgrep) |
Sécurité préventive |
| INF-07 |
Compose staging complet (chat, stream, reverse proxy) |
Opérabilité |
| INF-08 |
Alerting Prometheus (service down, error rate, latence) |
Monitoring |
| INF-09 |
Health checks Docker dans composes prod/staging |
Opérabilité |
| INF-10 |
Hash des password reset tokens |
Sécurité |
2.3 Nettoyage & Qualité (Sprint 3 — jours 13-20)
| ID |
Action |
Réf. audit |
| CLN-01 |
Supprimer code mort (~13K LOC) |
Dette critique |
| CLN-02 |
Supprimer/corriger mocks commerceService |
Intégrité données |
| CLN-03 |
Remplacer fmt.Printf par zap (15+ occurrences) |
Logging |
| CLN-04 |
Réduire any TypeScript (90+ → <10) |
Type safety |
| CLN-05 |
Aligner FEATURE_STATUS.md avec la réalité du code |
Documentation |
| CLN-06 |
Unifier versions TypeScript |
Cohérence stack |
| CLN-07 |
Centraliser protobuf (dédupliquer chat/stream) |
Architecture |
| CLN-08 |
Rédiger ADR-001 (décision Go + Rust) |
Documentation |
2.4 Intégration & Tests (Sprint 4 — jours 21-30)
| ID |
Action |
Réf. audit |
| INT-01 |
ADR-002 : décision chat server Rust (intégrer vs remplacer) |
Risque #5 |
| INT-02 |
Intégrer stream server Rust (gRPC, HLS activé, flux E2E) |
Risque #5 |
| INT-03 |
Tests d'intégration cross-service (5+ scénarios) |
Testabilité |
| INT-04 |
Corriger ou supprimer tests désactivés backend |
Dette tests |
| INT-05 |
Tests unitaires Rust (20+ par service) |
Couverture |
| INT-06 |
Remplacer gorilla/websocket (archivé déc. 2024) |
Dépendance obsolète |
2.5 Finalisation (Sprint 5 — jours 31-35)
| ID |
Action |
| FIN-01 |
Smoke test staging (14 features E2E) |
| FIN-02 |
Mise à jour PROJECT_STATE.md |
| FIN-03 |
Mise à jour SCOPE_CONTROL.md → réf. v0.501 |
| FIN-04 |
Archiver V0_404_RELEASE_SCOPE.md |
| FIN-05 |
Tag v0.404 + CHANGELOG |
| FIN-06 |
Rétrospective : scores pré/post, reste à traiter |
3. Périmètre HORS SCOPE
| Élément |
Raison |
Version cible |
| Nouvelles features |
Stabilisation uniquement |
v0.501+ |
| Nouvelles routes API |
Sauf POST /auth/stream-token (sécurité) |
v0.501+ |
| Nouvelles pages frontend |
— |
v0.501+ |
| Nouvelles dépendances |
Sauf remplacement sécurité (gorilla/websocket) |
v0.501+ |
| Migration React 19 |
Évaluation uniquement, pas de migration |
v0.602 |
| Consolidation migrations (squash) |
Trop risqué pendant stabilisation |
v0.501 |
| Découpage fichiers > 1000 LOC |
Refactoring structurel, pas critique |
v0.501 |
| Hyperswitch mode live |
Nécessite payout fonctionnel |
v0.501 |
| IaC (Terraform/Pulumi) |
Infrastructure à long terme |
v0.801 |
4. Critères de succès v0.404
| Critère |
Seuil |
Méthode de vérification |
| Vulnérabilités critiques |
0 restante |
Checklist SEC-01 à SEC-10 |
| Vulnérabilités élevées |
0 restante |
Checklist audit |
| Pipeline CD |
Fonctionnel |
Merge sur main → déploiement exécuté |
| Features E2E fonctionnelles |
≥ 14 (maintien, pas régression) |
Smoke test staging |
| Score opérabilité (estimé) |
≥ 6/10 (vs 3/10) |
CI complète, monitoring, alertes, staging |
| Score sécurité (estimé) |
≥ 7/10 (vs 5/10) |
Vulnérabilités critiques et élevées à 0 |
| Tests intégration |
≥ 5 scénarios cross-service |
CI verte |
| Code mort supprimé |
≥ 13K LOC |
Diff avant/après |
| Documentation alignée |
FEATURE_STATUS = réalité code |
Revue manuelle |
5. Risques v0.404
| Risque |
Probabilité |
Impact |
Mitigation |
| Intégration stream server plus complexe que prévu |
Élevée |
Sprint 4 déborde |
Limiter à "gRPC connecté + 1 flux E2E" ; reporter le polish à v0.501 |
Remplacement gorilla/websocket casse le chat Go |
Moyenne |
Régression chat |
Écrire les tests avant la migration. Feature flag pour rollback. |
| Décision chat Rust = réécriture → déborde v0.404 |
Élevée |
Scope creep |
ADR-002 documente la décision. Si réécriture : planifier en v0.501, pas en v0.404. |
| Squash de code mort supprime du code utilisé |
Faible |
Régression |
Vérifier chaque suppression avec grep -r. Faire des PRs atomiques. |
6. Plan de communication
| Quand |
Quoi |
Où |
| Début v0.404 |
Annonce : "phase stabilisation, 0 features, focus sécurité" |
CHANGELOG, commit message |
| Fin Sprint 1 |
v0.404-alpha1 — sécurité critique résolue |
Tag Git |
| Fin Sprint 2 |
v0.404-alpha2 — infra fiable |
Tag Git |
| Fin Sprint 3 |
v0.404-beta — code nettoyé |
Tag Git |
| Fin Sprint 4 |
v0.404-rc1 — intégration + tests |
Tag Git |
| Fin Sprint 5 |
v0.404 — stabilisation terminée |
Tag Git, CHANGELOG, PROJECT_STATE |
7. Référence