# 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_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 | Document | Rôle | |----------|------| | [AUDIT_TECHNIQUE_2026-02-22.md](../../AUDIT_TECHNIQUE_2026-02-22.md) | Source des trouvailles | | [PLAN_ACTION_AUDIT.md](../PLAN_ACTION_AUDIT.md) | Tickets détaillés | | [SCOPE_CONTROL.md](../SCOPE_CONTROL.md) | Processus anti-scope-creep | | [FEATURE_STATUS.md](../FEATURE_STATUS.md) | Statut features (à mettre à jour en CLN-05) | | [PROJECT_STATE.md](../PROJECT_STATE.md) | État du projet (à mettre à jour en FIN-02) |