Skip to content

Decidir: aba "Sistema" no admin — diagnóstico read-only da config do servidor (sem edição) #766

@milkway

Description

@milkway

Status: a decidir no futuro — NÃO implementar agora. Registrado após a auditoria 2026-06 (#730#746) para não perder o racional da discussão.

Contexto

Surgiu a pergunta: vale uma aba de configuração do server: no admin, para não depender do terminal? A conclusão da discussão foi não editar infra pela web, mas que uma aba read-only de diagnóstico resolveria a maior parte da necessidade real (conferir é muito mais frequente que mudar).

Por que NÃO editar server: pela web (racional registrado)

  1. Boot-time, não runtimeport, bind-address, context-path, hosts são consumidos na subida; state.config é um Arc<Config> imutável. Edição ao vivo exigiria hot-reload (ArcSwap) ou um "salvar e reiniciar" pior que o terminal.
  2. Risco de lockout — errar base-path/bind/useForwardHeaders de dentro do admin derruba o próprio admin. O padrão "apply + rollback se não confirmar" é complexidade demais para o ganho.
  3. Superfície de segurança — o modelo é deliberado: secrets só via ${ENV}, volumes Admin-only, DB nunca vê infra. Um editor web do YAML inverteria isso (admin comprometido → controla bind/hosts/volumes). ShinyProxy também não faz.
  4. Frequência ≈ zeroserver: muda no deploy inicial (que já exige terminal) e raramente depois; o que muda toda semana (catálogo/aparência/usuários) já está no admin.

Escopo proposto (se aprovado): aba "Sistema", Admin-only, read-only

Boa parte já existe espalhada (startup banner na aba Logs, banner de backend no dashboard) — seria consolidação, custo baixo.

Fora do escopo (decidido contra, manter assim salvo nova discussão)

  • Edição de qualquer campo de server:/proxy: de infra pela web.
  • Editor do YAML pelo admin.
  • Caso apareça dor real com um knob específico (ex.: heartbeat-timeout global, metrics-interval), promover esse knob individualmente a setting runtime no DB — caso a caso, como foi feito com a aparência — em vez de abrir o server: inteiro.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions