Endpoints de Dashboard

El endpoint de dashboard proporciona estadísticas agregadas del sistema bajo el prefijo /api/v1/dashboard/. Los datos devueltos varían según el rol del usuario: los superusuarios reciben estadísticas globales, mientras que los usuarios regulares solo ven datos de sus propios recursos.

Estadísticas — /api/v1/dashboard/stats/

Endpoint de solo lectura que devuelve un resumen agregado de VMs, hosting, facturación y tickets. Diseñado para alimentar los widgets del dashboard principal del panel.

Métodos

Método

Endpoint

Descripción

GET

/api/v1/dashboard/stats/

Obtener estadísticas agregadas

Permisos y alcance de datos

Rol

Datos devueltos

Superusuario

Estadísticas globales de todo el sistema: todas las VMs, todos los sitios de hosting, ingresos totales, todos los tickets.

Usuario regular

Solo datos propios: VMs de sus pools, sitios de sus tenants, suscripciones de sus tenants, tickets propios.

Ejemplo — Obtener estadísticas:

curl -X GET https://panel.example.com/api/v1/dashboard/stats/ \
  -H "Authorization: Bearer $TOKEN"

Respuesta (superusuario):

{
  "vms": {
    "total": 24,
    "running": 18
  },
  "hosting": {
    "domains": 156,
    "databases": 89,
    "email_accounts": 342,
    "ssl_active": 143
  },
  "billing": {
    "total_revenue": "12450.50",
    "pending_amount": "1230.00",
    "active_subscriptions": 78
  },
  "tickets": {
    "total": 520,
    "open": 12,
    "pending": 5
  }
}

Respuesta (usuario regular):

{
  "vms": {
    "total": 3,
    "running": 2
  },
  "hosting": {
    "domains": 5,
    "databases": 3,
    "email_accounts": 12,
    "ssl_active": 4
  },
  "billing": {
    "active_subscriptions": 2
  },
  "tickets": {
    "total": 8,
    "open": 1,
    "pending": 0
  }
}

Campos de la respuesta

Sección vms

Campo

Descripción

total

Número total de máquinas virtuales

running

Número de VMs en estado running

Sección hosting

Campo

Descripción

domains

Número de sitios web activos

databases

Número de bases de datos

email_accounts

Número de buzones de correo

ssl_active

Número de sitios con SSL habilitado

Sección billing (superusuario)

Campo

Descripción

total_revenue

Ingresos totales de pagos completados (cadena decimal)

pending_amount

Monto total de facturas pendientes y vencidas (cadena decimal)

active_subscriptions

Número de suscripciones activas

Sección billing (usuario regular)

Campo

Descripción

active_subscriptions

Número de suscripciones activas del usuario

Sección tickets

Campo

Descripción

total

Número total de tickets

open

Tickets en estado new u open

pending

Tickets en estado pending

Note

Cada sección solo se incluye en la respuesta si el usuario tiene acceso al módulo correspondiente (can_access_vps, can_access_hosting, can_access_billing, can_access_ticketing). Si un módulo no está disponible o genera un error, se devuelven valores por defecto (ceros).

Los campos de billing total_revenue y pending_amount solo están disponibles para superusuarios.