NIVEA

Proposta Técnica

Technical Proposal

Middleware de Integração CESLA ↔ HikCentral

CESLA ↔ HikCentral Integration Middleware

Automação de controle de acesso físico baseado no sistema de Recursos Humanos

Physical access control automation based on the Human Resources system

Versão 1.0  |  Março 2026  |  Confidencial Version 1.0  |  March 2026  |  Confidential
Projeto Middleware NIVEA NIVEA Middleware Project
1
Sumário Executivo Executive Summary

Este documento apresenta a proposta técnica para o desenvolvimento do Middleware NIVEA, uma camada de integração que conecta o sistema de Recursos Humanos CESLA (Hive) ao sistema de controle de acesso físico HikCentral Professional 3.0.1.

This document presents the technical proposal for the development of the NIVEA Middleware, an integration layer connecting the CESLA (Hive) Human Resources system to the HikCentral Professional 3.0.1 physical access control system.

O objetivo é eliminar o processo manual de concessão e revogação de permissões de acesso físico, substituindo-o por uma automação em tempo real baseada no status do colaborador no sistema de RH.

The goal is to eliminate the manual process of granting and revoking physical access permissions, replacing it with real-time automation based on the employee's status in the HR system.

Automação Total

Full Automation

Elimina o trabalho manual de gerenciamento de acessos no HikCentral

Eliminates manual access management work in HikCentral

Tempo Real

Real-Time

Acesso concedido ou revogado automaticamente ao mudar status no RH

Access granted or revoked automatically when HR status changes

📊

Auditoria Completa

Full Audit Trail

Dashboard web com registro detalhado de cada operação realizada

Web dashboard with detailed record of every operation performed

🔒

Segurança Reforçada

Enhanced Security

Comunicação criptografada ponta a ponta via IPSec e HMAC-SHA256

End-to-end encrypted communication via IPSec and HMAC-SHA256

Resultado esperado: Quando o CESLA marca um colaborador como "Apto", o middleware automaticamente cadastra a pessoa no HikCentral e concede acesso. Quando fica "Inapto" ou é desligado, o acesso é revogado imediatamente. Expected outcome: When CESLA marks an employee as "Fit", the middleware automatically registers the person in HikCentral and grants access. When marked "Unfit" or terminated, access is revoked immediately.
2
Problema Atual Current Problem

Atualmente, quando ocorre uma alteração no status de um colaborador no sistema CESLA (admissão, desligamento, mudança de cargo, inaptidão), a equipe responsável precisa manualmente refletir essa alteração no sistema de controle de acesso HikCentral.

Currently, when a change occurs in an employee's status in the CESLA system (hiring, termination, role change, unfitness), the responsible team needs to manually reflect this change in the HikCentral access control system.

Riscos identificados no processo manual: Risks identified in the manual process:
  • Atraso entre a decisão de RH e a efetivação no acesso físicoDelay between the HR decision and physical access enforcement
  • Risco de segurança quando desligamentos não são refletidos imediatamenteSecurity risk when terminations are not reflected immediately
  • Erro humano na concessão ou revogação de permissõesHuman error in granting or revoking permissions
  • Falta de rastreabilidade sobre quem autorizou cada alteraçãoLack of traceability about who authorized each change
  • Sobrecarga operacional da equipe de segurança/TIOperational overload on the security/IT team
3
Solução Proposta — Arquitetura Proposed Solution — Architecture

CESLA

Sistema de RH
(Hive / Azure)

HR System
(Hive / Azure)

HTTPS + JWT

MIDDLEWARE NIVEA

Node.js + Express
PM2 + SQLite
Dashboard React

IPSec + HMAC

HikCentral

Professional 3.0.1
172.16.32.118

O Middleware NIVEA opera como uma camada intermediária inteligente que:

