Skip to content

FDC3 Standard 1.0

Compare
Choose a tag to compare
@rikoe rikoe released this 27 Mar 23:50
6038423

First official release of FDC3 at https://fdc3.finos.org, consisting of:

Release highlights

Founded on real-world business use cases

The FDC3 Use Case Working Group, bringing together domain experts from across the financial industry, has defined 15 real-world business use cases to help inform and drive the formation of the FDC3 standard.

Standardised API operations

The API specification 1.0 defines a set of standard API operations for all participating applications, encapsulated by the DesktopAgent interface:

interface DesktopAgent {
  open(name: string, context?: Context): Promise<void>;
  broadcast(context: Context): void;
  findIntent(intent: string, context?: Context): Promise<AppIntent>;
  findIntentsByContext(context: Context): Promise<Array<AppIntent>>;
  raiseIntent(intent: string, context: Context, target?: string): Promise<IntentResolution>;
  addContextListener(handler: ContextHandler): Listener;
  addIntentListener(intent: string, handler: ContextHandler): Listener;
}

Here, Context signifies data matching the [Context Data Specification], and intent signifies the name of a standardised or custom intent.

Standardised Intents

The Intents Specification 1.0 defines intents as predefined nouns or verbs that can be used to stitch together cross-application workflows on the financial desktop.

It also standardises an initial set of global well-known intents:

  • StartCall
  • StartChat
  • ViewChart
  • ViewContact
  • ViewQuote
  • ViewNews
  • ViewInstrument
  • ViewAnalysis

Standardised Context Data envelope

The Context Data Specification 1.0 defines that any data exchanged as part of interoperability workflows are only required to have a unique type property, used for identification and routing. Any names, identifiers or extra properties are optional.

This is represented by the Context interface as follows:

interface Context {
    type: string;
    name?: string;
    id?: {
        [x:string]: string;
    },
    [x: string]: any;
}

Standardised App Directory schema (OpenAPI 3.0)

The App Directory Specification 1.0 standardises a REST-based OpenAPI 3.0 schema for defining and referencing applications.

This includes the ability to create, address by id and list all applications defined according to the following representation:

{
  "appId": "string",
  "name": "string",
  "manifest": "string",
  "manifestType": "string",
  "version": "string",
  "title": "string",
  "tooltip": "string",
  "description": "string",
  "images": [
    {
      "url": "string"
    }
  ],
  "contactEmail": "string",
  "supportEmail": "string",
  "publisher": "string",
  "icons": [
    {
      "icon": "string"
    }
  ],
  "customConfig": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "intents": [
    {
      "name": "string",
      "displayName": "string",
      "contexts": [
        "string"
      ],
      "customConfig": {}
    }
  ]
}

The intents section links the API, Intents and Context Data specifications together, by defining a way for an application to declare the intents and context data types it supports, which is key to interoperability workflows in FDC3 1.0.

🚀 New Features

  • Documentation website (generated with Docusaurus) and content from old separate FDC3 repos (#5)
  • FDC3 feature icons on website landing page (#57)
  • Participant showcase on website landing page (#67)

💅 Enhancements

  • General cleanup of spelling, grammar and punctuation (#34)
  • Use cases callout on website landing page (#54)
  • Proofreading of docs (#62)

🐛 Bug Fixes

  • Remove unnecessary dates from use case file names (#41)
  • Header colouring on responsive website (#56)
  • Workflow numbers in Use Case 1 (#60)
  • Examples in Intent Overview (#65)
  • Errors in DesktopAgent API Reference (#66)

See CHANGELOG.md for more details.