Administration : API NestJS et Admin Server Express
Vue d’ensemble
L’administration Web Uniksim repose sur deux couches distinctes qu’il ne faut pas confondre :
- les routes d’administration de l’API NestJS principale, utilisées par le frontend Angular et protégées par des guards;
- un serveur Express d’administration séparé dans
uniksim-back-end/src/node.js/server/admin_server.js, qui écoute localement sur le port8105et gère surtout des opérations historiques/BrainCloud et certains flux SSE.
1. Administration dans l’API NestJS
Les contrôleurs d’administration sont regroupés dans uniksim-back-end/src/app.controller.ts et enregistrés dans AppModule.
AdminUserControllersous/admin: récupération et gestion d’informations utilisateurs.AdminPresenceControllersous/admin/presence: présence en ligne, état de jeu et télémétrie.AdminController: autres opérations administratives.SupportAdminController: fonctions administratives du support.
La logique métier correspondante se trouve notamment dans src/service/admin.service.ts, src/service/adminUser.service.ts et src/service/presence.service.ts.
2. Admin Server Express séparé
Le fichier src/node.js/server/admin_server.js démarre un serveur Express distinct sur ConstantsInUse.ADMIN_SERVER_PORT, actuellement 8105. Son URL locale de référence est définie par ADMIN_SERVER_URL dans constantsVariable.js.
Ce serveur est utilisé notamment pour :
POST /admin/adminCommand: commandes d’administration BrainCloud telles que lecture de documents, récupération de simulations, copie de simulation et suppression d’un utilisateur d’une simulation;POST /redisBulkCommands: commandes Redis groupées;GET /getActiveSimulations/...: récupération des simulations actives;GET /copySimNotification: progression d’une copie de simulation via SSE;- surveillance de certains jobs BrainCloud et relance lorsqu’ils disparaissent.
Important : ce serveur Express est une vraie seconde instance HTTP locale. Il ne remplace pas l’API NestJS et ne doit pas être confondu avec les contrôleurs /admin du serveur principal.
Routes frontend d’administration
Le routing Angular est défini directement dans uniksimFrontEnd/src/app/app.module.ts. Les principales routes sont :
/admin/list/admin/support/admin/presence/admin/settings/admin/searchDemo/admin/activeSimulation/admin/comments/admin/:userUid
Sécurité
Les routes NestJS utilisent notamment AuthGuardAdmin et AuthGuardAdminUser. Le frontend applique aussi des guards selon le niveau d’accès, notamment AuthGuardConstAdmin et AuthGuardConstTrueAdmin.
Carte simplifiée
Angular Admin
│
├── HTTP ──► NestJS principal : /admin/* ──► AdminService / AdminUserService / PresenceService
│
└──────────► Admin Server Express : 127.0.0.1:8105
├── BrainCloud
├── Redis
└── SSE / copie de simulations
Fichiers principaux
uniksim-back-end/src/app.controller.tsuniksim-back-end/src/app.module.tsuniksim-back-end/src/node.js/server/admin_server.jsuniksim-back-end/src/node.js/server/constantsVariable.jsuniksim-back-end/src/service/admin.service.tsuniksim-back-end/src/service/adminUser.service.tsuniksim-back-end/src/service/presence.service.tsuniksimFrontEnd/src/app/app.module.ts