The NIVEA Middleware operates as an intelligent intermediary layer that:

  1. Recebe dados de colaboradores do CESLA (via webhook e/ou polling periódico)Receives employee data from CESLA (via webhook and/or periodic polling)
  2. Processa as alterações identificando admissões, atualizações e desligamentosProcesses changes by identifying hires, updates, and terminations
  3. Executa as ações correspondentes no HikCentral (cadastro, atualização, revogação)Executes the corresponding actions in HikCentral (registration, update, revocation)
  4. Registra cada operação em banco de dados para auditoria completaRecords each operation in the database for full audit trail
  5. Disponibiliza uma dashboard web para monitoramento em tempo realProvides a web dashboard for real-time monitoring

Stack TecnológicaTechnology Stack

ComponenteTecnologiaJustificativa
RuntimeNode.js 20 LTSEcossistema maduro, async nativo
FrameworkExpress.jsLeve, flexível, amplamente adotado
Process ManagerPM2Auto-restart, clustering, métricas
Banco de DadosSQLiteSem servidor extra, auditoria local
FrontendReact + Vite + TailwindSPA moderna e responsiva
VPNStrongSwan (IPSec)Túnel site-to-site robusto
LogsWinstonLogs estruturados com rotação
ComponentTechnologyRationale
RuntimeNode.js 20 LTSMature ecosystem, native async
FrameworkExpress.jsLightweight, flexible, widely adopted
Process ManagerPM2Auto-restart, clustering, metrics
DatabaseSQLiteNo extra server, local audit
FrontendReact + Vite + TailwindModern, responsive SPA
VPNStrongSwan (IPSec)Robust site-to-site tunnel
LogsWinstonStructured logs with rotation
4
Funcionamento Detalhado Detailed Operation

4.1 — Admissao de Colaborador4.1 — Employee Admission

Fluxo: Novo Colaborador com status "Apto"
Flow: New Employee with "Fit" status
  • CESLA notifica o middleware sobre novo colaborador com status "Apto"CESLA notifies the middleware about a new employee with "Fit" status
  • Middleware consulta tabela de mapeamento: cargo → grupo de acessoMiddleware queries the mapping table: role → access group
  • Verifica se a pessoa ja existe no HikCentral (busca por CPF)Checks if the person already exists in HikCentral (search by CPF)
  • Cadastra a pessoa no HikCentral e adiciona ao grupo de acesso do cargoRegisters the person in HikCentral and adds to the role's access group
  • Registra operação no banco de auditoria e atualiza a dashboardRecords the operation in the audit database and updates the dashboard

4.2 — Desligamento / Inaptidao4.2 — Termination / Unfitness

Fluxo: Colaborador marcado como "Inapto" ou Desligado
Flow: Employee marked as "Unfit" or Terminated
  • CESLA notifica mudança de status para "Inapto" ou condicao de desligamentoCESLA notifies status change to "Unfit" or termination condition
  • Middleware identifica a mudança de statusMiddleware identifies the status change
  • Remove a pessoa de TODOS os grupos de acesso no HikCentralRemoves the person from ALL access groups in HikCentral
  • Atualiza validade da pessoa (expira imediatamente)Updates person validity (expires immediately)
  • Registra revogação no banco de auditoriaRecords revocation in the audit database

4.3 — Mudanca de Cargo4.3 — Role Change

Fluxo: Colaborador muda de cargo no CESLA
Flow: Employee changes role in CESLA
  • Middleware detecta alteração no campo de cargo do colaboradorMiddleware detects a change in the employee's role field
  • Remove a pessoa do grupo de acesso anteriorRemoves the person from the previous access group
  • Adiciona ao novo grupo de acesso correspondente ao novo cargoAdds to the new access group corresponding to the new role
  • Atualiza dados pessoais no HikCentral e registra no banco de auditoriaUpdates personal data in HikCentral and records in the audit database

4.4 — Reconciliação Automática Diária4.4 — Daily Automatic Reconciliation

