lecoffre-front/docs/ANALYSE.md
Debian Dev4 96f8788c08
All checks were successful
build-and-push-ext / build_push (push) Successful in 1m26s
ci: docker_tag=ext - Update documentation and analysis
2025-09-19 17:03:54 +00:00

48 lines
1.9 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.

## Analyse détaillée
### Périmètre
Front Next.js `lecoffre-front` (Next 14, TypeScript), build multiétapes et image `ext` runtime.
### Stack
- **Framework**: Next.js 14 (React 18), TypeScript 4.9.5
- **UI**: MUI, Emotion, Heroicons
- **Outillage**: ESLint (8.36), Prettier
- **Ressources externes**: `le-coffre-resources` via SSH Gitea (`#v2.167`)
### Build et exécution
- Scripts: `dev`, `build` (telemetry off, `--no-lint`), `start`, `lint`, `format`.
- `next.config.js`: `output: 'standalone'`, `basePath: '/lecoffre'`, `ignoreBuildErrors: true`.
- Docker multiétapes: `deps` (npm ci), `development` (npm run dev), `builder` (npm run build), `ext` (runtime node:19alpine, `server.js`).
### Variables denvironnement
Variables NEXT_PUBLIC nombreuses (API back, IDNot, Docaposte, 4NK URLs, defaults). Exposées en `env`, `publicRuntimeConfig`, `serverRuntimeConfig` et redéclarées en Docker (`ARG``ENV`).
### Ports et réseau
- Port 3000 interne; exposé 3004:3000 dans `lecoffre_node`.
### Dépendances clés
- `next@^14.2.3`, `react@18.2.0`, `sharp@^0.32.1` (build imageprocessing Alpine), `jszip`, `jwt-decode`, `react-select`, `react-toastify`.
### Risques et points dattention
- `ignoreBuildErrors: true` masque les erreurs TS. Risque de dérive de type.
- `--no-lint` en build désactive ESLint. Manque de garde qualité en CI.
- Node 19 sur Alpine: fin de support. Préférer LTS (20/22).
- Dépendance Git SSH privée (`lecoffre-ressources`): exige agent SSH BuildKit; documenter clé et politiques.
### Actions proposées
- Rétablir le lint en build (ou CI) et supprimer `ignoreBuildErrors` si possible.
- Monter vers Node LTS (20alpine) et tester `sharp`.
- Documenter toutes les variables NEXT_PUBLIC et fournir `.env.example`.
- Mettre en place codesplitting (React.lazy/Suspense) et centraliser létat (Context/Redux) selon les règles projet.