feature-flags-server
v1.0.2
Published
feature flags database implementation for the backend
Downloads
88
Readme
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")