Skip to content

built-on-openfin/workspace-starter

Repository files navigation

OpenFin Workspace Starter

ℹ️ OpenFin Workspace: OpenFin Workspace is a commercial product and this repo is for evaluation purposes. Use of the OpenFin Container and OpenFin Workspace components is only granted pursuant to a license from OpenFin. Please contact us if you would like to request a developer evaluation key or to discuss a production license.

OpenFin Workspace v19.0.0

The OpenFin Workspace is a full-featured work environment designed to improve the way you get things done. Built on a secure browsing experience powered by Chromium, the core offering includes a smart digital assistant, a powerful web browser built to support modern application workflows out-of-the-box, a store to aid in the discovery of content and a notification system to surface important moments while they're still important.

Learn more about openfin.co/workspace

What version does this branch cover?

This branch covers version v19.0.0 of OpenFin Workspace (there are versioned branches for other releases). Click here to visit the release notes.

Before you get started

Read more about our recommended development environment.

OpenFin Workspace is currently only supported on Windows but this repo can be run on windows or a mac.

We recommend:

  • Using Node.Js 18+
  • Using RVM 7+ on Windows (RVM on the Mac will be version 12+) - The RVM should auto update so this applies to environments where a specific RVM version is used.
  • Running OpenFin Health Check - Load this page to see if you will be able to install/run OpenFin without issue.
  • Installing OpenFin Process Manager - Install the OpenFin process manager application (this will let you debug any issues you might have with running this repo or your changes)
  • Cloning this repo using: git clone https://github.com/built-on-openfin/workspace-starter.git --depth=1 - We have a lot of history and versioned branches but you only need the main branch to get started (it will always reflect the latest stable release).
  • Opening the root workspace-starter folder in Visual Studio Code (instead of opening a how-to subfolder directly in Visual Studio Code) - this will give you access to all the samples and intellisense on JSON files when working on manifests or app directories.
  • Running npm install from the root folder
  • Running npm run build from the root folder - this will ensure every sample has all of it's dependencies and builds correctly (you can then open a terminal window or two at e.g. how-to/workspace-platform-starter to build that specific sample or run sample specific commands)

What you can do with this repository

This repository contains examples showing how to configure core workspace functionality for your application using our workspace API.

Workspace Platform

Want to focus on configuring a workspace platform that can utilize all workspace components, apply your branding and launch your applications? This example is a full platform implementation using all the workspace components and applying patterns to the code. For more digestable examples please consider looking at the other samples which focus on individual aspects of the workspace platform.

Workspace Platform Description Live Launch
Workspace Platform Starter Basic This basic how-to provides a way of configuring a workspace platform with a simple list of applications populating all the workspace components. Example
Workspace Platform Starter This how-to provides a way of configuring a workspace platform to evaluate the different features available to a workspace platform developer. It includes docs and guidance related to getting up and running. Example 1 Example 2 Example 3

Workspace Components

Want to learn about specific workspace components? If you are starting out and want code examples that just exercise the workspace components (so you can use that learning to build your own workspace platform) then the following is a good starting point.

Example Description Live Launch
How To Register With Home - Basic You have a basic Workspace Platform Application that has a hardcoded list of apps and provides those apps to OpenFin Home using an API. The example app is visible and has 3 buttons to register/deregister against Home, show Home and hide Home. Example
How To Register With Home You have a Workspace Platform Application that reads a rest endpoint file (your application may wish to authenticate the user before doing so) and then provides those applications to OpenFin Home using an API. Example
How To Customize Home Templates This example demonstrates how to customize home result templates. Example
How To Register With Store - Basic This is a basic example where the apps and store configuration is hard-coded. The example app is visible and has 3 buttons to register/deregister the store, show the store and hide the store. Example
How To Register With Store This example is an extension of the registering with Home example. The main difference is that it is now using config and the list of apps to use our Storefront APIs to configure a store in addition to Home. Example
How To Register With Dock - Basic This is a basic example where the buttons are hard-coded. The example app is visible and has buttons to register/deregister the dock, show the dock and minimize the dock. Example
How To Register With Dock This example demonstrates using the dynamic dock features to create a favorites menu and persist the dock layout. Example
How To Register With Browser This example provides details on how to use OpenFin's Browser component to implement a Workspace Platform. Example
How To Use Notifications This example demonstrates how to create, interact and audit notifications. Example

Workspace Platform Topics

