@hed-hog/core 0.0.108 → 0.0.110

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"mail.service.d.ts","sourceRoot":"","sources":["../../src/mail/mail.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,qBACa,WAAW;IAMpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAIjB,aAAa,EAAE,aAAa,EAE5B,eAAe,EAAE,eAAe,EAEhC,aAAa,EAAE,aAAa,EAE5B,OAAO,EAAE,cAAc;IAG1C;;OAEG;IACG,YAAY;;;;IA8EZ,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa;;;;;;;;;IAuCpD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;IAqC9B,MAAM,CAAC,IAAI,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;IAqCtB,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;IA+EpD,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAetD,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,oBAAoB;YAuCpC,eAAe;YAYf,eAAe;IAqB7B,OAAO,CAAC,mBAAmB;IAerB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EACjC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,GACV,EAAE,WAAW;IA8CR,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,SAAS;;;;;;;;;;;CAwGrD"}
1
+ {"version":3,"file":"mail.service.d.ts","sourceRoot":"","sources":["../../src/mail/mail.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,qBACa,WAAW;IAMpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAIjB,aAAa,EAAE,aAAa,EAE5B,eAAe,EAAE,eAAe,EAEhC,aAAa,EAAE,aAAa,EAE5B,OAAO,EAAE,cAAc;IAG1C;;OAEG;IACG,YAAY;;;;IA8EZ,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa;;;;;;;;;IAuCpD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;IAqC9B,MAAM,CAAC,IAAI,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;IAqCtB,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;IA+EpD,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAetD,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,oBAAoB;YAmCpC,eAAe;YAYf,eAAe;IAqB7B,OAAO,CAAC,mBAAmB;IAerB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EACjC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,GACV,EAAE,WAAW;IAiCR,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,SAAS;;;;;;;;;;;CAwGrD"}
@@ -321,9 +321,6 @@ let MailService = MailService_1 = class MailService {
321
321
  'configured-mail',
322
322
  'mail-from'
323
323
  ]);
324
- console.log({
325
- settings
326
- });
327
324
  if (!settings['configured-mail']) {
328
325
  this.logger.warn('Mail service is not configured. Aborting sending email.');
329
326
  return;
@@ -391,20 +388,9 @@ let MailService = MailService_1 = class MailService {
391
388
  'configured-mail',
392
389
  'mail-from'
393
390
  ]);
394
- console.log({
395
- settings
396
- });
397
391
  if (!settings['configured-mail']) {
398
392
  throw new common_1.BadRequestException('Mail service is not configured.');
399
393
  }
