Skip to main content

OpenFin8:Core - README

The jurisdiction-agnostic open-finance kernel: the consent ledger, the recipient registry, the CSDF data-minimization engine, the notification delivery worker, the admin page framework, the audit discipline, and the wire-agnostic service traits that the per-country adapters implement.

Summary​

openfin8-core is a library crate - no process runs on it. Every bank8-open-* adapter (openfin8-us, openfin8-ca, openfin8-uk, and the adapters to follow) embeds it and supplies its wire surface, its contract table, and its registration data through four traits: OpenBankingProfile (the wire descriptor), ConsentCeremony (the OAuth family), ProviderWire (the resource router), and ConsentScreens (the hosted consent flavor).

The two-ledger model from OpenFin8:CA is preserved as the foundation: the provider's grant ledger and the recipient's consent registry live in separate tenants, no cross-tenant SQL ever, and each instance serves whichever role its own environment plays.

Motivation​

Multi-country open banking must not fork the consent machinery six ways. The parts of an open-banking service that are standard- agnostic - consent lifecycle and enforcement, recipient onboarding and token custody, data minimization, signed notifications, audit, admin - are the security-critical core, and they are identical across FDX (US/CA), OBIE (UK), and the standards to follow (Brazil, EU, Australia). Only the wire, the ceremony profile, and the response envelope genuinely differ per jurisdiction. This crate is the seam: everything above the traits is shared and audited once; everything below them is thin, per-country, and isolated by construction (a US binary cannot mount UK routes).

Architecture & High-Level Design​

Read DESIGN.md (OBARCH-1) for the full design: the extraction inventory from OpenFin8:CA, the four trait signatures, the generalized data model, CSDF vocabulary-as-profile-data, version and jurisdiction configuration, and the spec-publication policy mechanism (OBARCH-2).

Status​

Skeleton - the trait contract is defined (see src/traits.rs); the module bodies (consent, recipient, csdf, notify, admin, contract, sql, server) land with the OBARCH-1 implementation. The per-country adapters (openfin8-us, openfin8-ca, openfin8-uk) carry their own design documents and follow the same status discipline.

Development​

make help # the available targets
make build # cargo build
make test # cargo test
make lint # cargo fmt -- --check
make tag # print this lib's pin tag (bank8-vX)

This is a lib repo (RS §4.5): no captain/enroll targets - those live on the adapter service repos that embed this crate.

Contributing & License​

Apache-2.0 (see LICENSE, NOTICE). The security model is platform-wide - read SECURITY.md.


Architecture & Design: bank8:open-core and its underlying concepts were designed by Hamid Jahanzad.