@mojaloop/bulk-api-adapter 17.2.4 → 17.2.6
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.
- package/.circleci/config.yml +1 -1
- package/.grype.yaml +38 -15
- package/.nvmrc +1 -1
- package/CHANGELOG.md +20 -0
- package/Dockerfile +11 -1
- package/audit-ci.jsonc +1 -0
- package/eslint.config.mjs +50 -0
- package/package.json +39 -27
- package/{sbom-v17.2.3.csv → sbom-v17.2.5.csv} +344 -446
- package/src/handlers/notification/index.js +2 -2
- package/src/handlers/register.js +1 -0
- package/src/lib/healthCheck/subServiceHealth.js +1 -0
- package/test/unit/api/handlers/bulkTransfers/{id}/error.test.js +1 -0
- package/test/unit/api/handlers/bulkTransfers/{id}.test.js +2 -0
- package/test/unit/handlers/notification/handler.test.js +2 -2
- package/test/unit/lib/config.test.js +2 -2
package/.circleci/config.yml
CHANGED
package/.grype.yaml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
disabled: false
|
|
2
|
+
scan-type: source
|
|
2
3
|
ignore:
|
|
3
|
-
# --- Existing ignores ---
|
|
4
4
|
- vulnerability: GHSA-5j98-mcp5-4vw2
|
|
5
5
|
include-aliases: true
|
|
6
6
|
reason: >-
|
|
@@ -9,31 +9,41 @@ ignore:
|
|
|
9
9
|
- vulnerability: CVE-2025-60876
|
|
10
10
|
include-aliases: true
|
|
11
11
|
reason: "Alpine base image package (apk): busybox - no npm fix available as of 2026-02-06 (moderate severity)"
|
|
12
|
-
|
|
13
|
-
# --- Base image npm packages (bundled in /usr/local/lib/node_modules/npm/) ---
|
|
14
12
|
- vulnerability: GHSA-34x7-hfp2-rc4v
|
|
15
13
|
include-aliases: true
|
|
16
|
-
reason:
|
|
14
|
+
reason: >-
|
|
15
|
+
Base image npm package: tar 6.2.1/7.4.3 - bundled in Node.js base image npm, not fixable via application
|
|
16
|
+
dependencies as of 2026-02-10
|
|
17
17
|
- vulnerability: GHSA-8qq5-rm4j-mr97
|
|
18
18
|
include-aliases: true
|
|
19
|
-
reason:
|
|
19
|
+
reason: >-
|
|
20
|
+
Base image npm package: tar 6.2.1/7.4.3 - bundled in Node.js base image npm, not fixable via application
|
|
21
|
+
dependencies as of 2026-02-10
|
|
20
22
|
- vulnerability: GHSA-r6q2-hw4h-h46w
|
|
21
23
|
include-aliases: true
|
|
22
|
-
reason:
|
|
24
|
+
reason: >-
|
|
25
|
+
Base image npm package: tar 6.2.1/7.4.3 - bundled in Node.js base image npm, not fixable via application
|
|
26
|
+
dependencies as of 2026-02-10
|
|
23
27
|
- vulnerability: GHSA-73rr-hh4g-fpgx
|
|
24
28
|
include-aliases: true
|
|
25
|
-
reason:
|
|
29
|
+
reason: >-
|
|
30
|
+
Base image npm package: diff 5.2.0 - bundled in Node.js base image npm, not fixable via application dependencies
|
|
31
|
+
as of 2026-02-10 (low severity)
|
|
26
32
|
- vulnerability: GHSA-3966-f6p6-2qr9
|
|
27
33
|
include-aliases: true
|
|
28
|
-
reason:
|
|
34
|
+
reason: >-
|
|
35
|
+
Base image npm package: npm 10.9.4 - bundled in Node.js base image, not fixable via application dependencies as of
|
|
36
|
+
2026-02-10
|
|
29
37
|
- vulnerability: GHSA-g9mf-h72j-4rw9
|
|
30
38
|
include-aliases: true
|
|
31
|
-
reason:
|
|
39
|
+
reason: >-
|
|
40
|
+
Base image npm package: undici - bundled in Node.js base image npm, not fixable via application dependencies as of
|
|
41
|
+
2026-02-10
|
|
32
42
|
- vulnerability: GHSA-xxjr-mmjv-4gpg
|
|
33
43
|
include-aliases: true
|
|
34
|
-
reason:
|
|
35
|
-
|
|
36
|
-
|
|
44
|
+
reason: >-
|
|
45
|
+
Base image npm package: lodash-es 4.17.21 - bundled in Node.js base image npm, not fixable via application
|
|
46
|
+
dependencies as of 2026-02-10
|
|
37
47
|
- vulnerability: CVE-2025-15467
|
|
38
48
|
include-aliases: true
|
|
39
49
|
reason: "Alpine base image package (apk): libcrypto3/libssl3 - no npm fix available as of 2026-02-10 (critical severity)"
|
|
@@ -70,8 +80,6 @@ ignore:
|
|
|
70
80
|
- vulnerability: CVE-2025-69418
|
|
71
81
|
include-aliases: true
|
|
72
82
|
reason: "Alpine base image package (apk): libcrypto3/libssl3 - no npm fix available as of 2026-02-10 (medium severity)"
|
|
73
|
-
|
|
74
|
-
# --- Node.js binary vulnerabilities ---
|
|
75
83
|
- vulnerability: CVE-2025-55130
|
|
76
84
|
include-aliases: true
|
|
77
85
|
reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-10 (critical severity)"
|
|
@@ -90,7 +98,22 @@ ignore:
|
|
|
90
98
|
- vulnerability: CVE-2025-55132
|
|
91
99
|
include-aliases: true
|
|
92
100
|
reason: "Node.js binary vulnerability: node - requires Node.js runtime update as of 2026-02-10 (medium severity)"
|
|
93
|
-
|
|
101
|
+
- vulnerability: GHSA-3ppc-4f35-3m26
|
|
102
|
+
include-aliases: true
|
|
103
|
+
reason: >-
|
|
104
|
+
Base image npm package: minimatch - bundled in Node.js base image, not fixable via application dependencies as of
|
|
105
|
+
2026-02-23 (high severity)
|
|
106
|
+
- vulnerability: GHSA-83g3-92jg-28cx
|
|
107
|
+
include-aliases: true
|
|
108
|
+
reason: >-
|
|
109
|
+
Base image npm package: tar - bundled in Node.js base image, not fixable via application dependencies as of
|
|
110
|
+
2026-02-23 (high severity)
|
|
111
|
+
- vulnerability: CVE-2026-27171
|
|
112
|
+
include-aliases: true
|
|
113
|
+
reason: "Alpine base image package (apk): zlib - no npm fix available as of 2026-02-23 (moderate severity)"
|
|
114
|
+
- vulnerability: GHSA-2g4f-4pwh-qvx6
|
|
115
|
+
include-aliases: true
|
|
116
|
+
reason: "Unfixable npm transitive vulnerability: ajv (moderate severity) as of 2026-02-23"
|
|
94
117
|
output:
|
|
95
118
|
- table
|
|
96
119
|
- json
|
package/.nvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
22.
|
|
1
|
+
22.22.0
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
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
|
+
### [17.2.6](https://github.com/mojaloop/bulk-api-adapter/compare/v17.2.5...v17.2.6) (2026-02-26)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Chore
|
|
9
|
+
|
|
10
|
+
* maintenance updates ([#145](https://github.com/mojaloop/bulk-api-adapter/issues/145)) ([8813af4](https://github.com/mojaloop/bulk-api-adapter/commit/8813af4ccc5ed444df3624a85569ad3c8950946d))
|
|
11
|
+
* **sbom:** update sbom [skip ci] ([2f97d59](https://github.com/mojaloop/bulk-api-adapter/commit/2f97d5943c4b1243978da6156d3ea42e82bac826))
|
|
12
|
+
|
|
13
|
+
### [17.2.5](https://github.com/mojaloop/bulk-api-adapter/compare/v17.2.4...v17.2.5) (2026-02-19)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* remove deprecared mongodb option ([#144](https://github.com/mojaloop/bulk-api-adapter/issues/144)) ([5d336d5](https://github.com/mojaloop/bulk-api-adapter/commit/5d336d5259f4ead8719db9884fdfaafdbda826a0))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Chore
|
|
22
|
+
|
|
23
|
+
* **sbom:** update sbom [skip ci] ([f0a0d19](https://github.com/mojaloop/bulk-api-adapter/commit/f0a0d192490feecb99bb4e27a7c6836073545ad4))
|
|
24
|
+
|
|
5
25
|
### [17.2.4](https://github.com/mojaloop/bulk-api-adapter/compare/v17.2.3...v17.2.4) (2026-02-12)
|
|
6
26
|
|
|
7
27
|
|
package/Dockerfile
CHANGED
|
@@ -34,10 +34,20 @@ RUN ln -sf /dev/stdout ./logs/combined.log
|
|
|
34
34
|
|
|
35
35
|
# Create a non-root user: app-user
|
|
36
36
|
RUN adduser -D app-user
|
|
37
|
-
USER app-user
|
|
38
37
|
|
|
39
38
|
COPY --chown=app-user --from=builder /opt/app/ .
|
|
40
39
|
RUN npm prune --production
|
|
41
40
|
|
|
41
|
+
# Remove npm/npx from runtime image to eliminate npm's vulnerable tar - failing grype scan
|
|
42
|
+
USER root
|
|
43
|
+
RUN rm -rf /usr/local/lib/node_modules/npm \
|
|
44
|
+
/usr/local/bin/npm /usr/local/bin/npx
|
|
45
|
+
RUN rm -rf \
|
|
46
|
+
/opt/app/node_modules/@redocly/openapi-core/node_modules/minimatch \
|
|
47
|
+
/opt/app/node_modules/filelist/node_modules/minimatch
|
|
48
|
+
RUN node -e "require('./src/api/index.js'); console.log('startup ok')"
|
|
49
|
+
|
|
50
|
+
USER app-user
|
|
51
|
+
|
|
42
52
|
EXPOSE 3000
|
|
43
53
|
CMD ["node src/api/index.js"]
|
package/audit-ci.jsonc
CHANGED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import js from "@eslint/js"
|
|
2
|
+
import globals from "globals"
|
|
3
|
+
|
|
4
|
+
export default [
|
|
5
|
+
|
|
6
|
+
// Base JS recommended rules
|
|
7
|
+
js.configs.recommended,
|
|
8
|
+
|
|
9
|
+
// Application code
|
|
10
|
+
{
|
|
11
|
+
files: ["**/*.js"],
|
|
12
|
+
ignores: [
|
|
13
|
+
"node_modules/**",
|
|
14
|
+
"coverage/**",
|
|
15
|
+
"dist/**"
|
|
16
|
+
],
|
|
17
|
+
languageOptions: {
|
|
18
|
+
ecmaVersion: 2022,
|
|
19
|
+
sourceType: "commonjs",
|
|
20
|
+
globals: {
|
|
21
|
+
...globals.node
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
rules: {
|
|
25
|
+
// Common good defaults
|
|
26
|
+
"no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
|
|
27
|
+
"no-console": "off",
|
|
28
|
+
"no-undef": "error",
|
|
29
|
+
"no-var": "error",
|
|
30
|
+
"prefer-const": "warn"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
// Jest test files
|
|
35
|
+
{
|
|
36
|
+
files: ["**/*.test.js", "**/test/**/*.js"],
|
|
37
|
+
plugins: {
|
|
38
|
+
// jest: jestPlugin
|
|
39
|
+
},
|
|
40
|
+
languageOptions: {
|
|
41
|
+
globals: {
|
|
42
|
+
...globals.node,
|
|
43
|
+
...globals.jest
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
rules: {
|
|
47
|
+
// ...jestPlugin.configs.recommended.rules
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mojaloop/bulk-api-adapter",
|
|
3
|
-
"version": "17.2.
|
|
3
|
+
"version": "17.2.6",
|
|
4
4
|
"description": "Mojaloop Bulk API Adapter",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "ModusBox",
|
|
@@ -36,10 +36,8 @@
|
|
|
36
36
|
"start:api": "node src/api/index.js",
|
|
37
37
|
"watch:api": "npx nodemon src/api/index.js",
|
|
38
38
|
"regenerate": "yo swaggerize:test --framework hapi --apiPath './src/interface/swagger.yaml'",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"lint": "npm run standard",
|
|
42
|
-
"lint:fix": "npm run standard:fix",
|
|
39
|
+
"lint": "eslint .",
|
|
40
|
+
"lint:fix": "eslint . --fix",
|
|
43
41
|
"test": "npm run test:unit",
|
|
44
42
|
"test:all": "npm run test",
|
|
45
43
|
"test:unit": "tape 'test/unit/**/*.test.js' | tap-spec",
|
|
@@ -67,18 +65,18 @@
|
|
|
67
65
|
"@hapi/catbox": "12.1.1",
|
|
68
66
|
"@hapi/catbox-memory": "6.0.2",
|
|
69
67
|
"@hapi/good": "9.0.1",
|
|
70
|
-
"@hapi/hapi": "21.4.
|
|
68
|
+
"@hapi/hapi": "21.4.6",
|
|
71
69
|
"@hapi/inert": "7.1.0",
|
|
72
70
|
"@hapi/vision": "7.0.3",
|
|
73
|
-
"@mojaloop/central-services-error-handling": "13.1.
|
|
74
|
-
"@mojaloop/central-services-health": "15.2.
|
|
75
|
-
"@mojaloop/central-services-logger": "11.10.
|
|
76
|
-
"@mojaloop/central-services-metrics": "12.8.
|
|
71
|
+
"@mojaloop/central-services-error-handling": "13.1.6",
|
|
72
|
+
"@mojaloop/central-services-health": "15.2.2",
|
|
73
|
+
"@mojaloop/central-services-logger": "11.10.4",
|
|
74
|
+
"@mojaloop/central-services-metrics": "12.8.5",
|
|
77
75
|
"@mojaloop/central-services-shared": "^18.26.2",
|
|
78
|
-
"@mojaloop/central-services-stream": "11.9.
|
|
79
|
-
"@mojaloop/event-sdk": "14.8.
|
|
80
|
-
"@mojaloop/object-store-lib": "12.2.
|
|
81
|
-
"@mojaloop/sdk-standard-components": "19.18.
|
|
76
|
+
"@mojaloop/central-services-stream": "11.9.1",
|
|
77
|
+
"@mojaloop/event-sdk": "14.8.3",
|
|
78
|
+
"@mojaloop/object-store-lib": "12.2.3",
|
|
79
|
+
"@mojaloop/sdk-standard-components": "19.18.8",
|
|
82
80
|
"@now-ims/hapi-now-auth": "2.1.0",
|
|
83
81
|
"axios": "1.13.5",
|
|
84
82
|
"blipp": "4.0.2",
|
|
@@ -95,9 +93,20 @@
|
|
|
95
93
|
"uuid4": "2.0.3"
|
|
96
94
|
},
|
|
97
95
|
"overrides": {
|
|
98
|
-
"
|
|
96
|
+
"ajv": "8.18.0",
|
|
97
|
+
"eslint": {
|
|
98
|
+
"ajv": "6.12.6"
|
|
99
|
+
},
|
|
100
|
+
"eslint@9.39.2": {
|
|
101
|
+
"ajv": "6.12.6"
|
|
102
|
+
},
|
|
103
|
+
"@eslint/eslintrc": {
|
|
104
|
+
"ajv": "6.12.6"
|
|
105
|
+
},
|
|
106
|
+
"form-data": "4.0.5",
|
|
99
107
|
"on-headers": "1.1.0",
|
|
100
|
-
"brace-expansion": "
|
|
108
|
+
"brace-expansion": "5.0.3",
|
|
109
|
+
"minimatch@3.0.5": "3.1.5",
|
|
101
110
|
"ansi-regex": "5.0.1",
|
|
102
111
|
"postcss": {
|
|
103
112
|
"nanoid": "^3.3.8"
|
|
@@ -105,13 +114,14 @@
|
|
|
105
114
|
"swagmock": {
|
|
106
115
|
"validator": "13.15.22"
|
|
107
116
|
},
|
|
117
|
+
"ejs": "3.1.10",
|
|
108
118
|
"shins": {
|
|
109
|
-
"ajv": "
|
|
110
|
-
"ejs": "3.1.10",
|
|
119
|
+
"ajv": "8.18.0",
|
|
111
120
|
"path-to-regexp": "0.1.12",
|
|
112
121
|
"sanitize-html": "2.12.1",
|
|
113
122
|
"markdown-it": "12.3.2",
|
|
114
|
-
"undici": "6.23.0"
|
|
123
|
+
"undici": "6.23.0",
|
|
124
|
+
"ejs": "3.1.10"
|
|
115
125
|
},
|
|
116
126
|
"widdershins": {
|
|
117
127
|
"swagger2openapi": "7.0.8",
|
|
@@ -127,9 +137,9 @@
|
|
|
127
137
|
"yargs-parser": "21.1.1",
|
|
128
138
|
"validator": "13.15.22",
|
|
129
139
|
"js-yaml": "3.14.2",
|
|
130
|
-
"jws": "
|
|
131
|
-
"fast-xml-parser": "5.3.
|
|
132
|
-
"qs": "6.14.
|
|
140
|
+
"jws": "3.2.3",
|
|
141
|
+
"fast-xml-parser": "5.3.6",
|
|
142
|
+
"qs": "6.14.2",
|
|
133
143
|
"undici": "6.23.0",
|
|
134
144
|
"axios": "1.13.5",
|
|
135
145
|
"lodash": "4.17.23",
|
|
@@ -137,16 +147,18 @@
|
|
|
137
147
|
"diff": "8.0.3"
|
|
138
148
|
},
|
|
139
149
|
"devDependencies": {
|
|
140
|
-
"
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
"
|
|
150
|
+
"@eslint/js": "10.0.1",
|
|
151
|
+
"audit-ci": "7.1.0",
|
|
152
|
+
"eslint": "10.0.2",
|
|
153
|
+
"globals": "17.3.0",
|
|
154
|
+
"nodemon": "3.1.14",
|
|
155
|
+
"npm-check-updates": "19.5.0",
|
|
156
|
+
"nyc": "18.0.0",
|
|
144
157
|
"pre-commit": "1.2.2",
|
|
145
158
|
"proxyquire": "2.1.3",
|
|
146
159
|
"replace": "^1.2.2",
|
|
147
160
|
"rewire": "9.0.1",
|
|
148
161
|
"sinon": "21.0.1",
|
|
149
|
-
"standard": "17.1.2",
|
|
150
162
|
"standard-version": "^9.5.0",
|
|
151
163
|
"swagmock": "1.0.0",
|
|
152
164
|
"tap-spec": "^5.0.0",
|