If you are new to FDC3, it may be helpful to check out The FDC3 Website
This project provides a fully open source implementation of the FDC3 interoperability standard. Including:
- A fully featured and browser-based desktop agent featuring:
- intent resolution
- channel linking
- directory search
- workspace tabs
Sail v2 is a ground-up reimplementation of the FDC3-Sail project. It is a browser-based desktop agent that allows users to run and manage FDC3 apps in browser tabs or iframes. Sail v2 is built using React and makes use of FDC3 On The Web a forthcoming addition to the FDC3 standard.
FDC3 For the Web and Sail v2 will be featured at FINOS' OSFF New York event in September 2024.
FDC3 Sail is based on the newly-approved FDC3 For-The-Web standard. It is currently in development and is definitely not yet ready for production use. Please help us advance progress by raising issues as you find them. Contributions welcome - see below.
Note: If you're not a developer and all of this seems very daunting - don't worry! Come along to The FDC3 Developer Training Workshop anyway. Maybe you can be an extra pair of eyes and hands to help out someone else?
- You'll need to install
git
on your machine. Git is a version-control system and in this case will be used for downloading code from https://github.com - You'll need an editor. We recommend Visual Studio Code, but you can use any editor you like.
From the command line (you can open a terminal in Visual Studio Code), run the following command:
git clone -b sail2 https://github.com/finos/FDC3-Sail.git
Next, open the FDC3-Sail
folder in Visual Studio Code.
From the terminal in Visual Studio Code (and assuming your current directory is now FDC3-Sail
), run the following commands:
npm install
npm run web
Point your browser at http://localhost:8090/static/index.html
From the terminal in Visual Studio Code (and assuming your current directory is now FDC3-Sail
), run the following commands:
npm install
npm run electron
The desktop app should load and you should see the same screen as above.
This tutorial version of Sail contains several apps that you can open. To open an app, click the plus icon in the bottom left corner of the sail window. You'll be given a choice of applications to open like so:
Once an application is opened, you'll be able to see it, and interact with it, in the main window.
If you want to see the Polygon apps in action, you need to set the POLYGON_API_KEY
environment variable to your Polygon API key.
POLYGON_API_KEY=your_api_key
npm run web
For the purposes of the training tutorial, Sail has been bundled with two toy applications:
Pricer
: A simple application that displays a price for a given instrument.TradeList
: A simple application that displays a list of trades.
You can start these from the app picker.
These applications are hed in the training
folder within the Sail distribution that you downloaded and are run on their own web server on port 5000. You can access them directly by visiting http://localhost:5000/static/pricer/index.html or http://localhost:5000/static/tradelist/index.html.
Note: If you want to run the training apps without running Sail you can do this by running npm run dev-training
instead of npm run dev
as described above.
The list of applications available to Sail is provided in what's called an "Application Directory Record". You can find the Application Directory Records for the tutorial applications in the directory/training-appd.v2.json
file. This includes details about where the application is run from (e.g. http://localhost:5000/static/pricer/index.html), what it's called, images, icons and what FDC3 messages it responds to (in a section of the json called interop:
).
FDC3 is an open standard and there are other desktop agents available. You can find a list of them on the FDC3 Website. Sail is just a 'toy' desktop agent, but if you would rather follow the tutorial using a different desktop agent, you can do so. Here are some instructions provided by other vendors to get started with their desktop agents.
To join the Electron FDC3 Desktop Agent & App Directory mailing list please email [email protected].
- Fork it (https://github.com/finos/fdc3-sail/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Read our contribution guidelines and Community Code of Conduct
- Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
Need an ICLA? Unsure if you are covered under an existing CCLA? Email [email protected]
- We should support multiple app directories.
- Each user channel will be a HTML tab within the main browser tab.
- User can name and colour the user channels, and move apps between them.
- This is the ONLY way to control the user channel (unless the app loads outside of the main browser tab)
- Message passing will happen server-side as opposed to client side as in the demo.
- React will be used.
- User state will be held in a cookie, so there's no session persistence.
Copyright 2022 FINOS
Distributed under the Apache License, Version 2.0.
SPDX-License-Identifier: Apache-2.0