0.7.7 • Published 4 years ago

@brd.com/partner-connector v0.7.7

Weekly downloads
493
License
ISC
Repository
gitlab
Last release
4 years ago

@brd.com/partner-connector

The BRD Partner Connector module provides tools for creating and managing partner connector repos. These tools include:

  • An RPC Server

  • Actions Helpers (functions to help you create valid action objects)

  • Screens Helpers (functions to help you create valid screen objects)

Plain Node Partner Connectors

Start by creating a node-app shell:

npx @brd.com/node-app create <name> <directory>

or a Nuxt shell:

npx @brd.com/node-app create-nuxt <name> <directory>

Install partner-connector (may need to do this inside of docker):

npm i --save @brd.com/partner-connector

You now will have a server/index.js with very little functionality. Add a partner-connector RPC stack like so:

const express = require('express');
const app = express();

const RPC = require('@brd.com/partner-connector/rpc-server');

app.use('/example/rpc',RPC({
  middleware: [
    async function(next) {
      this.console.log(`rpc - ${this.method} changed to availability`);
      this.method = 'availability';

      return await next();
    },
  ],
  methods: {
    async availability(params) {
      this.result = { foo: this.params||'bar' };

      // or:

      return { foo: params || 'bar' };
    }
  }
}));

module.exports = app;

If you're using a Nuxt-based connector, you automatically get the /_close route, designed to be the onClose parameter fed to the _browser endpoint.

Middleware

In order to be able to build reasonable, functional JSON-RPC services, it's important to be able to abstract "steps" in the request handling pipeline. We've used a Koa-like mechanism for middleware. Every step in the middleware chain can do anything to the response, re-route it, cancel it, etc. Hand off "down-chain" by calling await next(), and you can manipulate output after that call by editing this.result or this.error.

Methods:

Methods in the JSON-RPC stack are what eventually handle all the calls. You can route calls using middleware, but eventually they're handled by name in the methods hash (in a complex connector, this should probably be in its own file). Return the result or set this.result to the result you wish to be sent down-wire. Params are the first argument passed to the function, or you can use this.params.

RPC Context Object

The RPC context object (this in middleware and methods) includes the following:

  • req: the express request object (from node-app)
  • res: the express response object
  • id,method,params: from the JSON-RPC request
  • $t: translation function if it is supported
  • result: the result that will be sent to the client
  • error: the error that will be sent to the client

Deployment

Partner connectors use a somewhat different deployment strategy, make sure you set up your ingress TLS secrets to match the ones we already are using for other partners:

// deploy/ingress.js:

module.exports = function(hash) {
  if(['deploy-prod','deploy-stage'].includes(process.env.CI_JOB_STAGE)) {
    hash.spec.tls[0].secretName = `${process.env.CI_ENVIRONMENT_SLUG}-tls`;
  } else {
    hash.spec.tls[0].secretName = `wildcard-partners-tls`;
  }

  return hash;
};

You may also want to make sure your review environment names are unique (example for coinberry):

// deploy-review
deploy-review:
  stage: deploy-review
  <<: *global
  image: $DEPLOYER_IMAGE
  environment:
    name: cbrry-$CI_BUILD_REF_NAME
    url: https://$CI_COMMIT_REF_SLUG.partner.brd.tools/coinberry
    on_stop: stop-review

// stop-review:
stop-review:
  stage: stop-review
  <<: *global
  image: $DEPLOYER_IMAGE
  when: manual
  environment:
    name: cbrry-$CI_BUILD_REF_NAME
    url: https://$CI_COMMIT_REF_SLUG.partner.brd.tools/coinberry
    action: stop

Changelog

List of breaking changes per-version:

0.4

  • Adapted the currencies object to be able to create high-precision fractional things - e.g. to represent 0.001 USD or 0.000000001 BTC (mostly for exchange rates).
0.7.7

4 years ago

0.7.6-mr45.1

4 years ago

0.7.6

4 years ago

0.7.5

4 years ago

0.7.4-mr44.1

4 years ago

0.7.4-mr44.2

4 years ago

0.7.4

4 years ago

0.7.3-mr43.1

4 years ago

0.7.3

4 years ago

0.7.2-mr42.1

4 years ago

0.7.2

4 years ago

0.7.0-mr41.1

5 years ago

0.7.1

5 years ago

0.7.0

5 years ago

0.6.2-mr36.14

5 years ago

0.6.2-mr36.13

5 years ago

0.6.2

5 years ago

0.6.1-mr40.1

5 years ago

0.6.1

5 years ago

0.5.25-mr38.2

5 years ago

0.6.0

5 years ago

