@openfeature/config-cat-provider
TypeScript icon, indicating that this package has built-in type declarations

0.7.1 • Public • Published

ConfigCat Provider

This provider is an implementation for ConfigCat a managed feature flag service.

Installation

$ npm install @openfeature/config-cat-provider

Required peer dependencies

The OpenFeature SDK is required as peer dependency.

The minimum required version of @openfeature/server-sdk currently is 1.13.5.

The minimum required version of configcat-node currently is 11.0.0.

$ npm install @openfeature/server-sdk configcat-node

Usage

The ConfigCat provider uses the ConfigCat Node.js SDK.

It can be created by passing the ConfigCat SDK options to ConfigCatProvider.create.

The available options can be found in the ConfigCat Node.js SDK.

Example using the default configuration

import { ConfigCatProvider } from '@openfeature/config-cat-provider';

const provider = ConfigCatProvider.create('<sdk_key>');
OpenFeature.setProvider(provider);

Example using different polling options and a setupHook

import { ConfigCatProvider } from '@openfeature/config-cat-provider';

const provider = ConfigCatProvider.create('<sdk_key>', PollingMode.LazyLoad, {
  setupHooks: (hooks) => hooks.on('clientReady', () => console.log('Client is ready!')),
});

OpenFeature.setProvider(provider);

Evaluation Context

The OpenFeature Evaluation Context is mapped to the ConfigCat user object.

The ConfigCat user object has three known attributes, and allows for additional attributes. The following shows how the attributes are mapped:

OpenFeature EvaluationContext Field ConfigCat User Field Required
targetingKey identifier yes
email email no
country country no
Any Other custom no

The custom types are mapped the following way:

OpenFeature EvaluationContext Field Type ConfigCat User Field Type
string string
number number
boolean string
Array Array
Array Array
object string

The following example shows the conversion between an OpenFeature Evaluation Context and the corresponding ConfigCat User:

OpenFeature

{
  "targetingKey": "test",
  "email": "email",
  "country": "country",
  "customString": "customString",
  "customNumber": 1,
  "customBoolean": true,
  "customObject": {
    "prop1": "1",
    "prop2": 2
  },
  "customStringArray": ["one", "two"],
  "customArray": [
    1,
    "2",
    false
  ]
}

ConfigCat

{
  "identifier": "test",
  "email": "email",
  "country": "country",
  "custom": {
    "customString": "customString",
    "customBoolean": "true",
    "customNumber": 1,
    "customObject": "{\"prop1\":\"1\",\"prop2\":2}",
    "customStringArray": ["one", "two"],
    "customArray": "[1,\"2\",false]"
  }
}

Events

The ConfigCat provider emits the following OpenFeature events:

  • PROVIDER_READY
  • PROVIDER_ERROR
  • PROVIDER_CONFIGURATION_CHANGED

Building

Run nx package providers-config-cat to build the library.

Running unit tests

Run nx test providers-config-cat to execute the unit tests via Jest.

Readme

Keywords

none

Package Sidebar

Install

npm i @openfeature/config-cat-provider

Weekly Downloads

998

Version

0.7.1

License

none

Unpacked Size

31.4 kB

Total Files

11

Last publish

Collaborators

  • beeme1mr
  • toddbaert