Saltar al contenido principal

API

Mawidabp expone una API REST JSON para consultar hallazgos (observaciones y oportunidades de mejora) desde sistemas externos. La API es de solo lectura y está pensada para integraciones con herramientas de BI, CMDB, sistemas de tickets o dashboards corporativos.

Base URL

Cada organización tiene su propio subdominio:

https://<organizacion>.mawidabp.com/api/v1

Por ejemplo, para una organización llamada demo:

https://demo.mawidabp.com/api/v1

Autenticación

Todos los endpoints usan JWT (JSON Web Token). El token se envía en el header Authorization con el prefijo Bearer:

Authorization: Bearer <token_jwt>

El token se obtiene desde Mawidabp (mismo lugar que se usa para Power BI): Seguimiento → Hallazgos → sección Enlace. El perfil del usuario debe tener permisos para ver el token.

Errores de autenticación

CódigoMensajeDescripción
401Token inválidoEl token proporcionado no es válido.
401Token vencidoEl token expiró y debe renovarse.

Ejemplo de respuesta de error:

{
"error": "Token inválido"
}

Endpoints

GET /api/v1/:completion_state/findings

Devuelve los hallazgos (observaciones y oportunidades) filtrados por estado de completitud.

Parámetros de ruta

ParámetroTipoRequeridoValoresDescripción
completion_statestringcomplete, incompleteFiltra por estado.

Estados agrupados por completion_state

incomplete devuelve hallazgos en:

  • En proceso de implementación
  • No confirmada
  • Confirmada
  • Sin respuesta
  • Implementada
  • Notificar

complete devuelve hallazgos en:

  • Implementada / Auditada
  • Desestimada / No aplica
  • Riesgo asumido
  • Difiere criterio

Respuesta

200 OK, array JSON donde cada elemento es un hallazgo.

CampoTipoDescripción
InformestringIdentificación del informe.
ProyectostringNombre del proyecto del plan.
Fecha de emisiónstringFecha de emisión del informe (DD/MM/AA).
ActastringResumen / acta del informe definitivo.
Unidad organizativastringNombre de la unidad organizativa.
Unidad de negociostringNombre de la unidad de negocio.
CódigostringCódigo único del hallazgo.
IdstringIdentificador numérico.
EtiquetasstringEtiquetas separadas por coma.
TítulostringTítulo del hallazgo.
Observación / OportunidadstringDescripción detallada.
EstadostringEstado actual (ver tabla de estados).
RiesgostringAlto, Medio o Bajo.
PrioridadstringAlta, Media o Baja.
EfectostringEfecto o impacto del hallazgo.
ResponsablestringResponsables de proceso asignados.
AuditadosstringUsuarios auditados asignados.
AuditoresstringAuditores asignados.
Buena prácticastringBuena práctica relacionada.
ProcesostringProceso de negocio asociado.
Objetivo de controlstringObjetivo de control relacionado.
Fecha de origenstringFecha de origen del hallazgo.
Fecha de implementaciónstringFecha comprometida.
Fecha de soluciónstringFecha de cierre si ya fue solucionada.
Fecha de cambio a "Implementada"stringCuándo pasó al estado Implementada.
Fecha del último cambio de estadostringÚltimo cambio de estado registrado.
Reprogramadastring / No.
Cantidad de reprogramacionesstringNúmero de reprogramaciones.
ReiteradastringID del hallazgo padre si es reiterada.
Comentarios de auditoríastringComentarios del auditor.
Recomendaciones de auditoríastringAcciones recomendadas.
Respuesta/Acciones correctivasstringRespuesta del auditado.

Ejemplo

