Skip to content

Filter feature flags by group type in SDK and /feature_flags endpoint #110

@iAmmar7

Description

@iAmmar7

Context

We are using PostHog feature flags with group analytics to manage per-project feature toggles in our application. We have a project group type and want to allow users to opt-in/out of features for their specific project.

Current Behavior

When calling get_all_flags with a groups parameter, PostHog returns all feature flags regardless of their targeting type - person-based flags, group-based flags of all group types, etc.

client.get_all_flags(
  distinct_id,
  groups: { project: "project-uuid-here" }
)
# Returns ALL flags: person-based, project-group, space-group, etc.

The groups parameter serves as an evaluation context, not as a filter. There seems to be no way to retrieve only the flags that target a specific group type.

Expected Behavior

It would be useful to have the ability to filter the response to only include flags that match a specific group type. For example:

client.get_all_flags(
  distinct_id,
  groups: { project: "project-uuid" },
  filter_by_group: :project  # only return flags associated with a "project-uuid"
)

Use Case

We have a dashboard where users manage features for their project. We need to display only the feature flags relevant to that project's group type, not person-level flags or flags targeting other group types. Currently, the only workaround I can think of:

  1. Using a naming convention/prefix to identify flags by group type
  2. Making a separate REST API call to /api/projects/{id}/feature_flags/ to fetch flag definitions with metadata, then cross-referencing

Both might work (I have not yet verified the 2nd flow), but feel like they shouldn't be necessary given that the flag definitions already contain this information.

Additional Context

This also relates to the early access feature management not supporting groups. For applications that need organization/project-level feature opt-in (rather than individual user opt-in), the current tooling requires significant workarounds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions