Service Logs & Reporting
État : service au stade de stub (v0.0.1). Squelette NestJS posé, pas d'implémentation métier visible. Cette page documente l'intention et ce qui sera attendu de la fiche complète quand le service sera implémenté.
Identité
| Attribut | Valeur |
|---|---|
| Package | @nex/service-logs-reporting v0.0.1 |
| Port | 3000 |
| Schéma DB | à confirmer (pas de config TypeORM dans app.module.ts au scan) |
| Swagger | ❌ absent (pas de SwaggerModule.setup dans main.ts) |
| README | ❌ absent |
| Owner | @platform-team |
Surface API actuelle
| Controller | Route | Endpoints |
|---|---|---|
app.controller.ts | / | 1 (health) |
Responsabilité attendue
- Audit trail centralisé : ingestion des événements métier critiques (transactions, KYC, actions admin, modifications de compliance).
- Reporting : exposer des requêtes pour la compliance (volumes, anomalies, vérifications BEAC/GABAC).
- Forensics : permettre la reconstruction d'une session utilisateur ou d'un flux de transaction a posteriori.
Points critiques pour l'audit
Ce service est stratégique pour la conformité mais reste à implémenter :
- Toute action métier (ledger, KYC, admin) doit-elle produire une entrée audit ici ?
- Les logs sont-ils append-only / immuables ?
- Quelle politique de rétention ?
- Quelle protection en lecture (qui peut lire quoi) ?
Voir /compliance/audit-2026-ledger-wallets qui flag déjà l'absence d'audit trail centralisé comme dette ouverte (ledgers.created_by NULL, pas de correlation_id).
Dépendances actuelles
Minimales : @nestjs/common, @nestjs/core, @nestjs/platform-express, reflect-metadata, rxjs.
Pas de TypeORM, pas de Postgres, pas de Swagger, pas de message bus identifié à ce stade.
Pages à produire quand l'implémentation arrive
api.md— endpoints d'ingestion et de requêtedata-model.md— schéma append-only, partitionnement temporelrunbook.md— gestion volume, archivage, restaurationthreat-model.md— intégrité des logs (signature ? merkle ?), accès en lectureingest-strategy.md— push (event bus) vs pull (query) vs hybride
Tracking
Quand ce service entre en implémentation, créer un ticket pour rafraîchir cette page et passer son status de draft à stable.