Optional
buttonStore button visibility status
'visible'
Optional
cardBehavior of app card when it is clicked
'show-app-details'
Optional
clientAPIVersionversion of client SDK, set by the API
Icon for the provider.
Unique identifier for the provider.
A non-zero length string.
A UI friendly title for the provider platform.
Get a list of apps to populate the platform's Storefront with.
An example of a getApps
implementation that returns a single app.
const app : App = {
appId: 'uid'
title: 'My App'
manifest: `https://openfin-iex.experolabs.com/openfin/manifests/cash-flow.json`,
icons: [
{
src: '/icon.png'
}
],
contactEmail: contact@email.com,
supportEmail: support@email.com,
publisher: 'My Publisher',
tags: [],
images: [],
intents: []
}
const getApps = async (): Promise<App[]> => {
return [app];
}
Get the footer for the platform's Storefront.
The footer is a section displayed at the bottom of the Storefront. It can contain a logo, text, and links.
An example implementation of getFooter
:
const footer: StorefrontFooter = {
logo: { src: './images/image', size: '32' },
text: 'footer text',
links: [
{ title:'title', url: 'https://openfin.co' },
{ title: 'title', url: 'https://openfin.co'}
]
}
const getFooter = async (): Promise<StorefrontFooter> => {
return footer;
}
Get the main landing page for the platform's Storefront.
Landing page with hero, top row, middle row, and bottom row.
const landingPage : StorefrontLandingPage = {
hero: {
title: 'My Landing Page',
description: 'description',
cta: navigationItems[0],
image: {
src: './images/image.png'
}
},
topRow: {
title: 'Top Row Title',
items: [ /* array of StorefrontNavigationItem */ ]
},
middleRow: {
title: 'Middle Row Title',
items: [ /* array of Apps */ ]
},
bottomRow: {
title: 'Bottom Row Title',
items: [ /* array of StorefrontNavigationItem */ ]
}
}
const getLandingPage = async (): Promise<StorefrontLandingPage> => {
return landingPage;
}
Get the Storefront navigation sections for the left nav bar.
An example of a navigation section with a title and navigation items.
const navigationSections: [StorefrontNavigationSection, StorefrontNavigationSection] = [
{
id: 'first id',
title: 'title',
items: [ /* array of navigation items */ ]
},
{
id: 'second id'
title: 'title',
items: [ /* array of navigation items */ ]
}
]
const getNavigation = async (): Promise<[StorefrontNavigationSection, StorefrontNavigationSection]> => {
return navigationSections;
}
Launch an app provided by the platform's Storefront.
the app to launch.
a promise that resolves when the app has been launched.
An example implementation of launchApp
:
import { getStorefrontProvider } from "./my-provider";
//Grab your provider
const myStoreFrontProvider: StorefrontProvider = getStorefrontProvider();
const app : App = {
appId: 'uid'
title: 'My App'
manifest: `https://openfin-iex.experolabs.com/openfin/manifests/cash-flow.json`,
icons: [
{
src: './image.png'
}
],
contactEmail: contact@email.com,
supportEmail: support@email.com,
publisher: 'My Publisher',
tags: [],
images: [],
intents: []
}
const launch = async () => {
await myStorefrontProvider.launchApp(app);
}
Describes a Storefront provided by a platform. A platform must provide an object that satisfies this interface in order to register with the Storefront.
Sample StorefrontProvider definition.
Example
Registering a StorefrontProvider
Import required dependencies.
Create provider object to configure
Storefront
.Register storefront
provider
object.