- Cliente Windows com modo silencioso e auto-start robusto - Backend Node.js + API REST - Frontend Next.js + Dashboard - Scripts PowerShell de configuração e diagnóstico - Documentação completa - Build scripts para Windows e Linux - Solução de auto-start após reinicialização Resolução do problema: Cliente não voltava ativo após reboot Solução: Registro do Windows + Task Scheduler + Modo silencioso
4.1 KiB
4.1 KiB
🔍 Resumo do Problema - Cliente DESKTOP-BC16GDH
❌ Problemas Identificados
1. Aplicativos não estão sendo monitorados corretamente
Status: ❌ NÃO FUNCIONANDO
O que está acontecendo:
- O cliente está enviando apenas
window_title = "System Idle"eapplication_name = "[IDLE]" - Não está capturando o título real da janela ativa
- Não está capturando o executável real do processo
O que deveria acontecer:
- Capturar o título real da janela (ex: "Documento - Word", "Visual Studio Code")
- Capturar o executável real (ex: "WINWORD.EXE", "Code.exe", "chrome.exe")
Solução:
- O cliente precisa usar APIs do Windows para capturar a janela ativa
- Ver arquivo:
ESPECIFICACAO_CLIENTE_WINDOWS.mdseção 1
2. Histórico do Google Chrome não está sendo enviado
Status: ❌ NÃO FUNCIONANDO
O que está acontecendo:
- Nenhum dado de navegação está sendo recebido
- O campo
urlsnão está sendo enviado no POST/api/activity/log
O que deveria acontecer:
- Enviar array
urlscom todas as URLs das abas abertas do Chrome/Edge - Atualizar sempre que uma nova aba for aberta ou fechada
Solução:
- O cliente precisa monitorar as abas do Chrome/Edge
- Enviar no campo
urlsdo POST/api/activity/log - Ver arquivo:
ESPECIFICACAO_CLIENTE_WINDOWS.mdseção 2
3. Logs de logon/logoff do Windows não estão sendo enviados
Status: ❌ NÃO FUNCIONANDO
O que está acontecendo:
- Nenhum evento de sessão está sendo recebido
- O endpoint
/api/activity/sessionnão está sendo chamado
O que deveria acontecer:
- Detectar quando o usuário faz logon no Windows
- Detectar quando o usuário faz logoff no Windows
- Enviar POST para
/api/activity/sessionimediatamente
Solução:
- O cliente precisa escutar eventos do Windows (SessionSwitch)
- Enviar POST para
/api/activity/sessionquando ocorrer logon/logoff - Ver arquivo:
ESPECIFICACAO_CLIENTE_WINDOWS.mdseção 3
✅ O que está funcionando
- ✅ Heartbeat/Status: O dispositivo aparece como online
- ✅ Atividades básicas: Está enviando atividades (mesmo que apenas "System Idle")
- ✅ Backend: O servidor está recebendo e processando os dados
🔧 Ações Necessárias
No Cliente Windows (DESKTOP-BC16GDH):
-
Atualizar código para capturar aplicativos reais:
- Usar
GetForegroundWindow()para obter janela ativa - Usar
GetWindowThreadProcessId()para obter processo - NÃO enviar "System Idle" quando há aplicativo ativo
- Usar
-
Implementar monitoramento do Chrome:
- Usar Chrome DevTools Protocol ou extensão
- Capturar URLs de todas as abas abertas
- Enviar no campo
urlsdo POST/api/activity/log
-
Implementar eventos de sessão:
- Escutar eventos
SessionSwitchdo Windows - Enviar POST para
/api/activity/sessionquando ocorrer logon/logoff
- Escutar eventos
No Servidor (Backend):
- ✅ Validação adicionada: O backend agora avisa quando recebe dados inválidos
- ⚠️ Permissões do banco: Precisa corrigir permissões das tabelas
browsing_historyesession_events
📋 Checklist para o Cliente
- Cliente captura
window_titlereal (não "System Idle") - Cliente captura
application_namereal (exe do processo) - Cliente envia atividades a cada 5-10 segundos quando há mudança
- Cliente monitora e envia URLs do Chrome/Edge
- Cliente detecta eventos de logon/logoff do Windows
- Cliente envia eventos de sessão imediatamente
📄 Documentação
- Especificação completa:
ESPECIFICACAO_CLIENTE_WINDOWS.md - Configuração básica:
CLIENT_CONFIG.md
🐛 Como Verificar
Ver logs do servidor:
pm2 logs pointcontrol-api --lines 50
Procure por:
⚠️ ATENÇÃO: Recebendo atividade com window_title inválido- indica que o cliente não está enviando dados reais📊 X URLs registradas- indica que URLs estão sendo recebidas🔐 Evento de sessão- indica que eventos de sessão estão sendo recebidos
Verificar dados no banco:
cd /var/www/pointcontrol/backend
node check_device_status.js DESKTOP-BC16GDH