Class AdminViewController
java.lang.Object
br.com.vantroba.bi.transporte.powersync.AdminViewController
Tela de administração JTE do reset da replicação PowerSync.
Segundo gatilho do mesmo ResetarPowersyncService usado pelo AdminController
REST — aqui sem Bearer nem rede (chamada no mesmo processo). A proteção da v1 é o modal
anti-acidente: o campo confirmacao precisa bater com PALAVRA_CONFIRMACAO.
Isso não é controle de acesso — o controle de acesso real virá com o login Google
(Etapa 3 do port).
Hospeda também o card de diagnóstico do GlitchTip (botão "Testar GlitchTip").
Fala com ResetarPowersyncService e SentryInitializer — não acessa
repository (regra ArchUnit).
-
Constructor Summary
ConstructorsConstructorDescriptionAdminViewController(ResetarPowersyncService service, br.com.xadm.comum.seguranca.AuthSettings authSettings) Cria o controller injetando o serviço de reset. -
Method Summary
Modifier and TypeMethodDescriptiondetalhe(long id) Página de progresso de uma execução; auto-refresh enquantoEM_ANDAMENTO.detalheStatus(long id) Status JSON de uma execução — consumido pelo polling JS da página de progresso, que atualiza a tela sem recarregar.io.micronaut.http.HttpResponse<?> dispararReset(io.micronaut.http.HttpRequest<?> request, io.micronaut.security.authentication.Authentication auth, String motivo, String operador, String confirmacao, String csrf) Dispara o reset após validar a palavra de confirmação anti-acidente.Página principal: card de ação + aviso de impacto + histórico recente + diagnóstico GlitchTip.io.micronaut.http.HttpResponse<?> testarGlitchtip(io.micronaut.http.HttpRequest<?> request, String csrf) Dispara um evento de teste para o GlitchTip (botão "Testar GlitchTip" do card de diagnóstico).
-
Constructor Details
-
AdminViewController
public AdminViewController(ResetarPowersyncService service, br.com.xadm.comum.seguranca.AuthSettings authSettings) Cria o controller injetando o serviço de reset.- Parameters:
service- serviço de reset da replicação PowerSync.authSettings- config de auth (defesa em profundidade da escrita destrutiva).
-
-
Method Details
-
painel
@Get @View("admin/powersync") public Map<String,Object> painel(@Nullable @QueryValue String erro, @Nullable @QueryValue String glitchtip) Página principal: card de ação + aviso de impacto + histórico recente + diagnóstico GlitchTip.- Parameters:
erro- erro a exibir vindo da query string (ex.:confirmacao,conflito).glitchtip- resultado do teste do GlitchTip vindo da query string (event id,inativo, oufalha).- Returns:
- modelo da view
admin/powersync.
-
dispararReset
@Post(value="/resetar-powersync", consumes="application/x-www-form-urlencoded") public io.micronaut.http.HttpResponse<?> dispararReset(io.micronaut.http.HttpRequest<?> request, @Nullable io.micronaut.security.authentication.Authentication auth, @Body("motivo") @Nullable String motivo, @Body("operador") @Nullable String operador, @Body("confirmacao") @Nullable String confirmacao, @Body("_csrf") @Nullable String csrf) Dispara o reset após validar a palavra de confirmação anti-acidente. Redireciona 302 para o detalhe da execução; confirmação errada volta para/admin; conflito (já há reset em andamento) leva ao detalhe do reset ativo.- Parameters:
request- a requisição HTTP (usada para a checagem CSRF).motivo- motivo informado pelo operador.operador- identificação do operador.confirmacao- palavra de confirmação anti-acidente.csrf- token CSRF do form.- Returns:
- redirect 302 para a tela de detalhe (ou de volta para
/adminem erro).
-
testarGlitchtip
@Post(value="/glitchtip-test", consumes="application/x-www-form-urlencoded") public io.micronaut.http.HttpResponse<?> testarGlitchtip(io.micronaut.http.HttpRequest<?> request, @Body("_csrf") @Nullable String csrf) Dispara um evento de teste para o GlitchTip (botão "Testar GlitchTip" do card de diagnóstico). POST → redirect → GET: volta para/admincom o resultado na query string —inativo(Sentry desabilitado),falha(erro ao disparar) ou o event id do GlitchTip.- Parameters:
request- a requisição HTTP (usada para a checagem CSRF).csrf- token CSRF do form.- Returns:
- redirect 302 para
/admincom o resultado na query string.
-
detalhe
@Get("/resetar-powersync/{id}") @View("admin/resetarPowersyncDetalhe") public Map<String,Object> detalhe(@PathVariable long id) Página de progresso de uma execução; auto-refresh enquantoEM_ANDAMENTO.- Parameters:
id- identificador do reset a exibir.- Returns:
- modelo da view
admin/resetarPowersyncDetalhe.
-
detalheStatus
@Get("/resetar-powersync/{id}/status") @Produces("application/json") public Map<String,Object> detalheStatus(@PathVariable long id) Status JSON de uma execução — consumido pelo polling JS da página de progresso, que atualiza a tela sem recarregar.- Parameters:
id- identificador do reset.- Returns:
- JSON com status, atividade atual, steps completados, checkpoints e recovery.
-