main content
< Volver a blog sobre aplicaciones móviles

Gestión versiones contenido auditoría editorial Drupal

Cómo implementar un sistema de gestión de versiones de contenido y auditoría editorial en Drupal

Si publicas contenido en la web con cierta regularidad, tarde o temprano te va a pasar: alguien edita un artículo y mete la pata, o peor, alguien publica algo que no debería haberse publicado todavía. Y cuando quieres recuperar la versión anterior, te das cuenta de que no tienes forma de hacerlo. En ese momento es cuando entiendes por qué el control de versiones no es un capricho.

En algunos sectores la cosa va más allá. Si trabajas en banca, farmacia, sanidad o administración pública, la ley te obliga a mantener un registro auditable de todos los cambios que se hacen en el contenido publicado. No es opcional: es un requisito normativo con consecuencias legales si no lo cumples.

La buena noticia es que Drupal trae un sistema de revisiones de serie que, bien configurado y combinado con los módulos adecuados, te permite montar un flujo editorial completo: versionado, comparación de cambios, aprobaciones por niveles y trazabilidad total. Vamos a ver cómo.

Por qué necesitas control de versiones en tu contenido

Hay varios escenarios donde el versionado de contenido pasa de ser "algo que estaría bien tener" a "algo que necesito ya":

Cumplimiento normativo

Hay sectores que no tienen elección. Las entidades financieras tienen que poder demostrar qué información tenían publicada en cada momento. Las farmacéuticas necesitan trazabilidad completa sobre la información de sus productos. Las administraciones públicas están obligadas a garantizar la transparencia. Si no puedes demostrar qué publicaste y cuándo, tienes un problema.

Calidad editorial

Con un sistema de versiones puedes detectar errores que se colaron en alguna edición, comparar versiones para ver cómo ha evolucionado un texto y, lo más importante, volver atrás cuando alguien la ha liado.

Trabajo en equipo

Cuando varias personas tocan el mismo contenido, las cosas se complican. Necesitas evitar que dos editores modifiquen el mismo artículo a la vez (y que uno machaque los cambios del otro), saber quién hizo cada cambio y tener un flujo de aprobación que filtre el contenido antes de que salga a la luz.

La red de seguridad

Un buen sistema de revisiones es como un seguro: esperas no necesitarlo, pero cuando lo necesitas, vale su peso en oro. Si alguien publica algo incorrecto, puedes revertirlo al estado anterior en segundos, sin tener que reescribir nada.

El sistema de revisiones que Drupal ya trae

Drupal incluye un sistema de revisiones en su núcleo. Cada vez que guardas un contenido, Drupal puede crear una nueva revisión que almacena el estado completo de ese contenido en ese momento: todos los campos, las referencias a entidades y los metadatos.

Cómo activar las revisiones

Se activan por tipo de contenido. En la configuración de cada tipo, dentro de "Opciones de publicación", marcas "Crear nueva revisión" como comportamiento por defecto. A partir de ahí, cada vez que un editor guarde un contenido, se genera una revisión automáticamente. Sin que tenga que hacer nada especial.

Qué se guarda en cada revisión

Cada revisión almacena:

  • El contenido completo de todos los campos tal y como estaban en ese momento.
  • Quién hizo el cambio.
  • Cuándo se hizo.
  • Un mensaje de revisión opcional donde el editor puede explicar qué tocó y por qué.
  • El estado de moderación (si usas Content Moderation).

Navegando entre revisiones

Desde la pestaña "Revisiones" de cualquier contenido puedes:

  • Ver la lista completa de revisiones con su fecha, autor y mensaje.
  • Revertir a cualquier revisión anterior (marcarla como la actual).
  • Eliminar revisiones que ya no necesites, si tienes el permiso.

Content Moderation: más allá de "publicado" y "no publicado"

El módulo Content Moderation, que viene incluido en el núcleo de Drupal desde la versión 8.5, te permite definir estados de publicación personalizados y las transiciones entre ellos. Ya no estás limitado al binario publicado/no publicado.

Los estados típicos

Un flujo editorial estándar suele tener estos estados:

  • Borrador (Draft): el contenido está en preparación. Solo lo ven el autor y los editores.
  • En revisión (Review): el contenido se ha enviado para que lo revise alguien con más criterio (un editor senior, un responsable de área).
  • Publicado (Published): el contenido está visible para todo el mundo.
  • Archivado (Archived): el contenido se ha retirado de la publicación pero se guarda para consulta interna.

Quién puede hacer qué

Las transiciones definen los movimientos permitidos entre estados y quién puede realizarlos:

Transición Desde Hasta Quién puede
Crear borrador (nuevo) Borrador Redactor, Editor
Enviar a revisión Borrador En revisión Redactor, Editor
Aprobar En revisión Publicado Editor senior
Rechazar En revisión Borrador Editor senior
Despublicar Publicado Borrador Editor senior, Admin
Archivar Publicado Archivado Admin
Restaurar Archivado Borrador Admin

Con esto te aseguras de que nada se publica sin pasar por el filtro que la organización ha definido.

Cómo se configura

El proceso es bastante directo:

  1. Activar el módulo en Administración > Extensiones.
  2. Ir a Administración > Configuración > Flujos de trabajo > Flujos de trabajo editorial.
  3. Crear un flujo nuevo o editar el existente.
  4. Definir los estados que necesitas.
  5. Definir las transiciones permitidas.
  6. Asignar el flujo a los tipos de contenido que quieras.
  7. Configurar los permisos de cada transición en Administración > Personas > Permisos.

Módulo Diff: ver qué ha cambiado entre versiones

El módulo Diff es el complemento perfecto del sistema de revisiones. Te permite comparar dos revisiones de un mismo contenido y ver las diferencias de forma visual, como cuando haces un diff en Git.

Qué puede hacer

  • Vista lado a lado: las dos versiones en columnas, con las diferencias resaltadas.
  • Vista unificada: los cambios en línea, con lo eliminado tachado y lo añadido resaltado.
  • Comparación libre: puedes elegir qué dos revisiones comparar, no solo la actual con la inmediatamente anterior.
  • Todos los tipos de campo: texto plano, texto con formato, imágenes (muestra las miniaturas), referencias a entidades...

Configuración

Instalas el módulo y listo: automáticamente aparece la opción de comparar revisiones en la pestaña "Revisiones". Puedes ajustar qué campos entran en la comparación y cómo se muestran las diferencias, pero el comportamiento por defecto ya es bastante bueno.

Workbench Suite: para equipos editoriales grandes

Content Moderation cubre lo básico, pero si tu equipo editorial es grande y tiene una estructura compleja, la suite Workbench te ofrece funcionalidades extra:

Workbench Access

Permite segmentar el acceso por secciones. El editor de "Noticias" solo ve y modera contenidos de "Noticias", sin poder tocar los de "Productos" o "Blog". La segmentación se basa en taxonomías o en la estructura del menú.

Workbench Email

Notificaciones automáticas cuando un contenido cambia de estado. El editor senior recibe un aviso cuando hay cosas pendientes de revisar. El redactor recibe una notificación cuando su contenido se aprueba o se rechaza, con los comentarios del revisor.

Workbench Moderation (legacy)

En versiones antiguas de Drupal era el módulo de referencia para flujos editoriales. En Drupal 10+, Content Moderation del núcleo ha absorbido casi toda su funcionalidad, pero puede que te lo encuentres en proyectos heredados.

Admin Audit Trail: el registro de todo

El módulo Admin Audit Trail (a veces llamado Audit Log) registra con detalle las acciones que realizan los usuarios en el sitio. Es la pieza clave para la auditoría.

Qué registra

  • Creación, edición, eliminación y cambios de estado de contenidos.
  • Cambios en la configuración del sitio.
  • Inicios y cierres de sesión.
  • Cambios en roles y permisos.
  • Instalación y desinstalación de módulos.
  • Acciones sobre menús, taxonomías, bloques y vistas.

Qué incluye cada registro

Cada entrada del log te dice:

  • Cuándo pasó (fecha y hora).
  • Quién lo hizo (usuario).
  • Qué tipo de acción fue (crear, editar, eliminar, cambiar estado).
  • Qué se vio afectado (qué contenido, qué configuración).
  • Los detalles del cambio (valores anteriores y nuevos, cuando aplica).
  • Desde dónde (dirección IP del usuario).

