feat(07-03): SettingsModule — SMTP config backend + connection test (DKV-05)
- SmtpConfigDto: host/port/encryption/username/password/fromAddress with class-validator - SettingsService: getSmtpConfig (SMTP_SAFE_SELECT, no password), saveSmtpConfig (AES-256-GCM encryption via CalendarCryptoService, preserve existing password on empty), getDecryptedSmtpConfig (internal, used by DkvMailService), testSmtpConfig (nodemailer.verify(), returns boolean, T-07-16), getStartupSmtpConfig (tenant-agnostic, used by MailModule factory, D-06) - SettingsController: GET/PUT /settings/smtp + POST /settings/smtp/test, all @Roles(ADMIN, SUPER_ADMIN) - SettingsModule: imports CalendarModule, exports SettingsService - AppModule: imports SettingsModule
This commit is contained in:
@@ -14,6 +14,7 @@ import { DashboardModule } from './dashboard/dashboard.module';
|
||||
import { DomaincheckModule } from './domaincheck/domaincheck.module';
|
||||
import { ModuleRegistryModule } from './module-registry/module-registry.module';
|
||||
import { PrismaModule } from './prisma/prisma.module';
|
||||
import { SettingsModule } from './settings/settings.module';
|
||||
import { TenantMiddleware } from './tenant/tenant.middleware';
|
||||
import { TenantModule } from './tenant/tenant.module';
|
||||
import { UserModule } from './user/user.module';
|
||||
@@ -33,6 +34,7 @@ import { UserModule } from './user/user.module';
|
||||
DomaincheckModule,
|
||||
DashboardModule,
|
||||
CalendarModule,
|
||||
SettingsModule,
|
||||
],
|
||||
providers: [
|
||||
// Global JWT guard: all routes require auth unless @Public()
|
||||
|
||||
Reference in New Issue
Block a user