Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: add option to handle iso20022 requests #564

Merged
merged 130 commits into from
Jan 18, 2025
Merged
Show file tree
Hide file tree
Changes from 125 commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
86a3082
feat(mojaloop/#3574): added fxTransfers endpoints (#517)
geka-evk Nov 14, 2023
005e615
feat(3574): fixed payload error message
geka-evk Nov 14, 2023
d63ef77
feat(3574): fixed PUT /fxTransfers payload schema
geka-evk Nov 16, 2023
76327c3
feat(3574): fixed PUT /fxTransfers fulfilMessageDto
geka-evk Nov 16, 2023
79972d7
feat(3574): updated notification handler to deal with FX transfers (#…
geka-evk Nov 17, 2023
64d5859
fix: notification handler
vijayg10 Nov 17, 2023
a4dc8fd
feat(3574): used new central-services-shared snapshot
geka-evk Nov 17, 2023
52c7008
feat(3574): modified Participant.getEndpoint (#519)
geka-evk Nov 20, 2023
bd54d8e
feat: updated deps
vijayg10 Nov 22, 2023
f19523c
chore(snapshot): 14.1.0-snapshot.0
vijayg10 Nov 22, 2023
967e426
fix: disable ci snapshot
vijayg10 Nov 23, 2023
b1e5053
chore(snapshot): 14.1.0-snapshot.1
vijayg10 Nov 23, 2023
2224272
fix: disable ci snapshot2
vijayg10 Nov 23, 2023
6ca8522
chore(snapshot): 14.1.0-snapshot.2
vijayg10 Nov 23, 2023
4cc5b96
fix: fspiop headers
vijayg10 Dec 1, 2023
964394f
chore(snapshot): 14.1.0-snapshot.3
vijayg10 Dec 1, 2023
370f7d0
chore(snapshot): 14.1.0-snapshot.4
vijayg10 Dec 1, 2023
4c78835
chore: update central shared lib
vijayg10 Dec 1, 2023
6e526ad
chore(snapshot): 14.1.0-snapshot.5
vijayg10 Dec 1, 2023
5ecae73
feat(3574): added notificationMessageDto; small reformatting; added u…
geka-evk Mar 7, 2024
11afa75
feat(mojaloop/#3656): fx hardening (#522)
oderayi Apr 30, 2024
9578aad
feat: enable sending events directly to Kafka (#527)
kalinkrustev May 28, 2024
a7d8a63
chore(snapshot): 14.1.0-snapshot.6
kalinkrustev May 28, 2024
44202bc
fix: image scan
kalinkrustev Jun 6, 2024
fdbf3a5
fix: image scan
kalinkrustev Jun 6, 2024
41632f2
fix: prune indeed
kalinkrustev Jun 7, 2024
0fe7ce1
fix: bad date validation
kalinkrustev Jun 12, 2024
1a3e10a
chore(snapshot): 14.1.0-snapshot.7
kalinkrustev Jun 12, 2024
9601780
chore(snapshot): 14.1.0-snapshot.8
kalinkrustev Jun 12, 2024
1255a24
chore(snapshot): 14.1.0-snapshot.9
kalinkrustev Jun 12, 2024
7f2fb2e
chore(snapshot): 14.1.0-snapshot.10
kalinkrustev Jun 12, 2024
a86f6a6
chore(snapshot): 14.1.0-snapshot.11
kalinkrustev Jun 12, 2024
53de7a4
test: increase integration tests timeout
kalinkrustev Jun 12, 2024
88394b5
chore(snapshot): 14.1.0-snapshot.12
kalinkrustev Jun 12, 2024
0cb757a
fix: remove version
kalinkrustev Jun 13, 2024
0d1c22f
feat(csi-164): paramteize switch id (#531)
oderayi Jun 25, 2024
c60a5d7
feat: proxy (#533)
kalinkrustev Jul 12, 2024
f15ee78
feat(mojaloop/csi-190): add notification case for forwarded errors (#…
kleyow Jul 12, 2024
f31acb1
test: add proxy await
kalinkrustev Jul 13, 2024
863bbaf
feat(csi-334): updated proxyCache to use redis cluster (#536)
geka-evk Jul 26, 2024
4679c76
feat(csi-541): updated proxyCache to use redis cluster (#537)
geka-evk Aug 22, 2024
29512ab
fix: fixed fx reserver handling in notification handler (#538)
vijayg10 Aug 23, 2024
fcc064b
fix(csi-555): improved logging (#539)
geka-evk Aug 26, 2024
736fdcc
feat(csi/551): produce fx-forwarded message on proxied fxTransfer (#540)
kleyow Aug 30, 2024
d9d821c
test(csi/551): add integration test for fx-forwarded message (#541)
kleyow Sep 4, 2024
eeeda43
Merge branch main of https://github.com/mojaloop/ml-api-adapter into …
vijayg10 Sep 12, 2024
36b6c4e
fix: ci
vijayg10 Sep 12, 2024
9e75007
feat(csi/643): add fx-notify forwarding (#542)
kleyow Sep 18, 2024
71b0660
chore: update deps
kleyow Sep 18, 2024
9343616
feat: add ULID support (#543)
kalinkrustev Sep 25, 2024
69469d3
fix: uuid/ulid regex
kalinkrustev Sep 30, 2024
96c3bcf
test: fix integration tests
kalinkrustev Sep 30, 2024
d25044f
test: fix integration tests
kalinkrustev Sep 30, 2024
ba9a896
fix: fx notify (#544)
vijayg10 Oct 9, 2024
33ea12c
fix: decouple notifications (#545)
kalinkrustev Oct 10, 2024
a2d001c
test: start using mojaloop/build orb (#547)
kalinkrustev Oct 11, 2024
8400042
chore(release): [ci skip] 14.1.0-iso.0
Oct 11, 2024
5f8c03f
chore: version
kalinkrustev Oct 11, 2024
cf9177c
chore(release): [ci skip] 14.2.0-iso.1
Oct 11, 2024
3193cbe
chore: continuous deployment
kalinkrustev Oct 16, 2024
00d988c
chore(release): [ci skip] 14.2.0-iso.2
Oct 16, 2024
3b1ca9d
chore: continuous deployment
kalinkrustev Oct 18, 2024
645d1dd
chore(release): [ci skip] 14.2.0-iso.3
Oct 18, 2024
1385e1e
feat(csi/108): replace joi, add interface switching and initial iso s…
kleyow Oct 28, 2024
78fd2f9
chore(release): [ci skip] 14.2.0-iso.5
Oct 28, 2024
cedea88
fix: iso follow-up fixes (#551)
oderayi Oct 29, 2024
a37fa58
chore(release): [ci skip] 14.2.0-iso.6
Oct 29, 2024
133bad5
chore: update iso api spec (#552)
kleyow Oct 30, 2024
d4dd0eb
chore(release): [ci skip] 14.2.0-iso.7
Oct 30, 2024
4a6f2cf
fix: fix reserve sending back original iso payload (#553)
kleyow Nov 5, 2024
e111903
chore(release): [ci skip] 14.2.0-iso.8
Nov 5, 2024
cd198a5
chore: fix reserved aborted message (#556)
kleyow Nov 5, 2024
9dd17c0
chore: fix fspiop regression
kleyow Nov 5, 2024
58a9a5d
chore(release): [ci skip] 14.2.0-iso.9
Nov 5, 2024
f5a3c51
fix(csi-884): forward proxied error callbacks unmodified to fix JWS "…
oderayi Nov 21, 2024
a730e6c
chore(release): [ci skip] 14.2.0-iso.10
Nov 21, 2024
07c3777
chore: update deps (#559)
oderayi Nov 21, 2024
6561306
chore(release): [ci skip] 14.2.0-iso.11
Nov 21, 2024
0fecace
fix: error forwarding (#560)
oderayi Nov 22, 2024
279f4b9
chore(release): [ci skip] 14.2.0-iso.12
Nov 22, 2024
d21fd2c
chore: use the central-services-metrics plugin (#561)
kalinkrustev Nov 25, 2024
4af4f93
chore(release): [ci skip] 14.2.0-iso.13
Nov 25, 2024
c88974e
chore: update dependencies
kalinkrustev Nov 25, 2024
417f964
chore(release): [ci skip] 14.2.0-iso.14
Nov 25, 2024
e0c26c1
chore: use the central-services-metrics plugin
kalinkrustev Nov 25, 2024
c6eeb7a
chore: use the central-services-metrics plugin
kalinkrustev Nov 25, 2024
e61df7d
chore: use the central-services-metrics plugin
kalinkrustev Nov 25, 2024
f37e681
chore(release): [ci skip] 14.2.0-iso.15
Nov 25, 2024
671a653
chore: update dependencies
kalinkrustev Nov 29, 2024
2e13b34
chore(release): [ci skip] 14.2.0-iso.16
Nov 29, 2024
3dee69b
chore: update dependencies
kalinkrustev Nov 29, 2024
6aa4325
chore(release): [ci skip] 14.2.0-iso.17
Nov 29, 2024
00f8c4c
fix: fx abort callback (#563)
oderayi Dec 5, 2024
7a24ac4
chore(release): [ci skip] 14.2.0-iso.18
Dec 5, 2024
86611ab
chore: merge main
kleyow Dec 9, 2024
f8f03fa
Merge remote-tracking branch 'origin/main' into minor/iso
kleyow Dec 9, 2024
e935fe6
chore: remove joi
kleyow Dec 9, 2024
b958e50
Fix code scanning alert no. 7: Prototype-polluting function
kleyow Dec 9, 2024
910ed2b
chore(release): [ci skip] 15.1.0-iso.0
Dec 9, 2024
0d7ce6f
chore: audit test
kleyow Dec 9, 2024
854095d
chore(release): [ci skip] 15.1.0-iso.1
Dec 9, 2024
f447a0c
chore: address comments
kleyow Dec 9, 2024
3791af4
chore(release): [ci skip] 15.1.0-iso.2
Dec 9, 2024
3a382ef
fix(csi-1001): transform content-type header for switch-generated err…
oderayi Dec 11, 2024
f084161
chore(release): [ci skip] 15.1.0-iso.3
Dec 11, 2024
4f4adf9
chore: bump cs-shared
oderayi Dec 12, 2024
d2b8d75
chore(release): [ci skip] 15.1.0-iso.4
Dec 12, 2024
ae47f6a
chore: update deps
oderayi Dec 12, 2024
600efb9
Merge branch 'minor/iso' of github.com:mojaloop/ml-api-adapter into m…
oderayi Dec 12, 2024
b56d730
chore(release): [ci skip] 15.1.0-iso.5
Dec 12, 2024
11c12ab
fix: timeout reserved error (#568)
vijayg10 Dec 12, 2024
85dc075
chore(release): [ci skip] 15.1.0-iso.6
Dec 12, 2024
ea28538
chore: bump deps (#567)
kleyow Dec 12, 2024
78ac737
chore(release): [ci skip] 15.1.0-iso.7
Dec 12, 2024
729c0d3
chore: update central-services-metrics
kalinkrustev Dec 12, 2024
6ee174f
chore(release): [ci skip] 15.1.0-iso.8
Dec 12, 2024
3a585df
feat(csi-927): used common loggingPlugin (#565)
geka-evk Dec 13, 2024
ddc2ed7
chore(release): [ci skip] 15.1.0-iso.9
Dec 13, 2024
685e630
fix: monorepo (#569)
kalinkrustev Jan 9, 2025
25cee29
chore(release): [ci skip] 15.1.0-iso.10
Jan 9, 2025
1060f7f
chore: remove merge files and dep up
kleyow Jan 10, 2025
b77142f
chore(release): [ci skip] 15.1.0-iso.11
Jan 10, 2025
990a800
chore: conflicts
kleyow Jan 10, 2025
c5fafbd
Merge remote-tracking branch 'origin/main' into minor/iso
kleyow Jan 10, 2025
033471b
chore(release): [ci skip] 15.1.0-iso.12
Jan 10, 2025
2d90f08
chore: licensing
kleyow Jan 13, 2025
46bd025
chore(release): [ci skip] 15.1.0-iso.13
Jan 13, 2025
2ab20ef
chore: licensing
kleyow Jan 15, 2025
60d589f
Merge remote-tracking branch 'origin/minor/iso' into minor/iso
kleyow Jan 15, 2025
99b7737
chore(release): [ci skip] 15.1.0-iso.14
Jan 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: 2.1
setup: true
orbs:
build: mojaloop/build@1.0.22
build: mojaloop/build@1.0.25
workflows:
setup:
jobs:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,5 @@ devspace*

# General Ignore
*IGNORE*

.rush
24 changes: 19 additions & 5 deletions config/default.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"API_TYPE": "fspiop",
"HUB_PARTICIPANT": {
"ID": 1,
"NAME": "Hub"
Expand All @@ -8,7 +9,17 @@
"type": "redis-cluster",
"proxyConfig": {
"cluster": [
{ "host": "redis-node-0", "port": 6379 }
{ "host": "localhost", "port": 6379 }
]
}
},
"ORIGINAL_PAYLOAD_STORAGE": "",
"PAYLOAD_CACHE": {
"enabled": true,
"type": "redis-cluster",
"connectionConfig": {
"cluster": [
{ "host": "localhost", "port": 6379 }
]
}
},
Expand All @@ -22,18 +33,21 @@
},
"PROTOCOL_VERSIONS": {
"CONTENT": {
"DEFAULT": "1.1",
"DEFAULT": "2.0",
"VALIDATELIST": [
"1.1",
"1.0"
"1.0",
"2.0"
]
},
"ACCEPT": {
"DEFAULT": "1",
"DEFAULT": "2",
"VALIDATELIST": [
"1",
"1.0",
"1.1"
"1.1",
"2",
"2.0"
]
}
},
Expand Down
78 changes: 75 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@ networks:
ml-mojaloop-net:
name: ml-mojaloop-net

# @see https://uninterrupted.tech/blog/hassle-free-redis-cluster-deployment-using-docker/
x-redis-node: &REDIS_NODE
image: docker.io/bitnami/redis-cluster:6.2.14
environment: &REDIS_ENVS
ALLOW_EMPTY_PASSWORD: yes
REDIS_NODES: redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
REDIS_CLUSTER_DYNAMIC_IPS: no
REDIS_CLUSTER_ANNOUNCE_IP: ${REDIS_CLUSTER_ANNOUNCE_IP}
REDIS_NODES: redis-node-0:6379 redis-node-1:9301 redis-node-2:9302 redis-node-3:9303 redis-node-4:9304 redis-node-5:9305
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
timeout: 2s
networks:
- ml-mojaloop-net

Expand All @@ -30,16 +36,51 @@ services:
- ./docker/wait4:/opt/app/wait4
networks:
- ml-mojaloop-net
extra_hosts:
- "redis-node-0:host-gateway"
user: 'root'
depends_on:
- central-ledger
- kafka
- redis-node-0
healthcheck:
test: ["CMD", "sh", "-c" ,"set -e;apk --no-cache add curl;curl --fail http://localhost:3000/health"]
timeout: 20s
retries: 10
interval: 30s

ml-api-adapter-iso:
image: mojaloop/ml-api-adapter:local
container_name: ml_ml-api-adapter-iso
build:
context: .
# command: sh -c "node /opt/app/wait4/wait4.js ml-api-adapter-iso && node src/api/index.js"
command: sh -c "/opt/app/wait4/wait4.js ml-api-adapter && node --inspect=0.0.0.0:9229 src/api/index.js"
ports:
- "4000:3000"
- "9229:9229" # for debugging
environment:
- LOG_LEVEL=info
- CSL_LOG_TRANSPORT=file
- MLAPI_ENDPOINT_SOURCE_URL=http://ml-api-adapter-endpoint:4545
volumes:
- ./docker/ml-api-adapter/default_iso.json:/opt/app/config/default.json
- ./docker/wait4:/opt/app/wait4
networks:
- ml-mojaloop-net
extra_hosts:
- "redis-node-0:host-gateway"
user: 'root'
depends_on:
- central-ledger
- kafka
- redis-node-0
healthcheck:
test: ["CMD", "sh", "-c" ,"apk --no-cache add curl", ";", "curl", "--fail", "http://localhost:3000/health"]
timeout: 20s
retries: 10
interval: 30s

# a special server for testing integration callbacks
ml-api-adapter-endpoint:
image: mojaloop/ml-api-adapter:local
Expand All @@ -50,7 +91,7 @@ services:
ports:
- "4545:4545"
environment:
- LOG_LEVEL=info
- LOG_LEVEL=debug
- CSL_LOG_TRANSPORT=file
- ENDPOINT_PORT=4545
volumes:
Expand Down Expand Up @@ -234,6 +275,7 @@ services:
environment:
<<: *REDIS_ENVS
REDIS_CLUSTER_CREATOR: yes
REDIS_PORT_NUMBER: 6379
depends_on:
- redis-node-1
- redis-node-2
Expand All @@ -242,19 +284,49 @@ services:
- redis-node-5
ports:
- "6379:6379"

- "16379:16379"
redis-node-1:
container_name: redis-node-1
<<: *REDIS_NODE
environment:
<<: *REDIS_ENVS
REDIS_PORT_NUMBER: 9301
ports:
- "9301:9301"
- "19301:19301"
redis-node-2:
container_name: redis-node-2
<<: *REDIS_NODE
environment:
<<: *REDIS_ENVS
REDIS_PORT_NUMBER: 9302
ports:
- "9302:9302"
- "19302:19302"
redis-node-3:
container_name: redis-node-3
<<: *REDIS_NODE
environment:
<<: *REDIS_ENVS
REDIS_PORT_NUMBER: 9303
ports:
- "9303:9303"
- "19303:19303"
redis-node-4:
container_name: redis-node-4
<<: *REDIS_NODE
environment:
<<: *REDIS_ENVS
REDIS_PORT_NUMBER: 9304
ports:
- "9304:9304"
- "19304:19304"
redis-node-5:
container_name: redis-node-5
<<: *REDIS_NODE
environment:
<<: *REDIS_ENVS
REDIS_PORT_NUMBER: 9305
ports:
- "9305:9305"
- "19305:19305"
15 changes: 15 additions & 0 deletions docker/env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/sh

# Retrieve the external IP address of the host machine (on macOS)
# or the IP address of the docker0 interface (on Linux)
get_external_ip() {
if [ "$(uname)" = "Linux" ]; then
echo "$(ip addr show docker0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1)"
else
# Need to find a way to support Windows here
echo "$(route get ifconfig.me | grep interface | sed -e 's/.*: //' | xargs ipconfig getifaddr)"
fi
}

# set/override dynamic variables
export REDIS_CLUSTER_ANNOUNCE_IP=$(get_external_ip)
26 changes: 24 additions & 2 deletions docker/ml-api-adapter/default.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
{
"API_TYPE": "fspiop",
"ORIGINAL_PAYLOAD_STORAGE": "",
"PAYLOAD_CACHE": {
"enabled": true,
"type": "redis-cluster",
"connectionConfig": {
"cluster": [
{ "host": "redis-node-0", "port": 6379 }
]
}
},
"PROXY_CACHE": {
"enabled": true,
"type": "redis-cluster",
Expand All @@ -21,11 +32,22 @@
"generateTimeout": 30000
},
"PROTOCOL_VERSIONS": {
"CONTENT": "1.1",
"CONTENT": {
"DEFAULT": "2.0",
"VALIDATELIST": [
"1.1",
"1.0",
"2.0"
]
},
"ACCEPT": {
"DEFAULT": "2",
"VALIDATELIST": [
"1",
"1.1"
"1.0",
"1.1",
"2",
"2.0"
]
}
},
Expand Down
Loading
Loading