Release Notes - version 2.023.04b

Hello KoboToolbox community,

We have deployed a new release of KoboToolbox to on Wednesday, 8 February 2023 at 21:40 UTC. Deployment to finished on Monday, 13 February 2023 at 21:21 UTC.

The components comprising this release are:

  • KPI version 2.023.04b (see posts below for changes since 2.023.04 release)
  • KoBoCAT version 2.023.04
  • Enketo Express version 5.0.0 with patches (unchanged from previous release)
  • Pyxform version 1.9.0 (unchanged from previous release)

Detailed changes are listed below.


PR Description
kpi#4193 Improve account settings user interface, moving email options to the Security page.
kpi#4163 Require validation for all new email addresses to improve account security
All email addresses now require validation, not just the address used to register initially.
kpi#4207 Facilitate keyboard navigation by displaying the focus state (blue) outline
kpi#4232 Add Kosovo to countries static to available countries assignable to projects or users, departing from ISO:3166.
kpi#4252 Add __version__ in data exports
__version__ previously appeared in exports unreliably. This change includes it consistently by default and makes it available as a choice in the export settings user interface, within “Select questions to be exported”.


PR Description
kpi#4032 Remove obsolete OneTimeAuthenticationKey
Improve security by removing unused authentication mechanism
kpi#4118 Always set the __version__ calculate field with the latest version identifier, overwriting other values in imported XLSForms. Remove extraneous _version_, _version_00x_, etc. when saving forms
kpi#4141 Fix double scrollbars that sometimes were appearing after visiting one of the form sub routes.
kpi#4183 Fix the back button on the My Library page
kpi#4189 Make the list of sidebar assets scrollable
Fixes a long list of assets (drafts or deployed) breaking the UI by spanning over the end of the screen.
kpi#4190 Fix layout jumps when typing password in strength checker
Reduce layout jitter on the registration screen caused by the password strength checker.
kpi#4197 Fix form builder not saving some metadata settings
Correctly store sector, country, and description when changed in the form builder side bar
kpi#4208 Improve the text of the activation / confirmation email.
kpi#4211 Fix issue where sector and country selectors were opening outside the visible area of the “Create project: Project details” modal due to removal of the check box below them.
kpi#4253 Correct a typo in email verification template
Remove an extra " left in the email verification template
kpi#4255 Use account security URL in email verification message
kpi#4256 Restore access to Settings > General to users with change_asset permission
Users with “Edit Form” can access Settings > General again

Of interest to self-hosters

PR Description
Custom project views for regional or country teams
Add the ability for specially-designated administrators to view information about projects based on the project country. This includes access with in the user interface, API, and via asynchronous CSV exports.
kpi#4163 Support SSO authentication (tested with Azure Active Directory) for signups or login
This is based on a migration from django-registration to django-allauth.
This change also means, irrespective of SSO, that all email addresses now require validation, not just the address used to register initially.
kpi#4185 Create Model for tracking NLP usage by service provider
kpi#4216 Add NLP to service usage API
kpi#4186 Remove Intercom chat widget integration

Of interest to developers

