Backend Go: - Remplacement complet des anciennes migrations par la base V1 alignée sur ORIGIN. - Durcissement global du parsing JSON (BindAndValidateJSON + RespondWithAppError). - Sécurisation de config.go, CORS, statuts de santé et monitoring. - Implémentation des transactions P0 (RBAC, duplication de playlists, social toggles). - Ajout d’un job worker structuré (emails, analytics, thumbnails) + tests associés. - Nouvelle doc backend : AUDIT_CONFIG, BACKEND_CONFIG, AUTH_PASSWORD_RESET, JOB_WORKER_*. Chat server (Rust): - Refonte du pipeline JWT + sécurité, audit et rate limiting avancé. - Implémentation complète du cycle de message (read receipts, delivered, edit/delete, typing). - Nettoyage des panics, gestion d’erreurs robuste, logs structurés. - Migrations chat alignées sur le schéma UUID et nouvelles features. Stream server (Rust): - Refonte du moteur de streaming (encoding pipeline + HLS) et des modules core. - Transactions P0 pour les jobs et segments, garanties d’atomicité. - Documentation détaillée de la pipeline (AUDIT_STREAM_*, DESIGN_STREAM_PIPELINE, TRANSACTIONS_P0_IMPLEMENTATION). Documentation & audits: - TRIAGE.md et AUDIT_STABILITY.md à jour avec l’état réel des 3 services. - Cartographie complète des migrations et des transactions (DB_MIGRATIONS_*, DB_TRANSACTION_PLAN, AUDIT_DB_TRANSACTIONS, TRANSACTION_TESTS_PHASE3). - Scripts de reset et de cleanup pour la lab DB et la V1. Ce commit fige l’ensemble du travail de stabilisation P0 (UUID, backend, chat et stream) avant les phases suivantes (Coherence Guardian, WS hardening, etc.).
7.3 KiB
7.3 KiB
Triage du projet Veza
Date : 2025-12-05 État : Document généré automatiquement après audit.
🚦 Fonctionnalités par état réel
✅ Fonctionne (Code présent & Testé)
- Auth Login/Register (Backend Go) : Implémenté dans
internal/core/auth/service.go(Register, Login, Refresh). - WebSocket Connection (Chat Server) : Handshake et validation JWT implémentés dans
websocket_handler. - Chat Messaging (Chat Server) : Envoi et diffusion (
broadcast_to_conversation) fonctionnels. - Message History Pagination (Chat Server) : ✅ RÉSOLU P1 - Implémentation complète avec cursors
before/after, index SQL optimisés, permissions, et handlers WebSocket. Voirdocs/CHAT_HISTORY_SEARCH_SYNC.md. - Message Search (Chat Server) : ✅ RÉSOLU P1 - Implémentation complète avec recherche ILIKE, index trigram GIN, pagination, permissions, et handlers WebSocket. Voir
docs/CHAT_HISTORY_SEARCH_SYNC.md. - Offline Sync (Chat Server) : ✅ RÉSOLU P1 - Implémentation complète avec sync depuis timestamp, support des edits/deletes, permissions, et handlers WebSocket. Voir
docs/CHAT_HISTORY_SEARCH_SYNC.md. - Health Check & Status API (Backend Go) : ✅ RÉSOLU P1 - Implémentation complète avec routes
/health(stateless) et/status(complet), vérifications DB/Redis/Chat/Stream, intégration Sentry, logging structuré, métriques Prometheus, et tests. Voirdocs/BACKEND_STATUS_MONITORING.md.
🚧 Partiel (Squelette présent, logique incomplète)
- Password Reset (Backend Go) :
internal/core/auth/service.go. ✅ RÉSOLU P0 - Implémentation complète avec tokens, validation, invalidation sessions. Voirdocs/AUTH_PASSWORD_RESET.md. - Job Worker (Backend Go) :
internal/workers/job_worker.go. ✅ RÉSOLU P1 - Implémentation complète du système de workers avec EmailJob (SMTP), ThumbnailJob (génération d'images), AnalyticsEventJob (stockage événements), queue in-memory, worker pool, retry automatique, tests unitaires, et documentation complète. Voirdocs/JOB_WORKER_SYSTEM.md.
❌ Fantôme (Juste des TODOs ou des Structs vides)
- Chat Read Receipts (Chat Server) : ✅ RÉSOLU P0 - Implémentation complète dans
src/websocket/handler.rsavecReadReceiptManager, permissions, et broadcast. Voirsrc/read_receipts.rs. - Stream Encoding (Stream Server) : ✅ RÉSOLU P0 - Implémentation complète du moteur d'encodage audio avec pool de workers FFmpeg, support HLS, API REST, et persistance DB. Voir
docs/STREAM_ENCODING_PIPELINE.mdetsrc/core/encoding_pool.rs. - Stream Processing (Stream Server) : ✅ RÉSOLU P1 - Implémentation complète du thread de traitement temps réel avec
StreamProcessor,FFmpegMonitor,SegmentTracker,ProcessingCallbacks, monitoring stderr en temps réel, détection incrémentale des segments, persistance DB, API status, et documentation complète. Voirdocs/STREAM_PROCESSING_THREAD.mdetsrc/core/processing/. - Chat Delivered Status (Chat Server) : ✅ RÉSOLU P1 - Implémentation complète avec
DeliveredStatusManager, migration DB, permissions, et broadcast. Voirdocs/CHAT_DELIVERED_AND_TYPING.md. - Chat Typing Indicators (Chat Server) : ✅ RÉSOLU P1 - Implémentation complète avec
TypingIndicatorManager, timeout automatique, task de monitoring, permissions, et broadcast. Voirdocs/CHAT_DELIVERED_AND_TYPING.md. - Message Editing (Chat Server) : ✅ RÉSOLU P1 - Implémentation complète avec
MessageEditService, permissions strictes, validation du contenu, événements WebSocket, et soft delete. Voirdocs/CHAT_MESSAGE_EDIT_DELETE.md. - Message Deletion (Chat Server) : ✅ RÉSOLU P1 - Implémentation complète avec soft delete, traçabilité (
deleted_at), permissions, événements WebSocket, et opération idempotente. Voirdocs/CHAT_MESSAGE_EDIT_DELETE.md.
🧪 Tests Skippés / Ignorés
| Service | Fichier | Test | Raison |
|---|---|---|---|
| ✅ Résolu | tests/integration/api_health_test.go |
TestHealthCheck | ✅ RÉSOLU P1 - Tests implémentés pour /health et /status. Voir docs/BACKEND_STATUS_MONITORING.md. |
| backend | internal/handlers/room_handler_test.go |
TestRoomHandler | "TODO(P2): Refactor ... Currently disabled to fix compilation P0" |
| backend | internal/database/pool_test.go |
Multiple | "Skipping test: cannot connect to database" |
| chat-server | src/database/pool.rs |
All | "#[ignore] // Nécessite une base de données de test" |
| chat-server | src/services/room_service.rs |
All | "#[ignore] // Nécessite une configuration spécifique" |
| chat-server | tests/history_search_sync.rs |
All | "#[ignore] // Nécessite une base de données de test" |
| stream-server | src/database/pool.rs |
All | "#[ignore] // Nécessite une base de données de test" |
🧨 TODOs Critiques & Bloquants
| Priorité | Fichier | Description | Impact |
|---|---|---|---|
| ✅ Résolu | veza-backend-api/internal/handlers/ |
"P0 - Erreurs JSON non traitées silencieusement" | ✅ RÉSOLU P0 - Phase 4 JSON Hardening : Tous les handlers HTTP dans internal/handlers/ passent désormais par CommonHandler.BindAndValidateJSON + RespondWithAppError. Plus aucune utilisation directe de ShouldBindJSON dans les handlers de production. Voir AUDIT_STABILITY.md. |
| ✅ Résolu | veza-chat-server/src/websocket/handler.rs |
"Implémenter la logique de marquage comme lu" | ✅ RÉSOLU P0 - Implémentation complète avec ReadReceiptManager, permissions, et broadcast |
| ✅ Résolu | veza-stream-server/src/core/encoder.rs |
"Implémentation réelle des encodeurs" | ✅ RÉSOLU P0 - Moteur d'encodage complet avec pool de workers FFmpeg, support HLS multi-qualité, API REST, migrations DB, et documentation. Voir docs/STREAM_ENCODING_PIPELINE.md. |
| ✅ Résolu | veza-backend-api/internal/core/auth/service.go |
"Store reset token" & "Verify reset token" | ✅ RÉSOLU - Implémentation complète avec PasswordResetService, routes branchées, documentation créée |
| ✅ Résolu | veza-chat-server/src/message_handler.rs |
"Vérifier l'appartenance au salon" & "Vérifier si les utilisateurs ont une conversation existante" | ✅ RÉSOLU P0 - Système complet de permissions implémenté avec PermissionService, intégration dans tous les handlers WebSocket, JWT manager corrigé, tests et documentation créés. Voir docs/CHAT_PERMISSIONS.md. |
| ✅ Résolu | veza-chat-server/ (multiple files) |
"Panics et erreurs non maîtrisées" | ✅ RÉSOLU P0 - Tous les unwrap()/expect() déclenchables par des inputs extérieurs ont été remplacés par une gestion d'erreurs explicite avec ChatError. Panic boundaries documentées, tests anti-panic créés. Voir docs/CHAT_PANIC_CLEANUP.md. |
| 🟠 Moyenne | veza-backend-api/internal/handlers/room_handler_test.go |
"Refactor RoomHandler ... fix compilation P0" | Tests unitaires rooms désactivés |
| ✅ Résolu | veza-backend-api/internal/workers/job_worker.go |
"Implémenter envoi email, thumbnails, analytics" |