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.).
53 lines
No EOL
7.3 KiB
Markdown
53 lines
No EOL
7.3 KiB
Markdown
# 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é)
|
|
- [x] **Auth Login/Register** (Backend Go) : Implémenté dans `internal/core/auth/service.go` (Register, Login, Refresh).
|
|
- [x] **WebSocket Connection** (Chat Server) : Handshake et validation JWT implémentés dans `websocket_handler`.
|
|
- [x] **Chat Messaging** (Chat Server) : Envoi et diffusion (`broadcast_to_conversation`) fonctionnels.
|
|
- [x] **Message History Pagination** (Chat Server) : ✅ **RÉSOLU P1** - Implémentation complète avec cursors `before`/`after`, index SQL optimisés, permissions, et handlers WebSocket. Voir `docs/CHAT_HISTORY_SEARCH_SYNC.md`.
|
|
- [x] **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`.
|
|
- [x] **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`.
|
|
- [x] **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. Voir `docs/BACKEND_STATUS_MONITORING.md`.
|
|
|
|
### 🚧 Partiel (Squelette présent, logique incomplète)
|
|
- [x] **Password Reset** (Backend Go) : `internal/core/auth/service.go`. ✅ **RÉSOLU P0** - Implémentation complète avec tokens, validation, invalidation sessions. Voir `docs/AUTH_PASSWORD_RESET.md`.
|
|
- [x] **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. Voir `docs/JOB_WORKER_SYSTEM.md`.
|
|
|
|
### ❌ Fantôme (Juste des TODOs ou des Structs vides)
|
|
- [x] **Chat Read Receipts** (Chat Server) : ✅ **RÉSOLU P0** - Implémentation complète dans `src/websocket/handler.rs` avec `ReadReceiptManager`, permissions, et broadcast. Voir `src/read_receipts.rs`.
|
|
- [x] **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.md` et `src/core/encoding_pool.rs`.
|
|
- [x] **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. Voir `docs/STREAM_PROCESSING_THREAD.md` et `src/core/processing/`.
|
|
- [x] **Chat Delivered Status** (Chat Server) : ✅ **RÉSOLU P1** - Implémentation complète avec `DeliveredStatusManager`, migration DB, permissions, et broadcast. Voir `docs/CHAT_DELIVERED_AND_TYPING.md`.
|
|
- [x] **Chat Typing Indicators** (Chat Server) : ✅ **RÉSOLU P1** - Implémentation complète avec `TypingIndicatorManager`, timeout automatique, task de monitoring, permissions, et broadcast. Voir `docs/CHAT_DELIVERED_AND_TYPING.md`.
|
|
- [x] **Message Editing** (Chat Server) : ✅ **RÉSOLU P1** - Implémentation complète avec `MessageEditService`, permissions strictes, validation du contenu, événements WebSocket, et soft delete. Voir `docs/CHAT_MESSAGE_EDIT_DELETE.md`.
|
|
- [x] **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. Voir `docs/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" | ✅ **RÉSOLU P1** - Système complet de workers avec EmailJob (SMTP), ThumbnailJob, AnalyticsEventJob, tests et documentation. Voir `docs/JOB_WORKER_SYSTEM.md`. | |