veza/docs/V0_802_RELEASE_SCOPE.md
senke 963a327a0a docs: complete roadmap documentation v0.703 to v0.903 (v1.0 target)
Add Release Scope, Implementation Plan, and Smoke Test for 7 versions:
- v0.703: Go Live & Streaming Complet (Phase 7 Finale)
- v0.801: UX/UI Polish, Accessibilite & PWA (Phase 8)
- v0.802: Cloud Complet, Fichiers & Gear Avance (Phase 8)
- v0.803: Securite, Compliance & Outillage Dev (Phase 8)
- v0.901: Marketplace Complet & Analytics Avances (Phase 9)
- v0.902: Social Complet, Chat & Notifications (Phase 9)
- v0.903: Stabilisation v1.0 & Launch Readiness (Phase 9)

21 documents total (3 per version), covering all remaining features
needed to reach v1.0 from v0.702.
2026-02-24 01:32:04 +01:00

8.4 KiB

V0.802 Release Scope — Cloud Complet, Fichiers & Gear Avancé

Statut : Planifié Phase : 8 (Polish & Scale — Lot 2) Prérequis : v0.801 (taguée) Date cible : TBD Estimation : ~3 sprints (15 jours ouvrés) Précédente : v0.801


1. Objectif

Deuxième version de la Phase 8. Complète les modules Cloud Storage (versioning, restauration, partage, backup, export GDPR), Gestion de Fichiers (batch upload, pause/resume, tags auto-suggest, formats supplémentaires), et Gear Avancé (garantie, factures, historique SAV). Ces fonctionnalités enrichissent les outils de gestion de contenu et de matériel pour les musiciens.


2. État actuel (post-v0.801)

Composant État Détail
Cloud Storage MVP Livré v0.501 Upload, dossiers, quota 5GB, prévisualisation audio, publication cloud→track
Versioning fichiers Absent Pas de versions historiques des fichiers
Restauration versions Absent Pas de rollback
Partage fichiers Absent Pas de liens de partage avec permissions
Backup automatique Absent Pas de backup planifié
Export données GDPR Absent Pas d'export complet des données utilisateur
Upload fichier unique Livré Upload avec progress bar
Upload batch Absent Un fichier à la fois uniquement
Pause/resume upload Absent Upload atomique, pas de reprise
Tags auto-suggest ⚠️ Partiel Tags manuels, pas de suggestions
Formats additionnels ⚠️ Partiel MP3, WAV, FLAC. Manque OGG, AIFF, M4A
Gear inventaire Livré v0.501 CRUD, profils publics, galerie images, recherche
Garantie tracking Absent Pas de date de garantie ni notification
Upload facture Absent Pas de stockage de facture/PDF sur le gear
Historique SAV Absent Pas de notes de réparation/coût

3. Lots

Lot CL1 — Cloud Storage Avancé

# Tâche Fichiers impactés Effort
CL1-01 Migration 119_cloud_file_versions.sql — table cloud_file_versions (file_id, version, storage_key, size, created_at) Migrations S
CL1-02 Service CreateVersion — sauvegarder version précédente avant écrasement, limit 10 versions par fichier internal/services/cloud_service.go M
CL1-03 GET /cloud/files/:id/versions — lister les versions d'un fichier internal/handlers/cloud_handler.go S
CL1-04 POST /cloud/files/:id/restore/:version — restaurer une version précédente internal/handlers/cloud_handler.go M
CL1-05 Partage fichiers — POST /cloud/files/:id/share (génère lien unique, permissions read/write, expiration) internal/handlers/cloud_handler.go M
CL1-06 GET /cloud/shared/:token — accéder à un fichier partagé (public, sans auth si token valide) internal/handlers/cloud_handler.go, routes M
CL1-07 Backup auto — cron job background qui copie les fichiers cloud vers un bucket S3 dédié, configurable interval internal/services/cloud_backup.go (nouveau) L
CL1-08 POST /users/me/export — export GDPR, génère un ZIP avec profil, tracks, playlists, messages, gear, cloud files internal/handlers/user_handler.go L
CL1-09 Frontend CloudView — onglet versions, bouton restore, bouton share, lien copié apps/web/src/features/cloud/ M
CL1-10 MSW handlers cloud — versions, restore, share apps/web/src/mocks/handlers-cloud.ts S
CL1-11 Tests — versioning CRUD, restore, share token, export Tests M

Lot FM1 — Gestion de Fichiers Avancée

