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 usegetAgent()
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 fromvoid
toPromise<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
andgetAgent
).
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
andIntent
(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.