Visão Geral do Dashboard
O dashboard do PatchOne é uma SPA React servida na URL raiz do servidor. Ele oferece gerenciamento completo da frota sem a necessidade de ferramentas adicionais.
Navegação
O dashboard possui um sidebar persistente à esquerda com todas as seções principais, além de uma barra superior com controles globais.
| Seção (sidebar) | Finalidade |
|---|---|
| Fleet | Visualização da frota — todas as máquinas registradas e seus status |
| Deploy | Enviar atualizações de software para uma máquina, tag ou toda a frota |
| Jobs | Monitorar status e resultados dos jobs de implantação em tempo real |
| Policies | Criar e gerenciar políticas de patch automatizadas com cron |
| Catalog | Navegar e gerenciar o catálogo de software (global + personalizado) |
| Compliance | Score de compliance por máquina, tendência 30 dias e exportação de relatórios |
| Audit | Log imutável de todas as ações do administrador |
| Backup | Gerenciamento de backup do banco de dados |
| Admins | Gerenciamento de contas de administrador |
O sidebar colapsa para ícones em telas menores (< 768px), preservando o acesso a todas as seções.
Barra superior
A barra de navegação superior contém:
- PatchOne — nome do produto (link para o início)
- Alternador de tema (☀/🌙) — alterna entre modo escuro e claro; preferência salva no navegador
- Sino de notificações — exibe a contagem de notificações não lidas
- Nome do administrador — usuário logado atualmente
- Sign out — encerra a sessão
Tela inicial (Home)
A tela inicial (/) combina três componentes:
- ComplianceWidget — três cartões de resumo:
- Fleet Compliance — percentual médio de conformidade da frota (ex.: 100% · 1 of 1 machines)
- Critical Pending — número de máquinas com atualizações pendentes
- Never Seen — máquinas registradas que ainda não realizaram nenhum check-in
- DailySummary — snapshot de saúde: máquinas online/offline e jobs concluídos/com falha nas últimas 24h
- Fleet — tabela de máquinas com status em tempo real, pesquisa por hostname, filtro por status, filtro por tag e checkbox "Has pending updates"
Badges de status
As máquinas exibem um badge de status:
| Badge | Significado |
|---|---|
| Online | Último heartbeat dentro do limite configurado (padrão: 30 min) |
| Offline | Nenhum heartbeat por mais tempo que o limite |
Autenticação
O dashboard usa autenticação JWT baseada em cookie. As sessões expiram após 8 horas (configurável via SESSION_TIMEOUT_HOURS no .env). Após a expiração, o navegador redireciona para a página de Login.
Compatibilidade com navegadores
Qualquer navegador moderno (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+) é suportado. JavaScript deve estar habilitado.