Governance
Endpoints para puntaje de cumplimiento, reportes y exportaciones.
Todos los endpoints requieren autenticación JWT. El tenant se determina automáticamente desde el token.
Puntaje de cumplimiento
GET /api/v1/governance/compliance-scoreCalcula el puntaje de cumplimiento ponderado del tenant, desglosado por módulo.
curl -X GET https://api.dpolab.com/api/v1/governance/compliance-score \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"overallScore": 78,
"breakdown": {
"rat": {
"score": 85,
"weight": 25,
"label": "Registro de Tratamiento",
"detail": "38 de 45 actividades activas"
},
"arsop": {
"score": 72,
"weight": 15,
"label": "Canal ARCO",
"detail": "2 solicitudes vencidas"
},
"cmp": {
"score": 100,
"weight": 15,
"label": "Consentimiento",
"detail": "Aviso publicado"
},
"dpia": {
"score": 65,
"weight": 20,
"label": "DPIA",
"detail": "4 de 6 evaluaciones aprobadas"
},
"dataMap": {
"score": 100,
"weight": 15,
"label": "Mapa de Datos",
"detail": "Sistemas registrados"
},
"breaches": {
"score": 100,
"weight": 10,
"label": "Brechas",
"detail": "Sin brechas pendientes"
}
},
"counts": {
"rat": { "total": 45, "byStatus": { "ACTIVE": 38, "DRAFT": 7 } },
"arsop": { "total": 23, "pending": 5, "overdue": 2 },
"cmp": { "total": 3 },
"dpia": { "total": 8, "pendingApproval": 3 },
"breaches": { "total": 3, "open": 1 },
"dataMap": { "total": 12 },
"contracts": { "total": 3, "withoutDpa": 2, "expired": 1 }
},
"priorityActions": [
{
"module": "ARSOP",
"severity": "critical",
"message": "2 solicitudes ARCO vencidas — riesgo de reclamación ante APDP"
},
{
"module": "Contratos",
"severity": "critical",
"message": "2 encargados sin DPA firmado — tratamiento ilícito según Art. 15 bis"
}
]
}
}Pesos por módulo
| Módulo | Peso | Criterio |
|---|---|---|
| RAT | 25% | Proporción de actividades activas vs total |
| ARSOP | 15% | Widget configurado, solicitudes al día, DPO completo |
| CMP | 15% | Al menos un aviso de consentimiento publicado |
| DPIA | 20% | Evaluaciones aprobadas para actividades con datos sensibles |
| Mapa de Datos | 15% | Al menos un sistema registrado |
| Brechas | 10% | Sin brechas abiertas por más de 7 días |
Se aplican penalizaciones adicionales por encargados sin DPA firmado (-8 pts c/u, máx -20) y contratos vencidos (-5 pts c/u, máx -15).
Reportes
Listar reportes
GET /api/v1/governance/reportsQuery params:
| Param | Tipo | Descripción |
|---|---|---|
page | number | Página (default: 1) |
limit | number | Registros por página (default: 20) |
curl -X GET "https://api.dpolab.com/api/v1/governance/reports" \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"reports": [
{
"id": "rpt_abc123",
"title": "Reporte de Cumplimiento - 09-03-2026",
"type": "EXECUTIVE",
"scoreSnapshot": { "overallScore": 78 },
"generatedBy": "user_001",
"createdAt": "2026-03-09T10:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 6,
"totalPages": 1
}
}
}Generar reporte
POST /api/v1/governance/reports/generateGenera un reporte con una instantánea (scoreSnapshot) del puntaje de cumplimiento actual.
Body (opcional):
{
"title": "Reporte trimestral Q1 2026"
}Si no se envía title, se genera automáticamente con la fecha actual.
curl -X POST https://api.dpolab.com/api/v1/governance/reports/generate \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{ "title": "Reporte trimestral Q1 2026" }'Respuesta (201):
{
"success": true,
"data": {
"id": "rpt_gen789",
"title": "Reporte trimestral Q1 2026",
"type": "EXECUTIVE",
"scoreSnapshot": {
"overallScore": 78,
"breakdown": { "..." : "..." },
"counts": { "..." : "..." },
"priorityActions": []
},
"generatedBy": "user_001",
"createdAt": "2026-03-09T10:00:00Z"
}
}Obtener reporte
GET /api/v1/governance/reports/:id/downloadRetorna los datos completos del reporte incluyendo la instantánea de cumplimiento.
curl -X GET https://api.dpolab.com/api/v1/governance/reports/rpt_abc123/download \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"id": "rpt_abc123",
"title": "Reporte de Cumplimiento - 09-03-2026",
"type": "EXECUTIVE",
"scoreSnapshot": { "overallScore": 78, "breakdown": {}, "counts": {}, "priorityActions": [] },
"generatedBy": "user_001",
"createdAt": "2026-03-09T10:00:00Z"
}
}Eliminar reporte
DELETE /api/v1/governance/reports/:idcurl -X DELETE https://api.dpolab.com/api/v1/governance/reports/rpt_abc123 \
-H "Authorization: Bearer {token}"Exportaciones
Exportar RAT
GET /api/v1/governance/export/ratExporta el Registro de Actividades de Tratamiento completo.
Query params:
| Param | Tipo | Descripción |
|---|---|---|
format | string | Formato: csv, excel (default: csv) |
curl -X GET "https://api.dpolab.com/api/v1/governance/export/rat?format=csv" \
-H "Authorization: Bearer {token}" \
-o rat_completo.csvExportar DPIA
GET /api/v1/governance/export/dpiaExporta las evaluaciones de impacto.
Query params:
| Param | Tipo | Descripción |
|---|---|---|
format | string | Formato: csv, excel (default: csv) |
curl -X GET "https://api.dpolab.com/api/v1/governance/export/dpia?format=csv" \
-H "Authorization: Bearer {token}" \
-o eipd_todas.csvVer también
- Módulo Governance — Guía funcional de governance y reportes