fix(sqllab): correct URL format for SQL Lab permalinks (#32154)

This commit is contained in:
Levis Mbote 2025-02-07 19:53:29 +03:00 committed by GitHub
parent c5f4a7f302
commit f9f8c5d07a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 2 deletions

View File

@ -87,7 +87,7 @@ class SqlLabPermalinkRestApi(BaseSupersetApi):
try:
state = self.add_model_schema.load(request.json)
key = CreateSqlLabPermalinkCommand(state=state).run()
url = url_for("SqllabView.root", key=key, _external=True)
url = url_for("SqllabView.permalink_view", permalink=key, _external=True)
return self.response(201, key=key, url=url)
except ValidationError as ex:
return self.response(400, message=ex.messages)

View File

@ -37,17 +37,25 @@ class SqllabView(BaseSupersetView):
method_permission_name = MODEL_API_RW_METHOD_PERMISSION_MAP
@expose("/", methods=["GET", "POST"])
@expose("/p/<string:permalink>/", methods=["GET"])
@has_access
@permission_name("read")
@event_logger.log_this
def root(self, **kwargs: Any) -> FlaskResponse:
"""Handles the default SQL Lab page."""
payload = {}
if form_data := request.form.get("form_data"):
with contextlib.suppress(json.JSONDecodeError):
payload["requested_query"] = json.loads(form_data)
return self.render_app_template(payload)
@expose("/p/<string:permalink>/", methods=["GET"])
@has_access
@permission_name("read")
@event_logger.log_this
def permalink_view(self, permalink: str, **kwargs: Any) -> FlaskResponse:
"""Handles permalinks for SQL Lab."""
return self.root(permalink=permalink, **kwargs)
@expose("/history/", methods=("GET",))
@has_access
@permission_name("read")