Uma vez por dia (horário configurável), o middleware executa uma reconciliação completa: compara a lista inteira do CESLA com o HikCentral, corrige divergências automaticamente e gera um relatório disponível na dashboard. Once a day (configurable time), the middleware performs a full reconciliation: compares the entire CESLA list with HikCentral, automatically corrects discrepancies, and generates a report available on the dashboard.
5
Dashboard de Auditoria Audit Dashboard

O middleware inclui uma dashboard web completa para monitoramento e gestao, acessível apenas por administradores autorizados via login com email e senha.

The middleware includes a complete web dashboard for monitoring and management, accessible only by authorized administrators via email and password login.

5.1 — Visualização da Dashboard Principal5.1 — Main Dashboard View

Middleware NIVEA — Dashboard
1.247
Total
1.180
Ativos
Active
67
Inativos
Inactive
3
Erros (24h)
Errors (24h)
HorarioTimeColaboradorEmployeeOperacaoOperationStatus
12:45Joao SilvaCREATESUCCESS
12:42Maria SantosUPDATESUCCESS
12:40Pedro OliveiraREVOKESUCCESS
12:38Ana CostaCREATEERROR
CESLA: Online    HikCentral: Online    VPN: AtivaActive

5.2 — Telas Disponiveis5.2 — Available Screens

TelaFuncionalidades
Dashboard PrincipalContadores em tempo real, grafico de operações (7 dias), feed de atividades, status dos sistemas
Logs de AuditoriaTabela paginada com filtros (data, tipo, status, CPF), exportação CSV, detalhes expandiveis
ColaboradoresLista completa com busca, status atual, grupos de acesso, histórico individual
Mapeamento de CargosCRUD para mapear cargos do CESLA → grupos de acesso HikCentral
ConfiguraçõesStatus dos serviços, sincronização manual, resultado da reconciliação, uptime
ScreenFeatures
Main DashboardReal-time counters, operations chart (7 days), activity feed, system status
Audit LogsPaginated table with filters (date, type, status, CPF), CSV export, expandable details
EmployeesFull list with search, current status, access groups, individual history
Role MappingCRUD to map CESLA roles → HikCentral access groups
SettingsService status, manual sync, reconciliation result, uptime

5.3 — Segurança da Dashboard5.3 — Dashboard Security

🔑

Autenticação

Authentication

Login com email/senha, criptografia bcrypt (salt rounds: 12)

Email/password login, bcrypt encryption (salt rounds: 12)

🎫

Sessoes JWT

JWT Sessions

Tokens com expiração de 8 horas, invalidação no logout

Tokens with 8-hour expiration, invalidation on logout

🛡

Anti Brute-Force

Rate limiting: 5 tentativas / 15 min, lockout temporário

Rate limiting: 5 attempts / 15 min, temporary lockout

🔒

HTTPS + Headers

TLS 1.2+ obrigatório, Helmet.js para headers de segurança

TLS 1.2+ required, Helmet.js for security headers

6
Mapeamento de Dados Data Mapping

6.1 — Campos Sincronizados6.1 — Synchronized Fields

Dado do ColaboradorOrigem (CESLA)Destino (HikCentral)Transformação
CPFdocumentNumber_CPFpersonCodeRemove pontuação
NomenamepersonGivenNamePrimeiro nome
SobrenomenamepersonFamilyNameUltimo sobrenome
GenerogendergenderM→1, F→2, outro→0
CelularcellphonephoneNoDireto
EmailmailemailDireto
Data de admissãoadmissionDatebeginTimeISO 8601
Validadecondition + statusendTimeApto: futuro / Inapto: atual
CargoroleCodeGrupo de acessoVia tabela de mapeamento
Employee DataSource (CESLA)Destination (HikCentral)Transformation
CPF (Tax ID)documentNumber_CPFpersonCodeRemove punctuation
First NamenamepersonGivenNameFirst name
Last NamenamepersonFamilyNameLast surname
GendergendergenderM→1, F→2, other→0
MobilecellphonephoneNoDirect
EmailmailemailDirect
Admission DateadmissionDatebeginTimeISO 8601
Validitycondition + statusendTimeFit: future / Unfit: current
RoleroleCodeAccess GroupVia mapping table

