You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "yugviren (via GitHub)" <gi...@apache.org> on 2026/04/03 11:27:13 UTC
[D] Problem Superset 6.0 and dashboard embedding with SDK (java and jsp) [superset]
GitHub user yugviren created a discussion: Problem Superset 6.0 and dashboard embedding with SDK (java and jsp)
I am trying to embed dashboard with my web application. All API calling handled by SDK automatically only need to arrange guest token. Till ambed api working as per expectations but dashboard, dataset and graph API response with 403. After an week I am confused that it need bearer token in js code to complete loading of dashboard. If yes which SDK js version support or I should go with older version of superset. Please help me out to came out of this situation..
Thanks
GitHub link: https://github.com/apache/superset/discussions/39094
----
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] Problem Superset 6.0 and dashboard embedding with SDK (java and jsp) [superset]
Posted by "yugviren (via GitHub)" <gi...@apache.org>.
GitHub user yugviren added a comment to the discussion: Problem Superset 6.0 and dashboard embedding with SDK (java and jsp)
Out Of box, need to add custom security
class CustomSecurityManager(SupersetSecurityManager):
def has_access(self, permission_name, view_name):
user = current_user
print(f"[AUTH CHECK] user={user} permission={permission_name} view={view_name}")
# Allow guest token users
if user and getattr(user, "is_guest_user", False):
return True
return super().has_access(permission_name, view_name)
CUSTOM_SECURITY_MANAGER = CustomSecurityManager
GitHub link: https://github.com/apache/superset/discussions/39094#discussioncomment-16582024
----
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] Problem Superset 6.0 and dashboard embedding with SDK (java and jsp) [superset]
Posted by "yugviren (via GitHub)" <gi...@apache.org>.
GitHub user yugviren added a comment to the discussion: Problem Superset 6.0 and dashboard embedding with SDK (java and jsp)
class CustomSecurityManager(SupersetSecurityManager):
def has_access(self, permission_name, view_name):
user = current_user
print(f"[AUTH CHECK] user={user} permission={permission_name} view={view_name}")
# Allow guest token users
if user and getattr(user, "is_guest_user", False):
return True
return super().has_access(permission_name, view_name)
CUSTOM_SECURITY_MANAGER = CustomSecurityManager
GitHub link: https://github.com/apache/superset/discussions/39094#discussioncomment-16582032
----
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] Problem Superset 6.0 and dashboard embedding with SDK (java and jsp) [superset]
Posted by "yugviren (via GitHub)" <gi...@apache.org>.
GitHub user yugviren edited a comment on the discussion: Problem Superset 6.0 and dashboard embedding with SDK (java and jsp)
Need to add custom security code within config file to remove 403 error...........
class CustomSecurityManager(SupersetSecurityManager):
def has_access(self, permission_name, view_name):
user = current_user
print(f"[AUTH CHECK] user={user} permission={permission_name} view={view_name}")
# Allow guest token users
if user and getattr(user, "is_guest_user", False):
return True
return super().has_access(permission_name, view_name)
CUSTOM_SECURITY_MANAGER = CustomSecurityManager
GitHub link: https://github.com/apache/superset/discussions/39094#discussioncomment-16582032
----
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] Problem Superset 6.0 and dashboard embedding with SDK (java and jsp) [superset]
Posted by "yugviren (via GitHub)" <gi...@apache.org>.
GitHub user yugviren added a comment to the discussion: Problem Superset 6.0 and dashboard embedding with SDK (java and jsp)
@ChadRosseau ,
Thanks For considering my Problem!
I had try everything you had mention but still last 3 API facing 403.
GitHub link: https://github.com/apache/superset/discussions/39094#discussioncomment-16453330
----
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] Problem Superset 6.0 and dashboard embedding with SDK (java and jsp) [superset]
Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] edited a comment on the discussion: Problem Superset 6.0 and dashboard embedding with SDK (java and jsp)
<!-- Greeting -->
Hi @yugviren! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the superset team.
<!-- Answer -->
The 403 errors you're seeing on dashboard, dataset, and chart API calls are almost certainly a **permissions issue on the guest role**, not a missing bearer token. The Embedded SDK handles authentication automatically — you do **not** need to pass a bearer token in your JS code. The guest token (sent via the `X-GuestToken` header) covers all sub-requests (dashboards, charts, datasets) [[1]](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/setup/setupClient.ts).
Here's a checklist to resolve the 403s:
1. **Enable the feature flag** in `superset_config.py` [[2]](https://github.com/apache/superset/discussions/33912):
```python
FEATURE_FLAGS = {
"EMBEDDED_SUPERSET": True
}
```
2. **Ensure the guest role has sufficient permissions.** The role used is whatever `GUEST_ROLE_NAME` is set to (default: `"Public"`). It needs at minimum [[3]](https://github.com/apache/superset/discussions/39023#discussioncomment-16418252):
- `can read` on Dashboard, Chart, Dataset, Database
- `can list`, `can get` on Dataset and Database
- `can explore` and `can explore_json` on Superset
- `can read` on CurrentUserRestApi (commonly missed — causes blank screens)
- `can log` on Superset (**new requirement in v6.0.0+**) [[4]](https://github.com/apache/superset/issues/38185)
- `can time range` on Api (if using time filters)
3. **The `roles` field in the guest token payload is ignored** — Superset always uses the `GUEST_ROLE_NAME` configuration instead [[5]](https://github.com/apache/superset/discussions/35670#discussioncomment-14695540). If you want a custom role, set it in config:
```python
GUEST_ROLE_NAME = "EmbeddedViewer"
```
4. **Only dashboard IDs go in the token's `resources` field** — charts and datasets associated with those dashboards are automatically accessible. Don't list them separately [[5]](https://github.com/apache/superset/discussions/35670#discussioncomment-14695540).
5. **CORS / frame configuration** [[2]](https://github.com/apache/superset/discussions/33912):
```python
ENABLE_CORS = True
OVERRIDE_HTTP_HEADERS = {"X-Frame-Options": "ALLOWALL"}
SESSION_COOKIE_SAMESITE = "None"
SESSION_COOKIE_SECURE = True
```
6. **SDK version**: For Superset 6.0, use `@superset-ui/embedded-sdk@0.3.0` [[6]](https://github.com/apache/superset/issues/37989). Always match the SDK version to your Superset server version [[7]](https://github.com/apache/superset/issues/33698).
Since you mentioned you're using Java/JSP on the backend, your flow should be:
- **Backend (Java)**: Call `POST /api/v1/security/guest_token/` with admin credentials to create the guest token
- **Frontend (JS)**: Pass that token to `embedDashboard({ fetchGuestToken: () => yourToken, ... })` — the SDK takes care of the rest, including automatic token refresh [[8]](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-embedded-sdk/src/index.ts)
The most likely culprit for your 403s is the guest role missing required permissions, especially the newer ones added in v6. I'd start by auditing the permissions on your `GUEST_ROLE_NAME` role against the list above.
<!-- 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).*
---
Share context across your team and agents. Try [Dosu](https://dosu.dev?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=knowledge-infrastructure-tagline&utm_term=apache%2Fsuperset).
[](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=knowledge-infrastructure-feedback&utm_term=apache%2Fsuperset&message_id=7e60777e-be69-4875-9ffc-13b1b2fa772a) [](https://github.dosu.com/apache/superset?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=knowledge-infrastructure-learn-repo&utm_term=apache%2Fsuperset) [](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=knowledge-infrastructure-add-team&utm_term=apache%2Fsuperset)
GitHub link: https://github.com/apache/superset/discussions/39094#discussioncomment-16437233
----
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] Problem Superset 6.0 and dashboard embedding with SDK (java and jsp) [superset]
Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
GitHub user dosubot[bot] added a comment to the discussion: Problem Superset 6.0 and dashboard embedding with SDK (java and jsp)
<!-- Greeting -->
Hi @yugviren! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the superset team.
<!-- Answer -->
The 403 errors you're seeing on dashboard, dataset, and chart API calls are almost certainly a **permissions issue on the guest role**, not a missing bearer token. The Embedded SDK handles authentication automatically — you do **not** need to pass a bearer token in your JS code. The guest token (sent via the `X-GuestToken` header) covers all sub-requests (dashboards, charts, datasets) [[1]](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/setup/setupClient.ts).
Here's a checklist to resolve the 403s:
1. **Enable the feature flag** in `superset_config.py` [[2]](https://github.com/apache/superset/discussions/33912):
```python
FEATURE_FLAGS = {
"EMBEDDED_SUPERSET": True
}
```
2. **Ensure the guest role has sufficient permissions.** The role used is whatever `GUEST_ROLE_NAME` is set to (default: `"Public"`). It needs at minimum [[3]](https://github.com/apache/superset/discussions/39023#discussioncomment-16418252):
- `can read` on Dashboard, Chart, Dataset, Database
- `can list`, `can get` on Dataset and Database
- `can explore` and `can explore_json` on Superset
- `can read` on CurrentUserRestApi (commonly missed — causes blank screens)
- `can log` on Superset (**new requirement in v6.0.0+**) [[4]](https://github.com/apache/superset/issues/38185)
- `can time range` on Api (if using time filters)
3. **The `roles` field in the guest token payload is ignored** — Superset always uses the `GUEST_ROLE_NAME` configuration instead [[5]](https://github.com/apache/superset/discussions/35670#discussioncomment-14695540). If you want a custom role, set it in config:
```python
GUEST_ROLE_NAME = "EmbeddedViewer"
```
4. **Only dashboard IDs go in the token's `resources` field** — charts and datasets associated with those dashboards are automatically accessible. Don't list them separately [[5]](https://github.com/apache/superset/discussions/35670#discussioncomment-14695540).
5. **CORS / frame configuration** [[2]](https://github.com/apache/superset/discussions/33912):
```python
ENABLE_CORS = True
OVERRIDE_HTTP_HEADERS = {"X-Frame-Options": "ALLOWALL"}
SESSION_COOKIE_SAMESITE = "None"
SESSION_COOKIE_SECURE = True
```
6. **SDK version**: For Superset 6.0, use `@superset-ui/embedded-sdk@0.3.0` [[6]](https://github.com/apache/superset/issues/37989). Always match the SDK version to your Superset server version [[7]](https://github.com/apache/superset/issues/33698).
Since you mentioned you're using Java/JSP on the backend, your flow should be:
- **Backend (Java)**: Call `POST /api/v1/security/guest_token/` with admin credentials to create the guest token
- **Frontend (JS)**: Pass that token to `embedDashboard({ fetchGuestToken: () => yourToken, ... })` — the SDK takes care of the rest, including automatic token refresh [[8]](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-embedded-sdk/src/index.ts)
The most likely culprit for your 403s is the guest role missing required permissions, especially the newer ones added in v6. I'd start by auditing the permissions on your `GUEST_ROLE_NAME` role against the list above.
<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=brand-link).*
---
<sup>How did I do? [Good](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-great_response#message_id=7e60777e-be69-4875-9ffc-13b1b2fa772a&feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-irrelevant_answer#message_id=7e60777e-be69-4875-9ffc-13b1b2fa772a&feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-incorrect_sources#message_id=7e60777e-be69-4875-9ffc-13b1b2fa772a&feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-too_verbose#message_id=7e60777e-be69-4875-9ffc-13b1b2fa772a&feedback_type=too_verbose) | [Hallucination](https://app
.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-hallucination#message_id=7e60777e-be69-4875-9ffc-13b1b2fa772a&feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-bug_report#message_id=7e60777e-be69-4875-9ffc-13b1b2fa772a&feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=feedback-other#message_id=7e60777e-be69-4875-9ffc-13b1b2fa772a&feedback_type=other)</sup>
[](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=chat-badge) [](https://cursor.com/link/prompt?text=The%20403%20errors%20you%27re%20seeing%20on%20dashboard%2C%20dataset%2C%20and%20chart%20API%20calls%20are%20almost%20certainly%20a%20%2A%2Apermissions%20issue%20on%20the%20guest%20role%2A%2A%2C%20not%20a%20missing%20bearer%20token.%20The%20Embedded%20SDK%20handles%20authentication%20automatically%20%E2%80%94%20you%20do%20%2A%2Anot%2A%2A%20need%20to%20pass%20a%20bearer%20token%20in%20your%20JS%20code.%20The%20guest%20token%20%28sent%20via%20the%20%60X-GuestToken%60%20header%29%20covers%20all%20sub-requests%20%28dashboards%2C%20charts%2C%20datasets%29%20%5B%5B1%5D%5D%28https%3A//github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/setup/
setupClient.ts%29.%0A%0AHere%27s%20a%20checklist%20to%20resolve%20the%20403s%3A%0A%0A1.%20%2A%2AEnable%20the%20feature%20flag%2A%2A%20in%20%60superset_config.py%60%20%5B%5B2%5D%5D%28https%3A//github.com/apache/superset/discussions/33912%29%3A%0A%0A%20%20%20%60%60%60python%0A%20%20%20FEATURE_FLAGS%20%3D%20%7B%0A%20%20%20%20%20%20%20%22EMBEDDED_SUPERSET%22%3A%20True%0A%20%20%20%7D%0A%20%20%20%60%60%60%0A%0A2.%20%2A%2AEnsure%20the%20guest%20role%20has%20sufficient%20permissions.%2A%2A%20The%20role%20used%20is%20whatever%20%60GUEST_ROLE_NAME%60%20is%20set%20to%20%28default%3A%20%60%22Public%22%60%29.%20It%20needs%20at%20minimum%20%5B%5B3%5D%5D%28https%3A//github.com/apache/superset/discussions/39023%23discussioncomment-16418252%29%3A%0A%0A%20%20%20-%20%60can%20read%60%20on%20Dashboard%2C%20Chart%2C%20Dataset%2C%20Database%0A%20%20%20-%20%60can%20list%60%2C%20%60can%20get%60%20on%20Dataset%20and%20Database%0A%20%20%20-%20%60can%20explore%60%20and%20%60can%20explore_json%60%20on%20Superse
t%0A%20%20%20-%20%60can%20read%60%20on%20CurrentUserRestApi%20%28commonly%20missed%20%E2%80%94%20causes%20blank%20screens%29%0A%20%20%20-%20%60can%20log%60%20on%20Superset%20%28%2A%2Anew%20requirement%20in%20v6.0.0%2B%2A%2A%29%20%5B%5B4%5D%5D%28https%3A//github.com/apache/superset/issues/38185%29%0A%20%20%20-%20%60can%20time%20range%60%20on%20Api%20%28if%20using%20time%20filters%29%0A%0A3.%20%2A%2AThe%20%60roles%60%20field%20in%20the%20guest%20token%20payload%20is%20ignored%2A%2A%20%E2%80%94%20Superset%20always%20uses%20the%20%60GUEST_ROLE_NAME%60%20configuration%20instead%20%5B%5B5%5D%5D%28https%3A//github.com/apache/superset/discussions/35670%23discussioncomment-14695540%29.%20If%20you%20want%20a%20custom%20role%2C%20set%20it%20in%20config%3A%0A%0A%20%20%20%60%60%60python%0A%20%20%20GUEST_ROLE_NAME%20%3D%20%22EmbeddedViewer%22%0A%20%20%20%60%60%60%0A%0A4.%20%2A%2AOnly%20dashboard%20IDs%20go%20in%20the%20token%27s%20%60resources%60%20field%2A%2A%20%E2%80%94%20charts%20and%20dataset
s%20associated%20with%20those%20dashboards%20are%20automatically%20accessible.%20Don%27t%20list%20them%20separately%20%5B%5B5%5D%5D%28https%3A//github.com/apache/superset/discussions/35670%23discussioncomment-14695540%29.%0A%0A5.%20%2A%2ACORS%20/%20frame%20configuration%2A%2A%20%5B%5B2%5D%5D%28https%3A//github.com/apache/superset/discussions/33912%29%3A%0A%0A%20%20%20%60%60%60python%0A%20%20%20ENABLE_CORS%20%3D%20True%0A%20%20%20OVERRIDE_HTTP_HEADERS%20%3D%20%7B%22X-Frame-Options%22%3A%20%22ALLOWALL%22%7D%0A%20%20%20SESSION_COOKIE_SAMESITE%20%3D%20%22None%22%0A%20%20%20SESSION_COOKIE_SECURE%20%3D%20True%0A%20%20%20%60%60%60%0A%0A6.%20%2A%2ASDK%20version%2A%2A%3A%20For%20Superset%206.0%2C%20use%20%60%40superset-ui/embedded-sdk%400.3.0%60%20%5B%5B6%5D%5D%28https%3A//github.com/apache/superset/issues/37989%29.%20Always%20match%20the%20SDK%20version%20to%20your%20Superset%20server%20version%20%5B%5B7%5D%5D%28https%3A//github.com/apache/superset/issues/33698%29.%0A%0ASince%20you%20mentio
ned%20you%27re%20using%20Java/JSP%20on%20the%20backend%2C%20your%20flow%20should%20be%3A%0A%0A-%20%2A%2ABackend%20%28Java%29%2A%2A%3A%20Call%20%60POST%20/api/v1/security/guest_token/%60%20with%20admin%20credentials%20to%20create%20the%20guest%20token%0A-%20%2A%2AFrontend%20%28JS%29%2A%2A%3A%20Pass%20that%20token%20to%20%60embedDashboard%28%7B%20fetchGuestToken%3A%20%28%29%20%3D%3E%20yourToken%2C%20...%20%7D%29%60%20%E2%80%94%20the%20SDK%20takes%20care%20of%20the%20rest%2C%20including%20automatic%20token%20refresh%20%5B%5B8%5D%5D%28https%3A//github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-embedded-sdk/src/index.ts%29%0A%0AThe%20most%20likely%20culprit%20for%20your%20403s%20is%20the%20guest%20role%20missing%20required%20permissions%2C%20especially%20the%20newer%20ones%20added%20in%20v6.%20I%27d%20start%20by%20auditing%20the%20permissions%20on%20your%20%60GUEST_ROLE_NAME%60%20role%20against%20the%20list%20above.) [](https://go.dosu.dev/discord-bot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-assistant&utm_content=join-discord) [](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/39094)
GitHub link: https://github.com/apache/superset/discussions/39094#discussioncomment-16437233
----
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] Problem Superset 6.0 and dashboard embedding with SDK (java and jsp) [superset]
Posted by "yugviren (via GitHub)" <gi...@apache.org>.
GitHub user yugviren deleted a comment on the discussion: Problem Superset 6.0 and dashboard embedding with SDK (java and jsp)
Out Of box, need to add custom security
class CustomSecurityManager(SupersetSecurityManager):
def has_access(self, permission_name, view_name):
user = current_user
print(f"[AUTH CHECK] user={user} permission={permission_name} view={view_name}")
# Allow guest token users
if user and getattr(user, "is_guest_user", False):
return True
return super().has_access(permission_name, view_name)
CUSTOM_SECURITY_MANAGER = CustomSecurityManager
GitHub link: https://github.com/apache/superset/discussions/39094#discussioncomment-16582024
----
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