Skip to main content

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:

processus
“adminles server” distinct. Les fonctionnalitésroutes d’administration viventde 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 mêmeport 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 le restelecture 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,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 sous /admin. AdminPresenceController sous /admin/presence. AdminController pour les autres opérations d’administration.

        Sé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