Content Sync Toolkit 1.0.0-beta.3: Más Rápido en Sitios Grandes
Tabla de contenidos
En la primera publicación presenté el Content Sync Toolkit, una aplicación Sync status para Xperience by Kentico que muestra qué falta sincronizar con el destino de Content Sync. La 1.0.0-beta.3 lo hace mucho más rápido en sitios grandes, permite abrir los elementos que solo existen en el destino y corrige cómo se comparan los idiomas con respaldo.
Instalar o Actualizar
Actualiza el paquete en ambas instancias, el origen y el destino de Content Sync:
dotnet add package XperienceCommunity.ContentSyncToolkit --version 1.0.0-beta.3
El registro no cambia:
builder.Services.AddContentSyncToolkit();
// En la instancia de origen: agrega la aplicación Sync status.
builder.Services.AddContentSyncToolkitAdmin();
Más Rápido en Sitios Grandes
Antes de pasar a nuevas funcionalidades, quería asegurarme de que el toolkit responde bien en un sitio grande. Así que llené un par de instancias de prueba con 20.000 páginas y 20.000 elementos del content hub cada una, y medí.
La beta.2 tardaba unos cuatro segundos en abrir la pestaña Pages, y más de ocho en refrescarla. La causa era cómo cada instancia leía su contenido: en páginas pequeñas de 500 elementos, con todos los campos de cada tipo de contenido, cuando la comparación solo necesita unos pocos. La beta.3 lee los elementos en lotes de 5.000, cada uno a partir de donde terminó el anterior, y pide solo las columnas que usa:
| 1.0.0-beta.2 | 1.0.0-beta.3 | |
|---|---|---|
| Pestaña Pages: abrir, paginar, filtrar | ~4,0 s | ~0,35 s |
| Pestaña Pages: Refresh | 8,4 s | 0,9 s |
| Pestaña Content hub: abrir, paginar, filtrar | ~2,0 s | ~0,25 s |
| Pestaña Content hub: Refresh | 4,0 s | 0,6 s |
La copia de la lista del destino que el origen guarda durante un minuto y medio también es más liviana: de unos 12 MB a 7 MB con ese volumen. Los editores cuyas páginas se filtran por permisos de página ven unos 0,75 segundos por solicitud, porque hay que revisar cada página.
Para asegurarme de que nada cambiara en el camino, exporté todas las listas de ambas versiones, de ambas instancias, cada pestaña y los dos idiomas, y las comparé campo por campo: más de 160.000 elementos, todos idénticos.
Elementos Solo en el Destino
Content Sync puede agregar y actualizar contenido, pero no eliminarlo. Cuando eliminas una página en staging después de haberla sincronizado, se queda en producción, y el toolkit la muestra como Only on target. Hasta ahora, lo único que podía hacer era decirte que la eliminaras allí.
Ahora el nombre del elemento (su ruta en la pestaña Pages) es un enlace, marcado con ↗, que abre su editor en el destino en una pestaña nueva. Desde ahí puedes eliminarlo, despublicarlo con una redirección o programar la despublicación. Inicias sesión en el destino con tu propia cuenta, y se aplican sus permisos.

El enlace funciona sin configurar nada: usa la URL del destino de Content Sync, más /admin. Si la administración de producción está en otra dirección, hay una opción para indicarla.
Idiomas con Respaldo
Cuando un idioma tiene otro de respaldo, por ejemplo español con inglés, las consultas de contenido de Xperience devuelven la versión de respaldo de cada elemento que no está traducido. El toolkit las listaba como si existieran en español: en mi sitio de prueba, la vista en español mostraba 20.279 páginas cuando solo 9 tenían versión en español. Content Sync sincroniza un idioma a la vez, y no puede sincronizar un elemento en un idioma en el que no tiene versión.
La beta.3 lista solo los elementos traducidos al idioma seleccionado. Eso además corrigió dos problemas menores: los elementos traducidos ahora muestran sus nombres en español, y un elemento que nunca se publicó en español ya no aparece como publicado.
Actualización
Actualiza ambas instancias. Un destino con la beta.2 sigue funcionando con un origen con la beta.3, pero sus elementos Only on target no tienen enlace, y sigue incluyendo los elementos sin traducir en un idioma con respaldo.
La versión se verificó en ambos extremos del rango soportado, Xperience by Kentico 30.8.0 y 31.9.1. Consulta Compatibility.md para el registro completo. Todavía es una beta, así que las APIs y el comportamiento pueden cambiar antes de la 1.0.0.
Lo Que Sigue
Estoy revisando los elementos eliminados en el origen que siguen en su papelera de reciclaje: mientras estén ahí, puedes retirarlos de producción solo con Content Sync, sin iniciar sesión en producción. El feedback es bienvenido mediante issues en GitHub, y la guía de uso tiene los detalles de configuración y uso.
Eso es todo por hoy.
¡Hasta la próxima publicación!