Skip to content

Open implementation of the FDC3 standard using Electron and an integrated App Directory.

License

Notifications You must be signed in to change notification settings

watson-ew/FDC3-Sail

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FDC3 Sail Icon

FDC3 Sail

Develop easier.   Build faster.   Integrate quicker.


What is FDC3 Sail?

This project provides a fully open source implementation of the FDC3 interoperability standard. Including:

  • A fully featured and secure electron desktop agent featuring:
    • intent resolution
    • channel linking
    • directory search
  • A local file-based app directory implementation

FDC3 Standard Primer

If you are an Electron and/or Web Dev new to FDC3, it may be helpful to check out this primer.

Sail at OSFF!

Nick Kolba (Connectifi) and Seb M'Barek (Norman and Sons) presented FDC3-Sail at the Open Source In Finance Forum (OSFF) in New York in December 2022. They showed how you could git-clone FDC3-Sail, run it and play with all the apps in the FINOS App Directory. They also showed how to build apps and share context data.

If you haven't already, check out their demo here: https://youtu.be/5VJzftderO0

About This Implementation

  • FDC3-Sail is an Electron application built from the Vite Electron Builder Boilerplate
  • The UI for the desktop agent is built using React MUI.
  • All remotely hosted content is run in BrowserView following electron security best practices.

The following libraries are used:

Structure

  • directory/ - for local app directories
  • packages/main - the main Electron application, has access to Node
  • packages/preload - preload scripts for web renderers. Bridges the frontend ui to the main process through events and apis
  • packages/renderer - the parts of the desktop agent UI built with React, isolated from main app, and shown in a window on the desktop
    • channelPicker - UI for the channel picker
    • homeView - UI for the default home view
    • intentResolver - UI for the intent resolver window
    • searchResults - UI for the searchResults window
    • sessionView - UI for the sessionView window
    • topNavigation - UI for the Top Navigation that includes the Tabs, channel picker button, and Dev Tools Menu.

Getting Started

npm install
npm start

This will use the FINOS app directory at https://directory.fdc3.finos.org/v2/apps

Getting Started With Your Own App Directory

  1. Install dependencies:
npm install
  1. Create your own local App directory manifest .e.g. local.v2.json in the /directory folder

  2. Set the environment variable to use this directory:

export SAIL_DIRECTORY_URL=directory/local.v2.json
  1. Start the FDC3 application:
npm start

Other useful commands:

  1. npm start / npm run watch - Start the Electron app in dev mode.
  2. npm run compile - Build the app for local debugging only.
  3. npm run lint - Lint the code.
  4. npm run typecheck - Run a TypeScript check.
  5. npm run test - Run tests for all parts of the application, including end-to-end tests.

Mailing List

To join the Electron FDC3 Desktop Agent & App Directory mailing list please email fdc3-sail+subscribe@lists.finos.org.

Roadmap

BMO Hackathon Milestone

Contributing

  1. Fork it (https://github.com/finos/fdc3-sail/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Read our contribution guidelines and Community Code of Conduct
  4. Commit your changes (git commit -am 'Add some fooBar')
  5. Push to the branch (git push origin feature/fooBar)
  6. 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 help@finos.org

License

Copyright 2022 FINOS

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0

About

Open implementation of the FDC3 standard using Electron and an integrated App Directory.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.1%
  • JavaScript 4.3%
  • Other 1.6%