Saltar al contenido principal

API REST CECOM BRYSA

Esta sección documenta la API REST del sistema CECOM BRYSA. La API es mantenida por NFR Innovaciones Web SpA como parte del sistema desarrollado para BRYSA S.A.

Información General​

AtributoValor
Base URLhttps://api.cecom-brysa.cl/api
Versión1.1.0
FormatoJSON
AutenticaciónJWT Bearer Token
Multi-tenancyFiltros por tenant y contrato según el rol autenticado

Arquitectura​


graph LR
  subgraph Cliente["Clientes autorizados"]
      A[Frontend Web]
      B[Scripts internos]
      C[Integraciones externas]
  end

  subgraph API["Backend Express"]
      D[API REST]
      E[Rate Limiter]
      F[JWT + RBAC]
      G[Controladores]
  end

  subgraph Backend
      H[(PostgreSQL)]
      I[Redis Cache]
      J[WebSocket]
  end

  A --> D
  B --> D
  C --> D
  D --> E --> F --> G
  G --> H
  G --> I
  G --> J

Endpoints Principales​

MóduloBase PathDescripción
Autenticación/api/authLogin, recuperación/cambio de contraseña, perfil y contexto
Usuarios/api/usersGestión de usuarios
Brigadistas/api/brigadistaPersonal y asistencia
Emergencias/api/emergenciesBitácora de emergencias
Recursos/api/resource-panelVehículos y equipos
Dotación Manual/api/manual-dotationDotación operativa de carros por turno
Combustible/api/fuelRegistro de cargas
Inventario/api/inventoryControl de materiales
Entrega Turno/api/shift-handoversCambio de guardia
Pruebas de Comunicación/api/communication-testsVerificación de radios/estaciones
Ubicaciones/api/locationsPuntos georreferenciados
SamTech/api/samtechIntegración GPS/ubicaciones externas
Despacho/api/dispatch-alertsAlertas de emergencia
Datos Maestros/api/master-dataCatálogos del sistema
Contratos/api/contracts/:id/daytimeCorte horario Día/Noche del contrato
Tenants/Contratos/api/tenantsAdministración global de empresas y contratos

Formato de Respuestas​

La API mantiene respuestas legacy y respuestas nuevas. Antes de integrar un endpoint, revise la referencia OpenAPI interna o la ruta específica. Los patrones más comunes son:

Respuesta Exitosa con status​

{
"status": "success",
"message": "Operación exitosa",
"data": {}
}

Respuesta Exitosa con success​

{
"success": true,
"message": "Operación exitosa",
"data": {
// Datos de la respuesta
}
}

Respuesta Paginada​

{
"success": true,
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 100,
"totalPages": 5
}
}

Respuesta de Error Legacy​

{
"success": false,
"message": "Descripción del error",
"errors": [
{
"field": "email",
"message": "El email es requerido"
}
]
}

Respuesta de Error por Código de Dominio​

Algunos módulos nuevos, como manual-dotation, retornan errores con código estable:

{
"error": {
"code": "BRIGADISTA_ALREADY_ASSIGNED",
"message": "El brigadista ya está asignado en la dotación abierta"
}
}

Rate Limiting​

La API implementa límites de tasa para proteger el servicio:

EndpointLímiteVentana
General1000 requests15 minutos
Autenticación100 requests15 minutos
Login5 intentos5 minutos

Cuando excede el límite, recibirá:

HTTP/1.1 429 Too Many Requests
{
"success": false,
"message": "Demasiadas solicitudes. Intente en 15 minutos.",
"retryAfter": 900
}

Headers Requeridos​

Content-Type: application/json
Authorization: Bearer <token>
Seguridad

No guarde tokens JWT, secretos de integración ni credenciales en repositorios, tickets o capturas compartidas. Las integraciones deben usar variables de entorno y rotación de credenciales.

Referencia OpenAPI​

La referencia oficial para producción está dentro de esta documentación:

El endpoint público https://api.cecom-brysa.cl/api-docs no se usa como fuente documental en producción. El backend solo monta Swagger UI cuando ENABLE_SWAGGER_IN_PRODUCTION=true; por seguridad, el flujo normal es consultar esta documentación y usar Swagger en local o en un entorno interno controlado.

Siguientes Pasos​


Acceso a la API

Para obtener credenciales de API para integraciones, contacte a contacto@nfr-innovacionesweb.cl