Add a feature toggleΒΆ

It often happens that a feature is mostly done but not quite ready for a wider audience. Feature toggles give developers and user experience wizards the ability to test features early in the cycle and give them insight into performance and usability.

Static feature flags

features:
  foo: true
  bar: false

To access these settings in main.py use the following syntax.

if forest.data.FEATURE_FLAGS['foo']:
    # Do foo feature

As easy as that.

Dynamic feature flags

To add more sophisticated dynamic feature toggles it is possible to specify an entry_point that runs general purpose Python code to determine the feature flags dictionary.

plugins:
  feature:
    entry_point: lib.mod.func

The string lib.mod.func is parsed into an import statement to import lib.mod and a call of the func method. This is very similar to how setup.py wires up commands.

Warning

Since the entry_point could point to arbitrary Python code make sure this feature is only used with trusted source code