Morphir is a standard language for business logic, FDC3 is a standard language for application interoperability. BankerX is a reference example combining the FDC3 and Morphir projects so that a web application can use the FDC3 protocol to integrate with Morphir based services by speaking FDC3 over REST.
npm i
run the local application…
This project can be used as a reference example for specific FDC3 and Morphir data flows. It can also be used as an example of novel FDC3 and Morphir use cases. In this case, commercial banking, to expand the conception of business value for both projects.
Clone the repo and instal, run the the app locally or from Github pages.
npm i
intent: GetTerms
Context Data
Purchase (‘fdc3.purchase’)
interface Purchase {
type: string; //'fdc3.purchase'
data: {
amount: number;
vendor: string;
date: string;
time: string;
userID: string; //is there a common identifier for the purchaser? do we even want to include this (or is this too much PII)?
pointOfSale: string; //identifier for the merchant/point of purchase - is there a common identifier
category?: 'Groceries'
| 'Dining'
| 'Home'
| 'Shopping'
| 'Travel'
| 'Fuel';
}
}
//example
{
type: 'fdc3.purchase',
data: {
amount: 30,
vendor: 'My Favorite Vendor',
date: '9/29/2024',
time: '3:28:10 PM',
userId: 'me@me.com',
pointOfSale: 'POS_ID',
category: 'Groceries'
}
}
TermsList (‘fdc3.termsList’)
interface TermsList {
type: string; //'fdc3.termsList'
terms: [Terms];
}
Terms (‘fdc3.Terms’)
interface Terms {
type: string; //'fdc3.terms
data: {
points: number;
rate: number;
provider: string; //display name of bank providing terms
providerId: string; //identifier of bank providing terms
}
}
//example
{
type: 'fdc3.terms',
data: {
points: 13,
rate: 1,
provider: {
name: 'E*TRADE',
id: 'testApp1',
logo: './images/etrade.png'
}
}
}
intent: MakePurchase (result)
interface PurchaseConfirmation {
type: string; //fdc3.purchaseConfirmation
data: {
provider: Provider;
}
}
//example
{
type: 'fdc3.purchaseConfirmation',
data: {
provider: {
name: 'E*TRADE',
id: 'testApp1',
logo: './images/etrade.png'
}
}
}
List the roadmap steps; alternatively link the Confluence Wiki page where the project roadmap is published.
The project uses Morphir and FDC3.
Server related code is done with:
Run the server locally:
Compile everything:
./mill __.compile
./mill server.run
Run the serverless backend with sam local:
./mill cdk.runSamLocal
git checkout -b feature/fooBar
)git commit -am 'Add some fooBar'
)git push origin feature/fooBar
)Copyright 2024 FINOS
Distributed under the Apache License, Version 2.0.
SPDX-License-Identifier: Apache-2.0