Skip to content

Conversation

@gilluminate
Copy link
Contributor

@gilluminate gilluminate commented Oct 29, 2025

Ticket ENG-1801

Description Of Changes

Replaced the alpha alphaFullActionCenter feature flag with a beta-appropriate llmClassifier flag to control LLM classifier functionality and the updated Action Center UI. The Action Center now appears when either webMonitor OR llmClassifier flags are enabled, while the legacy Activity, Detection, and Discovery pages are hidden when llmClassifier is enabled. Added backend configuration check (detection_discovery.llm_classifier_enabled) to disable the LLM classifier toggle with a helpful tooltip when the backend doesn't support it.

Also removes the Prompt Template from the LLM options in the Monitor form as per https://ethyca.atlassian.net/browse/ENG-1774

Code Changes

  • Renamed alphaFullActionCenter flag to llmClassifier in flags.json
  • Added requiresAnyFlag and hidesIfFlag properties to navigation config for flexible route visibility logic
  • Updated Action Center navigation to show when either webMonitor OR llmClassifier is enabled
  • Hide Activity, Data detection, and Data discovery routes when llmClassifier is enabled
  • Added backend config check for detection_discovery.llm_classifier_enabled in ConfigureMonitorForm
  • Disabled LLM classifier toggle with tooltip when backend flag is disabled
  • Updated monitor list filter to hide website monitors when webMonitor is off but llmClassifier is on
  • Removed Prompt Template field and related tests

Steps to Confirm

  1. Enable "Llm classifier" flag in Settings → About
  2. Verify Action Center appears in Detection & Discovery navigation
  3. Verify Activity, Data detection, and Data discovery pages are hidden from navigation
  4. Navigate to an integration with monitor support and configure a monitor
  5. Verify "Use LLM classifier" toggle is disabled with an info tooltip if backend config detection_discovery.llm_classifier_enabled is false
  6. Verify monitor list only shows datastore/infrastructure monitors when llmClassifier is on but webMonitor is off
  7. Disable "Llm classifier" flag in Settings → About and verify legacy pages reappear and Action Center is hidden (unless webMonitor is enabled)

Pre-Merge Checklist

  • Issue requirements met
  • All CI pipelines succeeded
  • CHANGELOG.md updated
    • Add a db-migration This indicates that a change includes a database migration label to the entry if your change includes a DB migration
    • Add a high-risk This issue suggests changes that have a high-probability of breaking existing code label to the entry if your change includes a high-risk change (i.e. potential for performance impact or unexpected regression) that should be flagged
    • Updates unreleased work already in Changelog, no new entry necessary
  • UX feedback:
    • All UX related changes have been reviewed by a designer
    • No UX review needed
  • Followup issues:
    • Followup issues created
    • No followup issues
  • Database migrations:
    • Ensure that your downrev is up to date with the latest revision on main
    • Ensure that your downgrade() migration is correct and works
      • If a downgrade migration is not possible for this change, please call this out in the PR description!
    • No migrations
  • Documentation:
    • Documentation complete, PR opened in fidesdocs
    • Documentation issue created in fidesdocs
    • If there are any new client scopes created as part of the pull request, remember to update public-facing documentation that references our scope registry
    • No documentation updates required

@vercel
Copy link

vercel bot commented Oct 29, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
fides-plus-nightly Ready Ready Preview Comment Oct 30, 2025 1:29am
1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
fides-privacy-center Ignored Ignored Oct 30, 2025 1:29am

@gilluminate gilluminate force-pushed the gill/ENG-1801/update-feature-flags-for branch 2 times, most recently from 86c5253 to 941bf85 Compare October 29, 2025 19:55
@gilluminate gilluminate changed the title Gill/eng 1801/update feature flags for Update Feature Flags for Release Oct 29, 2025
@gilluminate gilluminate marked this pull request as ready for review October 29, 2025 19:56
@gilluminate gilluminate requested a review from a team as a code owner October 29, 2025 19:56
@gilluminate gilluminate requested review from jpople and speaker-ender and removed request for a team and jpople October 29, 2025 19:56
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR transitions the LLM classifier feature from alpha to beta by renaming the alphaFullActionCenter flag to llmClassifier. The changes implement flexible navigation routing where the Action Center appears when either webMonitor OR llmClassifier flags are enabled, while legacy pages (Activity, Data detection, Data discovery) are hidden when llmClassifier is enabled.

Key changes:

  • Renamed feature flag with clearer, beta-appropriate naming
  • Added requiresAnyFlag and hidesIfFlag navigation properties for flexible route visibility
  • Added backend configuration check (detection_discovery.llm_classifier_enabled) to disable the LLM classifier toggle when backend doesn't support it
  • Updated monitor filtering logic to show website monitors only with webMonitor flag and datastore/infrastructure monitors only with llmClassifier flag
  • Applied sentence case capitalization throughout UI labels