Retención y exportación

Los registros de auditoría se pueden configurar para:

  • Conservarse durante el tiempo que necesites (6 meses, 1 año, 5 años...).
  • Exportarse en CSV o JSON para analizarlos con otras herramientas.
  • Integrarse con sistemas SIEM si necesitas correlacionar eventos de seguridad.

Seguimiento de actividad de usuarios

Además de auditar el contenido, a veces necesitas saber qué hacen los usuarios en general, sobre todo cuando manejan contenido sensible:

Módulos que te ayudan

  • Login Security: registra intentos de login (los que funcionan y los que no), bloquea cuentas tras varios intentos fallidos y envía alertas.
  • Session Limit: controla cuántas sesiones simultáneas puede tener un usuario. Evita que una misma cuenta se use desde varios dispositivos a la vez.
  • User Activity: registra las páginas que visita cada usuario autenticado. Útil para entender patrones de uso y detectar cosas raras.

Publicación programada

La publicación programada te permite decidir con antelación cuándo un contenido pasa de borrador a publicado, o cuándo se despublica automáticamente. Viene muy bien para:

  • Campañas con fecha de inicio y fin.
  • Comunicados que tienen que salir a una hora concreta.
  • Contenidos estacionales que aparecen y desaparecen periódicamente.
  • Embargos informativos.

Cómo se hace

El módulo Scheduler te permite poner fecha y hora de publicación (y opcionalmente de despublicación) en cada contenido. Se lleva bien con Content Moderation para gestionar las transiciones de estado de forma automática.

Eso sí, necesitas que el cron de Drupal se ejecute con frecuencia suficiente: al menos cada 5 minutos si te importa la precisión en los horarios.

Content Lock: que nadie pise a nadie

Este es un problema clásico: dos editores abren el mismo artículo para editarlo a la vez, y cuando el segundo guarda, machaca todo lo que hizo el primero. El módulo Content Lock lo resuelve de forma sencilla:

Cómo funciona

  • Cuando un editor abre un contenido para editarlo, el módulo lo bloquea.
  • Si otro editor intenta editarlo, ve un aviso diciendo quién lo tiene abierto y desde cuándo.
  • El bloqueo se libera cuando el editor guarda, cancela o después de un rato de inactividad (configurable).
  • Los administradores pueden desbloquear a mano si hace falta.

Configuración

Se configura por tipo de contenido. Puedes activarlo en los artículos largos (donde el riesgo de pisarse es real) y dejarlo desactivado en las noticias cortas que raramente editan dos personas a la vez.

Estrategias de archivado: que no se te llene la base de datos

Con el tiempo, las revisiones se acumulan. Un artículo que se edita a menudo puede tener cientos de revisiones, y eso acaba pesando en la base de datos y complicando la navegación del historial.

Políticas de retención

  • Por número: quedarte con las últimas 50 revisiones de cada contenido y borrar el resto.
  • Por tiempo: conservar revisiones de los últimos 12 meses y archivar o eliminar las anteriores.
  • Por importancia: conservar siempre las revisiones de publicación/despublicación y purgar las intermedias.
  • Mixta: combinar criterios. Por ejemplo, todo del último año más las revisiones de publicación de años anteriores.

En la práctica

El módulo Node Revision Delete permite configurar políticas automáticas de limpieza de revisiones antiguas, por tipo de contenido y con los criterios que necesites.

Si tu sector exige conservarlo todo, las revisiones eliminadas de la base de datos activa se pueden exportar antes a un sistema de archivo externo: otra base de datos, almacenamiento en la nube o un gestor documental.

Requisitos por sector: cada uno con sus plazos

Cada sector tiene sus propias exigencias en cuanto a trazabilidad del contenido:

Sector Qué exige Cuánto tiempo
Financiero Trazabilidad de información publicada 5-10 años
Farmacéutico Control de cambios en info de producto Vida del producto + 5 años
Administración Pública Transparencia y acceso a información Indefinido
Sanitario Trazabilidad de información al paciente 5 años mínimo
Legal Evidencia de publicación en fecha Variable
Educación Registro de cambios en material formativo Duración del programa + 3 años

