mirror of
https://github.com/apache/superset.git
synced 2026-04-14 05:34:38 +00:00
* feat: Adds the /explore endpoint to the v1 API * Fixes pylint errors * Fixes tests * Changes the tests logic * Removes ABC reference * Improves indentation * Addresses review comments * Rebases code * Improves dataset and slice assertions * Fixes tests * Removes schema and table name assertions * Removes fixed IDs * Fixes datasource ID
115 lines
5.5 KiB
Python
115 lines
5.5 KiB
Python
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# License ); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
from marshmallow import fields, Schema
|
|
|
|
|
|
class DatasetSchema(Schema):
|
|
cache_timeout = fields.Integer(
|
|
description="Duration (in seconds) of the caching timeout for this dataset."
|
|
)
|
|
column_formats = fields.Dict(description="Column formats.")
|
|
columns = fields.List(fields.Dict(), description="Columns metadata.")
|
|
database = fields.Dict(description="Database associated with the dataset.")
|
|
datasource_name = fields.String(description="Dataset name.")
|
|
default_endpoint = fields.String(description="Default endpoint for the dataset.")
|
|
description = fields.String(description="Dataset description.")
|
|
edit_url = fields.String(description="The URL for editing the dataset.")
|
|
extra = fields.Dict(
|
|
description="JSON string containing extra configuration elements."
|
|
)
|
|
fetch_values_predicate = fields.String(
|
|
description="Predicate used when fetching values from the dataset."
|
|
)
|
|
filter_select = fields.Bool(description="SELECT filter applied to the dataset.")
|
|
filter_select_enabled = fields.Bool(description="If the SELECT filter is enabled.")
|
|
granularity_sqla = fields.List(
|
|
fields.List(fields.Dict()),
|
|
description=(
|
|
"Name of temporal column used for time filtering for SQL datasources. "
|
|
"This field is deprecated, use `granularity` instead."
|
|
),
|
|
)
|
|
health_check_message = fields.String(description="Health check message.")
|
|
id = fields.Integer(description="Dataset ID.")
|
|
is_sqllab_view = fields.Bool(description="If the dataset is a SQL Lab view.")
|
|
main_dttm_col = fields.String(description="The main temporal column.")
|
|
metrics = fields.List(fields.Dict(), description="Dataset metrics.")
|
|
name = fields.String(description="Dataset name.")
|
|
offset = fields.Integer(description="Dataset offset.")
|
|
order_by_choices = fields.List(
|
|
fields.List(fields.String()), description="List of order by columns."
|
|
)
|
|
owners = fields.List(fields.Integer(), description="List of owners identifiers")
|
|
params = fields.Dict(description="Extra params for the dataset.")
|
|
perm = fields.String(description="Permission expression.")
|
|
schema = fields.String(description="Dataset schema.")
|
|
select_star = fields.String(description="Select all clause.")
|
|
sql = fields.String(description="A SQL statement that defines the dataset.")
|
|
table_name = fields.String(
|
|
description="The name of the table associated with the dataset."
|
|
)
|
|
template_params = fields.Dict(description="Table template params.")
|
|
time_grain_sqla = fields.List(
|
|
fields.List(fields.String()),
|
|
description="List of temporal granularities supported by the dataset.",
|
|
)
|
|
type = fields.String(description="Dataset type.")
|
|
uid = fields.String(description="Dataset unique identifier.")
|
|
verbose_map = fields.Dict(description="Mapping from raw name to verbose name.")
|
|
|
|
|
|
class SliceSchema(Schema):
|
|
cache_timeout = fields.Integer(
|
|
description="Duration (in seconds) of the caching timeout for this chart."
|
|
)
|
|
certification_details = fields.String(description="Details of the certification.")
|
|
certified_by = fields.String(
|
|
description="Person or group that has certified this dashboard."
|
|
)
|
|
changed_on = fields.String(description="Timestamp of the last modification.")
|
|
changed_on_humanized = fields.String(
|
|
description="Timestamp of the last modification in human readable form."
|
|
)
|
|
datasource = fields.String(description="Datasource identifier.")
|
|
description = fields.String(description="Slice description.")
|
|
description_markeddown = fields.String(
|
|
description="Sanitized HTML version of the chart description."
|
|
)
|
|
edit_url = fields.String(description="The URL for editing the slice.")
|
|
form_data = fields.Dict(description="Form data associated with the slice.")
|
|
is_managed_externally = fields.Bool(
|
|
description="If the chart is managed outside externally."
|
|
)
|
|
modified = fields.String(description="Last modification in human readable form.")
|
|
owners = fields.List(fields.Integer(), description="Owners identifiers.")
|
|
query_context = fields.Dict(description="The context associated with the query.")
|
|
slice_id = fields.Integer(description="The slice ID.")
|
|
slice_name = fields.String(description="The slice name.")
|
|
slice_url = fields.String(description="The slice URL.")
|
|
|
|
|
|
class ExploreContextSchema(Schema):
|
|
form_data = fields.Dict(
|
|
description=(
|
|
"Form data from the Explore controls used to form the "
|
|
"chart's data query."
|
|
)
|
|
)
|
|
dataset = fields.Nested(DatasetSchema)
|
|
slice = fields.Nested(SliceSchema)
|
|
message = fields.String(description="Any message related to the processed request.")
|