4.3.0 release notes
Known issues
Check the repository for the latest known issues.
Upgrade notes
Continuous downwards replication (the algorithm through which offline users download docs from the server) has been completely rewritten. This change required a high number of view updates, which implies that staging this upgrade and indexing views before upgrading will be a lengthy process - depending on the size of the database. Additionally, the server might need additional storage while this process is ongoing. Users will receive the usual upgrade popup, and they will need to reload the app in order to resume replication.
Breaking changes
None.
UI/UX changes
None.
Highlights
Adding phone numbers to patients when registering via SMS
The registration transition now supports storing a phone number field for new patients. This is achieved through an additional field in the SMS form, which can be configured to be parsed and validated as a correct and, optionally unique, phone number. You can read more about it in the registration configuration
Performance improvement for downwards replication
Downwards replication has been completely rewritten to improve performance, reduce complexity, remove the necessity of deleted documents tombstones and progress towards supporting eventual consistency, in order to allow for the CHT to work seamlessly with CouchDb high availability setups (multiple replicas). There are no UI/UX changes associated with this update, however users will need to reload the app after the upgrade was successful and they receive the notification popup, in order to resume replication using the new algorithm. The endpoints that the previous replication algorithm was using have been updated or disabled.
Look at this performance comparison table:
# docs | # purged docs | # docs on device | # downloaded docs | Before(avg) | After(avg) | Difference |
---|---|---|---|---|---|---|
11000 | 0 | 11000 | 0 | 1.4s | 2.1s | 0.6 |
37000 | 0 | 37000 | 0 | 5s | 8s | 0.6 |
58000 | 0 | 58000 | 0 | 12s | 10s | 1.2 |
58000 | 25000 | 33000 | 0 | 10s | 11s | 0.8 |
58000 | 25000 | 33000 | 500 | 39s | 14s | 2.7 |
58000 | 43000 | 15000 | 0 | 10s | 11s | 0.8 |
58000 | 43000 | 15000 | 500 | 34.5s | 15.5s | 2.2 |
58000 | 43000 | 15000 | 1000 | 60s | 15.5s | 3.7 |
New Prometheus API endpoint
A new API endpoint now allows exporting API request performance. The output is formatted for the Prometheus Data Model. The endpoint is available without requiring authentication and is used by CHT-Watchdog. More details are available in API reference docs.
And more…
Features
- #8204: Support adding phone number when registering patients via SMS
- #8311: Show password when clicking on the eye icon
- #8328: Show reports of online user’s associated place and below
- #8426: Expose an API with endpoint performance metrics
Improvements
- #7163: Make the CHT Script API available for Purge.js
- #8039: Allow users to report client-side crashes via screenshots
- #8162: Monitoring sentinel when “Transitions are disabled” is difficult
- #8185: Remove Guided Tour and Welcome message
- #8280: Set default CouchDb log level to
info
ordebug
- #8389: Improve Nepali translation
- #8416: Include formatted date in API morgan logging
- #8447: Support Nepali digits in Medic ID and LMP Date
Security fixes
- #6505: Prevent users from opening and filling forms they’re not authorized to see/fill
- #8335: Use modern TLS versions
Performance improvements
- #8296: Refactor downwards continuous replication following the Nairobi protocol
Bug fixes
- #6963: Mark for outbound might create tasks for already sent jobs
- #7250: Race condition in loading contacts can cause previously selected contact to load
- #7356: Online user stuck in loading screen when offline
- #7363: Crash in Tasks/Targets system not creating feedback documents
- #7651: Tasks content page sometimes throws ExpressionChangedAfterItHasBeenCheckedError
- #8022: Angular’s
ExpressionChangedAfterItHasBeenCheckedError
exception in Reports and Contacts tabs - #8160: Duplicate outbound requests are sent when a document matches multiple config options
- #8242: Hovering over dates throws error, and default tooltip is displayed
- #8355: Fix reports review title in modal
- #8371: Upgrade cannot be initiated when there are no past
upgrade_log
entries - #8385: Show password icon not cached by service-worker
- #8396: Next page not loading properly after clicking on the back button
- #8401: Clicking on report
case_id
does not apply search filter - #8457: API fails to start because of large form attachments exceed POST allowed payload
- #8463: Offline users stuck on spinner on load until certain views are indexed
Technical improvements
- #7017: Use the Node eslint plugin to lint api and sentinel
- #7796: Clean up gruntfile obsolete tasks
- #8150: Investigate npm workspaces for monorepo
- #8184: Update initial replication scalability suite post initial replication rewrite
- #8190: Remove configuration wizard
- #8244: Upgrade e2e test fails on betas
- #8252: Flaky: ci-e2e-integration - token login
- #8273: Add git pre-commit hooks to stop accidental pushes to
master
as GitHub admins - #8281: Change upgrade e2e test to start upgrade from latest release instead of
master
- #8317: Split up the ci-webdriver-default action
- #8367: Webapp watch not publishing changes
- #8404: Flaky test: API changes feed should respond to changes even after services are restarted
- #8412: Flaky test: Submit a death report Should verify that the counter for the Deaths was updated.
- #8420: Flaky test: ongoing replication “before all” hook for ongoing replication
Contributors
Thanks to all who committed changes for this release!
- Kenn Sippell
- Jennifer Q
- Diana Barsan
- Tatiana Lépiz
- Bede Ngaruko
- Gareth Bowen
- Lore
- mrjones
- Njuguna Ndung’u
- Michael Kohn
- Joshua Kuestersteffen
- Binod Adhikary
- Jonathan
- Yuvraj Rimal
- Prajwol Shrestha
- Henok
Feedback
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.