En la publicación inicial del toolkit presenté la exportación de envíos, en la publicación de clonación de formularios agregué una forma de duplicar formularios, y en la publicación de eliminación de envíos completé el conjunto con eliminación masiva y por criterio. 1.0.0 es la primera versión estable: las mismas tres funcionalidades, ahora con una API pública fija y un par de cosas corregidas en el camino.

Instalar o Actualizar

dotnet add package XperienceCommunity.FormsToolkit --version 1.0.0

El registro no cambia:

builder.Services.AddFormsToolkit();

// Más adelante, al mapear endpoints:
app.MapControllers();

Cada funcionalidad también se puede desactivar de forma independiente, si un proyecto solo necesita algunas de ellas:

builder.Services.AddFormsToolkit(options =>
{
    options.EnableFormCloning = false;
    options.EnableFormSubmissionExport = false;
    options.EnableFormSubmissionRemoval = false;
});

Qué Queda Estable Ahora

Hasta este punto, el README incluía la advertencia habitual de beta: las APIs y el comportamiento todavía podían cambiar. Esa advertencia desaparece. La superficie de la API pública, el modelo de permisos y el comportamiento de exportación, eliminación y clonación ahora están cubiertos por versionado semántico: un cambio incompatible implica una nueva versión mayor, no una actualización silenciosa dentro de 1.x.

Corregido Desde la Beta

La eliminación de envíos también borra los archivos adjuntos de cada envío, no solo su fila en la base de datos. Antes de 1.0.0, si ese archivo no podía eliminarse —bloqueado por un antivirus, un problema de permisos, un error transitorio de almacenamiento—, el código registraba una advertencia y eliminaba la fila de todos modos. El envío desaparecía de la lista como si todo hubiera salido bien, mientras su archivo quedaba en disco sin nada que apuntara a él.

Eso ya está corregido. La fila de un envío ahora solo se elimina una vez que su archivo se confirma eliminado, o si ya no existía. Si un archivo que sí existe no puede eliminarse, la fila se deja intacta, y el administrador ve un error explicando por qué, en lugar de silencio:

Only 0 of 1 selected submissions could be deleted. An uploaded file could not be removed; check the event log for details.

Gracias a @pradhankukiran por el reporte detallado que detectó esto.

Compatibilidad

El toolkit sigue teniendo a Xperience by Kentico 30.11.0 como mínimo, pero todo el conjunto de funcionalidades —exportación en los tres formatos, eliminación masiva y por criterio, y clonación— ya fue verificado de punta a punta también contra la última versión de Xperience, 31.8.4, usando el paquete NuGet empaquetado real y no solo una referencia de proyecto.

Vale la pena mencionar algo específico sobre exportación: la actualización 31.8.0 de Xperience agregó un botón nativo de exportación a CSV en el listado de Submissions. Convive sin problemas con Advanced export y Export selected de este toolkit —no hay conflicto—, pero si estás en 31.8.0 o superior, ahora verás dos puntos de entrada de exportación en esa pantalla en lugar de uno. Consulta Compatibility.md para el registro completo de verificación y el razonamiento detrás de mantener las etiquetas del toolkit tal como están.

Un Proyecto de Comunidad

Este sigue siendo un proyecto de comunidad mantenido por SimpleA y por mí, no un producto oficial de Kentico, publicado bajo licencia MIT. Llegar a 1.0.0 no cambia eso; solo significa que la API que hay debajo ahora es una promesa y no un objetivo en movimiento. Las contribuciones y el feedback son bienvenidos mediante issues y pull requests en GitHub.

Para detalles completos de instalación y uso, revisa el README y la guía de uso.

Eso es todo por hoy.

¡Hasta la próxima publicación!