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.
Resultado do
PostgresReplicationAdmin.resetSlot(String, String).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.