Gobernanza y evidencia

Esta página reúne las superficies que sostienen el cumplimiento del día a día: los encargados de tratamiento y sus contratos del Art. 15 bis, las capacitaciones del personal con su evidencia, los documentos de autoridad de los apoderados, el catálogo de gobernanza (categorías de datos, políticas de retención, destinos, delegados) y los reportes descargables.

GET/api/processors

Encargados (Art. 15 bis)

Un encargado es un destino de transferencia (transfer_destination) con acceso a datos; su contrato de encargo es un dpa_contract versionado. Lectura con processing_activities.read — los encargados son, ante todo, destinatarios del RAT.

Vocabularios

  • Nombre
    contract.status
    Tipo
    string
    Descripción

    missing (calculado, no escribible), draft, in_negotiation, active, expired, terminated.

  • Nombre
    contract.clauses
    Tipo
    string[]
    Descripción

    Las 10 cláusulas exigibles: objeto, duracion, finalidad, tipos_de_datos, categorias_de_titulares, derechos_y_obligaciones, prohibicion_de_subdelegar, deber_de_secreto, medidas_de_seguridad, supresion_o_devolucion. missingClauses lista las que faltan.

  • Nombre
    verification
    Tipo
    object
    Descripción

    { state, lastPerformedAt, lastOutcome, nextDueAt }; statenever, overdue, due_soon (30 días), current. Métodos: cuestionario, documental, certificacion, prueba_tecnica, visita; resultados: conforme, con_observaciones, no_conforme.

Parámetros opcionales

  • Nombre
    uncoveredOnly
    Tipo
    string
    Descripción

    true deja sólo encargados sin contrato vigente.

  • Nombre
    verificationDueOnly
    Tipo
    string
    Descripción

    true deja sólo verificaciones vencidas o por vencer.

Solicitud

GET
/api/processors
curl -G "https://app.edugoverna.com/api/processors" \
  -H "x-api-key: {tu_api_key}" \
  -d uncoveredOnly=true

Respuesta (recortada)

{
  "processors": [
    {
      "id": "td5a…",
      "name": "Plataforma LMS",
      "destinationType": "processor",
      "countryCode": "CL",
      "residencyClass": "cross_border_managed",
      "criticality": "medium",
      "isSubprocessor": false,
      "dataAccess": { "linked": true, "sensitive": false },
      "covered": false,
      "expiringSoon": false,
      "contract": {
        "versionNumber": 1,
        "status": "in_negotiation",
        "clauses": ["objeto", "finalidad", "deber_de_secreto"],
        "missingClauses": ["duracion", "tipos_de_datos", "…"],
        "effectiveFrom": null,
        "executedAt": null
      },
      "verification": {
        "state": "never",
        "lastPerformedAt": null,
        "lastOutcome": null,
        "nextDueAt": null
      }
    }
  ]
}

Rutas del encargado

Método y rutaPermisoQué hace
GET /processors/clausesprocessing_activities.readEl catálogo de cláusulas y métodos de verificación, con sus textos.
GET /processors/:destinationId/contractsprocessing_activities.readHistorial de versiones del contrato.
POST /processors/:destinationId/contractprocessing_activities.writeRegistra una versión nueva; JSON o multipart (payload + file con el contrato firmado, hasta 15 MB). Sólo sesión.
GET /processors/:destinationId/contract/documentprocessing_activities.readDescarga el contrato archivado.
GET /processors/:destinationId/contract/draftprocessing_activities.readGenera el borrador PDF con las cláusulas del 15 bis.
GET /processors/:destinationId/verificationsprocessing_activities.readVerificaciones realizadas al encargado.
POST /processors/:destinationId/verificationsprocessing_activities.writeRegistra una verificación (JSON o multipart con evidencia). Sólo sesión.
GET …/verifications/:verificationId/evidenceprocessing_activities.readDescarga la evidencia de una verificación.

GET/api/training-sessions

Capacitaciones

El registro de capacitaciones del personal en protección de datos — parte de la evidencia de responsabilidad proactiva. Lectura con dpia.read; escritura con dpia.write (sólo sesión).

POST /training-sessions requiere title y heldAt; opcionales topic, trainerName, audienceDescription, attendeeCount, nextDueAt, notes. La evidencia (lista de asistencia, certificado) se adjunta con POST /training-sessions/:id/evidencemultipart/form-data, campo file, hasta 15 MB — y se recupera con GET /training-sessions/:id/evidence.

Solicitud

GET
/api/training-sessions
curl "https://app.edugoverna.com/api/training-sessions" \
  -H "x-api-key: {tu_api_key}"

Respuesta (recortada)

{
  "trainingSessions": [
    {
      "id": "ts21…",
      "title": "Capacitación anual 2026",
      "topic": "Qué se puede y qué no con datos de estudiantes",
      "heldAt": "2026-03-15T12:00:00.000Z",
      "trainerName": "Estudio Jurídico Pérez",
      "attendeeCount": 42,
      "evidenceArtifactId": "ar54…",
      "nextDueAt": "2027-03-15T12:00:00.000Z",
      "createdBy": "dpo@colegioandes.cl"
    }
  ]
}

GET/api/records/authority-documents

Documentos de autoridad

Los documentos que acreditan la autoridad de un apoderado sobre un estudiante (resoluciones judiciales, poderes). Lectura con guardians.read; registro y revisión con guardians.write.

