WebUI

La WebUI est la nouvelle application web (v6) de SAINet. Ses sources se trouvent dans le dossier webui/ (Next.js) et elle dialogue avec le serveur SAINet via l’interface EPS.

Pour la lancer en développement, il faut:

  • Node.js installé dans la version requise;
  • un serveur SAINet local démarré, par exemple avec l’embedded server.
Note:

Pour le déploiement en production (Docker), voir la documentation système.

Installation des dépendances

Depuis la racine du dépôt:

cd webui
npm install

Configuration

La configuration se fait par variables d’environnement. En développement, elles sont lues dans le fichier webui/.env.local, à créer à partir du modèle fourni:

cp .env.example .env.local
Attention:

Ne jamais committer le fichier .env.local: il peut contenir des secrets.

Les principales variables sont:

Variable Description
SAINET_URL Point d’entrée EPS du serveur SAINet. Obligatoire. Pour un embedded server local: http://localhost:9090/SNV4SRV-ws-war/EPS.
SAINET_SCREEN_KEY Clé HMAC des jetons d’intégrité des écrans. Obligatoire en production (au moins 32 octets aléatoires, par exemple générés avec openssl rand -base64 48).

En développement, SAINET_SCREEN_KEY peut rester vide: une clé aléatoire est alors générée à chaque démarrage du processus. Les sessions étant conservées en mémoire dans ce même processus, un redémarrage perd la clé et les sessions ensemble.

Les autres variables (aide en ligne, délai d’appel, mise à jour automatique, compte de service, etc.) sont optionnelles et documentées dans le fichier webui/.env.example.

Exécution

Pour lancer la WebUI en mode développement:

npm run dev

Cette commande exécute next dev --turbopack -p 3210. Une fois démarrée, ouvrir http://localhost:3210 dans un navigateur et se connecter avec un utilisateur applicatif SAINet (SYS02).

La WebUI s’arrête au démarrage si le serveur SAINet n’est pas joignable: démarrer le serveur d’abord.

Info:

Les modifications du code sont rechargées à chaud: il n’est pas nécessaire de redémarrer la WebUI.

Autres scripts utiles

Les scripts suivants sont définis dans webui/package.json:

  • npm run build: construit l’application pour la production;
  • npm run check: lance l’ensemble des contrôles (typage, lint, dépendances, code mort, duplication, tests);
  • npm test: lance les tests.