@arundo/microservice-interface

3.1.2 • Public • Published

Coverage Status Build Status

Microservice Interface Library

This is microservice interface library that used to easily connect to other arundo fabric microservice easily.

Implementation Details

How to install it

$ npm install --save-dev arundo/microservice-interface

Rest client

Rest client is used to easily and efficiently call the arundo fabric microservices endpoints without worrying about fetching the auth token. The token can be fetched either from the auth fabric microservice or auth0 directly. You can also cache the token in redis.

// apiBaseUrl is required
const apiBaseUrl = 'https://api.arundo.com';

// authOptions is required
const authOptions = {
  user: 'USER ID', // required
  password: 'USER PASSWORD', // required
  fromAuth0: 'true | false', // optional
  auth0BaseUrl: 'AUTH0 BASE URL', // optional
  clientId: 'AUTH0 CLIENT ID', // optional
  clientSecret: 'AUTH0 CLIENT SECRET', // optional
  audience: 'AUTH0 AUDIENCE', // optional
  devUrl: 'URL for local service instance for dev purposes, still using auth service to get token'// optional, e.g. 'http://localhost:5000'
};

// redisOptions is optional
const redisOptions = {
  host: 'REDIS HOST', // required
  password: 'REDIS PASSWORD', // required
  name: 'UNIQUE NAME FOR REDIS KEY', // optional
  expireTime: 'REDIS EXPIRATION TIME', // optional
};

const restClient = new RestClient(apiBaseUrl, authOptions, redisOptions);

const id = 'YOUR ID HERE';
restClient.callEndPoint('GET', `/v0/services/${id}`)
.then(result => console.log(result))
.catch(err => console.log(err));

Cache client

Cache client is used to cache a document.

// apiBaseUrl is required
const apiBaseUrl = 'https://api.arundo.com';

// authOptions is required
const authOptions = {
  user: 'USER ID', // required
  password: 'USER PASSWORD', // required
  fromAuth0: 'true | false', // optional
  auth0BaseUrl: 'AUTH0 BASE URL', // optional
  clientId: 'AUTH0 CLIENT ID', // optional
  clientSecret: 'AUTH0 CLIENT SECRET', // optional
  audience: 'AUTH0 AUDIENCE', // optional
};

// redisOptions is optional
const redisOptions = {
  host: 'REDIS HOST', // required
  password: 'REDIS PASSWORD', // required
  name: 'UNIQUE NAME FOR REDIS KEY', // optional
  expireTime: 'REDIS EXPIRATION TIME', // optional
};

const myClientOptions = {
  name: 'pipeline',
  url: `${apiBaseUrl}/v0/pipelines/%s/`,
};

const restClient = new RestClient(apiBaseUrl, authOptions, redisOptions);
const cacheClient = new CacheClient(restClient, redisOptions);
const myClient = cacheClient.createClient(myClientOptions);

const id = 'YOUR DOC ID HERE';
myClient.get(id)
.then(doc => console.log(doc))
.catch(err => console.log(err));

Readme

Keywords

none

Package Sidebar

Install

npm i @arundo/microservice-interface

Weekly Downloads

3

Version

3.1.2

License

ISC

Last publish

Collaborators

  • arundo-dev