After upgrading to Stalwart 0.16.10, I wanted to clean up some old Sieve scripts. I recently migrated from Roundcube to Bulwark, and Bulwark was able to import and use the existing filters created with the Roundcube tag. However, I was unable to delete or manage them properly.
I then logged into the affected user’s account through the Stalwart admin console, but no Sieve scripts were visible. While investigating, I noticed several JMAP log entries reporting invalid result references related to SieveScript/query, suggesting that something was not working correctly between the WebUI and the backend. I then noticed that a newer version of the WebUI was available. To force the update, I temporarily reduced the Web Application update interval and updated the WebUI. After the update, the issue was resolved and I could finally view and manage the user’s Sieve scripts from the Stalwart admin interface.
This experience led me to a few suggestions:
- Display the current WebUI version somewhere in the interface (ideally in the sidebar footer, but the header near the logo could also work).
- Display when a newer WebUI version is available, similar to how many applications notify administrators of available updates.
- Add a built-in “Update WebUI” action with a confirmation dialog showing the release notes/changelog before updating.
- Keep a backup of the previous WebUI version to allow rollback if an update causes issues.
- Perform WebUI updates without requiring a server restart whenever possible.
- Add webhook/log events for Web Application updates, including fields such as:
- Application name
- Previous version
- New version
- Update date/time
- Resource URL
- If such events do not already exist, consider adding them for observability and auditing purposes.
I believe these additions would make WebUI management easier, especially when troubleshooting issues that may already be fixed in a newer WebUI release.