# Admin UI — Inventário por dispositivo

A página Admin > Dispositivos agora exibe um inventário detalhado e pesquisável do parque, com filtros e exportação.

## Filtros e busca
- Busca livre por hostname, e-mail, MAC e número de série.
- Filtro por status: Online, Offline, Sem sinal (stale) e Desconhecido.
- Filtro por sistema operacional (OS).
- Filtro por empresa (slug).
- Marcação “Somente com alertas” para investigar postura.

## Painel de detalhes
- Resumo: hostname, status derivado do heartbeat (badge verde “Online” até 10 minutos; amarelo “Sem sinal” entre 10 minutos e 2 horas; vermelho “Offline” após esse período), e-mail vinculado, empresa (quando houver), perfil de acesso (colaborador/gestor) com dados do usuário associado, SO/arch e sincronização do token (expiração/uso).
- Métricas recentes: CPU/Memory/Disco.
- Inventário básico: hardware (CPU/mem/serial, GPUs detectadas), rede (IP/MAC), labels.
- Discos e partições: nome, mount, FS, capacidade, livre.
- Inventário estendido (varia por SO):
  - Linux: SMART (OK/ALERTA), `lspci`, `lsusb` (texto), `lsblk` (interno para discos).
  - Windows: informações de SO (edição, versão, build, data de instalação, experiência, ativação), resumo de hardware (CPU/Memória/GPU/Discos físicos com suporte a payloads únicos), serviços, lista completa de softwares com ação “Ver todos”, Defender.
  - macOS: pacotes (`pkgutil`), serviços (`launchctl`).
- Postura/Alertas: CPU alta, serviço parado, SMART em falha com severidade e última avaliação.
- Zona perigosa: ação para excluir a dispositivo (revoga tokens e remove inventário).
- Ação administrativa extra: botão “Ajustar acesso” permite trocar colaborador/gestor e e-mail vinculados sem re-provisionar a dispositivo.

## Exportação
- Exportar CSV de softwares ou serviços diretamente da seção detalhada (quando disponíveis).
- Exportar planilha XLSX completa (`/admin/devices/:id/inventory.xlsx`). A partir de 31/10/2025 a planilha contém:
  - **Resumo**: data de geração, filtros aplicados, contagem por status e total de acessos remotos/alertas.
  - **Inventário**: colunas principais exibidas na UI (status, persona, hardware, token, build/licença do SO, domínio, colaborador, Fleet, etc.).
  - **Vínculos**: usuários associados à dispositivo.
  - **Softwares**: lista deduplicada (nome + versão + origem/publisher). A coluna “Softwares instalados” no inventário bate com o total desta aba.
  - **Partições**: nome/mount/FS/capacidade/livre, convertendo unidades (ex.: 447 GB → bytes).
  - **Discos físicos**: modelo, tamanho, interface, tipo e serial de cada drive.
  - **Rede**: interfaces com MAC/IP de todas as fontes (agente, Fleet).
  - **Acessos remotos**: TeamViewer/AnyDesk/etc. com notas, URL, última verificação e metadados brutos.
  - **Serviços**: serviços coletados (Windows/Linux) com nome, display name e status.
  - **Alertas**: postura recente (tipo, mensagem, severidade, criado em).
  - **Métricas**: CPU/Memória/Disco/GPU com timestamp coletado.
  - **Labels**: tags aplicadas à dispositivo.
  - **Sistema**: visão categorizada (Sistema, Dispositivo, Hardware, Acesso, Token, Fleet) contendo build, licença, domínio, fabricante, serial, colaborador, contagem de acessos, etc.

## Notas
- Os dados vêm de duas fontes:
  - Agente desktop (Tauri): envia inventário básico + estendido por SO via `POST /api/machines/heartbeat`.
  - FleetDM (osquery): opcionalmente, via webhook `POST /api/integrations/fleet/hosts`.
- Postura é avaliada no servidor (Convex) a cada heartbeat/upsert. Tickets automáticos podem ser gerados se habilitado.
