Open
Description
Bug description
Bug: RLS Filter Not Applied to Dashboard Filter Section and Resets After 30 Minutes
Description
- Row Level Security (RLS) filters are not being applied to the dashboard filter section, potentially exposing restricted data.
- Additionally, RLS filters (which are backend-driven, not static) are being reset after approximately 30 minutes of dashboard inactivity, causing potential data exposure.
Expected Behavior
- RLS filters should be consistently applied to:
- All queries made through dashboard filters
- Filter dropdown values
- All data displayed in filter components
- Backend-driven RLS filters should persist regardless of dashboard activity time.
Actual Behavior
- RLS filters are being ignored in the dashboard filter section.
- After ~30 minutes of dashboard inactivity, the RLS filters are reset, allowing users to see and filter by values they shouldn't have access to.
How to Reproduce
- Set up backend-driven RLS filters for a specific role/user.
- Create a dashboard with filters that could be affected by the RLS rules.
- Log in as a user with that role.
- Observe that:
- The filter section shows values that should be restricted by RLS.
- After 30 minutes of inactivity, the RLS filters are no longer applied.
Additional Context
- The RLS filters are backend-driven (not static).
- This issue affects all filter types in the dashboard.
- No error messages are shown when the RLS filters reset.
- The 30-minute timeout suggests a possible session or cache expiration issue.
Impact
This is a critical security issue as it can lead to unauthorized data access when:
- Users can see filter values they shouldn't have access to.
- After the timeout period, all RLS restrictions are lifted.
Suggested Priority
High - Security issue with data exposure risk.
Screenshots/recordings
No response
Superset version
master / latest-dev
Python version
3.9
Node version
16
Browser
Chrome
Additional context
No response
Checklist
- I have searched Superset docs and Slack and didn't find a solution to my problem.
- I have searched the GitHub issue tracker and didn't find a similar bug report.
- I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.