Giter VIP home page Giter VIP logo

sdk-standard-components's Introduction

Git Commit Git Releases Npm Version NPM Vulnerabilities CircleCI

Mojaloop DFSP SDK Standard Components

This package contains a set of components that encode standard practices for enabling the following features of a DFSP to Mojaloop switch interface:

Usage

npm install @mojaloop/sdk-standard-components
  1. JWS (JSON Web Signature) - For signing and signature verification
  2. Interledger Protocol - For generating and verifying Interledger message content
  3. Mojaloop Requests - An abstration that simplifies making HTTP requests to Mojaloop API compliant peers demonstrating specification compliant HTTP header handling and JSON Web Signatures
  4. Errors - Mojaloop API specification compliant error helpers

For an example usage of these components please see the Mojaloop SDK Scheme Adapter available here.

For information on the background and context of this project please see the presentation here

Auditing Dependencies

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

To start a new resolution process, run:

npm run audit:fix

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

npm run audit:check

The audit-ci.jsonc contains any audit-exceptions that cannot be fixed to ensure that CircleCI will build correctly.

Typescript Types

To aid consumers of this library, we are starting to work on adding typescript declarations for the sdk-standard-components. This is an incremental process, so please be patient as we gradually add typings to each module.

Types currently live in ./src/index.d.ts

Completed Modules

  • ThirdpartyRequests
  • WSO2Auth
  • Logger
  • request
  • Errors

TODO

  • Ilp
  • Jws
  • MojaloopRequests

sdk-standard-components's People

Contributors

aaronreynoza avatar aenns avatar akapur99 avatar bushjames avatar dependabot[bot] avatar elnyry-sam-k avatar eoln avatar geka-evk avatar kirgene avatar kleyow avatar ksatya77 avatar lewisdaly avatar mdebarros avatar oderayi avatar partiallyordered avatar ramanmangla avatar ramirogm avatar shashi165 avatar sridharvoruganti avatar vgenev avatar vijayg10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdk-standard-components's Issues

Streaming Response Option in _put in `BaseRequests` library

Why should PUT requests have the option of a streaming response?
in src/lib/requests/baseRequests.js the _put request has the option to allow request response to be a Stream which seems unusual.
@lewisdaly and I are considering removing that option. Would appreciate any thoughts on this or if someone is currently using that feature to mention it.

reqOpts.responseType = request.responseType.Stream;

The algorithm for JWS is hardcoded to RS256

According to the JWS standard, more algorithms are allowed: https://datatracker.ietf.org/doc/html/rfc7518#section-3.1
Elliptic curve algorithms have better performance and might be preferred in cases where the performance matters.

As per NIST Special Publication 800-57 Part 1, page 54, table 2 the algorithm ES256 has a cryptographic strength of 128 bits, which is equivalent to RS256 with 3072 bit key, which satisfies the current Mojaloop requirements for signature generation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.