Repository navigation
v1.2.0 — recrutamento com currículo em S3, ciclo de vida e busca
Primeira release com o módulo de recrutamento completo: currículo em S3, ciclo de vida do processo seletivo e busca de inscrições.
Novidades
Currículo do candidato em bucket S3 privado — upload pelo formulário público, validação do conteúdo do PDF (não confia em extensão nem em MIME), antivírus e URL pré-assinada de validade curta. O bucket nunca fica público.
Módulo de email — porta Mailer, templates versionados e entrega só depois do commit da transação, para ninguém receber "inscrição confirmada" de uma inscrição que não passou.
Notificação de inscrição para quem tem recruitment:read, resolvida em consulta de lote. Alumni ficam de fora.
Ciclo de vida do processo seletivo — opens_at, closes_at, result_at e o estado IN_REVIEW. O processo para de aceitar inscrição fora do prazo sem depender de alguém lembrar de fechar e sem job agendado.
Listagem de processos paginada, com filtro por status efetivo e métricas agregadas (application_count, last_application_at).
Curso e período tipados — curso sai do catálogo da EJ, período vira número, e o processo pode declarar a faixa que aceita (min_term/max_term).
Busca de inscrições por nome ou e-mail ignorando acento, dentro de um processo e no histórico inteiro da EJ.
Correção: upload acima do limite agora devolve 413 em vez de derrubar a conexão.
Banco
Migrations V11 a V16. Requer as extensões unaccent e pg_trgm (já instaladas em produção antes desta release).
A V11 não é aditiva: renomeia candidacies para candidate_applications, migra os dados de candidates para dentro e remove as tabelas candidates e candidate_links.
Verificação
170 testes, 0 falhas — rodados também contra postgres:15-alpine, a mesma imagem de produção.