Throughout this time, one critical piece of the ecosystem has been missing: a complete and fully open source implementation. Today I am excited to announce that this is no longer the case, and a fully Electron based open source implementation has been contributed to FINOS, where we are expecting it to be a critical resource for the FDC3 developer community.
Why should FDC3 be open source?
There are two key reasons an open source standard should have an open source implementation:
1 - To provide developers of the standard with an open and neutral reference implementation.
2 - To reduce friction for adopters of the standard through the existence of a viable open source option.
A Chrome extension based open source implementation of a desktop agent was previously contributed to FINOS. While this project has been useful to the FDC3 developer community as a reference, it lacks both viability for app developers as well as completeness. This project addresses both of those gaps by implementing in the technology of choice for desktop apps (Electron) and by providing the full stack of FDC3 in the implementation (App Directory as well as Desktop Agent).
On this note, if you are an Electron developer and you are new to the FDC3 standard, take a look at this FDC3 Primer for Electron and Web Developers.
What's in the Project?
The project is built using best practices for any modern electron / web application. The Desktop Agent client is written in Typescript and based on the Vite Electron Builder Boilerplate project.
The toolchain for the project includes:
- electron-builder for packaging, distribution and auto-updates
- Vite for building, running and hot-reloading
- React and React MUI for UI rendering
- Vitest and React Testing Library for testing
- Playwright for test automation
- ESLint for linting and Prettier for code formatting
- nano-staged and simple-git-hooks for code commits
- The App Directory is implemented in NodeJS & Typescript using Fastify.
Security is a vital consideration in all Electron projects. To ensure best practices, all remote content is rendered in BrowserView instances with node integration off and with contextIsolation enabled. Only the FDC3 API is injected into remote content. All UI content for the agent is local.
Next major steps will be to iterate and expand on the implementation. We will be engaging the wider community on this, but there are a few areas that come immediately to mind:
- Integrating compliance and testing features into the project to better serve as a toolset for FDC3 testing and development.
- Providing extensibility hooks to support modeling experimental feature sets.
- Iterating and expanding on the UX of interop.
- Working with the wider Electron community on addressing interop use cases outside of finance.
This is a new and exciting development for FDC3 and we’re looking forward to seeing the engagement on this project and the impact on the FDC3 ecosystem as adoption continues to grow!
Interested in FINOS open source projects? Click the link below to see how to get involved in the FINOS Community.
FINOS Good First Issues - Looking for a place to contribute? Take a look at good first issues across FINOS projects and get your feet wet in the FINOS community.
State of Open Source in Financial Services Report 2021 - Learn about what is really happening around open source in FSI.
This Week at FINOS Blog - See what is happening at FINOS each week.
FINOS Landscape - See our landscape of FINOS open source and open standard projects.
Community Calendar - Scroll through the calendar to find a meeting to join.
FINOS Slack Channels - The FINOS Slack provides our Community another public channel to discuss work in FINOS and open source in finance more generally.
Project Status Dashboard - See a live snapshot of our community contributors and activity.
FINOS Virtual "Meetups" Videos & Slides - See replays of our virtual "meetups" based around the FINOS Community and Projects since we can't all be in the same room right now.
FINOS Open Source in Finance Podcasts - Listen and subscribe to the first open source in fintech and banking podcasts for deeper dives on our virtual "meetup" and other topics.