6.2 — Regra de Qualificação6.2 — Qualification Rule

O CESLA ja consolida internamente a verificação de aptidao, avaliando: ASO válido, treinamentos em dia, integração de segurança e status da empresa. O middleware utiliza apenas o campo consolidado status ("Apto" / "Inapto"), sem verificar cada requisito individualmente. CESLA already internally consolidates the fitness verification, evaluating: valid OSH certificate, up-to-date training, security integration, and company status. The middleware uses only the consolidated status field ("Fit" / "Unfit"), without checking each requirement individually.

6.3 — Mapeamento de Grupos de Acesso6.3 — Access Group Mapping

Os grupos de acesso no HikCentral são determinados pelo cargo (role) do colaborador no CESLA. O mapeamento e configurável via dashboard, sem alteração no código:

Access groups in HikCentral are determined by the employee's role in CESLA. The mapping is configurable via dashboard, without code changes:

Cargo no CESLAGrupo de Acesso HikCentral
Operador de ProduçãoAcesso Area Produtiva
Analista AdministrativoAcesso Escritorios
Gerente de AreaAcesso Total
(exemplos ilustrativos — configuração real feita via dashboard)
CESLA RoleHikCentral Access Group
Production OperatorProduction Area Access
Administrative AnalystOffice Access
Area ManagerFull Access
(illustrative examples — actual configuration done via dashboard)
7
Segurança Security

7.1 — Camadas de Proteção7.1 — Protection Layers

ComunicaçãoProtocoloMecanismo
CESLA → MiddlewareHTTPS (TLS 1.2+)Autenticação JWT, validação de IP
Middleware → HikCentralIPSec ESP (AES-256)Túnel VPN + HMAC-SHA256 por requisição
Dashboard (Browser)HTTPS (TLS 1.2+)JWT + bcrypt + rate limiting
CredenciaisVariáveis de ambiente, nunca no código
Banco de dadosPermissões de arquivo restritas (640)
HikCentralRede privadaNão exposto a internet, apenas via VPN
Dados sensíveisCPF mascarado nos logs de auditoria
CommunicationProtocolMechanism
CESLA → MiddlewareHTTPS (TLS 1.2+)JWT Authentication, IP validation
Middleware → HikCentralIPSec ESP (AES-256)VPN Tunnel + HMAC-SHA256 per request
Dashboard (Browser)HTTPS (TLS 1.2+)JWT + bcrypt + rate limiting
CredentialsEnvironment variables, never in code
DatabaseRestricted file permissions (640)
HikCentralPrivate networkNot exposed to internet, VPN only
Sensitive dataCPF masked in audit logs

7.2 — Túnel VPN (IPSec)7.2 — VPN Tunnel (IPSec)

A comunicação entre o middleware e o HikCentral é feita através de um túnel IPSec site-to-site usando StrongSwan com criptografia AES-256-GCM. O firewall da Nivea aceita tráfego apenas do IP privado autorizado, configurado na interface loopback da VPS. Communication between the middleware and HikCentral is done through an IPSec site-to-site tunnel using StrongSwan with AES-256-GCM encryption. The Nivea firewall accepts traffic only from the authorized private IP, configured on the VPS loopback interface.

7.3 — Autenticação HikCentral (HMAC-SHA256)7.3 — HikCentral Authentication (HMAC-SHA256)

Cada requisição ao HikCentral inclui uma assinatura digital calculada com AppKey e AppSecret:

Each request to HikCentral includes a digital signature calculated with AppKey and AppSecret:

// Headers for each HikCentral request Content-Type: application/json X-Ca-Key: <AppKey> X-Ca-Signature: <HMAC-SHA256 calculated> X-Ca-Signature-Headers: x-ca-key,x-ca-timestamp X-Ca-Timestamp: <timestamp in milliseconds> X-Ca-Nonce: <unique UUID>
8
Infraestrutura Infrastructure

