Migration of the Runtime cache

The OpenFin Runtime maintains a cache of important user data such as login details and window positions, as well as typical web browser cache data such as cookies and information stored via the standard IndexedDB or localstorage APIs.
When an application updates to using a new Runtime version that has not previously been run on the system, the RVM automatically copies and migrates the Runtime's cache to the new version.
This migration ensures that users can immediately resume their work with the application following the upgrade, maintaining a consistent user experience.

You should be aware of the following items that can affect migrating the Runtime cache:

Fallback manifests

The process to launch an application can include going through a list of fallback manifests (if provided in the launched app's manifest), and looking for a compatible and available Runtime version, in the case where a Runtime version is specified that is not available.
This feature is particularly beneficial for system apps like Notification Center, allowing them to reference previous versions for cache migration.
It ensures that, even if the primary Runtime update path fails, the system can revert to a reliable fallback version.

The RVM also uses information from the fallback manifest list in migrating the Runtime cache to a newer version, independently from using the list to find a Runtime version to use.
If an application with a particular manifest URL has not been run before, but a Runtime cache exists, the RVM checks the applications in the fallback manifest list, if there is one.
If the RVM finds a fallback manifest for an application that has been run previously, it uses that Runtime version as the "old" version for the purpose of migrating the Runtime cache.

However, caches cannot be "downgraded" to a lower version.
Depending on the specific upgrade and fallback scenario, a cache might contain outdated user data.

Prior to the introduction of fallback manifests in RVM version 9, a cache migration was triggered only when one of the following changed about an application:

  • A manifest file was loaded from the same URL as previously, but with a newer Runtime version specified.

  • The application was run in a different security realm than previously.

These conditions can still trigger a cache migration, even without a fallback manifest list.

Migration limitations

If a target Runtime version already has a cache in the application folder, that means that a migration to that version has previously occurred.
Caches cannot be merged or overwritten.
In such a situation, some user data, such as window positions and website cookies, might be lost.

Chromium's cookie migration policy

Because OpenFin's software is based on the Chromium browser, it shares some requirements of its environment with Chromium.
In particular, starting in OpenFin version 34, OpenFin can migrate cookies only from Runtime versions released within the previous two years.
Therefore, when upgrading to v34 or later, from a version more than two years earlier than the target version, cookies will not be migrated, which could affect users' saved preferences for websites.