This is an automated email from the ASF dual-hosted git repository. beto pushed a commit to branch import_managed_externally in repository https://gitbox.apache.org/repos/asf/superset.git
commit 29b9ef5a2499385bce6e6d47ad7eaf7d770ca71b Author: Beto Dealmeida <[email protected]> AuthorDate: Tue Mar 22 11:11:39 2022 -0700 feat: import flags --- superset/charts/schemas.py | 2 ++ superset/connectors/base/models.py | 2 ++ superset/dashboards/schemas.py | 2 ++ superset/databases/schemas.py | 2 ++ superset/datasets/schemas.py | 2 ++ superset/models/core.py | 2 +- superset/models/dashboard.py | 1 + superset/models/slice.py | 1 + 8 files changed, 13 insertions(+), 1 deletion(-) diff --git a/superset/charts/schemas.py b/superset/charts/schemas.py index 80fcb1e..a887ffd 100644 --- a/superset/charts/schemas.py +++ b/superset/charts/schemas.py @@ -1304,6 +1304,8 @@ class ImportV1ChartSchema(Schema): uuid = fields.UUID(required=True) version = fields.String(required=True) dataset_uuid = fields.UUID(required=True) + is_managed_externally = fields.Boolean(allow_none=True, default=False) + external_url = fields.String(allow_none=True) CHART_SCHEMAS = ( diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py index 939a1fc..9aacb0d 100644 --- a/superset/connectors/base/models.py +++ b/superset/connectors/base/models.py @@ -117,6 +117,8 @@ class BaseDatasource( owners: List[User] update_from_object_fields: List[str] + extra_import_fields = ["is_managed_externally", "external_url"] + @property def kind(self) -> DatasourceKind: return DatasourceKind.VIRTUAL if self.sql else DatasourceKind.PHYSICAL diff --git a/superset/dashboards/schemas.py b/superset/dashboards/schemas.py index 71f9bc4..09119db 100644 --- a/superset/dashboards/schemas.py +++ b/superset/dashboards/schemas.py @@ -305,3 +305,5 @@ class ImportV1DashboardSchema(Schema): position = fields.Dict() metadata = fields.Dict() version = fields.String(required=True) + is_managed_externally = fields.Boolean(allow_none=True, default=False) + external_url = fields.String(allow_none=True) diff --git a/superset/databases/schemas.py b/superset/databases/schemas.py index ee9b4a6..554a0f9 100644 --- a/superset/databases/schemas.py +++ b/superset/databases/schemas.py @@ -623,6 +623,8 @@ class ImportV1DatabaseSchema(Schema): extra = fields.Nested(ImportV1DatabaseExtraSchema) uuid = fields.UUID(required=True) version = fields.String(required=True) + is_managed_externally = fields.Boolean(allow_none=True, default=False) + external_url = fields.String(allow_none=True) # pylint: disable=no-self-use, unused-argument @validates_schema diff --git a/superset/datasets/schemas.py b/superset/datasets/schemas.py index d85ce6c..8e4ded9 100644 --- a/superset/datasets/schemas.py +++ b/superset/datasets/schemas.py @@ -216,6 +216,8 @@ class ImportV1DatasetSchema(Schema): version = fields.String(required=True) database_uuid = fields.UUID(required=True) data = fields.URL() + is_managed_externally = fields.Boolean(allow_none=True, default=False) + external_url = fields.String(allow_none=True) class DatasetSchema(SQLAlchemyAutoSchema): diff --git a/superset/models/core.py b/superset/models/core.py index 51f0731..450ddc9 100755 --- a/superset/models/core.py +++ b/superset/models/core.py @@ -165,7 +165,7 @@ class Database( "allow_file_upload", "extra", ] - extra_import_fields = ["password"] + extra_import_fields = ["password", "is_managed_externally", "external_url"] export_children = ["tables"] def __repr__(self) -> str: diff --git a/superset/models/dashboard.py b/superset/models/dashboard.py index 55bf909..135f36a 100644 --- a/superset/models/dashboard.py +++ b/superset/models/dashboard.py @@ -163,6 +163,7 @@ class Dashboard(Model, AuditMixinNullable, ImportExportMixin): "css", "slug", ] + extra_import_fields = ["is_managed_externally", "external_url"] def __repr__(self) -> str: return f"Dashboard<{self.id or self.slug}>" diff --git a/superset/models/slice.py b/superset/models/slice.py index 9c22efe..80b11c2 100644 --- a/superset/models/slice.py +++ b/superset/models/slice.py @@ -119,6 +119,7 @@ class Slice( # pylint: disable=too-many-public-methods "cache_timeout", ] export_parent = "table" + extra_import_fields = ["is_managed_externally", "external_url"] def __repr__(self) -> str: return self.slice_name or str(self.id)