8.1 — Servidor (VPS)8.1 — Server (VPS)

EspecíficaçãoValor
vCPU2 nucleos
RAM8 GB
Disco100 GB NVMe
Bandwidth8 TB
Sistema OperacionalUbuntu 22.04 LTS
SpecificationValue
vCPU2 cores
RAM8 GB
Disk100 GB NVMe
Bandwidth8 TB
Operating SystemUbuntu 22.04 LTS
9
Cronograma de Implementação Implementation Timeline

O projeto será executado nas seguintes fases de implementação:

The project will be executed in the following implementation phases:

10
Pré-requisitos da Nivea Nivea Prerequisites

Para viabilizar o projeto, a Nivea precisa fornecer os seguintes itens:

To enable the project, Nivea needs to provide the following items:

ItemResponsavelStatus
AppKey e AppSecret do HikCentral OpenAPITI Nivea☐ Pendente
Credenciais CESLA (usuario e senha da API)Gestao CESLA☐ Pendente
Configuração VPN (PSK ou certificado X.509)TI Nivea / Rede☐ Pendente
IP privado autorizado no firewallTI Nivea / Rede☐ Pendente
Lista de grupos de acesso do HikCentralSegurança Nivea☐ Pendente
Mapeamento cargo → grupo de acessoRH + Segurança☐ Pendente
Confirmação do orgIndexCode (HikCentral)TI Nivea☐ Pendente
Ativação de webhook no CESLA (opcional)Gestao CESLA☐ Pendente
ItemResponsibleStatus
HikCentral OpenAPI AppKey and AppSecretNivea IT☐ Pending
CESLA Credentials (API username and password)CESLA Management☐ Pending
VPN Configuration (PSK or X.509 certificate)Nivea IT / Network☐ Pending
Authorized private IP on the firewallNivea IT / Network☐ Pending
List of HikCentral access groupsNivea Security☐ Pending
Role → access group mappingHR + Security☐ Pending
orgIndexCode confirmation (HikCentral)Nivea IT☐ Pending
CESLA webhook activation (optional)CESLA Management☐ Pending
11
Tratamento de Falhas Error Handling

O sistema é projetado para resiliência e auto-recuperação:

The system is designed for resilience and self-recovery:

Cenário de FalhaComportamento do Middleware
CESLA offlineRetry automático com backoff exponencial (3 tentativas)
HikCentral offlineRetry automático, operações pendentes registradas no banco
Túnel VPN caídoAlerta na dashboard, operações suspensas até restabelecimento
Dados duplicadosDeduplicação automática por hash do payload
Cargo sem mapeamentoAlerta na dashboard, acesso não concedido até configuração
Divergência na reconciliaçãoCorreção automática + relatório detalhado
Failure ScenárioMiddleware Behavior
CESLA offlineAutomatic retry with exponential backoff (3 attempts)
HikCentral offlineAutomatic retry, pending operations recorded in database
VPN tunnel downDashboard alert, operations suspended until restored
Duplicate dataAutomatic deduplication by payload hash
Unmapped roleDashboard alert, access not granted until configured
Reconciliation discrepancyAutomatic correction + detailed report
12
Próximos Passos Next Steps
Caminho Recomendado
Recommended Path
  • Avaliação interna deste documento pela equipe de TI e Segurança da NiveaInternal review of this document by the Nivea IT and Security team
  • Fornecimento dos pre-requisitos listados na Seção 10Provision of the prerequisites listed in Section 10
  • Definição do mapeamento cargo → grupo de acesso (RH + Segurança)Define the role → access group mapping (HR + Security)
  • Início da implementação conforme cronograma da Seção 9Start implementation according to Section 9 timeline
Estamos a disposição para esclarecer qualquer dúvida técnica, realizar demonstrações ou ajustar a proposta conforme necessidades específicas da Nivea. We are available to clarify any technical questions, provide demonstrations, or adjust the proposal according to Nivea's specific needs.