You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CREATE OR REPLACE VIEW view_assets_full AS
SELECT
a.id,
a.name,
a.ip_address,
a.mac_address,
-- Prioridad: Si ya le asignaste un fabricante manual, muestra ese.
-- Si no, muestra el detectado por la MAC.
COALESCE(m.name, mv.vendor_name, 'Desconocido') AS fabricante_final,
CASE
WHEN m.name IS NOT NULL THEN 'Manual/Oficial'
WHEN mv.vendor_name IS NOT NULL THEN 'Detectado por MAC'
ELSE 'N/A'
END as fuente_fabricante
FROM assets a
LEFT JOIN manufacturers m ON a.manufacturer_id = m.id
LEFT JOIN mac_vendors mv ON LEFT(REPLACE(UPPER(a.mac_address), ':', ''), 6) = mv.oui;
El backend expone una API RESTful en el puerto 8000.
A excepción de las rutas públicas, todos los endpoints requieren la cookie auth_token.
🔓 Autenticación y Sistema (Público)
Método
Endpoint
Descripción
POST
/login
Autentica al usuario. Recibe JSON {email, password} y devuelve una cookie HttpOnly.
GET
/health
Chequeo de estado (Health Check). Devuelve 200 OK si el sistema está operativo.
🏭 Gestión de Activos (Assets)
Método
Endpoint
Descripción
GET
/assets
Lista paginada de activos. Soporta filtros (page, size, search, site_id, etc.).
GET
/assets/full
(Nuevo) Lista enriquecida. Incluye el campo detected_vendor cruzando la MAC con la BD de fabricantes.
POST
/assets
Crea un nuevo activo manualmente.
GET
/assets/:id
Obtiene el detalle completo de un activo por su UUID.
PUT
/assets/:id
Actualiza los datos de un activo existente.
DELETE
/assets/:id
Elimina un activo (Soft Delete / Borrado lógico).
POST
/assets/bulk-delete
Elimina múltiples activos en una sola petición. Recibe { ids: [uuid, uuid] }.
📂 Archivos e Importación
Método
Endpoint
Descripción
POST
/pcap/upload
Sube un archivo .pcap. Analiza tráfico, extrae IPs/MACs y crea activos automáticamente.
POST
/import/mac-vendors
(Nuevo) Carga el JSON de maclookup para actualizar la base de datos de fabricantes OUI.
POST
/import/xlsx/preview
Sube un Excel para previsualizar activos antes de importarlos masivamente.
POST
/print/generate
Genera un reporte PDF (Ficha Técnica) de un activo específico.
GET
/uploads/*
Sirve archivos estáticos subidos al servidor.
📄 Plantilla de Importación (Excel/CSV)
El sistema espera un archivo con las siguientes columnas para la importación masiva de activos. Las columnas IP Address y MAC Address son opcionales para activos offline (repuestos).
Name
Tag
IP Address
MAC Address
Serial Number
Model
Type
Manufacturer
Site
Area
Criticality
Main PLC Line 1
PLC-MTY-01
192.168.1.10
00:1C:06:A1:B2:C3
SN-998877
S7-1500
PLC
Siemens
Planta Monterrey
Ensamble
High
HMI Panel A
HMI-MTY-01
192.168.1.11
00:0C:29:D4:E5:F6
SN-554433
TP1200
HMI
Siemens
Planta Monterrey
Ensamble
Medium
Robot Weld 3
ROB-WELD-03
192.168.2.50
00:50:56:11:22:33
FAN-2023
R-2000iD
Robot
Fanuc
Planta Querétaro
Soldadura
Critical
Switch Core
SW-CORE-01
10.10.10.1
E8:65:D4:88:99:00
J9729A
2920-48G
Switch
HP
Planta Monterrey
IDF-01
High
Repuesto VFD
SPARE-VFD-04
SN-112233
PowerFlex
Drive
Rockwell
Almacén Central
Estante 4
Low
📊 Dashboard y Visualización
Método
Endpoint
Descripción
GET
/dashboard/stats
Devuelve KPIs: total de activos, activos críticos, riesgosos y distribución por estado.
GET
/asset-connections/network-topology
Devuelve nodos y aristas (grafo) para visualizar el mapa de red interactivo.
GET
/search/global
Buscador global rápido. Encuentra coincidencias en activos y sitios simultáneamente.
🗺️ Catálogos y Jerarquías
Método
Endpoint
Descripción
GET
/sites
Lista los sitios físicos (ej: Plantas).
GET
/areas
Lista las áreas dentro de los sitios (ej: Líneas de producción).
GET
/locations
Lista ubicaciones específicas (ej: Racks, Gabinetes).
GET
/manufacturers
Lista el catálogo oficial de fabricantes (Siemens, Rockwell, etc.).
GET
/suppliers
Lista los proveedores registrados.
GET
/asset-types
Lista los tipos de activo (PLC, HMI, Robot, Sensor).
GET
/asset-statuses
Lista los estados posibles (Activo, Mantenimiento, Offline).
👤 Usuario
Método
Endpoint
Descripción
GET
/users/me
Devuelve la información del perfil del usuario logueado actualmente.