This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+2 more
Summary
AI summarySnap: authoritative database setting enables controlled MongoDB↔Ferretdb switching with graceful failure handling.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
`database` setting becomes authoritative; `snap run wekan.database mongodb|ferretdb` switches DB with no‑downtime handling. `database` setting becomes authoritative; `snap run wekan.database mongodb|ferretdb` switches DB with no‑downtime handling. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | High |
MongoDB → FerretDB migration now skips dotted collections (GridFS, CollectionFS) and aborts cleanly on failure. MongoDB → FerretDB migration now skips dotted collections (GridFS, CollectionFS) and aborts cleanly on failure. Source: llm_adapter@2026-07-15 Confidence: high |
— |
Full changelog
v9.94 2026-07-15 WeKan ® release
This release adds the following new features:
- Snap: the
databasesetting is now authoritative, with asnap run wekan.database mongodb|ferretdbcommand and no-downtime handling of a failed migration
(snap-src/bin/wekan-database,snap-src/bin/wekan-control,snap-src/bin/mongodb-control,
snap-src/bin/ferretdb-control,snap-src/bin/migration-control,snap-src/bin/migration-pending).
Previously the control scripts force-switched to FerretDB whenever a*.sqlitefile
existed, sosnap set wekan database=mongodbwould not stick and there was no way to keep
WeKan on MongoDB while fixing a migration — a failed migration meant downtime. Now the
databasesetting decides which database WeKan runs on, andsnap run wekan.database mongodbswitches WeKan to MongoDB (and pauses auto-migration,migrate=off) while
snap run wekan.database ferretdbswitches to the migrated FerretDB. Auto-migration can
be paused withsnap set wekan migrate=offand, crucially, a migration that FAILS now pauses
itself and hands back to MongoDB automatically (migration-controlfail_and_run_mongodb)
so WeKan keeps working on MongoDB instead of retrying-and-failing every start; re-run it with
snap run wekan.migrate. A successful migration also restartswekan.wekanso it
reconnects to FerretDB. The only remaining auto-override is the safety guard that refuses to
start an empty FerretDB while MongoDB still holds data. Thanks to xet7.
and fixes the following bugs:
- Snap: the MongoDB → FerretDB migration failed on GridFS collections and left a half-migrated
database behind (releases/migrate-mongodb-to-ferretdb.mjs,
snap-src/bin/migrate-mongo3-to-ferretdb.mjs,snap-src/bin/migration-control). FerretDB v1
rejects collection names containing a dot ("invalid key: 'attachments.chunks' (key must not
contain '.' sign)"), and the importers tried to copy the GridFS internals collections
(attachments.chunks,attachments.files,avatars.*,cfs_gridfs.*) and the CollectionFS
cfs.<bucket>.filerecordcollections as text, so the migration aborted. Now the text phase
skips every dotted collection — none of WeKan's real data collections contain a dot, and
the dotted ones are all GridFS internals (extracted in the file phase), CollectionFS
filerecords (turned into bareattachments/avatarsrecords in the file phase, now created
with an upsert) orsystem.*collections. And crucially, when a migration fails partway it
now deletes the partial FerretDB SQLite it wrote (migration-control's
discard_partial_ferretdb): otherwise that non-empty-but-incompletefiles/db/wekan.sqlite
looked "migrated" to the data check, so the snap disabled MongoDB and tried to serve an
incomplete FerretDB. Now a failed migration cleanly keeps MongoDB and retries. Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About wekan
The Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . New English strings for new features at imports/i18n/data/en.i18n.json . Non-English translations at https://app.transifex.com/wekan/wekan only.
Related context
Related tools
Beta — feedback welcome: [email protected]