Files
sgse-app/packages/backend/convex/crons.ts
deyvisonwanderley 88983ea297 feat: integrate rate limiting and enhance security features
- Added @convex-dev/rate-limiter dependency to manage request limits effectively.
- Implemented rate limiting configurations for IPs, users, and endpoints to prevent abuse and enhance security.
- Introduced new security analysis endpoint to detect potential attacks based on incoming requests.
- Updated backend schema to include rate limit configurations and various cyber attack types for improved incident tracking.
- Enhanced existing security functions to incorporate rate limiting checks, ensuring robust protection against brute force and other attacks.
2025-11-16 01:20:57 -03:00

59 lines
1.2 KiB
TypeScript

import { cronJobs } from "convex/server";
import { internal } from "./_generated/api";
const crons = cronJobs();
// Enviar mensagens agendadas a cada minuto
crons.interval(
"enviar-mensagens-agendadas",
{ minutes: 1 },
internal.chat.enviarMensagensAgendadas
);
// Processar fila de emails (incluindo agendados) a cada minuto
crons.interval(
"processar-fila-emails",
{ minutes: 1 },
internal.email.processarFilaEmails
);
// Limpar indicadores de digitação antigos (>10s) a cada minuto
crons.interval(
"limpar-indicadores-digitacao",
{ minutes: 1 },
internal.chat.limparIndicadoresDigitacao
);
// Atualizar status de férias dos funcionários diariamente
crons.interval(
"atualizar-status-ferias",
{ hours: 24 },
internal.ferias.atualizarStatusTodosFuncionarios,
{}
);
crons.interval(
"expirar-bloqueios-ip-automaticos",
{ minutes: 5 },
internal.security.expirarBloqueiosIpAutomaticos,
{}
);
crons.interval(
"sincronizar-threat-intel",
{ hours: 2 },
internal.security.atualizarThreatIntelFeedsInternal,
{}
);
// Monitorar logs de login e detectar brute force a cada 5 minutos
crons.interval(
"monitorar-logs-login-brute-force",
{ minutes: 5 },
internal.security.monitorarLogsLogin,
{}
);
export default crons;