[APP-538] feat: canvas default filter support#8391
Merged
briangregoryholmes merged 105 commits intomainfrom Dec 11, 2025
Merged
[APP-538] feat: canvas default filter support#8391briangregoryholmes merged 105 commits intomainfrom
briangregoryholmes merged 105 commits intomainfrom
Conversation
|
See Figma here. |
Collaborator
|
@briangregoryholmes : Is this ready for review ? Still on track for the release next week? |
9 tasks
AdityaHegde
approved these changes
Dec 10, 2025
Collaborator
AdityaHegde
left a comment
There was a problem hiding this comment.
This is a bit too large for a 100% review. Approving this as a 90% review.
ericokuma
approved these changes
Dec 10, 2025
This branch is functional, but we might need further iteration. |
8 tasks
Contributor
|
Looks good @briangregoryholmes |
begelundmuller
requested changes
Dec 11, 2025
begelundmuller
approved these changes
Dec 11, 2025
Contributor
|
Great job everyone! |
briangregoryholmes
added a commit
that referenced
this pull request
Dec 17, 2025
* wip * wip * cleanup and qa * rudimentary pinning UI and cleanup * wip measure support * pinning fixes * hide no filters added when adding a temporary filter * show measure pills in default filters sidebar * reorg * cleanup * initial measure apply fix * display labels instead of ids * add saved as default state * remove import * add pinning to measures, update designs * resolve issue with filters opening after apply * design update * gofumpt * revert * sorting * default bug fixes * save as default button states * quality checks * feedback and qa * delete file * quality check fix * save as default when no time range param present in url fix * remove import * bug fixes and qa * fix: save default state button incorporates pinned state * remove log * cleanup * remove logs * remove logs * rework sorting * temp bug fix * embed bug fixes, qa and cleanup * remove comment * move constructor * comment * remove unused function * remove imports * test fix * revert temporary change * bookmarks test fixes * quality check * test fixes * remove logs * unused variable * test fixes * filter opening fix * remove file * rework subscriber * test fixes and rework * test fix * time control refactor * remove comment * revert package-lock changes * embed test fix * test fix * test fixes * test fixes * remove log * cleanup * remove logs * test and feedback changes * feedback and fixes * refactor init * fix for turning off filter bar * metricssql support first pass * cleanup and feedback * test fix * remove unused import * test fixes * test fixes and cleanup * test fix * test fix attempt * rework init of dimension filter component * remove remaining _ prefixed stores * flatten api returned expressions * remove function input * add rudimentary tests * add test * update default ranges * store pinned state locally on dropdown before applying * support canvases with no time dimension * uncomment components and remove log * change first day of week function to check for time dimension * support metrics sql templating in markdown * type fix * cleanup * refine comment * variable name * remove unused property * rename API * format
k-anshul
pushed a commit
that referenced
this pull request
Dec 18, 2025
* wip * wip * cleanup and qa * rudimentary pinning UI and cleanup * wip measure support * pinning fixes * hide no filters added when adding a temporary filter * show measure pills in default filters sidebar * reorg * cleanup * initial measure apply fix * display labels instead of ids * add saved as default state * remove import * add pinning to measures, update designs * resolve issue with filters opening after apply * design update * gofumpt * revert * sorting * default bug fixes * save as default button states * quality checks * feedback and qa * delete file * quality check fix * save as default when no time range param present in url fix * remove import * bug fixes and qa * fix: save default state button incorporates pinned state * remove log * cleanup * remove logs * remove logs * rework sorting * temp bug fix * embed bug fixes, qa and cleanup * remove comment * move constructor * comment * remove unused function * remove imports * test fix * revert temporary change * bookmarks test fixes * quality check * test fixes * remove logs * unused variable * test fixes * filter opening fix * remove file * rework subscriber * test fixes and rework * test fix * time control refactor * remove comment * revert package-lock changes * embed test fix * test fix * test fixes * test fixes * remove log * cleanup * remove logs * test and feedback changes * feedback and fixes * refactor init * fix for turning off filter bar * metricssql support first pass * cleanup and feedback * test fix * remove unused import * test fixes * test fixes and cleanup * test fix * test fix attempt * rework init of dimension filter component * remove remaining _ prefixed stores * flatten api returned expressions * remove function input * add rudimentary tests * add test * update default ranges * store pinned state locally on dropdown before applying * support canvases with no time dimension * uncomment components and remove log * change first day of week function to check for time dimension * support metrics sql templating in markdown * type fix * cleanup * refine comment * variable name * remove unused property * rename API * format
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR adds support for specifying default time, dimension and measure filters when loading a Canvas dashboard for the first time. When using the builder surface in Rill Developer, the workspace provides a quick way to save the currently selected filters as default, which propagate to the YAML as metrics SQL statements:
To support the use of multiple metrics views across a single canvas, these metrics SQL filters are keyed with the name of the underlying metrics view.
FilterStateclassFilterStateclasses happens through the newFilterManagerf.{{metrics_view_name}}FilterStateclass has actions on it that allow for filter state manipulationFilterManagerclass has proxies for these functions to call them across multipleFilterStateclassesCanvasProvidercomponent no matter where a Canvas is renderedFilterStateclass (and to the URL) independently, though the actual URL navigation is batched for each user actiononUrlChangefunction as well as updated getters and setters incanvas/state-managers.tsRuntimeProviderfor embeds, sets the runtime in the topmost layout load function insteadTimeManagerandTimeStateclassesOutstanding items:
Checklist:
Note
Adds per-metrics-view canvas filtering with pinning and saved defaults, updates URL/schema and parser, refactors initialization/embeds, and introduces new UI to manage and display default/pinned filters.
FilterManagerandMetricsViewFilterwith consolidated UI/state.f.{metrics_view}) and batching of navigation.CanvasSpecwithpinned_filters;CanvasPresetwithfilter_expr; updates Swagger/TS/Go protobufs.filters.pinnedanddefaults.filtersfrom YAML.handleCanvasStoreInitializationandonUrlChange; removesRuntimeProviderfor embeds; sets runtime in layout.SaveDefaultsButton, default filters display; enhancedChip(pin/gray), filter buttons/chips; time/comparison tweaks.Filtersclass; updates bookmark handling and tests to new comparison/filters.Written by Cursor Bugbot for commit defa8bf. This will update automatically on new commits. Configure here.