Files
NoIdle/RESUMO_PROBLEMA_CLIENTE.md
Sérgio Corrêa 4fab8593ac refactor: Migração completa de PointControl para NoIdle
- Pasta renomeada: /var/www/pointcontrol → /var/www/noidle
- PM2 renomeado: pointcontrol-api → noidle-api
- Package.json backend atualizado
- Package.json frontend atualizado
- Todas as referências de código atualizadas
- Documentação atualizada
- Script de migração executado com sucesso
- Backup criado em /tmp/
- Sistema testado e funcionando

Resolução: Organização completa da estrutura bagunçada
2025-11-16 23:38:59 +00:00

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" e application_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.md seçã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 urls não está sendo enviado no POST /api/activity/log

O que deveria acontecer:

  • Enviar array urls com 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 urls do POST /api/activity/log
  • Ver arquivo: ESPECIFICACAO_CLIENTE_WINDOWS.md seçã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/session nã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/session imediatamente

Solução:

  • O cliente precisa escutar eventos do Windows (SessionSwitch)
  • Enviar POST para /api/activity/session quando ocorrer logon/logoff
  • Ver arquivo: ESPECIFICACAO_CLIENTE_WINDOWS.md seção 3

O que está funcionando

  1. Heartbeat/Status: O dispositivo aparece como online
  2. Atividades básicas: Está enviando atividades (mesmo que apenas "System Idle")
  3. Backend: O servidor está recebendo e processando os dados

🔧 Ações Necessárias

No Cliente Windows (DESKTOP-BC16GDH):

  1. 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
  2. Implementar monitoramento do Chrome:

    • Usar Chrome DevTools Protocol ou extensão
    • Capturar URLs de todas as abas abertas
    • Enviar no campo urls do POST /api/activity/log
  3. Implementar eventos de sessão:

    • Escutar eventos SessionSwitch do Windows
    • Enviar POST para /api/activity/session quando ocorrer logon/logoff

No Servidor (Backend):

  1. Validação adicionada: O backend agora avisa quando recebe dados inválidos
  2. ⚠️ Permissões do banco: Precisa corrigir permissões das tabelas browsing_history e session_events

📋 Checklist para o Cliente

  • Cliente captura window_title real (não "System Idle")
  • Cliente captura application_name real (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 noidle-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/noidle/backend
node check_device_status.js DESKTOP-BC16GDH