diff --git a/docs/archive/V0_404_RELEASE_SCOPE.md b/docs/archive/V0_404_RELEASE_SCOPE.md new file mode 100644 index 000000000..5a7c34c30 --- /dev/null +++ b/docs/archive/V0_404_RELEASE_SCOPE.md @@ -0,0 +1,164 @@ +# 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) |