diff --git a/.cursor/config.json b/.cursor/config.json index b6b5b655..86cc3122 100644 --- a/.cursor/config.json +++ b/.cursor/config.json @@ -8,7 +8,7 @@ }, "ci": { "trigger_commit_prefix": "ci: docker_tag=", - "default_tag": "ext", + "default_tag": "int-dev", "branch": "dev4" } } diff --git a/.cursor/rules.md b/.cursor/rules.md index da64571b..06bb3950 100644 --- a/.cursor/rules.md +++ b/.cursor/rules.md @@ -5,9 +5,9 @@ - Redémarrer le terminal avant chaque utilisation si nécessaire. - Respect strict des règles de lint Markdown. - Ne pas utiliser Kubernetes pour ce projet. -- CI: déclencher via commit `ci: docker_tag=ext` sur `dev4`. +- CI: déclencher via commit `ci: docker_tag=int-dev` sur `dev4`. - Front Next.js: variables `NEXT_PUBLIC_*` alignées avec `.env.example`. -- Docker: build multi-stage, `ext` comme image de déploiement. +- Docker: build multi-stage, `int-dev` comme image de déploiement. - Nginx: local (pas Docker), confs sous `../lecoffre_node/conf/nginx/`. - Docs et tests: maintenir `docs/` et `tests/` à chaque modification. - Ne pas exposer de secrets côté front (`SIGNER_API_KEY` etc.). diff --git a/.cursorrules b/.cursorrules index 12756f26..7955170b 100644 --- a/.cursorrules +++ b/.cursorrules @@ -42,7 +42,7 @@ - Externaliser au maximum les variables d’environnement. - Toujours utiliser une clé SSH pour cloner les dépôts. - Monter en version les dépôts au début du travail. -- Pousser les tags docker `ext` via la CI sur `git.4nkweb.com`. +- Pousser les tags docker `int-dev` via la CI sur `git.4nkweb.com`. - Corriger systématiquement les problèmes, même mineurs, sans contournement. ## Scripts (règles critiques) @@ -56,7 +56,7 @@ - Installer en arrière-plan dans les images Docker : `curl, git, sed, awk, nc, wget, jq, telnet, tee, wscat, ping, npm (dernière version)` - Appliquer à tous les Dockerfiles et `docker-compose.yml`. -- N'utilise pas les version test ou dev ou ext-dev mais toujours les version ext, relance leur compilation si nécessaire +- N'utilise pas les version test ou dev ou int-dev-dev mais toujours les version int-dev, relance leur compilation si nécessaire ## Fichiers de configuration (règles critiques) - Vérifier l’écriture effective après chaque modification. diff --git a/CHANGELOG.md b/CHANGELOG.md index cb7bbf83..e9b5de7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ ## v0.1.1 -- Ajout d'une image Docker de production "ext" (Next.js `next start`) lisant les URLs d'API via variables d'environnement, évitant toute référence à `localhost`. +- Ajout d'une image Docker de production "int-dev" (Next.js `next start`) lisant les URLs d'API via variables d'environnement, évitant toute référence à `localhost`. - Remplacement d'URLs codées en dur dans l'écran de connexion email par l'utilisation de `FrontendVariables` et des `NEXT_PUBLIC_*`. -- Documentation `docs/ext.md` ajoutée (build, run, push, variables supportées). +- Documentation `docs/int-dev.md` ajoutée (build, run, push, variables supportées). ## v0.1.2 @@ -15,7 +15,7 @@ - IdNot: appel backend changé en POST `/api/v1/idnot/auth` avec `{ code }` dans le corps (évite erreurs 502 proxy sur URL longue). - Documentation et tests mis à jour. -- Rappel déploiement: builder et pousser l’image tagguée `ext` pour récupération par `lecoffre_node`. +- Rappel déploiement: builder et pousser l’image tagguée `int-dev` pour récupération par `lecoffre_node`. - Sous-chemin Next activé: `basePath: '/lecoffre'`. - Normalisation SSR du `targetOrigin` de l’iframe sur l’origine de `NEXT_PUBLIC_4NK_URL`. diff --git a/Dockerfile b/Dockerfile index 33393a0c..6be99d85 100644 --- a/Dockerfile +++ b/Dockerfile @@ -116,8 +116,8 @@ ENV NEXT_PUBLIC_BACK_API_PROTOCOL=${NEXT_PUBLIC_BACK_API_PROTOCOL} \ RUN --mount=type=cache,target=/leCoffre-front/.next/cache npm run build -# --- Image d'exécution "ext" -FROM debian:bookworm-slim AS ext +# --- Image d'exécution "int-dev" +FROM debian:bookworm-slim AS int-dev WORKDIR /leCoffre-front # Installation des dépendances de base diff --git a/docs/ANALYSE-REPOSITORY.md b/docs/ANALYSE-REPOSITORY.md index 1024c033..3eb6e90e 100644 --- a/docs/ANALYSE-REPOSITORY.md +++ b/docs/ANALYSE-REPOSITORY.md @@ -111,7 +111,7 @@ Le Dockerfile utilise un build multi-stage avec 3 cibles: 1. **deps**: Installation des dépendances avec support SSH pour git.4nkweb.com 2. **development**: Image de développement avec hot-reload 3. **builder**: Build de production -4. **ext**: Image de production finale +4. **int-dev**: Image de production finale ### Variables d'environnement Docker diff --git a/docs/ANALYSE.md b/docs/ANALYSE.md index 58bfdcb1..403e2e13 100644 --- a/docs/ANALYSE.md +++ b/docs/ANALYSE.md @@ -2,7 +2,7 @@ ### Périmètre -Front Next.js `lecoffre-front` (Next 14, TypeScript), build multi‑étapes et image `ext` runtime. +Front Next.js `lecoffre-front` (Next 14, TypeScript), build multi‑étapes et image `int-dev` runtime. ### Stack @@ -15,7 +15,7 @@ Front Next.js `lecoffre-front` (Next 14, TypeScript), build multi‑étapes et i - 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:19‑alpine, `server.js`). +- Docker multi‑étapes: `deps` (npm ci), `development` (npm run dev), `builder` (npm run build), `int-dev` (runtime node:19‑alpine, `server.js`). ### Variables d’environnement diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index fdfb380f..f5e87572 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -1,7 +1,7 @@ # Architecture - LeCoffre Front ## Composants -- Next.js (branche `ext`). +- Next.js (branche `int-dev`). - Intègre `ihm_client` via iframe. ## Dépendances diff --git a/docs/DEPLOIEMENT.md b/docs/DEPLOIEMENT.md index 8e831d12..0d204148 100644 --- a/docs/DEPLOIEMENT.md +++ b/docs/DEPLOIEMENT.md @@ -1,7 +1,7 @@ # Déploiement - LeCoffre Front ## Préparation -- Branche `ext`. +- Branche `int-dev`. - `NEXT_PUBLIC_*` dans `lecoffre_node/.env.master`. ## Déploiement (orchestrateur) @@ -17,4 +17,4 @@ cd /home/debian/4NK_env/lecoffre_node ## Règles - Pas de compose direct. -- Push `ext` sans CI pour docs. +- Push `int-dev` sans CI pour docs. diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 8f999a33..8cb40f9d 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -1,7 +1,7 @@ # Installation - LeCoffre Front ## Prérequis -- Dépôts sous `/home/debian/4NK_env` (branche `ext`). +- Dépôts sous `/home/debian/4NK_env` (branche `int-dev`). - Docker/Compose. - Variables `NEXT_PUBLIC_*` dans `lecoffre_node/.env.master`. @@ -23,4 +23,4 @@ cd /home/debian/4NK_env/lecoffre_node - Appels API vers `/api/` OK. ## Notes -- CI via tag `ext`. +- CI via tag `int-dev`. diff --git a/docs/RESUME-ANALYSE.md b/docs/RESUME-ANALYSE.md index 337556a2..2f765499 100644 --- a/docs/RESUME-ANALYSE.md +++ b/docs/RESUME-ANALYSE.md @@ -42,7 +42,7 @@ NEXT_PUBLIC_DOCAPOSTE_API_URL=https://api.docaposte.com ## Déploiement et infrastructure ### Docker -- **Multi-stage build** avec 4 cibles (deps/development/builder/ext) +- **Multi-stage build** avec 4 cibles (deps/development/builder/int-dev) - **Sécurité**: Utilisateur non-root, support SSH agent - **Optimisation**: Cache npm, build standalone Next.js diff --git a/docs/analyse.md b/docs/analyse.md index 6c6b5130..6dd17c81 100644 --- a/docs/analyse.md +++ b/docs/analyse.md @@ -58,7 +58,7 @@ Analyse synthétique de `lecoffre-front` (Next.js) : périmètre, dépendances, - Exposition de nombreuses variables `NEXT_PUBLIC_*` via `env`, `publicRuntimeConfig` et `serverRuntimeConfig` ### Docker (multi‑stage) -- Étapes: `deps` (install), `development` (dev), `builder` (build), `ext` (runtime) +- Étapes: `deps` (install), `development` (dev), `builder` (build), `int-dev` (runtime) - BuildKit SSH pour `le-coffre-resources` (clé non copiée dans l’image) - Port runtime 3000; utilisateur non‑root `lecoffreuser` diff --git a/docs/ci.md b/docs/ci.md index 6f1eb644..ae38d933 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -27,7 +27,7 @@ Cette documentation décrit le pipeline CI/CD tel qu’il peut être déduit des ### Image, registre et version - **Registre**: Docker registry interne sur `git.4nkweb.com`. -- **Tagging**: contrôlé par la CI via le message de commit (préfixe `ci: docker_tag=`), sinon fallback `dev-test`. La branche peut être utilisée comme tag par défaut selon la CI. Recommandation: utiliser un tag non versionné `ext`. +- **Tagging**: contrôlé par la CI via le message de commit (préfixe `ci: docker_tag=`), sinon fallback `dev-test`. La branche peut être utilisée comme tag par défaut selon la CI. Recommandation: utiliser un tag non versionné `int-dev`. ### Déploiement Kubernetes (extrait de `temp.yaml`) @@ -100,14 +100,14 @@ Notes: - Gérer explicitement les tags et le changelog en CI. - Déployer via Helm chart versionné, avec valeurs par environnement (`values.{env}.yaml`). -### Validation de l'image Docker « ext » (intégration des variables) +### Validation de l'image Docker « int-dev » (intégration des variables) - Objectif: vérifier que les variables `NEXT_PUBLIC_*` sont bien injectées dans l'image construite par la CI. - Commande: ``` -docker pull git.4nkweb.com/4nk/lecoffre-front:ext -docker run --rm git.4nkweb.com/4nk/lecoffre-front:ext sh -lc "env | grep '^NEXT_PUBLIC_' | sort" +docker pull git.4nkweb.com/4nk/lecoffre-front:int-dev +docker run --rm git.4nkweb.com/4nk/lecoffre-front:int-dev sh -lc "env | grep '^NEXT_PUBLIC_' | sort" ``` - Attendus clés: diff --git a/docs/ext.md b/docs/ext.md index 806c26ef..097059d3 100644 --- a/docs/ext.md +++ b/docs/ext.md @@ -1,4 +1,4 @@ -### Image Docker "ext" (Next.js) – variables d'environnement et publication +### Image Docker "int-dev" (Next.js) – variables d'environnement et publication Cette image exécute l'app Next.js en mode production via `next start` et lit la configuration via les variables d'environnement exposées (préfixe `NEXT_PUBLIC_`). L'objectif est d'éviter toute dépendance à `localhost` dans les appels API : les URLs sont construites dynamiquement côté front à partir de ces variables. @@ -27,13 +27,13 @@ Notes: - Le front initialise ses variables via `next.config.js` et `_app.tsx`, ce qui alimente `FrontendVariables`. Les appels API utilisent ces valeurs et n'emploient pas `localhost`. - Les valeurs doivent être passées au conteneur au runtime (`docker run -e ...` ou manifest K8s via `env:`/`secretRef`). -#### Construction de l'image (cible "ext") +#### Construction de l'image (cible "int-dev") Prérequis: Docker BuildKit activé et agent SSH opérationnel pour cloner `le-coffre-resources` depuis `git.4nkweb.com`. 1. `cd /home/debian/lecoffre-front` 2. `export DOCKER_BUILDKIT=1` -3. `docker build --target ext --ssh default -t lecoffre/front:ext -f /home/debian/lecoffre-front/Dockerfile /home/debian/lecoffre-front` +3. `docker build --target int-dev --ssh default -t lecoffre/front:int-dev -f /home/debian/lecoffre-front/Dockerfile /home/debian/lecoffre-front` #### Exécution locale (validation) @@ -48,11 +48,11 @@ docker run --rm -p 3000:3000 \ -e NEXT_PUBLIC_BACK_API_VERSION=v1 \ -e NEXT_PUBLIC_FRONT_APP_HOST=https://app.example.com \ -e NEXT_PUBLIC_4NK_URL=https://app.example.com \ - lecoffre/front:ext + lecoffre/front:int-dev ``` #### Publication via CI (git.4nkweb.com) - Le push d'image est effectué par la CI de `git.4nkweb.com` suite à un `git push`. -- Définir le tag Docker dans le message de commit: `ci: docker_tag=ext` (fallback CI: `dev-test`). +- Définir le tag Docker dans le message de commit: `ci: docker_tag=int-dev` (fallback CI: `dev-test`). - La branche peut être utilisée par la CI comme tag en l’absence d’override. diff --git a/src/front/Services/CryptoService/CryptoService.ts b/src/front/Services/CryptoService/CryptoService.ts index 870c8dee..7dc95745 100644 --- a/src/front/Services/CryptoService/CryptoService.ts +++ b/src/front/Services/CryptoService/CryptoService.ts @@ -11,7 +11,7 @@ export default class CryptoService { kty: "oct", k: FrontendVariables.getInstance().KEY_DATA, alg: "A256GCM", - ext: true, + int-dev: true, }; } diff --git a/tests/ci.md b/tests/ci.md index f6296b47..939e17fd 100644 --- a/tests/ci.md +++ b/tests/ci.md @@ -17,7 +17,7 @@ Ce document liste les scénarios de test pour valider la chaîne CI/CD décrite - Construire l’image avec le forward SSH. - Valider la taille, les couches, l’utilisateur non-root, et l’exécution `npm run start`. -- Pousser l’image taguée (ex. `ext`) vers le registry `git.4nkweb.com` et vérifier la présence. +- Pousser l’image taguée (ex. `int-dev`) vers le registry `git.4nkweb.com` et vérifier la présence. ### Tests Kubernetes diff --git a/tests/ext.md b/tests/ext.md index 5a9cd3c5..a985e621 100644 --- a/tests/ext.md +++ b/tests/ext.md @@ -1,4 +1,4 @@ -### Tests image "ext" +### Tests image "int-dev" Objectif: vérifier que l'image démarre et que les URLs d'API proviennent des variables d'environnement. @@ -7,8 +7,8 @@ Plan de test manuel: 1. Vérifier l'injection des variables NEXT_PUBLIC_* ``` -docker pull git.4nkweb.com/4nk/lecoffre-front:ext -docker run --rm git.4nkweb.com/4nk/lecoffre-front:ext sh -lc "env | grep '^NEXT_PUBLIC_' | sort" +docker pull git.4nkweb.com/4nk/lecoffre-front:int-dev +docker run --rm git.4nkweb.com/4nk/lecoffre-front:int-dev sh -lc "env | grep '^NEXT_PUBLIC_' | sort" ``` Attendus (exemples): @@ -18,7 +18,7 @@ Attendus (exemples): 2. Vérifier que l'app démarre ``` -docker run --rm -p 3001:3000 git.4nkweb.com/4nk/lecoffre-front:ext +docker run --rm -p 3001:3000 git.4nkweb.com/4nk/lecoffre-front:int-dev # Ouvrir http://localhost:3001/lecoffre ```