400
- console.log('sendTestMail data:', {
401
- slug,
402
- email,
403
- subject,
404
- body,
405
- variables,
406
- settings
407
- });
408
394
  try {
409
395
  const parsedSubject = variables
410
396
  ? this.interpolateTemplate(subject, variables)
@@ -1 +1 @@
1
- {"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../src/mail/mail.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../src/mail/mail.service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { PrismaService } from '@hed-hog/api-prisma';
2
+ import { SettingService } from '../setting/setting.service';
2
3
  export declare class TasksService {
3
4
  private readonly prismaService;
5
+ private readonly settingService;
4
6
  private readonly logger;
5
- constructor(prismaService: PrismaService);
7
+ constructor(prismaService: PrismaService, settingService: SettingService);
6
8
  /**
7
9
  * Executa todas as tarefas de limpeza do banco de dados diariamente à meia-noite.
8
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"task.service.d.ts","sourceRoot":"","sources":["../../src/task/task.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,qBACa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3B,aAAa,EAAE,aAAa;IAEzD;;;;;OAKG;IAEG,KAAK;IAqBX;;;;;;;;;;;;OAYG;YACW,yBAAyB;IAuBvC;;;;;;;;;;;;;OAaG;YACW,oBAAoB;IAuBlC;;;;;;;;;;;;;;;;;OAiBG;YACW,oCAAoC;IA8BlD;;;;;;;;;;;;;;;;;;;;OAoBG;YACW,uCAAuC;CAoCtD"}
1
+ {"version":3,"file":"task.service.d.ts","sourceRoot":"","sources":["../../src/task/task.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,qBACa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAGrC,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc;IAGjD;;;;;OAKG;IAEG,KAAK;IAqBX;;;;;;;;;;;;OAYG;YACW,yBAAyB;IAyBvC;;;;;;;;;;;;;OAaG;YACW,oBAAoB;IA0BlC;;;;;;;;;;;;;;;;;OAiBG;YACW,oCAAoC;IAgClD;;;;;;;;;;;;;;;;;;;;OAoBG;YACW,uCAAuC;CAoCtD"}
@@ -14,9 +14,12 @@ exports.TasksService = void 0;
14
14
  const api_prisma_1 = require("@hed-hog/api-prisma");
15
15
  const common_1 = require("@nestjs/common");
16
16
  const schedule_1 = require("@nestjs/schedule");
17
+ const client_1 = require("@prisma/client");
18
+ const setting_service_1 = require("../setting/setting.service");
17
19
  let TasksService = TasksService_1 = class TasksService {
18
- constructor(prismaService) {
20
+ constructor(prismaService, settingService) {
19
21
  this.prismaService = prismaService;
22
+ this.settingService = settingService;
20
23
  this.logger = new common_1.Logger(TasksService_1.name);
21
24
  }
22
25
  /**
@@ -54,20 +57,22 @@ let TasksService = TasksService_1 = class TasksService {
54
57
  * Limite: 20.000 registros por execução para evitar lock prolongado da tabela.
55
58
  */
56
59
  async clearExpiredMfaChallenges() {
60
+ const settings = await this.settingService.getSettingValues(['cleanup-batch-limit']);
61
+ const batchLimit = Number(settings['cleanup-batch-limit']) || 20000;
57
62
  this.logger.verbose('Starting cleanup of expired/verified MFA challenges');
58
63
  const startAt = Date.now();
59
- await this.prismaService.$queryRaw `
64
+ await this.prismaService.$executeRaw `
60
65
  WITH del AS (
61
66
  SELECT user_mfa_id
62
67
  FROM user_mfa_challenge
63
68
  WHERE expires_at < now()
64
69
  OR verified_at IS NOT NULL
65
70
  ORDER BY user_mfa_id
66
- LIMIT 20000
71
+ LIMIT ${batchLimit}
67
72
  )
68
73
  DELETE FROM user_mfa_challenge c
69
74
  USING del
70
- WHERE c.user_mfa_id = del.user_mfa_id;
75
+ WHERE c.user_mfa_id = del.user_mfa_id
71
76
  `;
72
77
  this.logger.verbose(`Expired/verified MFA challenges cleaned up in ${Date.now() - startAt}ms`);
73
78
  }
@@ -86,20 +91,23 @@ let TasksService = TasksService_1 = class TasksService {
86
91
  * Limite: 20.000 registros por execução para evitar lock prolongado da tabela.
87
92
  */
88
93
  async clearExpiredSessions() {
94
+ const settings = await this.settingService.getSettingValues(['cleanup-batch-limit', 'session-retention-days']);
95
+ const batchLimit = Number(settings['cleanup-batch-limit']) || 20000;
96
+ const retentionDays = Number(settings['session-retention-days']) || 90;
89
97
  this.logger.verbose('Starting cleanup of expired sessions');
90
98
  const startAt = Date.now();
91
- await this.prismaService.$queryRaw `
99
+ await this.prismaService.$executeRaw `
92
100
  WITH del AS (
93
101
  SELECT id
94
102
  FROM user_session
95
103
  WHERE expires_at < now()
96
- AND created_at < (now() - interval '90 days')
104
+ AND created_at < (now() - ${client_1.Prisma.sql `INTERVAL '${client_1.Prisma.raw(String(retentionDays))} days'`})
97
105
  ORDER BY id
98
- LIMIT 20000
106
+ LIMIT ${batchLimit}
99
107
  )
100
108
  DELETE FROM user_session s
101
109
  USING del
102
- WHERE s.id = del.id;
110
+ WHERE s.id = del.id
103
111
  `;
104
112
  this.logger.verbose(`Expired sessions cleaned up in ${Date.now() - startAt}ms`);
105
113
  }
@@ -122,15 +130,17 @@ let TasksService = TasksService_1 = class TasksService {
122
130
  * Limite: 20.000 registros por execução para evitar lock prolongado das tabelas.
123
131
  */
124
132
  async clearExpiredUserIdentifierChallenges() {
133
+ const settings = await this.settingService.getSettingValues(['cleanup-batch-limit']);
134
+ const batchLimit = Number(settings['cleanup-batch-limit']) || 20000;
125
135
  this.logger.verbose('Starting cleanup of expired user identifier challenges');
126
136
  const startAt = Date.now();
127
- await this.prismaService.$queryRaw `
137
+ await this.prismaService.$executeRaw `
128
138
  WITH expired_challenges AS (
129
139
  SELECT user_identifier_id
130
140
  FROM user_identifier_challenge
131
141
  WHERE expires_at < now() AND verified_at IS NULL
132
142
  ORDER BY user_identifier_id
133
- LIMIT 20000
143
+ LIMIT ${batchLimit}
134
144
  ),
135
145
  deleted_challenges AS (
136
146
  DELETE FROM user_identifier_challenge c
@@ -142,7 +152,7 @@ let TasksService = TasksService_1 = class TasksService {
142
152
  DELETE FROM user_identifier ui
143
153
  USING deleted_challenges
144
154
  WHERE ui.id = deleted_challenges.user_identifier_id
145
- AND ui.verified_at IS NULL;
155
+ AND ui.verified_at IS NULL
146
156
  `;
147
157
  this.logger.verbose(`Expired user identifier challenges and unverified identifiers cleaned up in ${Date.now() - startAt}ms`);
148
158
  }
@@ -168,9 +178,11 @@ let TasksService = TasksService_1 = class TasksService {
168
178
  * Limite: 20.000 registros por execução para evitar lock prolongado das tabelas.
169
179
  */
170
180
  async clearUnverifiedMfaWithExpiredChallenges() {
181
+ const settings = await this.settingService.getSettingValues(['cleanup-batch-limit']);
182
+ const batchLimit = Number(settings['cleanup-batch-limit']) || 20000;
171
183
  this.logger.verbose('Starting cleanup of unverified MFA with expired challenges');
172
184
  const startAt = Date.now();
173
- await this.prismaService.$queryRaw `
185
+ await this.prismaService.$executeRaw `
174
186
  WITH unverified_mfa AS (
175
187
  SELECT um.id
176
188
  FROM user_mfa um
@@ -181,7 +193,7 @@ let TasksService = TasksService_1 = class TasksService {
181
193
  WHERE umc.user_mfa_id = um.id
182
194
  AND umc.expires_at >= now()
183
195
  )
184
- LIMIT 20000
196
+ LIMIT ${batchLimit}
185
197
  ),
186
198
  deleted_challenges AS (
187
199
  DELETE FROM user_mfa_challenge umc
@@ -191,7 +203,7 @@ let TasksService = TasksService_1 = class TasksService {
191
203
  )
192
204
  DELETE FROM user_mfa um
193
205
  USING unverified_mfa
194
- WHERE um.id = unverified_mfa.id;
206
+ WHERE um.id = unverified_mfa.id
195
207
  `;
196
208
  this.logger.verbose(`Unverified MFA with expired challenges cleaned up in ${Date.now() - startAt}ms`);
197
209
  }
@@ -205,6 +217,7 @@ __decorate([
205
217
  ], TasksService.prototype, "clear", null);
206
218
  exports.TasksService = TasksService = TasksService_1 = __decorate([
207
219
  (0, common_1.Injectable)(),
208
- __metadata("design:paramtypes", [api_prisma_1.PrismaService])
220
+ __metadata("design:paramtypes", [api_prisma_1.PrismaService,
221
+ setting_service_1.SettingService])
209
222
  ], TasksService);
210
223
  //# sourceMappingURL=task.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../src/task/task.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../src/task/task.service.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,10 @@
42
42
  role:
43
43
  - where:
44
44
  slug: admin
45
+ - where:
46
+ slug: admin-access
47
+ - where:
48
+ slug: user
45
49
  - url: /menu/system
46
50
  method: GET
47
51
  relations:
@@ -28,6 +28,38 @@
28
28
  pt: A URL da API do sistema
29
29
  value: http://localhost:3100
30
30
  user_override: false
31
+ - slug: maintenance
32
+ icon: database-cog
33
+ name:
34
+ en: Maintenance
35
+ pt: Manutenção
36
+ description:
37
+ en: Database maintenance and cleanup settings.
38
+ pt: Configurações de manutenção e limpeza do banco de dados.
39
+ relations:
40
+ setting:
41
+ - slug: cleanup-batch-limit
42
+ type: number
43
+ component: input-number
44
+ name:
45
+ en: Cleanup Batch Limit
46
+ pt: Limite de Lote de Limpeza
47
+ description:
48
+ en: Maximum number of records to delete per cleanup task execution to avoid long table locks
49
+ pt: Número máximo de registros a deletar por execução de tarefa de limpeza para evitar locks prolongados da tabela
50
+ value: 20000
51
+ user_override: false
52
+ - slug: session-retention-days
53
+ type: number
54
+ component: input-number
55
+ name:
56
+ en: Session Retention Days
57
+ pt: Dias de Retenção de Sessão
58
+ description:
59
+ en: Number of days to retain expired sessions before permanent deletion for audit purposes
60
+ pt: Número de dias para reter sessões expiradas antes da exclusão permanente para fins de auditoria
61
+ value: 90
62
+ user_override: false
31
63
  - slug: authentication
32
64
  icon: lock-password
33
65
  name:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/core",
3
- "version": "0.0.108",
3
+ "version": "0.0.110",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -332,10 +332,6 @@ export class MailService {
332
332
  'mail-from'
333
333
  ]);
334
334
 
335
- console.log({
336
- settings
337
- })
338
-
339
335
  if (!settings['configured-mail']) {
340
336
  this.logger.warn('Mail service is not configured. Aborting sending email.');
341
337
  return;
@@ -425,23 +421,10 @@ export class MailService {
425
421
  'mail-from'
426
422
  ]);
427
423
 
428
- console.log({
429
- settings
430
- })
431
-
432
424
  if (!settings['configured-mail']) {
433
425
  throw new BadRequestException('Mail service is not configured.');
434
426
  }
435
427
 
436
- console.log('sendTestMail data:', {
437
- slug,
438
- email,
439
- subject,
440
- body,
441
- variables,
442
- settings
443
- })
444
-
445
428
  try {
446
429
  const parsedSubject = variables
447
430
  ? this.interpolateTemplate(subject, variables)
@@ -1,12 +1,17 @@
1
1
  import { PrismaService } from '@hed-hog/api-prisma';
2
2
  import { Injectable, Logger } from '@nestjs/common';
3
3
  import { Cron, CronExpression } from '@nestjs/schedule';
4
+ import { Prisma } from '@prisma/client';
5
+ import { SettingService } from '../setting/setting.service';
4
6
 
5
7
  @Injectable()
6
8
  export class TasksService {
7
9
  private readonly logger = new Logger(TasksService.name);
8
10
 
9
- constructor(private readonly prismaService: PrismaService) {}
11
+ constructor(
12
+ private readonly prismaService: PrismaService,
13
+ private readonly settingService: SettingService,
14
+ ) {}
10
15
 
11
16
  /**
12
17
  * Executa todas as tarefas de limpeza do banco de dados diariamente à meia-noite.
@@ -50,21 +55,23 @@ export class TasksService {
50
55
  * Limite: 20.000 registros por execução para evitar lock prolongado da tabela.
51
56
  */
52
57
  private async clearExpiredMfaChallenges(): Promise<void> {
58
+ const settings = await this.settingService.getSettingValues(['cleanup-batch-limit']);
59
+ const batchLimit = Number(settings['cleanup-batch-limit']) || 20000;
53
60
  this.logger.verbose('Starting cleanup of expired/verified MFA challenges');
54
61
  const startAt = Date.now();
55
62
 
56
- await this.prismaService.$queryRaw`
63
+ await this.prismaService.$executeRaw`
57
64
  WITH del AS (
58
65
  SELECT user_mfa_id
59
66
  FROM user_mfa_challenge
60
67
  WHERE expires_at < now()
61
68
  OR verified_at IS NOT NULL
62
69
  ORDER BY user_mfa_id
63
- LIMIT 20000
70
+ LIMIT ${batchLimit}
64
71
  )
65
72
  DELETE FROM user_mfa_challenge c
66
73
  USING del
67
- WHERE c.user_mfa_id = del.user_mfa_id;
74
+ WHERE c.user_mfa_id = del.user_mfa_id
68
75
  `;
69
76
 
70
77
  this.logger.verbose(
@@ -87,21 +94,24 @@ export class TasksService {
87
94
  * Limite: 20.000 registros por execução para evitar lock prolongado da tabela.
88
95
  */
89
96
  private async clearExpiredSessions(): Promise<void> {
97
+ const settings = await this.settingService.getSettingValues(['cleanup-batch-limit', 'session-retention-days']);
98
+ const batchLimit = Number(settings['cleanup-batch-limit']) || 20000;
99
+ const retentionDays = Number(settings['session-retention-days']) || 90;
90
100
  this.logger.verbose('Starting cleanup of expired sessions');
91
101
  const startAt = Date.now();
92
102
 
93
- await this.prismaService.$queryRaw`
103
+ await this.prismaService.$executeRaw`
94
104
  WITH del AS (
95
105
  SELECT id
96
106
  FROM user_session
97
107
  WHERE expires_at < now()
98
- AND created_at < (now() - interval '90 days')
108
+ AND created_at < (now() - ${Prisma.sql`INTERVAL '${Prisma.raw(String(retentionDays))} days'`})
99
109
  ORDER BY id
100
- LIMIT 20000
110
+ LIMIT ${batchLimit}
101
111
  )
102
112
  DELETE FROM user_session s
103
113
  USING del
104
- WHERE s.id = del.id;
114
+ WHERE s.id = del.id
105
115
  `;
106
116
 
107
117
  this.logger.verbose(
@@ -128,16 +138,18 @@ export class TasksService {
128
138
  * Limite: 20.000 registros por execução para evitar lock prolongado das tabelas.
129
139
  */
130
140
  private async clearExpiredUserIdentifierChallenges(): Promise<void> {
141
+ const settings = await this.settingService.getSettingValues(['cleanup-batch-limit']);
142
+ const batchLimit = Number(settings['cleanup-batch-limit']) || 20000;
131
143
  this.logger.verbose('Starting cleanup of expired user identifier challenges');
132
144
  const startAt = Date.now();
133
145
 
134
- await this.prismaService.$queryRaw`
146
+ await this.prismaService.$executeRaw`
135
147
  WITH expired_challenges AS (
136
148
  SELECT user_identifier_id
137
149
  FROM user_identifier_challenge
138
150
  WHERE expires_at < now() AND verified_at IS NULL
139
151
  ORDER BY user_identifier_id
140
- LIMIT 20000
152
+ LIMIT ${batchLimit}
141
153
  ),
142
154
  deleted_challenges AS (
143
155
  DELETE FROM user_identifier_challenge c
@@ -149,7 +161,7 @@ export class TasksService {
149
161
  DELETE FROM user_identifier ui
150
162
  USING deleted_challenges
151
163
  WHERE ui.id = deleted_challenges.user_identifier_id
152
- AND ui.verified_at IS NULL;
164
+ AND ui.verified_at IS NULL
153
165
  `;
154
166
 
155
167
  this.logger.verbose(
@@ -179,12 +191,14 @@ export class TasksService {
179
191
  * Limite: 20.000 registros por execução para evitar lock prolongado das tabelas.
180
192
  */
181
193
  private async clearUnverifiedMfaWithExpiredChallenges(): Promise<void> {
194
+ const settings = await this.settingService.getSettingValues(['cleanup-batch-limit']);
195
+ const batchLimit = Number(settings['cleanup-batch-limit']) || 20000;
182
196
  this.logger.verbose(
183
197
  'Starting cleanup of unverified MFA with expired challenges',
184
198
  );
185
199
  const startAt = Date.now();
186
200
 
187
- await this.prismaService.$queryRaw`
201
+ await this.prismaService.$executeRaw`
188
202
  WITH unverified_mfa AS (
189
203
  SELECT um.id
190
204
  FROM user_mfa um
@@ -195,7 +209,7 @@ export class TasksService {
195
209
  WHERE umc.user_mfa_id = um.id
196
210
  AND umc.expires_at >= now()
197
211
  )
198
- LIMIT 20000
212
+ LIMIT ${batchLimit}
199
213
  ),
200
214
  deleted_challenges AS (
201
215
  DELETE FROM user_mfa_challenge umc
@@ -205,13 +219,11 @@ export class TasksService {
205
219
  )
206
220
  DELETE FROM user_mfa um
207
221
  USING unverified_mfa
208
- WHERE um.id = unverified_mfa.id;
222
+ WHERE um.id = unverified_mfa.id
209
223
  `;
210
224
 
211
225
  this.logger.verbose(
212
226
  `Unverified MFA with expired challenges cleaned up in ${Date.now() - startAt}ms`,
213
227
  );
214
228
  }
215
-
216
-
217
229
  }