0.6.0-mr39.1

5 years ago

0.5.25-mr37.1

5 years ago

0.5.25-mr36.10

5 years ago

0.5.25-mr36.11

5 years ago

0.5.25-mr36.12

5 years ago

0.5.25-mr36.9

5 years ago

0.5.25-mr36.8

5 years ago

0.5.25-mr36.7

5 years ago

0.5.25-mr36.6

5 years ago

0.5.25-mr36.5

5 years ago

0.5.25-mr36.4

5 years ago

0.5.25-mr36.1

5 years ago

0.5.25-mr36.2

5 years ago

0.5.25

5 years ago

0.5.24-mr35.2

5 years ago

0.5.24-mr35.1

5 years ago

0.5.23-mr34.3

5 years ago

0.5.24

5 years ago

0.5.23-mr34.2

5 years ago

0.5.23

5 years ago

0.5.22

5 years ago

0.5.21-mr33.3

5 years ago

0.5.21-mr33.5

5 years ago

0.5.21-mr33.4

5 years ago

0.5.21-mr33.2

5 years ago

0.5.21-mr33.1

5 years ago

0.5.20-mr32.4

5 years ago

0.5.20-mr32.2

5 years ago

0.5.20-mr32.3

5 years ago

0.5.21

5 years ago

0.5.19-mr31.2

5 years ago

0.5.19-mr31.3

5 years ago

0.5.20

5 years ago

0.5.19-mr31.1

5 years ago

0.5.19-mr30.2

5 years ago

0.5.19-mr30.3

5 years ago

0.5.19-mr30.1

5 years ago

0.5.19

5 years ago

0.5.18-mr29.19

5 years ago

0.5.18-mr29.17

5 years ago

0.5.18-mr29.18

5 years ago

0.5.18-mr29.16

5 years ago

0.5.18-mr29.15

5 years ago

0.5.18-mr29.12

5 years ago

0.5.18-mr29.13

5 years ago

0.5.18-mr29.14

5 years ago

0.5.18-mr29.11

5 years ago

0.5.18-mr29.10

5 years ago

0.5.18-mr29.9

5 years ago

0.5.18-mr29.8

5 years ago

0.5.18-mr29.7

5 years ago

0.5.18-mr29.6

5 years ago

0.5.18-mr29.5

5 years ago

0.5.18-mr29.4

5 years ago

0.5.18-mr29.3

5 years ago

0.5.18-mr29.2

5 years ago

0.5.18-mr29.1

5 years ago

0.5.18

5 years ago

0.5.17-mr28.7

5 years ago

0.5.17-mr28.6

5 years ago

0.5.17-mr28.5

5 years ago

0.5.17-mr28.4

5 years ago

0.5.17-mr28.3

5 years ago

0.5.17-mr28.2

5 years ago

0.5.17-mr28.1

5 years ago

0.5.16

5 years ago

0.5.17

5 years ago

0.5.15-mr26.3

5 years ago

0.5.16-mr27.1

5 years ago

0.5.15-mr26.2

5 years ago

0.5.16-mr27.2

5 years ago

0.5.15-mr26.1

5 years ago

0.5.16-mr27.4

5 years ago

0.5.15

5 years ago

0.5.14-mr25.1

5 years ago

0.5.14

5 years ago

0.5.13-mr24.0

5 years ago

0.5.13-mr24.1

5 years ago

0.5.13

5 years ago

0.5.12-mr23.1

5 years ago

0.5.12

5 years ago

0.5.11-mr22.11

5 years ago

0.5.11-mr22.10

5 years ago

0.5.11-mr22.14

5 years ago

0.5.11-mr22.13

5 years ago

0.5.11-mr22.12

5 years ago

0.5.11-mr22.9

5 years ago

0.5.11-mr22.7

5 years ago

0.5.11-mr22.8

5 years ago

0.5.11-mr22.5

5 years ago

0.5.11-mr22.6

5 years ago

0.5.11-mr22.3

5 years ago

0.5.11-mr22.4

5 years ago

0.5.11-mr22.2

5 years ago

0.5.11-mr22.1

5 years ago

0.5.11

5 years ago

0.5.10-mr21.2

5 years ago

0.5.10-mr21.1

5 years ago

0.5.10

5 years ago

0.5.9-mr20.6

5 years ago

0.5.9-mr20.5

5 years ago

0.5.9-mr20.4

5 years ago

0.5.9-mr20.3

5 years ago

0.5.9-mr20.2

5 years ago

0.5.9-mr20.1

5 years ago

0.5.9

5 years ago

0.5.8

5 years ago

0.5.7-mr19.1

