ODK Central v2023.2

We are excited to announce a new release of ODK Central, the ODK server.

If you haven't used Central, the easiest way to get started is with ODK Cloud. ODK Cloud is official managed hosting of Central on our fast, reliable, and secure infrastructure. It's fully-managed and fully-supported so you can focus on collecting the data you need.

If you are technical and prefer to self-host and rely on community support, start with our installation docs.

If you are using ODK Cloud, we'll be rolling out these updates in the coming days. If you are not using ODK Cloud, follow the upgrade instructions.


Release Overview

This is a critical infrastructure upgrade. In particular, it upgrades the included PostgreSQL database from 9.6 (no longer supported) to 14 (stable and supported through 2026). Docker and Docker Compose are also upgraded. This release also changes the way that configurations are made to reduce conflicts with future updates to Central.

:warning: This upgrade is more involved than other upgrades. We recommend announcing a maintenance window and carefully reading the upgrade instructions before starting.

v2023.2 also adds a table of Entities for each Dataset as well as Entity OData feeds so that you can see your Entities in Power BI, Excel, etc. Additionally, web form previews should be generated almost instantly for most forms. If your form takes time to preview, please send it to us!

Other Highlights

Thanks in part to feedback from our users, we have made a number of additional improvements:

  • Add new page that shows the Entities of a Dataset.
  • Add a password strength meter to the user interface.
  • Update the text of the "Using OData" pop-up to include pyODK.
  • Link to the Project Overview from a Dataset page.
  • Sort Entities in entities.csv by when they were created.
  • Show the Properties of a Dataset in a consistent order.
  • Don't show the Datasets page until a Form Draft that creates a Dataset is published.
  • Dataset should be created regardless of the publishing order of draft forms that define a Dataset.
  • Help ODK Collect determine which Datasets have been updated.
  • Prevent an error when uploading a Form definition with a very large number of fields.
  • Don't allow a group or repeat group to be changed to a string field.
  • Return the instance name and other information about the Submission Version from the API. Correct the API docs related to Submission Versions. Thanks to @mapo for reporting this issue!
  • Return a better error message if the version string in the Submission XML does not match any Form version. Thanks to @Lindsay_Stevens_Au and @randy.beros for reporting this issue!
  • Enable easier customization of install variables. Thanks to spwoodcock for this PR!
  • Remove the --password option from Command Line Tools.
  • Increase number of workers that Node uses.
  • Upgrade to PostgreSQL v14.
  • Upgrade to Docker v23.x, Docker Compose v2.16.x.
  • Upgrade to Enketo v6.0.x.
    • Breaking Change: IE11 is no longer supported
    • XForm to HTML transformation is dramatically faster
    • Fix: include drawings, signatures and annotated images in PDFs
    • Fix: support single-column CSV
    • Fix: load external data when served with application/geo+json Content-Type header
    • Fix: rank widget on touch devices
    • Fix: undesired autocompletion of manually entered incomplete month-year
  • Update translations
    • If your language is missing from Central, please contribute it.

As always, we have updated our User Documentation and API Documentation for the latest changes.

More notes about changes to the API for v2023.2 can be found in the API Changelog, which lists additions, breaking changes, and other things of note for each major release.

What's Next

For the next release, we will add more features in our Datasets and Entities world, stay tuned for more details.

To learn more about the roadmap for Central, read What's coming in Central.

6 Likes

ODK Central v2023.2.1 is now available. It includes the following changes:

  • Update Node for the API server so that it matches other containers.
  • Stop containers more quickly.
2 Likes