1.0.2 • Published 1 year ago

feature-flags-server v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

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")