4.4.0 release notes
Check the repository for the latest known issues.
The deprecated hardcoded
national_admin role no longer behaves as a CouchDb admin. The role now behaves as an ordinary online user role, with no additional implicit permissions.
national_admin role can either switch to using a CouchDb admin for admin-only tasks and/or granting more permissions to
CHT dialogs were updated to align with Material guidelines. This includes updating the visual design and text of dialogs to align with best practices.
As part of this work, some translation keys changed. We have provided translations for all of the languages officially supported by CHT (English, Spanish, French, Indonesian, Hindi, Nepali, Bambara, Swahili). If you have a custom language and have any of these features, you will need to translate these in your configuration files.
Bulk delete reports dialog
bulkdelete.confirm.title: used for the modal title when deleting one report
bulkdelete.confirm.title.plural: used for the modal title when deleting multiple reports.
Edit SMS message group dialog
edit_message_group.modal.title: used for the modal title
Report a bug dialog
feedback.modal.submit: used for the modal submit button label.
Navigation when form not saved dialog
confirm.destructive.navigation.title: used for the modal title
confirm.destructive.navigation.submit: used for the modal submit button label.
Training cards dialog
training_cards.confirm.title: used for the modal title
Confirmation when verifying a report dialog
confirm.verification.title: used for the modal title
confirm.verification.submit: used for the modal submit button label.
#8390: Align “dialog” components with Material design guidelines
Upgrading CouchDb to v3.3.2
CouchDb 3 was released in 2020. It packs security fixes, performance and scalability improvements and a plethora of bug fixes.
Most notable features are:
- Improved clustering and node management APIs
- Adding the
_reshardendpoint, which allows splitting a shard into two shards. In CouchDb v2, adding additional shards was not possible without creating a new database with the desired number of shards, and replicating existent data to the new database. For the CHT, this meant that all users would need to re-sync if additional shards were added.
- Adding a new
_prometheusendpoint, which exposes CouchDb metrics and can be used out of the box in monitoring visualisation tools, like the CHT Watchdog.
- Improved security, where database creation and writes/reads are no longer allowed for all users by default.
- Improved security, where only CouchDb admins are allowed to add/edit/delete users.
- Dramatically improved multi-core CPU usage, resulting in better performance when running on powerful machines. This results in a 1.5x improvement of request time across the board, with some endpoints being up to 10x faster.
Replication performance improvement by persistent caching of purged doc ids
CouchDb request performance analysis has revealed that approximately 25% of CPU time was used querying to determine which documents have been purged for users that are replicating. Because purging is an action that runs on a schedule, relatively infrequently due to how performance expensive it is, caching results from these very expensive queries significantly improves server-side performance.
As of 4.4.0, the CHT caches the purged doc ids for each user that replicates. The cache is reset when purging runs next time and when user replication settings change. This means that, for every connected user, purged docs are only queried once per purging timeframe, when the user first syncs or replicates.
This leads to significant improvements in subsequent replication requests.
4.3.0 vs 4.4.0 Average Synchronization Times
- #6514: Migrate from SW-Precache to Workbox
- #8179: nginx and haproxy should respect
Acceptheaders when responding with error templates
- #8390: Align “dialog” components with Material design guidelines
- #8442: Telemetry geolocation:failure events for geolocation should be unique
- #8498: Remove targets disable admin option
- #8506: Update browser support notice to match official versions
- #8511: Update configuration deployment action to use latest cht-conf
- #8443: Masking credentials
- #6289: Upgrade to CouchDB v3
- #8238: Figure out a different way to use purged docs cache
- #8451: Add support for HTTP/2 in nginx
- #6180: Any text containing back ticks looks weird in the webapp
- #8081: Add contact_type and place_id to contacts exported by
- #8243: Can’t turn off permissions for
national_adminrole in admin app
- #8490: API crashes when CouchDB is overloaded
- #8527: Unable to build nginx with symlinks in some environments
- #6132: Files containing tests should use the .spec.js extension
- #8306: Replace grunt with npm scripts
- #8414: Flaky test: sms-gateway api returns list and updates state
- #8459: Update nginx to latest
- #8469: Scalability suite fails because Jmeter version no longer exists
- #8494: Update lodash
- #8516: Remove unused /api/auth/ endpoint
- #8518: Encode parameters being used in credentials url
- #8522: Flaky test: More Options Menu - Offline User all permissions disabled
- #8524: Remove sub-scripts from package.json
- #8533: Ignore unimportant step failures in CI build
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.