DevTools
O plugin DevTools (devtools) reúne, em uma única tela, um conjunto de ferramentas voltadas exclusivamente ao desenvolvimento e manutenção do ACCELERO: geração de licenças, geração de código (classes e plugins), geração de bundles JS/CSS e preloads, e conferência do dicionário de traduções.
Esta é uma ferramenta de uso interno da IONGRADE, destinada à equipe de desenvolvimento. Ela não faz parte do produto entregue ao cliente e não deve ser exposta a operadores. O acesso à tela e às ações (gerar/aplicar licença, gerar código, regenerar bundles) afeta diretamente o funcionamento da instância — use apenas em ambientes controlados e com conhecimento do que cada ferramenta faz.
Recurso disponibilizado como plugin (devtools), instalado e habilitado pela equipe técnica da IONGRADE apenas em ambientes de desenvolvimento ou manutenção. Não há dicionário de tradução nem rótulos voltados ao cliente — toda a interface é em linguagem de desenvolvimento.
Versão atual do plugin: 0.0.14 — compatível com ACCELERO 2.16.0, 2.16.1, 2.16.2 e 2.16.3 (conforme manifest.json).
O que o plugin faz
Com o plugin ativo, um item DevTools é adicionado ao menu (ícone Linux) apontando para /devtools. A tela inicial apresenta cinco cartões, cada um abrindo uma ferramenta:
| Ferramenta | O que faz |
|---|---|
| License generator | Monta, visualiza e aplica localmente a licença da instância (quantitativos, recursos e módulos) |
| Class generator | Gera o código-base de uma entidade (classe base/concreta, views de list/edit, permissões e rotas) a partir de uma tabela do banco |
| Plugin generator | Empacota uma pasta de plugin em um .zip criptografado pronto para distribuição |
| Bundles & preloads | Regenera os bundles de JS/CSS e os scripts de preload da aplicação |
| Dictionary | Aponta traduções faltantes e órfãs nos idiomas adicionais e exporta o dicionário em CSV |
Tela inicial do DevTools (/devtools) com os cinco cartões: License generator, Class generator, Plugin generator, Bundles & preloads, Dictionary.
License generator
Caminho de acesso: DevTools > License generator (/devtools/licensegenerator)
Ferramenta para montar a licença da instância. A tela é pré-carregada com a licença atual da instalação (facility, quantitativos e módulos ativos) e organizada em seções colapsáveis.
Tela do License generator com as seções Geral, Quantitativos e Módulos expandidas.
Seção Geral
| Campo | Descrição |
|---|---|
| Facility | Identificador da instalação. Compõe a chave de criptografia da licença |
| Versão | Plano da licença: starter, plus, platinum, showroom ou eco |
Seção Quantitativos
Define os limites numéricos da instância, agrupados em:
- Geral — Operadores, Operadores simultâneos, Categorias, Faixas horárias, Cartões ativos, Logs, Storage.
- Controladores — Controladores, Indium.
- Recursos — Campos configuráveis, DirectPass, AutoTeller.
- Integrações — MorphoWave, ZKTeco, Beward, Hikvision, Hikvision LPR, Dahua, ControlID.
Seção Módulos
Liga/desliga os módulos da instância, agrupados em Geral, Aplicativos / sistemas, Recursos, Avançado e Integrações. Exemplos de módulos: Offline / on-premises, ECO, Default, QRCode, UniqLogin, Família, AppToHome, QI Solution, Telegram, Veículos, Passes, Créditos, Dupla custódia, Escorts, Multi-tenant, Synapsis, API, Custom CSS, I/O, entre outros.
Os módulos exibidos refletem os módulos suportados pela versão do ACCELERO. Consulte o núcleo (plugins/accelero) quando precisar confirmar o efeito de um módulo específico.
Botões
| Botão | Função |
|---|---|
| Pegar licença string | Gera e exibe a string criptografada da licença montada, sem aplicá-la. Útil para copiar e usar em outro ambiente |
| Deploy local | Aplica a licença gerada diretamente na instância atual (grava na configuração license e limpa o cache de configuração) |
O botão Deploy local sobrescreve a licença vigente da instalação atual. A ação roda no contexto do usuário de desenvolvimento (ACCELERO_DEV_USER). Confirme o ambiente antes de aplicar.
A string da licença é gerada cifrando os dados com a chave derivada de facility + salt geral da instância. A licença inclui um bloco hash com data de geração, facility, hostname e um nonce aleatório.
Class generator
Caminho de acesso: DevTools > Class generator (/devtools/classgenerator)
Gera o esqueleto de código de uma nova entidade a partir de uma tabela existente no banco. A ferramenta lê a estrutura da tabela e produz os artefatos padrão do ACCELERO.
Tela do Class generator com os campos de entrada e os blocos de saída gerados (Classe base, Classe concreta, HTML de list, HTML de edit, Permissões, Routes).
Campos de entrada
| Campo | Descrição |
|---|---|
| Tabela | Nome da tabela do banco usada como base da entidade |
| Classname | Nome da classe a ser gerada |
| Class alias | Alias da classe |
| Prefix | Prefixo dos campos/arquivos gerados |
| PKey | Chave primária da entidade |
| Deploy base path | Caminho-base onde os arquivos serão gravados ao fazer deploy de um artefato |
Saídas geradas
Ao clicar em Gerar classe, a ferramenta produz, em blocos colapsáveis:
| Bloco | Conteúdo |
|---|---|
| Classe base | Classe ...Base.php com getters/setters e validações |
| Classe concreta | Classe concreta que estende a base |
| HTML de list | View de listagem (...List.view.html) |
| HTML de edit | View de edição (...Edit.view.html) |
| Permissões | Query SQL de permissões da entidade |
| Routes | Arquivo de rotas da entidade |
Cada bloco tem uma ação de deploy que grava o respectivo artefato no Deploy base path informado (a classe base em src/..., as views em views/, as rotas em config/routes/).
As ações de deploy do Class generator escrevem arquivos diretamente no caminho informado. Use apenas em ambiente de desenvolvimento e confira o Deploy base path.
Plugin generator
Caminho de acesso: DevTools > Plugin generator (/devtools/plugingenerator)
Empacota uma pasta de plugin em um arquivo .zip criptografado pronto para distribuição/instalação.
Tela do Plugin generator com os campos Nome do plugin e Path e o link de download gerado.
| Campo | Descrição |
|---|---|
| Nome do plugin | Nome usado no pacote gerado |
| Path | Caminho no servidor da pasta do plugin a ser empacotada |
Ao gerar, a ferramenta:
- Percorre os arquivos da pasta (ignorando
.git). - Lê a
versiondomanifest.jsondo plugin para nomear o arquivo (<nome>_v<versão>.zip). - Cifra o
.zipcom a chave de criptografia de plugins do ACCELERO. - Retorna um link Download para o pacote final.
Bundles & preloads
Caminho de acesso: DevTools > Bundles & preloads (/devtools/bundles)
Regenera os artefatos estáticos da aplicação.
Tela de Bundle generator com os botões Gerar bundles JS/CSS e Gerar preload scripts.
| Botão | Função |
|---|---|
| Gerar bundles JS/CSS | Regera os bundles de JavaScript e CSS, atualiza a assinatura MD5 do carregador de bundles e o dicionário JS (idiomas pt_BR e en_US). Roda em segundo plano e notifica o usuário ("Bundles gerados!") ao concluir |
| Gerar preload scripts | Regera os scripts de preload da aplicação |
A geração de bundles JS/CSS é disparada como job assíncrono — a tela retorna imediatamente e a conclusão chega por notificação ao operador que disparou a ação.
Dictionary
Caminho de acesso: DevTools > Dictionary (/devtools/dictionarychecker)
Verifica a consistência das traduções nos idiomas adicionais — por padrão en_US e it_IT — comparando-os com o dicionário de referência pt_BR.
Tela do Dictionary checker com as seções Missing translations e Dangling translations e o botão de exportação do CSV.
| Seção | Conteúdo |
|---|---|
| Missing translations | Tokens existentes no pt_BR mas sem tradução no idioma adicional (lista token + texto pt_BR; mostra "ALL GOOD!" quando não há pendências) |
| Dangling translations | Traduções órfãs — presentes no idioma adicional mas sem token correspondente no pt_BR |
Exportação CSV
A ferramenta gera um arquivo accelero_dictionary.csv com as colunas dos idiomas pt_BR, en_US e it_IT, para revisão ou tradução em massa.
Casos de uso
Aplicar uma licença em ambiente de desenvolvimento
- Acesse
DevTools > License generator. - Ajuste Facility, Versão, quantitativos e módulos desejados.
- Clique em Pegar licença string para copiar a chave, ou em Deploy local para aplicar na instância atual.
Gerar o esqueleto de uma nova entidade
- Crie a tabela no banco.
- Em
DevTools > Class generator, informe Tabela, Classname, Class alias, Prefix, PKey e Deploy base path. - Clique em Gerar classe e revise os blocos gerados.
- Faça o deploy de cada artefato (classe, views, rotas) para o caminho do projeto.
Empacotar um plugin para distribuição
- Em
DevTools > Plugin generator, informe Nome do plugin e Path da pasta do plugin. - Gere o pacote e use o link Download — o
.zipjá sai criptografado e versionado pelomanifest.json.
Conferir traduções antes de um release
- Acesse
DevTools > Dictionary. - Resolva os tokens listados em Missing translations e remova as entradas órfãs de Dangling translations.
- Exporte o CSV para tradução em massa, se necessário.
Boas práticas
- Ambiente correto: use o DevTools apenas em ambientes de desenvolvimento/manutenção. Deploy local (licença) e os deploys do Class generator alteram a instância e o sistema de arquivos.
- Confira o Path/Deploy base path: as ferramentas de geração de código e de plugin escrevem arquivos no caminho informado — um path errado pode sobrescrever arquivos.
- Regere bundles após alterar JS/CSS: mudanças em assets só refletem após Gerar bundles JS/CSS; lembre que a ação roda em segundo plano.
- Não exponha ao cliente: mantenha o plugin desinstalado/desabilitado em instâncias de produção entregues a clientes.
Troubleshooting
O item DevTools não aparece no menu
Possíveis causas:
- Plugin
devtoolsnão instalado ou não habilitado. - Versão do ACCELERO fora da faixa de compatibilidade (
2.16.0–2.16.3).
Solução: confirme a instalação do plugin e a versão do ACCELERO.
Alterações de JS/CSS não refletem na interface
Possíveis causas:
- Bundles não foram regerados após a alteração.
Solução: acesse DevTools > Bundles & preloads, clique em Gerar bundles JS/CSS e aguarde a notificação "Bundles gerados!".
Deploy de classe/plugin falha
Possíveis causas:
- Deploy base path / Path inexistente ou sem permissão de escrita.
Solução: verifique se o diretório existe e tem permissão de escrita pelo processo do ACCELERO.
Integração com outros módulos
- Licenciamento: o License generator atua sobre a configuração
licenseda instância. Para o conceito de licenciamento e configuração de licenças, ver Ozone — Configuração de licenças e LicenseUpdater. - Preloading e bundles: complementa o fluxo de Preloading e de inclusão de arquivos/classes JS.
- Padrão de código: os artefatos do Class generator seguem o Controller padrão, a ORM e as Rotas HTTP do ACCELERO.
- Ambiente de dev: ver Setup do ambiente de dev.