Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The European PSD2 as the first regulator driven Open Banking initiative offers m

Being able to interact with different banking APIs can be a time and cost consuming challenge. Even though the PSD2 requires European banks to provide APIs and despite the effort of market initiatives to provide common standard interfaces, there is still a multitude of divergent authorization schemes involved and a lot of space for implementation options. A bank can even decide not to join one of the known market initiatives and define it's own PSD2 compliant API.

The purpose of this open banking gateway is to provide the community with a common and simple interface for accessing major Open Banking APIs.
The purpose of this OpenBankingGateway is to provide the community with a common and simple interface for accessing major Open Banking APIs.

### Introducing the FinTech as a Major Role
Being a regulator driven initiative, PSD2 mandates the regulation of TPPs. With this additional detail, the market is experiencing a distinction between regulated TPPs and non regulated FinTechs. This framework is therefore designed taking in consideration the existence of the category of payment service providers called FinTech that used APIs exposed by a regulated TPP to access payment services exposed by banks.
Expand All @@ -34,13 +34,13 @@ In the Open Banking Context, a payment service user (PSU or banking account hold

## Big Picture

The following picture displays the overall architecture of this banking gateway:
The following picture displays the overall architecture of this OpenBankingGateway:
![High level architecture](docs/img/open-banking-gateway-arch-14-01-2020.png)


## Security concept

The following picture displays the overall security concept of this banking gateway:
The following picture displays the overall security concept of this OpenBankingGateway:
![Security concept](docs/img/security-concept.png)

Security concept has 2 kinds of flows:
Expand All @@ -53,7 +53,7 @@ Here are detailed diagrams of each flow:

## Technical architecture

The following picture displays the overall technical architecture concept of this banking gateway:
The following picture displays the overall technical architecture concept of this OpenBankingGateway:
![Technical architecture](docs/img/technical-architecture.svg)

**Key components as shown on diagram**:
Expand Down
3 changes: 2 additions & 1 deletion docs/architecture/building_blocks/02.Component_diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

## Whitebox overall system

![Whitebox Diagram](http://www.plantuml.com/plantuml/proxy?src=https://raw.githubusercontent.com/adorsys/open-banking-gateway/develop/docs/architecture/building_blocks/02.whitebox_overall.puml&fmt=svg&vvv=1&sanitize=true)
![Whitebox Diagram](http://www.plantuml.com/plantuml/svg/TPD1JiCm44NtSufH3j051q0DI21MM2GzW3536v7Obkq8LOYxuumSuZXfT_x_VVzfCZdw85qOXnx0VtNQIYS7L6QmHfCEJRZsXD6z0v0g68UYES6_ZLKyuicJm_eSpnLAZyAFay92XZvrkYLrWJpzQadZWzIn-8pFCj2tlF8TnhvB_06Clqu7SfzI4LQj44oZ9-dK1MlnmlIaDIn5PI_qQBIV2kinS6gUC-bHlfMSXtiZ7x8-5gS8Px9_b2pXJ33Az8mNMXbPfgzAgxLsxhBTnbrFNm7xgmWU3lUxzKldJMHz-ox6N18Ji-ulkXAJAGniNWH3Qmb-yyMf6z48WBHIZ2zZb7As6lbgihsftYBptiPDvtCE01IFX8aqtP7qH_no_W00)


### Description

Expand Down
2 changes: 1 addition & 1 deletion docs/architecture/building_blocks/02.whitebox_overall.puml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ actor PSU
component "PSU User Agent" as PsuUserAgent
component FinTech

component "Banking Gateway" as opba {
component "Open Banking Gateway" as opba {
interface "TPP Bank search API" as BankSearchAPI
interface "TPP Consent Auth API" as PsuConsentAuthAPI
interface "TPP Banking Rest API" as BankingAPI
Expand Down
2 changes: 1 addition & 1 deletion docs/architecture/concepts/psu-security-concept.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ Even in this embedded case, there is still a missing equivalence between __alice

### Step-3b: Identify PSU at the ASPSP's OnlineBankingApi (Redirect-sca)

In a Redirect-SCA case (oauth, redirect, decoupled), the PSU has to be redirected by the ConsentAuthorisationApi to the OnlienBanking interface of the ASPSP. After a successful consent authorization at the OnlienBanking interface, the record could be updated by the mean of poling the authorization status of this ConsentAuthorizationSession at the OpenBankingApi of the ASPSP. Upon successful authorization of the requested consent, the ConsentAuthorizationSession in the database of the TPP looks like:
In a Redirect-SCA case (oauth, redirect, decoupled), the PSU has to be redirected by the ConsentAuthorisationApi to the OnlineBanking interface of the ASPSP. After a successful consent authorization at the OnlineBanking interface, the record could be updated by the mean of poling the authorization status of this ConsentAuthorizationSession at the OpenBankingApi of the ASPSP. Upon successful authorization of the requested consent, the ConsentAuthorizationSession in the database of the TPP looks like:

```
[auth-id,redirectCode]=ConsentAuthorizationSession[auth-id,redirectCode, alice@fintech, alice123@tpp, alice-s@aspsp, ConsentData]
Expand Down
2 changes: 1 addition & 1 deletion docs/architecture/dictionary.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ Data center environment of the TPP
Tpp backend providing access to ASPSP banking functionality. This interface is not directly accessed by the PSU but by the FinTechApi. FinTechApi will use a FinTechContext to authenticate with the TppBankingApi.

### <a name="TppBankSearchApi"></a> TppBankSearchApi
Repository of banks maintained in the TPP's banking gateway. The banking search API will later presen an interface to configure profiles attached to listed banks.
Repository of banks maintained in the TPP's open banking gateway. The banking search API will later present an interface to configure profiles attached to listed banks.

### <a name="BankDescriptor"></a> BankDescriptor
Descriptive information assocaited with a bank like:
Expand Down
2 changes: 1 addition & 1 deletion docs/architecture/drafts/initial_requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ Payment API:
1. Since request can't automatically proceed, TPP reads required GEO_LOCATION from PSU
1. Now TPP can proceed with payment `PUT /api/v1/payments/{bankId}/{psuId}/{ibanFrom}/{ibanTo} body: {"amount": 100.0, "currency": "EUR", "GEO_LOCATION": {"lat": 12, "lng": 10.0}}`
(Note: This can have i.e. SCA method to use that overrides profile defaults)
1. OpenBanking handles request sequence using computed process
1. Open Banking Gateway handles request sequence using computed process

### Sequence diagram

Expand Down
Binary file modified docs/img/open-banking-gateway-arch-14-01-2020.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/img/security-concept.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions how-to-start-with-project/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# How to start with project

# Open Banking Frontend
# OpenBankingGateway Frontend
TBD

# Open Banking Backend
# OpenBankingGateway Backend

## Prerequisites

Expand All @@ -19,11 +19,11 @@ Ensure you have:

### Application components:

1. Open banking backend -
1. OpenBankingGateway backend -
[OpenBankingEmbeddedApplication](../opba-embedded-starter/src/main/java/de/adorsys/opba/starter/OpenBankingEmbeddedApplication.java)
Spring-boot application.
1. [XS2A Sandbox (XS2A-Dynamic-Sandbox)](../how-to-start-with-project/xs2a-sandbox-only/docker-compose.yml) that mocks ASPSP (bank).
1. Postgres database (for Sandbox and Open banking backend).
1. Postgres database (for Sandbox and OpenBankingGateway backend).
**Note that open-banking database data will be persisted across runs in '$HOME/docker/volumes/postgres' if you use scripts below**

### Running backend:
Expand Down Expand Up @@ -52,7 +52,7 @@ which consumes less resources and has advantage of using single JVM for Sandbox.
1. Start Postgres: `docker run --rm --name opba-pg-docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=open_banking -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres`
This database will have admin user postgres/docker when started using aforementioned command and it will be available at `localhost:5432`.
1. Prepare Postgres (should be done only once) - execute: [open-banking-init.sql](../opba-db/src/main/resources/init.sql)
1. Run OpenBanking backend (Spring-boot application) [OpenBankingEmbeddedApplication](../opba-embedded-starter/src/main/java/de/adorsys/opba/starter/OpenBankingEmbeddedApplication.java)
1. Run OpenBankingGateway backend (Spring-boot application) [OpenBankingEmbeddedApplication](../opba-embedded-starter/src/main/java/de/adorsys/opba/starter/OpenBankingEmbeddedApplication.java)
with profiles `dev,no-encryption`

### Run from terminal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
1. OpenBankingEmbeddedApplication started with updated Sandbox port to `30000`

## Recording
Wiremock proxy to record requests from OpenBanking to Sandbox:
Wiremock proxy to record requests from OpenBankingGateway to Sandbox:
```sh
java -jar 'wiremock-standalone-2.25.1.r' --port 30000 --proxy-all http://127.0.0.1:20014 --record-mappings --match-headers accept,psu-id,x-request-id,content-type,psu-ip-address --root-dir ../results
```
Expand Down
4 changes: 2 additions & 2 deletions ui-test-scripts/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# What is this

This is ready to use IntelliJ Http scripts to run OpenBanking without FinTech. Requires OpenBanking to be
started with the `no-signature-filter` profile.
This is ready to use IntelliJ Http scripts to run OpenBankingGateway without FinTech. Requires OpenBankingGateway to be
started with the `no-signature-filter` profile.