ashah65 opened a new pull request, #40905: URL: https://github.com/apache/superset/pull/40905
Replace hardcoded ALLOW_DEPENDENCIES list with a registry-based check so any filter plugin registering with Behavior.NativeFilter automatically supports the cascade dependency feature — no core changes needed for new plugins. Also adds isColumnSelect support in getControlItemsMap to allow plugins to declare dataset column picker controls. ### SUMMARY Currently, the mechanism that determines which native filters support cascading dependencies relies on a hardcoded list (ALLOW_DEPENDENCIES) within the core Superset codebase. This creates a tight coupling that blocks external, third-party, or custom filter plugins from leveraging cascading features without directly mutating core files. This PR refactors the filter dependency system to be entirely registry-driven and enhances control mapping flexibility. Design Decisions & Changes: Registry-Driven Dependencies: Replaced the hardcoded check with a dynamic lookup. Any filter plugin that registers with Behavior.NativeFilter now automatically inherits support for the cascade dependency feature out-of-the-box. This eliminates the need for future core repository changes when new filters are introduced. Dynamic Column Selection Controls: Added explicit support for isColumnSelect inside getControlItemsMap. This allows external plugins to declaratively request dataset column picker controls directly from the native filter configuration modal. ### TESTING INSTRUCTIONS Since this is an architectural enablement patch, testing should focus on verifying that existing core filters suffer no regressions, and that the underlying hooks resolve correctly. Navigate to a dashboard and open the Manage native filters modal. Create a standard core filter (e.g., a Select or Numerical Range filter). Ensure that the "Filter is dependent on..." (cascading) configuration option is visible, selectable, and functional. Verify that dataset column configuration selectors still populate and save accurately for out-of-the-box filters. Register a custom dummy plugin leveraging Behavior.NativeFilter to verify it successfully reveals dependency options without updating core mapping arrays. ### ADDITIONAL INFORMATION <!--- Check any relevant boxes with "x" --> <!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue --> - [ ] Has associated issue: - [ ] Required feature flags: - [ ] Changes UI - [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351)) - [ ] Migration is atomic, supports rollback & is backwards-compatible - [ ] Confirm DB migration upgrade and downgrade tested - [ ] Runtime estimates and downtime expectations provided - [x] Introduces new feature or API - [ ] Removes existing feature or API -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
