Skip to content

Add native description column to features with UI supportΒ #1025

Description

@markaschneider

This is a follow-up to the descriptions_source callback added in #461.

Problem

Today, features can be created dynamically through the Flipper UI β€” no code change needed. But descriptions can only be provided through a descriptions_source lambda configured in code. This creates a mismatch: the person creating a feature
in the UI can't describe what it does in the same workflow. They have to go update a config file, YAML, or database table separately.

As @jnunemaker noted in #461:

I'd rather have native storage of other attributes like description

Proposal

Add a description text column to flipper_features and expose it as an editable field in the UI on both the feature creation form and the feature detail page.

For backward compatibility with descriptions_source, the resolution would be:

  1. Load native descriptions from the description column
  2. Merge descriptions_source results on top β€” callback values take precedence when present

This means:

  • New users get descriptions out of the box via the UI with zero configuration
  • Existing descriptions_source users see no behavior change β€” their callback still wins
  • Both can be used together β€” native descriptions as defaults, callback overriding specific ones

Scope

  • Migration adding description (text, nullable) to flipper_features
  • Update the Feature create/edit UI actions to accept and persist description
  • Update the feature detail and features list views to display the native description
  • Merge logic: native descriptions as the base layer, descriptions_source on top
  • show_feature_description_in_list continues to control list page visibility

Happy to submit a PR if this direction sounds right.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions