Date | Revision | Description |
---|---|---|
2022-07-29 | 0 | Initial release |
2022-09-01 | 1 | Updates for init-containers mojaloop/#2909 |
2022-09-08 | 2 | Updates for mojaloop/#2734, mojaloop/#2880 |
2023-03-15 | 0 | Updated Known Issues with mojaloop/#3163 |
- For BREAKING CHANGES, please review the section
#5
"Breaking Changes" below. - For KNOWN ISSUES, please review the section
#8
"Known Issues" below.
- Change the basis for the liquidity check (mojaloop/design-authority-project/issues/90). Pull requests are mojaloop/central-ledger/pull/899 & mojaloop/central-ledger/pull/901
- mojaloop/#2092: upgrade nodeJS version for core services (ml-api-adapter/#501) (central-ledger/#902) (account-lookup/#445) (quoting-service/#302) (sdk-scheme-adapter/pull/319) (sdk-standard-components/#168) (auth-svc/#116) (als-consent/#13) (thirdparty-api-svc/#82) (thirdparty-sdk/#142) (simulator/pull/243) (mojaloop-simulator/pull/145) (bulk-api-adapter/pull/82) (transaction-requests-service/pull/90) (central-settlement/pull/381) (event-sdk/pull/67) (event-sidecar/pull/49) (als-oracle-pathfinder/pull/72) (email-notifier/pull/202) (event-stream-processor/pull/61 (central-event-processor/pull/243) , closes mojaloop/#2092
- sdk-scheme-adapter: add extensionList to quote request/response (#269) (9cbed66)
- sdk-scheme-adapter: proper response schema for post /authorization sync response (#270) (6535c1d)
- mojaloop/#2264: add more robust header validation for inbound server (#278) (9ea24d7), closes #2264
- mojaloop/#2739: Reconcile mojaloop-connector with sdk-scheme adapter, closes mojaloop/#2739
- sdk-scheme-adapter: port control client and service from ml connector (#308) (e6c963c)
- sdk-scheme-adapter: port use payee FSPID as GET /parties destination header if provided (#301) (3ad0ba5)
- sdk-scheme-adapter: port over prom client metrics (#312) (8de66d5)
- sdk-scheme-adapter: pull in live reconfiguration logic (#313) (ae5648a)
- sdk-scheme-adapter: added outbound bulk api (#320) (e2e83e9)
- mbp/#286: add simulator rule to trigger patch transferState=aborted notification (#138) (d4a407a), closes mbp/#286
- mojaloop-simulator: update simulator schema for latest thirdparty api (#128) (1a89bdf)
- auth-service: handle errors akin to core ml services and update verification response (#99)
- auth-service: update for Thirdparty-api specification v1.0 (#106)
- thirdparty-api-svc: update for Thirdparty-api specification v1.0 (#65)
- thirdparty-sdk: update for Thirdparty-api specification v1.0 (#135)
- mojaloop/#2758: add Certificate management functionality in thirdparty sdk (from mojaloop connector) from Payment Manager for Mojaloop (thirdparty-sdk/#146 thirdparty-sdk/#147), closes #2758
- mojaloop/#2777: add jws validation on inbound server and update reconfig for jws signing (thirdparty-sdk/#151), closes mojaloop/#2777
- Testing Toolkit::
- Major version bump for node v16 LTS support (ml-testing-toolkit/pull/215), closes mojaloop/#2784, mojaloop/#2785, mojaloop/#2786
- Port changed from
5000
to4040
(ml-testing-toolkit/pull/215), closes mojaloop/#2675 - TTK CLI is migrated from
ml-testing-toolkit
to ml-testing-toolkit-client-lib - Callback assignments through UI (ml-testing-toolkit/pull/204) (ml-testing-toolkit-ui/pull/127), closes mojaloop/#1809
- Checkbox to disable some requests in test case editor easily (ml-testing-toolkit/pull/204) (ml-testing-toolkit-ui/pull/127), closes mojaloop/#2335
- Option for breaking a test case on error (ml-testing-toolkit/pull/204) (ml-testing-toolkit-ui/pull/127), closes mojaloop/#2431
- Added hostname and prefix to api definition listPath and hostname feature (ml-testing-toolkit/pull/211) (ml-testing-toolkit-ui/pull/138), closes mojaloop/#2792. Refer this documentation ml-testing-toolkit/User-Guide-API-Provisioning.md#5-prefix-and-hostnames
- mojaloop/#2719: post quotes fails when transactionId does not equal transactionRequestId (central-ledger/#887) (central-ledger/b9944d1), closes mojaloop/#2719
- mojaloop/#2704: core-services support for non-breaking backward api compatibility (#884) (02cf7c2), closes mojaloop/#2704
- mojaloop/#2522: cl-migration scripts should configure quoting tables to utf8 follow-up (#865) (dcc57b8), closes mojaloop/#2522
- mojaloop/#2480: central-ledger migration scripts to configure quote party table utf8 support (#862) (bf4da0e), closes mojaloop/#2480
- correct transfers response structure as per API def (#271) (b143281)
- mojaloop/#2433: sdk-scheme-adapter-v11.18.5-release-failing-on-startup (39cc8e2), closes mojaloop/#2433
- mojaloop/#2436: sdk-scheme-adapter inbound-API responds incorrectly for 'Unknown uri' error scenario (132f941), closes mojaloop/#2436
- mojaloop/#2478: sdk-scheme-adapter does not publish ws notifications when cache is restarted (0a301c5), closes mojaloop/#2478
- sdk-scheme-adapter: add config option for mismatch id's (#291) (8e9717a)
- sdk-scheme-adapter: remove outdated koa2-oauth-server and bump to node 16 (#302) (9c1ae18)
- sdk-scheme-adapter: make management url config option optional (#310) (93c4048)
- sdk-scheme-adapter: update package.json with main and type correct path (#315) (6d0f9b5)
- sdk-scheme-adapter: update outbound interface and response oa3 defs (#316) (50d23d8)
- sdk-scheme-adapter: correct party outbound response (#317) (752e8b4)
- sdk-scheme-adapter: reformat error information response (#318) (ed844b1)
- mojaloop/#2574: sdk-scheme-adapter is not returning party sub-id (#120) (b0e9504), closes mojaloop/#2574 mojaloop/#2574 mojaloop/#2575
- mojaloop/#2810: timeout events are being produced for transfers with an internal-state of ABORTED_ERROR (#907) (e77de0a), closes mojaloop/#2810
- mojaloop/#2811: sdk-scheme-adapter sending incorrect transferState on a PUT transfers Callback (#331) (f7e450c), closes mojaloop/#2811
- mojaloop/#2816: SDK-Scheme-Adapter is missing/incorrect bulkTransferState on a PUT /bulkTransfer/{id} Callback by the PayeeFSP (#331) (f7e450c), closes mojaloop/#2816
- Testing Toolkit:
- Added missing test currencies to FSPIOP apis provisioned in TTK ml-testing-toolkit/pull/205
- Unable to retain the renamed folder (ml-testing-toolkit-ui/pull/126), closes mojaloop/#2656
- TTK does not send callbacks after processing a Callback-Rule with a FIXED_CALLBACK (ml-testing-toolkit-ui/pull/126), closes mojaloop/#2685
- ml-api-adapter: v13.0.0 -> v14.0.0
- central-ledger: v13.16.1 -> v15.1.2.1
- account-lookup-service: v13.0.0 -> v14.0.0
- quoting-service: v14.0.0 -> 15.0.2
- central-settlement: 13.4.1 -> v15.0.0
- central-event-processor: v11.0.2 -> v12.0.0
- bulk-api-adapter: v13.0.1 -> v14.0.0
- email-notifier: v11.0.2 -> v12.0.0
- als-oracle-pathfinder: v11.0.4 -> v12.0.0
- transaction-requests-service: v13.0.0 -> v14.0.1
- finance-portal-ui: v10.4.3 (DEPRECATED)
- finance-portal-backend-service: v15.0.2 (DEPRECATED)
- settlement-management: v11.0.0 (DEPRECATED)
- operator-settlement: v11.0.0 (DEPRECATED)
- event-sidecar: v12.0.0
- event-stream-processor: v11.0.0-snapshot -> v12.0.0-snapshot.7
- simulator: 12.0.0 -> v12.0.0
- mojaloop-simulator: v12.1.1 -> v13.0.1
- sdk-scheme-adapter: v11.18.11 -> v18.0.2
- ml-testing-toolkit: v14.0.4 -> v15.0.0
- ml-testing-toolkit-ui: v13.5.5 -> v15.0.0
- ml-testing-toolkit-client-lib: v1.0.0
- auth-service: v11.11.1 -> v13.0.2
- als-consent-service: v0.0.8 -> v0.2.0
- thirdparty-api-svc: v11.21.0 -> v13.0.2
- thirdparty-sdk: v11.55.1 -> v15.1.0
- ml-api-adapter - https://github.com/mojaloop/ml-api-adapter/releases/tag/v14.0.0
- central-ledger - https://github.com/mojaloop/central-ledger/releases/tag/v15.1.2.1
- account-lookup-service - https://github.com/mojaloop/account-lookup-service/releases/tag/v14.0.0
- quoting-service - https://github.com/mojaloop/quoting-service/releases/tag/v15.0.2
- central-settlement- https://github.com/mojaloop/central-settlement/releases/tag/v15.0.0
- central-event-processor - https://github.com/mojaloop/central-event-processor/releases/tag/v12.0.0
- bulk-api-adapter - https://github.com/mojaloop/bulk-api-adapter/releases/tag/v14.0.0
- email-notifier - https://github.com/mojaloop/email-notifier/releases/tag/v12.0.0
- als-oracle-pathfinder - https://github.com/mojaloop/als-oracle-pathfinder/releases/tag/v12.0.0
- transaction-requests-service - https://github.com/mojaloop/transaction-requests-service/releases/tag/v14.0.1
- finance-portal-ui (DEPRECATED) - https://github.com/mojaloop/finance-portal-ui/releases/tag/v10.4.3
- finance-portal-backend-service (DEPRECATED) - https://github.com/mojaloop/finance-portal-backend-service/releases/tag/v15.0.2
- settlement-management (DEPRECATED) - https://github.com/mojaloop/settlement-management/releases/tag/v11.0.0
- operator-settlement (DEPRECATED) - https://github.com/mojaloop/operator-settlement/releases/tag/v11.0.0
- event-sidecar - https://github.com/mojaloop/event-sidecar/releases/tag/v12.0.0
- event-stream-processor - https://github.com/mojaloop/event-stream-processor/releases/v12.0.0-snapshot.7
- simulator - https://github.com/mojaloop/simulator/releases/tag/v12.0.0
- mojaloop-simulator - https://github.com/mojaloop/mojaloop-simulator/releases/tag/v13.0.1
- sdk-scheme-adapter - https://github.com/mojaloop/sdk-scheme-adapter/releases/tag/v18.0.2
- ml-testing-toolkit - https://github.com/mojaloop/ml-testing-toolkit/releases/tag/v15.0.0
- ml-testing-toolkit-ui - https://github.com/mojaloop/ml-testing-toolkit-ui/releases/tag/v15.0.0
- ml-testing-toolkit-client-lib - https://github.com/mojaloop/ml-testing-toolkit-client-lib/releases/tag/v1.0.0
- auth-service - https://github.com/mojaloop/auth-service/releases/tag/v13.0.2
- als-consent-service - https://github.com/mojaloop/als-consent-oracle/releases/tag/v0.2.0
- thirdparty-api-svc - https://github.com/mojaloop/thirdparty-api-svc/releases/tag/v13.0.2
- thirdparty-sdk-adapter - https://github.com/mojaloop/thirdparty-sdk/releases/tag/v15.1.0
Note: Apart from Thirdparty-api specification
, below changes are breaking for upgrades and implementations of a Mojaloop Switch but not for FSPs or other entities interacting with a Mojaloop Switch itself.
-
Central-Ledger: Prior to this release, the liquidity check performed as part of transfer preparation compares the position account (plus the amount of the proposed transfer) against the (Net Debit Cap) NDC. An additional check has been added in this PR, to ensure that the Payer FSP has sufficient liquidity in their settlement account balance over and above their NDC. Error messages have changed as a result. For NDC limit check from
PAYER_FSP_INSUFFICIENT_LIQUIDITY
toPAYER_LIMIT_ERROR
. The error messagePAYER_FSP_INSUFFICIENT_LIQUIDITY
occurs when the payer has an insufficient settlement account balance. mojaloop/central-ledger/pull/899 -
mojaloop/#2092: Major version bump for node v16 LTS support, re-structuring of project directories to align to core Mojaloop repositories with docker image now using
/opt/app
instead of/opt/central-ledger
,opt/account-lookup-service
,opt/ml-api-adapter
,/opt/quoting-service
,/opt/bulk-api-adapter
,/opt/transaction-requests-service
,/opt/central-settlement
,/opt/email-notifier
,/opt/als-consent-oracle
,/opt/event-stream-processor
,/opt/central-event-processor
which will impact config mounts. -
Mongodb dependency charts: have been upgraded due to Bitnami's retention policy. This impacts the following components:
central-event-processor
,ml-testing-toolkit
(only when enabled),bulk-api-adapter
.Please familiarize yourself with the deployment-guide/upgrade-strategy-guide documentation.
To avoid this, ensure that all backend-dependencies are deployed separately. Currently they are included in a default Mojaloop installation for convenience, and should not be used for any production-grade installation.
In future versions of Mojaloop all backend-dependencies will be removed and a separate backend chart will be provided as an example for convenience (Similarly, this chart should not be used for any production-grade installation).
Here is an example of how this breaking change manifests itself...
Installing
v13.1.1
:> helm -n moja install moja mojaloop/mojaloop --version 13.1.1
Upgrading
v13.1.1
tov14.0.0
will result in the following error:> helm -n moja upgrade moja mojaloop/mojaloop --debug --devel --version 14.0.0 history.go:56: [debug] getting history for release moja upgrade.go:142: [debug] preparing upgrade for moja Error: UPGRADE FAILED: execution error at (mojaloop/charts/central/charts/ centraleventprocessor/charts/mongodb/templates/secrets.yaml:33:24): PASSWORDS ERROR: The secret "moja-cep-mongodb" does not contain the key "mongodb-passwords" helm.go:84: [debug] execution error at (mojaloop/charts/central/charts/ centraleventprocessor/charts/mongodb/templates/secrets.yaml:33:24): PASSWORDS ERROR: The secret "moja-cep-mongodb" does not contain the key "mongodb-passwords" UPGRADE FAILED ...
-
Thirdparty-API specification: upgrades from v0.1 to v1.0 introduced breaking changes in this release will impact the following Thirdparty components:
- auth-svc
- als-consent-service
- thirdparty-api-svc
- thirdparty-sdk
-
Thirdparty-SDK: support for configuration management via Payment Manager for Mojaloop introduced a breaking changes:
- Configuration changed to camel-case (take note of your configuration)
- Inbound/Outbound servers can NOT be run independently
-
Thirdparty - auth-service, als-consent-service: migration scripts are now compiled by Typescript instead of interpreted: If you have a deployment of any previous versions of
auth-service
orals-consent-oracle
running, you will need to create new databases and manually create migration scripts for any data that you require. This is due to the migration-scripts files being dependent on their javascript compiled variants. -
SDK-Scheme-Adapter: features merged from mojaloop-connector:
- Outbound API response body has changed, now includes headers and payloads, refer to mojaloop/sdk-scheme-adapter/v18.0.2/src/OutboundServer/api.yaml for updated interface specification.
- Re-structuring of project directories to align to core Mojaloop repositories with docker image now using
/opt/app
instead of/
(root). /secrets
folder is no longer included in docker image by default aligning to best practices. Ensure you mount and configure your secrets appropriately.
-
Testing Toolkit::
- Major version bump for node v16 LTS support, re-structuring of project directories to align to core Mojaloop repositories with docker image now using
/opt/app
. - Port changed from
5000
to4040
, this may impact the callback endpoints used in the TTK environment files. And also if there are any overrides related to ports in the helm values files. - TTK CLI is now removed from
ml-testing-toolkit
. Please use ml-testing-toolkit-client-lib for TTK CLI.
- Major version bump for node v16 LTS support, re-structuring of project directories to align to core Mojaloop repositories with docker image now using
The following components are being deprecated from the packaged Mojaloop Helm chart release:
- finance-portal Helm Chart
- finance-portal-settlement-management Helm Chart
Note these Helm Chart are still available for deployment in the Mojaloop Helm Repo (http://mojaloop.io/helm/repo/).
This is due to the underlying services having been deprecated by the Micro-Services provided by the Business Operation Framework (BOF) for Financial Management and Reporting.
More information can be found here:
BOF Helm charts to deploy the Business Operation Framework can be found here:
-
This release has been tested against the following:
- Kubernetes: v1.20.6
- Nginx Ingress Controllers: 0.43.0
- Testing Toolkit Test Cases: v14.0.0.1
-
It is recommended that all Mojaloop deployments are verified using the Mojaloop Testing Toolkit. More information can be found in the Mojaloop Deployment Guide.
-
The testing-toolkit-test-cases' Golden Path collections expects:
- the Quoting service operating mode to be set quoting-service.config.simple_routing_mode_enabled=true. If this is incorrectly configured, it will result in several failures in the quoting-service tests (7 expected failures). If this is disabled, ensure that you update the corresponding test-case environment variable parameter SIMPLE_ROUTING_MODE_ENABLED to match.
- the on-us transfers configuration to be disabled. The test-case environment variable parameter (ON_US_TRANSFERS_ENABLED, the same name used on postman collections) must similarly match this value.
-
Simulators
- We recommend using Testing Toolkit instead of Postman which is better suited for the async nature of the Mojaloop API specification (see above)
- Mojaloop-Simulator is enabled by default (six instances used).
- Ensure that correct Postman Scripts are used if you wish to test against the Mojaloop-Simulators:
- Setup Mojaloop Hub: MojaloopHub_Setup
- Setup Mojaloop Simulators for testing : MojaloopSims_Onboarding
- Golden path tests: Golden_Path_Mojaloop
- Legacy Simulators are still required and deployed by default; disabling this will cause issues since there is Account Lookup directory mocking functionality in this service.
-
Thirdparty Testing Toolkit Test Collections are not repeatable. Please refer to the following issue for more information #2717 - Thirdparty TTK Test-Collection is not repeatable. It is possible to manually cleanup persistent data to re-run the test if required.
-
Bulk API Helm Tests
Refer to the Testing Deployments section in the main README for detailed information on how to enable bulk-api-adapter tests.
-
Thirdparty API Helm Tests
Refer to thirdparty/README.md#validating-and-testing-the-3p-api on how to enabled and execute Thirdparty verification tests.
- #2119 - Idempotency for duplicate quote request
- #2322 - Helm install failing with with "medium to large" release names
- #2352 - Mojaloop Helm support for Kubernetes 1.22
- #2448 - Nginx Ingress Controller v1.0.0 is incompatible with Mojaloop Helm v13.0.x releases
- #2317 - Mojaloop Helm deployments are not compatible when deployed to ARM-arch based hosts
- Testing Toolkit Test Case issues causing instability/intermitant failures on Test Case Results
- #2717 - Thirdparty TTK Test-Collection is not repeatable
- #2734 - Failures in daily cron job running GP tests
- #2845 - QA: Replace Legacy-Simulator as a NORESPONSE_SIMPAYEE in Testing-Toolkit Goden Path Test-Suite
- #2846 - QA: Mojaloop TTK GP Test Collections to reset available liquidity after each run
- #3163 - Thirdparty Helm Charts are not scalable due to the Kubernetes Service being a headless service
- Organizations: BMGF, CrossLake, ModusBox
- Individuals: @elnyry-sam-k, @mdebarros, @vijayg10, @shashi165, @kleyow, @kirgene, @lewisdaly, @tdaly61
Note: companies are in alphabetical order, individuals are in no particular order.