FDC3 icon indicating copy to clipboard operation
FDC3 copied to clipboard

Agent agnostic fdc3 spec

Open thorsent opened this issue 11 months ago • 2 comments

This PR adds specifications and documentation related to enabling FDC3 for the web. This was based off of the committee's working doc

This assumes that "@finos/fdc3" will implement getAgent(), communication mechanisms, and built-in UI for channel selector and intent resolver.

The protocols were codified as "Web Connection Protocol (WCP)" for negotiating the handshake between the library and desktop agents, and "Browser Communication Protocol (BCP)" which encompasses the complete "wire protocol".

This documentation followed three streams:

  1. Modifications for users of FDC3 - primarily related to using getAgent() for connectivity instead of relying on the global fdc object
  2. Instructions for desktop agent implementers - provides a specification for "browser-resident desktop agents" as well as "preload desktop agents", along with typescript definitions.
  3. A specification for getAgent() - to be used by implementers of the "@finos/fdc3" library, and for reference by desktop agent implementers.

Some changes and additions were made from the original working document.

The optional initialization fields for channel selector and intent resolver were eliminated. The DA knows whether it can provide these UI elements and so therefore it should be the DA that decides how to accomplish this. However, there are cases where a DA cannot reasonably provide these UI elements in a browser, therefore this spec mandates that "@finos/fdc3" provide built-in UI capabilities that a DA can optionally enable them.

This spec also covers window disconnects by suggesting use of a well known polling mechanism.

A new folder called "specs" was created to house many of the specifications involved. Previously, there was no true distinction between implementation specs and user specs.

thorsent avatar Feb 29 '24 18:02 thorsent