# Tâche Fichiers impactés Effort
FM1-01 Batch upload — multi-file input, parallel upload queue (max 3 concurrent), individual progress bars apps/web/src/components/upload/ L
FM1-02 Pause/resume upload — chunked upload (5MB chunks), resume from last successful chunk, backend support internal/handlers/upload_handler.go, frontend L
FM1-03 Tags auto-suggest — GET /tags/suggest?q=... basé sur les tags existants (top 10 par fréquence) internal/handlers/, frontend M
FM1-04 Formats additionnels — validation MIME pour OGG, AIFF, M4A/AAC, transcoding vers MP3 standard internal/services/, config M
FM1-05 Tests — batch upload, chunked resume, tag suggest, format validation Tests M

Lot GR1 — Gear Avancé

# Tâche Fichiers impactés Effort
GR1-01 Migration 120_gear_warranty.sql — ajout colonnes warranty_start, warranty_end, warranty_notes sur gear Migrations S
GR1-02 Migration 121_gear_documents.sql — table gear_documents (gear_id, type, storage_key, filename, uploaded_at) Migrations S
GR1-03 Migration 122_gear_repairs.sql — table gear_repairs (gear_id, date, description, cost, provider) Migrations S
GR1-04 Modèle et service — GearDocument, GearRepair, méthodes CRUD internal/models/gear.go, internal/services/gear_service.go M
GR1-05 Handlers — POST /gear/:id/documents (upload facture/PDF), GET /gear/:id/documents, POST /gear/:id/repairs, GET /gear/:id/repairs internal/handlers/gear_handler.go M
GR1-06 Notification garantie — cron background qui envoie notification 30 jours avant expiration warranty internal/services/gear_warranty_notifier.go (nouveau) M
GR1-07 Frontend — onglets Documents et Réparations dans la fiche gear, upload PDF, formulaire réparation, badge "Warranty expires soon" apps/web/src/features/inventory/ M
GR1-08 MSW handlers gear — documents, repairs apps/web/src/mocks/handlers-gear.ts S
GR1-09 Tests — warranty dates, document upload, repair CRUD, notification trigger Tests M

Lot QA1 — Tests & Release

# Tâche Fichiers impactés Effort
QA1-01 Smoke test v0.802 docs/SMOKE_TEST_V0802.md S
QA1-02 Mise à jour PROJECT_STATE, FEATURE_STATUS, CHANGELOG docs/ S
QA1-03 Rétrospective, archivage, placeholder v0.803, tag docs/, Git S

4. Hors scope v0.802

Élément Version cible
OpenAPI/Swagger v0.803
Audit logs v0.803
Admin modération v0.803
Wishlist marketplace v0.901
Upload depuis cloud externe (Dropbox, Drive) v2.0
Scan antivirus v2.0
Watermarking automatique v2.0
Compression images automatique v2.0
Backup incrémental v2.0
ZFS snapshots v2.0
Assurance matériel v2.0

5. Critères d'acceptation

  • Versioning : upload écrase → ancienne version sauvegardée, 10 max par fichier
  • Restore : version précédente restaurée, nouvelle version créée
  • Share : lien unique avec token, permissions, expiration optionnelle
  • Backup auto : cron copie vers bucket S3 dédié (configurable)
  • Export GDPR : ZIP téléchargeable contenant toutes les données utilisateur
  • Batch upload : multi-fichiers, progress individuel, max 3 concurrents
  • Pause/resume : chunks 5MB, reprise depuis le dernier chunk
  • Tags auto-suggest : top 10 par fréquence, recherche prefix
  • Formats : OGG, AIFF, M4A acceptés et transcodés
  • Gear warranty : dates, notification 30j avant expiration
  • Gear documents : upload facture/PDF, liste documents
  • Gear repairs : CRUD historique réparations avec coût
  • Tag v0.802 créé

6. Risques

Risque Mitigation
Versioning storage explose Limit 10 versions, cleanup cron des versions > 90 jours
Chunked upload complexité Library tus.io ou implémentation simplifiée avec Content-Range
Export GDPR lent (gros utilisateurs) Background job, notification quand prêt, lien temporaire
Backup auto coût S3 Configurable, désactivé par défaut en dev
Warranty notifications spam Max 1 notification par gear par période de 30j

7. Références

  • V0_801_RELEASE_SCOPE.md
  • SCOPE_CONTROL.md
  • veza-backend-api/internal/services/cloud_service.go
  • veza-backend-api/internal/handlers/cloud_handler.go
  • veza-backend-api/internal/handlers/gear_handler.go
  • apps/web/src/features/cloud/
  • apps/web/src/features/inventory/