POST /records/authority-documents recibe guardianshipId, documentType y exactamente uno de artifactId (artefacto ya subido) o artifact (referencia de almacenamiento). El documento nace pending; POST …/:id/verify y POST …/:id/reject resuelven la revisión — rechazar un documento de un vínculo self_attested revoca la autoridad provisional del apoderado.

Parámetros opcionales del listado

  • Nombre
    verificationStatus
    Tipo
    string
    Descripción

    pending, verified o rejected.

  • Nombre
    limit / cursor / offset
    Tipo
    varios
    Descripción

    Por defecto 50, máximo 100; cursor tiene prioridad sobre offset.

Solicitud

GET
/api/records/authority-documents
curl -G "https://app.edugoverna.com/api/records/authority-documents" \
  -H "x-api-key: {tu_api_key}" \
  -d verificationStatus=pending

Respuesta (recortada)

{
  "documents": [
    {
      "id": "ad83…",
      "guardianshipId": "gd12…",
      "documentType": "resolucion_judicial",
      "issuingAuthority": "Juzgado de Familia de Santiago",
      "artifactId": "ar62…",
      "verificationStatus": "pending",
      "issuedAt": "2026-06-01T12:00:00.000Z",
      "guardianshipStatus": "active",
      "relationshipType": "madre",
      "studentSummary": { "referenceCode": "EST-2026-0412", "displayName": "Martina Rojas" },
      "guardianSummary": { "referenceCode": "APO-2026-0311", "displayName": "Carolina Fuentes" }
    }
  ],
  "meta": {
    "totalMatchedCount": 3,
    "nextCursor": null,
    "filteredRestrictedCount": 0
  }
}

El mismo archivo de rutas ofrece POST /records/verifications y POST /records/verifications/:id/complete (verificaciones de identidad de titulares, subjects.write) y POST /records/enrollments (matrículas, students.write).


GET/api/governance/catalog

Catálogo de gobernanza

GET /governance/catalog (con processing_activities.read) devuelve, en cuatro arreglos, los bloques de configuración que el RAT referencia:

  • dataCategories — categorías de datos con su sensibilidad (sensitivityLevel, isSensitive, requiresExpressConsent) y retención por defecto.
  • retentionPolicies — políticas de retención (retentionDays, actionAfterRetention, triggerEvent).
  • transferDestinations — destinos de transferencia (los mismos que la página de encargados enriquece).
  • policyDocuments — documentos de política con su versión vigente y si hay aprobación pendiente.
Método y rutaPermisoQué hace
GET /governance/delegatesschools.readDelegados de protección de datos designados, con su usuario.
POST /governance/delegatesschools.writeDesigna un delegado.
POST /governance/delegates/:id/actaschools.writeSube el acta de designación (multipart, campo file).
GET /governance/delegates/:id/actaschools.readDescarga el acta.
GET /governance/controllers/assignmentsschools.readEntidades responsables (sostenedor/fundación) asignadas a la organización.
POST /governance/controllers/assignmentsschools.writeCrea o asigna la entidad responsable.
GET /governance/dpia-assessmentsprocessing_activities.readVista de gobernanza sobre las EIPD (filtro processingActivityId).
GET /governance/system-register-entriesprocessing_activities.readRegistro de sistemas.

POST/api/reports/generate

Reportes de cumplimiento

Reportes descargables para dirección o el regulador. Sólo disponible con sesión de la consola: generar exige reports.generate (permiso de sesión) más el permiso de lectura del dominio del reporte; listar y descargar exigen audit.read.

Atributos

  • Nombre
    reportType
    Tipo
    string
    Descripción

    arco_compliance (exige rights_requests.read), consent_coverage (consents.read) o incident_summary (audit.read).

  • Nombre
    format
    Tipo
    string
    Descripción

    pdf o csv.

  • Nombre
    periodFrom / periodTo
    Tipo
    string
    Descripción

    Opcionales: YYYY-MM-DD (día calendario chileno, fin inclusivo) o ISO 8601 completo.

Solicitud

POST
/api/reports/generate
curl -X POST "https://app.edugoverna.com/api/reports/generate" \
  -H "Cookie: {sesion_de_consola}" \
  -H "Content-Type: application/json" \
  -d '{ "reportType": "arco_compliance", "format": "csv" }'

Respuesta · 201

{
  "report": {
    "id": "rp44…",
    "reportType": "arco_compliance",
    "format": "csv",
    "title": "Reporte de cumplimiento",
    "periodFrom": null,
    "periodTo": null,
    "generatedAt": "2026-08-25T15:00:00.000Z",
    "sizeBytes": 18240,
    "contentType": "text/csv"
  }
}

GET /reports lista los generados (paginado con meta) y GET /reports/:artifactId/download entrega el archivo.


Paneles de resumen

Dos lecturas agregadas, ambas sólo disponibles con sesión de la consola:

  • GET /dashboard/overview — el panel del colegio: summary con conteos por dominio (subjects, activities, dpia, processors, governance, cases, consents), actividad reciente, plazos próximos y acciones prioritarias. Cada bloque trae available y devuelve null (no 0) en los conteos que la persona no puede ver.
  • GET /network/overview — para organizaciones de tipo red (sostenedores): sólo conteos por colegio miembro (totals y el mismo summary por colegio), nunca datos de titulares de los colegios.

Para la auditoría fina de accesos y eventos, GET /audit/events y GET /audit/sensitive-access-events (con audit.read, sesión) complementan estos paneles.

¿Te sirvió esta página?