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.
Pour le déploiement en production (Docker), voir la documentation système.
Depuis la racine du dépôt:
cd webui
npm install
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
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.
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.
Les modifications du code sont rechargées à chaud: il n’est pas nécessaire de redémarrer la WebUI.
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.