You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jo...@apache.org on 2019/11/08 07:32:15 UTC
[incubator-superset] 01/01: [CONTRIBUTING.md] Adding Slice
parameter documentation
This is an automated email from the ASF dual-hosted git repository.
johnbodley pushed a commit to branch john-bodley--contributing-slice-parameters-1
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
commit f7724dce6345a164eded3bf6afda4c512960df62
Author: John Bodley <45...@users.noreply.github.com>
AuthorDate: Thu Nov 7 23:31:56 2019 -0800
[CONTRIBUTING.md] Adding Slice parameter documentation
---
CONTRIBUTING.md | 323 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 323 insertions(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 109a080..4cd9f66 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -840,3 +840,326 @@ Note that:
* In some cases, you may want to create a context that is more aligned
to your production environment, and use the similar broker as well as
results backend configuration
+
+## Chart Parameters
+
+Chart parameters are stored as a JSON encoded string the `slices.params` column and are often referenced throughout the code as form-data. Currently the form-data is neither versioned nor typed as thus is somewhat free-formed. Note in the future there may be merit in using something like [JSON Schema](https://json-schema.org/) to both annotate and validate the JSON object in addition to Mypy `TypedDict` (Python 3.8). This section serves as a potential primer for that work.
+
+The following tables provide a non-exhausive list of the various fields which can be present in the JSON object grouped by the Explorer pane sections. These values were obtained by extracting the distinct fields from a legacy deployment consisting of tens of thousands of charts and thus some fields may be missing whilst others may be deprecated.
+
+Note not all fields are correctly catagorized. The fields vary based on visualization type and may apprear in different sections depending on the type. Verified deprecated columns may indicate a missing migration and/or prior migrations which were unsucessful and thus future work may be required to clean up the form-data.
+
+### Datasource & Chart Type
+
+| Field | Type | Notes |
+|-------------------|----------|-------------------------------------|
+| `database_name` | *string* | *Deprecated?* |
+| `datasource` | *string* | `<datasouce_id>__<datasource_type>` |
+| `datasource_id` | *string* | *Deprecated?* See `datasource` |
+| `datasource_name` | *string* | *Deprecated?* |
+| `datasource_type` | *string* | *Deprecated?* See `datasource` |
+| `viz_type` | *string* | The **Visualization Type** widget |
+
+### Time
+
+| Field | Type | Notes |
+|------------------------|-----------------|---------------------------------------|
+| `date_filter` | *N/A* | *Deprecated?* |
+| `date_time_format` | *N/A* | *Deprecated?* |
+| `druid_time_origin` | *string* | The Druid **Origin** widget |
+| `granularity` | *string* | The Druid **Time Granularity** widget |
+| `granularity_sqla` | *string* | The SQLA **Time Column** widget |
+| `time_grain_sqla` | *string* | The SQLA **Time Grain** widget |
+| `time_range` | *string* | The **Time range** widget |
+| `time_range_endpoints` | *array(string)* | Used by SIP-15 [HIDDEN] |
+
+### GROUP BY
+
+| Field | Type | Notes |
+|---------------------------|-----------------|-----------------------------|
+| `include_time` | *boolean* | The **Include Time** widget |
+| `metrics` | *array(string)* | See Query section |
+| `order_asc` | - | See Query section |
+| `percent_metrics` | - | See Query section |
+| `row_limit` | - | See Query section |
+| `timeseries_limit_metric` | - | See Query section |
+
+
+### NOT GROUPED BY
+
+| Field | Type | Notes |
+|-----------------|-----------------|-------------------------|
+| `all_columns` | *array(string)* | The **Columns** widget |
+| `order_by_cols` | *array(string)* | The **Ordering** widget |
+| `row_limit` | - | See Query section |
+
+### Y Axis 1
+
+| Field | Type | Notes |
+|-----------------|------|----------------------------------------------------|
+| `metric` | - | The **Left Axis Metric** widget. See Query section |
+| `y_axis_format` | - | See Y Axis section |
+
+## Y Axis 2
+
+| Field | Type | Notes |
+|-------------------|-----------------|-----------------------------------------------------|
+| `metric_2` | - | The **Right Axis Metric** widget. See Query section |
+| `y_axis_2_format` | *string* | The **Right Axis Format** widget |
+
+### Query
+
+| Field | Type | Notes |
+|---------------------------|---------------------------------------------------|---------------------------------------------------|
+| `adhoc_filters` | *array(object)* | The **Filters** widget |
+| `all_columns_x` | *array(string)* | The **Numeric Columns** widget |
+| `columns` | *array(string)* | The **Breakdowns** widget |
+| `contribution` | *boolean* | The **Contribution** widget |
+| `groupby` | *array(string)* | The **Group by** or **Series** widget |
+| `limit` | *number* | The **Series Limit** widget |
+| `max_bubble_size` | *number* | The **Max Bubble Size** widget |
+| `metric`<br>
+ `metric_2`<br>
+ `metrics`<br>
+ `percent_mertics`<br>
+ `secondary_metric`<br>
+ `size`<br>
+ `x`<br>
+ `y` | *string*,*object*,*array(string)*,*array(object)* | The metric(s) depending on the visualization type |
+| `order_asc` | *boolean* | The **Sort Descending** widget |
+| `row_limit` | *number* | The **Row limit** widget |
+| `timeseries_limit_metric` | *object* | The **Sort By** widget |
+
+Note the `metric` (or equivalent) and `timeseries_limit_metric` fields are all composed of the `AdhocMetric` JavaScript type.
+
+### Options
+
+| Field | Type | Notes |
+|------------------------|-----------|--------------------------------------|
+| `compare_lag` | *number* | The **Comparison Period Lag** widget |
+| `compare_suffix` | *string* | The **Comparison suffix** widget |
+| `show_trend_line` | *boolean* | The **Show Trend Line** widget |
+| `start_y_axis_at_zero` | *boolean* | The **Start y-axis at 0 **widget |
+
+### Chart Options
+
+| Field | Type | Notes |
+|-----------------------|-----------|--------------------------------------------------|
+| `color_picker` | *object* | The **Fixed Color** widget |
+| `donut` | *boolean* | The **Donut** widget |
+| `global_opacity` | *number* | The **Opacity** widget |
+| `header_font_size` | *number* | The **Big Number Font Size** widget (or similar) |
+| `label_colors` | *object* | The **Color Scheme** widget |
+| `labels_outside` | *boolean* | The **Put labels outside** widget |
+| `line_interpolation` | *string* | The **Line Style** widget |
+| `link_length` | *number* | The **No of Bins** widget |
+| `normalized` | *boolean* | The **Normalized** widget |
+| `number_format` | *string* | The **Number format** widget |
+| `pie_label_type` | *string* | [HIDDEN] |
+| `rich_tooltip` | *boolean* | The **Rich Tooltip** widget |
+| `send_time_range` | *boolean* | The **Show Markers** widget |
+| `show_brush` | *string* | The **Show Range Filter** widget |
+| `show_legend` | *boolean* | The **Legend** widget |
+| `show_markers` | *string* | The **Show Markers** widget |
+| `subheader_font_size` | *number* | The **Subheader Font Size** widget |
+
+### X Axis
+
+| Field | Type | Notes |
+|----------------------|-----------|------------------------------|
+| `bottom_margin` | *string* | The **Bottom Margin** widget |
+| `x_axis_format` | *string* | The **X Axis Format** widget |
+| `x_axis_label` | *string* | The **X Axis Label** widget |
+| `x_axis_showminmax` | *boolean* | The **X bounds** widget |
+| `x_axis_time_format` | *N/A* | *Deprecated?* |
+| `x_log_scale` | *N/A* | *Deprecated?* |
+| `x_ticks_layout` | *string* | The **X Tick Layout** widget |
+
+### Y Axis
+
+| Field | Type | Notes |
+|---------------------|-----------------|------------------------------|
+| `left_margin` | *number* | The **Left Margin** widget |
+| `y_axis_2_label` | *N/A* | *Deprecated?* |
+| `y_axis_bounds` | *array(string)* | The **Y Axis Bounds** widget |
+| `y_axis_format` | *string* | The **Y Axis Format** widget |
+| `y_axis_label` | *string* | The **Y Axis Label** widget |
+| `y_axis_showminmax` | *boolean* | The **Y bounds** widget |
+| `y_axis_zero` | *N/A* | *Deprecated?* |
+| `y_log_scale` | *boolean* | The **Y Log Scale** widget |
+| `yscale_interval` | *N/A* | *Deprecated?* |
+
+
+Note the `y_axis_format` is defined under various section for some charts.
+
+### Other
+
+| Field | Type | Notes |
+|----------------|----------|--------------|
+| `color_scheme` | *string* | |
+| `slice_id` | *number* | The slice ID |
+| `url_params` | *object* | |
+
+### Unclassified
+
+| Field | Type | Notes |
+|---------------------------------|-------|-------|
+| `add_to_dash` | *N/A* | |
+| `align_pn` | *N/A* | |
+| `all_columns_y` | *N/A* | |
+| `annotation_layers` | *N/A* | |
+| `autozoom` | *N/A* | |
+| `bar_stacked` | *N/A* | |
+| `cache_timeout` | *N/A* | |
+| `canvas_image_rendering` | *N/A* | |
+| `cell_padding` | *N/A* | |
+| `cell_radius` | *N/A* | |
+| `cell_size` | *N/A* | |
+| `charge` | *N/A* | |
+| `clustering_radius` | *N/A* | |
+| `code` | *N/A* | |
+| `collapsed_fieldsets` | *N/A* | |
+| `color_pn` | *N/A* | |
+| `column_collection` | *N/A* | |
+| `combine_metric` | *N/A* | |
+| `comparison type` | *N/A* | |
+| `contribution` | *N/A* | |
+| `country_fieldtype` | *N/A* | |
+| `date_filter` | *N/A* | |
+| `deck_slices` | *N/A* | |
+| `default_filters` | *N/A* | |
+| `dimension` | *N/A* | |
+| `domain_granularity` | *N/A* | |
+| `end_spatial` | *N/A* | |
+| `entity` | *N/A* | |
+| `equal_date_size` | *N/A* | |
+| `expanded_slices` | *N/A* | |
+| `extra_filters` | *N/A* | |
+| `extruded` | *N/A* | |
+| `fill_color_picker` | *N/A* | |
+| `filled` | *N/A* | |
+| `filter_configs` | *N/A* | |
+| `filter_immune_slice_fields` | *N/A* | |
+| `filter_immune_slices` | *N/A* | |
+| `filter_nulls` | *N/A* | |
+| `flt_col_0` | *N/A* | |
+| `flt_col_1` | *N/A* | |
+| `flt_eq_0` | *N/A* | |
+| `flt_eq_1` | *N/A* | |
+| `flt_op_0` | *N/A* | |
+| `flt_op_1` | *N/A* | |
+| `goto_dash` | *N/A* | |
+| `grid_size` | *N/A* | |
+| `horizon_color_scale` | *N/A* | |
+| `import_time` | *N/A* | |
+| `include_search` | *N/A* | |
+| `include_series` | *N/A* | |
+| `instant_filtering` | *N/A* | |
+| `js_agg_function` | *N/A* | |
+| `js_columns` | *N/A* | |
+| `label` | *N/A* | |
+| `labels_outside` | *N/A* | |
+| `legend_position` | *N/A* | |
+| `line_charts` | *N/A* | |
+| `line_charts_2` | *N/A* | |
+| `line_column` | *N/A* | |
+| `line_type` | *N/A* | |
+| `line_width` | *N/A* | |
+| `linear_color_scheme` | *N/A* | |
+| `log_scale` | *N/A* | |
+| `mapbox_color` | *N/A* | |
+| `mapbox_label` | *N/A* | |
+| `mapbox_style` | *N/A* | |
+| `marker_labels` | *N/A* | |
+| `marker_line_labels` | *N/A* | |
+| `marker_lines` | *N/A* | |
+| `markers` | *N/A* | |
+| `markup_type` | *N/A* | |
+| `max_radius` | *N/A* | |
+| `min_leaf_node_event_count` | *N/A* | |
+| `min_periods` | *N/A* | |
+| `min_radius` | *N/A* | |
+| `multiplier` | *N/A* | |
+| `new_dashboard_name` | *N/A* | |
+| `new_slice_name` | *N/A* | |
+| `normalize_across` | *N/A* | |
+| `num_buckets` | *N/A* | |
+| `num_period_compare` | *N/A* | |
+| `order_bars` | *N/A* | |
+| `order_by_entity` | *N/A* | |
+| `order_desc` | *N/A* | |
+| `page_length` | *N/A* | |
+| `pandas_aggfunc` | *N/A* | |
+| `partition_limit` | *N/A* | |
+| `partition_threshold` | *N/A* | |
+| `period_ratio_type` | *N/A* | |
+| `perm` | *N/A* | |
+| `pivot_margins` | *N/A* | |
+| `point_radius` | *N/A* | |
+| `point_radius_fixed` | *N/A* | |
+| `point_radius_unit` | *N/A* | |
+| `point_unit` | *N/A* | |
+| `prefix_metric_with_slice_name` | *N/A* | |
+| `range_labels` | *N/A* | |
+| `ranges` | *N/A* | |
+| `rdo_save` | *N/A* | |
+| `reduce_x_ticks` | *N/A* | |
+| `refresh_frequency` | *N/A* | |
+| `remote_id` | *N/A* | |
+| `render_while_dragging` | *N/A* | |
+| `resample_fillmethod` | *N/A* | |
+| `resample_how` | *N/A* | |
+| `resample_method` | *N/A* | |
+| `resample_rule` | *N/A* | |
+| `reverse_long_lat` | *N/A* | |
+| `rolling_periods` | *N/A* | |
+| `rolling_type` | *N/A* | |
+| `rose_area_proportion` | *N/A* | |
+| `rotation` | *N/A* | |
+| `save_to_dashboard_id` | *N/A* | |
+| `schema` | *N/A* | |
+| `select_country` | *N/A* | |
+| `series` | *N/A* | |
+| `series_height` | *N/A* | |
+| `show_bar_value` | *N/A* | |
+| `show_brush` | *N/A* | |
+| `show_bubbles` | *N/A* | |
+| `show_controls` | *N/A* | |
+| `show_datatable` | *N/A* | |
+| `show_druid_time_granularity` | *N/A* | |
+| `show_druid_time_origin` | *N/A* | |
+| `show_labels` | *N/A* | |
+| `show_metric_name` | *N/A* | |
+| `show_perc` | *N/A* | |
+| `show_sqla_time_column` | *N/A* | |
+| `show_sqla_time_granularity` | *N/A* | |
+| `show_values` | *N/A* | |
+| `size_from` | *N/A* | |
+| `size_to` | *N/A* | |
+| `slice_name` | *N/A* | |
+| `sort_x_axis` | *N/A* | |
+| `sort_y_axis` | *N/A* | |
+| `spatial` | *N/A* | |
+| `stacked_style` | *N/A* | |
+| `start_spatial` | *N/A* | |
+| `steps` | *N/A* | |
+| `stroke_color_picker` | *N/A* | |
+| `stroke_width` | *N/A* | |
+| `stroked` | *N/A* | |
+| `subdomain_granularity` | *N/A* | |
+| `subheader` | *N/A* | |
+| `table_filter` | *N/A* | |
+| `table_timestamp_format` | *N/A* | |
+| `time_compare` | *N/A* | |
+| `time_series_option` | *N/A* | |
+| `timed_refresh_immune_slices` | *N/A* | |
+| `toggle_polygons` | *N/A* | |
+| `transpose_pivot` | *N/A* | |
+| `treemap_ratio` | *N/A* | |
+| `url` | *N/A* | |
+| `userid` | *N/A* | |
+| `viewport` | *N/A* | |
+| `viewport_latitude` | *N/A* | |
+| `viewport_longitude` | *N/A* | |
+| `viewport_zoom` | *N/A* | |
+| `whisker_options` | *N/A* | |