Administration : API NestJS et Admin Server Express
ImportantVue d’ensemble
IlL’administration n’existeWeb Uniksim repose sur deux couches distinctes qu’il ne faut pas deconfondre second:
uniksim-back-end/src/node.js/server/admin_server.js, qui écoute localement sur le 8105 et 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.
AdminUserController sous /admin : récupération et gestion d’informations utilisateurs.
AdminPresenceController sous /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 NestJSExpress 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 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,API maisNestJS et ne doit pas être confondu avec leursles proprescontrôleurs routes,/admin servicesdu etserveur guards.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
Côté backend
Les contrôleurs d’administration sont dans uniksim-back-end/src/app.controller.ts.
AdminUserController/adminAdminPresenceController/admin/presenceAdminControllerSécurité
Les routes adminNestJS utilisent des guards dédiés, notamment AuthGuardAdmin et AuthGuardAdminUser. Le frontend possèdeapplique égalementaussi plusieursdes guards selon le niveau d’accèsaccès, :notamment AuthGuardConstAdmin, et AuthGuardConstTrueAdmin, etc..
ServicesCarte associéssimplifié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.ts
uniksim-back-end/src/app.module.ts
uniksim-back-end/src/node.js/server/admin_server.js
uniksim-back-end/src/node.js/server/constantsVariable.js
uniksim-back-end/src/service/admin.service.ts
uniksim-back-end/src/service/adminUser.service.ts
uniksim-back-end/src/service/presence.service.ts
uniksimFrontEnd/src/app/app.module.ts