These Release Notes describe the following topics for the Verivo Akula 2.5.0 release:

For information about installing and upgrading Akula 2.5.0, see:

New this release

  • Server Auditing The Akula server is now capable of auditing of all management changes and app scope login and logouts. Auditing can be configured to send events to write only storage to ensure an accurate accounting of the server, app, and account histories.

  • OAuth for primary app login The Akula client SDKs now make it simple to have OAuth logins for mobile apps. Most popular OAuth providers are supported such as Facebook, Twitter, and Google. You can also login with your own custom OAuth providers - for example, if your enterprise uses a single sign on authority that exposes either an OAuth1 or OAuth2 interface.

  • OAuth for backend connections Can connect to data sources that require authentication via OAuth

  • Large data downloads Sometimes an app needs to download or sync large amounts of data from a server. This has caused other frameworks and platforms problems in the past as one of two things would happen: a) the device loses network connectivity and the entire download must be restarted from the beginning or b) the device runs out of available memory to process the data. These problems are solved on Akula with our Large Data Split Processing feature. It allows the server to break up large downloads into smaller pieces that clients are able to fit in memory and process individually. A JSON split processor is included and used to process large data syncs to clients without any need for modifying the enterprise backend data source.

  • Updated clients SDKs
    • iOS Client SDK ready for iOS8
    • Android Client SDK ready for Android L
    • Cordova Client SDKs supporting the latest Cordova version will be released separately
  • Hot deploy Whenever you need to deploy or redeploy an app scope, you no longer must restart the Akula server. You can now create a new or update an existing app scope by simply uploading the AKZ to the server using either the Command Line Interface Console or the Web Management Console.

  • Web Management Console improvements:
    • Ability to view and filter audit records
    • Upload an AKZ file for hot deployment
    • General UI improvements


Fixed issues

The following issues have been resolved in this release:

Akula Server

Issue #  Summary
AK-5628Default server config does not allow license activation from CORS-enforcing clients such as web-browsers. A X-Lic-Session-Id header has been added to the default list of permitted headers that can be shared across origins to permit license activation of a server.
AK-5441A route is unable to detect when a backend expires a credential. The logout function has been moved to the external/public AKSubject interface so that a route can log the user out if their token is no longer valid. The route can also throw an INVALID_CREDENTIAL error from the AKPublicErrorCode to pass the information to the client.

iOS Client and iOS SDK

Issue #  Summary

iOS client fails to execute SQL queries when custom tables contain spaces within their table names.

Cordova Client and Cordova SDK

Issue #  Summary

Cordova client fails to execute SQL queries when custom tables contain spaces within their table names.


Backwards compatibility notes



Known issues

The following issues remain outstanding as of this release:

Akula Server

Issue #  Summary

XML Config files do not validate unless configuration nodes are in their defined sequence.

Workaround: when writing XML configuration files, ensure the elements/child nodes match what is defined in the appropriate XSD file. The XML schema files can be found in the server SDK in the path: xsd\schemas.


When configuring AKHTTP for a URL that contains query string parameters, if the query string parameters are added to the <url> node AND put into the <query> node, then the <query> node params will override the query string parameters specified within the <url> node.

Workaround: Do not put query string parameters in both the <url> node and the <query> node. The recommended way of specifying query string parameters for a URL is to use the <query> node with <param> sub-nodes.


Cross-Origin Resource Sharing (CORS) is not supported in Internet Explorer prior to IE10. To fully support Internet Explorer versions prior to IE10 (or any other browser that lacks CORS support), the website that is making requests must reside on the same addressable domain as the Akula server handling the requests. An alternate strategy is to utilize a server-side proxy, whereby the site makes a local request, which is then relayed to the target server.

For more information on CORS support in Akula, see Allow Cross Origin Requests in a Browser App.

Workaround: None.


On rare occasions, the Akula Command-line Management Utility can intermittently fail to connect to the Akula server when the server uses one of the following ciphers with SSL:


Workaround: Retrying the connection typically clears the failure.


If the SQL module is the first module in a route, and the module accesses the body of the HTTP request where the body's content type is application/json, then the module implicitly converts the body to an org.json.simple.JSONObject object. The module can then traverse the body in the configuration a JSONObject.

Workaround: A best practice is to use the Convert module before the SQL module to explicitly convert the body to a Java object, such as a Map or List object.


If the input message to the SQL module was previously cached, and the message's content type is application/json, then the SQL module implicitly converts the cached message an org.json.simple.JSONObject object.

Workaround: Insert a Cache module before the SQL module to create a dummy cached message. For example, your route definition is similar to the following:

<to uri="akcache://AddMessageToCache?cacheKey=notes"/>
<to uri="aksql:MySQL.SelectUserReviews?statementType=SelectList%26config=AKZ-INF/config/scope/dbconfig.xml"/>

In this example, the SQL module converts the cached "notes" message to an org.json.simple.JSONObject object. Alternatively, insert a Cache module to create a dummy cached message instead:

<to uri="akcache://AddMessageToCache?cacheKey=notes"/>
<to uri="akcache://CreateNewMessage?body=%22%22"/> // Create a dummy message so "notes" is not modified.
<to uri="aksql:MySQL.SelectUserReviews?statementType=SelectList%26config=AKZ-INF/config/scope/dbconfig.xml"/> 

Now, the SQL module converts the dummy cached message, and does not modify the "notes" message.


The HTTP Module throws an error when using a modules tag containing only one element.

Workaround: If you define only one <akhttp-config> element in a module configuration file, then you must omit the <modules> parent tag. If you define multiple <akhttp-config> elements in a module configuration file, then you must include the <modules> parent tag.

AK-3948The HTTP module does not encode the space character.

Akula returns a "Can't delete work directory" error while upgrading on Win2k8.

Workaround: Restart the server.


The Akula Server returns a NullPointerException if an AKSQL statement that is being processed as a List returns only one column, and that column contains a NULL value. If the statementType is set to SelectOne, the Akula Server does not return an error (as expected).

Workaround: To workaround this issue, you must return at least one populated column (such as a PK column) or you can return a constant which is not used. 


Session timeouts produce a generic error instead of a real error.

Android Client

Issue #  Summary

Explicitly calling close() on a persistence manager instance does not actually close the database connection.

Workaround: None.

iOS Client

Issue #  Summary

When reading data from the persistent data store, object type checking is not enforced.

Workaround: None.

Server Management Tool

Issue #  Summary

The Akula Command-line Management Utility on Microsoft Windows does not support UTF-8 characters.

Workaround: None.

For more help

Verivo documentation and user community contains much of the information you need about app development.