Hi there! ![]()
We’re glad to share our upcoming explicit_interactions syntax for Canvas dashboard!
Why this feature?
Currently, canvas dashboards auto-links filters and charts sharing a dataset behind the scenes, and only record the exceptions in interactions syntax
That causes two real problems:
- Bad experience for both human and AI - you can’t tell what a dashboard actually does from its code alone.
- Long code files, especially on tabbed dashboards (every cross-tab pair needs its own
disabled: trueline) and disabled linked filters (every same-dataset filter pair you don’t want linked needs its own suppression line).
What’s new
A new explicit_interactions list states every active connection directly, and name target blocks without CustomMapping wrapper needed.
Before (old syntax)
Only the disabled links are visible, not the active connections
interactions: [
FilterInteraction {
from: 'f1'
to: [
CustomMapping {
block: ['v3', 'v4']
disabled: true
}
]
}
]
After (new syntax)
Active connections stated directly:
explicit_interactions: [
FilterInteraction {
from: 'f1'
to: ['v1', 'v2']
field: r(model.field)
}
]
What’s written is what’s active - no hidden defaults to resolve.
Migration
We don’t support mass conversion yet, but the transition is seamless:
- New dashboards automatically use the
explicit_interactions:syntax - Existing dashboards convert when you next update their control or cross-filter setup
- The legacy
interactions:syntax remains functional - no breaking changes.
Timeline
We expect it live around mid-September.
What do you think of this update? Drop your thoughts below - we’d love to hear your feedback!![]()
