@refinitiv-workspace-sdk/loader
v3.3.0
Published
Workspace SDK makes it easy for you to create financial applications for the Refinitiv Workspace and work with the Refinitiv Data API. Workspace SDK has all the APIs necessary to integrate with your web application seamlessly.
Downloads
53
Readme
Workspace SDK
Workspace SDK makes it easy for you to create financial applications for the Refinitiv Workspace and work with the Refinitiv Data API. Workspace SDK has all the APIs necessary to integrate with your web application seamlessly.
Plugins
Workspace SDK contains the following plugins:
DesktopAgent plugin provides users with integration capabilities like multi-context linking and navigation. This plugin API is based on FDC3 [DesktopAgent] specification of 1.2 version.
DataLibrary plugin exposes various data APIs and service endpoints that are delivered through the RDP. As more APIs become available in future versions of RDP, they will be added to this library. Note that data obtained through the Refinitv Data Library is subject to licensing and redistribution limitations, according to your subscription. For further information, check the RDP documentation or contact your account manager.
NavigationCapabilities plugin provides the API for obtaining information regarding the ability to navigate by Application Name and Context. This plugin API is based on FDC3 [DesktopAgent] specification of 1.2 version.
Methods:
canNavigate
- returns a value of the state, based on the Application Name and Context, is navigation allowed. Signature:canNavigate(context: fdc3.context, app: fdc3.AppMetadata): Promise<boolean>
;getAppsByContext
- retrieves a list of Applications for navigation, determined by the specified Context. Signature:getAppsByContext(context: fdc3.context): Promise<fdc3.AppMetadata[]>
;
Workspace SDK modes
Modes are used in Workspace SDK to define its configuration: how exactly will it operate for the app, which platforms and plugins are available for the app. A mode is a mandatory property in the Workspace SDK initialization process. There are two modes available:
- Container
- Side-by-side
Side-by-Side (SxS) mode
SxS mode is used when your app can be launched either outside or inside the Refinitiv container. In this mode, Workspace SDK application can interact with:
- Workspace Web, running in the same browser, or
- Workspace Desktop, running on the same PC.
Note: To use Side-by-Side mode, API Key and Product ID are needed.
Container mode
Container mode should be used when your app is going to be launched from inside Workspace Web or Workspace Desktop only. In this mode, you do not need to obtain an API key for your application.
Note: To use Container mode you need to run your application inside Refinitiv Workspace.
Getting started
Prerequisites
You should have a Refinitiv account, so Workspace SDK can operate in Side-by-Side and Container modes.
For your application to run in Side-by-Side mode, it is mandatory to register the app in App Key Generator application. Once you have registered, you are provided with the ApiKey
and ProductId
, which you should use for Workspace SDK initialisation.
Getting started
Install dependencies
$ npm install --save @refinitiv-workspace-sdk/loader
Note: this package also contains typings for the Workspace SDK Loader, DesktopAgent and DataLibrary plugins.
Breaking changes in Workspace-SDK Loader 3.2.0-rc6
Starting from version 3.2.0-rc6 all imports from package @refinitiv/workspace-sdk-core must be replaced by imports from package @refinitiv-types/workspace-sdk-core
Initialize Workspace SDK
Loader exposes two methods to perform initialization, init
and ready
. Both return a Promise<WorkspaceSDK>
with an instance of the WorkspaceSDK
interface.
init()
method
When initializing Workspace SDK, the following information must be passed to the init()
function:
• Mode (SxS
/ Container
)
• Plugins to be used (DesktopAgent
/ DataLibrary
/ both)
• Parameters required by the specified plugins
Note: init()
should be called only once. Calling it multiple times will cause an error.
Example: a simple Workspace SDK initialization. No plugins are available with Workspace SDK in this case.
import { WorkspaceSDK, Modes } from '@refinitiv-types/workspace-sdk-core';
import * as Loader from '@refinitiv-workspace-sdk/loader';
Loader.init({
Mode: Modes.Container,
AppInstanceId: 'YOUR_APP_INSTANCE_ID',
}).then(bootstrapApp);
function bootstrapApp(WSDK: WorkspaceSDK) {
console.log(WSDK);
}
ready()
method
Returns the initialized Workspace SDK instance.
It differs from init()
in that this method does not start the initialization, but allows you to create a callback for the initialization process. This needs to be started elsewhere using the init()
method.
This function can help you separate initialization logic from the actual application bootstrap.
Example: using ready()
method
import { WorkspaceSDK } from '@refinitiv-types/workspace-sdk-core';
import * as Loader from '@refinitiv-workspace-sdk/loader';
// note: init() method needs to be called elsewhere
Loader.ready().then((WSDK: WorkspaceSDK) => console.log(WSDK));
Use SDK capabilities
Workspace SDK data and workflow integration capabilities are available via DesktopAgent
and DataLibrary
plugins.
Plugins can be initialized by passing an array of plugin names or a PluginOptions
object with additional configuration.
Example: obtaining DesktopAgent
and DataLibrary
plugins without providing additional parameters.
import { WorkspaceSDK, Modes } from '@refinitiv-types/workspace-sdk-core';
import * as Loader from '@refinitiv-workspace-sdk/loader';
Loader.init({
Mode: Modes.Container,
AppInstanceId: 'YOUR_APP_INSTANCE_ID',
}, ['DesktopAgent', 'DataLibrary']).then(bootstrapApp);
function bootstrapApp(WSDK: WorkspaceSDK) {
// WSDK.DesktopAgent and WSDK.DataLibrary objects are now available
console.log(WSDK);
}
Additional Information
Documentation
Documentation is available on the Refinitiv Developers portal. Link will be provided upon request.
System requirements
Browser support
Latest versions of Chrome, Edge Chromium, and Safari.
Supported platforms
Workspace Web and Desktop (v1.18 or higher) are supported.
For information regarding the system requirements for Workspace SDK, refer to the corresponding platform requirements.
Contact us
Please reach out to [mailto:[email protected]] for additional information
License
Copyright © 2022 Refinitiv, an LSEG business. All rights reserved.
The Refinitiv Workspace SDK works in conjunction with Refinitiv Workspace. It provides integration capabilities for web applications to integrate and interoperate with Refinitiv Workspace. You must be an authorized Refinitiv Workspace user to use the Refinitiv Workspace SDK. By downloading or using the Refinitiv Workspace SDK, you represent that you or your company has entered into a license agreement with Refinitiv governing usage of the Refinitiv Workspace SDK. You may not download or use any part of the Refinitiv Workspace SDK without a license from Refinitiv. Refinitiv Workspace SDK and its closed source components must only be used within Refinitiv products or services. Any use of the Software and its closed source components outside Refinitiv products or services is not permitted unless explicitly authorized in writing from the copyright holder. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this Software without specific prior written authorization. All intellectual property rights in the Refinitiv Workspace SDK are and shall remain the property of the Refinitiv Group or its third-party licensors. To learn more, please contact your Refinitiv representative.
DISCLAIMER THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.