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

129 lines
4.1 KiB
Markdown

# 🔍 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:
```bash
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:
```bash
cd /var/www/noidle/backend
node check_device_status.js DESKTOP-BC16GDH
```