Setup ambiente de DEV
CHAVES SSH
Eventos recorrentes
O funcionamento a seguir é válido a partir da versão 2.15.0 do Accelero.
Baixa de templates faciais
Quando a pessoa passa (acesso realizado letID=34) por um canal marcado para "Baixar visitantes", a seguinte lógica é executada pra cada modelo de facial habilitado (Hikvision, ControlID, etc...):
Importação de fotos - Accelero
Às vezes (geralmente durante o início do sistema), o cliente manda fotos para serem importadas nos cadastros das pessoas do Accelero.
Asyncprocessor - geral
Esse serviço é responsável por executar diversas tarefas de modo assíncrono, geralmente "descarregando" operações feitas em tela por usuários (emissão de relatórios, por exemplo).
Queueprocessor
Esse serviço é responsável por executar tarefas "com hora pra acontecer". Se algo deve acontecer "à meia noite", ou "de 10 em 10 minutos" ou qualquer outra regra que envolva horários, esse é o serviço que assume a responsabilidade.
Keepalive
Esse talvez seja o serviço mais simples e importante do Accelero. Três coisas são gerenciadas por esse serviço:
LoggedUserCleanupJob
O Accelero tem dois controles envolvendo usuários/operadores: (1) quem está logado; (2) quem está ativo.
JobStatusUpdater
Esse serviço tem uma única função: enviar periodicamente para o Ozone o status geral do sistema.
LicenseUpdater
Esse serviço é responsável por enviar para o Ozone dados estatísticos a respeito do uso do sistema (versão, módulos, licença, etc...).
IntegrationPendencyRetrier
Quando há integração com dispositivos biométricos externos, o Accelero precisa administrar problemas-de-envio-de-templates e retries. Esse serviço cuida dos retries.
SchedulerJob
A função desse serviço é executar "scripts adhoc em intervalores regulares", geralmente para customizações de clientes.
MovePessoasJob
A função desse serviço é, em determinados momentos, alterar a "área atual" de pessoas.
EventoExpiredChecker
De 10 em 10 minutos, esse serviço verifica se existem visitas (Eventos) em aberto cujo horário máximo de saída já foi atingido (visitantes que deveriam ter ido embora, mas ainda não foram).
GatewayRefresher
De hora em hora, são reenviadas as configurações de todos os gateways (quais devices eles devem cuidar, configurações gerais, etc...).
DailySchedule
Esse serviço é responsável por executar "tarefas gerais" uma vez por dia (geralmente de madrugada, mas pode ser configurado).
LongRunningJobs
São serviços que ficam em execução o tempo todo, se auto-gerenciando (em oposição ao conceito de response/request).
Serviços periódicos
São serviços administrados pelo QueueProcessor, executados e gerenciados por esse serviço. Não têm "vida própria".
QISolutionSynchronizer
Integração com o serviço da QI Solution (ERP de escolas).
TelegramConversationExpirer / TelegramWebhookRenewer
Esses dois serviços cuidam de manter a integração com o Telegram em bom estado.
EventHandler e Interceptor
O Accelero usa bastante o design pattern "Observer" (ou algo parecido com esse pattern) pra garatir que as "coisas aconteçam" com a maior desacoplação de código possível.
Rotas HTTP
A configuração de rotas HTTP do Accelero é bem simples/padrão.
Injeção de dependência
O Accelero trabalha FORTE com injeção de dependência.
Migrations
Quando é feito upgrade de versão do Accelero, pode ser necessário fazer alguns updates/ajustes que não acontecem "no nível do GIT", como migração de DB.
GIT - customizações
Temos um repositório GIT interno (git.iongrade.com.br) que serve para abrigar customizações de clientes.
Bibliotecas Dev "meio internas meio externas"
Várias bibliotecas/libs/dependências do Accelero são desenvolvimento próprio (Iongrade ou Alexandre), mas mantidas separadas pra que possam ser reaproveitadas em outros projetos. Por isso são "meio internas, meio externas". Alguns poucos exemplos:
Integração com Gennera
O Accelero tem uma integração com o ERP escolar Gennera.
Accelero - Lançamento de versão
Pra lançar uma nova versão do Accelero é necessário cumprir algumas burocracias.
Dev
Aqui estarão artigos diretamente relacionados a DESENVOLVIMENTO
Recursos gerais
Explicação geral de como funcionam recursos/módulos do sistema.
Procedimentos
Procedimentos gerais
Inclusão de arquivos/classes JS
Se for necessário incluir novos arquivos JS (uma nova lib) ou incluir classes em arquivos já existentes (provavelmente accelero.js), seguir o seguinte procedimento:
Controle de acesso - workflow básico
Quando o service accessengine do Accelero recebe uma mensagem do tipo accreq de algum controlador, é iniciado um processo de "consulta online": alguém está solicitando acesso em um bloqueio, e o servidor deve analisar a solicitação pra ver se "libera ou não libera".
Subir novo Accelero SaaS
Em geral, a necessidade de "subir" um novo Accelero vem como resultado de uma venda realizada pelo departamento comercial. É enviado um e-mail para alguém do time de devops solicitando um novo deploy.
Monitoramento em tempo real
Em algumas situações é desejável criar uma forma de visualização de informações em tempo real (logs, por exemplo).
Poll
O jeito mais simples de se fazer, mas o menos eficiente/menos real-time.
SSE
SSE (Server Side Event) é o primo pobre do Websocket. É bem mais simples de implementar do que um Websocket (é um request HTTP normal), mas é unidirecional (apenas o server manda eventos).
SSE com Shared Worker
Usa a mesma arquitetura da solução com SSE, mas move-se o processo Javascript para um Shared Worker que opera em background no browser.
Hikvision - captura de fotos
Os devices faciais da Hikvision permitem que seja feita a captura de fotos em tempo real (para evitar o uso de webcams).
Funcionalidades
Cadastro de visitantes
Gateways - instalação e upgrade
Esse procedimento é válido para qualquer modelo de gateway. Por exemplo:
Concentrador - instalação e upgrade
Você vai precisar de:
Accelero on-premises - instalação e upgrade
Você vai precisar de:
Datalogger - instalação
Você vai precisar de:
Preloading
O PHP possui, a partir da versão 7.4, um recurso chamado PRELOADING.
Gateways - Lançamento de versão
Pra lançar uma nova versão de algum gateway (Hikvision, Domonet, ControlID, etc...) é necessário cumprir algumas burocracias.
Concentrador - Lançamento de versão
Pra lançar uma nova versão de concentrador é necessário cumprir algumas burocracias.
Lançamento de novas versões
Pra lançar uma nova versão de alguma coisa (Accelero, gateway, concentrador, etc...) é necessário cumprir algumas burocracias.
Lançamentos - histórico
Histórico de checklists de lançamentos de produtos/recursos.
Concentrador - em execução
Vai lançar um novo produto/recurso?
Debuggar em produção
Tomara que você nunca precise fazer isso, mas é possível usar XDebug em ambientes de produção.
ORM
O Accelero possui um ORM interno baseado no paradigma Active Record.
Hooks
O ORM permite o uso de hooks pra "pendurar" funcionalidades nas classes sem ter que alterar o código das classes-base.
Controller padrão
Toda entidade que faz parte do ORM Accelero (e que portanto extends DefaultDBObjectPublicMethods) "ganha" automaticamente uma série de funcionalidades típicas de Controller:
FormRequests validados
É possível usar no Accelero (v2.17.0 em diante) um sistema de "request validados", parecido com o sistema de validação de requests do Laravel.
RTPS Docker multi câmeras
Acesse o gateway (teclador/monitor ou SSH) e execute:
Instalação + configuração básica SIP
Só funciona em on-premises!
Ozone - configuração de licenças Accelero
As licenças/módulos do Accelero são dinâmicas. Toda hora são inventadas coisas novas licenciáveis (problema técnico) e toda hora são inventados pacotes novos (problema comercial). Toda essa bagunça pode ser organizada no Ozone.
Organizador e Importador de Fotos - Accelero
Ferramenta para organizar e fazer upload de fotos de usuários para servidores de clientes Accelero.
Logger de Mensagens de Facial
Ferramenta interna de diagnóstico que registra em log as mensagens trocadas entre o ACCELERO e o gateway facial no cadastro e remoção de templates.
IonPulse Agent
Integração que relaya eventos de acesso, alarmes e reports periódicos do ACCELERO para a plataforma IonPulse via MQTT, com login remoto e fotos pré-assinadas.
API Backup
Plugin interno que expõe um endpoint para disparar um backup do banco de dados do ACCELERO e enviá-lo a uma URL de callback informada na requisição.
DevTools
Conjunto de ferramentas internas para desenvolvedores Accelero — gerador de licença, gerador de classes/plugins, bundles e conferência de dicionário.
SpyGlass (Requests HTTP)
Ferramenta interna de diagnóstico que registra em log todos os requests HTTP recebidos pelo ACCELERO (timestamp, usuário, método e path) para análise técnica.
Clarity (Telemetria)
Ferramenta interna que injeta o script de analytics do Microsoft Clarity nas páginas do ACCELERO para a IONGRADE entender como o sistema é usado.
API de Integração v1
API REST v1 do Accelero para integração externa — eventos de acesso, log de operações, lotação de áreas e cadastro de visitas via Bearer Token