164 lines
7.8 KiB
Markdown
164 lines
7.8 KiB
Markdown
# 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) |
|