-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
46 changed files
with
306 additions
and
470 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,25 @@ | |
|
||
There are various ways for a bank to implement a PSD2 compliant XS2A interface. Don’t waste time in connecting different banks with different approaches into your application. Use the free of charge XS2A adapter and concentrate on your true value proposition! | ||
|
||
## Licensing model change to dual license: AGPL v.3 or commercial license | ||
|
||
**Attention: this open-source project will change its licensing model as of 01.01.2022!** | ||
|
||
Constantly evolving and extending scope, production traffic and support in open banking | ||
world call for high maintenance and service investments on our part. | ||
|
||
Henceforth, adorsys will offer all versions higher than v.0.1.16 of Adapter under a | ||
dual-license model. Thus, this repository will be available either under Affero GNU General | ||
Public License v.3 (AGPL v.3) or alternatively under a commercial license agreement. | ||
|
||
We would like to thank all our users for their trust so far and are convinced that we will be | ||
able to provide an even better service going forward. | ||
|
||
For more information, advice for your implementation project or if your use case requires | ||
more time to adapt this change, please contact us at [email protected] . | ||
|
||
For additional details please see the section [FAQ on Licensing Change](https://github.com/adorsys/xs2a-adapter#faq-on-licensing-change). | ||
|
||
## Who we are | ||
|
||
[adorsys](https://adorsys.de/en/index.html) is a company who works ever since the very beginning of PSD2 with its requirements and implicit tasks. | ||
|
@@ -33,8 +52,8 @@ Read this short [guideline](docs/Adapter.md) to get more details | |
|
||
## Routing and ASPSP Registry | ||
|
||
ASPSP Registry loads data from [aspsp-adapter-config](docs/aspsp_adapter_config_csv.md) file, | ||
that contains all information necessary for XS2A Adapter to communicate with banks (Sandboxes only). | ||
ASPSP Registry loads data from [aspsp-adapter-config](docs/aspsp_adapter_config_csv.md) file, | ||
that contains all information necessary for XS2A Adapter to communicate with banks (Sandboxes only). | ||
`xs2a-adapter` relies on presence of `X-GTW-ASPSP-ID` or `X-GTW-Bank-Code` request header for routing. | ||
The former uniquely identifies an XS2A API provider in the `aspsp-registry`. | ||
The later is a shorthand for performing a lookup in the registry using a bank code. | ||
|
@@ -68,22 +87,22 @@ You may run postman tests from the command line | |
|
||
## HttpLogSanitizer Whitelist | ||
|
||
XS2A Adapter has a feature that masks sensitive data in logs, e.g. PSU-ID, ConsentId, Location, etc. By default, it veils | ||
all data, but starting from version 0.1.5 Adapter user will be able to partially configure HttpLogSanitizer behavior | ||
by providing a list of request/response body fields (Whitelist) that will not be hidden. | ||
XS2A Adapter has a feature that masks sensitive data in logs, e.g. PSU-ID, ConsentId, Location, etc. By default, it veils | ||
all data, but starting from version 0.1.5 Adapter user will be able to partially configure HttpLogSanitizer behavior | ||
by providing a list of request/response body fields (Whitelist) that will not be hidden. | ||
|
||
There are two ways of setting up Whitelist depending on how a user utilizes the XS2A Adapter: | ||
* As standalone application: a user will want to add field names separated by a comma on `xs2a-adapter.sanitizer.whitelist` | ||
* As standalone application: a user will want to add field names separated by a comma on `xs2a-adapter.sanitizer.whitelist` | ||
property under `application.yml`. Examples are already put in Adapter YAML. | ||
* As library: a user will want to provide a java.util.List of type String into default HttpLogSanitizer implementation - `Xs2aHttpLogSanitizer`. | ||
|
||
__Note__: field names must be Berlin Group specification compliant, otherwise there will be no effect and data will still be masked. | ||
|
||
## Non-XS2A Interfaces | ||
|
||
The Adapter also covers non-PSD2 XS2A interfaces and contain services that handles such cases. | ||
These are OAuth2 and EmbeddedPreStep services. Please check out Swagger JSONs for details: | ||
[OAuth2 API](xs2a-adapter-rest-impl/src/main/resources/static/oauthapi.json) | ||
The Adapter also covers non-PSD2 XS2A interfaces and contain services that handles such cases. | ||
These are OAuth2 and EmbeddedPreStep services. Please check out Swagger JSONs for details: | ||
[OAuth2 API](xs2a-adapter-rest-impl/src/main/resources/static/oauthapi.json) | ||
and [EmbeddedPreStep API](xs2a-adapter-rest-impl/src/main/resources/static/embeddedpreauthapi.json) respectively. | ||
|
||
**EmbeddedPreStep** interface is a specific Crealogix solution that resembles OAuth2 protocol but may have no interaction with | ||
|
@@ -96,7 +115,7 @@ Crealogix solution is used by DKB. | |
## WireMock Mode | ||
|
||
XS2A Adapter has a feature for testing a bank connection without actually communicating with a bank. We have written stubs | ||
of real bank responses so you can give a try for your solution. This feature is called a `WireMock Mode`. | ||
of real bank responses so you can give a try for your solution. This feature is called a `WireMock Mode`. | ||
|
||
To activate it, a user will need to set `sa2a-adapter:wire-mock:mode` to `true` within the `application.yml` file. It will | ||
start a WiremockHttpClient, with a build in WireMock server, instead of a default ApacheHttpClient. | ||
|
@@ -115,43 +134,42 @@ Not all adapters have written stubs though. Responses available for the next ada | |
|
||
New stubs will be added in time. | ||
|
||
The XS2A Adapter also provides an easy way to connect to a standalone WireMock server in case a user will want to have | ||
one running separately. For connecting with a standalone WireMock you will want to have a `WireMock Mode` on and provide | ||
The XS2A Adapter also provides an easy way to connect to a standalone WireMock server in case a user will want to have | ||
one running separately. For connecting with a standalone WireMock you will want to have a `WireMock Mode` on and provide | ||
a URL to the server as a value of `sa2a-adapter:wire-mock:standalone:url` property. | ||
|
||
More details on the `WireMock Mode` can be found [here](https://adorsys.github.io/xs2a-adapter/wiremock-mode). | ||
|
||
## Examples of XS2A flows | ||
|
||
In case you are not very comfortable with how all communication between a TPP and a bank is performed, | ||
In case you are not very comfortable with how all communication between a TPP and a bank is performed, | ||
please take a look at [these examples](https://adorsys.github.io/xs2a-adapter/xs2a-flows) in a form of sequence diagrams. | ||
|
||
For full description, please refer to the official Berlin Group PSD2 specification - <https://www.berlin-group.org/nextgenpsd2-downloads> | ||
|
||
## Technical Details | ||
|
||
We have provided technical description in the [arc42 document](https://adorsys.github.io/xs2a-adapter/). | ||
We have provided technical description in the [arc42 document](https://adorsys.github.io/xs2a-adapter/). | ||
|
||
## Banks peculiarities | ||
|
||
There are some specific cases in communication with banks that an XS2A Adapter user must be aware of. | ||
|
||
For example, `Sparkasse` and `Fiducia` always return a list of transactions in XML format, thus triggering | ||
For example, `Sparkasse` and `Fiducia` always return a list of transactions in XML format, thus triggering | ||
|
||
```bash | ||
Response<TransactionsResponse200Json> getTransactionList(String accountId, | ||
RequestHeaders requestHeaders, | ||
RequestParams requestParams); | ||
``` | ||
|
||
or calling `getTransactionList` endpoint with specified `Accept: application/json` header on these banks | ||
or calling `getTransactionList` endpoint with specified `Accept: application/json` header on these banks | ||
will throw `NotAcceptableException`, due to format mismatching. | ||
|
||
## Releases and versions | ||
|
||
* XS2A Adapter reveals a new release at the beginning of each month. All released features, fixes, details, etc. can be found | ||
within the Release Notes referred below. We are doing our best to follow the Adapter Roadmap mentioned below as well. | ||
All release information can be found under the [Releases](https://github.com/adorsys/xs2a-adapter/releases) section | ||
XS2A Adapter publishes a new release every 3 to 6 months. All released features, fixes, details, etc. can be found | ||
within the Release Notes under the [Releases](https://github.com/adorsys/xs2a-adapter/releases) section | ||
on GitHub. | ||
|
||
* [Release Notes](https://github.com/adorsys/xs2a-adapter/tags) | ||
|
@@ -170,4 +188,63 @@ If you have any technical questions you can ask them in our [gitter](https://git | |
|
||
## License | ||
|
||
This project is licensed under the Apache License version 2.0 - see the [LICENSE](LICENSE) file for details | ||
This project is licensed under the Apache License version 2.0 **(until 01.01.2022)** - see the [LICENSE](LICENSE) file for details | ||
|
||
## FAQ on Licensing Change | ||
|
||
**What is a dual-licensing model?** | ||
|
||
Under a dual-licensing model, our product is available under two licenses: | ||
|
||
1. [The Affero GNU General Public License v3 (AGPL v3)](https://www.gnu.org/licenses/agpl-3.0.en.html) | ||
2. A proprietary commercial license | ||
|
||
If you are a developer or business that would like to review our products in detail, test and implement in your open-source projects and share the changes back to the community, the product repository is freely available under AGPL v3. | ||
|
||
If you are a business that would like to implement our products in a commercial setting and would like to protect your individual changes, we offer the option to license our products under a commercial license. | ||
|
||
This change will still allow free access and ensure openness under AGPL v3 but with assurance of committing any alterations or extensions back to the project and preventing redistribution of such implementations under commercial license. | ||
|
||
**Will there be any differences between the open-source and commercially licensed versions of your products?** | ||
|
||
Our public release frequency will be reduced as our focus shifts towards the continuous maintenance of the commercial version. Nevertheless, we are committed to also provide open-source releases of our products on a regular basis as per our release policy. | ||
|
||
For customers with a commercial license, we will offer new intermediate releases in a more frequent pace. | ||
|
||
**Does this mean that this product is no longer open source?** | ||
|
||
No, the product will still be published and available on GitHub under an OSI-approved open-source license (AGPL v3). | ||
|
||
**What about adorsys’ commitment to open source? Will adorsys provide future product releases on GitHub?** | ||
|
||
We at adorsys are committed to continue actively participating in the open-source community. Our products remain licensed under OSI-approved open-source licenses, and we are looking forward to expanding our product portfolio on GitHub even further. | ||
|
||
**How does the change impact me if I already use the open-source edition of your product?** | ||
|
||
All currently published versions until v1.0 will remain under their current Apache 2.0 license and its respective requirements and you may continue using it as-is. To upgrade to future versions, you will be required to either abide by the requirements of AGPL v3, including documenting and sharing your implemented changes to the product when distributing, or alternatively approach us to obtain a commercial license. | ||
|
||
**What if I cannot adjust to the new licensing model until 01.01.2022? Can I extend the deadline?** | ||
|
||
We understand that adjustment to licensing changes can take time and therefore are open to discuss extension options on an individual basis. For inquiries please contact us at [email protected]. | ||
|
||
**Which versions of the product are affected?** | ||
|
||
All versions of Open Banking Gateway after v1.0 will be affected by the licensing changes and move to a dual-licensing model. | ||
|
||
**What will happen to older, Apache 2.0 licensed product versions?** | ||
|
||
All older Apache 2.0 licensed versions prior and including v1.0 will remain available under their existing license. | ||
|
||
**What open-source products from Adorsys are affected by the licensing change?** | ||
|
||
The following products are affected: | ||
|
||
- [XS2A Core](https://github.com/adorsys/xs2a) | ||
- [XS2A Sandbox & ModelBank](https://github.com/adorsys/XS2A-Sandbox) | ||
- [Open Banking Gateway](https://github.com/adorsys/open-banking-gateway) incl. [XS2A Adapters](https://github.com/adorsys/xs2a-adapter) | ||
- [SmartAnalytics](https://github.com/adorsys/smartanalytics) | ||
- [Datasafe](https://github.com/adorsys/datasafe) | ||
|
||
**I’m using one of these products indirectly via some software integrator. How does the licensing change affect me?** | ||
|
||
The licensing change does not affect you as user, but it is relevant to your provider who has used our product in their solution implementation. In case of uncertainty please contact your service provider or approach us at [email protected]. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9 changes: 0 additions & 9 deletions
9
...ava/de/adorsys/xs2a/adapter/commerzbank/mapper/RemittanceInformationStructuredMapper.java
This file was deleted.
Oops, something went wrong.
8 changes: 4 additions & 4 deletions
8
...rc/main/java/de/adorsys/xs2a/adapter/commerzbank/mapper/TransactionDetailsBodyMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
package de.adorsys.xs2a.adapter.commerzbank.mapper; | ||
|
||
import de.adorsys.xs2a.adapter.api.model.TransactionDetailsBody; | ||
import de.adorsys.xs2a.adapter.commerzbank.model.CommerzbankTransactionDetails; | ||
import de.adorsys.xs2a.adapter.api.model.Transactions; | ||
import org.mapstruct.Mapping; | ||
|
||
public interface TransactionDetailsBodyMapper extends TransactionsMapper { | ||
@Mapping(target = "transactionDetails", expression = "java(toTransactions(value))") | ||
TransactionDetailsBody toTransactionDetailsBody(CommerzbankTransactionDetails value); | ||
public interface TransactionDetailsBodyMapper { | ||
@Mapping(target = "transactionDetails", source = "value") | ||
TransactionDetailsBody toTransactionDetailsBody(Transactions value); | ||
} |
8 changes: 0 additions & 8 deletions
8
...-adapter/src/main/java/de/adorsys/xs2a/adapter/commerzbank/mapper/TransactionsMapper.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 5 additions & 3 deletions
8
...in/java/de/adorsys/xs2a/adapter/commerzbank/model/CommerzbankOK200TransactionDetails.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.