Core Docs
Backend

Visão Geral

Stack e arquitetura do gnoqcore-backend.

Stack

  • Framework: Micronaut 4.x
  • Linguagem: Java 21
  • Build: Maven
  • Banco de dados: PostgreSQL (via Hibernate JPA + Micronaut Data, migrations com Flyway) para os dados transacionais, e MongoDB para o log de Auditoria
  • Pacote base: com.erplider

Para rodar localmente (variáveis de ambiente, migrations, etc.), veja Configuração e Execução Local.

Arquitetura

O código segue Clean Architecture, com cada módulo de domínio (candidate, vacancy, client, user, etc.) organizado em três camadas:

com.erplider.<modulo>/
├── domain/
│   └── entity/          # entidades JPA
├── application/
│   ├── dto/              # request/response DTOs
│   └── service/          # regras de negócio
└── infra/
    ├── controller/        # endpoints REST (@Controller)
    └── repository/        # repositórios Micronaut Data

Autorização

Endpoints são protegidos com a anotação @RequiresPermission("<recurso>:<ação>") (ex: candidate:delete), interceptada via AOP. Veja Permissões.

Soft delete

A maioria das entidades de domínio (Candidate, Vacancy, Client, ClientUnit, User, Benefit, UserSession) segue um padrão consistente de exclusão reversível (soft delete) + exclusão definitiva (hard delete). Veja Soft Delete para os detalhes de endpoints e filtros.

Módulos de negócio

  • Recrutamento — Candidato, Vaga e Candidatura: o núcleo do sistema, com as máquinas de estado de cada um
  • Clientes — Cliente, Unidade, Contatos e Benefícios
  • Usuários e Autenticação — cadastro de usuários, login, refresh token rotativo e invalidação de sessão
  • Eventos e Jobs Agendados — como o status do candidato reage automaticamente às candidaturas, e a rotina diária de vagas
  • Auditoria — trilha de auditoria de todas as ações do sistema (MongoDB)

On this page