Skip to content

FDC3 Standard 2.2

Latest
Compare
Choose a tag to compare
@kriswest kriswest released this 08 Apr 15:23

v2.2 of the FDC3 standard, consisting of:

Release highlights

Project Infrastructure

  • Refactored repository into a modern mono-repo format
  • Subdivided NPM module into multiple sub-modules (packages)
  • Switched FDC3 NPM module build to ESM only
  • Added separate fdc3-commonjs module for compatibility with older projects that use CommonJS

FDC3 for Web Browsers

  • Added support for vendor-agnostic connections to Desktop Agents running in a web browser
    • Specifications for getAgent() and Browser-Resident Desktop Agents.
    • Specifications for Preload Desktop Agents.
    • definitions for getAgent() and related types.
    • definitions for Desktop Agent Communication Protocol (DACP). These constitute the internal "wire protocol" that the "@finos/fdc3" library uses to communicate with Browser-Resident DAs.
    • definitions for Web Connection Protocol (WCP). These constitute the messages used to establish connectivity between "@finos/fdc3" and a Browser-Resident DA.
  • Added reference Desktop Agent implementation for FDC3 for Web in /toolbox/fdc3-for-web

API

  • FDC3 apps are now encouraged to instantiate their FDC3 interface (DesktopAgent) using the getAgent() function provided by the @finos/fdc3 module. This will allow apps to interoperate in either traditional Preload DAs (i.e. Electron) as well as the new Browser-Resident DAs.
  • window.fdc3 is now an optional property and may or may not be defined. Applications should use getAgent() as the recommended way of retrieving a reference to the FDC3 API.
  • Added reference materials and supported platforms information for FDC3 in .NET via the finos/fdc3-dotnet project.
  • Added support for event listening outside of intent or context listnener. Added new function addEventListener, type EventHandler, enum FDC3EventType and interfaces FDC3Event and FDC3ChannelChangedEvent.
  • Deprecated PrivateChannel's synchronous onAddContextListener, onUnsubscribe and onDisconnect functions in favour of an async addEventListener function consistent with the one added to DesktopAgent.
  • Listener.unsubscribe() was made async (the return type was changed from void to Promise<void>) for consistency with the rest of the API.

API Conformance Tests

  • Added conformance tests into the FDC3 API documentation in the current version and back-ported into 2.0 and 2.1. Removed outdated 1.2 conformance tests (which are preserved in the older 2.0 and 2.1 versions).
  • Added conformance tests to documentation for features introduced in FDC3 2.2 (fdc3.addEventListener, PrivateChannel.addEventListener and getAgent).

Context Data & Intents

  • Created intent CreateOrUpdateProfile - To be used when a user wants to ensure a profile is created or maintained in a system such as a CRM
  • TypeScript ContextType and Intent (string) types were created for use in DesktopAgent API signatures - they are unions of standardized values and string, enabling autocomplete/IntelliSense in IDEs when working with the FDC3 API.
  • Added utility functions isStandardContextType(contextType: string), isStandardIntent(intent: string), getPossibleContextsForIntent(intent: StandardIntent).
  • Spun off fileAttachment into its own schema, and corrected related examples

See the CHANGELOG.md for full details.