On Android operating systems, all mobile workflow files, and extra data entered by the user or retrieved from the server, are encrypted before being stored into a SQLite database on the device.
The crypto libraries provided by Google/Android are used. Specifically, the encryption algorithm used is AES-256 symmetric encryption.
Attachments that are downloaded through an online request using an object query are stored unencrypted in the device’s flash memory for the file viewers to display them. Once the mobile workflow closes, these temporary attachment files are immediately removed.
The results of online requests that are specified to be cached are stored on the device’s SQLite database (after they are encrypted through the Google/Android crypto libraries). Cached results are removed when the mobile workflow package is unassigned from the device, or uninstalled from the server.
Notifications from the server are stored in the same SQLite database after they have been encrypted through the Google/Android crypto libraries, including the payload that makes up the notification. When the notification is acted upon, the JavaScript makes a request for the notification contents. This is read from the SQLite database, unencrypted, and passed to the browser in memory.
When the device has no network connectivity, and the user submits a Workflow for the server to process, the data destined for the server is queued up on the device. The contents of this queue are again encrypted through the Google/Android crypto libraries before it is stored into the SQLite database.