5 years ago

0.5.7

5 years ago

0.5.6-mr17.14

5 years ago

0.5.6-mr17.13

5 years ago

0.5.6-mr17.12

5 years ago

0.5.6-mr17.11

5 years ago

0.5.6-mr17.10

5 years ago

0.5.6-mr17.9

5 years ago

0.5.6-mr17.7

5 years ago

0.5.6-mr17.8

5 years ago

0.5.6-mr17.6

5 years ago

0.5.6-mr17.5

5 years ago

0.5.6-mr17.4

5 years ago

0.5.6-mr17.3

5 years ago

0.5.6-mr17.2

5 years ago

0.5.5-mr18.1

5 years ago

0.5.5-mr17.1

5 years ago

0.5.6

5 years ago

0.5.5

5 years ago

0.5.4-mr16.2

5 years ago

0.5.4-mr16.1

5 years ago

0.5.3-mr15.9

5 years ago

0.5.4

5 years ago

0.5.3-mr15.8

5 years ago

0.5.3-mr15.7

5 years ago

0.5.3-mr15.6

5 years ago

0.5.3-mr15.4

5 years ago

0.5.3-mr15.5

5 years ago

0.5.3-mr15.2

5 years ago

0.5.3-mr15.3

5 years ago

0.5.2-mr14.1

5 years ago

0.5.3

5 years ago

0.5.2

5 years ago

0.5.1-mr13.2

5 years ago

0.5.1

5 years ago

0.5.0-mr12.3

5 years ago

0.5.0-mr12.2

5 years ago

0.5.0-mr12.5

5 years ago

0.5.0-mr12.4

5 years ago

0.5.0-mr12.1

5 years ago

0.5.0

5 years ago

0.4.6

5 years ago

0.4.5-mr11.9

6 years ago

0.4.5

6 years ago

0.4.4-mr11.9

6 years ago

0.4.4-mr11.8

6 years ago

0.4.4-mr11.7

6 years ago

0.4.4-mr11.6

6 years ago

0.4.4-mr11.5

6 years ago

0.4.4-mr11.4

6 years ago

0.4.4-mr11.3

6 years ago

0.4.4-mr11.2

6 years ago

0.4.4-mr11.1

6 years ago

0.4.4

6 years ago

0.4.3-mr10.1

6 years ago

0.4.3-mr9.1

6 years ago

0.4.3-mr8.1

6 years ago

0.4.3

6 years ago

0.4.2-mr7.6

6 years ago

0.4.2-mr7.5

6 years ago

0.4.2-mr7.4

6 years ago

0.4.2-mr7.3

6 years ago

0.4.2-mr7.2

6 years ago

0.4.2-mr7.1

6 years ago

0.4.2

6 years ago

0.4.0

6 years ago

0.3.38

6 years ago

0.3.38-mr6.1

6 years ago

0.3.37-mr6.2

6 years ago

0.3.37-mr6.1

6 years ago

0.3.37-mr5.1

6 years ago

0.3.37

6 years ago

0.3.36-mr4.1

6 years ago

0.3.36

6 years ago

0.3.35-mr3.3

6 years ago

0.3.35-mr4.1

6 years ago

0.3.35-mr3.2

6 years ago

0.3.35

6 years ago

0.3.34

6 years ago

0.3.33

6 years ago

0.3.32

6 years ago

0.3.31-mr2.3

6 years ago

0.3.31-mr2.2

6 years ago

0.3.31-mr2.1

6 years ago

0.3.31

6 years ago

0.3.30

6 years ago

0.3.28

6 years ago

0.3.27-mr1.10

6 years ago

0.3.27-mr1.9

6 years ago

0.3.27-mr1.8

6 years ago

0.3.27-mr1.7

6 years ago

0.3.27-mr1.6

6 years ago

0.3.27-mr1.5

6 years ago

0.3.27-mr1.4

6 years ago

0.3.27

6 years ago

0.3.26

6 years ago

0.3.25

6 years ago

0.3.22

6 years ago

0.3.21

6 years ago

0.3.20

6 years ago

0.3.19

6 years ago

0.3.18

6 years ago

0.3.16

6 years ago

0.3.14

6 years ago

0.3.13

6 years ago

0.3.12

6 years ago

0.3.11

6 years ago

0.3.6

6 years ago

0.3.3

6 years ago

0.3.1

6 years ago

0.2.14

6 years ago

0.2.13

6 years ago

0.2.12

6 years ago

0.2.11

6 years ago

0.2.10

6 years ago

0.2.8

6 years ago

0.2.7

6 years ago

0.2.6

6 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0-b1

6 years ago