Un Toolkit de Sincronización de Contenido para Xperience by Kentico
Tabla de contenidos
He creado un nuevo proyecto open-source para Xperience by Kentico: Xperience Community Content Sync Toolkit.
Content Sync permite a los editores enviar páginas y elementos del content hub de una instancia a otra, por ejemplo de staging a producción. El toolkit la complementa con una vista de lo que está listo para sincronizar: una aplicación Sync status, dentro de Content management, que compara una instancia con su destino de Content Sync.
Primeros Pasos
La beta más reciente, 1.0.0-beta.2, está disponible para Xperience by Kentico 30.8.0 o superior. Instálala en ambas instancias, el origen y el destino de Content Sync:
dotnet add package XperienceCommunity.ContentSyncToolkit --version 1.0.0-beta.2
Regístrala en Program.cs:
builder.Services.AddContentSyncToolkit();
// En la instancia de origen: agrega la aplicación Sync status.
builder.Services.AddContentSyncToolkitAdmin();
No hay nada más que configurar. El toolkit usa la configuración de Content Sync de Xperience, así que siempre compara contra el destino al que Content Sync envía el contenido. Asigna el permiso View de Sync status a los roles que lo necesiten.
Qué Falta por Sincronizar
La aplicación tiene dos pestañas, Pages y Content hub. Cada una lista los elementos de un canal web o de un workspace, en un idioma, con un estado por elemento. El color indica qué hacer, y la etiqueta indica qué es distinto:
- Rojo, Incompatible: la sincronización fallaría, así que un desarrollador tiene que actualizar el destino primero.
- Naranja, Unpublished, New, Changed, Moved o Reordered: puedes sincronizarlo, y la etiqueta indica qué cambiaría la sincronización.
- Gris, Not published u Only on target: una sincronización no puede cambiarlo por ahora.
- Verde, In sync: no hay nada que hacer.

La lista empieza por lo que requiere atención. Hide items in sync muestra solo lo que difiere, y el filtro de estado permite elegir varios estados a la vez. Cada fila abre el elemento en su editor. Para sincronizarlo, usa las acciones propias de Kentico: Sync this page en el árbol de páginas para una página, o Sync en la lista del Content hub para un elemento de contenido.
Los tooltips explican cada caso. Content Sync falla con elementos cuyo tipo de contenido, idioma, canal o workspace no existe en el destino, o existe con campos distintos. El toolkit lo verifica antes de que lo intentes, con el mismo mensaje que el diálogo de sincronización de Kentico:

Mover o reordenar páginas no las vuelve a publicar, y Content Sync solo transfiere un nuevo orden cuando se sincroniza el nivel completo. Si solo se sincronizaron algunas páginas de un nivel, el toolkit marca el nivel, nombra la página que quedó fuera de lugar e indica qué sincronizar:

También indica cuándo algo todavía no se puede sincronizar: un elemento despublicado y luego editado de nuevo no tiene una versión publicada, y un elemento editado sin publicar mantiene su estado, porque Content Sync solo envía la versión publicada.
Los editores solo ven lo que ya pueden ver en Xperience: los canales y workspaces a los que tienen acceso, y las páginas que pueden ver en el árbol de páginas.
Un Proyecto de Comunidad
Este es un proyecto de comunidad mantenido por SimpleA y por mí. No es un producto oficial de Kentico. Es una beta: compara fechas de publicación, estado de publicación y posición de las páginas, no los valores de los campos, y todavía no se ha probado en un entorno SaaS real. El proyecto está publicado bajo licencia MIT, y las contribuciones y el feedback son bienvenidos mediante issues y pull requests en GitHub.
Los indicadores de estado dentro del árbol de páginas y del Content hub de Xperience están planificados para versiones futuras. Para detalles de compatibilidad y la guía completa de uso, visita el repositorio del Content Sync Toolkit.
Eso es todo por hoy.
¡Hasta la próxima publicación!