Files
DashDescomplicar/api
Emanuel Almeida a19e07d83c fix: remove HEAD-based site checker that caused false DOWN status
The checkAllSitesAvailability() function did HEAD requests from EasyPanel
to check sites. Many WordPress sites block HEAD or return errors, causing
all sites to show as DOWN while keeping valid response times from the
CWP collector. The CWP collector (collect-sites.sh) is the single source
of truth for site status.

Removed:
- checkSiteAvailability() and checkAllSitesAvailability() from monitoring service
- POST /api/monitor/check-sites endpoint
- api/scripts/check-sites.ts cron script

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 17:48:41 +00:00
..

Dashboard Descomplicar API

API Node.js/Express com queries diretas à BD Desk CRM.

Estrutura

api/
├── server.ts          # Express server
├── db.ts              # MySQL connection pool
├── services/
│   ├── calendar.ts    # Google Calendar API
│   ├── dashboard.ts   # Dashboard queries
│   └── monitoring.ts  # Monitoring queries
└── routes/
    ├── dashboard.ts   # GET /api/dashboard
    └── monitor.ts     # GET /api/monitor

Endpoints

GET /api/dashboard

Retorna dados do dashboard principal:

  • Tarefas (urgente, alta, vencidas, testes, semana)
  • Tickets abertos
  • Leads (contactar, followup, proposta)
  • Projectos activos
  • Timesheet semanal
  • Billing 360
  • Pipeline de vendas
  • Eventos Google Calendar (hoje + semana)

GET /api/monitor

Retorna status de monitorização:

  • Servidores (CPU, RAM, Disco)
  • Serviços web
  • Sites WordPress
  • Containers Docker

GET /api/health

Health check endpoint

Setup

  1. Instalar dependências:
npm install
  1. Configurar .env:
cp .env.example .env
# Editar .env com credenciais correctas
  1. Desenvolvimento:
npm run dev       # Vite + API (ambos)
npm run dev:api   # API apenas
npm run dev:ui    # Vite apenas
  1. Produção:
npm run build
npm start

Queries Migradas do PHP

Todas as queries do index.php e monitor.php foram migradas para TypeScript:

  • Tasks (urgente, alta, vencidas, testes, semana, monday mood)
  • Tickets
  • Leads (contactar, followup, proposta)
  • Projectos
  • Timesheet semanal
  • Billing 360
  • Pipeline (leads, estimates, proposals)
  • Google Calendar (eventos pessoais + profissionais)
  • Monitorização (tbl_eal_monitoring)

BD Necessárias

  • ealmeida_desk24 (BD principal Perfex CRM)
  • Tabelas Perfex: tbltasks, tblleads, tblprojects, tbltickets, etc.
  • Tabelas custom: billing_360_clients, billing_360_invoices, tbl_eal_monitoring

Google Calendar API

Credenciais OAuth2 configuradas em services/calendar.ts:

  • Client ID
  • Client Secret
  • Refresh Token

Calendários:

  • primary - Eventos pessoais
  • emanuel@descomplicar.pt - Eventos profissionais