fix: preserve query and dashboard tag filters in URLs
Merged
PO
3d ago+513+513+012345678901234567890123456789-40-40-01234567890123456789
Synchronize selected tags with repeated tags query parameters and restore list state when opening shared links or navigating browser history.
Document shareable filters and cover URL restoration, multi-selection, search, sorting, pagination, and listener cleanup.
Fixes getredash/redash#3197
What type of PR is this?
- Refactor
- Feature
- Bug Fix
- New Query Runner (Data Source)
- New Alert Destination
- Other
Description
How is this tested?
- Unit tests (pytest, jest)
- E2E Tests (Playwright)
- Manually
- N/A
Related Tickets & Documents
Mobile & Desktop Screenshots/Recordings (if there are UI changes)
01-shared-dashboard-link.png
Opening a shared URL restores both selected tags and displays dashboards matching both.
https://redash.example.com/dashboards?tags=Finance&tags=Sales%20Reports
02-shared-query-link.png
Opening a query-list URL restores the Finance filter and highlights the selected tag.
https://redash.example.com/queries?tags=Finance
03-search-with-tags.png
Searching for “Revenue” preserves the Finance filter and narrows the matching queries.
https://redash.example.com/queries?q=Revenue&tags=Finance
04-clear-selection.png
Clearing the selected tags removes the URL filter and restores the full dashboard list.
https://redash.example.com/dashboards
05-special-characters.png
Tags containing spaces and punctuation, such as “R&D + QA, Europe,” survive URL encoding and restore correctly.
https://redash.example.com/dashboards?tags=R%26D%20%2B%20QA%2C%20Europe