Releases: getodk/central
ODK Central v2024.3.0
Offline Entities
- Migrate forms to use offline entities #692
- Warn about forms with old version of entity spec <2024.* #730
- Entity submission backlog: apply create as update #702
- Update conflict logic for offline entities #698
- Show events about offline entities backlog on submission details page #821
Submission Deletion
- Delete Submissions from UI #709
- Show delete and undelete events in submission activity feed #789
- Improve error message when a soft-deleted form gets re-submitted #794
Enhancements to UI
- Redesign breadcrumbs #674
- Add hover cards #670
- Update buttons above Draft test Submissions #833
- Testing QR code flyout without option to close it #847
Improvements to OData
- $skiptoken results in error for repeat group of individual submission #622
- singleRowToOData(): handle unmatched repeatId getodk/central-backend#1216
- OData /Submissions and /Submissions.xyz.* endpoints return empty array for invalid $skiptoken #763
- Unparseable $skiptoken behaviour is undefined #764
- OData $filter: unsupported function results in 500 error #711
Bug Fixes + Other Improvements
- Save user preferences #689
- Add ability to hide forms trash #690
- Show message if version of Central is out-of-date #774
- Return MD5 hash for form attachments #758
- Reject creating property with name that case-insensitively matches an existing property #769
- Entity List template CSV gets opened and saved by Excel as not UTF-8 #721
- Unable to create entity when "create" and "update" are true #727
- Can't see test Submissions if filters are selected in Submissions tab #756
- OIDC login fails due to Authentik sending state QS and node-openid-client failing a check getodk/central-backend#1134
- s3 upload-pending command should not require pgrowlocks extension #812
- Handle additional bodyParser errors #788
- Backend crash when opening hostile-named submission detail getodk/central-backend#1157
- http: strip ETag headers from error responses getodk/central-backend#1103
- nginx: reject requests with unexpected Host header #809
- App user QR code violates CSP directive #629
- Content-Type application/javascript is being served uncompressed #819
Maintenance
- Update usage information metrics for v2024.3 #722
- Query fewer analytics at once getodk/central-backend#1228
- Update backend dependencies for v2024.3 #733
- Update frontend dependencies for v2024.3 #734
- Upgraded web-forms to 0.6 getodk/central-frontend#1109
- Update infrastructure dependencies for v2024.3 #732
- Update translations for v2024.3 #731
Forum announcement: https://forum.getodk.org/t/51515
ODK Central v2024.2.1
- Update pyxform-http (#750)
- Fix geojson attachment support
- Update Web Forms (getodk/central-frontend#1041)
- Show details instead of a blank page if there's a form load failure
ODK Central v2024.2.0
Release Highlights
- Delete Submissions via API (#667)
- Store binary files in S3-compatible storage (#585)
- Add support for offline Entities (#669)
- Identify attached Entity Lists in OpenRosa manifest (#665)
- Preview Web Forms by holding W and F keys (getodk/central-frontend#1001)
Bugs Fixed + Small Wins
- Add counts and other labels to more navigation tabs (#671)
- Add traditional Chinese (#680)
- Check Entity List permissions in Form endpoints (#612)
- Purge processed client audit log records after Form deletion (getodk/central-backend#1174)
- Add back padding around App User QR code (#663)
- Fix a bug where abandoning a Form Draft sometimes prevented the addition of a new Entity property (#695)
- Speed up database query to retrieve a Form's encryption keys (#658)
- Don't italicize Japanese (getodk/central-frontend#1008)
- Fix fallback behavior of date range picker when selected locale is not available (#684)
- Fix styling of loading message beneath Submissions and Entities tables (#526, #603)
Operations + Maintenance
- Prebuild frontend (#656)
- Update usage information metrics (#653)
- Update backend dependencies (#652)
- Update frontend dependencies (#651)
- Update infrastructure dependencies (#649)
- Update translations (#650)
Forum announcement: https://forum.getodk.org/t/odk-central-v2024-2-submission-deletes-and-s3-media-storage/49742
ODK Central v2024.1.0
Entities
- Create a new Entity List without publishing a Form (#575)
- Add a new property to an Entity List without publishing a Form (#576)
- Add additional Entities to an Entity List by uploading a spreadsheet (#589, #593, #583)
- Delete an Entity from the Entity data table (#584)
- Delete an Entity from the Entity detail page (#591)
- Remove Entity List from cache after Entity is deleted or Entity property is added to List (#599)
- Prevent an Entity List from being created with the same case-insensitive name as another (#627)
- Add support for
$orderby
OData query parameter (getodk/central-backend#1078) - Return Entities in stable order from REST API (#582)
- Autogenerate missing UUID when creating Entity using API (#574)
- Exclude deleted Forms from list of Forms that use Entity List (#643)
- Exclude Draft Forms from list of Forms that use Entity List (#645)
Bugs Fixed + Small Wins
- Add feedback button (#616)
- Add margin to App User QR code image (getodk/central-frontend#938)
- Prevent duplicate Submissions in OData feed that could appear when instance ID was reused (#608)
- Show correct upload progress when uploading Form Attachment (#606)
- Return to using longer width for
geopoint
columns in Submissions table (#635) - Prevent long display name from wrapping beneath navigation bar (getodk/central-frontend#348)
- Remove "New!" badge from Entities tab (#581)
- Link to latest API docs (#604)
- Improve text of Enable Encryption pop-up (#587)
- Add ETag header for Submission Attachments and XLSForms (getodk/central-backend#1045)
- Return fewer details with 500 error (getodk/central-backend#549)
- Remove
X-Powered-By
header (getodk/central-backend#1111) - Add robots.txt (#621)
- Return better error if query parameter is not a string (getodk/central-backend#806)
Operations + Maintenance
- Fix check for Docker Compose v1 during upgrade to Postgres 14 (#619)
- Create number of API server instances based on memory available to container, not to host (#577)
- Resolve Docker Compose warning that
version
is obsolete (#636) - Improve JSON output from command line tools (getodk/central-backend#979)
- Update usage information metrics (#572)
- Update backend dependencies (getodk/central-backend#1069)
- Update frontend dependencies (getodk/central-frontend#924)
- Update infrastructure dependencies (#570)
- Update Enketo (#571)
- Update pyxform (#571)
- Update translations (#569)
Forum announcement: https://forum.getodk.org/t/odk-central-v2024-1-add-entities-by-uploading-a-csv/46616
ODK Central v2023.5.1
ODK Central v2023.5.0
Updating Entities via Submission
- See update conflicts from home page (#500)
- See update conflicts on page of Entity Lists (#502)
- Filter by update conflicts in Entity table (#503)
- See update conflicts in Entity table (#504)
- See summary of update conflicts on Entity Detail page (#505)
- Mark update conflicts as resolved on Entity Detail page (#506)
- See update conflicts in Entity feed (#507)
- See Entity update in Submission feed (#513)
Other Improvements to Entities
- Automatically link a matching Form Attachment of a Form Draft to an Entity List if publishing the Draft also publishes the Entity List (#554)
- Show "Link Entity List" button for a newly published Entity List (getodk/central-frontend#916)
- Filter Entities CSV download using API (#521)
- Translate the word "label" when showing changes on Entity Detail page (getodk/central-frontend#816)
- Fix Entity OData feed by adding
__system/version
property to schema (#565) - Rename
version
column to__version
in Entities download to OpenRosa clients (#501) - Exclude deleted Entities from count of Entities (#560)
- Do not classify later Submission edits as pending Submissions when changing Entity Workflow setting (#561)
- After Entity Workflow setting is changed, do not reprocess Submission versions that previously resulted in an Entity processing error (#547)
- Require new Forms that modify Entities to specify at least one Entity action (currently either
create
orupdate
), then limit their Submissions to the specified actions (#518) - Ensure that two Entity updates will not receive same version number under conditions of high concurrency (#541)
Bugs Fixed + Small Wins
- Include filter selections in URL when viewing Server Audits Logs (getodk/central-frontend#525)
- Prompt user for decryption passphrase if refresh of Submissions table downloads first encrypted Submission (getodk/central-frontend#521)
- Return a better error message if an email address is already in use (#144)
- Require database user to have fewer privileges to restore a database backup (getodk/central-backend#1010)
- Correctly encode a URL on SSO redirect page (getodk/central-backend#1014)
Operations + Maintenance
- Use slim Node images (#549)
- Process asynchronous jobs more quickly (getodk/central-backend#533)
- Speed up stopping
postgres14
container (#419) - Update usage information metrics (#498)
- Update backend dependencies (getodk/central-backend#1006)
- Update frontend dependencies (getodk/central-frontend#868)
- Update infrastructure dependencies (#497)
- Update Enketo (#499)
- Update pyxform (#499)
- Update translations (getodk/central-frontend#869)
Forum announcement: https://forum.getodk.org/t/odk-central-v2023-5-entity-updates-via-submissions/44311
ODK Central v2023.4.0
Single Sign-on
- Support Single Sign-on with OpenID Connect (#449)
Entities
- Rename "Dataset" to "Entity List" (#466)
- See Entity Lists on homepage (#460)
- Always see Entities tab (#448)
- Reject reserved Entity property names case-insensitively (#482)
- Do not update an Entity if someone else has updated it since it was loaded (getodk/central-frontend#843)
- Track Entity version numbers (getodk/central-backend#832)
- Load Entities table in chunks (getodk/central-frontend#741)
- List Forms that create Entities without properties in "Connections to Forms" section of Entity List overview (#464)
- Show hint if a Form creates Entities without properties (#463)
- Do not link to an Entity if it has been deleted (getodk/central-backend#822)
- Do not store Entity labels in Server Audit Logs (getodk/central-backend#822)
- Improve the order of the Entity properties updated by a Form (getodk/central-backend#708)
- Improve how Entity List actions are logged in Server Audit Logs (getodk/central-backend#664)
- Do not allow an XForm to save an Entity property to a field in a repeat group (getodk/central-backend#670)
- Prevent all access to an Entity List before the associated Form is published (#467)
- Do not allow an Entity to be created over the API until the associated Form is published (#483)
- Fix issues if an Entity List is named
itemsets
(getodk/central-backend#673)
Bugs Fixed + Small Wins
- Add ability to filter subtables (repeat groups) in OData (getodk/central-backend#391)
- Add support for
$skiptoken
OData query parameter (getodk/central-backend#665) - Make the check for available space compatible with
docker compose
v2 (#439) - Allow Web Forms to be used immediately (#385)
- Do not export individual client audit attachments in Submissions .csv.zip (getodk/central-backend#947)
- Fix an issue sending email caused by format of a Docker file (#454)
- Delete test Submissions to existing Form Drafts when encryption is enabled for a Project (getodk/central-backend#911)
- Improve display of usage information metrics when there is no Project (getodk/central-backend#763)
- Improve DKIM support (#485)
- Add endpoint to delete current session (getodk/central-backend#923)
- Exit with nonzero status code if a command line tool is run without a subcommand (getodk/central-backend#892)
Maintenance
- Update usage information metrics (#442)
- Upgrade to Node 18 (#432)
- Update backend dependencies (getodk/central-backend#916)
- Update frontend dependencies (getodk/central-frontend#824)
- Update infrastructure dependencies (#440)
- Update Enketo, pyxform-http (#441)
- Update translations (getodk/central-frontend#823)
Forum announcement: https://forum.getodk.org/t/odk-central-2023-4/43212
ODK Central v2023.3.1
- Set Entity properties correctly if a new Form version changes
save_to
(getodk/central-backend#914) - If a Project has enabled encryption, its main data table for Submissions can now be downloaded (getodk/central-backend#701)
- Allow a Submission Attachment to be previewed in Enketo when its file name contains a dollar sign (#438)
- Add ability to use
$select
with a parent ID in OData (getodk/central-backend#722) - Update Enketo (#445)
- Performance improvements for loading large Forms
- Ukrainian translation
ODK Central v2023.3.0
Datasets
- Create Entities on Submission receipt (getodk/central-backend#864)
- See Entity detail page (getodk/central-frontend#760)
- Update Entity data directly (getodk/central-frontend#774)
- Add Entity record by API (getodk/central-backend#798)
- Delete Entity record by API (getodk/central-backend#803)
Bugs Fixed + Small Wins
- Add columns to the Entities CSV download about the Entity creator, the Entity creation time, and other metadata (getodk/central-backend#801)
- Improve the speed at which incoming Submissions are accepted by updating indices in the database (getodk/central-backend#805)
- Provide support for overrides of
docker-compose.yml
(#435) - Require more disk space before upgrading Postgres to help prevent the disk from becoming full during the upgrade (#424)
- Set a maximum width in the web interface for an improved user experience (getodk/central-frontend#447)
- Fix a bug that showed all empty values in the Entities table for a Dataset property whose name contained a hyphen or period or was otherwise not a valid OData identifier (getodk/central-frontend#793)
- Do not show empty rows in front of Properties in the Dataset overview (getodk/central-backend#833)
- Allow the file names of Submission Attachments to contain Unicode characters or punctuation (#433)
- Allow a test Submission to be created for a Form Draft that links to a Dataset (getodk/central-backend#897)
- Set ETag header for OpenRosa form attachment endpoint (getodk/central-backend#826)
- Ensure structural change to a Form does not prevent managed encryption form being enabled (getodk/central-backend#898)
- Check that Dataset property names are valid in XML XForms, not just XLSForms (getodk/central-backend#688, getodk/central-backend#784)
- Fix a bug in the API that returned incorrect
createdAt
andupdatedAt
timestamps for Submissions when extended metadata was requested. Properties of the submitter were incorrectly added to the Submission. (getodk/central-backend#858) - The
User-Agent
header is no longer required in the API. Most API clients specifyUser-Agent
automatically, but it is now fully optional. (getodk/central-backend#896) - Return better errors from the API when there is a problem related to an Entity (getodk/central-backend#854)
- Return a better error when the
Authorization
header is invalid in the API (getodk/central-backend#849) - Render two potentially large tables in chunks (getodk/central-frontend#767)
- Small changes to tooltips (getodk/central-frontend#753)
- Remove primary keys from Dataset Metadata API response (getodk/central-backend#890)
Maintenance
- Remove unreliable check for successful migration so that data deletion does not fail during Postgres upgrade (#430)
- Update Enketo (#409)
- Submissions are now re-attempted multiple times when in offline mode
- Draw/signature/annotate widgets now preserve original image size when annotating and have better resize performance
- See here for more notes about what changed in Enketo.
- Update pyxform-http (#409)
- Update infrastructure dependencies (#398)
- Update backend dependencies (getodk/central-backend#791)
- Update frontend dependencies (getodk/central-frontend#758)
- Update translations (getodk/central-frontend#759)
- Update usage information metrics (#410)
Forum announcement: https://forum.getodk.org/t/odk-central-2023-3/41748