You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "Crystal701 (via GitHub)" <gi...@apache.org> on 2025/07/23 12:09:15 UTC

[D] How to retrieve filter state when applying filter on embedded dashboard [superset]

GitHub user Crystal701 created a discussion: How to retrieve filter state when applying filter on embedded dashboard

Hi all,
I'm working on embedding Superset dashboards into an application, and I'd like to allow users to apply persistent filters directly from the embedded dashboard.

Currently, the applied filter works, but:
- The filter state is not persisted
- The updated dataMask is not accessible from outside the iframe, which makes it difficult to generate a new permalink

I’m currently using CSS and JS injection to customize UI interactions, and would like to know:
- Is it possible to retrieve the current dataMask or filter key via postMessage from the embedded iframe?
- Is there a configuration flag I need to enable in `superset_config.py` to allow this kind of access?

GitHub link: https://github.com/apache/superset/discussions/34277

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
GitHub user michael-s-molina added a comment to the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

Hi @Crystal701. This PR will be included in 6.0 which is already in the works. Our [Release Process](https://github.com/apache/superset/wiki/Release-Process) contains more details about how we build releases.

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-13876422

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filter on embedded dashboard [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] added a comment to the discussion: How to retrieve filter dataMask when applying filter on embedded dashboard

<!-- Greeting -->
Hi @Crystal701! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the superset team.

<!-- Answer -->
Yes, you can retrieve the current filter state (dataMask) from an embedded Superset dashboard via postMessage using Superset's built-in Switchboard messaging protocol. To enable this, set the EMBEDDED_SUPERSET feature flag to True in your superset_config.py. There is no separate config flag specifically for filter state transfer—it's controlled by frontend URL parameters and the embedding feature flag [source](https://github.com/apache/superset/issues/33702).

To have the embedded dashboard automatically emit filter state changes to the parent, add uiConfig=16 (or any value with the '16' bit set) to your iframe src URL. This enables the emitDataMasks flag, which causes the dashboard to post dataMask updates to the parent window whenever filters change [source](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/components/UiConfigContext/index.tsx).

You can also use Switchboard methods like getDataMask to request the current filter state from the embedded dashboard on demand [source](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/packages/superset-ui-switchboard/src/switchboard.ts).

No CSS or JS injection is needed for this communication if you use the supported embedding and Switchboard features. For persistence, you can use FILTER_STATE_CACHE_CONFIG in superset_config.py to cache filter state, but this is not required for postMessage-based access [source](https://github.com/apache/superset/discussions/33957).

In summary: enable EMBEDDED_SUPERSET, use uiConfig=16 in your iframe URL, and use Switchboard postMessage methods to access or listen for dataMask changes from the parent application. This will let you retrieve filter state and generate permalinks outside the iframe.


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*

---
<sup>How did I do? [Good](https://app.dosu.dev/response-feedback/ca0af7de-e1a9-4593-8946-a6ad5197a26d?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/ca0af7de-e1a9-4593-8946-a6ad5197a26d?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/ca0af7de-e1a9-4593-8946-a6ad5197a26d?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/ca0af7de-e1a9-4593-8946-a6ad5197a26d?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/ca0af7de-e1a9-4593-8946-a6ad5197a26d?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/ca0af7de-e1a9-4593-8946-a6ad5197a26d?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/ca0af7de-e1a9-4593-8946-a6ad5197a26d?feedback_type=other)</sup>&nbsp;&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Sh
 are on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/34277)

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-13862808

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] edited a comment on the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

<!-- Answer -->
The error `[superset] Method "getDataMask" is not defined` usually means the parent app is calling `getDataMask` before the embedded dashboard has finished initializing and registered its Switchboard methods. The method is implemented and available, but only after the iframe completes its handshake (including guestToken and port setup) and starts the Switchboard instance. If you call it too early, you'll get this error. 

To avoid this, make sure you only call `getDataMask` after the embedded dashboard signals it's ready—typically after the handshake is complete and the port is established. If your embedding setup doesn't provide a clear "ready" event, consider subscribing to filter state changes using the event-driven approach: enable `emitDataMasks` (by setting `uiConfig=16` in your iframe URL), and listen for dataMask updates sent from the iframe to the parent. This way, you get real-time updates without polling or timing issues. 

You don't need CSS or JS injection for this—just ensure the embedding and Switchboard setup is correct and that you wait for the dashboard to be ready before making method calls.  
[See code reference](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/embedded/index.tsx)


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=reply-with-mention&utm_term=apache%2Fsuperset).*

---

Docs are dead. Just use [Dosu](https://dosu.dev?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-tagline&utm_term=apache%2Fsuperset).

[![Leave Feedback](https://img.shields.io/badge/Leave%20Feedback-555555?style=flat)](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-feedback&utm_term=apache%2Fsuperset&message_id=7d12ef36-02cc-42c6-a650-835da5fb8f8f) [![Ask Dosu about superset](https://img.shields.io/badge/Ask%20Dosu%20about%20superset-2f7b3f?style=flat&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iODYiIGhlaWdodD0iODkiIHZpZXdCb3g9IjAgMCA4NiA4OSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4yOTIzNiAxMi43OTI4TDE3Ljc1OTMgNi42ODE4OFY3Mi41NjY3TDUuMjkyMzYgODQuMDYxOFYxMi43OTI4WiIgZmlsbD0iI0I0QkI5MSIvPjxwYXRoIGQ9Ik0xOC4yNTc1IDczLjExOTZMNTkuMTMyOSA3Mi43NDhMNTEuNzAxMSA4Mi40MDk1TDI5LjAzMzggODYuMjkxTDYuMjM5NjIgODUuMTU1NEwxOC4yNTc1IDczLjExOTZaIiBmaWxsPSIjNzc4NTYxIi8%2BPHBhdGggZD0iTTE3LjQ5MTYgMy43MzYzM0wzLjU4NTU3IDEyLjcwOTlWODMuNTc5MkMzLjU4NTU3IDg0Ljc1NDIgNC45ODU2MyA4NS4zNjUyIDUuODQ3MDUg
 ODQuNTY2TDE5LjYyOTYgNzEuNzgwMSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI2LjQyODQ0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48bWFzayBpZD0iZG9zdS1kLWN1dG91dCIgZmlsbD0id2hpdGUiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDAuNzA0IDAuNTE4MDY2SDE3LjA0MzlWNzYuMjIyMUg0MC43MDRINDIuNTgwNUg0Ny44MDEzQzY4LjcwNjQgNzYuMjIyMSA4NS42NTMzIDU5LjI3NTIgODUuNjUzMyAzOC4zNzAxQzg1LjY1MzMgMTcuNDY1IDY4LjcwNjMgMC41MTgwNjYgNDcuODAxMyAwLjUxODA2Nkg0Mi41ODA1SDQwLjcwNFoiLz48L21hc2s%2BPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MC43MDQgMC41MTgwNjZIMTcuMDQzOVY3Ni4yMjIxSDQwLjcwNEg0Mi41ODA1SDQ3LjgwMTNDNjguNzA2NCA3Ni4yMjIxIDg1LjY1MzMgNTkuMjc1MiA4NS42NTMzIDM4LjM3MDFDODUuNjUzMyAxNy40NjUgNjguNzA2MyAwLjUxODA2NiA0Ny44MDEzIDAuNTE4MDY2SDQyLjU4MDVINDAuNzA0WiIgZmlsbD0iI0YzRjZGMSIvPjxwYXRoIGQ9Ik0xNy4wNDM5IDAuNTE4MDY2Vi02LjU3OTE5SDkuOTQ2NjlWMC41MTgwNjZIMTcuMDQzOVpNMTcuMDQzOSA3Ni4yMjIxSDkuOTQ2NjlWODMuMzE5NEgxNy4wNDM5Vjc2LjIyMjFaTTE3LjA0MzkgNy42MTUzMkg0MC43MDRWLTYuNTc5MTlIMTcuMDQzOVY3LjYxNTMyWk0
 yNC4xNDEyIDc2LjIyMjFWMC41MTgwNjZIOS45NDY2OVY3Ni4yMjIxSDI0LjE0MTJaTTQwLjcwNCA2OS4xMjQ5SDE3LjA0MzlWODMuMzE5NEg0MC43MDRWNjkuMTI0OVpNNDIuNTgwNSA2OS4xMjQ5SDQwLjcwNFY4My4zMTk0SDQyLjU4MDVWNjkuMTI0OVpNNDcuODAxMyA2OS4xMjQ5SDQyLjU4MDVWODMuMzE5NEg0Ny44MDEzVjY5LjEyNDlaTTc4LjU1NiAzOC4zNzAxQzc4LjU1NiA1NS4zNTU1IDY0Ljc4NjcgNjkuMTI0OSA0Ny44MDEzIDY5LjEyNDlWODMuMzE5NEM3Mi42MjYxIDgzLjMxOTQgOTIuNzUwNSA2My4xOTQ5IDkyLjc1MDUgMzguMzcwMUg3OC41NTZaTTQ3LjgwMTMgNy42MTUzMkM2NC43ODY2IDcuNjE1MzIgNzguNTU2IDIxLjM4NDcgNzguNTU2IDM4LjM3MDFIOTIuNzUwNUM5Mi43NTA1IDEzLjU0NTMgNzIuNjI2IC02LjU3OTE5IDQ3LjgwMTMgLTYuNTc5MTlWNy42MTUzMlpNNDIuNTgwNSA3LjYxNTMySDQ3LjgwMTNWLTYuNTc5MTlINDIuNTgwNVY3LjYxNTMyWk00MC43MDQgNy42MTUzMkg0Mi41ODA1Vi02LjU3OTE5SDQwLjcwNFY3LjYxNTMyWiIgZmlsbD0iYmxhY2siIG1hc2s9InVybCgjZG9zdS1kLWN1dG91dCkiLz48cGF0aCBkPSJNNjguOTIxNSAzNi4wMTM1QzY4LjkyMTUgMzYuMDEzNSA2NS43MzY5IDQ5LjQ3MzggNTEuNDIzMSA0OS40NzM4QzM3LjEwOTMgNDkuNDczOCAzMi41Nzg3IDM3LjM1OTYgMzIuNTc4NyAzNi4wMTM1IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjcuNjkxNjEi
 IHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0wLjM0ODYzMyA4NS40OTQ2QzAuMzQ4NjMzIDg1LjQ5NDYgMjkuNDg1NiA4NS44MzA5IDM0LjgwOSA4NS42OThDNDQuODMzNyA4NS40NDc3IDUxLjI4NzIgODQuNDAyIDU3LjUyNjkgNzguOTcyNEM2Mi44MTI5IDc0LjM3MjcgNzUuMTM0MiA1OS42ODM2IDc1LjEzNDIgNTkuNjgzNiIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI2LjE2NDgyIi8%2BPC9zdmc%2B)](https://github.dosu.com/apache/superset?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-ask-repo&utm_term=apache%2Fsuperset) [![Share Dosu with your team](https://img.shields.io/badge/Share%20Dosu%20with%20your%20team-1f6feb?style=flat)](https://app.dosu.dev/signup?referrer=openSource&source=github-footer&utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-share-team&utm_term=apache%2Fsuperset)

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-13869894

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filter on embedded dashboard [superset]

Posted by "Crystal701 (via GitHub)" <gi...@apache.org>.
GitHub user Crystal701 edited a discussion: How to retrieve filter dataMask when applying filter on embedded dashboard

Hi all,
I'm working on embedding Superset dashboards into an application, and I'd like to allow users to apply persistent filters directly from the embedded dashboard.

Currently, the applied filter works, but:
- The filter state is not persisted
- The updated dataMask is not accessible from outside the iframe, which makes it difficult to generate a new permalink

I’m currently using CSS and JS injection to customize UI interactions, and would like to know:
- Is it possible to retrieve the current dataMask or filter key via postMessage from the embedded iframe?
- Is there a configuration flag I need to enable in `superset_config.py` to allow this kind of access?

GitHub link: https://github.com/apache/superset/discussions/34277

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "LiamTorrelli (via GitHub)" <gi...@apache.org>.
GitHub user LiamTorrelli added a comment to the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

Thank you! I was really waiting for the extensions in Superset, because now we can finally move over to it in 6.1! Amazing stuff

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-17445330

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
GitHub user michael-s-molina added a comment to the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

Hi @LiamTorrelli. Thanks for documenting the problems you found. I just looked at https://drafted.work/ and you have really interesting Superset customizations! You might find [Superset Extensions](https://superset.apache.org/developer-docs/extensions/overview) helpful to implement some of your cool features. In case you want to share your customization needs or just get in the loop, we have a weekly meeting on Thursdays to discuss Extensions (available on Superset's public calendar).

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-17394010

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] added a comment to the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

<!-- Answer -->
The error `[superset] Method "getDataMask" is not defined` usually means the parent app is calling `getDataMask` before the embedded dashboard has finished initializing and registered its Switchboard methods. The method is implemented and available, but only after the iframe completes its handshake (including guestToken and port setup) and starts the Switchboard instance. If you call it too early, you'll get this error. 

To avoid this, make sure you only call `getDataMask` after the embedded dashboard signals it's ready—typically after the handshake is complete and the port is established. If your embedding setup doesn't provide a clear "ready" event, consider subscribing to filter state changes using the event-driven approach: enable `emitDataMasks` (by setting `uiConfig=16` in your iframe URL), and listen for dataMask updates sent from the iframe to the parent. This way, you get real-time updates without polling or timing issues. 

You don't need CSS or JS injection for this—just ensure the embedding and Switchboard setup is correct and that you wait for the dashboard to be ready before making method calls.  
[See code reference](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/embedded/index.tsx)


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*

---
<sup>How did I do? [Good](https://app.dosu.dev/response-feedback/7d12ef36-02cc-42c6-a650-835da5fb8f8f?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/7d12ef36-02cc-42c6-a650-835da5fb8f8f?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/7d12ef36-02cc-42c6-a650-835da5fb8f8f?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/7d12ef36-02cc-42c6-a650-835da5fb8f8f?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/7d12ef36-02cc-42c6-a650-835da5fb8f8f?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/7d12ef36-02cc-42c6-a650-835da5fb8f8f?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/7d12ef36-02cc-42c6-a650-835da5fb8f8f?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github)&
 nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/34277)

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-13869894

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "LiamTorrelli (via GitHub)" <gi...@apache.org>.
GitHub user LiamTorrelli added a comment to the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

Yeah — `dataMask` over postMessage only answers after the switchboard handshake finishes. Poke it before that and you get nothing useful, sometimes an exception in the console you'd never see in prod.

Even when you catch a value, filter changes inside the frame don't flow to your parent router. I kept this as a debug hack, not something I'd ship to customers who need back button or shareable views.

Filter isolation is one of six iframe walls I documented with upstream issue links: https://drafted.work/blog/superset-iframe-embedding-problems

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-17393185

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "Crystal701 (via GitHub)" <gi...@apache.org>.
GitHub user Crystal701 added a comment to the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

@dosu Error: [superset] Method "getDataMask" is not defined


GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-13869863

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "Crystal701 (via GitHub)" <gi...@apache.org>.
GitHub user Crystal701 added a comment to the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

Hi @sadpandajoe @michael-s-molina and the rest of the Superset team,

I've been reviewing the codebase for the current Apache Superset version I'm using and noticed that the getDataMask method is missing in the latest releases. Specifically, it isn't registered via Switchboard.defineMethod, so it's currently inaccessible to host apps.

I came across https://github.com/apache/superset/pull/32997, which adds support for this method. Would it be possible to include this PR in an upcoming release?

Appreciate your time and the great work on Superset!

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-13870430

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "Crystal701 (via GitHub)" <gi...@apache.org>.
GitHub user Crystal701 edited a discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

Hi all,
I'm working on embedding Superset dashboards into an application, and I'd like to allow users to apply persistent filters directly from the embedded dashboard.

Currently, the applied filter works, but:
- The filter state is not persisted
- The updated dataMask is not accessible from outside the iframe, which makes it difficult to generate a new permalink

I’m currently using CSS and JS injection to customize UI interactions, and would like to know:
- Is it possible to retrieve the current dataMask or filter key via postMessage from the embedded iframe?
- Is there a configuration flag I need to enable in `superset_config.py` to allow this kind of access?

GitHub link: https://github.com/apache/superset/discussions/34277

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "Crystal701 (via GitHub)" <gi...@apache.org>.
GitHub user Crystal701 edited a comment on the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

Hi @sadpandajoe @michael-s-molina and the rest of the Superset team,

I've been reviewing the codebase for the current Apache Superset version I'm using and noticed that the `getDataMask` method is missing in the latest releases. Specifically, it isn't registered via `Switchboard.defineMethod`, so it's currently inaccessible to host apps.

I came across https://github.com/apache/superset/pull/32997, which adds support for this method. Would it be possible to include this PR in an upcoming release?

Appreciate your time and the great work on Superset!

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-13870430

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve dataMask when applying filter on embedded dashboard [superset]

Posted by "Crystal701 (via GitHub)" <gi...@apache.org>.
GitHub user Crystal701 edited a discussion: How to retrieve dataMask when applying filter on embedded dashboard

Hi all,
I'm working on embedding Superset dashboards into an application, and I'd like to allow users to apply persistent filters directly from the embedded dashboard.

Currently, the applied filter works, but:
- The filter state is not persisted
- The updated dataMask is not accessible from outside the iframe, which makes it difficult to generate a new permalink

I’m currently using CSS and JS injection to customize UI interactions, and would like to know:
- Is it possible to retrieve the current dataMask or filter key via postMessage from the embedded iframe?
- Is there a configuration flag I need to enable in `superset_config.py` to allow this kind of access?

GitHub link: https://github.com/apache/superset/discussions/34277

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [D] How to retrieve filter dataMask when applying filters on embedded dashboard [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] edited a comment on the discussion: How to retrieve filter dataMask when applying filters on embedded dashboard

<!-- Greeting -->
Hi @Crystal701! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the superset team.

<!-- Answer -->
Yes, you can retrieve the current filter state (dataMask) from an embedded Superset dashboard via postMessage using Superset's built-in Switchboard messaging protocol. To enable this, set the EMBEDDED_SUPERSET feature flag to True in your superset_config.py. There is no separate config flag specifically for filter state transfer—it's controlled by frontend URL parameters and the embedding feature flag [source](https://github.com/apache/superset/issues/33702).

To have the embedded dashboard automatically emit filter state changes to the parent, add uiConfig=16 (or any value with the '16' bit set) to your iframe src URL. This enables the emitDataMasks flag, which causes the dashboard to post dataMask updates to the parent window whenever filters change [source](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/components/UiConfigContext/index.tsx).

You can also use Switchboard methods like getDataMask to request the current filter state from the embedded dashboard on demand [source](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/packages/superset-ui-switchboard/src/switchboard.ts).

No CSS or JS injection is needed for this communication if you use the supported embedding and Switchboard features. For persistence, you can use FILTER_STATE_CACHE_CONFIG in superset_config.py to cache filter state, but this is not required for postMessage-based access [source](https://github.com/apache/superset/discussions/33957).

In summary: enable EMBEDDED_SUPERSET, use uiConfig=16 in your iframe URL, and use Switchboard postMessage methods to access or listen for dataMask changes from the parent application. This will let you retrieve filter state and generate permalinks outside the iframe.


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=reply-with-mention&utm_term=apache%2Fsuperset).*

---

Docs are dead. Just use [Dosu](https://dosu.dev?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-tagline&utm_term=apache%2Fsuperset).

[![Leave Feedback](https://img.shields.io/badge/Leave%20Feedback-555555?style=flat)](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-feedback&utm_term=apache%2Fsuperset&message_id=ca0af7de-e1a9-4593-8946-a6ad5197a26d) [![Ask Dosu about superset](https://img.shields.io/badge/Ask%20Dosu%20about%20superset-2f7b3f?style=flat&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iODYiIGhlaWdodD0iODkiIHZpZXdCb3g9IjAgMCA4NiA4OSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4yOTIzNiAxMi43OTI4TDE3Ljc1OTMgNi42ODE4OFY3Mi41NjY3TDUuMjkyMzYgODQuMDYxOFYxMi43OTI4WiIgZmlsbD0iI0I0QkI5MSIvPjxwYXRoIGQ9Ik0xOC4yNTc1IDczLjExOTZMNTkuMTMyOSA3Mi43NDhMNTEuNzAxMSA4Mi40MDk1TDI5LjAzMzggODYuMjkxTDYuMjM5NjIgODUuMTU1NEwxOC4yNTc1IDczLjExOTZaIiBmaWxsPSIjNzc4NTYxIi8%2BPHBhdGggZD0iTTE3LjQ5MTYgMy43MzYzM0wzLjU4NTU3IDEyLjcwOTlWODMuNTc5MkMzLjU4NTU3IDg0Ljc1NDIgNC45ODU2MyA4NS4zNjUyIDUuODQ3MDUg
 ODQuNTY2TDE5LjYyOTYgNzEuNzgwMSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI2LjQyODQ0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48bWFzayBpZD0iZG9zdS1kLWN1dG91dCIgZmlsbD0id2hpdGUiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDAuNzA0IDAuNTE4MDY2SDE3LjA0MzlWNzYuMjIyMUg0MC43MDRINDIuNTgwNUg0Ny44MDEzQzY4LjcwNjQgNzYuMjIyMSA4NS42NTMzIDU5LjI3NTIgODUuNjUzMyAzOC4zNzAxQzg1LjY1MzMgMTcuNDY1IDY4LjcwNjMgMC41MTgwNjYgNDcuODAxMyAwLjUxODA2Nkg0Mi41ODA1SDQwLjcwNFoiLz48L21hc2s%2BPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MC43MDQgMC41MTgwNjZIMTcuMDQzOVY3Ni4yMjIxSDQwLjcwNEg0Mi41ODA1SDQ3LjgwMTNDNjguNzA2NCA3Ni4yMjIxIDg1LjY1MzMgNTkuMjc1MiA4NS42NTMzIDM4LjM3MDFDODUuNjUzMyAxNy40NjUgNjguNzA2MyAwLjUxODA2NiA0Ny44MDEzIDAuNTE4MDY2SDQyLjU4MDVINDAuNzA0WiIgZmlsbD0iI0YzRjZGMSIvPjxwYXRoIGQ9Ik0xNy4wNDM5IDAuNTE4MDY2Vi02LjU3OTE5SDkuOTQ2NjlWMC41MTgwNjZIMTcuMDQzOVpNMTcuMDQzOSA3Ni4yMjIxSDkuOTQ2NjlWODMuMzE5NEgxNy4wNDM5Vjc2LjIyMjFaTTE3LjA0MzkgNy42MTUzMkg0MC43MDRWLTYuNTc5MTlIMTcuMDQzOVY3LjYxNTMyWk0
 yNC4xNDEyIDc2LjIyMjFWMC41MTgwNjZIOS45NDY2OVY3Ni4yMjIxSDI0LjE0MTJaTTQwLjcwNCA2OS4xMjQ5SDE3LjA0MzlWODMuMzE5NEg0MC43MDRWNjkuMTI0OVpNNDIuNTgwNSA2OS4xMjQ5SDQwLjcwNFY4My4zMTk0SDQyLjU4MDVWNjkuMTI0OVpNNDcuODAxMyA2OS4xMjQ5SDQyLjU4MDVWODMuMzE5NEg0Ny44MDEzVjY5LjEyNDlaTTc4LjU1NiAzOC4zNzAxQzc4LjU1NiA1NS4zNTU1IDY0Ljc4NjcgNjkuMTI0OSA0Ny44MDEzIDY5LjEyNDlWODMuMzE5NEM3Mi42MjYxIDgzLjMxOTQgOTIuNzUwNSA2My4xOTQ5IDkyLjc1MDUgMzguMzcwMUg3OC41NTZaTTQ3LjgwMTMgNy42MTUzMkM2NC43ODY2IDcuNjE1MzIgNzguNTU2IDIxLjM4NDcgNzguNTU2IDM4LjM3MDFIOTIuNzUwNUM5Mi43NTA1IDEzLjU0NTMgNzIuNjI2IC02LjU3OTE5IDQ3LjgwMTMgLTYuNTc5MTlWNy42MTUzMlpNNDIuNTgwNSA3LjYxNTMySDQ3LjgwMTNWLTYuNTc5MTlINDIuNTgwNVY3LjYxNTMyWk00MC43MDQgNy42MTUzMkg0Mi41ODA1Vi02LjU3OTE5SDQwLjcwNFY3LjYxNTMyWiIgZmlsbD0iYmxhY2siIG1hc2s9InVybCgjZG9zdS1kLWN1dG91dCkiLz48cGF0aCBkPSJNNjguOTIxNSAzNi4wMTM1QzY4LjkyMTUgMzYuMDEzNSA2NS43MzY5IDQ5LjQ3MzggNTEuNDIzMSA0OS40NzM4QzM3LjEwOTMgNDkuNDczOCAzMi41Nzg3IDM3LjM1OTYgMzIuNTc4NyAzNi4wMTM1IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjcuNjkxNjEi
 IHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0wLjM0ODYzMyA4NS40OTQ2QzAuMzQ4NjMzIDg1LjQ5NDYgMjkuNDg1NiA4NS44MzA5IDM0LjgwOSA4NS42OThDNDQuODMzNyA4NS40NDc3IDUxLjI4NzIgODQuNDAyIDU3LjUyNjkgNzguOTcyNEM2Mi44MTI5IDc0LjM3MjcgNzUuMTM0MiA1OS42ODM2IDc1LjEzNDIgNTkuNjgzNiIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI2LjE2NDgyIi8%2BPC9zdmc%2B)](https://github.dosu.com/apache/superset?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-ask-repo&utm_term=apache%2Fsuperset) [![Share Dosu with your team](https://img.shields.io/badge/Share%20Dosu%20with%20your%20team-1f6feb?style=flat)](https://app.dosu.dev/signup?referrer=openSource&source=github-footer&utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-share-team&utm_term=apache%2Fsuperset)

GitHub link: https://github.com/apache/superset/discussions/34277#discussioncomment-13862808

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org