All Classes and Interfaces

Class
Description
Endpoints administrativos: hoje, apenas o "reset" da replicação PowerSync.
Tela de administração JTE do reset da replicação PowerSync.
Parseia o texto de ano do Excel no formato AAAA/AAAA (ex.: 2007/2007): à esquerda da barra = ano de construção; à direita = ano do modelo.
Par de anos extraído do texto de ano do veículo.
Configuração de nível app.* compartilhada entre beans — prefixo app.
Ponto de entrada da aplicação Micronaut e definição global OpenAPI (Bearer).
Coordena o armazenamento do binário XLS entre o Postgres (coluna arquivo_bytes) e o object storage Garage, conforme o ArmazenamentoModo configurado em app.storage.modo.
Projeção de coluna única: o binário legado arquivo_bytes.
Conteúdo de um arquivo XLS recuperado do storage para download.
Rede de segurança para AuthException que escape sem tratamento inline (o LoginController traduz as suas próprias no fluxo normal).
Configuração global do app em formato chave/valor.
Persistência de configurações globais em bi_configuracao (V12).
View-model de configuração para a tela admin/configuracoes — projeção dos campos que o template exibe.
Caminho idempotente UPSERT diff-aware + DELETE seletivo (spec 004).
Fonte de verdade única das colunas relevantes ao caminho idempotente UPSERT diff-aware (spec 004 — § 4.2 e § 5.4).
Leitura de configurações globais (bi_configuracao) em runtime, com cache curto.
Operações da tela admin de configurações (/admin/configuracoes).
Tela admin de configurações globais (bi_configuracao).
Tabela xls_conjunto_lote: rastreia um lote de arquivos enviados juntos num .zip.
Persistência de ConjuntoLote (lote por zip).
Coordena o ciclo de vida de um lote (.zip).
Configuração do restart automático do PowerSync via API do Coolify — prefixo powersync.admin.coolify.*.
Processa o byte[] do xlsx via FastExcel (StAX puro do JDK, sem XMLBeans/POI), em streaming.
Resultado de um processamento completo de xlsx, com os dados extraídos e métricas de tempo.
Linha de faturamento importada da aba 20 do Excel — tabela bi_faturamento.
Repositório CRUD de bi_faturamento.
 
 
 
 
 
 
 
