| admin-role |
GET |
/api/v1/admin/roles |
Porté, non enregistré |
Contrôleur présent ; AdminRoleModule absent de MainModule.imports. |
| admin-role |
POST |
/api/v1/admin/roles |
Porté, non enregistré |
Contrôleur présent ; AdminRoleModule absent de MainModule.imports. |
| admin-role |
PATCH |
/api/v1/admin/roles |
Porté, non enregistré |
Contrôleur présent ; AdminRoleModule absent de MainModule.imports. |
| admin-role |
GET |
/api/v1/admin/roles/member-counts |
Porté, non enregistré |
Contrôleur présent ; AdminRoleModule absent de MainModule.imports. |
| admin-role |
DELETE |
/api/v1/admin/roles/:roleId |
Porté, non enregistré |
Contrôleur présent ; AdminRoleModule absent de MainModule.imports. |
| admin-token |
GET |
/api/v1/admin/tokens |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| admin-token |
POST |
/api/v1/admin/tokens |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| admin-token |
DELETE |
/api/v1/admin/tokens/:tokenId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| cluster |
GET |
/api/v1/clusters |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| cluster |
POST |
/api/v1/clusters |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| cluster |
GET |
/api/v1/clusters/:clusterId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| cluster |
GET |
/api/v1/clusters/usage/:clusterId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| cluster |
GET |
/api/v1/clusters/:clusterId/environments |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| cluster |
PUT |
/api/v1/clusters/:clusterId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| cluster |
DELETE |
/api/v1/clusters/:clusterId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| environment V1 |
POST |
/api/v1/environments |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| environment V1 |
GET |
/api/v1/environments |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| environment V1 |
PUT |
/api/v1/environments/:environmentId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| environment V1 |
DELETE |
/api/v1/environments/:environmentId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| log |
GET |
/api/v1/logs |
Enregistré, non routé |
Contrôleur chargé ; fallback location /api/ vers legacy. |
| project |
POST |
/api/v1/projects |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project |
GET |
/api/v1/projects/:projectId |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project |
GET |
/api/v1/projects |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project |
PUT |
/api/v1/projects/:projectId |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project |
DELETE |
/api/v1/projects/:projectId |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project |
GET |
/api/v1/projects/data |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-bulk |
POST |
/api/v1/projects-bulk |
Routé vers NestJS |
Contrôleur chargé ; location /api/v1/projects-bulk. |
| project-hooks |
PUT |
/api/v1/projects/:projectId/hooks |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-secrets |
GET |
/api/v1/projects/:projectId/secrets |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-member |
GET |
/api/v1/projects/:projectId/members |
Bloqué par parité d'événements |
Contrôleur chargé et routé ; aucun @OnEvent('projectMember.*'). |
| project-member |
POST |
/api/v1/projects/:projectId/members |
Bloqué par parité d'événements |
Contrôleur chargé et routé ; aucun @OnEvent('projectMember.*'). |
| project-member |
PATCH |
/api/v1/projects/:projectId/members |
Bloqué par parité d'événements |
Contrôleur chargé et routé ; aucun @OnEvent('projectMember.*'). |
| project-member |
DELETE |
/api/v1/projects/:projectId/members/:userId |
Bloqué par parité d'événements |
Contrôleur chargé et routé ; aucun @OnEvent('projectMember.*'). |
| project-role |
GET |
/api/v1/projects/:projectId/roles |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-role |
POST |
/api/v1/projects/:projectId/roles |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-role |
PATCH |
/api/v1/projects/:projectId/roles |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-role |
GET |
/api/v1/projects/:projectId/roles/member-counts |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-role |
DELETE |
/api/v1/projects/:projectId/roles/:roleId |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-service |
GET |
/api/v1/projects/:projectId/services |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| project-service |
POST |
/api/v1/projects/:projectId/services |
Routé vers NestJS |
Contrôleur chargé ; location ^~ /api/v1/projects. |
| repository V1 |
POST |
/api/v1/repositories |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| repository V1 |
GET |
/api/v1/repositories |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| repository V1 |
POST |
/api/v1/repositories/:repositoryId/sync |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| repository V1 |
PUT |
/api/v1/repositories/:repositoryId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| repository V1 |
DELETE |
/api/v1/repositories/:repositoryId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| service-chain |
GET |
/api/v1/service-chains |
Routé, conditionnel à confirmer |
Routé par Nginx ; PluginModule exige USE_SERVICE_CHAIN=true. |
| service-chain |
GET |
/api/v1/service-chains/:serviceChainId |
Routé, conditionnel à confirmer |
Routé par Nginx ; PluginModule exige USE_SERVICE_CHAIN=true. |
| service-chain |
POST |
/api/v1/service-chains/:serviceChainId/retry |
Routé, conditionnel à confirmer |
Routé par Nginx ; PluginModule exige USE_SERVICE_CHAIN=true. |
| service-chain |
POST |
/api/v1/service-chains/validate/:validationId |
Routé, conditionnel à confirmer |
Routé par Nginx ; PluginModule exige USE_SERVICE_CHAIN=true. |
| service-chain |
GET |
/api/v1/service-chains/:serviceChainId/flows |
Routé, conditionnel à confirmer |
Routé par Nginx ; PluginModule exige USE_SERVICE_CHAIN=true. |
| service-monitor |
GET |
/api/v1/health-services |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| service-monitor |
GET |
/api/v1/complete-services |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| service-monitor |
GET |
/api/v1/refresh-services |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| stage |
GET |
/api/v1/stages |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| stage |
POST |
/api/v1/stages |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| stage |
GET |
/api/v1/stages/:stageId/environments |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| stage |
PUT |
/api/v1/stages/:stageId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| stage |
DELETE |
/api/v1/stages/:stageId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| version |
GET |
/api/v1/version |
Enregistré, non routé |
Contrôleur chargé ; fallback location /api/ vers legacy. |
| healthz |
GET |
/api/v1/healthz |
Enregistré, non routé |
Contrôleur chargé ; fallback location /api/ vers legacy. |
| system-config |
GET |
/api/v1/system/plugins |
Enregistré, non routé |
Contrôleur chargé ; fallback location /api/ vers legacy. |
| system-config |
POST |
/api/v1/system/plugins |
Enregistré, non routé |
Contrôleur chargé ; fallback location /api/ vers legacy. |
| system-settings |
GET |
/api/v1/system/settings |
Enregistré, non routé |
Contrôleur chargé ; fallback location /api/ vers legacy. |
| system-settings |
POST |
/api/v1/system/settings |
Enregistré, non routé |
Contrôleur chargé ; fallback location /api/ vers legacy. |
| user |
GET |
/api/v1/users/matching |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| user |
GET |
/api/v1/auth |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| user |
GET |
/api/v1/users |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| user |
PATCH |
/api/v1/users |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| user-token |
GET |
/api/v1/user/tokens |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| user-token |
POST |
/api/v1/user/tokens |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| user-token |
DELETE |
/api/v1/user/tokens/:tokenId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| zone |
GET |
/api/v1/zones |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| zone |
POST |
/api/v1/zones |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| zone |
PUT |
/api/v1/zones/:zoneId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
| zone |
DELETE |
/api/v1/zones/:zoneId |
Legacy seul |
Contrat et router V1 legacy ; aucun contrôleur NestJS V1. |
Modularisation de
serverversserver-nestjsÉtats
chemin de chargement.
sans blocage structurel connu.
une variable
USE_*non versionnée.n'a pas de consommateur NestJS équivalent.
Registre V1
GET/api/v1/admin/rolesAdminRoleModuleabsent deMainModule.imports.POST/api/v1/admin/rolesAdminRoleModuleabsent deMainModule.imports.PATCH/api/v1/admin/rolesAdminRoleModuleabsent deMainModule.imports.GET/api/v1/admin/roles/member-countsAdminRoleModuleabsent deMainModule.imports.DELETE/api/v1/admin/roles/:roleIdAdminRoleModuleabsent deMainModule.imports.GET/api/v1/admin/tokensPOST/api/v1/admin/tokensDELETE/api/v1/admin/tokens/:tokenIdGET/api/v1/clustersPOST/api/v1/clustersGET/api/v1/clusters/:clusterIdGET/api/v1/clusters/usage/:clusterIdGET/api/v1/clusters/:clusterId/environmentsPUT/api/v1/clusters/:clusterIdDELETE/api/v1/clusters/:clusterIdPOST/api/v1/environmentsGET/api/v1/environmentsPUT/api/v1/environments/:environmentIdDELETE/api/v1/environments/:environmentIdGET/api/v1/logslocation /api/vers legacy.POST/api/v1/projectslocation ^~ /api/v1/projects.GET/api/v1/projects/:projectIdlocation ^~ /api/v1/projects.GET/api/v1/projectslocation ^~ /api/v1/projects.PUT/api/v1/projects/:projectIdlocation ^~ /api/v1/projects.DELETE/api/v1/projects/:projectIdlocation ^~ /api/v1/projects.GET/api/v1/projects/datalocation ^~ /api/v1/projects.POST/api/v1/projects-bulklocation /api/v1/projects-bulk.PUT/api/v1/projects/:projectId/hookslocation ^~ /api/v1/projects.GET/api/v1/projects/:projectId/secretslocation ^~ /api/v1/projects.GET/api/v1/projects/:projectId/members@OnEvent('projectMember.*').POST/api/v1/projects/:projectId/members@OnEvent('projectMember.*').PATCH/api/v1/projects/:projectId/members@OnEvent('projectMember.*').DELETE/api/v1/projects/:projectId/members/:userId@OnEvent('projectMember.*').GET/api/v1/projects/:projectId/roleslocation ^~ /api/v1/projects.POST/api/v1/projects/:projectId/roleslocation ^~ /api/v1/projects.PATCH/api/v1/projects/:projectId/roleslocation ^~ /api/v1/projects.GET/api/v1/projects/:projectId/roles/member-countslocation ^~ /api/v1/projects.DELETE/api/v1/projects/:projectId/roles/:roleIdlocation ^~ /api/v1/projects.GET/api/v1/projects/:projectId/serviceslocation ^~ /api/v1/projects.POST/api/v1/projects/:projectId/serviceslocation ^~ /api/v1/projects.POST/api/v1/repositoriesGET/api/v1/repositoriesPOST/api/v1/repositories/:repositoryId/syncPUT/api/v1/repositories/:repositoryIdDELETE/api/v1/repositories/:repositoryIdGET/api/v1/service-chainsPluginModuleexigeUSE_SERVICE_CHAIN=true.GET/api/v1/service-chains/:serviceChainIdPluginModuleexigeUSE_SERVICE_CHAIN=true.POST/api/v1/service-chains/:serviceChainId/retryPluginModuleexigeUSE_SERVICE_CHAIN=true.POST/api/v1/service-chains/validate/:validationIdPluginModuleexigeUSE_SERVICE_CHAIN=true.GET/api/v1/service-chains/:serviceChainId/flowsPluginModuleexigeUSE_SERVICE_CHAIN=true.GET/api/v1/health-servicesGET/api/v1/complete-servicesGET/api/v1/refresh-servicesGET/api/v1/stagesPOST/api/v1/stagesGET/api/v1/stages/:stageId/environmentsPUT/api/v1/stages/:stageIdDELETE/api/v1/stages/:stageIdGET/api/v1/versionlocation /api/vers legacy.GET/api/v1/healthzlocation /api/vers legacy.GET/api/v1/system/pluginslocation /api/vers legacy.POST/api/v1/system/pluginslocation /api/vers legacy.GET/api/v1/system/settingslocation /api/vers legacy.POST/api/v1/system/settingslocation /api/vers legacy.GET/api/v1/users/matchingGET/api/v1/authGET/api/v1/usersPATCH/api/v1/usersGET/api/v1/user/tokensPOST/api/v1/user/tokensDELETE/api/v1/user/tokens/:tokenIdGET/api/v1/zonesPOST/api/v1/zonesPUT/api/v1/zones/:zoneIdDELETE/api/v1/zones/:zoneIdAnnexes hors décompte V1
routes repository sous
/api/v2/projects/:projectId/...sont chargées parNestJS et routées par
location /api/v2/. Elles ne retirent pas les routesV1
/api/v1/environmentset/api/v1/repositories./api/v1/projects/:projectId/deploymentssont chargées par NestJS etcouvertes par leur règle Nginx dédiée.
Événements et plugins
des consommateurs
project.upsertetproject.delete; leur chargement estconditionnel à
USE_*, sauf Keycloak.projectMember.upsertetprojectMember.deleten'ont aucun consommateur.adminRole.upsertetadminRole.deleten'ont aucun consommateur et nepassent pas par
capturePluginResult.Définition du fini
d'enregistrement, de routage et, si applicable, de parité d'événements.
d'événement requis est absent.
nginx -t.Références
apps/server/src/resources/index.tsapps/nginx-strangler/conf.d/routing.confapps/server-nestjs/documentation/Modularisation-de-console-server/MODULARISATION-STATUT.mddocs/superpowers/specs/2026-09-16-nestjs-modularisation-status-design.md