Skip to content
This repository has been archived by the owner on Oct 11, 2022. It is now read-only.

workivate/feature-keys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DEPRECATED

This library will no longer be supported and receive any updates. If you use it, switch to something else, there is no replacement given for it.

The New Feature Keys

Domain Framework

About

This repository defines how Feature Keys work. However, the Feature Keys themselves are not defined here. Therefore, this repository can be used for any project and any set of Feature Keys. Just pull the package and define the structure of your Feature Keys in the config files.

What's a Feature Key?

Feature Key defines access setting and/or value setting(s) related to a specific feature.

Feature Access, Feature Value, and Feature Override

The New Feature Keys consists of three main parts:

  • Feature Access - a setting that defines access to a feature. It is represented by a boolean value that always needs to be set. Feature Access can be disabled or enabled. Feature Access can have a parent. Parent relates to another Feature Access that needs to be enabled in order to enable given access.
  • Feature Value - A setting that is represented by a value of a given type. It always has to be set. Supported types are: Integer, Boolean, String, Option, and Percentage.
  • Feature Override - Feature Accesses and Feature Values can be overridden. Overrides are defined by parameters.

Examples of usage

There's a StarWars Feature Keys app defined purely for testing purposes. Head on there to see how Accesses, Values, Overriodes, and config classes are defined. https://github.com/workivate/feature-keys/tree/master/tests/StarWars