Skip to content

Commit

Permalink
fix(sqllab): correct URL format for SQL Lab permalinks (apache#32154)
Browse files Browse the repository at this point in the history
  • Loading branch information
LevisNgigi authored Feb 7, 2025
1 parent c5f4a7f commit f9f8c5d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
2 changes: 1 addition & 1 deletion superset/sqllab/permalink/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def post(self) -> Response:
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)
Expand Down
10 changes: 9 additions & 1 deletion superset/views/sqllab.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down

0 comments on commit f9f8c5d

Please sign in to comment.