Compare commits

...

2 Commits

Author SHA1 Message Date
Maxime Beauchemin
db3a0f50d6 clarify message 2025-06-30 09:38:13 -07:00
Maxime Beauchemin
379ef6b002 docs: add FAQ entry around how dashboard filters are broadcasted 2025-06-30 09:38:13 -07:00
2 changed files with 46 additions and 8 deletions

View File

@@ -283,3 +283,28 @@ You are talking about dependency CVEs: identified vulnerabilities in software th
We address these dependency CVEs as best we can by regularly updating our dependencies to newer versions. We use bots to assist with that and cheerfully welcome pull requests from humans that fix dependency CVEs.
The Superset [security team](https://superset.apache.org/docs/security/#reporting-security-vulnerabilities) focuses primarily on vulnerabilities _in Superset itself_. See our [CVEs page](https://superset.apache.org/docs/security/cves) for a list of past Superset CVEs.
## How are dashboard filters broadcasted?
In Superset, **filters on a dashboard are broadcasted to other charts by default** based on matching **column names**, even across different datasets.
### Default behavior
When you add a filter to a dashboard (e.g. selecting `country = Canada`), it will **automatically apply to all charts** that contain a column named `country`, regardless of which dataset they use. This default setting is labeled **"All panels"** in the filters configuration modal.
If two datasets both have a `country` column, the filter will be applied to both. Superset assumes the shared column name reflects the same semantic dimension.
### Things to watch out for
- Superset only matches by **column name**, not content. If one dataset uses `country = Canada` and another uses `country = CA`, the filter might produce **invalid or empty results**.
- This can lead to confusion or broken dashboards unless the datasets are aligned and filterable by the same values.
- When building dashboards that mix datasets, consider how your dimensions are named and whether their values match.
### Controlling filter scope
To manage this, open the **filter configuration modal**, and go to the **“Scoping”** tab. From there, you can:
- Limit the filter to specific charts.
- Avoid broadcasting to charts using datasets with incompatible dimension values.
- See exactly which charts will be affected.
This behavior is powerful, but it does require some care. Align your dataset schemas and be deliberate with scoping to avoid unexpected cross-chart filtering.

View File

@@ -55,6 +55,7 @@ import { PluginFilterSelectCustomizeProps } from 'src/filters/components/Select/
import { useSelector } from 'react-redux';
import { getChartDataRequest } from 'src/components/Chart/chartAction';
import {
Alert,
Constants,
FormItem,
type FormInstance,
@@ -1438,14 +1439,26 @@ const FiltersConfigForm = (
label: FilterTabs.scoping.name,
forceRender: true,
children: (
<FilterScope
updateFormValues={updateFormValues}
pathToFormValue={['filters', filterId]}
forceUpdate={forceUpdate}
filterScope={filterToEdit?.scope}
formFilterScope={formFilter?.scope}
initiallyExcludedCharts={initiallyExcludedCharts}
/>
<>
<Alert
type="info"
message={t('About filter scoping')}
style={{ margin: theme.sizeUnit * 2 }}
description={t(
'Dashboard filters are only applied when the same dataset ' +
'is shared across multiple charts OR when column names ' +
'match across different datasets within the same dashboard.',
)}
/>
<FilterScope
updateFormValues={updateFormValues}
pathToFormValue={['filters', filterId]}
forceUpdate={forceUpdate}
filterScope={filterToEdit?.scope}
formFilterScope={formFilter?.scope}
initiallyExcludedCharts={initiallyExcludedCharts}
/>
</>
),
},
]}