One minor logic issue found in ConfigureMonitorForm.tsx where the initial value for use_llm_classifier is calculated using && llmClassifierEnabled, which will incorrectly show false for monitors that were previously configured with LLM classifier enabled when the backend flag is now disabled.

Confidence Score: 4/5

  • This PR is safe to merge with one minor logic issue that should be addressed
  • The PR is well-structured with comprehensive feature flag refactoring. The logic issue in ConfigureMonitorForm.tsx line 175 is not critical but could cause user confusion when a monitor was previously configured with LLM classifier enabled but the backend flag is now disabled - the form would show the toggle as off when it should show the actual saved state.
  • ConfigureMonitorForm.tsx:175 - review initial value logic for use_llm_classifier

Important Files Changed

File Analysis

Filename Score Overview
clients/admin-ui/src/features/common/nav/nav-config.tsx 5/5 Added flexible flag routing with requiresAnyFlag and hidesIfFlag properties, updated routes to use new llmClassifier flag
clients/admin-ui/src/pages/data-discovery/action-center/index.tsx 5/5 Updated monitor filtering to show website monitors only if webMonitor is enabled and non-website monitors only if llmClassifier is enabled
clients/admin-ui/src/features/integrations/configure-monitor/ConfigureMonitorForm.tsx 4/5 Added backend config check for LLM classifier, disabled toggle with tooltip when backend doesn't support it, updated text to sentence case. Minor issue with initial value logic when backend flag is disabled.

7 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@gilluminate gilluminate force-pushed the gill/ENG-1801/update-feature-flags-for branch 2 times, most recently from 6e8f5e0 to 23f8642 Compare October 30, 2025 00:45
@gilluminate gilluminate force-pushed the gill/ENG-1801/update-feature-flags-for branch from 23f8642 to 0587b00 Compare October 30, 2025 00:50
route.hidesIfFlag &&
flags &&
flags[route.hidesIfFlag] &&
!window?.Cypress
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was necessary to keep old tests from failing

@gilluminate
Copy link
Contributor Author

@greptile

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR renames the alphaFullActionCenter feature flag to llmClassifier with a more precise description that reflects its beta status. The flag now specifically controls LLM classifier functionality for Helios datastore monitors and the updated Action Center UI.

Key changes:

  • Action Center navigation now appears when either webMonitor OR llmClassifier flags are enabled (new OR logic via requiresAnyFlag)
  • Legacy pages (Activity, Data detection, Data discovery) are hidden when llmClassifier is enabled (new hidesIfFlag property)
  • Added backend configuration check (detection_discovery.llm_classifier_enabled) to disable the LLM classifier toggle with a helpful tooltip when the server doesn't support it
  • Removed the Prompt Template field from monitor configuration as it's no longer needed
  • Updated monitor list filtering to correctly show website monitors only when webMonitor is on, and datastore/infrastructure monitors when llmClassifier is on

The implementation cleanly separates web monitoring concerns from LLM classifier functionality, allowing the Action Center to serve both features independently.

Confidence Score: 4/5

  • This PR is safe to merge with one minor logic consideration around preserved state handling
  • The refactoring is well-structured with proper flag separation and comprehensive test coverage. One concern exists around initial value logic in ConfigureMonitorForm where a monitor previously configured with LLM classifier enabled would show as disabled in the UI if the server flag is off, potentially causing confusion.
  • Pay attention to clients/admin-ui/src/features/integrations/configure-monitor/ConfigureMonitorForm.tsx for the initial value logic

Important Files Changed

File Analysis

Filename Score Overview
clients/admin-ui/src/features/common/nav/nav-config.tsx 5/5 Added requiresAnyFlag and hidesIfFlag properties for flexible navigation visibility logic - well-structured implementation
clients/admin-ui/src/features/integrations/configure-monitor/ConfigureMonitorForm.tsx 4/5 Added backend config check for LLM classifier support and disabled toggle with tooltip when unavailable - one logic issue with initial value handling
clients/admin-ui/src/pages/data-discovery/action-center/index.tsx 5/5 Updated to use both webMonitor and llmClassifier flags for monitor filtering and page access - logic correctly implements OR condition
clients/admin-ui/cypress/e2e/integration-management.cy.ts 5/5 Removed prompt template tests and added backend config mocking for LLM classifier - comprehensive test coverage for new server-side flag

11 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@gilluminate gilluminate added this pull request to the merge queue Oct 30, 2025
Merged via the queue into main with commit bc74a0c Oct 30, 2025
46 checks passed
@gilluminate gilluminate deleted the gill/ENG-1801/update-feature-flags-for branch October 30, 2025 02:21
adamsachs pushed a commit that referenced this pull request Nov 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants