:warning: Please ensure you have read the upgrade notes from the PREVIOUS RELEASE, if upgrading from an earlier version
Dashboard
, user is required to have METADATA_WRITE
permission to the Dashboard
itself and METADATA_READ
permission to all referenced objects in all DashboardItems
. Administrators can use cascade sharing in order to grant required sharing permissions when needed.The dates related to the time dimension “Last updated on” will also take into consideration the last updated date used by mobile or other API clients. Basically, the rule being applied is: if there is a “last updated” date persisted by the client/mobile, this date will take precedence in analytics queries, and will be used by the “Last updated on” dimension. Otherwise, it will use the default/usual server-side “last updated” date.
The time dimension “Event date”, which represents the execution date and can assume different names depending on the program/stage (e.g. “Report date”, “Event date”, “Visit date”, etc.), will now display the timestamp along with the date. This will give more precision to the client/mobile applications if needed. If no timestamp is set, it will be displayed with zeros.
From 2.40 onwards the attributeValues
property in the /gist
API is a object map with the attribute IDs as keys and the plain values as values. Further properties of the attribute will no longer be included in the values.
A new column ounamehierarchy
was added to events and enrollments analytics tables. A full export of analytics tables is required in order to make analytics queries work correctly, for events and enrollments.
Old tracker APIs deprecated: In 2.39 release, the old tracker API endpoints were deprecated. (see deprecated-features ). We encourage developers of web apps and extensions transition and move away from the old endpoints. The deprecated API endpoints are:
- /api/trackedEntityInstances
- /api/enrollments
- /api/events
- /api/relationships
Use tracker endpoints instead:
- /api/tracker
- /api/tracker/enrollments
- /api/tracker/events
- /api/tracker/trackedEntities
- /api/tracker/relationships
Removed status field in bundleReport: Import summaries have the following overall structure defined here. status
field in bundleReport
property was redundant, hence it was removed. status
field in the root of the import summary should be used.
Return correct HTTP status code for validation errors: Status code 409 was returned for most of validation errors across all tracker endpoints. Now a more appropriate status code is returned in the response, 400 that represents an error in request that needs to be corrected by the user.