There are topics that a workspace platform developer may want to look into in an isolated way. These examples focus on those topics.

Example Description Live Launch
How To Use Theming - Basic This example demonstrates how to brand the workspace applications with your own theme with only basic operations Example
How To Use Theming This example demonstrates how to brand the workspace applications with your own theme Example
How To Support Context And Intents This example is an extension of the register with store example but shows you how to implement intent support in your workspace platform. It includes various examples of sharing context and different ways of raising an intent and passing the context to the intent target. Example 1 Example 2
How To Register With Platform Windows This example is based off of the register with store example except that it uses Platform API Windows instead of Workspace Browser Windows. The sample is a way of demonstrating that existing platforms can decide to take advantage of Workspace Components such as Home and Store before deciding on whether to move to the Workspace Browser Component. Example
How To Integrate with Snap - Basic This example shows how to use the OpenFin Snap SDK to allow snapping and docking of native applications to your OpenFin windows.
How To Integrate with Snap This example shows how to use the OpenFin Snap SDK to allow snapping and docking of native applications to your OpenFin windows. Also saving and restoring them as part of a snapshot
How To Add Workspace Native Window Integration This example shows an example of configuring Home so that it can launch a native application, capture it's location as a workspace and then launch the workspace to launch and restore the position of the native application. Example
How To Integrate with OpenId Connect This example demonstrates how to use Single Single On to integrate with an OpenId Connect provider to authenticate your application.
How To Integrate Server Authentication This example demonstrates how to authenticate with a servers login page.

Automation Testing

OpenFin provides some packages to assist in automation testing of your apps.

Example Description Live Launch
Automation Testing This howto contains multiple examples of using the OpenFin automation testing CLI and helpers.

Integrations

This section includes samples that utilize the official integrations listed on the OpenFin Website (see Integration Docs)

Example Description Live Launch
How To Integrate With Salesforce Basic This basic example demonstrates how to connect to Salesforce using the OpenFin integration API and perform a query.
How To Integrate With Salesforce This example demonstrates how to implement Salesforce integration in OpenFin Workspace using our Salesforce integration API, enabling you to browse and search Salesforce data in OpenFin Home.
How To Integrate With Microsoft 365 Basic This basic example demonstrates how to connect to Microsoft 365 using the OpenFin integration API and perform a query.
How To Integrate With Microsoft 365 This example demonstrates how to implement Microsoft 365 integration in OpenFin Workspace using our Microsoft 365 integration API, enabling you to browse and search Microsoft 365 data in OpenFin Home.
How To Integrate With Microsoft 365 Low Code Basic This example demonstrates how to implement Microsoft 365 integration in OpenFin Workspace using our Microsoft 365 Low Code integration, enabling you to browse and search Microsoft 365 data in OpenFin Home. This example shows the minimal code needed.
How To Integrate With Microsoft 365 Low Code This example demonstrates how to implement Microsoft 365 integration in OpenFin Workspace using our Microsoft 365 integration Low Code integration, enabling you to browse and search Microsoft 365 data in OpenFin Home. This example shows how you can customize the low code integration and when it is registered against Home.
How To Integrate With ServiceNow Basic This basic example demonstrates how to connect to ServiceNow using the OpenFin integration API and perform a query.
How To Integrate With ServiceNow This example demonstrates how to implement ServiceNow integration in OpenFin Workspace using our ServiceNow integration API, enabling you to browse and search ServiceNow data in OpenFin Home.
How To Integrate With Excel This example demonstrates how to implement Excel integration in OpenFin Workspace using our Excel integration API, enabling you to browse monitor and update Excel data. Example
How To Integrate With Bloomberg Basic This example demonstrates how to use our integration to connect to Bloomberg and raise intents and share context.

Other Integrations

OpenFin is a very easy platform to integrate with. If you need to integrate with something that has a REST API, JavaScript API, .NET API or Java API then you can create your own integration easily. This section will contain examples of custom integrations to give you an idea of what is possible.

Example Description Live Launch
How To Integrate With RSS This example demonstrates how to integrate with an RSS feed, allowing search, browse and notifications when the data changes.

General

Documentation Description Live Launch
How To Migrate From A Previous Version This is more a guide than an example. The guide covers what is the difference between version 1-4 and version 5-6 and points to examples on how to manage those differences.
Hints And Tips This is more a collection of hints and tips than an example. We will be building up this section over time as we come across points of interest while working on our examples.

Read more about these settings in Workspace documentation