mirror of https://github.com/apache/superset.git
feat: Add owners and physical/virtual status to Datasets API list endpoint (#10025)
* Add owners and physical/virtual status to Datasets API list endpoint * black * Update type definition for DatasourceKind Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com> * Fixin' tests and mypy Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
This commit is contained in:
parent
5339d31ed1
commit
4ef26993e2
|
@ -23,6 +23,7 @@
|
|||
.bento*
|
||||
.cache-loader
|
||||
.coverage
|
||||
cover
|
||||
.DS_Store
|
||||
.eggs
|
||||
.envrc
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import json
|
||||
from enum import Enum
|
||||
from typing import Any, Dict, Hashable, List, Optional, Type, Union
|
||||
|
||||
from flask_appbuilder.security.sqla.models import User
|
||||
|
@ -51,6 +52,11 @@ COLUMN_FORM_DATA_PARAMS = [
|
|||
]
|
||||
|
||||
|
||||
class DatasourceKind(str, Enum):
|
||||
VIRTUAL = "virtual"
|
||||
PHYSICAL = "physical"
|
||||
|
||||
|
||||
class BaseDatasource(
|
||||
AuditMixinNullable, ImportMixin
|
||||
): # pylint: disable=too-many-public-methods
|
||||
|
@ -101,6 +107,13 @@ class BaseDatasource(
|
|||
owners: List[User]
|
||||
update_from_object_fields: List[str]
|
||||
|
||||
@property
|
||||
def kind(self) -> str:
|
||||
if self.sql:
|
||||
return DatasourceKind.VIRTUAL.value
|
||||
|
||||
return DatasourceKind.PHYSICAL.value
|
||||
|
||||
@declared_attr
|
||||
def slices(self) -> RelationshipProperty:
|
||||
return relationship(
|
||||
|
|
|
@ -78,6 +78,11 @@ class DatasetRestApi(BaseSupersetModelRestApi):
|
|||
"changed_on",
|
||||
"default_endpoint",
|
||||
"explore_url",
|
||||
"kind",
|
||||
"owners.id",
|
||||
"owners.username",
|
||||
"owners.first_name",
|
||||
"owners.last_name",
|
||||
"schema",
|
||||
"table_name",
|
||||
]
|
||||
|
|
|
@ -23,6 +23,7 @@ import prison
|
|||
import yaml
|
||||
from sqlalchemy.sql import func
|
||||
|
||||
import tests.test_app
|
||||
from superset.connectors.sqla.models import SqlaTable, SqlMetric, TableColumn
|
||||
from superset.dao.exceptions import (
|
||||
DAOCreateFailedError,
|
||||
|
@ -96,6 +97,8 @@ class DatasetApiTests(SupersetTestCase):
|
|||
"default_endpoint",
|
||||
"explore_url",
|
||||
"id",
|
||||
"kind",
|
||||
"owners",
|
||||
"schema",
|
||||
"table_name",
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue