GitXplorerGitXplorer
c

koa-izanami-proxy

public
4 stars
0 forks
0 issues

Commits

List of commits on branch master.
Verified
180500d5916458907ec8a64e953586dc4e18d800

v1.1.3

ccharlyx committed 6 years ago
Verified
a9e38f686dccfb0dac3ed336a43d3ebf12fc5149

v1.1.2

ccharlyx committed 6 years ago
Verified
8ae8b3b93f465ade1bdcd54b87e5b5f6345993ad

Update README.md

ccharlyx committed 6 years ago
Verified
6b726504de270b58b83cf38f4fd1d451931e3168

v1.1.1

ccharlyx committed 6 years ago
Verified
2d81d5ffb887f014cc7347e896d044c580c40d53

Update README.md

ccharlyx committed 6 years ago
Verified
b9444065ab9242e4eebeb0b7c70768cf694e7545

v1.1.0

ccharlyx committed 6 years ago

README

The README file for this repository.

koa-izanami-proxy

Build Status Coverage Status

Izanami proxy for Koa

Why?

In order to use Izanami features on the client side you have to use a proxy. To call Izanami APIs you need to provide authentication keys and you don’t want the keys to be exposed on the client side. For further details, please see the documentation.

The proxy provided by izanami-node has been written for express, thus it does not work with Koa.

Install

npm install koa-izanami-proxy@alpha
yarn add koa-izanami-proxy@alpha

Usage

You must specify at least one client configuration option depending on your needs (either featureClientConfig, experimentClientConfig or configClientConfig).
One must contain a host, clientId and clientSecret:

  • host is your Izanami server URL
  • clientId and clientSecret are secrets you've created in Izanami keys management.

Other options are available for proxy configuration.

const Koa = require('koa')
const cors = require('@koa/cors')
const izanamiProxy = require('koa-izanami-proxy')

const featureClientConfig =  {
  host: 'http://localhost:8080', // Izanami server URL
  clientId: process.env.CLIENT_ID || 'client',
  clientSecret: process.env.CLIENT_SECRET || 'client1234',
}

const app = new Koa()

app.use(cors())

const proxyConfiguration = { app, featureClientConfig }

izanamiProxy(proxyConfiguration)

app.listen(5000, () => {
  console.log('Example app listening on port 5000!')
})

Proxy configuration

{
  path: '/your/path', // default: '/api/izanami'
  featureClientConfig, // Optional
  configClientConfig, // Optional
  experimentClientConfig, // Optional
  experimentWonPath: '/your/won/path', // default: '/api/experiments/won'
  experimentDisplayedPath: '/your/displayed/path',  // default: '/api/experiments/displayed'
  app, // Koa app 
  pattern: 'my.namespace.*' // The pattern to filter experiments, configs and features (default: '*')
}