@mojaloop/connection-manager-api 3.4.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +121 -61
  3. package/package.json +15 -15
package/CHANGELOG.md CHANGED
@@ -2,6 +2,61 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [3.6.0](https://github.com/mojaloop/connection-manager-api/compare/v3.5.0...v3.6.0) (2026-01-15)
6
+
7
+
8
+ ### Features
9
+
10
+ * add docker compose profiles (ci, dev, full) and developer docs ([#176](https://github.com/mojaloop/connection-manager-api/issues/176)) ([8523040](https://github.com/mojaloop/connection-manager-api/commit/85230405ed056af7e47639c7f0063a9b56c29c8f))
11
+
12
+ ## [3.5.0](https://github.com/mojaloop/connection-manager-api/compare/v3.4.0...v3.5.0) (2026-01-15)
13
+
14
+
15
+ ### Features
16
+
17
+ * add Traefik and domain-based routing ([f2ccf27](https://github.com/mojaloop/connection-manager-api/commit/f2ccf27e459984c6b76ab2f998457af3f3cad550))
18
+ * add traefik for docker compose domain-based routing ([40c0f16](https://github.com/mojaloop/connection-manager-api/commit/40c0f1670c2b825dcef194e0161b18e418779d73))
19
+ * unify domain routing in docker-compose, and persist Vault ([8a95263](https://github.com/mojaloop/connection-manager-api/commit/8a95263ae0e04bd7dc5673f97baca46cb32fadb4))
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * deps ([121a7a5](https://github.com/mojaloop/connection-manager-api/commit/121a7a5bb59c3e7e4ff642cd6d90d5bfc31a4316))
25
+ * add jest timeout ([6f59977](https://github.com/mojaloop/connection-manager-api/commit/6f5997717cc76d549eacf24184bb4273520766ef))
26
+ * add more test cases, clean up test logging and suppress DB warnings ([e65f0a7](https://github.com/mojaloop/connection-manager-api/commit/e65f0a7410ed68aac076ef74c48da337dac23cd3))
27
+ * add nvm ([e307275](https://github.com/mojaloop/connection-manager-api/commit/e307275a900c4b345b4f29ac4791c8127b3b60d2))
28
+ * bump deps ([1fcc5cf](https://github.com/mojaloop/connection-manager-api/commit/1fcc5cfbda9af7006ebbcb95e4ec98effdcf7dae))
29
+ * bump deps ([13ce461](https://github.com/mojaloop/connection-manager-api/commit/13ce4616cc24d52f7f9543938fb052adc508f03c))
30
+ * config ([e9e6cee](https://github.com/mojaloop/connection-manager-api/commit/e9e6ceea61d06c3e33fb7cca5c993ada55dd3795))
31
+ * deps ([2793011](https://github.com/mojaloop/connection-manager-api/commit/2793011fac3ee55f277d37345b94bb47a3dc9629))
32
+ * deps ([4b580fd](https://github.com/mojaloop/connection-manager-api/commit/4b580fd33bbbaad66bf53533cf258ee0be699b58))
33
+ * deps ([8cb320b](https://github.com/mojaloop/connection-manager-api/commit/8cb320b2d0cc6d936ca20a1a5b9396a218c1c9a8))
34
+ * deps ([ec5680a](https://github.com/mojaloop/connection-manager-api/commit/ec5680a30e3ec182eeb6f222f1dcf5115692728e))
35
+ * deps ([c29290a](https://github.com/mojaloop/connection-manager-api/commit/c29290a5904487ee304f8d60d13a22b6221541be))
36
+ * dfspId assignment in tests ([d3f10ed](https://github.com/mojaloop/connection-manager-api/commit/d3f10edd05ead7a54c3450fa8d12ddc3e0483bf6))
37
+ * disable auth ([fa68fae](https://github.com/mojaloop/connection-manager-api/commit/fa68fae8ff3afb199ed927d3b6fadea33c3f00d1))
38
+ * docker compose deps ([5bc4aa1](https://github.com/mojaloop/connection-manager-api/commit/5bc4aa131ae3da2f7ff3683cae900f0b5972b567))
39
+ * endpoint ([68962eb](https://github.com/mojaloop/connection-manager-api/commit/68962eb82655fcab695443b233c10996b41aef81))
40
+ * links ([6b86057](https://github.com/mojaloop/connection-manager-api/commit/6b86057cf8edf0c868c38f5a35fa3b3147d90999))
41
+ * resolve Keycloak pagination issues and standardize test configuration ([c0f5e37](https://github.com/mojaloop/connection-manager-api/commit/c0f5e37654a9d9df527827447e2b3c178d7cd291))
42
+ * urls ([1fa67c6](https://github.com/mojaloop/connection-manager-api/commit/1fa67c65f394457e88b5a9a6be18ae3b697e0332))
43
+ * vulnr ([6c7ea34](https://github.com/mojaloop/connection-manager-api/commit/6c7ea34e87c455b38826ea09387b328acd93bfe3))
44
+ * vulnr ([bd76d49](https://github.com/mojaloop/connection-manager-api/commit/bd76d49756650752ef2e300410ce86fd1209487d))
45
+
46
+
47
+ ### Documentation
48
+
49
+ * update configs and documentation to use domain-based routing (*.mcm.localhost) ([da06d77](https://github.com/mojaloop/connection-manager-api/commit/da06d77d553a86732141f0dc0a738103bbfd7bda))
50
+
51
+
52
+ ### Chore
53
+
54
+ * bump deps ([4d6bf25](https://github.com/mojaloop/connection-manager-api/commit/4d6bf25a341be11e515a979d5b53217ecdbc5eb2))
55
+ * bump deps ([5eb2ede](https://github.com/mojaloop/connection-manager-api/commit/5eb2ede9076f35e4c74739c2e1f75fd462b9d6d3))
56
+ * cleanup ([68302f5](https://github.com/mojaloop/connection-manager-api/commit/68302f59c761771ad6fc5614579db90090650240))
57
+ * fix lock file ([57c914d](https://github.com/mojaloop/connection-manager-api/commit/57c914dc241d975d6d60553790ce76a3e69332b6))
58
+ * reorder imports ([f9c7865](https://github.com/mojaloop/connection-manager-api/commit/f9c7865bfbb9e707a37f81708da59427c5a4081e))
59
+
5
60
  ## [3.4.0](https://github.com/mojaloop/connection-manager-api/compare/v3.3.2...v3.4.0) (2025-12-12)
6
61
 
7
62
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Connection Manager API
2
2
 
3
- [![Release](https://github.com/modusbox/connection-manager-api/actions/workflows/releaseWorkflow.yml/badge.svg)](https://github.com/modusbox/connection-manager-api/actions/workflows/releaseWorkflow.yml)
3
+ [![Release](https://github.com/mojaloop/connection-manager-api/actions/workflows/releaseWorkflow.yml/badge.svg)](https://github.com/mojaloop/connection-manager-api/actions/workflows/releaseWorkflow.yml)
4
4
 
5
5
  Connection Manager API is a component of the Mojaloop ecosystem that allows an administrator to manage the network configuration and PKI information for the Hub and a set of DFSPs.
6
6
 
@@ -29,7 +29,7 @@ The system uses OpenID Connect authentication, which is a provider-agnostic appr
29
29
  |OPENID_DISCOVERY_URL|OpenID Connect discovery URL|
30
30
  |OPENID_CLIENT_ID|Client ID for OpenID authentication|
31
31
  |OPENID_CLIENT_SECRET|Client secret for OpenID authentication|
32
- |OPENID_REDIRECT_URI|Redirect URI for OpenID authentication|http://localhost:3001/api/auth/callback
32
+ |OPENID_REDIRECT_URI|Redirect URI for OpenID authentication|http://mcm.localhost/api/auth/callback
33
33
  |OPENID_JWT_COOKIE_NAME|Cookie name for storing the JWT token|MCM-API_ACCESS_TOKEN
34
34
  |OPENID_EVERYONE_ROLE|Role assigned to all authenticated users|everyone
35
35
  |OPENID_MTA_ROLE|DFSP Admin role mapping for OpenID|mta
@@ -49,102 +49,162 @@ P12_PASS_PHRASE="choose your own password" npm start
49
49
 
50
50
  The default config requires a `mysql` db running on the default port.
51
51
 
52
- Once running, you can access the [Swagger UI interface](http://localhost:3001/docs)
52
+ Once running, you can access the [Swagger UI interface](http://mcm.localhost/api/docs)
53
53
 
54
54
  ## Running the server + db + web UI locally while developing
55
55
 
56
- The API server requires a mysql db. There's also a Web UI [https://github.com/modusbox/connection-manager-ui](https://github.com/modusbox/connection-manager-ui).
57
-
58
56
  To run them together, you can use the following setup:
59
57
 
60
- - Clone this repo and the Web UI repo at the same level
61
- - Use the `docker-compose` config in this repo to run a mysql DB, the WebUI and the API server
58
+ - Clone this repo
59
+ - Use the `docker-compose` config in this repo to run a mysql DB, Vault, Keycloak, the WebUI and the API server
62
60
 
63
61
  ```bash
64
- mkdir modusbox
65
- cd modusbox
66
- git clone https://github.com/modusbox/connection-manager-ui
67
- git clone https://github.com/modusbox/connection-manager-api
68
- cd connection-manager-api/docker
69
- docker-compose build
70
- docker-compose up
62
+ mkdir mojaloop
63
+ cd mojaloop
64
+ git clone https://github.com/mojaloop/connection-manager-api
65
+ cd connection-manager-api
66
+ docker compose --profile full up -d --wait
71
67
  ```
72
68
 
73
- Once the docker containers are confirmed to be stable and up, you will need to create the initial HUB environment. From a new terminal
74
- session, execute the following;
69
+ ### Docker Compose Profiles
75
70
 
76
- ```bash
77
- curl -X POST "http://localhost:3001/api/environments" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"name\": \"DEV\", \"defaultDN\": { \"CN\": \"tes1.centralhub.modusbox.live\", \"O\": \"Modusbox\", \"OU\": \"MCM\" }}"
78
- ```
71
+ | Profile | API | UI | Use case |
72
+ |---------|----------------------|-----------|-----------------------|
73
+ | `ci` | container (local) | - | CI/CD, running tests |
74
+ | `dev` | proxy → host | container | Local API development |
75
+ | `full` | container (official) | container | Full environment |
79
76
 
80
- The UI 'localhost' can now be opened in your local browser.
77
+ ```bash
78
+ # CI/CD (builds local image, runs tests)
79
+ docker compose --profile ci up -d --wait
81
80
 
82
- If you want to start the app with auth enabled:
81
+ # Local development (run API on host, UI in container)
82
+ docker compose --profile dev up -d --wait
83
+ npm start # run API locally
83
84
 
84
- 1) create a local copy of `docker-compose-auth.yml` as in:
85
+ # Full environment
86
+ docker compose --profile full up -d --wait
87
+ ```
85
88
 
86
- `cp docker-compose-auth.yml docker-compose-auth.local.yml`
89
+ ### Accessing Services
87
90
 
88
- ( `docker-compose-auth.local.yml` is git-ignored )
91
+ The stack includes Traefik for local DNS routing. All services are accessible via `*.mcm.localhost` domains:
89
92
 
90
- 1) Edit `docker-compose-auth.local.yml` and enter the security details.
93
+ | Service | URL | Description |
94
+ |---------|-----|-------------|
95
+ | MCM UI | http://mcm.localhost | Web UI |
96
+ | MCM API | http://mcm.localhost/api | API Server |
97
+ | Vault UI | http://vault.mcm.localhost | Vault UI |
98
+ | Keycloak | http://keycloak.mcm.localhost | Keycloak Admin Console |
99
+ | Mailpit | http://mailpit.mcm.localhost | Email Testing UI |
100
+ | Traefik Dashboard | http://localhost:8090 | Traefik Dashboard |
91
101
 
92
- 1) Run the bundle with:
102
+ ### Customizing Configuration
93
103
 
94
- `docker-compose build && docker-compose -f docker-compose.yml -f docker-compose-auth.local.yml up`
104
+ You can customize the domain and ports by creating a `.env` file:
95
105
 
96
- ## Configuration
106
+ ```bash
107
+ # .env
108
+ COMPOSE_DOMAIN=myapp.localhost
109
+ TRAEFIK_HTTP_PORT=8080
110
+ DATABASE_PORT=3307
111
+ ```
112
+
113
+ This will change all services to use `*.myapp.localhost`, expose Traefik on port 8080, and MySQL on port 3307.
114
+
115
+ **Note**: If port 80 is already in use, set `TRAEFIK_HTTP_PORT` to an available port (e.g., 8080). Access services at `http://ui.myapp.localhost:8080`.
116
+
117
+ ### Running Multiple Instances
118
+
119
+ To run multiple instances simultaneously:
97
120
 
98
- There's a [Constants.js file](./src/constants/Constants.js) that pulls the values from the environment or uses defaults if not defined.
121
+ ```bash
122
+ # Instance 1 (default ports)
123
+ COMPOSE_PROJECT_NAME=mcm1 COMPOSE_DOMAIN=mcm1.localhost docker compose --profile full up -d
124
+
125
+ # Instance 2 (different ports)
126
+ COMPOSE_PROJECT_NAME=mcm2 COMPOSE_DOMAIN=mcm2.localhost TRAEFIK_HTTP_PORT=8080 DATABASE_PORT=3307 docker compose --profile full up -d
127
+ ```
128
+
129
+ Access via:
130
+ - Instance 1: http://mcm1.localhost, MySQL at `localhost:3306`
131
+ - Instance 2: http://mcm2.localhost:8080, MySQL at `localhost:3307`
132
+
133
+ See [.env-example](./.env-example) for all available configuration options.
99
134
 
100
- Variables:
135
+ ## Configuration
101
136
 
102
137
  |Environment variable|Description|Default Value
103
138
  :---|:---|:---
104
139
  | **MCM API server configuration**
105
- |PORT|mcm API HTTP port|3001
140
+ |PORT|MCM API HTTP port|3001
141
+ |CLIENT_URL|MCM UI URL|http://mcm.localhost
142
+ |SWITCH_ID|Switch identifier (required)|
143
+ |SWITCH_FQDN|Switch FQDN|switch.example.com
144
+ | **Docker Compose configuration**
145
+ |COMPOSE_DOMAIN|Domain for Traefik routing (docker-compose only)|mcm.localhost
106
146
  | **Authentication features**
107
- |OPENID_ENABLED|Enables support for OAuth2. 'TRUE' to enable| (disabled)
108
- |OPENID_ENABLE_2FA|Enables two-factor authentication 'TRUE' to enable| (disabled)
147
+ |OPENID_ENABLED|Enable OpenID Connect authentication|false
148
+ |OPENID_ENABLE_2FA|Enable two-factor authentication|false
149
+ |OPENID_ALLOW_INSECURE|Allow insecure HTTPS for development|false
150
+ |OPENID_DISCOVERY_URL|OpenID Connect discovery URL|
151
+ |OPENID_CLIENT_ID|Client ID for OpenID authentication|
152
+ |OPENID_CLIENT_SECRET|Client secret for OpenID authentication|
153
+ |LOGIN_CALLBACK|OAuth callback URL|http://mcm.localhost/api/auth/callback
154
+ |OPENID_AUDIENCE|JWT audience claim|connection-manager-api
155
+ |OPENID_JWT_COOKIE_NAME|Cookie name for JWT token|MCM-API_ACCESS_TOKEN
156
+ | **OpenID Connect groups/roles**
157
+ |OPENID_APPLICATION_GROUP|Application group name|Application
158
+ |OPENID_EVERYONE_GROUP|Authenticated users group|everyone
159
+ |OPENID_MTA_GROUP|DFSP Admin group|MTA
160
+ |OPENID_PTA_GROUP|HUB Admin group|PTA
161
+ |OPENID_DFSP_GROUP|DFSP group|DFSP
109
162
  | **Session configuration**
110
- |SESSION_STORE_SECRET|Secret for encrypting session data|
111
- |SESSION_MAX_AGE|Session timeout in milliseconds|86400000 (24 hours)
112
- |SESSION_SAME_SITE|SameSite cookie setting|'strict'
113
- |SESSION_SECURE|Whether session cookies require HTTPS|true in production
114
- | **OAuth2 roles**
115
- |MTA_ROLE|DFSP Admin role|'Application/MTA'
116
- |PTA_ROLE|HUB Admin Role|'Application/PTA'
117
- |EVERYONE_ROLE|Authenticated users role|'Internal/everyone'
163
+ |SESSION_STORE_SECRET|Secret for encrypting session data|connection_manager_session_secret
164
+ |SESSION_COOKIE_SAME_SITE_STRICT|Use strict SameSite cookie setting|true
118
165
  | **Database configuration**
119
- |DATABASE_HOST|mysql host|localhost
120
- |DATABASE_PORT|mysql port|3306
121
- |DATABASE_USER|mysql user|mcm
122
- |DATABASE_PASSWORD|mysql password|mcm
123
- |DATABASE_SCHEMA|mysql schema|mcm
166
+ |DATABASE_HOST|MySQL host|localhost
167
+ |DATABASE_PORT|MySQL port (also used for docker-compose host mapping)|3306
168
+ |DATABASE_USER|MySQL user|mcm
169
+ |DATABASE_PASSWORD|MySQL password|mcm
170
+ |DATABASE_SCHEMA|MySQL schema|mcm
124
171
  |DATABASE_SSL_ENABLED|Enable SSL for MySQL connection|false
125
172
  |DATABASE_SSL_VERIFY|Verify server certificate when using SSL|false
126
173
  |DATABASE_SSL_CA|CA certificate string for MySQL SSL|''
127
- |DB_RETRIES|Times the initial connection to the DB will be retried|10,
128
- |DB_CONNECTION_RETRY_WAIT_MILLISECONDS|Pause between retries|5000,
129
- |RUN_MIGRATIONS|If true, run db schema migration at startup. Can always be true as the schema creation is idempotent|true,
130
- |CURRENCY_CODES|Path to file containing all the supported currency codes|'./data/currencyCodes.json',
131
- |DATA_CONFIGURATION_FILE|Initial data configuration path. See specific doc|'./data/sampleConfiguration.json'
132
- | **MCM Internal Certificate Authority configuration**
133
- |P12_PASS_PHRASE|Pass phrase used to save the internal CA Key in the DB.|
134
- | **Support for self-signed certificates on OAuth Server and other TLS client connections**
135
- |EXTRA_CERTIFICATE_CHAIN_FILE_NAME|Extra trusted server certificate chain file name ( PEM-encoded, as explained in https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options )|
174
+ |DB_RETRIES|Times the initial connection to the DB will be retried|10
175
+ |DB_CONNECTION_RETRY_WAIT_MILLISECONDS|Pause between retries|1000
176
+ |DB_POOL_SIZE_MAX|Maximum database connection pool size|10
177
+ | **Vault PKI configuration**
178
+ |VAULT_ENDPOINT|Vault server endpoint|http://127.0.0.1:8233
179
+ |VAULT_AUTH_METHOD|Vault auth method (K8S or APP_ROLE)|APP_ROLE (required)
180
+ |VAULT_ROLE_ID_FILE|Path to Vault role ID file|docker/vault/tmp/role-id
181
+ |VAULT_ROLE_SECRET_ID_FILE|Path to Vault secret ID file|docker/vault/tmp/secret-id
182
+ |VAULT_PKI_SERVER_ROLE|Vault PKI role for server certs|(required)
183
+ |VAULT_PKI_CLIENT_ROLE|Vault PKI role for client certs|(required)
184
+ |VAULT_SIGN_EXPIRY_HOURS|Certificate signing expiry in hours|43800
185
+ |PRIVATE_KEY_LENGTH|RSA key length for certificates|4096
186
+ |PRIVATE_KEY_ALGORITHM|Key algorithm|rsa
187
+ |INTERNAL_CA_TTL|Internal CA certificate TTL|8760h
188
+ |VAULT_MOUNT_PKI|Vault PKI mount path|pki
189
+ |VAULT_MOUNT_INTERMEDIATE_PKI|Vault intermediate PKI mount path|pki_int
190
+ |VAULT_MOUNT_KV|Vault KV mount path|secrets
191
+ | **Certificate CSR parameters**
192
+ |CLIENT_CSR_PARAMETERS|Path to client CSR parameters JSON file|
193
+ |SERVER_CSR_PARAMETERS|Path to server CSR parameters JSON file|
194
+ |CA_CSR_PARAMETERS|Path to CA CSR parameters JSON file|
195
+ | **Support for self-signed certificates**
196
+ |EXTRA_CERTIFICATE_CHAIN_FILE_NAME|Extra trusted server certificate chain file name|
136
197
  |EXTRA_ROOT_CERT_FILE_NAME|Extra trusted server root certificate file name|
137
- | **CFSSL**
138
- |CFSSL_VERSION|Expected CFSSL version to use. Should be updated to keep in sync with the cfssl development|1.3.4
139
- |CFSSL_COMMAND_PATH|cfssl command; it should be just cfssl if it's in the PATH or the full path|cfssl
140
198
  | **Keycloak Integration**
141
199
  |KEYCLOAK_ENABLED|Enable Keycloak integration for DFSP account creation|false
142
- |KEYCLOAK_BASE_URL|Base URL of the Keycloak server|http://localhost:8080
143
- |KEYCLOAK_DISCOVERY_URL|OpenID Connect discovery URL for Keycloak|http://localhost:8080/realms/dfsps/.well-known/openid-configuration
200
+ |KEYCLOAK_BASE_URL|Base URL of the Keycloak server|http://keycloak.mcm.localhost
201
+ |KEYCLOAK_DISCOVERY_URL|OpenID Connect discovery URL for Keycloak|http://keycloak.mcm.localhost/realms/dfsps/.well-known/openid-configuration
144
202
  |KEYCLOAK_ADMIN_CLIENT_ID|Client ID for Keycloak admin operations|connection-manager-client
145
203
  |KEYCLOAK_ADMIN_CLIENT_SECRET|Client secret for Keycloak admin operations|
146
204
  |KEYCLOAK_DFSPS_REALM|Keycloak realm for DFSP accounts|dfsps
147
- |KEYCLOAK_AUTO_CREATE_ACCOUNTS|Automatically create Keycloak accounts when DFSPs are created|**false** (disabled by default)
205
+ |KEYCLOAK_AUTO_CREATE_ACCOUNTS|Automatically create Keycloak accounts when DFSPs are created|false
206
+ | **Other features**
207
+ |DFSP_WATCHER_ENABLED|Enable DFSP watcher service|false
148
208
 
149
209
  ## Testing
150
210
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mojaloop/connection-manager-api",
3
- "version": "3.4.0",
3
+ "version": "3.6.0",
4
4
  "description": "Mojaloop Connection Manager API",
5
5
  "license": "Apache-2.0",
6
6
  "author": "ModusBox",
@@ -46,7 +46,7 @@
46
46
  "migrate:rollback": "npm run knex-cli migrate:rollback",
47
47
  "migrate:new": "npm run knex-cli migrate:make",
48
48
  "knex-cli": "DOTENV_CONFIG_PATH=$(pwd)/.env npx knex --knexfile src/knexfile.js ",
49
- "backend:start": "docker compose --profile functional up -d --wait",
49
+ "backend:start": "docker compose --profile ci up -d --wait",
50
50
  "backend:stop": "docker compose down -v",
51
51
  "backend:restart": "npm run backend:stop && npm run backend:start"
52
52
  },
@@ -64,7 +64,7 @@
64
64
  "sanitize-html": "2.12.1",
65
65
  "oas3-tools": {
66
66
  "body-parser": "^1.20.3",
67
- "qs": "^6.14.0",
67
+ "qs": "^6.14.1",
68
68
  "js-yaml": "^3"
69
69
  },
70
70
  "postcss": {
@@ -92,16 +92,16 @@
92
92
  },
93
93
  "dependencies": {
94
94
  "@hapi/hapi": "21.4.4",
95
- "@keycloak/keycloak-admin-client": "^26.4.7",
95
+ "@keycloak/keycloak-admin-client": "^26.5.1",
96
96
  "@kubernetes/client-node": "^1.4.0",
97
- "@mojaloop/central-services-logger": "11.10.2",
97
+ "@mojaloop/central-services-logger": "11.10.3",
98
98
  "@mojaloop/central-services-metrics": "12.8.3",
99
- "@mojaloop/central-services-shared": "18.34.5",
99
+ "@mojaloop/central-services-shared": "18.34.6",
100
100
  "@ory/keto-client": "^25.4.0",
101
101
  "async-exit-hook": "^2.0.1",
102
102
  "async-retry": "^1.3.3",
103
103
  "axios": "1.13.2",
104
- "body-parser": "^2.2.1",
104
+ "body-parser": "^2.2.2",
105
105
  "connect": "^3.7.0",
106
106
  "convict": "6.2.4",
107
107
  "cookies": "^0.9.1",
@@ -117,22 +117,22 @@
117
117
  "jsonwebtoken": "^9.0.3",
118
118
  "knex": "^3.1.0",
119
119
  "moment": "^2.30.1",
120
- "mysql2": "^3.15.3",
120
+ "mysql2": "^3.16.0",
121
121
  "node-forge": "^1.3.3",
122
122
  "node-vault": "^0.10.9",
123
123
  "oas3-tools": "^2.2.3",
124
124
  "openid-client": "^6.8.1",
125
125
  "passport": "^0.7.0",
126
126
  "passport-jwt": "^4.0.1",
127
- "qs": "^6.14.0",
128
- "soap": "^1.6.1",
127
+ "qs": "^6.14.1",
128
+ "soap": "^1.6.3",
129
129
  "ulid": "3.0.2",
130
130
  "winston": "^3.19.0",
131
131
  "xml2js": "^0.6.2"
132
132
  },
133
133
  "devDependencies": {
134
- "@commitlint/cli": "^20.2.0",
135
- "@commitlint/config-conventional": "^20.2.0",
134
+ "@commitlint/cli": "^20.3.1",
135
+ "@commitlint/config-conventional": "^20.3.1",
136
136
  "@types/jest": "30.0.0",
137
137
  "audit-ci": "^7.1.0",
138
138
  "axios-mock-adapter": "2.1.0",
@@ -144,14 +144,14 @@
144
144
  "husky": "^9.1.7",
145
145
  "jest": "^30.0.2",
146
146
  "jest-extended": "^7.0.0",
147
- "npm-check-updates": "^19.2.0",
147
+ "npm-check-updates": "^19.3.1",
148
148
  "nyc": "^17.1.0",
149
- "sinon": "^21.0.0",
149
+ "sinon": "^21.0.1",
150
150
  "snazzy": "^9.0.0",
151
151
  "source-map-support": "^0.5.21",
152
152
  "standard-version": "^9.5.0",
153
153
  "standardx": "^7.0.0",
154
- "supertest": "^7.1.4",
154
+ "supertest": "^7.2.2",
155
155
  "tap-xunit": "^2.4.1",
156
156
  "tmp": "^0.2.5"
157
157
  },