curl -X GET "https://demo.mawidabp.com/api/v1/incomplete/findings" \
-H "Authorization: Bearer <token>"
[
{
"Informe": "AI-2024-001",
"Proyecto": "Auditoría de sistemas",
"Fecha de emisión": "15/03/24",
"Acta": "Revisión del proceso de control de accesos",
"Unidad organizativa": "Tecnología",
"Unidad de negocio": "Sistemas de Información",
"Código": "O001",
"Id": "12345",
"Etiquetas": "seguridad, accesos",
"Título": "Deficiencia en gestión de contraseñas",
"Observación / Oportunidad": "Se detectó que las políticas de contraseñas no cumplen con los estándares mínimos de seguridad.",
"Estado": "En proceso de implementación",
"Riesgo": "Alto",
"Prioridad": "Alta",
"Efecto": "Exposición a accesos no autorizados",
"Responsable": "Juan Pérez, María García",
"Auditados": "Carlos López",
"Auditores": "Ana Martínez, Pedro Sánchez",
"Buena práctica": "Seguridad de la información",
"Proceso": "Control de accesos",
"Objetivo de control": "Gestión de credenciales",
"Fecha de origen": "01/01/24",
"Fecha de implementación": "30/04/24",
"Fecha de solución": "-",
"Reprogramada": "No",
"Cantidad de reprogramaciones": "0",
"Reiterada": "",
"Comentarios de auditoría": "Se requiere actualización de políticas",
"Recomendaciones de auditoría": "Implementar política de contraseñas según ISO 27001",
"Respuesta/Acciones correctivas": "Se iniciará el proceso de actualización en el próximo mes"
}
]

GET /api/v1/weaknesses

Devuelve observaciones definitivas aprobadas. Útil para integraciones que sólo necesitan el subset de observaciones oficialmente aprobadas por el comité.

Respuesta

200 OK, array JSON.

CampoTipoDescripción
CódigostringCódigo único de la observación.
IdstringIdentificador numérico.
TítulostringTítulo de la observación.
EstadostringEstado actual.
RiesgostringNivel de riesgo.
Fecha de origenstringFecha de origen.
Fecha de implementaciónstringFecha comprometida.
Fecha de soluciónstringFecha de cierre si aplica.

Campos adicionales opcionales

Según la configuración de la organización, pueden incluirse:

CampoTipoDescripción
Fecha de creaciónstringFecha de aprobación.
ImportanciastringValor de importancia (0.10, 0.25, 0.65).
VencimientostringValor de vencimiento (0 a 1).
Gestión por importanciastringPorcentaje de gestión.

También pueden aparecer columnas dinámicas basadas en grupos de etiquetas configurados en la organización.

Ejemplo

curl -X GET "https://demo.mawidabp.com/api/v1/weaknesses" \
-H "Authorization: Bearer <token>"
[
{
"Código": "O001",
"Id": "12345",
"Título": "Deficiencia en gestión de contraseñas",
"Estado": "En proceso de implementación",
"Riesgo": "Alto",
"Fecha de origen": "01/01/24",
"Fecha de implementación": "30/04/24",
"Fecha de solución": "-"
}
]

Valores de referencia

Estados

ValorDescripción
En proceso de implementaciónHallazgo siendo trabajado.
No confirmadaPendiente de confirmación.
ConfirmadaHallazgo confirmado.
Sin respuestaAguardando respuesta del auditado.
A regularizarEn espera de regularización.
ImplementadaImplementación completada, pendiente de verificación.
Implementada / AuditadaVerificado y cerrado.
Riesgo asumidoRiesgo aceptado por la organización.
NotificarRequiere notificación.
IncompletaInformación incompleta.
ReiteradaHallazgo recurrente.
AnuladaHallazgo anulado.
Difiere criterioDiferencia de interpretación.
Desestimada / No aplicaHallazgo desestimado o no aplicable.
FallaImplementación fallida.

Niveles de riesgo

Alto, Medio, Bajo.

Niveles de prioridad

Alta, Media, Baja.

Respuestas vacías

Un endpoint sin resultados devuelve un array vacío:

[]

No devuelve 404.

Buenas prácticas

  • Cacheá cuando puedas: la API no tiene rate limiting explícito, pero está pensada para consumo periódico, no para llamadas en bucle. Una actualización cada 15 minutos alcanza para la mayoría de los casos.
  • Guardá el token en un lugar seguro: un gestor de secretos, una variable de entorno cifrada, una configuración del pipeline. No en el código.
  • Manejá los errores 401 regenerando el token: si tu integración corre sin supervisión, vale la pena alertar cuando el token expira.

Soporte

Para dudas, nuevas necesidades de endpoints o problemas, escribí a soporte@mawidabp.com.