feature-flags-server v1.0.2
Feature Flags Backend logic!
This documentation will help you to implement the database related logic of feature flags for your project.
Installing from npm
npm i feature-flags-server
Instantiating the provider
To use the methods of the database client, you first have to instantiate it into your node project
const { FeatureProvider } = require("feature-flags-server")
the FeatureProvider requires a configuration to execute its methods. Below are the required key-value pairs of the config:
const config = {
dbProvider : "dynamoDb", // right now only dynamoDb is supported
tableName : "your table name", // required
accessKeyId : YOUR_ACCESS_KEY,
secretAccessKey : YOUR_ACCESS_SECRET,
region : YOUR_AWS_HOSTING_REGION , // example : eu-west-2
apiVersion : "latest" // default : "latest"
}
Now the dbClient can be instantiated
const dbClient = new FeatureProvider(config)
Now you need to run a check() method to make sure everything is established
await dbClient.check()
If the table name is not found, then this method creates a new table in the cloud with the required partition and sort key
Creating or Updating a new Feature:
to create a new feature . the addOrUpdateFeature() can be used. Below is the sample:
let featureData = {
"name": "brandNewFeature", // required & must be unique for creation
"description": "sample description", // required
"status": "on", // allowed values on , off , pilot
"pilotType": "user", // required when status is pilot
"pilotIds": ["newUser1", "newUser2", "newUser3"] // required when status is pilot
}
await dbClient.addOrUpdateFeature(featureData)
Get all Features:
To get all the created features , getAllFeatures() method can be used:
await dbClient.getAllFeatures()
Get a Feature by name:
getFeatureMatches()
await dbClient.getFeatureMatches("featureName")
Delete a feature
deleteFeature()
await dbClient.deleteFeature("featureName")