Class AdminViewController

java.lang.Object
br.com.vantroba.bi.transporte.powersync.AdminViewController

@Controller("/admin") public class AdminViewController extends Object
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

    Constructors
    Constructor
    Description
    AdminViewController(ResetarPowersyncService service, br.com.xadm.comum.seguranca.AuthSettings authSettings)
    Cria o controller injetando o serviço de reset.
  • Method Summary

    Modifier and Type
    Method
    Description
    detalhe(long id)
    Página de progresso de uma execução; auto-refresh enquanto EM_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.
    painel(String erro, String glitchtip)
    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).

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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, ou falha).
      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 /admin em 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 /admin com 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 /admin com 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 enquanto EM_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.