PR Description
kobocat#863 Fix RemoteNotFoundError from pip at container startup
kpi#3974 change node version being used by github actions
Updated the update translations strings github action to use the correct version of Node.js
kpi#4049 Typescriptize AssetsTable component
Code cleanup for upcoming new feature. Moved all AssetsTable code to TypeScript and to a separate directory. Also moved a few of library files into TypeScript - mostly the ones that were touching AssetsTable.
kpi#4084 Fix Account Plan route styles
Fixes a small visual issue that caused account/plan route specific styles to be applied randomly in other places of the app.
kpi#4102 React Router 6 + Modular account pages
kpi#4104 ProjectsFilter component
A component that allows for defining a list of filters for asset listings. A filter consists of field name, condition and optional value. It’s a button that displays a modal with form for defining filters.
kpi#4108 Fix NLP merge related typescript errors
kpi#4111 MultiCheckbox component improvements
Make the frame around MultiCheckbox component optional. Add the component to design system.
kpi#4124 New color for Button component
Added light blue color for Buttons, needed for upcoming feature.
Fix compiled directory not existing on first run local dev environment
kpi#4128 Fix missing directory error when npm building
kpi#4129 ProjectsFieldsSelector component
A component allowing to configure a selection of fields. To be used in upcoming feature.
kpi#4132 Enable css modules
kpi#4136 Security route refactor
kpi#4138 Improve asset response types
Small improvements to code behind the scenes.
kpi#4151 Duplicate AssetsTable component as ProjectsTable
Internal code handling for upcoming feature.
kpi#4155 Use single source of z-indexes for styles
Introduces a better code organization. Also fixes weird looking checkbox for bulk operations in Data Table, and KoboModal appearing behind different parts of UI.
kpi#4165 Define routes for projects views
Defines /projects/my and /projects/custom/:viewuid routes with a dropdown/switcher for upcoming feature.
kpi#4166 refactor account settings page
Refactor the accounts settings page to be functional components
kpi#4167 Cleanup ProjectsTable component
Preparing code for further work. Trying to make PRs manageable in size :heart:
kpi#4169 Badge component
New Badge component with design system demo.
kpi#4178 Add support for list properties in JSON fields to query parser
Allow to use the query parser (i.e.: q=) with an easier syntax for list properties.
kpi#4179 Fix GitHub Actions pytests
Repair failing github CI pytests by removing the “Upgrade pip” step. Specify version 6.x of pip-tools when installing.
kpi#4182 Custom Views: integrate endpoints into front-end
Hooks up all the necessary parts of Project Views feature to back-end endpoints. Also updates all the missing styles.
kpi#4191 Add support for assets list ordering in project views
Allow API response to be sorted with query parameter ordering
kpi#4195 Optimize number of DB queries in asset list endpoint of ProjectView app
kpi#4196 Allow user to see asset detail if view_asset perm assigned to project view
kpi#4201 Add Storybook
kpi#4202 Fix scss lightness syntax warning
kpi#4203 Fix memory exhaustion when running standardize_searchable_fields management command
Decrease management command run time and improve its memory footprint.
kpi#4204 Use color variables from kobo-common
kpi#4206 django-allauth and SSO improvements
kpi#4222 Misc. SSO front end changes
1. Allow submitting email change using the enter key
2. Add Resend and Delete buttons for new/unverified emails
3. Styling
kpi#4225 Fix assets submission count missing with ‘view_submissions’ of project views
Returns the correct number instead of 0
kpi#4227 Allow 2FA with Single Sign-On
Display 2FA form after logging with SSO
kpi#4228 update unknown account email content
Update the content of the email sent when a password reset is requested for an email that doesn’t have an account
kpi#4230 Toolchain: Better out-of-the-box experience in VS Code
Add a kpi.code-workspace file that developers can use to configure VS Code with recommended extensions, including code linters and autoformatters.
kpi#4236 Fix reports permission issue with project views
kpi#4250 Fix wrong data being displayed when using UI too fast
Sometimes the data being displayed in the projects table for given Project View was wrong. This was caused by unfinished calls getting through after navigating to different view or applying a filter.
1 Like

A patch release 2.023.04a has been deployed to as of 15:37 on Saturday, 11 February 2023. It contains the following fixes:

PR Description
kpi#4268 Fix anonymous access regression
kpi#4264 Correct typo in signup email template
Fixes an extra " typo in the sign-up email template

There is a known issue (already present in the previous release) where an “Authentication credentials were not provided” message appears when accessing a project anonymously. This message can be ignored, and it will be removed in a future release.


A few minor fixes applicable only to self-hosters have been included in a new patch release: 2.023.04b. Deployment of this patch is complete on both humanitarian and non-humanitarian servers as of 21:21 UTC on 13 February 2023.

PR Description
kpi#4273 Fix standardize_searchable_fields management command crash and slowness
kpi#4274 Increase time limit on celery timer for Forms by Submissions Count report
Increase the time limit for the Forms by Submissions Count superuser report from the default to 70 minutes
1 Like