Services
Overview
OpenFin provides Application Providers the ability to call a Service that can run along side their application. The service will runs as a singleton processes that provides functionality to other applications running in an OpenFin environment. Services are started and managed by the RVM.
Key points
- Applications declare the services they want to use in the Application Manifest.
- The lifecycle of Services is managed by the RVM and exists for as long as any applications that require the service are running.
- Only one version of a service can be running on the desktop, and it will extend across all runtime instances on the desktop.
- Services are delivered to the desktop via the OpenFin Cloud or an equivalent on-premise source.
Enabling a Service
To enable the a Service Application Providers only need to add a single reference to the Service in their application’s config file (app.json
).
JSON example
"services" :[{ "name":"SERVICE_NAME" }] //replace "name"
DesktopOwnerSettings file
The Desktop Owner Settings file allows Desktop Owners to set most global desktop settings in an easy-to-update, remote JSON file as opposed to setting them in the registry. Learn more about how to enable Desktop Services in the Desktop Owner Settings file.
Architecture and lifecycle

Lifecycle
- During normal application startup the RVM is pointed to an OpenFin Application manifest specifying a Service dependency.
- The RVM resolves the location of the service(s) (resolving detailed below), defaulting to the OpenFin public cloud (if a service is offered by OpenFin).
- The RVM starts the service(s) if not already running.
- The RVM starts the OpenFin Application.
- The Client side API running in the OpenFin Application connects to the service via an InterApplicationBus Channel.
The RVM will shut down a service when the last application that has required the service is closed.
Hosting services on-premise
Services can be configured to be hosted where ever you desire
- The RVM needs to be instructed to look for the service location. You can accomplish this by specifying the service location in the DesktopOwnerSettings (RVM version 4.7+).
JSON example
"services": [{
"name": "SERVICE_NAME",
"manifestUrl": "https://[YOUR_SERVICE]/app.json"
}]
Updated 12 days ago