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)

Reply via email to