feat(backend): service de configuration avec cache et encryption (#5)
Implémentation du service de configuration dynamique pour le déploiement on-premise de l'application. Nouveaux fichiers : - entities/configuration.entity.ts : Entité TypeORM - modules/config/config.service.ts : Service avec cache et encryption - modules/config/config.module.ts : Module NestJS - modules/config/index.ts : Export centralisé Fonctionnalités : ✅ Cache en mémoire au démarrage (16 configurations) ✅ Chiffrement AES-256-CBC pour valeurs sensibles ✅ Conversion automatique de types (string/number/boolean/json) ✅ Méthodes get/set avec traçabilité ✅ Récupération par catégorie (email/app/security) ✅ Masquage automatique des mots de passe ✅ Support setup wizard (isSetupCompleted) Sécurité : - Clé de chiffrement depuis CONFIG_ENCRYPTION_KEY - Format iv:encrypted pour AES-256-CBC - Mots de passe masqués dans les API Intégration : - AppConfigModule ajouté à app.module.ts - Service global exporté pour utilisation dans toute l'app - Chargement automatique au démarrage (OnModuleInit) Tests : ✅ Build Docker réussi ✅ 16 configurations chargées en cache ✅ Service démarré sans erreur Ref: #5
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { Configuration } from '../../entities/configuration.entity';
|
||||
import { AppConfigService } from './config.service';
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature([Configuration])],
|
||||
providers: [AppConfigService],
|
||||
exports: [AppConfigService],
|
||||
})
|
||||
export class AppConfigModule {}
|
||||
|
||||
Reference in New Issue
Block a user