docs: archive V0_404_RELEASE_SCOPE.md (completed)

FIN-04: Moved scope document to docs/archive/ with completion header.
This commit is contained in:
senke 2026-02-22 17:56:59 +01:00
parent 59d92366c9
commit 5cb85773ab

View file

@ -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) |