Search by

dbravoan / dbcms-module-content-audit

dbravoan

Flujo editorial de calidad, inferencia de capacidad de publicación por roles, cola de aprobación previa, notificaciones automáticas y control exhaustivo de cambios con comparador visual (Diff) de versiones.

Package info

github.com/dbravoan/dbcms-module-content-audit

Type:dbcms-module

pkg:composer/dbravoan/dbcms-module-content-audit

Statistics

Installs: 13

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-11-05 15:41 UTC

This package is auto-updated.

Last update: 2026-11-06 07:14:00 UTC


README

Qué hace

dbravoan/dbcms-module-content-audit implementa el flujo editorial compartido. content_audit debe estar instalado/activo y su ajuste de flujo habilitado para aplicar revisión. Guardar crea una versión privada; enviar a revisión no sustituye lo publicado. El revisor necesita permisos de aprobación y acceso a la entidad. Un ID de revisión no concede acceso. Abre la revisión para obtener un token vigente: cambios del borrador o contenido publicado invalidan la aprobación.

Los snapshots conservan atributos canónicos, traducciones completas, secciones, mercados y relaciones propias. Restaurar es transaccional. Desactivar conserva historial sin inventar derechos ni restaurar contenido borrado. Aprobar una acción MCP/AI es independiente de la aprobación editorial.

El módulo implementa DbCms\Core\Content\Contracts\EditorialWorkflowInterface. Los escritores terminan su mutación compartida antes de finalizar el snapshot, en la misma transacción. Los listados de cambios cargan metadatos; snapshots/diffs solo en el detalle solicitado.

Requisitos y dependencias

  • dbravoan/dbcms-core ^1.0
  • Identificador CMS: content_audit

Instalación y activación

Instala el paquete con Composer e instálalo/actívalo en el CMS (content_audit).

Configuración

Ajustes del módulo (claves por nombre):

  • is_enabled
  • audited_roles
  • approver_roles
  • audited_entities
  • auto_publish_on_approval
  • track_all_modifications
  • require_rejection_reason
  • enforce_editorial_quality
  • min_anti_ai_score
  • notify_in_app
  • notify_email

Rutas

Rutas de revisiones/historial en el panel (código Http/ / Routes/).

Comandos Artisan

  • content-audit:privacy — firma: content-audit:privacy {action : export, erase or prune} {kind=revisions : revisions or histories} {--id=* : Explicit owned record IDs} {--verified : Identity, scope and third-party rights were checked} {--retention-released : Documented retention review permits release}

Permisos

  • audit:approve
  • manage:modules
  • access:admin

Privacidad y datos

Antes de registrar revisiones configura legal.processing revisado para content_audit: finalidad editorial real, base jurídica, destinatarios, transferencias y conservación. Al instalar o activar el módulo, un aviso enlaza con la pantalla de privacidad del panel si el tratamiento está incompleto. El responsable debe revisar y guardar los datos allí; hasta entonces se impide guardar contenido auditado. También puede configurarse mediante privacy:configure como se describe en el contrato de extensiones. El historial incluye snapshots/diffs completos, identificadores/nombres de actor, títulos, notas y motivos de rechazo. Las nuevas revisiones no guardan IP ni user-agent.

Ejecuta mediante Sail; las solicitudes de derechos requieren IDs explícitos y revisión de identidad/alcance. Los exports pueden contener contenido de terceros; revísalos antes de entregar y elimínalos tras atender la solicitud.

./vendor/bin/sail artisan content-audit:privacy export histories --id=AUDIT_ID --verified
./vendor/bin/sail artisan content-audit:privacy erase revisions --id=REVISION_ID --verified
./vendor/bin/sail artisan content-audit:privacy prune

retention_days finito permite retirar revisiones sustituidas vencidas. Una revisión pendiente conserva toda su cadena; si no hay pendientes se conservan las dos últimas revisiones y la versión actual de restauración. No se reescriben snapshots/diffs retenidos: borrar una fila antigua no elimina copias protegidas.

Solo se borra un historial completo cuando su entidad ya fue eliminada, tiene estado deleted, no quedan revisiones pendientes y venció su conservación. Usa erase histories --id=AUDIT_ID --verified --retention-released tras revisión documentada. La retención manual requiere ese flag y conserva la ventana editorial de treinta minutos. No libera una cadena activa de restauración. Los comandos siguen disponibles instalado/inactivo; programa limpieza con el scheduler de la aplicación. Consulta el contrato de extensiones.

La revisión y el historial ofrecen una comparación visual de las versiones, con idioma y mercado compartidos, desplazamiento independiente y pantalla completa. El tema, menús y contenido relacionado utilizan el contexto actual; los detalles técnicos permanecen disponibles bajo el comparador. Los formularios y acciones de las vistas no se pueden enviar desde la previsualización.

Enlaces