1- import { DynamicModule , Module } from '@nestjs/common' ;
2- import { RouterModule } from '@nestjs/core' ;
3- import { AgentsModule } from './agents/agents.module' ;
4- import { AuthModule } from './auth/auth.module' ;
5- import { BackendsModule } from './backends/backends.module' ;
6- import { CoreController } from './core.controller' ;
7- import { CoreService } from './core.service' ;
8- import { JobsModule } from './jobs/jobs.module' ;
9- import { KeyringsModule } from './keyrings/keyrings.module' ;
10- import { LoggerModule } from './logger/logger.module' ;
11- import { TasksModule } from './tasks/tasks.module' ;
12- import { FilestorageModule } from './filestorage/filestorage.module' ;
13- import { AuditsModule } from './audits/audits.module' ;
14- import { HealthModule } from './health/health.module' ;
1+ import { DynamicModule , Module } from '@nestjs/common'
2+ import { RouterModule } from '@nestjs/core'
3+ import { AgentsModule } from './agents/agents.module'
4+ import { AuthModule } from './auth/auth.module'
5+ import { BackendsModule } from './backends/backends.module'
6+ import { CoreController } from './core.controller'
7+ import { CoreService } from './core.service'
8+ import { JobsModule } from './jobs/jobs.module'
9+ import { KeyringsModule } from './keyrings/keyrings.module'
10+ import { LoggerModule } from './logger/logger.module'
11+ import { TasksModule } from './tasks/tasks.module'
12+ import { FilestorageModule } from './filestorage/filestorage.module'
13+ import { AuditsModule } from './audits/audits.module'
14+ import { HealthModule } from './health/health.module'
1515
16+ /**
17+ * Module Core - Fonctionnalités essentielles du système.
18+ *
19+ * Ce module regroupe tous les sous-modules et fonctionnalités de base nécessaires
20+ * au fonctionnement de l'orchestrateur Sesame. Il agit comme un hub central qui
21+ * organise et expose les API des différents composants du système.
22+ *
23+ * @module CoreModule
24+ *
25+ * @description
26+ * Sous-modules intégrés :
27+ * - **AuthModule** : Authentification et autorisation des agents
28+ * - **AgentsModule** : Gestion des agents (utilisateurs/systèmes)
29+ * - **AuditsModule** : Système d'audit et d'historique des modifications
30+ * - **BackendsModule** : Gestion des backends de connexion
31+ * - **LoggerModule** : Système de logging centralisé
32+ * - **KeyringsModule** : Gestion des clés cryptographiques
33+ * - **JobsModule** : Gestion des tâches asynchrones et files d'attente
34+ * - **TasksModule** : Gestion des tâches planifiées
35+ * - **FilestorageModule** : Stockage et gestion de fichiers
36+ * - **HealthModule** : Vérification de l'état de santé du système
37+ *
38+ * Architecture :
39+ * - Tous les sous-modules sont automatiquement préfixés avec '/core' dans les routes
40+ * - Utilise le RouterModule pour organiser la hiérarchie des routes
41+ * - Expose un service CoreService pour la logique transversale
42+ */
1643@Module ( {
1744 imports : [
1845 AuthModule ,
@@ -30,6 +57,21 @@ import { HealthModule } from './health/health.module';
3057 controllers : [ CoreController ] ,
3158} )
3259export class CoreModule {
60+ /**
61+ * Enregistre le module Core en mode dynamique avec le routage configuré.
62+ *
63+ * Cette méthode configure automatiquement le préfixe '/core' pour tous les
64+ * sous-modules importés, créant une hiérarchie de routes cohérente.
65+ *
66+ * @static
67+ * @returns {DynamicModule } Le module configuré avec le RouterModule
68+ *
69+ * @description
70+ * La méthode utilise les métadonnées de réflexion pour récupérer dynamiquement
71+ * tous les modules importés et les enregistrer comme enfants de la route '/core'.
72+ * Cela permet d'ajouter ou retirer des sous-modules sans modifier la configuration
73+ * de routage manuellement.
74+ */
3375 public static register ( ) : DynamicModule {
3476 return {
3577 module : this ,
0 commit comments