49 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### Objet
Analyse synthétique de `lecoffre-back-mini` (Express + TypeScript).
### Périmètre et stack
- **Serveur**: Express 4
- **Langage**: TypeScript (ts-node en dev, `tsc` en build)
- **Entrée**: `src/server.ts``dist/server.js`
### Arborescence notable
- **`src/routes`**: routes (email, health, idnot, process, sms, stripe)
- **`src/controllers`**: logique par domaine
- **`src/services`**: intégrations (email, idnot, signer, sms, stripe)
- **`src/middleware`**: auth, erreurs, session, validation
- **`src/utils`**: tokens, logger, result, validations, session manager
- **`src/config`**: configuration (email, sms, stripe, signer)
### Comportements serveur
- **CORS**: configurable via `config.cors`
- **Logs requêtes**: middleware chronomètre + `Logger.logRequest`
- **Gestion erreurs**: middleware centralisé `errorHandler`
- **Tâches récurrentes**:
- nettoyage sessions (5 min)
- purge tokens expirés (1 h)
- retry emails (1 min)
- **Arrêts propres**: gestion `SIGINT`/`SIGTERM`, exceptions et promesses rejetées
### Changements IdNot
- Lendpoint dauthentification accepte désormais le code en POST corps JSON sur `/api/v1/idnot/auth` (au lieu dun segment dURL).
- Le handler supporte à la fois `req.params.code` et `req.body.code` pour compatibilité, mais lusage recommandé est `req.body.code`.
### Dépendances clés
- **HTTP**: `express`, `cors`
- **Infra**: `pg`, `dotenv`
- **Intégrations**: `stripe`, `@mailchimp/mailchimp_transactional`, `ovh`
- **Interop**: `sdk-signer-client` (lien local `../sdk-signer-client`)
### Points dattention
- **Lien local**: dépendance `sdk-signer-client` en `file:` (vigilance CI/CD)
- **Secrets**: centraliser dans `.env` et ne pas exposer côté client
- **Résilience**: reconnection `SignerService` déjà prévue → surveiller métriques
### Tests et scripts
- **Tests rapides**: scripts `test:*` pour DB, rattachements, reconnection signer
- **Build/Run**: `build`, `start`, `dev`, `watch`
### Déploiement
- **Dockerfile**: présent (image `lecoffre-back-mini` utilisée par `lecoffre_node`)
- **Réseau**: orchestré via `lecoffre_node` (ports, santé, watchtower)