From b283f90b75f908a8524416f2ee4fa2228a515443 Mon Sep 17 00:00:00 2001 From: dev4 Date: Thu, 18 Sep 2025 07:49:56 +0000 Subject: [PATCH] ci: docker_tag=ext | docs(tests): analyse back-mini --- .env.exemple | 2 -- docs/analyse.md | 44 +++++++++++++++++++++++++++++++++++ lecoffre-front.code-workspace | 28 ++++++++++++++++++++++ tests/analyse.md | 16 +++++++++++++ 4 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 docs/analyse.md create mode 100644 lecoffre-front.code-workspace create mode 100644 tests/analyse.md diff --git a/.env.exemple b/.env.exemple index 999853f..4bcdc4c 100644 --- a/.env.exemple +++ b/.env.exemple @@ -40,8 +40,6 @@ NEXT_PUBLIC_DOCAPOSTE_API_URL= NEXT_PUBLIC_API_URL=https://dev4.4nkweb.com/api NEXT_PUBLIC_DEFAULT_VALIDATOR_ID=28c9a3a8151bef545ebf700ca5222c63d0031ad593097e95c1de202464304a99 NEXT_PUBLIC_DEFAULT_STORAGE_URLS=https://dev4.4nkweb.com/storage -NEXT_PUBLIC_HOTJAR_SITE_ID=0 -NEXT_PUBLIC_HOTJAR_VERSION= # WS # RELAY_URLS=wss://demo.4nkweb.com/ws diff --git a/docs/analyse.md b/docs/analyse.md new file mode 100644 index 0000000..642eb58 --- /dev/null +++ b/docs/analyse.md @@ -0,0 +1,44 @@ +### 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 + +### 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 d’attention +- **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) diff --git a/lecoffre-front.code-workspace b/lecoffre-front.code-workspace new file mode 100644 index 0000000..f800291 --- /dev/null +++ b/lecoffre-front.code-workspace @@ -0,0 +1,28 @@ +{ + "folders": [ + { + "path": "../lecoffre-front" + }, + { + "path": "." + }, + { + "path": "../ihm_client" + } + ], + "settings": { + "terminal.integrated.env.linux": { + "PATH": "${env:HOME}/elrondsdk/vendor-rust/bin:${env:HOME}/elrondsdk/erdpy-venv/bin:${env:HOME}/elrondsdk/vmtools:${env:HOME}/elrondsdk/nodejs/latest/bin:${env:PATH}", + "VIRTUAL_ENV": "${env:HOME}/elrondsdk/erdpy-venv", + "RUSTUP_HOME": "${env:HOME}/elrondsdk/vendor-rust", + "CARGO_HOME": "${env:HOME}/elrondsdk/vendor-rust" + }, + "terminal.integrated.env.osx": { + "PATH": "${env:HOME}/elrondsdk/vendor-rust/bin:${env:HOME}/elrondsdk/erdpy-venv/bin:${env:HOME}/elrondsdk/vmtools:${env:HOME}/elrondsdk/nodejs/latest/bin:${env:PATH}", + "VIRTUAL_ENV": "${env:HOME}/elrondsdk/erdpy-venv", + "RUSTUP_HOME": "${env:HOME}/elrondsdk/vendor-rust", + "CARGO_HOME": "${env:HOME}/elrondsdk/vendor-rust" + }, + "terminal.integrated.environmentChangesIndicator": "on" + } +} \ No newline at end of file diff --git a/tests/analyse.md b/tests/analyse.md new file mode 100644 index 0000000..482b5c4 --- /dev/null +++ b/tests/analyse.md @@ -0,0 +1,16 @@ +### Objet +Axes de tests pour `lecoffre-back-mini` (sans exemples d’implémentation). + +### Couverture prioritaire +- **Santé**: `/health` et métriques associées +- **Auth/Session**: middleware `auth`, gestion tokens, expirations, nettoyages +- **Intégrations**: `idnot`, `sms`, `email`, `stripe`, `signer` +- **Process**: cohérence des flux exposés par `process.routes` + +### Résilience +- **Reconnection signer**: simulation déconnexions/retards +- **Retry emails**: files d’attente et reprises + +### Sécurité +- **Entrées**: validation, schémas, erreurs typées +- **Secrets**: vérification de la non-exposition via réponses API