c1dee15258
Событие comment.suggestion_applied/dismissed раньше улетало в NoopAuditService и молча терялось; при childless-ветке apply/dismiss комментарий hard-delete'ится, поэтому восстановить, кто и что решил, было невозможно. - DatabaseAuditService пишет в уже существующую таблицу `audit` (миграция 20260228T223532); actor/workspace/ip берутся из CLS AuditContext, вне HTTP — из явного контекста (logWithContext). Аудит — побочная запись: сбой записи не ломает исходный запрос, EXCLUDED_AUDIT_EVENTS отбрасываются. - Биндинг AUDIT_SERVICE переключён с Noop на DatabaseAuditService. - payload apply/dismiss дополнен suggestedText/selection/commentAuthor/ decidedBy — на childless-ветке это единственная уцелевшая запись. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
20 lines
604 B
TypeScript
20 lines
604 B
TypeScript
import { Global, Module } from '@nestjs/common';
|
|
import { AUDIT_SERVICE } from './audit.service';
|
|
import { DatabaseAuditService } from './database-audit.service';
|
|
|
|
// #496: bind the audit token to a real DB-backed trail (was NoopAuditService,
|
|
// which silently dropped every event). Kysely (@Global DatabaseModule) and
|
|
// ClsService (@Global ClsModule) are both globally available, so this module
|
|
// needs no extra imports.
|
|
@Global()
|
|
@Module({
|
|
providers: [
|
|
{
|
|
provide: AUDIT_SERVICE,
|
|
useClass: DatabaseAuditService,
|
|
},
|
|
],
|
|
exports: [AUDIT_SERVICE],
|
|
})
|
|
export class AuditModule {}
|