jwellton / ml-api-adapter

Translation layer to convert to/from Mojaloop API to an internal format that is used in Central Services Stack.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ml-api-adapter

Git Commit Git Releases Docker pulls CircleCI

The ml api adapter is a series of services that facilitate clearing and settlement of transfers between DFSPs, including the following functions:

  • Brokering real-time messaging for funds clearing
  • Maintaining net positions for a deferred net settlement
  • Propagating scheme-level and off-transfer fees

The following documentation represents the services, APIs and endpoints responsible for various ledger functions.

Contents

Deployment

See the Onboarding guide for running the service locally.

Mac users and standard Python

There is a need to have proper version of python 3, elsewhere npm install command will fail. By default, on your Mac, you have python 2.7.* installed, you need to have fresh 3.* version.

brew install python

To invoke proper version of Python, you have to update your PATH env variable in your shell profile.

For ~/.zshrc

echo 'export PATH="/usr/local/opt/python/libexec/bin:$PATH"' >> ~/.zshrc 

Configuration

Environment variables

The ml api adapter has many options that can be configured through environment variables.

Environment variable Description Example values

API

For endpoint documentation, see the API documentation.

Logging

Logs are sent to standard output by default.

Tests

Take a look at the package.json file for a full list of the tests available.

Unit Tests

npm run test:unit

Integration Tests

# start docker-compose dependencies
docker-compose up -d

# wait for docker compoments to start
npm run wait-4-docker

# run the integration tests locally
export ENDPOINT_URL=http://localhost:4545/notification
npm run test:int

Auditing Dependencies

We use npm-audit-resolver along with npm audit to check dependencies for node vulnerabilities, and keep track of resolved dependencies with an audit-resolve.json file.

To start a new resolution process, run:

npm run audit:resolve

You can then check to see if the CI will pass based on the current dependencies with:

npm run audit:check

And commit the changed audit-resolv.json to ensure that CircleCI will build correctly.

Container Scans

As part of our CI/CD process, we use anchore-cli to scan our built docker container for vulnerabilities upon release.

If you find your release builds are failing, refer to the container scanning in our shared Mojaloop CI config repo. There is a good chance you simply need to update the mojaloop-policy-generator.js file and re-run the circleci workflow.

For more information on anchore and anchore-cli, refer to:

About

Translation layer to convert to/from Mojaloop API to an internal format that is used in Central Services Stack.

License:Other


Languages

Language:JavaScript 97.1%Language:Shell 2.6%Language:Dockerfile 0.3%