-
Notifications
You must be signed in to change notification settings - Fork 18
Add: Zombie Flags Report Documentation #530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
42 commits
Select commit
Hold shift + click to select a range
464d13b
Add path to `sidebars.ts`
codedbychavez 72b033c
Initial draft of My Zombie Flags Report
codedbychavez bfdebe0
Additional updates and screenshots
codedbychavez 9360153
Add link to `website/src/pages/index.js`
codedbychavez c04ba28
Fix: https://github.com/configcat/docs/pull/530#discussion_r2030721387
codedbychavez cbfe2fb
Fix: https://github.com/configcat/docs/pull/530/files/936015325bc339b…
codedbychavez f780248
Fix: https://github.com/configcat/docs/pull/530/files/936015325bc339b…
codedbychavez ab2cfd5
Merge branch 'master' into add-zombie-flags-report-documentation
codedbychavez b97fd84
Merge branch 'master' into add-zombie-flags-report-documentation
codedbychavez 240e164
Update website/docs/my-zombie-flags-report.mdx
codedbychavez 0a42831
Update website/docs/my-zombie-flags-report.mdx
codedbychavez e862153
Apply suggestions from code review
codedbychavez e2e64a8
Update website/docs/my-zombie-flags-report.mdx
codedbychavez f3f2276
Add new section
codedbychavez d11fc03
Lint fixes
codedbychavez 53f1f63
Fix bold text
codedbychavez e3cb4cc
Update
codedbychavez b40b4c4
Apply suggestions from code review
codedbychavez 088b306
Apply suggestions from code review
codedbychavez 4f681d0
Fix screenshots
codedbychavez e0fa908
Merge branch 'master' into add-zombie-flags-report-documentation
codedbychavez 68d3f38
Update link to Zombie Flag document in `sidebar.js` and `website/src/…
codedbychavez dbbd3b9
Add notes
codedbychavez 608c359
Add: updated screenshots and instruction notes #1
codedbychavez a1c002b
Updates
codedbychavez ce98ec0
Add: Zombie flag report email screenshot and update documentation.
codedbychavez 812ff82
Updates
codedbychavez eb5e762
Update website/docs/zombie-flags.mdx
codedbychavez 30ad0ea
Apply suggestions from code review
codedbychavez 6e9d618
Fix: https://github.com/configcat/docs/pull/530/files#r2112577805
codedbychavez 735d66f
Fix: https://github.com/configcat/docs/pull/530/files#r2112592644
codedbychavez 9c7f806
Fix: https://github.com/configcat/docs/pull/530/files#r2112591105
codedbychavez a1b781d
Fix: https://github.com/configcat/docs/pull/530/files#r2112597326
codedbychavez 7892354
Remove: Unused screenshot
codedbychavez 0999dce
Fix: https://github.com/configcat/docs/pull/530#discussion_r2112608110
codedbychavez 3b0683c
Add: zombie flags document to v1 docs and v1 sidebar
codedbychavez 9af40e0
Update: My Zombie Flags Report screenshot
codedbychavez 549b6c6
Final updates
codedbychavez 55bc466
Apply suggestions from code review
laliconfigcat aa49b24
unwanted spaces
laliconfigcat e8e52be
Apply suggestions from code review
laliconfigcat 330879d
changes
laliconfigcat File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
--- | ||
id: zombie-flags | ||
title: Zombie Flags | ||
description: This page explains how to identify and manage Zombie Flags in ConfigCat through the dashboard, email reports, or the Zombie Flags API. | ||
--- | ||
|
||
Zombie flags (stale flags) are feature flags that are no longer needed or actively used. They often remain in the codebase long after their purpose has been fulfilled. Removing these outdated flags can reduce technical debt, improve performance, and simplify your codebase. | ||
|
||
Common scenarios where zombie flags appear: | ||
|
||
- A temporary feature becomes permanent, but its flag is never removed. | ||
- A flag was introduced for a one-time rollout or experiment that's now complete. | ||
- A decision was made to always keep a feature on or off, making the flag redundant. | ||
- The flag hasn't been toggled or referenced for an extended period. | ||
|
||
## Why Removing Zombie Flags Matters | ||
|
||
Leaving stale flags in your code can lead to the following: | ||
- **Increased complexity:** Unused flags clutter code and reduce maintainability. | ||
- **Unexpected behavior:** Outdated flags might trigger legacy logic unintentionally. | ||
- **Longer onboarding and reviews:** Developers waste time reviewing obsolete logic. | ||
- **Performance degradation:** In large-scale systems, excess flags can slow down operations. | ||
|
||
## Managing Zombie Flags in ConfigCat | ||
|
||
There are three ways to access and manage Zombie flags in ConfigCat: | ||
|
||
- Through the [Dashboard](https://app.configcat.com/product/zombie-flags). | ||
- Using the [Zombie Flags Email Report](https://app.configcat.com/my-account/zombie-flags-report). | ||
- Via the [Zombie Flags API](https://api.configcat.com/docs/index.html#tag/Zombie-(stale)-flags). | ||
|
||
### Using the Dashboard | ||
|
||
The [Zombie Flags page](https://app.configcat.com/product/zombie-flags) shows all the stale flags in a table for the selected product based on the filters set: | ||
|
||
- **Inactivity**: How long the flag was inactive. | ||
- **Feature flag scope**: Choose between all feature flags or only those you are watching. | ||
- **Included environments**: The ConfigCat [environment(s)](https://configcat.com/docs/main-concepts/#environment) to include in the analysis. | ||
- **Ignored flags based on tags**: Exclude flags based on assigned tags. | ||
- **Stale in all/any selected environments**: Choose whether to include flags that are stale in all or any of the selected environments. | ||
- **Filter by config or feature flag name**: Start typing to filter the list automatically. | ||
|
||
<img alt="The Zombie Flags page in the ConfigCat dashboard" src="/docs/assets/guide/my-zombie-flags-report/the-zombie-flags-page-in-the-dashboard_192dpi.png" width="1366" height="768" decoding="async" loading="lazy" /> | ||
|
||
By default, the Zombie Flags page will filter the zombie flags based on the filters set in the **My Zombie Flags Report** page. | ||
|
||
:::info | ||
If you have the [Code References](https://configcat.com/docs/advanced/code-references/overview/) feature enabled, you can also see where the flags are used in your code. | ||
::: | ||
|
||
### Using the Zombie Flags Report Email | ||
|
||
The Zombie Flags Report scans your ConfigCat dashboard and sends an email report of the feature flags that haven't been updated or toggled within the configured timeframe. | ||
|
||
You can customize the report to include only the flags you want to track, using filters similar to those available in the dashboard. | ||
|
||
#### How to Set Up the Zombie Feature Flags Report | ||
|
||
1. Log in to the [ConfigCat dashboard](https://app.configcat.com/my-account/zombie-flags-report). | ||
2. Click the Organization name in the top-left corner. | ||
3. Select **My Zombie Flags Report** from the dropdown menu. | ||
|
||
<img alt="Navigating to My Zombie Flags Report" src="/docs/assets/guide/my-zombie-flags-report/navigating-to-my-zombie-flags-report_192dpi.png" width="1366" height="768" decoding="async" loading="lazy" /> | ||
|
||
#### The My Zombie Flags Report Page | ||
|
||
The email report can be customized as follows: | ||
|
||
- **Receive report via email:** Turn on email notifications and set the frequency (daily, weekly, monthly). | ||
- **Criteria:** Define how long a flag must be inactive before it's marked as stale. | ||
- **Scope:** Include all flags or only watched ones. | ||
- **Environment:** Choose the ConfigCat [environment(s)](https://configcat.com/docs/main-concepts/#environment) you want to analyze. | ||
- **Tags:** Exclude specific flags based on tags. | ||
- **Stale in all/any selected environments:** Choose whether to include flags that are stale in all or any of the selected environments. | ||
|
||
<img alt="My Zombie Flags Report page in the dashboard" src="/docs/assets/guide/my-zombie-flags-report/my-zombie-flags-report-page-in-the-dashboard_192dpi.png" width="1366" height="1044" decoding="async" loading="lazy" /> | ||
|
||
#### Sample Email Report | ||
|
||
Here's a preview of what the Zombie Flags report email looks like: | ||
|
||
<img alt="Zombie Flags Report Email" src="/docs/assets/guide/my-zombie-flags-report/zombie-flags-report-email_192dpi.png" width="1366" height="768" decoding="async" loading="lazy" /> | ||
|
||
### Using the Zombie Flags API | ||
|
||
The [Zombie Flags API](https://api.configcat.com/docs/index.html#tag/Zombie-(stale)-flags) allows programmatic access to zombie flag data. This is useful for integrating flag cleanup processes into your CI/CD workflows or internal tooling. | ||
|
||
You can use tools like Postman to retrieve zombie flag data via the API for testing or integration. Here's a preview of what it looks like in Postman: | ||
|
||
<img alt="Using the Zombie Flags API in Postman" src="/docs/assets/guide/my-zombie-flags-report/using-the-zombie-flags-api-in-postman_192dpi.png" width="1366" height="768" decoding="async" loading="lazy" /> | ||
|
||
## Other Tools for Identifying Unused Feature Flags | ||
|
||
In addition to the methods mentioned, ConfigCat also provides several tools to help you detect and clean up unused feature flags: | ||
|
||
- [Scan & Upload Code References](https://configcat.com/docs/advanced/code-references/overview): Track where feature flags appear in your code. | ||
- [The ConfigCat CLI](https://configcat.com/docs/advanced/cli): Detect flags still in your code that no longer exist in the ConfigCat Dashboard. | ||
- [GitHub Action](https://configcat.com/docs/integrations/github/) and [CircleCI Orb](https://configcat.com/docs/integrations/circleci): Find feature flags in your code that you might want to remove. | ||
codedbychavez marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- [Bitrise Step](https://configcat.com/docs/integrations/bitrise/): Scan your source code for feature flag and setting usages and upload the found code references to ConfigCat. | ||
- [Bitbucket Pipe](https://configcat.com/docs/integrations/bitbucket/): Scan your source code for feature flag and setting usages and upload the found code references to ConfigCat. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+138 KB
.../my-zombie-flags-report/my-zombie-flags-report-page-in-the-dashboard_192dpi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+107 KB
...te/static/assets/guide/my-zombie-flags-report/my-zombie-flags-report_192dpi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+112 KB
...ts/guide/my-zombie-flags-report/navigating-to-my-zombie-flags-report_192dpi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+457 KB
.../guide/my-zombie-flags-report/the-zombie-flags-page-in-the-dashboard_192dpi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+109 KB
...s/guide/my-zombie-flags-report/using-the-zombie-flags-api-in-postman_192dpi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+128 KB
...static/assets/guide/my-zombie-flags-report/zombie-flags-report-email_192dpi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
--- | ||
id: zombie-flags | ||
title: Zombie Flags | ||
description: This page explains how to identify and manage Zombie Flags in ConfigCat through the dashboard, email reports, or the Zombie Flags API. | ||
--- | ||
|
||
Zombie flags (stale flags) are feature flags that are no longer needed or actively used. They often remain in the codebase long after their purpose has been fulfilled. Removing these outdated flags can reduce technical debt, improve performance, and simplify your codebase. | ||
|
||
Common scenarios where zombie flags appear: | ||
|
||
- A temporary feature becomes permanent, but its flag is never removed. | ||
- A flag was introduced for a one-time rollout or experiment that's now complete. | ||
- A decision was made to always keep a feature on or off, making the flag redundant. | ||
- The flag hasn't been toggled or referenced for an extended period. | ||
|
||
## Why Removing Zombie Flags Matters | ||
|
||
Leaving stale flags in your code can lead to the following: | ||
- **Increased complexity:** Unused flags clutter code and reduce maintainability. | ||
- **Unexpected behavior:** Outdated flags might trigger legacy logic unintentionally. | ||
- **Longer onboarding and reviews:** Developers waste time reviewing obsolete logic. | ||
- **Performance degradation:** In large-scale systems, excess flags can slow down operations. | ||
|
||
## Managing Zombie Flags in ConfigCat | ||
|
||
There are three ways to access and manage Zombie flags in ConfigCat: | ||
|
||
- Through the [Dashboard](https://app.configcat.com/product/zombie-flags). | ||
- Using the [Zombie Flags Email Report](https://app.configcat.com/my-account/zombie-flags-report). | ||
- Via the [Zombie Flags API](https://api.configcat.com/docs/index.html#tag/Zombie-(stale)-flags). | ||
|
||
### Using the Dashboard | ||
|
||
The [Zombie Flags page](https://app.configcat.com/product/zombie-flags) shows all the stale flags in a table for the selected product based on the filters set: | ||
|
||
- **Inactivity**: How long the flag was inactive. | ||
- **Feature flag scope**: Choose between all feature flags or only those you are watching. | ||
- **Included environments**: The ConfigCat [environment(s)](https://configcat.com/docs/main-concepts/#environment) to include in the analysis. | ||
- **Ignored flags based on tags**: Exclude flags based on assigned tags. | ||
- **Stale in all/any selected environments**: Choose whether to include flags that are stale in all or any of the selected environments. | ||
- **Filter by config or feature flag name**: Start typing to filter the list automatically. | ||
|
||
<img alt="The Zombie Flags page in the ConfigCat dashboard" src="/docs/assets/guide/my-zombie-flags-report/the-zombie-flags-page-in-the-dashboard_192dpi.png" width="1366" height="768" decoding="async" loading="lazy" /> | ||
|
||
By default, the Zombie Flags page will filter the zombie flags based on the filters set in the **My Zombie Flags Report** page. | ||
|
||
:::info | ||
If you have the [Code References](https://configcat.com/docs/advanced/code-references/overview/) feature enabled, you can also see where the flags are used in your code. | ||
::: | ||
|
||
### Using the Zombie Flags Report Email | ||
|
||
The Zombie Flags Report scans your ConfigCat dashboard and sends an email report of the feature flags that haven't been updated or toggled within the configured timeframe. | ||
|
||
You can customize the report to include only the flags you want to track, using filters similar to those available in the dashboard. | ||
|
||
#### How to Set Up the Zombie Feature Flags Report | ||
|
||
1. Log in to the [ConfigCat dashboard](https://app.configcat.com/my-account/zombie-flags-report). | ||
2. Click the Organization name in the top-left corner. | ||
3. Select **My Zombie Flags Report** from the dropdown menu. | ||
|
||
<img alt="Navigating to My Zombie Flags Report" src="/docs/assets/guide/my-zombie-flags-report/navigating-to-my-zombie-flags-report_192dpi.png" width="1366" height="768" decoding="async" loading="lazy" /> | ||
|
||
#### The My Zombie Flags Report Page | ||
|
||
The email report can be customized as follows: | ||
|
||
- **Receive report via email:** Turn on email notifications and set the frequency (daily, weekly, monthly). | ||
- **Criteria:** Define how long a flag must be inactive before it's marked as stale. | ||
- **Scope:** Include all flags or only watched ones. | ||
- **Environment:** Choose the ConfigCat [environment(s)](https://configcat.com/docs/main-concepts/#environment) you want to analyze. | ||
- **Tags:** Exclude specific flags based on tags. | ||
- **Stale in all/any selected environments:** Choose whether to include flags that are stale in all or any of the selected environments. | ||
|
||
<img alt="My Zombie Flags Report page in the dashboard" src="/docs/assets/guide/my-zombie-flags-report/my-zombie-flags-report-page-in-the-dashboard_192dpi.png" width="1366" height="1044" decoding="async" loading="lazy" /> | ||
|
||
#### Sample Email Report | ||
|
||
Here's a preview of what the Zombie Flags report email looks like: | ||
|
||
<img alt="Zombie Flags Report Email" src="/docs/assets/guide/my-zombie-flags-report/zombie-flags-report-email_192dpi.png" width="1366" height="768" decoding="async" loading="lazy" /> | ||
|
||
### Using the Zombie Flags API | ||
|
||
The [Zombie Flags API](https://api.configcat.com/docs/index.html#tag/Zombie-(stale)-flags) allows programmatic access to zombie flag data. This is useful for integrating flag cleanup processes into your CI/CD workflows or internal tooling. | ||
|
||
You can use tools like Postman to retrieve zombie flag data via the API for testing or integration. Here's a preview of what it looks like in Postman: | ||
|
||
<img alt="Using the Zombie Flags API in Postman" src="/docs/assets/guide/my-zombie-flags-report/using-the-zombie-flags-api-in-postman_192dpi.png" width="1366" height="768" decoding="async" loading="lazy" /> | ||
|
||
## Other Tools for Identifying Unused Feature Flags | ||
|
||
In addition to the methods mentioned, ConfigCat also provides several tools to help you detect and clean up unused feature flags: | ||
|
||
- [Scan & Upload Code References](https://configcat.com/docs/advanced/code-references/overview): Track where feature flags appear in your code. | ||
- [The ConfigCat CLI](https://configcat.com/docs/advanced/cli): Detect flags still in your code that no longer exist in the ConfigCat Dashboard. | ||
- [GitHub Action](https://configcat.com/docs/integrations/github/) and [CircleCI Orb](https://configcat.com/docs/integrations/circleci): Find feature flags in your code that you might want to remove. | ||
- [Bitrise Step](https://configcat.com/docs/integrations/bitrise/): Scan your source code for feature flag and setting usages and upload the found code references to ConfigCat. | ||
- [Bitbucket Pipe](https://configcat.com/docs/integrations/bitbucket/): Scan your source code for feature flag and setting usages and upload the found code references to ConfigCat. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -157,7 +157,8 @@ | |
"label": "Monitoring" | ||
} | ||
] | ||
} | ||
}, | ||
"zombie-flags" | ||
] | ||
}, | ||
{ | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.