ℹ️ OpenFin Workspace: OpenFin Workspace is a commercial product and this repo is for evaluation purposes (See LICENSE.MD). Use of the OpenFin Container and OpenFin Workspace components is only granted pursuant to a license from OpenFin (see manifest). Please contact us if you would like to request a developer evaluation key or to discuss a production license.
This how to provides an example of a configurable workspace platform. Please use the table of contents to navigate the information related to this how-to and how to configure it.
Launch pre-configured examples to get an idea of what a customized workspace platform can look like. You can launch both of them if you would like to see OpenFin Workspace's multi platform support.
Example | Description |
---|---|
Workspace Platform Starter Example | This is an example of a customized workspace with a light/dark theme, no authentication and some configured options. |
Second Workspace Platform Starter Example | This second instance includes the use of a demo authentication flow and has additional browser buttons configured. It also takes advantage of the built-in light/dark theme support. |
Third Workspace Platform Starter Example | This third instance has a light theme and is configured to use an fdc3 1.2 app directory that includes a few FDC3 helper tools to help get you up and running. |
The following section covers some key concepts that are good to know when looking at building a Workspace Platform.
What Is... | Description |
---|---|
Container | The foundation of OpenFin Workspace. This provides a set of capabilities and APIs that you can use in your Workspace Platform. |
Workspace | A collection of UI components built on top of Container available via NPM packages that you can can use in your Workspace Platform. |
Workspace Platform | This is a configurable and opinionated Workspace Platform that you can use to quickly validate your use of Container and Workspace. |
FDC3 | FDC3 is a standard that OpenFin contributed to FinOS. It provides a set of well known types for contextual data sharing (e.g. contact, organization, instrument etc) and an approach for triggering workflows through intents. |
Persona - A Platform Provider | A platform provider is the team that provides a Workspace Platform to be used internally and/or external so that end users can improve the way they discover and interact with content and workflows. |
Persona - A Content Provider | A content provider creates html, native or OpenFin applications that are listed, discovered and launched from a Workspace Platform. Html Content Providers can have their content reside in many hosts (a browser, within a Native Application, an OpenFin Container and/or an OpenFin Workspace Platform). |
Persona - An Apps Provider | The applications provided by Content Providers can be sourced directly from a single source or it may come from multiple back-end sources (the Platform provider determines this). The list of applications are used by the Home, Store and Dock Workspace components and provide support for FDC3 Intent workflows. |
Persona - An Integration Provider | An integration provider builds a JavaScript module that receives queries entered into the OpenFin Workspace Home component and returns a list of results. This can be querying data sources to help in the search for data or a contact as an example. It can also be used to provide short cut commands /x to help with Micro Interactions or launching specific workflows. |
Persona - A Vendor | How can a Vendor work with workspace? They may have their own workspace platform (e.g. like this) that works standalone or may want to connect to a client platform through our Interop API. They may want to allow clients to connect to them through the Interop API or they may want to provide an SDK through the OpenFin Channel API. Read more to see what the options are. |
Glossary | A glossary of terms to help familiarize yourself with common OpenFin terms. |
The above helps provide information related to what is provided and what persona you may be (you can be more than one).
The information below provides information related to configuring and using the Workspace Platform Starter implementation. It can be launched as is in order to see it's functionality (see the Live Launch section) but the following information will help you customize and extend it.
How To... | Description |
---|---|
Setup Workspace Platform Starter | Instructions on how to install the dependencies, build the repo and run Workspace Platform Starter. |
Define Apps | How to add a url, app or native app to your Platform Workspace. |
Add Context Support To Your App | If you have added one or more apps to your platform you may wish to have them share contextual data using FDC3. |
Add Intent Support To Your App | If you have added one or more apps to your platform you may want one to trigger a workflow in another using FDC3. |
Configure Your Platform's Intent Support | How to configure your platform's Intent support. What UI to present to the user if they have to make an application selection after an intent is raised. |
Add FDC3 Open Support To Your App | If you have added one or more apps to your platform you may wish to have them easily opened using fdc3.open with the option of passing context. |
Customize Your Platform through Overrides | You now have control over the platform logic beyond settings. You can use the default implementation that workspace platform starter provides, replace it or extend it without having to touch the main codebase. |
Customize Your Interop Broker | You now have control over the interop broker beyond settings. You can use the default implementation, replace it or extend it without having to touch the main codebase. |
Add Cloud Interop To Your Interop Broker | OpenFin supports sharing context across platforms and devices using our cloud offering. You can now easily add your cloud interop settings to our cloud interop module and simply enable it to see it in action. |
Use Notifications | Your platform or you app(s) may want to get the end user's attention and capture a response. |
Customize The Bootstrapping Process | This section covers how you can manage what gets registered and what background behavior do you want to run (e.g. do you want to register all of the Workspace Components or just some of them?). |
Theme Your Platform | The workspace components support a dark theme out of the box. This section covers how to define the theme and logo for your platform and some tools that make that process easier. |
Customize Home | This section covers how you can customize the Workspace Home Component through config. |
Setup Low Code Integrations | Workspace includes prebuilt low code integrations that you can setup for use with Home. We have examples of how easy it is to setup in our how-tos: integrate-with-ms365-low-code and integrate-with-ms365-low-code-basic and in this example platform we have made it purely config based. |
Setup Example Salesforce, ServiceNow and MS365 Integrations | We have examples of how easy it is to setup integrations with Salesforce, ServiceNow and MS365 in our how-to examples. These examples can be referenced from Workspace Platform Starter as they follow the module pattern and this shows how you can enable them through config. |
Customize Browser | This section covers how you can customize the Workspace Browser Component through config. |
Customize Notification Center | This section covers how you can customize the Workspace Notification Center Component through config. |
Customize Dock | This section covers how you can customize the Workspace Dock Component through config. |
Customize Store | This section covers how you can customize the Workspace Store Center Component through config. |
Setup Authentication | How can you setup authentication for your platform. |
Apply Entitlements | How can you return different settings based on the user that has logged in. |
Workspace Platform Starter Management | Where do you want your workspaces to be saved? Do you want then to be discoverable from Home? |
Customize Browser Page Management | Where do you want your browser pages to be saved? Do you want then to be discoverable from Home? |
Customize Sharing | How would you perform sharing of data from your platform e.g. pages, workspaces |
Customize the Splash Screen | How to enable the splash screen and configure it's look and feel |
Customize the Tray Icon | How to enable the tray icon and configure it's operation |
Customize the Content Creation Rules | Content creation rules can be used to determine how the content from views using window.open or target="_blank" will be shown |
Manage Connections To Your Platform | Do you have applications that wish to connect to your platform and provide a list of apps and participate in Workspace snapshots? |
Support Your Platform | How would you support your platform? How would you configure logging and get access to the logs? |
Configure Analytics | How can you follow how someone is using your Workspace Platform and the OpenFin Workspace Components? |
Configure Snap | How to enable support for the OpenFin Snap SDK |
Extend You Platform with Query Strings | How can you provide additional options to your applications with query strings both at launch and when already running |
Secure Your Platform | How would you secure your platform? What are some of the things you should consider when building your platform? |
How To Add A Service | How would you extend your platform to so that a service is started up when the application has finished it's bootstrapping process and started? |
Deploy Your Platform Across Environments | How can you deploy your platform across environments? |
Testing Your Platform Code | How would you test the code for your platform? |
Testing Your Platform UI | How would you test the UI for your platform? |