feat: Implementação completa do NoIdle - Cliente, Backend e Scripts
- 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
This commit is contained in:
128
RESUMO_PROBLEMA_CLIENTE.md
Normal file
128
RESUMO_PROBLEMA_CLIENTE.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# 🔍 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 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:
|
||||
```bash
|
||||
cd /var/www/pointcontrol/backend
|
||||
node check_device_status.js DESKTOP-BC16GDH
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user