This is an automated email from the ASF dual-hosted git repository.
yongjiezhao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 3fb5c79d77 fix: invalid dataset schema (#20826)
3fb5c79d77 is described below
commit 3fb5c79d77f5c7fce001605bc5ba5a725b833c88
Author: Yongjie Zhao <[email protected]>
AuthorDate: Sat Jul 23 08:34:15 2022 +0800
fix: invalid dataset schema (#20826)
---
superset/dashboards/api.py | 4 +++-
superset/dashboards/schemas.py | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/superset/dashboards/api.py b/superset/dashboards/api.py
index 9a323923c2..5fb59a7d1d 100644
--- a/superset/dashboards/api.py
+++ b/superset/dashboards/api.py
@@ -28,7 +28,7 @@ from flask_appbuilder import permission_name
from flask_appbuilder.api import expose, protect, rison, safe
from flask_appbuilder.hooks import before_request
from flask_appbuilder.models.sqla.interface import SQLAInterface
-from flask_babel import ngettext
+from flask_babel import gettext, ngettext
from marshmallow import ValidationError
from werkzeug.wrappers import Response as WerkzeugResponse
from werkzeug.wsgi import FileWrapper
@@ -383,6 +383,8 @@ class DashboardRestApi(BaseSupersetModelRestApi):
self.dashboard_dataset_schema.dump(dataset) for dataset in
datasets
]
return self.response(200, result=result)
+ except TypeError:
+ return self.response_400(message=gettext("Dataset schema is
invalid."))
except DashboardAccessDeniedError:
return self.response_403()
except DashboardNotFoundError:
diff --git a/superset/dashboards/schemas.py b/superset/dashboards/schemas.py
index d91879f0d8..0413c1672e 100644
--- a/superset/dashboards/schemas.py
+++ b/superset/dashboards/schemas.py
@@ -206,7 +206,7 @@ class DashboardDatasetSchema(Schema):
health_check_message = fields.Str()
fetch_values_predicate = fields.Str()
template_params = fields.Str()
- owners = fields.List(fields.Int())
+ owners = fields.List(fields.Dict())
columns = fields.List(fields.Dict())
column_types = fields.List(fields.Int())
metrics = fields.List(fields.Dict())