Files
eden/apps/api/src/common/rate-limit/rate-limit.module.ts
Matheus (Handix) 9c14671e19 feat(signatures): UI completa do módulo + rate limiting em rotas públicas
Fecha as duas pendências da leva anterior (módulo de Assinatura
Eletrônica): tela de backoffice para gerenciar envelopes (criação,
envio, cancelamento, checkpoint/finalização, auditoria) e as duas
páginas públicas (/assinar/:token, /verificar/:verificationId).

Backend: novos endpoints de streaming de PDF (documento congelado e
PDF final consolidado, autenticados e via token público) que faltavam
para a UI funcionar — o signatário não tinha como ver o próprio
documento antes de confirmar leitura. Rate limiting (guard próprio,
em memória, chaves por IP e por token) em todas as rotas sem sessão:
auth (login/mfa/forgot-password/reset-password/refresh/logout) e todo
o fluxo público de assinatura/verificação.

Suíte: 77/77 verdes. pnpm turbo run typecheck build: 28/28.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 21:51:18 -03:00

17 lines
665 B
TypeScript

import { Module } from "@nestjs/common";
import { RateLimiterService } from "./rate-limiter.service.js";
import { RateLimitGuard } from "./rate-limit.guard.js";
/**
* Imported by every module that has public (no-session) routes. Nest
* dedupes module imports within one application graph, so AuthModule and
* SignaturesModule importing this both resolve to the SAME
* RateLimiterService instance — one shared in-memory store, bucket names
* are what keep routes from colliding (see rate-limit.decorator.ts).
*/
@Module({
providers: [RateLimiterService, RateLimitGuard],
exports: [RateLimiterService, RateLimitGuard],
})
export class RateLimitModule {}