Drupal puede cumplir con todos estos requisitos si lo configuras bien. Lo importante es definir la política de retención antes de empezar el proyecto y configurar los módulos desde el día uno.

Diseño de permisos: la pieza que lo une todo

Un sistema de versiones y auditoría solo funciona si los permisos están bien montados. La configuración tiene que reflejar cómo trabaja realmente tu equipo:

Los roles que suelen hacer falta

  • Redactor: crea borradores y los envía a revisión. No puede publicar directamente.
  • Editor: revisa, modifica y aprueba contenidos. Puede revertir revisiones.
  • Editor senior / Jefe de redacción: puede hacer de todo a nivel editorial, incluyendo archivar y eliminar. Tiene acceso a los logs de auditoría.
  • Administrador de contenido: gestiona la configuración del flujo editorial y los permisos. No tiene por qué editar contenido.

El principio de mínimo privilegio

Cada rol debe tener solo los permisos que necesita, ni uno más. El redactor no necesita poder borrar contenidos ni mirar los logs de auditoría. El editor no necesita tocar la configuración del flujo editorial. Parece obvio, pero es algo que se descuida mucho.

Permisos concretos que configurar

  • create [tipo] content: quién crea cada tipo de contenido.
  • edit own [tipo] content / edit any [tipo] content: quién edita lo suyo y quién edita lo de cualquiera.
  • use [transición] transition: quién puede hacer cada transición de estado.
  • view [tipo] revisions: quién ve el historial.
  • revert [tipo] revisions: quién puede volver a una revisión anterior.
  • delete [tipo] revisions: quién puede borrar revisiones.
  • access audit log: quién puede ver los registros de auditoría.

Guía de implementación: paso a paso

Para que tengas una referencia práctica, este es el proceso que recomendamos para montar todo el sistema:

Fase 1: Planificación (1-2 semanas)

  1. Identificar qué tipos de contenido necesitan versionado.
  2. Definir los estados del flujo editorial y las transiciones.
  3. Mapear los roles del equipo y sus permisos.
  4. Determinar los requisitos de retención según tu sector.
  5. Documentar qué eventos hay que auditar y durante cuánto tiempo.

Fase 2: Configuración base (1 semana)

  1. Activar las revisiones en los tipos de contenido identificados.
  2. Configurar Content Moderation con los estados y transiciones que has definido.
  3. Instalar y configurar Diff.
  4. Crear los roles y asignar permisos.
  5. Instalar Content Lock donde haga falta.

Fase 3: Auditoría y notificaciones (1 semana)

  1. Instalar y configurar Admin Audit Trail.
  2. Configurar Login Security para las alertas de seguridad.
  3. Montar las notificaciones de cambio de estado (Workbench Email o un módulo a medida).
  4. Configurar Scheduler para la publicación programada.

Fase 4: Políticas de retención (3-5 días)

  1. Instalar Node Revision Delete y configurar las políticas.
  2. Montar la exportación de revisiones a archivo si es necesario.
  3. Establecer un calendario de auditoría periódica.
  4. Documentar los procedimientos.

Fase 5: Pruebas y formación (1 semana)

  1. Probar el flujo completo con usuarios de cada rol.
  2. Verificar que los logs de auditoría capturan todo lo que deben.
  3. Comprobar que las políticas de retención funcionan.
  4. Formar al equipo editorial.
  5. Documentar los procedimientos operativos.

Conclusión

El control de versiones y la auditoría editorial no son cosas que se añadan al final de un proyecto como quien pone la guinda. Son piezas estructurales que hay que diseñar desde el principio, integradas en la arquitectura del sitio y alineadas con lo que necesita el negocio y lo que exige la normativa.

Drupal te da las herramientas, tanto de serie como a través de módulos contribuidos, para montar un sistema de trazabilidad editorial tan simple o tan complejo como necesites. Lo que marca la diferencia es planificar bien, configurar con cuidado y formar al equipo que va a trabajar con el sistema día a día.

Si necesitas montar un sistema de gestión de versiones y auditoría editorial en Drupal para tu organización, Contacta con Tangram Consulting para que te asesoremos de forma personalizada según tu sector y tus requisitos concretos.

Contacta con nosotros
Fila 1