[DESIGN][Table] new table visualization plugin #2187
Labels
de-angular
de-angularize work
OUI
Issues that require migration to OUI
tableVis
table visualization
visualizations
Issues and PRs related to visualizations
Statement
Currently, table visualization is written in Angular. Angular is not supported since 12/2021 and cause high severity CVE issues. Since we decided to remove angular from current code base, table visualization needs to be refactored ore re-written in ReAct. Meanwhile, our current table visualization is old and we see requests to update.
Scope
Note: This design is not final.
Solutions
deangular current vis_type_table
pros:
cons:
react + OUI Table
pros:
cons:
react + OUI Datagrid
pros:
cons:
split table (rows/columns)
, we need to render multiple datagrid componentsRecommended Design
The recommendation design is to rewrite table visualization in OpenSearch Dashboards using react and OUI Datagrid.
Same user flow
same way to create table visualization
same way to access table visualization
Saved table should be able to access from:
Features
To smooth the user experience, this new table visualization is created from the same location and will keep all the previous features. More specifically, we are proposing the following key features for OpenSearch Dashboards Table Visualization:
sort the column
pagination
export table as csv
split table in rows and columns
show total
Options
, supportshow total
option and metric (Sum, Average, Min, Max, Count). Should show a total of the columnshow partial rows
Options
, supportShow partial rows
option. When there are too many columns in the table, table should be truncated and display partial rowsshow metrics for every bucket/level
Options
, supportShow metrics for every bucket/level
option. If this option is chosen, table vis should add a metric for each bucket/level.show percentage column
Options
, supportPercentage column
option and default isDon't show
Percentage column
option is chosen, table vis should add a percentage column[optional] adjust column width
Architechure
Workflow
The new table visualization will use the following workflow:
Visualization
pageVisualizeEmbeddable
will update the expressionExpressionLoader
. We still useexpressions
plugin to fetch data. The state changes will make a new expression which will be used to create a query to fetch data from OSvisConfig
andvisData
are updated andexpressions
plugin start the render processSaved Object
Components
Future scope
Removing angular and rewriting table visualization is our first step to bring customer a modernized table experience. We want the future table visualization is to be completely customer driven.
I see there are a lot of requests of pivot Table. I think this is definitely something we should consider. I see there are contributors implementation based on original angular base. I would like to fetch some help from our community to try similar features our table visualization.
Meanwhile, would like more community feedbacks to complete the design of future Table Visualization. Please comment here.
The text was updated successfully, but these errors were encountered: