Xperience Community Forms Toolkit 1.0.0: The First Stable Release
Table of Contents
In the initial toolkit post I introduced submission export, in the form cloning post I added a way to duplicate forms, and in the submission removal post I rounded things out with bulk and filtered deletion. 1.0.0 is the first stable release: the same three features, now with a locked-down public API and a couple of things fixed along the way.
Install or Update
dotnet add package XperienceCommunity.FormsToolkit --version 1.0.0
Registration is unchanged:
builder.Services.AddFormsToolkit();
// Later, while mapping endpoints:
app.MapControllers();
Each feature can also be toggled off independently, if a project only needs some of them:
builder.Services.AddFormsToolkit(options =>
{
options.EnableFormCloning = false;
options.EnableFormSubmissionExport = false;
options.EnableFormSubmissionRemoval = false;
});
What’s Stable Now
Up to this point, the README carried the usual beta disclaimer: APIs and behavior could still change. That disclaimer is gone. The public API surface, the permission model, and the behavior of export, removal, and cloning are now covered by semantic versioning — a breaking change means a new major version, not a silent update inside 1.x.
Fixed Since Beta
Submission removal also deletes each submission’s uploaded files, not just its database row. Before 1.0.0, if that file couldn’t be deleted — locked by antivirus software, a permissions issue, a transient storage error — the code logged a warning and deleted the row anyway. The submission would disappear from the list looking like a clean success, while its file stayed behind on disk with nothing left pointing to it.
That’s fixed. A submission’s row is now only deleted once its file is confirmed deleted or was already absent. If a file that exists can’t be removed, the row is left in place instead, and the administrator sees an error explaining why rather than silence:
Only 0 of 1 selected submissions could be deleted. An uploaded file could not be removed; check the event log for details.
Thanks to @pradhankukiran for the detailed report that caught this.
Compatibility
The toolkit still targets Xperience by Kentico 30.11.0 as its minimum, but the whole feature set — export in all three formats, bulk and filtered removal, and cloning — has now been verified end to end against the latest Xperience release too, 31.8.4, using the actual packed NuGet package rather than just a project reference.
Worth calling out specifically for export: Xperience’s own 31.8.0 refresh added a native CSV export button to the Submissions listing. It coexists fine with this toolkit’s Advanced export and Export selected — nothing conflicts — but if you’re on 31.8.0 or newer, you’ll now see two export entry points on that screen instead of one. See Compatibility.md for the full verification record and the reasoning behind keeping the toolkit’s own labels as they are.
A Community Project
This is still a community project maintained by SimpleA and me, not an official Kentico product, released under the MIT License. Reaching 1.0.0 doesn’t change that — it just means the API underneath it is a promise now instead of a moving target. Contributions and feedback are welcome through GitHub issues and pull requests.
For complete setup and usage details, check the project README and usage guide.
That’s it for today.
Until the next post!