Helm Release Notes
Date | Revision | Description |
---|---|---|
2025-03-25 | 0 | Initial draft |
2025-03-28 | 0 | Initial release |
0. Summary
Enhancements and breaking changes to the v16.0.4 Release and v16.0.0 Release releases, which include:
- FX feature support in Mojaloop: https://docs.mojaloop.io/product/features/fx.html
- ISO 20022 messages supported in Mojaloop: https://github.com/mojaloop/iso-20022-docs/blob/main/Workstream%20documents/MarketPracticeDoc/MarketPracticeDocument.md
- Inter-scheme supported: https://docs.mojaloop.io/product/features/interscheme.html
- Mojaloop FSPIOP API 2.0 now supported (FX, inter-scheme included in)
- General maintenance: bug fixes, updates to license headers and license files for compliance and Nodejs upgrades
- Performance improvements in Central Ledger via batching of prepare, filfill messages including error scenarios. Batching now natively supported with batch-size being configurable.
- Merchant payments enhancements (adjacent)
Notes:
Release issue for reference: mojaloop/project#3847
Guidance for upgrade: https://docs.mojaloop.io/technical/technical/deployment-guide/upgrade-strategy-guide.html
1. New Features
- central-ledger: feat: add fx and iso 20022 compatibility (mojaloop/central-ledger/#1142)
- quoting-service feat: add fx and iso 20022 compatibility (mojaloop/quoting-service/#383)
- account-lookup-service: feat: add fx and iso 20022 compatibility (mojaloop/account-lookup-service/#518)
- central-settlement: feat: add fx and iso 20022 compatibility (mojaloop/central-settlement/#416)
- ml-api-adapter: feat: add fx and iso 20022 compatibility (mojaloop/ml-api-adapter/#564)
- mojaloop/#1142 feat: add iso 20022 compatibility (mojaloop/#1142)
- mojaloop/#528 updated central-services-shared to log error details (mojaloop/#528), closes mojaloop/#528
- mojaloop/#539 add DELETE participants validation (mojaloop/#539), closes mojaloop/#539
- mojaloop/#109 parameterize switch id (mojaloop/#109), closes mojaloop/#109
- mojaloop/#1154 enabled otel for kafka (mojaloop/#1154), closes mojaloop/#1154
- mojaloop/#4077 add batch size range validation (mojaloop/#1159), closes mojaloop/#4077
- mojaloop/#574 enabled otel for kafka (mojaloop/#574), closes mojaloop/#574
- mojaloop/#575 add audit query tags (mojaloop/#575), closes mojaloop/#575
- mojaloop/#579 updated central-services-shared to log error details (mojaloop/#579), closes mojaloop/#579
- mojaloop/#13 added batchSize option (mojaloop/#13), closes mojaloop/#13
- mojaloop/#14 updated progress logging to show proper total values (mojaloop/#14), closes mojaloop/#14
- mojaloop/#21 added notifications for failed tests only (mojaloop/#21), closes mojaloop/#21
- mojaloop/#196 adding pisp demonstration (mojaloop/#196), closes mojaloop/#196
- mojaloop/#267 used unified ilp version (mojaloop/#267), closes mojaloop/#267
- mojaloop/#288 add db connection string support (mojaloop/#288), closes mojaloop/#288
- mojaloop/#390 fixed db error - ER_BAD_FIELD_ERROR (mojaloop/#390), closes mojaloop/#390
- mojaloop/#394 update streaming lib to use otel (mojaloop/#394), closes mojaloop/#394
- mojaloop/#400 updated central-services-shared to log request error details (mojaloop/#400), closes mojaloop/#400
- mojaloop/#558 switched to use ContextLogger (mojaloop/#558), closes mojaloop/#558
- mojaloop/#553 delete account endpoint (mojaloop/#553), closes mojaloop/#553
- mojaloop/#260 parameterize switch id (mojaloop/#260), closes mojaloop/#260
- mojaloop/#3984 parameterize switch id (mojaloop/#94), closes mojaloop/#3984
- mojaloop/#103 parameterize switch id (mojaloop/#103), closes mojaloop/#103
2. Bug Fixes
- mojaloop/#3829 added jwsSigner defining to PUT /participants callback (mojaloop/#472), closes mojaloop/#3829
- mojaloop/# ( added logs and process.on('uncaughtException') (mojaloop/#527), closes [mojaloop/# (](https://github.com/mojaloop/project/issues/ ()
- mojaloop/#4072 bump protocol versions to 2.0 (mojaloop/#124), closes mojaloop/#4072
- mojaloop/#1150 funds-out transferid regex (mojaloop/#1150), closes mojaloop/#1150
- mojaloop/#417 fixes for
knex.insert
returned insert index (mojaloop/#417), closes mojaloop/#417 - mojaloop/#264 uuid/ulid regex (mojaloop/#264), closes mojaloop/#264
- mojaloop/# ( content type default header (mojaloop/#289), closes [mojaloop/# (](https://github.com/mojaloop/project/issues/ ()
- mojaloop/#: metrics and test coverage fixes ( metrics and test coverage fixes (mojaloop/#388), closes [mojaloop/#: metrics and test coverage fixes (](https://github.com/mojaloop/project/issues/: metrics and test coverage fixes ()
- mojaloop/#3750 add timer for party lookup in cache (mojaloop/#471), closes mojaloop/#3750
- mojaloop/#535 quote request extensions (mojaloop/#535), closes mojaloop/#535
- mojaloop/#quoterequest payload's extensionlist internal form fix (post /quoterequest payload's extensionlist internal form fix (mojaloop/#539), closes [mojaloop/#quoterequest payload's extensionlist internal form fix (](https://github.com/mojaloop/project/issues/quoterequest payload's extensionlist internal form fix ()
- mojaloop/#543 log server restarts more accurately (mojaloop/#543), closes mojaloop/#543
- mojaloop/#542 fix fxQuote with RECEIVE amountType (mojaloop/#542), closes mojaloop/#542
- mojaloop/#563 add sdk 2.1 spec files for ttksims (mojaloop/#563), closes mojaloop/#563
- mojaloop/#108 uuid/ulid regex (mojaloop/#108), closes mojaloop/#108
3. Application Versions
- central-event-processor: v12.1.0 -> v12.1.1 (Compare)
- bulk-api-adapter: v17.0.0 -> v17.1.9 (Compare)
- event-sidecar: v14.0.0 -> v14.0.3 (Compare)
- ml-testing-toolkit-ui: v15.4.2 -> v16.2.0 (Compare)
- als-oracle-pathfinder: v12.1.0 -> v12.1.3 (Compare)
- auth-service: v15.0.0 -> v15.1.2 (Compare)
- ml-testing-toolkit: v17.1.1 -> v18.11.0 (Compare)
- als-msisdn-oracle-svc: -> v0.0.14 (Compare)
- transaction-requests-service: v14.1.2 -> v14.3.9 (Compare)
- ml-api-adapter: v14.0.5 -> v16.3.2 (Compare)
- ml-testing-toolkit-client-lib: v1.2.2 -> v1.9.0 (Compare)
- sdk-scheme-adapter: v23.4.0 -> v24.6.2 (Compare)
- mojaloop-simulator: v15.0.0 -> v15.3.0 (Compare)
- thirdparty-api-svc: v14.0.0 -> v15.0.2 (Compare)
- als-consent-oracle: v0.2.2 -> v1.0.1 (Compare)
- account-lookup-service: v15.2.3 -> v17.6.0 (Compare)
- simulator: v12.1.0 -> v12.2.5 (Compare)
- inter-scheme-proxy-adapter: -> v1.4.1 (Compare)
- quoting-service: v15.7.0 -> v17.6.0 (Compare)
- central-ledger: v17.6.1 -> v19.3.0 (Compare)
- thirdparty-sdk: v15.1.1 -> v15.1.3 (Compare)
- event-stream-processor: v12.0.0-snapshot.9 -> v12.0.0-snapshot.14 (Compare)
- central-settlement: v16.0.0 -> v17.0.6 (Compare)
- email-notifier: v14.0.0 -> v14.0.3 (Compare)
4. API Versions
This release supports the following versions of the Mojaloop family of APIs:
API | Supported Versions | Notes |
---|---|---|
FSPIOP | v1.1, v2.0 | |
Settlements | v2.0 | |
Admin | v1.0 | |
ALS Oracle | v1.0 | |
Thirdparty | v1.0 |
5. Testing notes
-
This release has been validated against the following Dependency Test Matrix:
Dependency Version Notes Kubernetes v1.32 AWS EKS, AWS EKS Supported Version Notes containerd v1.7.25 Nginx Ingress Controller helm-ingress-nginx-4.7.0 / ingress-controller-v1.8.0 Amazon Linux v2 MySQL bitnami/mysql:8.0.36-debian-11-r4 Kafka bitnami/kafka:3.9.0-debian-12-r12 Redis bitnami/redis:7.4.2-debian-12-r6 Redis Cache bitnami/redis-cluster:7.2.5-debian-12-r3 MongoDB bitnami/mongodb:8.0.6-debian-12-r0 Nodejs 18.20.6 Testing Toolkit Test Cases v17.0.0 example-mojaloop-backend v17.0.0 README -
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 (See above Dependency Test Matrix for exact version required for this release) Golden Path collections expects:
- the Quoting service operating mode to be set quoting-service.config.simple_routing_mode_enabled=true (in helm mojaloop/values.yaml under quoting-service config). 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 ( in helm mojaloop/values.yaml ml-testing-toolkit -> extraEnvironments.hub-k8s-default-environment.json.inputValues) to match.
- the on-us transfers (in mojaloop/values.yaml "enable_on_us_transfers: false" under centralledger-handler-transfer-prepare -> config and cl-handler-bulk-transfer-prepare -> config) configuration to be disabled. The test-case environment variable parameter (ON_US_TRANSFERS_ENABLED (in helm mojaloop/values.yaml ml-testing-toolkit -> extraEnvironments.hub-k8s-default-environment.json.inputValues), 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 for single transfers usually and three more specific to bulk).
- The Mojaloop Testing Toolkit is used to simulate FSPs for several test cases in the test collections and these can be run from the TTK UI or command line (CLI) options
- 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.
-
Testing the Bulk functionality including "sdk-scheme-adapter"
For details regarding deployment and validation of simulators needed for bulk (for adoption provided in sdk-scheme-adapter) refer to deploying Mojaloop TTK simulators.
-
Sample / reference test results for scenarios run with Mojaloop v17.0.0 on a dev environment: mojaloop/project#3847 (comment)
6. Configuration Options:
Mojaloop Helm deployments currently include the following configuration options:
Helm Test | Test Cases | Description | Enabled by default? | Notes |
---|---|---|---|---|
ml-ttk-test-setup.tests | hub/provisioning | Standard Provisioning Collection | Yes | Required as a pre-requisite for all tests. |
ml-ttk-test-val-gp | hub/golden_path | Golden-Path (GP) Test Collection FSPIOP Mode | Yes | Previously named ml-ttk-test-validation prior to v13.1.0 release. |
ml-ttk-test-val-gp (ISO) | hub/golden_path | Golden-Path (GP) Test Collection ISO20022 Mode | No | api_type: &API_TYPE "iso20022" , ttk_transformer_name: &TTK_TRANSFORMER_NAME "fspiopToISO20022" , SDK_ILP_VERSION: &SDK_ILP_VERSION "4" , validCondition: &validCondition "$param_validConditionV4" , ilpPacket: &ilpPacket "$param_validIlpPacketV4" , validFulfillment: &validFulfillment "$param_validFulfillmentV4" This configuration needs to be set while disabling API_TYPE=fspiop. |
ml-ttk-test-setup-interscheme | hub/inter_scheme | Inter-scheme Provisioning Collection | No | interscheme_enabled: true . This configuration needs to be set along with cl_payee_participant_currency_validation_enabled: false (otherwise tests fail; to confirm payee fsp validation is disabled in inter-scheme mode). |
ml-ttk-test-val-interscheme | hub/inter_scheme | Inter-scheme Test Collection | No | interscheme_enabled: true . This configuration needs to be set along with cl_payee_participant_currency_validation_enabled: false (otherwise tests fail; to confirm payee fsp validation is disabled in inter-scheme mode). |
ml-ttk-test-val-bulk | hub/other_tests/bulk_transfers | Bulk Test Collection | No | mojaloop-bulk.enabled=true must be set to deploy the Bulk-API-Adapter components. |
ml-ttk-test-setup-sdk-bulk | hub/provisioning_sdkbulk | SDK Bulk Provisioning Collection | No | mojaloop-bulk.enabled=true & mojaloop-ttk-simulators.enabled=true must be set to deploy the Bulk-API-Adapter and TTK Simulators components. |
ml-ttk-test-val-sdk-bulk | hub/sdk_scheme_adapter/bulk | SDK Bulk Test Collection | No | mojaloop-bulk.enabled=true & mojaloop-ttk-simulators.enabled=true must be set to deploy Bulk-API-Adapter and TTK Simulators components. components. |
ml-ttk-test-val-sdk-r2p | hub/sdk_scheme_adapter/request-to-pay | SDK Request To Pay Test Collection | No | mojaloop-ttk-simulators.enabled=true must be set to deploy the TTK Simulators components. components. |
ml-ttk-test-setup-tp | hub/provisioning_thirdparty | Thirdparty Provisioning Collection | No | thirdparty.enabled=true , account-lookup-service.account-lookup-service.config.featureEnableExtendedPartyIdType=true & account-lookup-service.account-lookup-service-admin.config.featureEnableExtendedPartyIdType=true must be set to deploy the Thirdparty components. |
ml-ttk-test-val-tp | hub/thirdparty | Thirdparty Test Collection | No | thirdparty.enabled=true , account-lookup-service.account-lookup-service.config.featureEnableExtendedPartyIdType=true & account-lookup-service.account-lookup-service-admin.config.featureEnableExtendedPartyIdType=true must be set to deploy the Bulk-API-Adapter components. |
ml-ttk-test-cleanup | hub/cleanup | Cleanup Collection | Yes | Post cleanup scripts, e.g. executes position reset test collection. Note that ml-ttk-test-cleanup.test.config.saveReport is disabled by default. |
7. Breaking Changes
central-ledger
- Configuration changes in central-ledger config files
- Database changes to central-ledger to support new features (FX, Inter-scheme, ISO 20022 messaging)
ml-api-adapter
- Configuration changes
- API changes to support FSPIOP 2.0 and ISO 20022 messaging
bulk-api-adapter
- Configuration changes
- API changes to support FSPIOP 2.0 and ISO 20022 messaging
transaction-requests-service
- Configuration changes
- API changes to support FSPIOP 2.0
quoting-service
- Configuration changes
- API changes to support FSPIOP 2.0 and ISO 20022 messaging
account-lookup-service
- Configuration changes
- API changes to support FSPIOP 2.0 and ISO 20022 messaging
8. Known Issues
- #2119 - Idempotency for duplicate quote request - Mitigation: this is not critical and only applies in persistent mode; will cause error even in persistent mode
- #2322 - Helm install failing with with "medium to large" release names: Use release names within the character limit
- #2317 - Mojaloop Helm deployments are not compatible when deployed to ARM-arch based hosts: Mitigation: Not a significant issue anymore as scripts are provided to build images for various architectures
- #2435 - Quoting-Service is incorrectly handling failed responses to FSPs when forwarding requests: Mitigation: low severity and still causes errors (and times-out )
- Test issues causing instability/intermitant failures on Test Case Results (No repro so far with v17 but keeping open in case an occurence comes up)
9. Contributors
- Organizations: BMGF, Co-Develop, InFiTX, MLF, Thitsaworks
- Individuals: @devarsh10, @ei-nghon-phoo, @elnyry-sam-k, @geka-evk, @gibaros, @kalinkrustev, @kleyow, @oderayi, @PaulGregoryBaker , @s-prak, @shashi165, @tw-sithumyo, @TWith2Sugars, @vijayg10
Note: names are listed in alphabetical order.
Full Changelog: v16.0.4...v17.0.0