4.2.0 release notes
Known issues
Check the repository for the latest known issues.
Upgrade notes
Breaking changes
None.
UI/UX changes
Floating Action Button
The additive actions (creating reports, places, people, etc…) have moved from the bottom action bar to a Floating Action Button that opens a menu with all actions. This change aligns the CHT more closely with Android UX and material design patterns, and applies to the Messages, Reports, and Contacts tab.
NOTE: The bottom action bar can be temporarily re-enabled for specific users by granting them the can_view_old_action_bar
permission; however, it will be completely removed in a future release. See the Feature Flags documentation for more information.
- #7998: Move additive actions from Action Bar to Floating Action Button
More Options menu
The Export, Edit, and Delete actions have moved from the bottom action bar to a new More Option (⋮) menu located on the top right side of the screen. This change aligns the CHT more closely with Android UX and material design patterns, and applies to the Messages, Reports, and Contacts tab.
NOTE: The bottom action bar can be temporarily re-enabled for specific users by granting them the can_view_old_action_bar
permission; however, it will be completely removed in a future release. See the Feature Flags documentation for more information.
- #7872: Move non-additive actions from Action Bar to “More Options” menu
Highlights
Training Cards
A new feature was added to help health workers learn about changes to their CHT app remotely, directly in their app. Training Card content might include information about a newly deployed feature, changes to a care guide, or simply a reminder about an underused feature or workflow. You can read more about it in the Training Cards documentation and find some template content in the resources section on the documentation site to help you get started with Training Cards.
- #6598: In app “What’s new” training cards
Support automatically creating users when contact is added
When configured, users will automatically be created when certain types of person contacts are added. No intervention from a system administrator is required in this process.
For example, a supervisor could onboard a new CHW just by creating a new person contact for them with a “create contact” form. The new user for the CHW will automatically be created and the CHW will receive an SMS message containing the token login link. This link will allow them to login as the newly created user.
You can read more about it in the transitions configuration docs!
- #7753: Allow supervisors to create health workers
Extension libraries
The extension libraries are blocks of code that are cached with the CHT web application giving app developers a powerful tool to extend the CHT. An example of a use for this feature is to provide a function to calculate a risk score based on a machine learning model. The function can then be called passing in values from app forms and return the result to be stored with the report.
Read more about this feature in the extension libraries docs
- #7824: Provide a general integration point of arbitrary JS in forms via config
Initial replication improvements
After refactoring the initial replication mechanism, which is the process of synchronizing data for the first time between the user’s device and the app’s server, it is now at least 8 times faster than before. Look at this performance comparison table:
No. concurrent users | Before (median) | After (median) |
---|---|---|
1 | 251s | 18s |
10 | 86s | 11s |
100 | 25m | 2.5m |
- #8134: Refactor initial replication to not use PouchDb replicate
And more…
Features
- #6598: In app “What’s new” training cards
- #7824: Provide a general integration point of arbitrary JS in forms via config
Improvements
- #7753: Allow supervisors to create health workers
- #7998: Move additive actions from Action Bar to Floating Action Button
- #7872: Move non-additive actions from Action Bar to “More Options” menu “⋮”
- #7902: Incorrect image tag on release
- #7926: Show a more useful error message when decrypting using a different secret
- #7947: Improve wording of the warning when upgrading
- #7964: Use _all_docs to get forms documents in API
- #8009: Display version and build number separately in the admin upgrade page
- #8093: Prevent data loss through re-sync when restoring data from backup
- #8136: Add timestamp information in feedback document log events
- #8210: Change extension libs API so libs are modules not functions
- #6281: Allow app builders to specify disabled languages in config
- #8134: Refactor initial replication to not use PouchDb replicate
Security fixes
None.
Performance improvements
None.
Bug fixes
- #7425: Schedules don’t have a default value for
start_from
- #7602: Race condition in db-object-widget
- #7603: Race condition in unloading contact content
- #7642: Successful users-info request reported as errored
- #7892: Enketo selected option highlight color changes incorrectly on drag
- #7910: Confirmation prompt for “Cancel” button in forms
- #7925: Bikram Sambat date should be validated when users are editing a report and enter an invalid date
- #7949: Nginx Environment Variables not passed along
- #7953: 4.x: Version deployed still visible in App Management release list
- #7957: Sentinel erroneously reporting target for outbound push has expired TLS cert
- #7976: Unhandled rejection when favicon not found
- #7986: Container names issue for clustered couchdb setup when running across different nodes
- #8040: API Crashes on malformed translation docs
- #8154: Race condition during sentinel startup
- #8144: Secondary risk factors are not returned if primary risk factors are present in getRiskFactorsFromPregnancy
- #8130: Haproxy stops routing during stress test
- #225: Ability to run Tasks.js and Targets.js code without Nools
- #8205: Nginx can’t connect to API after container restarts because of dynamic IP allocation
- #8213: Contact and Messages Tab: footer button scrolls with content, not staying pinned
- #8166: Haproxy crashes instance during scalability test due to high memory usage
- #8173: API Changes watcher skips changes - or becomes blocked
Technical improvements
- #7372: Update mocha to latest
- #7901: Upgrade test fails release
- #7905: GH Actions deprecation warning
- #7952: Change ECR repo alias to
medic
- #7962: Change CouchDb service names to match all hostname specs
- #7966: Flaky e2e test
Submit Default Delivery Report
- #7980: create_user_for_contacts unit test flakes
- #7992: Upgrade webapp’s angular to v15.x.x
- #8060: Update WDIO to latest
- #8062: Fix e2e test: Should verify that all tasks related with the high risk pregnancy were created
- #8067: CouchDB entry point always saves
couch_httpd_auth
andcouchdb
to cluster-credentials.ini - #8076: Update haproxy
- #8077: Add wdio retries
- #8103: Protractor test failures are not retried and failed retries clear results from previous failure
- #8151: E2E builds fail for external contributors because of allure history jobs
- #8099: Enable easy integration with certbot and nginx container
- #8024: Update scalability suite to work with 4.x
Contributors
Thanks to all who committed changes for this release!
- Samuel I.
- Gareth Bowen
- mrjones
- Diana Barsan
- Tatiana Lépiz
- Marc Abbyad
- Jennifer Q
- Joshua Kuestersteffen
- Yuvraj Rimal
- Bede Ngaruko
- Mokhtar
- Andra Blaj
- Lore
- Kenn Sippell
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.