Skip to content

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 42 commits into from
Jun 3, 2025
Merged
Show file tree
Hide file tree
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 Apr 2, 2025
72b033c
Initial draft of My Zombie Flags Report
codedbychavez Apr 2, 2025
bfdebe0
Additional updates and screenshots
codedbychavez Apr 3, 2025
9360153
Add link to `website/src/pages/index.js`
codedbychavez Apr 3, 2025
c04ba28
Fix: https://github.com/configcat/docs/pull/530#discussion_r2030721387
codedbychavez Apr 7, 2025
cbfe2fb
Fix: https://github.com/configcat/docs/pull/530/files/936015325bc339b…
codedbychavez Apr 7, 2025
f780248
Fix: https://github.com/configcat/docs/pull/530/files/936015325bc339b…
codedbychavez Apr 7, 2025
ab2cfd5
Merge branch 'master' into add-zombie-flags-report-documentation
codedbychavez Apr 14, 2025
b97fd84
Merge branch 'master' into add-zombie-flags-report-documentation
codedbychavez Apr 14, 2025
240e164
Update website/docs/my-zombie-flags-report.mdx
codedbychavez Apr 17, 2025
0a42831
Update website/docs/my-zombie-flags-report.mdx
codedbychavez Apr 17, 2025
e862153
Apply suggestions from code review
codedbychavez Apr 17, 2025
e2e64a8
Update website/docs/my-zombie-flags-report.mdx
codedbychavez Apr 17, 2025
f3f2276
Add new section
codedbychavez Apr 17, 2025
d11fc03
Lint fixes
codedbychavez Apr 17, 2025
53f1f63
Fix bold text
codedbychavez Apr 17, 2025
e3cb4cc
Update
codedbychavez Apr 17, 2025
b40b4c4
Apply suggestions from code review
codedbychavez Apr 30, 2025
088b306
Apply suggestions from code review
codedbychavez May 12, 2025
4f681d0
Fix screenshots
codedbychavez May 12, 2025
e0fa908
Merge branch 'master' into add-zombie-flags-report-documentation
codedbychavez May 19, 2025
68d3f38
Update link to Zombie Flag document in `sidebar.js` and `website/src/…
codedbychavez May 21, 2025
dbbd3b9
Add notes
codedbychavez May 21, 2025
608c359
Add: updated screenshots and instruction notes #1
codedbychavez May 22, 2025
a1c002b
Updates
codedbychavez May 23, 2025
ce98ec0
Add: Zombie flag report email screenshot and update documentation.
codedbychavez May 27, 2025
812ff82
Updates
codedbychavez May 28, 2025
eb5e762
Update website/docs/zombie-flags.mdx
codedbychavez May 29, 2025
30ad0ea
Apply suggestions from code review
codedbychavez May 29, 2025
6e9d618
Fix: https://github.com/configcat/docs/pull/530/files#r2112577805
codedbychavez May 29, 2025
735d66f
Fix: https://github.com/configcat/docs/pull/530/files#r2112592644
codedbychavez May 29, 2025
9c7f806
Fix: https://github.com/configcat/docs/pull/530/files#r2112591105
codedbychavez May 29, 2025
a1b781d
Fix: https://github.com/configcat/docs/pull/530/files#r2112597326
codedbychavez May 29, 2025
7892354
Remove: Unused screenshot
codedbychavez May 29, 2025
0999dce
Fix: https://github.com/configcat/docs/pull/530#discussion_r2112608110
codedbychavez May 29, 2025
3b0683c
Add: zombie flags document to v1 docs and v1 sidebar
codedbychavez May 29, 2025
9af40e0
Update: My Zombie Flags Report screenshot
codedbychavez May 29, 2025
549b6c6
Final updates
codedbychavez May 30, 2025
55bc466
Apply suggestions from code review
laliconfigcat Jun 3, 2025
aa49b24
unwanted spaces
laliconfigcat Jun 3, 2025
e8e52be
Apply suggestions from code review
laliconfigcat Jun 3, 2025
330879d
changes
laliconfigcat Jun 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 100 additions & 0 deletions website/docs/zombie-flags.mdx
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.
1 change: 1 addition & 0 deletions website/sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ const sidebars: SidebarsConfig = {
},
],
},
'zombie-flags',
{
label: 'Migration from LaunchDarkly',
type: 'category',
Expand Down
1 change: 1 addition & 0 deletions website/src/pages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ const features = [
url: 'advanced/migration-from-launchdarkly',
title: 'Migration from LaunchDarkly',
},
{ url: 'zombie-flags', title: 'Zombie Flags' },
// { url: 'advanced/config-v2-migration-guide', title: 'Config V2 Migration Guide' },
],
},
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
100 changes: 100 additions & 0 deletions website/versioned_docs/version-V1/zombie-flags.mdx
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.
3 changes: 2 additions & 1 deletion website/versioned_sidebars/version-V1-sidebars.json
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,8 @@
"label": "Monitoring"
}
]
}
},
"zombie-flags"
]
},
{
Expand Down