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())

Reply via email to