Configuração do diretório de logs de execução — prefixo app.logs.*.
Resposta do POST /api/xls/processar: id do lote, total e status por entrada.
Status de um arquivo do lote.
Agregado das métricas de uma execução do orquestrador (spec 004 § 5.5): contém o UpsertResultado de cada tabela alvo.
Operações administrativas no MongoDB do PowerSync.
Implementação real de MongoAdminService usando mongodb-driver-sync.
Stub de MongoAdminService ativo quando powersync.mongodb.uri está vazio (default em dev).
Linha de movimento contábil importada da aba 30 — tabela bi_movimento.
Repositório CRUD de bi_movimento.
Período do relatório extraído da aba "10" (células E1/F1).
Operações administrativas em slots de replicação lógica do PostgreSQL.
Configuração do MongoDB do PowerSync usada no reset da replicação — prefixo powersync.mongodb.*.
Configuração da confirmação e do bootstrap do reset destrutivo — prefixo powersync.nuke.* (contrato preservado do rename Nuke→ResetarPowersync; lido por integrações).
Configuração da replicação Postgres do PowerSync usada no reset — prefixo powersync.postgres.*.
Controla pause/resume do PowerSync Service durante o reset.
Estratégia coolify de PowerSyncProcessControl: reinicia o recurso PowerSync pela API REST do Coolify ao final do reset.
Implementação no-op de PowerSyncProcessControl: loga warning e reporta no progresso que o restart do PowerSync é manual.
Consultas de processamento: listagem paginada, detalhe, leitura do arquivo de log em disco e download do XLS original.
Detalhe de um processamento para API e tela de detalhe (metadados, contagens e métricas de idempotência da spec 004; sem bytes do XLS).
Serializa ExcelProcessor.ResultadoProcessamento para JSON canônico conforme docs/dev/schema-processamento-xls.json.
Resposta paginada do endpoint de listagem de processamentos.
Formata e dispara as notificações Telegram do pipeline de processamento.
Execução assíncrona do processamento (fora do ProcessamentoService para o @Async ser aplicado via proxy).
Persistência JDBC de ProcessamentoXls e atualizações de status.
Resposta do recebimento síncrono (o controller HTTP mapeia httpStatus para o status da resposta).
Linha da lista de processamentos (JTE e GET /api/transporte/processamentos).
Orquestra recepção de arquivos, deduplicação por checksum e agendamento do processamento assíncrono.
Status de uma entrada .xlsx do lote (id nulo quando não gerou processamento).
Resultado do recebimento de um lote (.zip).
Estados de um processamento de XLS (xls_processamento.status).
Operações transacionais sobre os dados do BI por período (evita problemas de proxy com @Async).
Entidade da tabela xls_processamento: metadados do envio, referência ao objeto XLS no MinIO e resultado do job.
Auditoria de execuções do "reset" da replicação PowerSync.
Sinal do ResetarPowersyncRepository.iniciar(String, String) de que já existe um reset EM_ANDAMENTO (violação do partial unique index).
View-model do reset para a tela de detalhe (admin/resetar-powersync-detalhe) — projeção dos campos que o template exibe.
Formata e dispara as notificações Telegram do reset da replicação.
Instruções de recuperação manual por step do reset — espelha a matriz de recovery do runbook (docs/resetar-powersync.md).
Persistência da auditoria de resets em xls_resetar_powersync.
Body opcional do POST /api/transporte/admin/resetar-powersync.
Resposta 202 do POST /api/transporte/admin/resetar-powersync.
View-model do reset para a listagem da tela admin — projeção dos campos que o template admin/powersync exibe.
Orquestra os 9 steps do reset da replicação PowerSync.
Resposta 200 do GET /api/transporte/admin/resetar-powersync/{id}.
Estados de uma execução de reset da replicação (xls_resetar_powersync.status).
Recuperação ao subir a aplicação: Processamentos órfãos em PROCESSANDO viram ERRO; Processamentos em PENDENTE são re-enfileirados; Resets órfãos em EM_ANDAMENTO (pool reset- morreu junto com a JVM) viram ERRO — desbloqueia o partial unique index pra novos resets.
Backfill dos blobs legados (arquivo_bytes) para o object storage Garage, dirigido pelo ArmazenamentoModo configurado em app.storage.modo: PSQL — não faz nada (tudo permanece no Postgres).
Storage de arquivos (Garage) indisponível ao receber o XLS — HTTP 503.
Cliente HTTP declarativo da Telegram Bot API — só o sendMessage que o TelegramService usa.
Configuração do bot Telegram — prefixo telegram.*.
Transporte de notificações via Telegram Bot API: recebe um texto já pronto e o posta.
API REST de transporte: envio de XLS (Bearer), listagem e consulta pública de processamentos.
Métricas de uma operação UPSERT diff-aware + DELETE seletivo no caminho idempotente (spec 004 — § 4.7).
Trunca strings ao tamanho máximo da coluna no PostgreSQL (evita erro no insert).
Exception sintética usada pelo VeiculoDefesaCollector para envelopar um motivo+placa num evento Sentry (GlitchTip).
Inspeciona uma linha do XLS mensal (faturamento ou movimento) e produz a lista de motivos de defesa que se aplicam ao cadastro veicular daquela linha.
Motivo único detectado por linha.
Coletor stateful per-processamento.
Resultado final da defesa pro upload.
Rotas HTML (JTE) para histórico e detalhe de processamentos — acesso anônimo conforme configuração de segurança.
Tradução das rejeições do micronaut-security (5.x lança AuthorizationException) preservando o comportamento do antigo AuthFilter: autenticado sem permissão (AuthorizationException.isForbidden()) → 403; view anônima, browser (Accept: text/html) → 302 /login?from=…; view anônima, script (JSON) → 401; view em fail-closed (prod sem envs de auth) → 503; path whitelisted (ex.: /api sem Bearer) → 401.
Regra de segurança das views, replicando o tri-estado do antigo AuthFilter: enabled (envs de auth completas): path de view exige Authentication — autenticado → ALLOWED, anônimo → REJECTED (o ViewRejectionHandler faz 302/401); bypass (dev/test sem envs): view liberada (ALLOWED) — views públicas; fail-closed (prod sem envs): view rejeitada (REJECTED) — o handler responde 503.
Whitelist da CAMADA DE VIEWS — os paths que a ViewSecurityRule dispensa de sessão.
Porta única de envio de XLS — padrão da casa, idêntico entre todos os clientes.
Desempacota o .zip de lote em suas entradas .xlsx (o zip É o lote).
Uma entrada .xlsx do zip.