A list of new API features for 2.23, 2.24 and 2.25
[2.25] API versioning: The Web API is now versioned. The versioning is defined through the request URL with a version number. For example /api/25/dataElements will return version 25 of the data elements resource. If you omit the version part of the URL, the system will use the current API version. The last three versions of the API will be supported.
[2.23] Metadata exchange: The metadata import-export resource has been completely rewritten and offers better performance and stability. We are gradually introducing Web API versioning and the new metadata resource can be found at /api/23/metadata. The current metadata resource will be phased out in 2.26. We encourage app developers to upgrade their apps.
[2.23] Support for identifier schemes in aggregate analysis requests: The analytics web api resource now has support for other identifiers schemes than UID. The resource now accepts a new parameter inputIdScheme which determines how identifiers are handled. Currently both UID and CODE can be used as identifiers.
[2.23] Data set metadata exchange: Data sets can now be exported and imported with all related metadata. This is intended to simplify the common task of moving a data set with related associations e.g. from a development instance to a production instance.
[2.23] Program metadata exchange: Programs can now be exported and imported with all related metadata. This is intended to simplify the common task of moving a program with related associations e.g. from a development instance to a production instance.
[2.23] User based data store: In addition to the existing general-purpose data store, a new key-value JSON data store has been introduced. Unlike the general-purpose data store which is shared between all users, the new user-based data store is linked to the currently logged in user. Only the user linked to the data store can add, edit, update or delete data in their store. This is useful for apps which need to store personalized data for a user, for example user-defined settings.
[2.23] Encryption of data store values: Data stored in either the general-purpose data store or the user-based data store can optionally be encrypted upon creation. Existing data and data initially created as unencrypted can only be encrypted by deleting the data and creating it over with encryption enabled. Values will be encrypted when a encrypt=true query parameter is supplied.
[2.23] Data set report: Added data set reports to the web api. The resource can be found at /api/dataSetReport and returns a HTML report based on your input parameters.
[2.23] User setting Web API changes: The user setting web api now allows fetching setting with or without using the fallback to system setting mechanism. That means a user setting will return ‘null’ if no value has been set for the user setting in question if required, but will return the value of the system setting by default if the user setting has not been assigned a value.
[2.23] Ordering for event and eventRow end points: Added parameter order to /api/events and /api/events/eventRows so result can be ordered on any property, either ascending or descending.
[2.23] Average aggregation type in analytics: Analytics web API now supports for an AVERAGE aggregation type.
[2.23] Support for coordinate clustering: Event analytics now has support for coordinate clustering through a new /api/analytics/events/cluster resource.
[2.23] Added usage statistics endpoint: Using the new /api/dataStatistics endpoint, you can now create event views and fetch data statistics between two dates and by different intervals.
[2.23] User credentials endpoint: A new endpoint /api/userCredentials has been added. This will enable lookup of users by username through a database-optimized search.
[2.23] CSV import of translations: Translations can be imported in CSV metadata format, both through the Web API and the user interface.
[2.23] Clearing analytics tables: The /api/maintenance resource now supports dropping all analytics tables from the database.
[2.24] Improved translations solution: The database translations solution has been completely rewritten and nows works while “traversing the object graph”. This means that you can navigate e.g. JSON documents from dataElement to groups and still get translated a displayName. This will also fix a range of issues where un-translated content appeared in the user interface of apps.
[2.24] Data predictors: A new solution for generating predicted values have been introduced in the Web API. This component will be useful for generating thresholds for disease surveillance, population growth and more. We will provide a UI for this and more info in version 2.25.
[2.24] Program messages: The Web API now features a new concept for program messages, which allows you to send messages to tracked entity instances, emails and SMS. This can be useful e.g. in order to send reminders about upcoming visits and notifications for awareness programs to people.
[2.25] Indicator analytics: The numerator, denominator and factor components of indicator values can be included separately in analytics responses by setting the includeNumDen parameter to true.
[2.25] Translation in metadata export: Object translations can now be included in the metadata export payload by setting the translate parameter to true.
[2.25] Async metadata import: Metadata imports can now be performed asynchronously by setting the async parameter to true, which is useful for large metadata imports.
[2.25] Logical operators: You can now specify whether to use the AND or OR logical operators for filters while using the metadata export resources.