Skip to content

Commit

Permalink
Update feature flag docs
Browse files Browse the repository at this point in the history
  • Loading branch information
mrodriguez90 committed Sep 29, 2023
1 parent acc37f6 commit 7ddfecc
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions docs/feature_flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@

The Rootstrap Rails API Base allows developers to define feature flags, which are essentially boolean variables representing whether a particular feature or piece of code should be enabled or disabled. These flags can be easily controlled without requiring code changes or redeployment.
Feature flags can be set at different levels of granularity, such as for individual users, user groups, or percentage-based rollouts. This allows for controlled feature releases and gradual rollouts.
Our feature flag engine is built upon Flipper. To learn more about Flipper, please visit the following website: [Flipper Documentation](https://www.flippercloud.io/docs/introduction)
Our feature flag implementation is based on Flipper. To learn more about Flipper, please visit the following website: [Flipper Documentation](https://www.flippercloud.io/docs/introduction)

## Best practices and benefits of using feature flags

Feature flags are not intended to be user-editable. Instead, they are intended as a tool for Engineers and Site Reliability Engineers to use to de-risk their changes. Feature flags are the shim that gets us to Continuous Delivery with our monorepo and without having to deploy the entire codebase on every change. Feature flags are created to ensure that we can safely rollout our work on our terms. If we use Feature Flags as a configuration, we are doing it wrong and are indeed in violation of our principles. If something needs to be configured, we should intentionally make it configuration from the first moment.

To learn more about best practices and the benefits of using feature flags, please take a look at this [article](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#the-benefits-of-feature-flags)

## Flipper Configuration

Expand All @@ -22,6 +28,10 @@ We have taken care of all aspects of the Flipper configuration, and the Feature
1. [DEV ENVIRONMENT] Register your feature flag in `config/feature-flags.yml`, adhering to the format specified in that file.
2. [DEV ENVIRONMENT] Restart your server.

## Monitoring and Managing Feature Flags

To monitor and manage feature flags, we recommend using the Flipper UI, which can be accessed through `active_admin` or at this path: `/admin/feature-flags/`

## Use Feature Flags in Your Application

```
Expand Down Expand Up @@ -51,7 +61,3 @@ Here's an example:
```

No need to reset the feature flag state; our system already resets the Flipper instance before each test. This ensures that all tests start in a fresh state.

## Monitoring and Managing Feature Flags

To monitor and manage feature flags, we recommend using the Flipper UI, which can be accessed through `active_admin` or at this path: `/admin/feature-flags/`

0 comments on commit 7ddfecc

Please sign in to comment.