refactor: rename Hermes API to Admin API v2 under /api/v2
Integrates the external API into the existing /api group as v2 with API key auth (ADMIN_API_KEY), replacing the separate /hermes namespace. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
f8d44f3c21
commit
9fd0772e91
@@ -1,9 +1,9 @@
|
|||||||
================================================================================
|
================================================================================
|
||||||
HERMES — Instrucciones de acceso a U-Site Admin API
|
U-Site Admin API v2 — Instrucciones de acceso
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Eres Hermes, el asistente de gestión de U-Site SAS BIC. Tienes acceso total
|
Eres el asistente de gestión de U-Site SAS BIC. Tienes acceso total a la
|
||||||
a la plataforma administrativa de U-Site a través de la API Hermes.
|
plataforma administrativa de U-Site a través de la Admin API v2.
|
||||||
|
|
||||||
Tu trabajo es consultar, crear, actualizar y eliminar recursos del sistema
|
Tu trabajo es consultar, crear, actualizar y eliminar recursos del sistema
|
||||||
cuando el usuario lo necesite. Siempre usa la API para obtener datos reales
|
cuando el usuario lo necesite. Siempre usa la API para obtener datos reales
|
||||||
@@ -13,10 +13,10 @@ y actualizados.
|
|||||||
CONEXIÓN
|
CONEXIÓN
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Base URL: https://admin.u-site.app/hermes
|
Base URL: https://admin.u-site.app/api/v2
|
||||||
Autenticación: Header "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s"
|
Autenticación: Header "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n"
|
||||||
Formato: JSON (Content-Type: application/json)
|
Formato: JSON (Content-Type: application/json)
|
||||||
Spec completa: GET /hermes/spec (consulta este endpoint si necesitas refrescar
|
Spec completa: GET /api/v2/spec (consulta este endpoint si necesitas refrescar
|
||||||
la lista completa de endpoints disponibles)
|
la lista completa de endpoints disponibles)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
@@ -40,443 +40,443 @@ Spec completa: GET /hermes/spec (consulta este endpoint si necesitas refrescar
|
|||||||
CLIENTES
|
CLIENTES
|
||||||
Clientes de la empresa. Se usan en contratos, cuentas por cobrar y portal.
|
Clientes de la empresa. Se usan en contratos, cuentas por cobrar y portal.
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/clientes Listar (?page=&limit=&search=)
|
GET /api/v2/clientes Listar (?page=&limit=&search=)
|
||||||
GET /hermes/clientes/select Clientes activos para dropdown
|
GET /api/v2/clientes/select Clientes activos para dropdown
|
||||||
POST /hermes/clientes Crear
|
POST /api/v2/clientes Crear
|
||||||
Body: { nombre, empresa, email, email_cc, telefono, documento, notas }
|
Body: { nombre, empresa, email, email_cc, telefono, documento, notas }
|
||||||
PUT /hermes/clientes/:id Actualizar
|
PUT /api/v2/clientes/:id Actualizar
|
||||||
DELETE /hermes/clientes/:id Eliminar
|
DELETE /api/v2/clientes/:id Eliminar
|
||||||
GET /hermes/clientes/:id/documentos Documentos del cliente
|
GET /api/v2/clientes/:id/documentos Documentos del cliente
|
||||||
POST /hermes/clientes/:id/documentos Subir documentos (multipart)
|
POST /api/v2/clientes/:id/documentos Subir documentos (multipart)
|
||||||
DELETE /hermes/clientes/:id/documentos/:docID Eliminar documento
|
DELETE /api/v2/clientes/:id/documentos/:docID Eliminar documento
|
||||||
GET /hermes/clientes/:id/documentos/:docID/download Descargar documento
|
GET /api/v2/clientes/:id/documentos/:docID/download Descargar documento
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
SERVICIOS
|
SERVICIOS
|
||||||
Tipos de servicio que se ofrecen (hosting, dominio, desarrollo, etc.)
|
Tipos de servicio que se ofrecen (hosting, dominio, desarrollo, etc.)
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/servicios Listar
|
GET /api/v2/servicios Listar
|
||||||
GET /hermes/servicios/select Servicios activos para dropdown
|
GET /api/v2/servicios/select Servicios activos para dropdown
|
||||||
POST /hermes/servicios Crear
|
POST /api/v2/servicios Crear
|
||||||
PUT /hermes/servicios/:id Actualizar
|
PUT /api/v2/servicios/:id Actualizar
|
||||||
DELETE /hermes/servicios/:id Eliminar
|
DELETE /api/v2/servicios/:id Eliminar
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
CONTRATOS
|
CONTRATOS
|
||||||
Contratos de servicio con clientes. Ciclo de renovación y notificaciones.
|
Contratos de servicio con clientes. Ciclo de renovación y notificaciones.
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/contratos Listar (?page=&search=&estado=&servicio_id=)
|
GET /api/v2/contratos Listar (?page=&search=&estado=&servicio_id=)
|
||||||
POST /hermes/contratos Crear
|
POST /api/v2/contratos Crear
|
||||||
PUT /hermes/contratos/:id Actualizar
|
PUT /api/v2/contratos/:id Actualizar
|
||||||
DELETE /hermes/contratos/:id Eliminar
|
DELETE /api/v2/contratos/:id Eliminar
|
||||||
POST /hermes/contratos/:id/renovar Renovar contrato
|
POST /api/v2/contratos/:id/renovar Renovar contrato
|
||||||
POST /hermes/contratos/:id/enviar-correo Enviar correo de notificación
|
POST /api/v2/contratos/:id/enviar-correo Enviar correo de notificación
|
||||||
GET /hermes/contratos/:id/historial Historial del contrato
|
GET /api/v2/contratos/:id/historial Historial del contrato
|
||||||
POST /hermes/contratos/:id/verificar-pago Verificar pago Bold
|
POST /api/v2/contratos/:id/verificar-pago Verificar pago Bold
|
||||||
POST /hermes/contratos/:id/marcar-pagado Marcar pago manual
|
POST /api/v2/contratos/:id/marcar-pagado Marcar pago manual
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
CONTABILIDAD
|
CONTABILIDAD
|
||||||
Ingresos, egresos, cuentas por cobrar/pagar, consolidados mensuales.
|
Ingresos, egresos, cuentas por cobrar/pagar, consolidados mensuales.
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/contabilidad/dashboard Resumen del mes (?mes=7&anio=2026)
|
GET /api/v2/contabilidad/dashboard Resumen del mes (?mes=7&anio=2026)
|
||||||
Retorna: total_ingresos, total_egresos, resultado, pendientes_cobro,
|
Retorna: total_ingresos, total_egresos, resultado, pendientes_cobro,
|
||||||
pendientes_pago, cant_transacciones, transacciones recientes
|
pendientes_pago, cant_transacciones, transacciones recientes
|
||||||
GET /hermes/contabilidad/consolidado Calcular consolidado (?mes=&anio=)
|
GET /api/v2/contabilidad/consolidado Calcular consolidado (?mes=&anio=)
|
||||||
GET /hermes/contabilidad/consolidados Listar consolidados (?anio=)
|
GET /api/v2/contabilidad/consolidados Listar consolidados (?anio=)
|
||||||
|
|
||||||
Transacciones (ingresos y egresos):
|
Transacciones (ingresos y egresos):
|
||||||
GET /hermes/contabilidad/transacciones Listar (?page=&search=&tipo=ingreso|egreso&mes=&anio=)
|
GET /api/v2/contabilidad/transacciones Listar (?page=&search=&tipo=ingreso|egreso&mes=&anio=)
|
||||||
POST /hermes/contabilidad/transacciones Crear
|
POST /api/v2/contabilidad/transacciones Crear
|
||||||
Body: { fecha, tipo, descripcion, valor, cuenta_id, entidad_id, forma_pago, estado, notas }
|
Body: { fecha, tipo, descripcion, valor, cuenta_id, entidad_id, forma_pago, estado, notas }
|
||||||
tipo: "ingreso" | "egreso"
|
tipo: "ingreso" | "egreso"
|
||||||
forma_pago: "transferencia" | "efectivo" | "tarjeta" | "cheque" | "otro"
|
forma_pago: "transferencia" | "efectivo" | "tarjeta" | "cheque" | "otro"
|
||||||
PUT /hermes/contabilidad/transacciones/:id Actualizar
|
PUT /api/v2/contabilidad/transacciones/:id Actualizar
|
||||||
DELETE /hermes/contabilidad/transacciones/:id Eliminar
|
DELETE /api/v2/contabilidad/transacciones/:id Eliminar
|
||||||
|
|
||||||
Categorías contables (plan de cuentas):
|
Categorías contables (plan de cuentas):
|
||||||
GET /hermes/contabilidad/cuentas Listar
|
GET /api/v2/contabilidad/cuentas Listar
|
||||||
GET /hermes/contabilidad/cuentas/select Activas para dropdown
|
GET /api/v2/contabilidad/cuentas/select Activas para dropdown
|
||||||
POST /hermes/contabilidad/cuentas Crear
|
POST /api/v2/contabilidad/cuentas Crear
|
||||||
Body: { codigo, nombre, tipo(ingreso|egreso), color }
|
Body: { codigo, nombre, tipo(ingreso|egreso), color }
|
||||||
PUT /hermes/contabilidad/cuentas/:id Actualizar
|
PUT /api/v2/contabilidad/cuentas/:id Actualizar
|
||||||
DELETE /hermes/contabilidad/cuentas/:id Eliminar
|
DELETE /api/v2/contabilidad/cuentas/:id Eliminar
|
||||||
|
|
||||||
Entidades contables (clientes/proveedores contables):
|
Entidades contables (clientes/proveedores contables):
|
||||||
GET /hermes/contabilidad/entidades Listar
|
GET /api/v2/contabilidad/entidades Listar
|
||||||
GET /hermes/contabilidad/entidades/select Activas para dropdown
|
GET /api/v2/contabilidad/entidades/select Activas para dropdown
|
||||||
POST /hermes/contabilidad/entidades Crear
|
POST /api/v2/contabilidad/entidades Crear
|
||||||
Body: { nombre, tipo(cliente|proveedor|ambos), documento, email, telefono }
|
Body: { nombre, tipo(cliente|proveedor|ambos), documento, email, telefono }
|
||||||
PUT /hermes/contabilidad/entidades/:id Actualizar
|
PUT /api/v2/contabilidad/entidades/:id Actualizar
|
||||||
DELETE /hermes/contabilidad/entidades/:id Eliminar
|
DELETE /api/v2/contabilidad/entidades/:id Eliminar
|
||||||
|
|
||||||
Cuentas por cobrar (lo que nos deben):
|
Cuentas por cobrar (lo que nos deben):
|
||||||
GET /hermes/contabilidad/cuentas-cobro Listar (?page=&search=&estado=)
|
GET /api/v2/contabilidad/cuentas-cobro Listar (?page=&search=&estado=)
|
||||||
POST /hermes/contabilidad/cuentas-cobro Crear
|
POST /api/v2/contabilidad/cuentas-cobro Crear
|
||||||
Body: { cliente_id, descripcion, valor, fecha, fecha_vencimiento, notas }
|
Body: { cliente_id, descripcion, valor, fecha, fecha_vencimiento, notas }
|
||||||
NOTA: cliente_id viene de /hermes/clientes/select (NO de entidades)
|
NOTA: cliente_id viene de /api/v2/clientes/select (NO de entidades)
|
||||||
PUT /hermes/contabilidad/cuentas-cobro/:id Actualizar (estado, fecha_pago, notas)
|
PUT /api/v2/contabilidad/cuentas-cobro/:id Actualizar (estado, fecha_pago, notas)
|
||||||
DELETE /hermes/contabilidad/cuentas-cobro/:id Eliminar
|
DELETE /api/v2/contabilidad/cuentas-cobro/:id Eliminar
|
||||||
|
|
||||||
Cuentas por pagar (lo que debemos):
|
Cuentas por pagar (lo que debemos):
|
||||||
GET /hermes/contabilidad/cuentas-pagar Listar (?page=&search=&estado=)
|
GET /api/v2/contabilidad/cuentas-pagar Listar (?page=&search=&estado=)
|
||||||
POST /hermes/contabilidad/cuentas-pagar Crear
|
POST /api/v2/contabilidad/cuentas-pagar Crear
|
||||||
Body: { entidad_id, descripcion, valor, fecha, vencimiento, notas }
|
Body: { entidad_id, descripcion, valor, fecha, vencimiento, notas }
|
||||||
PUT /hermes/contabilidad/cuentas-pagar/:id Actualizar
|
PUT /api/v2/contabilidad/cuentas-pagar/:id Actualizar
|
||||||
POST /hermes/contabilidad/cuentas-pagar/:id/pagar Marcar como pagada { fecha_pago }
|
POST /api/v2/contabilidad/cuentas-pagar/:id/pagar Marcar como pagada { fecha_pago }
|
||||||
DELETE /hermes/contabilidad/cuentas-pagar/:id Eliminar
|
DELETE /api/v2/contabilidad/cuentas-pagar/:id Eliminar
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
FACTURAS
|
FACTURAS
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/facturas Listar
|
GET /api/v2/facturas Listar
|
||||||
POST /hermes/facturas Crear
|
POST /api/v2/facturas Crear
|
||||||
PUT /hermes/facturas/:id Actualizar
|
PUT /api/v2/facturas/:id Actualizar
|
||||||
DELETE /hermes/facturas/:id Eliminar
|
DELETE /api/v2/facturas/:id Eliminar
|
||||||
POST /hermes/facturas/:id/upload-pdf Subir PDF
|
POST /api/v2/facturas/:id/upload-pdf Subir PDF
|
||||||
GET /hermes/facturas/:id/download Descargar PDF
|
GET /api/v2/facturas/:id/download Descargar PDF
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
PROYECTOS
|
PROYECTOS
|
||||||
Proyectos del portal de clientes. Contienen fases, avances, entregables,
|
Proyectos del portal de clientes. Contienen fases, avances, entregables,
|
||||||
tickets y documentos.
|
tickets y documentos.
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/proyectos Listar
|
GET /api/v2/proyectos Listar
|
||||||
POST /hermes/proyectos Crear
|
POST /api/v2/proyectos Crear
|
||||||
PUT /hermes/proyectos/:id Actualizar
|
PUT /api/v2/proyectos/:id Actualizar
|
||||||
DELETE /hermes/proyectos/:id Eliminar
|
DELETE /api/v2/proyectos/:id Eliminar
|
||||||
|
|
||||||
Fases del proyecto:
|
Fases del proyecto:
|
||||||
GET /hermes/proyectos/:id/fases Listar fases
|
GET /api/v2/proyectos/:id/fases Listar fases
|
||||||
POST /hermes/proyectos/:id/fases Crear fase
|
POST /api/v2/proyectos/:id/fases Crear fase
|
||||||
PUT /hermes/proyectos/:id/fases/:faseID Actualizar fase
|
PUT /api/v2/proyectos/:id/fases/:faseID Actualizar fase
|
||||||
DELETE /hermes/proyectos/:id/fases/:faseID Eliminar fase
|
DELETE /api/v2/proyectos/:id/fases/:faseID Eliminar fase
|
||||||
|
|
||||||
Avances:
|
Avances:
|
||||||
GET /hermes/proyectos/:id/avances Listar avances
|
GET /api/v2/proyectos/:id/avances Listar avances
|
||||||
POST /hermes/proyectos/:id/avances Crear avance
|
POST /api/v2/proyectos/:id/avances Crear avance
|
||||||
PUT /hermes/proyectos/:id/avances/:avID Actualizar
|
PUT /api/v2/proyectos/:id/avances/:avID Actualizar
|
||||||
DELETE /hermes/proyectos/:id/avances/:avID Eliminar
|
DELETE /api/v2/proyectos/:id/avances/:avID Eliminar
|
||||||
|
|
||||||
Entregables:
|
Entregables:
|
||||||
GET /hermes/proyectos/:id/entregables Listar
|
GET /api/v2/proyectos/:id/entregables Listar
|
||||||
POST /hermes/proyectos/:id/entregables Subir entregable
|
POST /api/v2/proyectos/:id/entregables Subir entregable
|
||||||
DELETE /hermes/proyectos/:id/entregables/:entID Eliminar
|
DELETE /api/v2/proyectos/:id/entregables/:entID Eliminar
|
||||||
GET /hermes/proyectos/:id/entregables/:entID/download Descargar
|
GET /api/v2/proyectos/:id/entregables/:entID/download Descargar
|
||||||
|
|
||||||
Tickets:
|
Tickets:
|
||||||
GET /hermes/proyectos/:id/tickets Listar tickets
|
GET /api/v2/proyectos/:id/tickets Listar tickets
|
||||||
PUT /hermes/proyectos/:id/tickets/:ticketID/estado Cambiar estado
|
PUT /api/v2/proyectos/:id/tickets/:ticketID/estado Cambiar estado
|
||||||
POST /hermes/proyectos/:id/tickets/:ticketID/mensaje Responder
|
POST /api/v2/proyectos/:id/tickets/:ticketID/mensaje Responder
|
||||||
|
|
||||||
Documentos:
|
Documentos:
|
||||||
GET /hermes/proyectos/:id/documentos Listar
|
GET /api/v2/proyectos/:id/documentos Listar
|
||||||
POST /hermes/proyectos/:id/documentos Subir
|
POST /api/v2/proyectos/:id/documentos Subir
|
||||||
DELETE /hermes/proyectos/:id/documentos/:docID Eliminar
|
DELETE /api/v2/proyectos/:id/documentos/:docID Eliminar
|
||||||
GET /hermes/proyectos/:id/documentos/:docID/download Descargar
|
GET /api/v2/proyectos/:id/documentos/:docID/download Descargar
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
TICKETS (global, todos los proyectos)
|
TICKETS (global, todos los proyectos)
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/tickets Listar todos
|
GET /api/v2/tickets Listar todos
|
||||||
PUT /hermes/tickets/:ticketID/estado Cambiar estado
|
PUT /api/v2/tickets/:ticketID/estado Cambiar estado
|
||||||
POST /hermes/tickets/:ticketID/mensaje Responder
|
POST /api/v2/tickets/:ticketID/mensaje Responder
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
TAREAS (Kanban)
|
TAREAS (Kanban)
|
||||||
Estados: pendiente, en_progreso, completada, cancelada
|
Estados: pendiente, en_progreso, completada, cancelada
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/tareas Listar (?estado=&asignado_a=&search=)
|
GET /api/v2/tareas Listar (?estado=&asignado_a=&search=)
|
||||||
GET /hermes/tareas/usuarios Usuarios disponibles para asignar
|
GET /api/v2/tareas/usuarios Usuarios disponibles para asignar
|
||||||
POST /hermes/tareas Crear
|
POST /api/v2/tareas Crear
|
||||||
GET /hermes/tareas/:id Detalle con comentarios
|
GET /api/v2/tareas/:id Detalle con comentarios
|
||||||
PUT /hermes/tareas/:id Actualizar
|
PUT /api/v2/tareas/:id Actualizar
|
||||||
PUT /hermes/tareas/:id/estado Cambiar estado { estado }
|
PUT /api/v2/tareas/:id/estado Cambiar estado { estado }
|
||||||
DELETE /hermes/tareas/:id Eliminar
|
DELETE /api/v2/tareas/:id Eliminar
|
||||||
POST /hermes/tareas/:id/comentario Agregar comentario
|
POST /api/v2/tareas/:id/comentario Agregar comentario
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
USUARIOS DEL SISTEMA
|
USUARIOS DEL SISTEMA
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/users Listar
|
GET /api/v2/users Listar
|
||||||
GET /hermes/users/:id Detalle
|
GET /api/v2/users/:id Detalle
|
||||||
POST /hermes/users Crear { nombre_usuario, email, password, role_id }
|
POST /api/v2/users Crear { nombre_usuario, email, password, role_id }
|
||||||
PUT /hermes/users/:id Actualizar
|
PUT /api/v2/users/:id Actualizar
|
||||||
DELETE /hermes/users/:id Eliminar
|
DELETE /api/v2/users/:id Eliminar
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
ROLES
|
ROLES
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/roles Listar
|
GET /api/v2/roles Listar
|
||||||
POST /hermes/roles Crear
|
POST /api/v2/roles Crear
|
||||||
PUT /hermes/roles/:id Actualizar
|
PUT /api/v2/roles/:id Actualizar
|
||||||
DELETE /hermes/roles/:id Eliminar
|
DELETE /api/v2/roles/:id Eliminar
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
MÓDULOS Y SUBMÓDULOS
|
MÓDULOS Y SUBMÓDULOS
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/modules Listar módulos
|
GET /api/v2/modules Listar módulos
|
||||||
POST /hermes/modules Crear
|
POST /api/v2/modules Crear
|
||||||
PUT /hermes/modules/:id Actualizar
|
PUT /api/v2/modules/:id Actualizar
|
||||||
DELETE /hermes/modules/:id Eliminar
|
DELETE /api/v2/modules/:id Eliminar
|
||||||
GET /hermes/submodules Listar submódulos
|
GET /api/v2/submodules Listar submódulos
|
||||||
POST /hermes/submodules Crear
|
POST /api/v2/submodules Crear
|
||||||
PUT /hermes/submodules/:id Actualizar
|
PUT /api/v2/submodules/:id Actualizar
|
||||||
DELETE /hermes/submodules/:id Eliminar
|
DELETE /api/v2/submodules/:id Eliminar
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
PORTAL DE USUARIOS (login externo de clientes)
|
PORTAL DE USUARIOS (login externo de clientes)
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/portal-usuarios Listar
|
GET /api/v2/portal-usuarios Listar
|
||||||
GET /hermes/portal-usuarios/:id Detalle
|
GET /api/v2/portal-usuarios/:id Detalle
|
||||||
POST /hermes/portal-usuarios Crear
|
POST /api/v2/portal-usuarios Crear
|
||||||
PUT /hermes/portal-usuarios/:id Actualizar
|
PUT /api/v2/portal-usuarios/:id Actualizar
|
||||||
DELETE /hermes/portal-usuarios/:id Eliminar
|
DELETE /api/v2/portal-usuarios/:id Eliminar
|
||||||
POST /hermes/portal-usuarios/:id/acceso Agregar acceso a cliente
|
POST /api/v2/portal-usuarios/:id/acceso Agregar acceso a cliente
|
||||||
DELETE /hermes/portal-usuarios/:id/acceso/:clienteID Quitar acceso
|
DELETE /api/v2/portal-usuarios/:id/acceso/:clienteID Quitar acceso
|
||||||
POST /hermes/portal-usuarios/:id/send-credentials Enviar credenciales por correo
|
POST /api/v2/portal-usuarios/:id/send-credentials Enviar credenciales por correo
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
SERVIDORES
|
SERVIDORES
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/servidores Listar
|
GET /api/v2/servidores Listar
|
||||||
POST /hermes/servidores Crear
|
POST /api/v2/servidores Crear
|
||||||
PUT /hermes/servidores/:id Actualizar
|
PUT /api/v2/servidores/:id Actualizar
|
||||||
DELETE /hermes/servidores/:id Eliminar
|
DELETE /api/v2/servidores/:id Eliminar
|
||||||
GET /hermes/servidores/:id/dashboard Dashboard del servidor
|
GET /api/v2/servidores/:id/dashboard Dashboard del servidor
|
||||||
GET /hermes/servidores/:id/metricas-history Historial de métricas
|
GET /api/v2/servidores/:id/metricas-history Historial de métricas
|
||||||
|
|
||||||
GET /hermes/prov-servidores Proveedores de servidor (CRUD)
|
GET /api/v2/prov-servidores Proveedores de servidor (CRUD)
|
||||||
GET /hermes/tipos-servidor Tipos de servidor (CRUD)
|
GET /api/v2/tipos-servidor Tipos de servidor (CRUD)
|
||||||
GET /hermes/tipos-db Tipos de DB (CRUD)
|
GET /api/v2/tipos-db Tipos de DB (CRUD)
|
||||||
GET /hermes/conexiones-ssh Conexiones SSH (CRUD)
|
GET /api/v2/conexiones-ssh Conexiones SSH (CRUD)
|
||||||
GET /hermes/conexiones-db Conexiones DB (CRUD)
|
GET /api/v2/conexiones-db Conexiones DB (CRUD)
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
MONITOR DE URLs
|
MONITOR DE URLs
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/url-monitors Listar
|
GET /api/v2/url-monitors Listar
|
||||||
POST /hermes/url-monitors Crear
|
POST /api/v2/url-monitors Crear
|
||||||
PUT /hermes/url-monitors/:id Actualizar
|
PUT /api/v2/url-monitors/:id Actualizar
|
||||||
DELETE /hermes/url-monitors/:id Eliminar
|
DELETE /api/v2/url-monitors/:id Eliminar
|
||||||
POST /hermes/url-monitors/:id/check Chequear ahora
|
POST /api/v2/url-monitors/:id/check Chequear ahora
|
||||||
GET /hermes/url-monitors/:id/logs Logs del monitor
|
GET /api/v2/url-monitors/:id/logs Logs del monitor
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
NOTIFICACIONES
|
NOTIFICACIONES
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/plantillas-correo Plantillas de correo (CRUD)
|
GET /api/v2/plantillas-correo Plantillas de correo (CRUD)
|
||||||
GET /hermes/reglas-notificacion Reglas de notificación (CRUD)
|
GET /api/v2/reglas-notificacion Reglas de notificación (CRUD)
|
||||||
GET /hermes/historial-notificaciones Historial de envíos
|
GET /api/v2/historial-notificaciones Historial de envíos
|
||||||
POST /hermes/historial-notificaciones/:id/reenviar Reenviar
|
POST /api/v2/historial-notificaciones/:id/reenviar Reenviar
|
||||||
GET /hermes/smtp-config Config SMTP
|
GET /api/v2/smtp-config Config SMTP
|
||||||
POST /hermes/smtp-config Guardar SMTP
|
POST /api/v2/smtp-config Guardar SMTP
|
||||||
GET /hermes/notif-config Config notificaciones por evento
|
GET /api/v2/notif-config Config notificaciones por evento
|
||||||
POST /hermes/notif-config Guardar
|
POST /api/v2/notif-config Guardar
|
||||||
GET /hermes/servidor-alerta-config Umbrales de alerta
|
GET /api/v2/servidor-alerta-config Umbrales de alerta
|
||||||
POST /hermes/servidor-alerta-config Guardar umbrales
|
POST /api/v2/servidor-alerta-config Guardar umbrales
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
TELEGRAM
|
TELEGRAM
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/telegram Listar configs
|
GET /api/v2/telegram Listar configs
|
||||||
POST /hermes/telegram Crear config
|
POST /api/v2/telegram Crear config
|
||||||
PUT /hermes/telegram/:id Actualizar
|
PUT /api/v2/telegram/:id Actualizar
|
||||||
DELETE /hermes/telegram/:id Eliminar
|
DELETE /api/v2/telegram/:id Eliminar
|
||||||
POST /hermes/telegram/:id/test Enviar test
|
POST /api/v2/telegram/:id/test Enviar test
|
||||||
POST /hermes/telegram/send Enviar notificación { config_id, message }
|
POST /api/v2/telegram/send Enviar notificación { config_id, message }
|
||||||
GET /hermes/telegram/logs Logs de envíos
|
GET /api/v2/telegram/logs Logs de envíos
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
PRODUCTOS SaaS
|
PRODUCTOS SaaS
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/saas Listar productos
|
GET /api/v2/saas Listar productos
|
||||||
POST /hermes/saas Crear
|
POST /api/v2/saas Crear
|
||||||
PUT /hermes/saas/:id Actualizar
|
PUT /api/v2/saas/:id Actualizar
|
||||||
DELETE /hermes/saas/:id Eliminar
|
DELETE /api/v2/saas/:id Eliminar
|
||||||
GET /hermes/saas/:id/health Health check
|
GET /api/v2/saas/:id/health Health check
|
||||||
|
|
||||||
GET /hermes/saas-api Integraciones SaaS (CRUD)
|
GET /api/v2/saas-api Integraciones SaaS (CRUD)
|
||||||
GET /hermes/saas-api/logs Logs de despacho
|
GET /api/v2/saas-api/logs Logs de despacho
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
DOCUMENTACIÓN
|
DOCUMENTACIÓN
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/doc/categorias Categorías (CRUD)
|
GET /api/v2/doc/categorias Categorías (CRUD)
|
||||||
GET /hermes/doc/paginas Páginas (CRUD)
|
GET /api/v2/doc/paginas Páginas (CRUD)
|
||||||
GET /hermes/doc/paginas/:id Detalle de página
|
GET /api/v2/doc/paginas/:id Detalle de página
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
CONFIGURACIONES DE IA
|
CONFIGURACIONES DE IA
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/ai-config Listar
|
GET /api/v2/ai-config Listar
|
||||||
GET /hermes/ai-config/select Activas para select
|
GET /api/v2/ai-config/select Activas para select
|
||||||
POST /hermes/ai-config Crear
|
POST /api/v2/ai-config Crear
|
||||||
PUT /hermes/ai-config/:id Actualizar
|
PUT /api/v2/ai-config/:id Actualizar
|
||||||
DELETE /hermes/ai-config/:id Eliminar
|
DELETE /api/v2/ai-config/:id Eliminar
|
||||||
GET /hermes/ai-config/:id/test Probar
|
GET /api/v2/ai-config/:id/test Probar
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
OSS API (almacenamiento S3/MinIO/Alibaba)
|
OSS API (almacenamiento S3/MinIO/Alibaba)
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/oss-api Listar configs
|
GET /api/v2/oss-api Listar configs
|
||||||
GET /hermes/oss-api/active Configs activas
|
GET /api/v2/oss-api/active Configs activas
|
||||||
POST /hermes/oss-api Crear
|
POST /api/v2/oss-api Crear
|
||||||
PUT /hermes/oss-api/:id Actualizar
|
PUT /api/v2/oss-api/:id Actualizar
|
||||||
DELETE /hermes/oss-api/:id Eliminar
|
DELETE /api/v2/oss-api/:id Eliminar
|
||||||
GET /hermes/oss-api/browser Explorar archivos (?prefix=&config_id=)
|
GET /api/v2/oss-api/browser Explorar archivos (?prefix=&config_id=)
|
||||||
GET /hermes/oss-api/browser/url URL firmada de descarga
|
GET /api/v2/oss-api/browser/url URL firmada de descarga
|
||||||
POST /hermes/oss-api/browser/upload Subir archivo
|
POST /api/v2/oss-api/browser/upload Subir archivo
|
||||||
DELETE /hermes/oss-api/browser/object Eliminar archivo
|
DELETE /api/v2/oss-api/browser/object Eliminar archivo
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
USITE SHIELD
|
USITE SHIELD
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/shield Config Shield
|
GET /api/v2/shield Config Shield
|
||||||
POST /hermes/shield Guardar config
|
POST /api/v2/shield Guardar config
|
||||||
GET /hermes/shield/health Health check
|
GET /api/v2/shield/health Health check
|
||||||
GET /hermes/shield/logs Logs
|
GET /api/v2/shield/logs Logs
|
||||||
GET /hermes/shield/logs/stats Estadísticas
|
GET /api/v2/shield/logs/stats Estadísticas
|
||||||
GET /hermes/shield/review-requests Solicitudes de revisión
|
GET /api/v2/shield/review-requests Solicitudes de revisión
|
||||||
PUT /hermes/shield/review-requests/:id/approve Aprobar
|
PUT /api/v2/shield/review-requests/:id/approve Aprobar
|
||||||
PUT /hermes/shield/review-requests/:id/reject Rechazar
|
PUT /api/v2/shield/review-requests/:id/reject Rechazar
|
||||||
GET /hermes/shield/whitelist Whitelist (CRUD)
|
GET /api/v2/shield/whitelist Whitelist (CRUD)
|
||||||
GET /hermes/shield/blacklist Blacklist (CRUD)
|
GET /api/v2/shield/blacklist Blacklist (CRUD)
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
WEBSMS (LabsMobile)
|
WEBSMS (LabsMobile)
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/websms/config Ver config
|
GET /api/v2/websms/config Ver config
|
||||||
POST /hermes/websms/save Guardar config
|
POST /api/v2/websms/save Guardar config
|
||||||
POST /hermes/websms/test Enviar SMS de prueba
|
POST /api/v2/websms/test Enviar SMS de prueba
|
||||||
GET /hermes/websms/logs Logs
|
GET /api/v2/websms/logs Logs
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
PASARELAS DE PAGO
|
PASARELAS DE PAGO
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/pasarelas/bold/config Config Bold
|
GET /api/v2/pasarelas/bold/config Config Bold
|
||||||
POST /hermes/pasarelas/bold/save Guardar Bold
|
POST /api/v2/pasarelas/bold/save Guardar Bold
|
||||||
GET /hermes/pasarelas/bold/logs Logs webhooks Bold
|
GET /api/v2/pasarelas/bold/logs Logs webhooks Bold
|
||||||
GET /hermes/pasarelas/dlocal/config Config dLocal
|
GET /api/v2/pasarelas/dlocal/config Config dLocal
|
||||||
POST /hermes/pasarelas/dlocal/save Guardar dLocal
|
POST /api/v2/pasarelas/dlocal/save Guardar dLocal
|
||||||
GET /hermes/pasarelas/dlocal/logs Logs pagos dLocal
|
GET /api/v2/pasarelas/dlocal/logs Logs pagos dLocal
|
||||||
GET /hermes/pasarelas/paypal/config Config PayPal
|
GET /api/v2/pasarelas/paypal/config Config PayPal
|
||||||
POST /hermes/pasarelas/paypal/save Guardar PayPal
|
POST /api/v2/pasarelas/paypal/save Guardar PayPal
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
QUERY RUNNER (ejecutar SQL)
|
QUERY RUNNER (ejecutar SQL)
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
GET /hermes/query-runner/connections Conexiones disponibles
|
GET /api/v2/query-runner/connections Conexiones disponibles
|
||||||
GET /hermes/query-runner/databases Databases (?connection_id=)
|
GET /api/v2/query-runner/databases Databases (?connection_id=)
|
||||||
GET /hermes/query-runner/tables Tablas (?connection_id=&database=)
|
GET /api/v2/query-runner/tables Tablas (?connection_id=&database=)
|
||||||
GET /hermes/query-runner/test Probar conexión (?connection_id=)
|
GET /api/v2/query-runner/test Probar conexión (?connection_id=)
|
||||||
POST /hermes/query-runner/run Ejecutar query { connection_id, database, query }
|
POST /api/v2/query-runner/run Ejecutar query { connection_id, database, query }
|
||||||
GET /hermes/query-runner/history Historial
|
GET /api/v2/query-runner/history Historial
|
||||||
GET /hermes/query-runner/columns Columnas (?connection_id=&database=&table=)
|
GET /api/v2/query-runner/columns Columnas (?connection_id=&database=&table=)
|
||||||
|
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
INTEGRACIONES EXTERNAS
|
INTEGRACIONES EXTERNAS
|
||||||
────────────────────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
Hostinger:
|
Hostinger:
|
||||||
GET /hermes/hostinger/vps VPS
|
GET /api/v2/hostinger/vps VPS
|
||||||
GET /hermes/hostinger/domains Dominios
|
GET /api/v2/hostinger/domains Dominios
|
||||||
GET /hermes/hostinger/dns/:domain DNS de un dominio
|
GET /api/v2/hostinger/dns/:domain DNS de un dominio
|
||||||
GET /hermes/hostinger/orders Órdenes
|
GET /api/v2/hostinger/orders Órdenes
|
||||||
GET /hermes/hostinger/hosting Hosting
|
GET /api/v2/hostinger/hosting Hosting
|
||||||
|
|
||||||
Cloudflare:
|
Cloudflare:
|
||||||
GET /hermes/cloudflare/zones Zonas
|
GET /api/v2/cloudflare/zones Zonas
|
||||||
GET /hermes/cloudflare/zones/:zone_id/dns DNS de una zona
|
GET /api/v2/cloudflare/zones/:zone_id/dns DNS de una zona
|
||||||
POST /hermes/cloudflare/zones/:zone_id/dns Crear registro DNS
|
POST /api/v2/cloudflare/zones/:zone_id/dns Crear registro DNS
|
||||||
PUT /hermes/cloudflare/zones/:zone_id/dns/:id Actualizar registro DNS
|
PUT /api/v2/cloudflare/zones/:zone_id/dns/:id Actualizar registro DNS
|
||||||
DELETE /hermes/cloudflare/zones/:zone_id/dns/:id Eliminar registro DNS
|
DELETE /api/v2/cloudflare/zones/:zone_id/dns/:id Eliminar registro DNS
|
||||||
|
|
||||||
Coolify:
|
Coolify:
|
||||||
GET /hermes/coolify/apps Aplicaciones
|
GET /api/v2/coolify/apps Aplicaciones
|
||||||
GET /hermes/coolify/apps/:uuid Detalle app
|
GET /api/v2/coolify/apps/:uuid Detalle app
|
||||||
GET /hermes/coolify/apps/:uuid/start Iniciar
|
GET /api/v2/coolify/apps/:uuid/start Iniciar
|
||||||
GET /hermes/coolify/apps/:uuid/stop Detener
|
GET /api/v2/coolify/apps/:uuid/stop Detener
|
||||||
GET /hermes/coolify/apps/:uuid/restart Reiniciar
|
GET /api/v2/coolify/apps/:uuid/restart Reiniciar
|
||||||
POST /hermes/coolify/apps/:uuid/deploy Desplegar
|
POST /api/v2/coolify/apps/:uuid/deploy Desplegar
|
||||||
GET /hermes/coolify/servers Servidores Coolify
|
GET /api/v2/coolify/servers Servidores Coolify
|
||||||
GET /hermes/coolify/servers/:uuid Detalle servidor
|
GET /api/v2/coolify/servers/:uuid Detalle servidor
|
||||||
GET /hermes/coolify/servers/:uuid/resources Recursos
|
GET /api/v2/coolify/servers/:uuid/resources Recursos
|
||||||
GET /hermes/coolify/services Servicios
|
GET /api/v2/coolify/services Servicios
|
||||||
GET /hermes/coolify/databases Databases
|
GET /api/v2/coolify/databases Databases
|
||||||
GET /hermes/coolify/projects Proyectos
|
GET /api/v2/coolify/projects Proyectos
|
||||||
GET /hermes/coolify/deployments Deployments
|
GET /api/v2/coolify/deployments Deployments
|
||||||
|
|
||||||
VCard API:
|
VCard API:
|
||||||
GET /hermes/vcard-api/config Config
|
GET /api/v2/vcard-api/config Config
|
||||||
GET /hermes/vcard-api/usuarios Usuarios VCard
|
GET /api/v2/vcard-api/usuarios Usuarios VCard
|
||||||
GET /hermes/vcard-api/usuarios/:id Detalle
|
GET /api/v2/vcard-api/usuarios/:id Detalle
|
||||||
GET /hermes/vcard-api/vcards VCards
|
GET /api/v2/vcard-api/vcards VCards
|
||||||
GET /hermes/vcard-api/planes Planes
|
GET /api/v2/vcard-api/planes Planes
|
||||||
GET /hermes/vcard-api/pagos Pagos
|
GET /api/v2/vcard-api/pagos Pagos
|
||||||
GET /hermes/vcard-api/miniwebs Miniwebs
|
GET /api/v2/vcard-api/miniwebs Miniwebs
|
||||||
|
|
||||||
Partner:
|
Partner:
|
||||||
GET /hermes/partner-recursos Recursos partner (CRUD)
|
GET /api/v2/partner-recursos Recursos partner (CRUD)
|
||||||
GET /hermes/partner-comunicados Comunicados partner (CRUD)
|
GET /api/v2/partner-comunicados Comunicados partner (CRUD)
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
EJEMPLOS DE USO
|
EJEMPLOS DE USO
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
# Listar clientes
|
# Listar clientes
|
||||||
curl -H "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s" \
|
curl -H "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n" \
|
||||||
"https://admin.u-site.app/hermes/clientes?page=1&search=docuxer"
|
"https://admin.u-site.app/api/v2/clientes?page=1&search=docuxer"
|
||||||
|
|
||||||
# Crear cliente
|
# Crear cliente
|
||||||
curl -X POST \
|
curl -X POST \
|
||||||
-H "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s" \
|
-H "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"nombre":"Juan Pérez","empresa":"ABC SAS","email":"juan@abc.com"}' \
|
-d '{"nombre":"Juan Pérez","empresa":"ABC SAS","email":"juan@abc.com"}' \
|
||||||
https://admin.u-site.app/hermes/clientes
|
https://admin.u-site.app/api/v2/clientes
|
||||||
|
|
||||||
# Dashboard contabilidad del mes actual
|
# Dashboard contabilidad del mes actual
|
||||||
curl -H "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s" \
|
curl -H "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n" \
|
||||||
"https://admin.u-site.app/hermes/contabilidad/dashboard?mes=7&anio=2026"
|
"https://admin.u-site.app/api/v2/contabilidad/dashboard?mes=7&anio=2026"
|
||||||
|
|
||||||
# Crear cuenta por cobrar
|
# Crear cuenta por cobrar
|
||||||
curl -X POST \
|
curl -X POST \
|
||||||
-H "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s" \
|
-H "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"cliente_id":1,"descripcion":"Factura #100","valor":5000000,"fecha":"2026-07-13","fecha_vencimiento":"2026-08-13"}' \
|
-d '{"cliente_id":1,"descripcion":"Factura #100","valor":5000000,"fecha":"2026-07-13","fecha_vencimiento":"2026-08-13"}' \
|
||||||
https://admin.u-site.app/hermes/contabilidad/cuentas-cobro
|
https://admin.u-site.app/api/v2/contabilidad/cuentas-cobro
|
||||||
|
|
||||||
# Ejecutar query SQL
|
# Ejecutar query SQL
|
||||||
curl -X POST \
|
curl -X POST \
|
||||||
-H "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s" \
|
-H "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"connection_id":1,"database":"usite","query":"SELECT * FROM clientes LIMIT 10"}' \
|
-d '{"connection_id":1,"database":"usite","query":"SELECT * FROM clientes LIMIT 10"}' \
|
||||||
https://admin.u-site.app/hermes/query-runner/run
|
https://admin.u-site.app/api/v2/query-runner/run
|
||||||
|
|
||||||
# Enviar notificación por Telegram
|
# Enviar notificación por Telegram
|
||||||
curl -X POST \
|
curl -X POST \
|
||||||
-H "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s" \
|
-H "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"config_id":1,"message":"Alerta: servidor caído"}' \
|
-d '{"config_id":1,"message":"Alerta: servidor caído"}' \
|
||||||
https://admin.u-site.app/hermes/telegram/send
|
https://admin.u-site.app/api/v2/telegram/send
|
||||||
|
|
||||||
# Desplegar app en Coolify
|
# Desplegar app en Coolify
|
||||||
curl -X POST \
|
curl -X POST \
|
||||||
-H "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s" \
|
-H "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n" \
|
||||||
https://admin.u-site.app/hermes/coolify/apps/UUID-DE-LA-APP/deploy
|
https://admin.u-site.app/api/v2/coolify/apps/UUID-DE-LA-APP/deploy
|
||||||
|
|
||||||
# Consultar spec completa (JSON) para actualizaciones
|
# Consultar spec completa (JSON) para actualizaciones
|
||||||
curl -H "Authorization: Bearer hk_live_usite_2026_S3cur3K3yH3rm3s" \
|
curl -H "Authorization: Bearer ak_live_usite_2026_S3cur3K3yAdm1n" \
|
||||||
https://admin.u-site.app/hermes/spec
|
https://admin.u-site.app/api/v2/spec
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
NOTAS IMPORTANTES
|
NOTAS IMPORTANTES
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
- Siempre consulta /hermes/spec para ver si hay endpoints nuevos.
|
- Siempre consulta /api/v2/spec para ver si hay endpoints nuevos.
|
||||||
- Las cuentas por cobrar usan cliente_id (de /hermes/clientes/select).
|
- Las cuentas por cobrar usan cliente_id (de /api/v2/clientes/select).
|
||||||
- Las cuentas por pagar usan entidad_id (de /hermes/contabilidad/entidades/select).
|
- Las cuentas por pagar usan entidad_id (de /api/v2/contabilidad/entidades/select).
|
||||||
- Los valores monetarios son en COP (pesos colombianos), sin decimales normalmente.
|
- Los valores monetarios son en COP (pesos colombianos), sin decimales normalmente.
|
||||||
- Si un endpoint retorna 401, verifica el API key.
|
- Si un endpoint retorna 401, verifica el API key.
|
||||||
- Si un endpoint retorna 503, el HERMES_API_KEY no está configurado en el servidor.
|
- Si un endpoint retorna 503, el ADMIN_API_KEY no está configurado en el servidor.
|
||||||
================================================================================
|
================================================================================
|
||||||
@@ -2,496 +2,496 @@ package controllers
|
|||||||
|
|
||||||
import "github.com/gofiber/fiber/v2"
|
import "github.com/gofiber/fiber/v2"
|
||||||
|
|
||||||
func HermesSpec(c *fiber.Ctx) error {
|
func AdminApiSpec(c *fiber.Ctx) error {
|
||||||
spec := fiber.Map{
|
spec := fiber.Map{
|
||||||
"api": "Hermes API — U-Site Admin",
|
"api": "U-Site Admin API v2",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"base": "/hermes",
|
"base": "/api/v2",
|
||||||
"auth": "Header Authorization: Bearer <HERMES_API_KEY> o X-API-Key: <HERMES_API_KEY>",
|
"auth": "Header Authorization: Bearer <ADMIN_API_KEY> o X-API-Key: <ADMIN_API_KEY>",
|
||||||
"formato": "JSON. GETs con paginación aceptan ?page=1&search=texto. Respuestas: {items, total, totalPages, page} o el objeto directo.",
|
"formato": "JSON. GETs con paginación aceptan ?page=1&search=texto. Respuestas: {items, total, totalPages, page} o el objeto directo.",
|
||||||
"modulos": []fiber.Map{
|
"modulos": []fiber.Map{
|
||||||
{
|
{
|
||||||
"nombre": "Usuarios",
|
"nombre": "Usuarios",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/users", "desc": "Listar usuarios del sistema"},
|
{"method": "GET", "path": "/api/v2/users", "desc": "Listar usuarios del sistema"},
|
||||||
{"method": "GET", "path": "/hermes/users/:id", "desc": "Detalle de un usuario"},
|
{"method": "GET", "path": "/api/v2/users/:id", "desc": "Detalle de un usuario"},
|
||||||
{"method": "POST", "path": "/hermes/users", "desc": "Crear usuario", "body": "nombre_usuario, email, password, role_id"},
|
{"method": "POST", "path": "/api/v2/users", "desc": "Crear usuario", "body": "nombre_usuario, email, password, role_id"},
|
||||||
{"method": "PUT", "path": "/hermes/users/:id", "desc": "Actualizar usuario"},
|
{"method": "PUT", "path": "/api/v2/users/:id", "desc": "Actualizar usuario"},
|
||||||
{"method": "DELETE", "path": "/hermes/users/:id", "desc": "Eliminar usuario"},
|
{"method": "DELETE", "path": "/api/v2/users/:id", "desc": "Eliminar usuario"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Roles",
|
"nombre": "Roles",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/roles", "desc": "Listar roles"},
|
{"method": "GET", "path": "/api/v2/roles", "desc": "Listar roles"},
|
||||||
{"method": "POST", "path": "/hermes/roles", "desc": "Crear rol"},
|
{"method": "POST", "path": "/api/v2/roles", "desc": "Crear rol"},
|
||||||
{"method": "PUT", "path": "/hermes/roles/:id", "desc": "Actualizar rol"},
|
{"method": "PUT", "path": "/api/v2/roles/:id", "desc": "Actualizar rol"},
|
||||||
{"method": "DELETE", "path": "/hermes/roles/:id", "desc": "Eliminar rol"},
|
{"method": "DELETE", "path": "/api/v2/roles/:id", "desc": "Eliminar rol"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Módulos",
|
"nombre": "Módulos",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/modules", "desc": "Listar módulos"},
|
{"method": "GET", "path": "/api/v2/modules", "desc": "Listar módulos"},
|
||||||
{"method": "POST", "path": "/hermes/modules", "desc": "Crear módulo"},
|
{"method": "POST", "path": "/api/v2/modules", "desc": "Crear módulo"},
|
||||||
{"method": "PUT", "path": "/hermes/modules/:id", "desc": "Actualizar módulo"},
|
{"method": "PUT", "path": "/api/v2/modules/:id", "desc": "Actualizar módulo"},
|
||||||
{"method": "DELETE", "path": "/hermes/modules/:id", "desc": "Eliminar módulo"},
|
{"method": "DELETE", "path": "/api/v2/modules/:id", "desc": "Eliminar módulo"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Submódulos",
|
"nombre": "Submódulos",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/submodules", "desc": "Listar submódulos"},
|
{"method": "GET", "path": "/api/v2/submodules", "desc": "Listar submódulos"},
|
||||||
{"method": "POST", "path": "/hermes/submodules", "desc": "Crear submódulo"},
|
{"method": "POST", "path": "/api/v2/submodules", "desc": "Crear submódulo"},
|
||||||
{"method": "PUT", "path": "/hermes/submodules/:id", "desc": "Actualizar submódulo"},
|
{"method": "PUT", "path": "/api/v2/submodules/:id", "desc": "Actualizar submódulo"},
|
||||||
{"method": "DELETE", "path": "/hermes/submodules/:id", "desc": "Eliminar submódulo"},
|
{"method": "DELETE", "path": "/api/v2/submodules/:id", "desc": "Eliminar submódulo"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Servidores",
|
"nombre": "Servidores",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/servidores", "desc": "Listar servidores"},
|
{"method": "GET", "path": "/api/v2/servidores", "desc": "Listar servidores"},
|
||||||
{"method": "POST", "path": "/hermes/servidores", "desc": "Crear servidor"},
|
{"method": "POST", "path": "/api/v2/servidores", "desc": "Crear servidor"},
|
||||||
{"method": "PUT", "path": "/hermes/servidores/:id", "desc": "Actualizar servidor"},
|
{"method": "PUT", "path": "/api/v2/servidores/:id", "desc": "Actualizar servidor"},
|
||||||
{"method": "DELETE", "path": "/hermes/servidores/:id", "desc": "Eliminar servidor"},
|
{"method": "DELETE", "path": "/api/v2/servidores/:id", "desc": "Eliminar servidor"},
|
||||||
{"method": "GET", "path": "/hermes/servidores/:id/dashboard", "desc": "Dashboard de un servidor"},
|
{"method": "GET", "path": "/api/v2/servidores/:id/dashboard", "desc": "Dashboard de un servidor"},
|
||||||
{"method": "GET", "path": "/hermes/servidores/:id/metricas-history", "desc": "Historial de métricas"},
|
{"method": "GET", "path": "/api/v2/servidores/:id/metricas-history", "desc": "Historial de métricas"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Proveedores de servidor",
|
"nombre": "Proveedores de servidor",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/prov-servidores", "desc": "Listar proveedores"},
|
{"method": "GET", "path": "/api/v2/prov-servidores", "desc": "Listar proveedores"},
|
||||||
{"method": "POST", "path": "/hermes/prov-servidores", "desc": "Crear proveedor"},
|
{"method": "POST", "path": "/api/v2/prov-servidores", "desc": "Crear proveedor"},
|
||||||
{"method": "PUT", "path": "/hermes/prov-servidores/:id", "desc": "Actualizar proveedor"},
|
{"method": "PUT", "path": "/api/v2/prov-servidores/:id", "desc": "Actualizar proveedor"},
|
||||||
{"method": "DELETE", "path": "/hermes/prov-servidores/:id", "desc": "Eliminar proveedor"},
|
{"method": "DELETE", "path": "/api/v2/prov-servidores/:id", "desc": "Eliminar proveedor"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Tipos de servidor",
|
"nombre": "Tipos de servidor",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/tipos-servidor", "desc": "Listar tipos"},
|
{"method": "GET", "path": "/api/v2/tipos-servidor", "desc": "Listar tipos"},
|
||||||
{"method": "POST", "path": "/hermes/tipos-servidor", "desc": "Crear tipo"},
|
{"method": "POST", "path": "/api/v2/tipos-servidor", "desc": "Crear tipo"},
|
||||||
{"method": "PUT", "path": "/hermes/tipos-servidor/:id", "desc": "Actualizar tipo"},
|
{"method": "PUT", "path": "/api/v2/tipos-servidor/:id", "desc": "Actualizar tipo"},
|
||||||
{"method": "DELETE", "path": "/hermes/tipos-servidor/:id", "desc": "Eliminar tipo"},
|
{"method": "DELETE", "path": "/api/v2/tipos-servidor/:id", "desc": "Eliminar tipo"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Tipos de DB",
|
"nombre": "Tipos de DB",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/tipos-db", "desc": "Listar tipos DB"},
|
{"method": "GET", "path": "/api/v2/tipos-db", "desc": "Listar tipos DB"},
|
||||||
{"method": "POST", "path": "/hermes/tipos-db", "desc": "Crear tipo DB"},
|
{"method": "POST", "path": "/api/v2/tipos-db", "desc": "Crear tipo DB"},
|
||||||
{"method": "PUT", "path": "/hermes/tipos-db/:id", "desc": "Actualizar tipo DB"},
|
{"method": "PUT", "path": "/api/v2/tipos-db/:id", "desc": "Actualizar tipo DB"},
|
||||||
{"method": "DELETE", "path": "/hermes/tipos-db/:id", "desc": "Eliminar tipo DB"},
|
{"method": "DELETE", "path": "/api/v2/tipos-db/:id", "desc": "Eliminar tipo DB"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Conexiones SSH",
|
"nombre": "Conexiones SSH",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/conexiones-ssh", "desc": "Listar conexiones SSH"},
|
{"method": "GET", "path": "/api/v2/conexiones-ssh", "desc": "Listar conexiones SSH"},
|
||||||
{"method": "POST", "path": "/hermes/conexiones-ssh", "desc": "Crear conexión SSH"},
|
{"method": "POST", "path": "/api/v2/conexiones-ssh", "desc": "Crear conexión SSH"},
|
||||||
{"method": "PUT", "path": "/hermes/conexiones-ssh/:id", "desc": "Actualizar conexión SSH"},
|
{"method": "PUT", "path": "/api/v2/conexiones-ssh/:id", "desc": "Actualizar conexión SSH"},
|
||||||
{"method": "DELETE", "path": "/hermes/conexiones-ssh/:id", "desc": "Eliminar conexión SSH"},
|
{"method": "DELETE", "path": "/api/v2/conexiones-ssh/:id", "desc": "Eliminar conexión SSH"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Conexiones DB",
|
"nombre": "Conexiones DB",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/conexiones-db", "desc": "Listar conexiones DB"},
|
{"method": "GET", "path": "/api/v2/conexiones-db", "desc": "Listar conexiones DB"},
|
||||||
{"method": "GET", "path": "/hermes/conexiones-db/select", "desc": "Select de conexiones DB (filtrable por ?servidor_id=)"},
|
{"method": "GET", "path": "/api/v2/conexiones-db/select", "desc": "Select de conexiones DB (filtrable por ?servidor_id=)"},
|
||||||
{"method": "POST", "path": "/hermes/conexiones-db", "desc": "Crear conexión DB"},
|
{"method": "POST", "path": "/api/v2/conexiones-db", "desc": "Crear conexión DB"},
|
||||||
{"method": "PUT", "path": "/hermes/conexiones-db/:id", "desc": "Actualizar conexión DB"},
|
{"method": "PUT", "path": "/api/v2/conexiones-db/:id", "desc": "Actualizar conexión DB"},
|
||||||
{"method": "DELETE", "path": "/hermes/conexiones-db/:id", "desc": "Eliminar conexión DB"},
|
{"method": "DELETE", "path": "/api/v2/conexiones-db/:id", "desc": "Eliminar conexión DB"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Clientes",
|
"nombre": "Clientes",
|
||||||
"desc": "Clientes de la empresa (tabla clientes). Usados en contratos, cuentas por cobrar, portal.",
|
"desc": "Clientes de la empresa (tabla clientes). Usados en contratos, cuentas por cobrar, portal.",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/clientes", "desc": "Listar clientes. Query: ?page=1&limit=10&search=texto"},
|
{"method": "GET", "path": "/api/v2/clientes", "desc": "Listar clientes. Query: ?page=1&limit=10&search=texto"},
|
||||||
{"method": "GET", "path": "/hermes/clientes/select", "desc": "Clientes activos para select/dropdown"},
|
{"method": "GET", "path": "/api/v2/clientes/select", "desc": "Clientes activos para select/dropdown"},
|
||||||
{"method": "POST", "path": "/hermes/clientes", "desc": "Crear cliente", "body": "nombre, empresa, email, email_cc, telefono, documento, notas"},
|
{"method": "POST", "path": "/api/v2/clientes", "desc": "Crear cliente", "body": "nombre, empresa, email, email_cc, telefono, documento, notas"},
|
||||||
{"method": "PUT", "path": "/hermes/clientes/:id", "desc": "Actualizar cliente"},
|
{"method": "PUT", "path": "/api/v2/clientes/:id", "desc": "Actualizar cliente"},
|
||||||
{"method": "DELETE", "path": "/hermes/clientes/:id", "desc": "Eliminar cliente"},
|
{"method": "DELETE", "path": "/api/v2/clientes/:id", "desc": "Eliminar cliente"},
|
||||||
{"method": "GET", "path": "/hermes/clientes/:clienteID/documentos", "desc": "Documentos del cliente"},
|
{"method": "GET", "path": "/api/v2/clientes/:clienteID/documentos", "desc": "Documentos del cliente"},
|
||||||
{"method": "POST", "path": "/hermes/clientes/:clienteID/documentos", "desc": "Subir documentos (multipart)"},
|
{"method": "POST", "path": "/api/v2/clientes/:clienteID/documentos", "desc": "Subir documentos (multipart)"},
|
||||||
{"method": "DELETE", "path": "/hermes/clientes/:clienteID/documentos/:docID", "desc": "Eliminar documento"},
|
{"method": "DELETE", "path": "/api/v2/clientes/:clienteID/documentos/:docID", "desc": "Eliminar documento"},
|
||||||
{"method": "GET", "path": "/hermes/clientes/:clienteID/documentos/:docID/download", "desc": "Descargar documento"},
|
{"method": "GET", "path": "/api/v2/clientes/:clienteID/documentos/:docID/download", "desc": "Descargar documento"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Servicios",
|
"nombre": "Servicios",
|
||||||
"desc": "Tipos de servicio ofrecidos (hosting, dominio, desarrollo, etc.)",
|
"desc": "Tipos de servicio ofrecidos (hosting, dominio, desarrollo, etc.)",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/servicios", "desc": "Listar servicios"},
|
{"method": "GET", "path": "/api/v2/servicios", "desc": "Listar servicios"},
|
||||||
{"method": "GET", "path": "/hermes/servicios/select", "desc": "Servicios activos para select"},
|
{"method": "GET", "path": "/api/v2/servicios/select", "desc": "Servicios activos para select"},
|
||||||
{"method": "POST", "path": "/hermes/servicios", "desc": "Crear servicio"},
|
{"method": "POST", "path": "/api/v2/servicios", "desc": "Crear servicio"},
|
||||||
{"method": "PUT", "path": "/hermes/servicios/:id", "desc": "Actualizar servicio"},
|
{"method": "PUT", "path": "/api/v2/servicios/:id", "desc": "Actualizar servicio"},
|
||||||
{"method": "DELETE", "path": "/hermes/servicios/:id", "desc": "Eliminar servicio"},
|
{"method": "DELETE", "path": "/api/v2/servicios/:id", "desc": "Eliminar servicio"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Contratos",
|
"nombre": "Contratos",
|
||||||
"desc": "Contratos de servicio con clientes. Tienen ciclo de renovación y notificaciones automáticas.",
|
"desc": "Contratos de servicio con clientes. Tienen ciclo de renovación y notificaciones automáticas.",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/contratos", "desc": "Listar contratos. Query: ?page=1&search=&estado=&servicio_id="},
|
{"method": "GET", "path": "/api/v2/contratos", "desc": "Listar contratos. Query: ?page=1&search=&estado=&servicio_id="},
|
||||||
{"method": "POST", "path": "/hermes/contratos", "desc": "Crear contrato"},
|
{"method": "POST", "path": "/api/v2/contratos", "desc": "Crear contrato"},
|
||||||
{"method": "PUT", "path": "/hermes/contratos/:id", "desc": "Actualizar contrato"},
|
{"method": "PUT", "path": "/api/v2/contratos/:id", "desc": "Actualizar contrato"},
|
||||||
{"method": "DELETE", "path": "/hermes/contratos/:id", "desc": "Eliminar contrato"},
|
{"method": "DELETE", "path": "/api/v2/contratos/:id", "desc": "Eliminar contrato"},
|
||||||
{"method": "POST", "path": "/hermes/contratos/:id/renovar", "desc": "Renovar contrato"},
|
{"method": "POST", "path": "/api/v2/contratos/:id/renovar", "desc": "Renovar contrato"},
|
||||||
{"method": "POST", "path": "/hermes/contratos/:id/enviar-correo", "desc": "Enviar correo de notificación"},
|
{"method": "POST", "path": "/api/v2/contratos/:id/enviar-correo", "desc": "Enviar correo de notificación"},
|
||||||
{"method": "GET", "path": "/hermes/contratos/:id/historial", "desc": "Historial del contrato"},
|
{"method": "GET", "path": "/api/v2/contratos/:id/historial", "desc": "Historial del contrato"},
|
||||||
{"method": "POST", "path": "/hermes/contratos/:id/verificar-pago", "desc": "Verificar pago Bold"},
|
{"method": "POST", "path": "/api/v2/contratos/:id/verificar-pago", "desc": "Verificar pago Bold"},
|
||||||
{"method": "POST", "path": "/hermes/contratos/:id/marcar-pagado", "desc": "Marcar pago manual"},
|
{"method": "POST", "path": "/api/v2/contratos/:id/marcar-pagado", "desc": "Marcar pago manual"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Plantillas de correo",
|
"nombre": "Plantillas de correo",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/plantillas-correo", "desc": "Listar plantillas"},
|
{"method": "GET", "path": "/api/v2/plantillas-correo", "desc": "Listar plantillas"},
|
||||||
{"method": "POST", "path": "/hermes/plantillas-correo", "desc": "Crear plantilla"},
|
{"method": "POST", "path": "/api/v2/plantillas-correo", "desc": "Crear plantilla"},
|
||||||
{"method": "PUT", "path": "/hermes/plantillas-correo/:id", "desc": "Actualizar plantilla"},
|
{"method": "PUT", "path": "/api/v2/plantillas-correo/:id", "desc": "Actualizar plantilla"},
|
||||||
{"method": "DELETE", "path": "/hermes/plantillas-correo/:id", "desc": "Eliminar plantilla"},
|
{"method": "DELETE", "path": "/api/v2/plantillas-correo/:id", "desc": "Eliminar plantilla"},
|
||||||
{"method": "GET", "path": "/hermes/plantillas-correo/:id/preview", "desc": "Vista previa"},
|
{"method": "GET", "path": "/api/v2/plantillas-correo/:id/preview", "desc": "Vista previa"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Reglas de notificación",
|
"nombre": "Reglas de notificación",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/reglas-notificacion", "desc": "Listar reglas"},
|
{"method": "GET", "path": "/api/v2/reglas-notificacion", "desc": "Listar reglas"},
|
||||||
{"method": "POST", "path": "/hermes/reglas-notificacion", "desc": "Crear regla"},
|
{"method": "POST", "path": "/api/v2/reglas-notificacion", "desc": "Crear regla"},
|
||||||
{"method": "PUT", "path": "/hermes/reglas-notificacion/:id", "desc": "Actualizar regla"},
|
{"method": "PUT", "path": "/api/v2/reglas-notificacion/:id", "desc": "Actualizar regla"},
|
||||||
{"method": "DELETE", "path": "/hermes/reglas-notificacion/:id", "desc": "Eliminar regla"},
|
{"method": "DELETE", "path": "/api/v2/reglas-notificacion/:id", "desc": "Eliminar regla"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Historial de notificaciones",
|
"nombre": "Historial de notificaciones",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/historial-notificaciones", "desc": "Listar historial"},
|
{"method": "GET", "path": "/api/v2/historial-notificaciones", "desc": "Listar historial"},
|
||||||
{"method": "POST", "path": "/hermes/historial-notificaciones/:id/reenviar", "desc": "Reenviar notificación"},
|
{"method": "POST", "path": "/api/v2/historial-notificaciones/:id/reenviar", "desc": "Reenviar notificación"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "SMTP Config",
|
"nombre": "SMTP Config",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/smtp-config", "desc": "Ver configuración SMTP"},
|
{"method": "GET", "path": "/api/v2/smtp-config", "desc": "Ver configuración SMTP"},
|
||||||
{"method": "POST", "path": "/hermes/smtp-config", "desc": "Guardar configuración SMTP"},
|
{"method": "POST", "path": "/api/v2/smtp-config", "desc": "Guardar configuración SMTP"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Tareas (Kanban)",
|
"nombre": "Tareas (Kanban)",
|
||||||
"desc": "Tablero de tareas con estados: pendiente, en_progreso, completada, cancelada",
|
"desc": "Tablero de tareas con estados: pendiente, en_progreso, completada, cancelada",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/tareas", "desc": "Listar tareas. Query: ?estado=&asignado_a=&search="},
|
{"method": "GET", "path": "/api/v2/tareas", "desc": "Listar tareas. Query: ?estado=&asignado_a=&search="},
|
||||||
{"method": "GET", "path": "/hermes/tareas/usuarios", "desc": "Usuarios del sistema para asignar"},
|
{"method": "GET", "path": "/api/v2/tareas/usuarios", "desc": "Usuarios del sistema para asignar"},
|
||||||
{"method": "POST", "path": "/hermes/tareas", "desc": "Crear tarea"},
|
{"method": "POST", "path": "/api/v2/tareas", "desc": "Crear tarea"},
|
||||||
{"method": "GET", "path": "/hermes/tareas/:id", "desc": "Detalle de tarea con comentarios"},
|
{"method": "GET", "path": "/api/v2/tareas/:id", "desc": "Detalle de tarea con comentarios"},
|
||||||
{"method": "PUT", "path": "/hermes/tareas/:id", "desc": "Actualizar tarea"},
|
{"method": "PUT", "path": "/api/v2/tareas/:id", "desc": "Actualizar tarea"},
|
||||||
{"method": "PUT", "path": "/hermes/tareas/:id/estado", "desc": "Cambiar estado", "body": "estado"},
|
{"method": "PUT", "path": "/api/v2/tareas/:id/estado", "desc": "Cambiar estado", "body": "estado"},
|
||||||
{"method": "DELETE", "path": "/hermes/tareas/:id", "desc": "Eliminar tarea"},
|
{"method": "DELETE", "path": "/api/v2/tareas/:id", "desc": "Eliminar tarea"},
|
||||||
{"method": "POST", "path": "/hermes/tareas/:id/comentario", "desc": "Agregar comentario"},
|
{"method": "POST", "path": "/api/v2/tareas/:id/comentario", "desc": "Agregar comentario"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Monitor de URLs",
|
"nombre": "Monitor de URLs",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/url-monitors", "desc": "Listar monitores"},
|
{"method": "GET", "path": "/api/v2/url-monitors", "desc": "Listar monitores"},
|
||||||
{"method": "POST", "path": "/hermes/url-monitors", "desc": "Crear monitor"},
|
{"method": "POST", "path": "/api/v2/url-monitors", "desc": "Crear monitor"},
|
||||||
{"method": "PUT", "path": "/hermes/url-monitors/:id", "desc": "Actualizar monitor"},
|
{"method": "PUT", "path": "/api/v2/url-monitors/:id", "desc": "Actualizar monitor"},
|
||||||
{"method": "DELETE", "path": "/hermes/url-monitors/:id", "desc": "Eliminar monitor"},
|
{"method": "DELETE", "path": "/api/v2/url-monitors/:id", "desc": "Eliminar monitor"},
|
||||||
{"method": "POST", "path": "/hermes/url-monitors/:id/check", "desc": "Chequear ahora"},
|
{"method": "POST", "path": "/api/v2/url-monitors/:id/check", "desc": "Chequear ahora"},
|
||||||
{"method": "GET", "path": "/hermes/url-monitors/:id/logs", "desc": "Logs del monitor"},
|
{"method": "GET", "path": "/api/v2/url-monitors/:id/logs", "desc": "Logs del monitor"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Proyectos",
|
"nombre": "Proyectos",
|
||||||
"desc": "Proyectos del portal de clientes. Contienen fases, avances, entregables, tickets y documentos.",
|
"desc": "Proyectos del portal de clientes. Contienen fases, avances, entregables, tickets y documentos.",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/proyectos", "desc": "Listar proyectos"},
|
{"method": "GET", "path": "/api/v2/proyectos", "desc": "Listar proyectos"},
|
||||||
{"method": "POST", "path": "/hermes/proyectos", "desc": "Crear proyecto"},
|
{"method": "POST", "path": "/api/v2/proyectos", "desc": "Crear proyecto"},
|
||||||
{"method": "PUT", "path": "/hermes/proyectos/:id", "desc": "Actualizar proyecto"},
|
{"method": "PUT", "path": "/api/v2/proyectos/:id", "desc": "Actualizar proyecto"},
|
||||||
{"method": "DELETE", "path": "/hermes/proyectos/:id", "desc": "Eliminar proyecto"},
|
{"method": "DELETE", "path": "/api/v2/proyectos/:id", "desc": "Eliminar proyecto"},
|
||||||
{"method": "GET", "path": "/hermes/proyectos/:id/fases", "desc": "Listar fases"},
|
{"method": "GET", "path": "/api/v2/proyectos/:id/fases", "desc": "Listar fases"},
|
||||||
{"method": "POST", "path": "/hermes/proyectos/:id/fases", "desc": "Crear fase"},
|
{"method": "POST", "path": "/api/v2/proyectos/:id/fases", "desc": "Crear fase"},
|
||||||
{"method": "PUT", "path": "/hermes/proyectos/:id/fases/:faseID", "desc": "Actualizar fase"},
|
{"method": "PUT", "path": "/api/v2/proyectos/:id/fases/:faseID", "desc": "Actualizar fase"},
|
||||||
{"method": "DELETE", "path": "/hermes/proyectos/:id/fases/:faseID", "desc": "Eliminar fase"},
|
{"method": "DELETE", "path": "/api/v2/proyectos/:id/fases/:faseID", "desc": "Eliminar fase"},
|
||||||
{"method": "GET", "path": "/hermes/proyectos/:id/avances", "desc": "Listar avances"},
|
{"method": "GET", "path": "/api/v2/proyectos/:id/avances", "desc": "Listar avances"},
|
||||||
{"method": "POST", "path": "/hermes/proyectos/:id/avances", "desc": "Crear avance"},
|
{"method": "POST", "path": "/api/v2/proyectos/:id/avances", "desc": "Crear avance"},
|
||||||
{"method": "PUT", "path": "/hermes/proyectos/:id/avances/:avID", "desc": "Actualizar avance"},
|
{"method": "PUT", "path": "/api/v2/proyectos/:id/avances/:avID", "desc": "Actualizar avance"},
|
||||||
{"method": "DELETE", "path": "/hermes/proyectos/:id/avances/:avID", "desc": "Eliminar avance"},
|
{"method": "DELETE", "path": "/api/v2/proyectos/:id/avances/:avID", "desc": "Eliminar avance"},
|
||||||
{"method": "GET", "path": "/hermes/proyectos/:id/entregables", "desc": "Listar entregables"},
|
{"method": "GET", "path": "/api/v2/proyectos/:id/entregables", "desc": "Listar entregables"},
|
||||||
{"method": "POST", "path": "/hermes/proyectos/:id/entregables", "desc": "Subir entregable"},
|
{"method": "POST", "path": "/api/v2/proyectos/:id/entregables", "desc": "Subir entregable"},
|
||||||
{"method": "DELETE", "path": "/hermes/proyectos/:id/entregables/:entID", "desc": "Eliminar entregable"},
|
{"method": "DELETE", "path": "/api/v2/proyectos/:id/entregables/:entID", "desc": "Eliminar entregable"},
|
||||||
{"method": "GET", "path": "/hermes/proyectos/:id/entregables/:entID/download", "desc": "Descargar entregable"},
|
{"method": "GET", "path": "/api/v2/proyectos/:id/entregables/:entID/download", "desc": "Descargar entregable"},
|
||||||
{"method": "GET", "path": "/hermes/proyectos/:id/tickets", "desc": "Listar tickets del proyecto"},
|
{"method": "GET", "path": "/api/v2/proyectos/:id/tickets", "desc": "Listar tickets del proyecto"},
|
||||||
{"method": "PUT", "path": "/hermes/proyectos/:id/tickets/:ticketID/estado", "desc": "Cambiar estado ticket"},
|
{"method": "PUT", "path": "/api/v2/proyectos/:id/tickets/:ticketID/estado", "desc": "Cambiar estado ticket"},
|
||||||
{"method": "POST", "path": "/hermes/proyectos/:id/tickets/:ticketID/mensaje", "desc": "Responder ticket"},
|
{"method": "POST", "path": "/api/v2/proyectos/:id/tickets/:ticketID/mensaje", "desc": "Responder ticket"},
|
||||||
{"method": "GET", "path": "/hermes/proyectos/:id/documentos", "desc": "Listar documentos"},
|
{"method": "GET", "path": "/api/v2/proyectos/:id/documentos", "desc": "Listar documentos"},
|
||||||
{"method": "POST", "path": "/hermes/proyectos/:id/documentos", "desc": "Subir documento"},
|
{"method": "POST", "path": "/api/v2/proyectos/:id/documentos", "desc": "Subir documento"},
|
||||||
{"method": "DELETE", "path": "/hermes/proyectos/:id/documentos/:docID", "desc": "Eliminar documento"},
|
{"method": "DELETE", "path": "/api/v2/proyectos/:id/documentos/:docID", "desc": "Eliminar documento"},
|
||||||
{"method": "GET", "path": "/hermes/proyectos/:id/documentos/:docID/download", "desc": "Descargar documento"},
|
{"method": "GET", "path": "/api/v2/proyectos/:id/documentos/:docID/download", "desc": "Descargar documento"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Portal de Usuarios",
|
"nombre": "Portal de Usuarios",
|
||||||
"desc": "Usuarios del portal de clientes (login externo). Tienen accesos vinculados a clientes.",
|
"desc": "Usuarios del portal de clientes (login externo). Tienen accesos vinculados a clientes.",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/portal-usuarios", "desc": "Listar usuarios portal"},
|
{"method": "GET", "path": "/api/v2/portal-usuarios", "desc": "Listar usuarios portal"},
|
||||||
{"method": "GET", "path": "/hermes/portal-usuarios/:id", "desc": "Detalle usuario portal"},
|
{"method": "GET", "path": "/api/v2/portal-usuarios/:id", "desc": "Detalle usuario portal"},
|
||||||
{"method": "POST", "path": "/hermes/portal-usuarios", "desc": "Crear usuario portal"},
|
{"method": "POST", "path": "/api/v2/portal-usuarios", "desc": "Crear usuario portal"},
|
||||||
{"method": "PUT", "path": "/hermes/portal-usuarios/:id", "desc": "Actualizar usuario portal"},
|
{"method": "PUT", "path": "/api/v2/portal-usuarios/:id", "desc": "Actualizar usuario portal"},
|
||||||
{"method": "DELETE", "path": "/hermes/portal-usuarios/:id", "desc": "Eliminar usuario portal"},
|
{"method": "DELETE", "path": "/api/v2/portal-usuarios/:id", "desc": "Eliminar usuario portal"},
|
||||||
{"method": "POST", "path": "/hermes/portal-usuarios/:id/acceso", "desc": "Agregar acceso a cliente"},
|
{"method": "POST", "path": "/api/v2/portal-usuarios/:id/acceso", "desc": "Agregar acceso a cliente"},
|
||||||
{"method": "DELETE", "path": "/hermes/portal-usuarios/:id/acceso/:clienteID", "desc": "Quitar acceso a cliente"},
|
{"method": "DELETE", "path": "/api/v2/portal-usuarios/:id/acceso/:clienteID", "desc": "Quitar acceso a cliente"},
|
||||||
{"method": "POST", "path": "/hermes/portal-usuarios/:id/send-credentials", "desc": "Enviar credenciales por correo"},
|
{"method": "POST", "path": "/api/v2/portal-usuarios/:id/send-credentials", "desc": "Enviar credenciales por correo"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Facturas",
|
"nombre": "Facturas",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/facturas", "desc": "Listar facturas"},
|
{"method": "GET", "path": "/api/v2/facturas", "desc": "Listar facturas"},
|
||||||
{"method": "POST", "path": "/hermes/facturas", "desc": "Crear factura"},
|
{"method": "POST", "path": "/api/v2/facturas", "desc": "Crear factura"},
|
||||||
{"method": "PUT", "path": "/hermes/facturas/:id", "desc": "Actualizar factura"},
|
{"method": "PUT", "path": "/api/v2/facturas/:id", "desc": "Actualizar factura"},
|
||||||
{"method": "DELETE", "path": "/hermes/facturas/:id", "desc": "Eliminar factura"},
|
{"method": "DELETE", "path": "/api/v2/facturas/:id", "desc": "Eliminar factura"},
|
||||||
{"method": "POST", "path": "/hermes/facturas/:id/upload-pdf", "desc": "Subir PDF de factura"},
|
{"method": "POST", "path": "/api/v2/facturas/:id/upload-pdf", "desc": "Subir PDF de factura"},
|
||||||
{"method": "GET", "path": "/hermes/facturas/:id/download", "desc": "Descargar PDF factura"},
|
{"method": "GET", "path": "/api/v2/facturas/:id/download", "desc": "Descargar PDF factura"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Tickets (global)",
|
"nombre": "Tickets (global)",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/tickets", "desc": "Listar todos los tickets"},
|
{"method": "GET", "path": "/api/v2/tickets", "desc": "Listar todos los tickets"},
|
||||||
{"method": "PUT", "path": "/hermes/tickets/:ticketID/estado", "desc": "Cambiar estado"},
|
{"method": "PUT", "path": "/api/v2/tickets/:ticketID/estado", "desc": "Cambiar estado"},
|
||||||
{"method": "POST", "path": "/hermes/tickets/:ticketID/mensaje", "desc": "Responder ticket"},
|
{"method": "POST", "path": "/api/v2/tickets/:ticketID/mensaje", "desc": "Responder ticket"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Contabilidad",
|
"nombre": "Contabilidad",
|
||||||
"desc": "Sistema contable: transacciones (ingresos/egresos), cuentas, entidades, cuentas por cobrar/pagar, consolidados.",
|
"desc": "Sistema contable: transacciones (ingresos/egresos), cuentas, entidades, cuentas por cobrar/pagar, consolidados.",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/dashboard", "desc": "Dashboard. Query: ?mes=7&anio=2026"},
|
{"method": "GET", "path": "/api/v2/contabilidad/dashboard", "desc": "Dashboard. Query: ?mes=7&anio=2026"},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/consolidado", "desc": "Calcular consolidado mensual. Query: ?mes=&anio="},
|
{"method": "GET", "path": "/api/v2/contabilidad/consolidado", "desc": "Calcular consolidado mensual. Query: ?mes=&anio="},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/consolidados", "desc": "Listar consolidados. Query: ?anio="},
|
{"method": "GET", "path": "/api/v2/contabilidad/consolidados", "desc": "Listar consolidados. Query: ?anio="},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/transacciones", "desc": "Listar transacciones. Query: ?page=&search=&tipo=ingreso|egreso&mes=&anio="},
|
{"method": "GET", "path": "/api/v2/contabilidad/transacciones", "desc": "Listar transacciones. Query: ?page=&search=&tipo=ingreso|egreso&mes=&anio="},
|
||||||
{"method": "POST", "path": "/hermes/contabilidad/transacciones", "desc": "Crear transacción", "body": "fecha, tipo, descripcion, valor, cuenta_id, entidad_id, forma_pago, estado, notas"},
|
{"method": "POST", "path": "/api/v2/contabilidad/transacciones", "desc": "Crear transacción", "body": "fecha, tipo, descripcion, valor, cuenta_id, entidad_id, forma_pago, estado, notas"},
|
||||||
{"method": "PUT", "path": "/hermes/contabilidad/transacciones/:id", "desc": "Actualizar transacción"},
|
{"method": "PUT", "path": "/api/v2/contabilidad/transacciones/:id", "desc": "Actualizar transacción"},
|
||||||
{"method": "DELETE", "path": "/hermes/contabilidad/transacciones/:id", "desc": "Eliminar transacción"},
|
{"method": "DELETE", "path": "/api/v2/contabilidad/transacciones/:id", "desc": "Eliminar transacción"},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/cuentas", "desc": "Listar categorías contables"},
|
{"method": "GET", "path": "/api/v2/contabilidad/cuentas", "desc": "Listar categorías contables"},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/cuentas/select", "desc": "Categorías activas para select"},
|
{"method": "GET", "path": "/api/v2/contabilidad/cuentas/select", "desc": "Categorías activas para select"},
|
||||||
{"method": "POST", "path": "/hermes/contabilidad/cuentas", "desc": "Crear categoría", "body": "codigo, nombre, tipo(ingreso|egreso), color"},
|
{"method": "POST", "path": "/api/v2/contabilidad/cuentas", "desc": "Crear categoría", "body": "codigo, nombre, tipo(ingreso|egreso), color"},
|
||||||
{"method": "PUT", "path": "/hermes/contabilidad/cuentas/:id", "desc": "Actualizar categoría"},
|
{"method": "PUT", "path": "/api/v2/contabilidad/cuentas/:id", "desc": "Actualizar categoría"},
|
||||||
{"method": "DELETE", "path": "/hermes/contabilidad/cuentas/:id", "desc": "Eliminar categoría"},
|
{"method": "DELETE", "path": "/api/v2/contabilidad/cuentas/:id", "desc": "Eliminar categoría"},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/entidades", "desc": "Listar entidades contables"},
|
{"method": "GET", "path": "/api/v2/contabilidad/entidades", "desc": "Listar entidades contables"},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/entidades/select", "desc": "Entidades activas para select"},
|
{"method": "GET", "path": "/api/v2/contabilidad/entidades/select", "desc": "Entidades activas para select"},
|
||||||
{"method": "POST", "path": "/hermes/contabilidad/entidades", "desc": "Crear entidad", "body": "nombre, tipo(cliente|proveedor|ambos), documento, email, telefono"},
|
{"method": "POST", "path": "/api/v2/contabilidad/entidades", "desc": "Crear entidad", "body": "nombre, tipo(cliente|proveedor|ambos), documento, email, telefono"},
|
||||||
{"method": "PUT", "path": "/hermes/contabilidad/entidades/:id", "desc": "Actualizar entidad"},
|
{"method": "PUT", "path": "/api/v2/contabilidad/entidades/:id", "desc": "Actualizar entidad"},
|
||||||
{"method": "DELETE", "path": "/hermes/contabilidad/entidades/:id", "desc": "Eliminar entidad"},
|
{"method": "DELETE", "path": "/api/v2/contabilidad/entidades/:id", "desc": "Eliminar entidad"},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/cuentas-cobro", "desc": "Listar cuentas por cobrar. Query: ?page=&search=&estado="},
|
{"method": "GET", "path": "/api/v2/contabilidad/cuentas-cobro", "desc": "Listar cuentas por cobrar. Query: ?page=&search=&estado="},
|
||||||
{"method": "POST", "path": "/hermes/contabilidad/cuentas-cobro", "desc": "Crear cuenta por cobrar", "body": "cliente_id, descripcion, valor, fecha, fecha_vencimiento, notas"},
|
{"method": "POST", "path": "/api/v2/contabilidad/cuentas-cobro", "desc": "Crear cuenta por cobrar", "body": "cliente_id, descripcion, valor, fecha, fecha_vencimiento, notas"},
|
||||||
{"method": "PUT", "path": "/hermes/contabilidad/cuentas-cobro/:id", "desc": "Actualizar cuenta por cobrar"},
|
{"method": "PUT", "path": "/api/v2/contabilidad/cuentas-cobro/:id", "desc": "Actualizar cuenta por cobrar"},
|
||||||
{"method": "DELETE", "path": "/hermes/contabilidad/cuentas-cobro/:id", "desc": "Eliminar cuenta por cobrar"},
|
{"method": "DELETE", "path": "/api/v2/contabilidad/cuentas-cobro/:id", "desc": "Eliminar cuenta por cobrar"},
|
||||||
{"method": "GET", "path": "/hermes/contabilidad/cuentas-pagar", "desc": "Listar cuentas por pagar. Query: ?page=&search=&estado="},
|
{"method": "GET", "path": "/api/v2/contabilidad/cuentas-pagar", "desc": "Listar cuentas por pagar. Query: ?page=&search=&estado="},
|
||||||
{"method": "POST", "path": "/hermes/contabilidad/cuentas-pagar", "desc": "Crear cuenta por pagar", "body": "entidad_id, descripcion, valor, fecha, vencimiento, notas"},
|
{"method": "POST", "path": "/api/v2/contabilidad/cuentas-pagar", "desc": "Crear cuenta por pagar", "body": "entidad_id, descripcion, valor, fecha, vencimiento, notas"},
|
||||||
{"method": "PUT", "path": "/hermes/contabilidad/cuentas-pagar/:id", "desc": "Actualizar cuenta por pagar"},
|
{"method": "PUT", "path": "/api/v2/contabilidad/cuentas-pagar/:id", "desc": "Actualizar cuenta por pagar"},
|
||||||
{"method": "POST", "path": "/hermes/contabilidad/cuentas-pagar/:id/pagar", "desc": "Marcar como pagada", "body": "fecha_pago"},
|
{"method": "POST", "path": "/api/v2/contabilidad/cuentas-pagar/:id/pagar", "desc": "Marcar como pagada", "body": "fecha_pago"},
|
||||||
{"method": "DELETE", "path": "/hermes/contabilidad/cuentas-pagar/:id", "desc": "Eliminar cuenta por pagar"},
|
{"method": "DELETE", "path": "/api/v2/contabilidad/cuentas-pagar/:id", "desc": "Eliminar cuenta por pagar"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Productos SaaS",
|
"nombre": "Productos SaaS",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/saas", "desc": "Listar productos SaaS"},
|
{"method": "GET", "path": "/api/v2/saas", "desc": "Listar productos SaaS"},
|
||||||
{"method": "POST", "path": "/hermes/saas", "desc": "Crear producto"},
|
{"method": "POST", "path": "/api/v2/saas", "desc": "Crear producto"},
|
||||||
{"method": "PUT", "path": "/hermes/saas/:id", "desc": "Actualizar producto"},
|
{"method": "PUT", "path": "/api/v2/saas/:id", "desc": "Actualizar producto"},
|
||||||
{"method": "DELETE", "path": "/hermes/saas/:id", "desc": "Eliminar producto"},
|
{"method": "DELETE", "path": "/api/v2/saas/:id", "desc": "Eliminar producto"},
|
||||||
{"method": "GET", "path": "/hermes/saas/:id/health", "desc": "Health check del producto"},
|
{"method": "GET", "path": "/api/v2/saas/:id/health", "desc": "Health check del producto"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Integraciones SaaS (dispatcher)",
|
"nombre": "Integraciones SaaS (dispatcher)",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/saas-api", "desc": "Listar configs de integración"},
|
{"method": "GET", "path": "/api/v2/saas-api", "desc": "Listar configs de integración"},
|
||||||
{"method": "POST", "path": "/hermes/saas-api", "desc": "Crear config"},
|
{"method": "POST", "path": "/api/v2/saas-api", "desc": "Crear config"},
|
||||||
{"method": "PUT", "path": "/hermes/saas-api/:id", "desc": "Actualizar config"},
|
{"method": "PUT", "path": "/api/v2/saas-api/:id", "desc": "Actualizar config"},
|
||||||
{"method": "DELETE", "path": "/hermes/saas-api/:id", "desc": "Eliminar config"},
|
{"method": "DELETE", "path": "/api/v2/saas-api/:id", "desc": "Eliminar config"},
|
||||||
{"method": "GET", "path": "/hermes/saas-api/logs", "desc": "Logs de despacho"},
|
{"method": "GET", "path": "/api/v2/saas-api/logs", "desc": "Logs de despacho"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Documentación",
|
"nombre": "Documentación",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/doc/categorias", "desc": "Listar categorías de docs"},
|
{"method": "GET", "path": "/api/v2/doc/categorias", "desc": "Listar categorías de docs"},
|
||||||
{"method": "POST", "path": "/hermes/doc/categorias", "desc": "Crear categoría"},
|
{"method": "POST", "path": "/api/v2/doc/categorias", "desc": "Crear categoría"},
|
||||||
{"method": "PUT", "path": "/hermes/doc/categorias/:id", "desc": "Actualizar categoría"},
|
{"method": "PUT", "path": "/api/v2/doc/categorias/:id", "desc": "Actualizar categoría"},
|
||||||
{"method": "DELETE", "path": "/hermes/doc/categorias/:id", "desc": "Eliminar categoría"},
|
{"method": "DELETE", "path": "/api/v2/doc/categorias/:id", "desc": "Eliminar categoría"},
|
||||||
{"method": "GET", "path": "/hermes/doc/paginas", "desc": "Listar páginas de docs"},
|
{"method": "GET", "path": "/api/v2/doc/paginas", "desc": "Listar páginas de docs"},
|
||||||
{"method": "GET", "path": "/hermes/doc/paginas/:id", "desc": "Detalle de página"},
|
{"method": "GET", "path": "/api/v2/doc/paginas/:id", "desc": "Detalle de página"},
|
||||||
{"method": "POST", "path": "/hermes/doc/paginas", "desc": "Crear página"},
|
{"method": "POST", "path": "/api/v2/doc/paginas", "desc": "Crear página"},
|
||||||
{"method": "PUT", "path": "/hermes/doc/paginas/:id", "desc": "Actualizar página"},
|
{"method": "PUT", "path": "/api/v2/doc/paginas/:id", "desc": "Actualizar página"},
|
||||||
{"method": "DELETE", "path": "/hermes/doc/paginas/:id", "desc": "Eliminar página"},
|
{"method": "DELETE", "path": "/api/v2/doc/paginas/:id", "desc": "Eliminar página"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Configuraciones de IA",
|
"nombre": "Configuraciones de IA",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/ai-config", "desc": "Listar configs de IA"},
|
{"method": "GET", "path": "/api/v2/ai-config", "desc": "Listar configs de IA"},
|
||||||
{"method": "GET", "path": "/hermes/ai-config/select", "desc": "Configs activas para select"},
|
{"method": "GET", "path": "/api/v2/ai-config/select", "desc": "Configs activas para select"},
|
||||||
{"method": "POST", "path": "/hermes/ai-config", "desc": "Crear config IA"},
|
{"method": "POST", "path": "/api/v2/ai-config", "desc": "Crear config IA"},
|
||||||
{"method": "PUT", "path": "/hermes/ai-config/:id", "desc": "Actualizar config"},
|
{"method": "PUT", "path": "/api/v2/ai-config/:id", "desc": "Actualizar config"},
|
||||||
{"method": "DELETE", "path": "/hermes/ai-config/:id", "desc": "Eliminar config"},
|
{"method": "DELETE", "path": "/api/v2/ai-config/:id", "desc": "Eliminar config"},
|
||||||
{"method": "GET", "path": "/hermes/ai-config/:id/test", "desc": "Probar config"},
|
{"method": "GET", "path": "/api/v2/ai-config/:id/test", "desc": "Probar config"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "OSS API (almacenamiento)",
|
"nombre": "OSS API (almacenamiento)",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/oss-api", "desc": "Listar configs de almacenamiento"},
|
{"method": "GET", "path": "/api/v2/oss-api", "desc": "Listar configs de almacenamiento"},
|
||||||
{"method": "GET", "path": "/hermes/oss-api/active", "desc": "Configs activas"},
|
{"method": "GET", "path": "/api/v2/oss-api/active", "desc": "Configs activas"},
|
||||||
{"method": "POST", "path": "/hermes/oss-api", "desc": "Crear config"},
|
{"method": "POST", "path": "/api/v2/oss-api", "desc": "Crear config"},
|
||||||
{"method": "PUT", "path": "/hermes/oss-api/:id", "desc": "Actualizar config"},
|
{"method": "PUT", "path": "/api/v2/oss-api/:id", "desc": "Actualizar config"},
|
||||||
{"method": "DELETE", "path": "/hermes/oss-api/:id", "desc": "Eliminar config"},
|
{"method": "DELETE", "path": "/api/v2/oss-api/:id", "desc": "Eliminar config"},
|
||||||
{"method": "GET", "path": "/hermes/oss-api/browser", "desc": "Explorar archivos. Query: ?prefix=&config_id="},
|
{"method": "GET", "path": "/api/v2/oss-api/browser", "desc": "Explorar archivos. Query: ?prefix=&config_id="},
|
||||||
{"method": "GET", "path": "/hermes/oss-api/browser/url", "desc": "URL firmada para descarga"},
|
{"method": "GET", "path": "/api/v2/oss-api/browser/url", "desc": "URL firmada para descarga"},
|
||||||
{"method": "POST", "path": "/hermes/oss-api/browser/upload", "desc": "Subir archivo"},
|
{"method": "POST", "path": "/api/v2/oss-api/browser/upload", "desc": "Subir archivo"},
|
||||||
{"method": "DELETE", "path": "/hermes/oss-api/browser/object", "desc": "Eliminar archivo"},
|
{"method": "DELETE", "path": "/api/v2/oss-api/browser/object", "desc": "Eliminar archivo"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Telegram",
|
"nombre": "Telegram",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/telegram", "desc": "Listar configs de Telegram"},
|
{"method": "GET", "path": "/api/v2/telegram", "desc": "Listar configs de Telegram"},
|
||||||
{"method": "POST", "path": "/hermes/telegram", "desc": "Crear config"},
|
{"method": "POST", "path": "/api/v2/telegram", "desc": "Crear config"},
|
||||||
{"method": "PUT", "path": "/hermes/telegram/:id", "desc": "Actualizar config"},
|
{"method": "PUT", "path": "/api/v2/telegram/:id", "desc": "Actualizar config"},
|
||||||
{"method": "DELETE", "path": "/hermes/telegram/:id", "desc": "Eliminar config"},
|
{"method": "DELETE", "path": "/api/v2/telegram/:id", "desc": "Eliminar config"},
|
||||||
{"method": "POST", "path": "/hermes/telegram/:id/test", "desc": "Enviar test"},
|
{"method": "POST", "path": "/api/v2/telegram/:id/test", "desc": "Enviar test"},
|
||||||
{"method": "POST", "path": "/hermes/telegram/send", "desc": "Enviar notificación Telegram", "body": "config_id, message"},
|
{"method": "POST", "path": "/api/v2/telegram/send", "desc": "Enviar notificación Telegram", "body": "config_id, message"},
|
||||||
{"method": "GET", "path": "/hermes/telegram/logs", "desc": "Logs de envíos"},
|
{"method": "GET", "path": "/api/v2/telegram/logs", "desc": "Logs de envíos"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Notificaciones config",
|
"nombre": "Notificaciones config",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/notif-config", "desc": "Configs de notificaciones por evento"},
|
{"method": "GET", "path": "/api/v2/notif-config", "desc": "Configs de notificaciones por evento"},
|
||||||
{"method": "POST", "path": "/hermes/notif-config", "desc": "Guardar config"},
|
{"method": "POST", "path": "/api/v2/notif-config", "desc": "Guardar config"},
|
||||||
{"method": "GET", "path": "/hermes/servidor-alerta-config", "desc": "Umbrales de alerta de servidores"},
|
{"method": "GET", "path": "/api/v2/servidor-alerta-config", "desc": "Umbrales de alerta de servidores"},
|
||||||
{"method": "POST", "path": "/hermes/servidor-alerta-config", "desc": "Guardar umbrales"},
|
{"method": "POST", "path": "/api/v2/servidor-alerta-config", "desc": "Guardar umbrales"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Partner Recursos y Comunicados",
|
"nombre": "Partner Recursos y Comunicados",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/partner-recursos", "desc": "Listar recursos partner"},
|
{"method": "GET", "path": "/api/v2/partner-recursos", "desc": "Listar recursos partner"},
|
||||||
{"method": "POST", "path": "/hermes/partner-recursos", "desc": "Crear recurso"},
|
{"method": "POST", "path": "/api/v2/partner-recursos", "desc": "Crear recurso"},
|
||||||
{"method": "PUT", "path": "/hermes/partner-recursos/:id", "desc": "Actualizar recurso"},
|
{"method": "PUT", "path": "/api/v2/partner-recursos/:id", "desc": "Actualizar recurso"},
|
||||||
{"method": "DELETE", "path": "/hermes/partner-recursos/:id", "desc": "Eliminar recurso"},
|
{"method": "DELETE", "path": "/api/v2/partner-recursos/:id", "desc": "Eliminar recurso"},
|
||||||
{"method": "GET", "path": "/hermes/partner-comunicados", "desc": "Listar comunicados"},
|
{"method": "GET", "path": "/api/v2/partner-comunicados", "desc": "Listar comunicados"},
|
||||||
{"method": "POST", "path": "/hermes/partner-comunicados", "desc": "Crear comunicado"},
|
{"method": "POST", "path": "/api/v2/partner-comunicados", "desc": "Crear comunicado"},
|
||||||
{"method": "PUT", "path": "/hermes/partner-comunicados/:id", "desc": "Actualizar comunicado"},
|
{"method": "PUT", "path": "/api/v2/partner-comunicados/:id", "desc": "Actualizar comunicado"},
|
||||||
{"method": "DELETE", "path": "/hermes/partner-comunicados/:id", "desc": "Eliminar comunicado"},
|
{"method": "DELETE", "path": "/api/v2/partner-comunicados/:id", "desc": "Eliminar comunicado"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "USITE Shield",
|
"nombre": "USITE Shield",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/shield", "desc": "Ver config Shield"},
|
{"method": "GET", "path": "/api/v2/shield", "desc": "Ver config Shield"},
|
||||||
{"method": "POST", "path": "/hermes/shield", "desc": "Guardar config"},
|
{"method": "POST", "path": "/api/v2/shield", "desc": "Guardar config"},
|
||||||
{"method": "GET", "path": "/hermes/shield/health", "desc": "Health check"},
|
{"method": "GET", "path": "/api/v2/shield/health", "desc": "Health check"},
|
||||||
{"method": "GET", "path": "/hermes/shield/logs", "desc": "Logs de Shield"},
|
{"method": "GET", "path": "/api/v2/shield/logs", "desc": "Logs de Shield"},
|
||||||
{"method": "GET", "path": "/hermes/shield/logs/stats", "desc": "Estadísticas de logs"},
|
{"method": "GET", "path": "/api/v2/shield/logs/stats", "desc": "Estadísticas de logs"},
|
||||||
{"method": "GET", "path": "/hermes/shield/review-requests", "desc": "Solicitudes de revisión"},
|
{"method": "GET", "path": "/api/v2/shield/review-requests", "desc": "Solicitudes de revisión"},
|
||||||
{"method": "PUT", "path": "/hermes/shield/review-requests/:id/approve", "desc": "Aprobar solicitud"},
|
{"method": "PUT", "path": "/api/v2/shield/review-requests/:id/approve", "desc": "Aprobar solicitud"},
|
||||||
{"method": "PUT", "path": "/hermes/shield/review-requests/:id/reject", "desc": "Rechazar solicitud"},
|
{"method": "PUT", "path": "/api/v2/shield/review-requests/:id/reject", "desc": "Rechazar solicitud"},
|
||||||
{"method": "GET", "path": "/hermes/shield/whitelist", "desc": "Whitelist"},
|
{"method": "GET", "path": "/api/v2/shield/whitelist", "desc": "Whitelist"},
|
||||||
{"method": "POST", "path": "/hermes/shield/whitelist", "desc": "Agregar a whitelist"},
|
{"method": "POST", "path": "/api/v2/shield/whitelist", "desc": "Agregar a whitelist"},
|
||||||
{"method": "DELETE", "path": "/hermes/shield/whitelist/:domain", "desc": "Quitar de whitelist"},
|
{"method": "DELETE", "path": "/api/v2/shield/whitelist/:domain", "desc": "Quitar de whitelist"},
|
||||||
{"method": "GET", "path": "/hermes/shield/blacklist", "desc": "Blacklist"},
|
{"method": "GET", "path": "/api/v2/shield/blacklist", "desc": "Blacklist"},
|
||||||
{"method": "POST", "path": "/hermes/shield/blacklist", "desc": "Agregar a blacklist"},
|
{"method": "POST", "path": "/api/v2/shield/blacklist", "desc": "Agregar a blacklist"},
|
||||||
{"method": "DELETE", "path": "/hermes/shield/blacklist/:domain", "desc": "Quitar de blacklist"},
|
{"method": "DELETE", "path": "/api/v2/shield/blacklist/:domain", "desc": "Quitar de blacklist"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "WebSMS (LabsMobile)",
|
"nombre": "WebSMS (LabsMobile)",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/websms/config", "desc": "Ver config WebSMS"},
|
{"method": "GET", "path": "/api/v2/websms/config", "desc": "Ver config WebSMS"},
|
||||||
{"method": "POST", "path": "/hermes/websms/save", "desc": "Guardar config"},
|
{"method": "POST", "path": "/api/v2/websms/save", "desc": "Guardar config"},
|
||||||
{"method": "POST", "path": "/hermes/websms/test", "desc": "Enviar SMS de prueba"},
|
{"method": "POST", "path": "/api/v2/websms/test", "desc": "Enviar SMS de prueba"},
|
||||||
{"method": "GET", "path": "/hermes/websms/logs", "desc": "Logs de envíos"},
|
{"method": "GET", "path": "/api/v2/websms/logs", "desc": "Logs de envíos"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Pasarelas de pago",
|
"nombre": "Pasarelas de pago",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/pasarelas/bold/config", "desc": "Config Bold"},
|
{"method": "GET", "path": "/api/v2/pasarelas/bold/config", "desc": "Config Bold"},
|
||||||
{"method": "POST", "path": "/hermes/pasarelas/bold/save", "desc": "Guardar config Bold"},
|
{"method": "POST", "path": "/api/v2/pasarelas/bold/save", "desc": "Guardar config Bold"},
|
||||||
{"method": "GET", "path": "/hermes/pasarelas/bold/logs", "desc": "Logs de webhooks Bold"},
|
{"method": "GET", "path": "/api/v2/pasarelas/bold/logs", "desc": "Logs de webhooks Bold"},
|
||||||
{"method": "GET", "path": "/hermes/pasarelas/dlocal/config", "desc": "Config dLocal"},
|
{"method": "GET", "path": "/api/v2/pasarelas/dlocal/config", "desc": "Config dLocal"},
|
||||||
{"method": "POST", "path": "/hermes/pasarelas/dlocal/save", "desc": "Guardar config dLocal"},
|
{"method": "POST", "path": "/api/v2/pasarelas/dlocal/save", "desc": "Guardar config dLocal"},
|
||||||
{"method": "GET", "path": "/hermes/pasarelas/dlocal/logs", "desc": "Logs de pagos dLocal"},
|
{"method": "GET", "path": "/api/v2/pasarelas/dlocal/logs", "desc": "Logs de pagos dLocal"},
|
||||||
{"method": "GET", "path": "/hermes/pasarelas/paypal/config", "desc": "Config PayPal"},
|
{"method": "GET", "path": "/api/v2/pasarelas/paypal/config", "desc": "Config PayPal"},
|
||||||
{"method": "POST", "path": "/hermes/pasarelas/paypal/save", "desc": "Guardar config PayPal"},
|
{"method": "POST", "path": "/api/v2/pasarelas/paypal/save", "desc": "Guardar config PayPal"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Query Runner",
|
"nombre": "Query Runner",
|
||||||
"desc": "Ejecutar queries SQL directamente contra las conexiones DB configuradas.",
|
"desc": "Ejecutar queries SQL directamente contra las conexiones DB configuradas.",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/query-runner/connections", "desc": "Listar conexiones disponibles"},
|
{"method": "GET", "path": "/api/v2/query-runner/connections", "desc": "Listar conexiones disponibles"},
|
||||||
{"method": "GET", "path": "/hermes/query-runner/databases", "desc": "Listar databases. Query: ?connection_id="},
|
{"method": "GET", "path": "/api/v2/query-runner/databases", "desc": "Listar databases. Query: ?connection_id="},
|
||||||
{"method": "GET", "path": "/hermes/query-runner/tables", "desc": "Listar tablas. Query: ?connection_id=&database="},
|
{"method": "GET", "path": "/api/v2/query-runner/tables", "desc": "Listar tablas. Query: ?connection_id=&database="},
|
||||||
{"method": "GET", "path": "/hermes/query-runner/test", "desc": "Probar conexión. Query: ?connection_id="},
|
{"method": "GET", "path": "/api/v2/query-runner/test", "desc": "Probar conexión. Query: ?connection_id="},
|
||||||
{"method": "POST", "path": "/hermes/query-runner/run", "desc": "Ejecutar query", "body": "connection_id, database, query"},
|
{"method": "POST", "path": "/api/v2/query-runner/run", "desc": "Ejecutar query", "body": "connection_id, database, query"},
|
||||||
{"method": "GET", "path": "/hermes/query-runner/history", "desc": "Historial de queries"},
|
{"method": "GET", "path": "/api/v2/query-runner/history", "desc": "Historial de queries"},
|
||||||
{"method": "GET", "path": "/hermes/query-runner/columns", "desc": "Columnas de tabla. Query: ?connection_id=&database=&table="},
|
{"method": "GET", "path": "/api/v2/query-runner/columns", "desc": "Columnas de tabla. Query: ?connection_id=&database=&table="},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Hostinger",
|
"nombre": "Hostinger",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/hostinger/vps", "desc": "Listar VPS Hostinger"},
|
{"method": "GET", "path": "/api/v2/hostinger/vps", "desc": "Listar VPS Hostinger"},
|
||||||
{"method": "GET", "path": "/hermes/hostinger/domains", "desc": "Listar dominios"},
|
{"method": "GET", "path": "/api/v2/hostinger/domains", "desc": "Listar dominios"},
|
||||||
{"method": "GET", "path": "/hermes/hostinger/dns/:domain", "desc": "Registros DNS de un dominio"},
|
{"method": "GET", "path": "/api/v2/hostinger/dns/:domain", "desc": "Registros DNS de un dominio"},
|
||||||
{"method": "GET", "path": "/hermes/hostinger/orders", "desc": "Listar órdenes"},
|
{"method": "GET", "path": "/api/v2/hostinger/orders", "desc": "Listar órdenes"},
|
||||||
{"method": "GET", "path": "/hermes/hostinger/hosting", "desc": "Listar hosting"},
|
{"method": "GET", "path": "/api/v2/hostinger/hosting", "desc": "Listar hosting"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Cloudflare",
|
"nombre": "Cloudflare",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/cloudflare/zones", "desc": "Listar zonas"},
|
{"method": "GET", "path": "/api/v2/cloudflare/zones", "desc": "Listar zonas"},
|
||||||
{"method": "GET", "path": "/hermes/cloudflare/zones/:zone_id/dns", "desc": "Registros DNS de una zona"},
|
{"method": "GET", "path": "/api/v2/cloudflare/zones/:zone_id/dns", "desc": "Registros DNS de una zona"},
|
||||||
{"method": "POST", "path": "/hermes/cloudflare/zones/:zone_id/dns", "desc": "Crear registro DNS"},
|
{"method": "POST", "path": "/api/v2/cloudflare/zones/:zone_id/dns", "desc": "Crear registro DNS"},
|
||||||
{"method": "PUT", "path": "/hermes/cloudflare/zones/:zone_id/dns/:record_id", "desc": "Actualizar registro DNS"},
|
{"method": "PUT", "path": "/api/v2/cloudflare/zones/:zone_id/dns/:record_id", "desc": "Actualizar registro DNS"},
|
||||||
{"method": "DELETE", "path": "/hermes/cloudflare/zones/:zone_id/dns/:record_id", "desc": "Eliminar registro DNS"},
|
{"method": "DELETE", "path": "/api/v2/cloudflare/zones/:zone_id/dns/:record_id", "desc": "Eliminar registro DNS"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "Coolify",
|
"nombre": "Coolify",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/coolify/apps", "desc": "Listar aplicaciones"},
|
{"method": "GET", "path": "/api/v2/coolify/apps", "desc": "Listar aplicaciones"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/apps/:uuid", "desc": "Detalle aplicación"},
|
{"method": "GET", "path": "/api/v2/coolify/apps/:uuid", "desc": "Detalle aplicación"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/apps/:uuid/start", "desc": "Iniciar app"},
|
{"method": "GET", "path": "/api/v2/coolify/apps/:uuid/start", "desc": "Iniciar app"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/apps/:uuid/stop", "desc": "Detener app"},
|
{"method": "GET", "path": "/api/v2/coolify/apps/:uuid/stop", "desc": "Detener app"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/apps/:uuid/restart", "desc": "Reiniciar app"},
|
{"method": "GET", "path": "/api/v2/coolify/apps/:uuid/restart", "desc": "Reiniciar app"},
|
||||||
{"method": "POST", "path": "/hermes/coolify/apps/:uuid/deploy", "desc": "Desplegar app"},
|
{"method": "POST", "path": "/api/v2/coolify/apps/:uuid/deploy", "desc": "Desplegar app"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/servers", "desc": "Listar servidores Coolify"},
|
{"method": "GET", "path": "/api/v2/coolify/servers", "desc": "Listar servidores Coolify"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/servers/:uuid", "desc": "Detalle servidor"},
|
{"method": "GET", "path": "/api/v2/coolify/servers/:uuid", "desc": "Detalle servidor"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/servers/:uuid/resources", "desc": "Recursos del servidor"},
|
{"method": "GET", "path": "/api/v2/coolify/servers/:uuid/resources", "desc": "Recursos del servidor"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/services", "desc": "Listar servicios"},
|
{"method": "GET", "path": "/api/v2/coolify/services", "desc": "Listar servicios"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/databases", "desc": "Listar databases"},
|
{"method": "GET", "path": "/api/v2/coolify/databases", "desc": "Listar databases"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/projects", "desc": "Listar proyectos Coolify"},
|
{"method": "GET", "path": "/api/v2/coolify/projects", "desc": "Listar proyectos Coolify"},
|
||||||
{"method": "GET", "path": "/hermes/coolify/deployments", "desc": "Listar deployments"},
|
{"method": "GET", "path": "/api/v2/coolify/deployments", "desc": "Listar deployments"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nombre": "VCard API",
|
"nombre": "VCard API",
|
||||||
"endpoints": []fiber.Map{
|
"endpoints": []fiber.Map{
|
||||||
{"method": "GET", "path": "/hermes/vcard-api/config", "desc": "Ver config VCard API"},
|
{"method": "GET", "path": "/api/v2/vcard-api/config", "desc": "Ver config VCard API"},
|
||||||
{"method": "GET", "path": "/hermes/vcard-api/usuarios", "desc": "Listar usuarios VCard"},
|
{"method": "GET", "path": "/api/v2/vcard-api/usuarios", "desc": "Listar usuarios VCard"},
|
||||||
{"method": "GET", "path": "/hermes/vcard-api/usuarios/:id", "desc": "Detalle usuario"},
|
{"method": "GET", "path": "/api/v2/vcard-api/usuarios/:id", "desc": "Detalle usuario"},
|
||||||
{"method": "GET", "path": "/hermes/vcard-api/vcards", "desc": "Listar vcards"},
|
{"method": "GET", "path": "/api/v2/vcard-api/vcards", "desc": "Listar vcards"},
|
||||||
{"method": "GET", "path": "/hermes/vcard-api/planes", "desc": "Listar planes"},
|
{"method": "GET", "path": "/api/v2/vcard-api/planes", "desc": "Listar planes"},
|
||||||
{"method": "GET", "path": "/hermes/vcard-api/pagos", "desc": "Listar pagos"},
|
{"method": "GET", "path": "/api/v2/vcard-api/pagos", "desc": "Listar pagos"},
|
||||||
{"method": "GET", "path": "/hermes/vcard-api/miniwebs", "desc": "Listar miniwebs"},
|
{"method": "GET", "path": "/api/v2/vcard-api/miniwebs", "desc": "Listar miniwebs"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -262,8 +262,8 @@ func AuthAdmin(c *fiber.Ctx) error {
|
|||||||
|
|
||||||
func AuthApi() func(*fiber.Ctx) error {
|
func AuthApi() func(*fiber.Ctx) error {
|
||||||
return func(c *fiber.Ctx) error {
|
return func(c *fiber.Ctx) error {
|
||||||
// Excluir rutas públicas
|
// Excluir rutas públicas y /api/v2 (tiene su propio middleware)
|
||||||
if c.Path() == "/api/v1/oauth/token" || c.Path() == "/api/sms/send" {
|
if c.Path() == "/api/v1/oauth/token" || c.Path() == "/api/sms/send" || strings.HasPrefix(c.Path(), "/api/v2") {
|
||||||
return c.Next()
|
return c.Next()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func HermesAuth() fiber.Handler {
|
func AdminApiAuth() fiber.Handler {
|
||||||
return func(c *fiber.Ctx) error {
|
return func(c *fiber.Ctx) error {
|
||||||
apiKey := os.Getenv("HERMES_API_KEY")
|
apiKey := os.Getenv("ADMIN_API_KEY")
|
||||||
if apiKey == "" {
|
if apiKey == "" {
|
||||||
return c.Status(503).JSON(fiber.Map{"error": "HERMES_API_KEY not configured"})
|
return c.Status(503).JSON(fiber.Map{"error": "ADMIN_API_KEY not configured"})
|
||||||
}
|
}
|
||||||
|
|
||||||
token := ""
|
token := ""
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ import (
|
|||||||
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
|
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
|
||||||
)
|
)
|
||||||
|
|
||||||
func HermesRoutes(app *fiber.App) {
|
func AdminApiRoutes(api fiber.Router) {
|
||||||
h := app.Group("/hermes", middlewares.HermesAuth())
|
h := api.Group("v2", middlewares.AdminApiAuth())
|
||||||
|
|
||||||
// ─── Spec (documentación completa de la API) ─────────────────────────────
|
// ─── Spec (documentación completa de la API) ─────────────────────────────
|
||||||
h.Get("/spec", controllers.HermesSpec)
|
h.Get("/spec", controllers.AdminApiSpec)
|
||||||
|
|
||||||
// ─── Usuarios ────────────────────────────────────────────────────────────
|
// ─── Usuarios ────────────────────────────────────────────────────────────
|
||||||
h.Get("/users", controllers.GetUsers)
|
h.Get("/users", controllers.GetUsers)
|
||||||
|
|||||||
@@ -9,9 +9,7 @@ func LoadRoutes(app *fiber.App) {
|
|||||||
// Grupo de rutas de la API con autenticación
|
// Grupo de rutas de la API con autenticación
|
||||||
api := app.Group("/api").Use(middlewares.AuthApi())
|
api := app.Group("/api").Use(middlewares.AuthApi())
|
||||||
ApiRoutes(api)
|
ApiRoutes(api)
|
||||||
|
AdminApiRoutes(api)
|
||||||
// API Hermes (acceso externo con API Key)
|
|
||||||
HermesRoutes(app)
|
|
||||||
|
|
||||||
// Grupo de rutas web (sin autenticación)
|
// Grupo de rutas web (sin autenticación)
|
||||||
web := app.Group("")
|
web := app.Group("")
|
||||||
|
|||||||
Reference in New Issue
Block a user