- 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.
59 lines
1.2 KiB
TypeScript
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;
|
|
|