FDC3 Standard 1.0
First official release of FDC3 at https://fdc3.finos.org, consisting of:
- API Specification 1.0
- Intents Specification 1.0
- Context Data Specification 1.0
- App Directory Specification 1.0
- Use Cases 1.0
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.