elastic / kibana

Your window into the Elastic Stack
https://www.elastic.co/products/kibana
Other
19.59k stars 8.21k forks source link

Modernize Index Management codebase #104236

Open cjcenizal opened 3 years ago

cjcenizal commented 3 years ago

The Index Management codebase contains tech debt in a number of areas that will impeded maintenance and the addition of future enhancements.

Refactor tests to use testbed and modern patterns

The index table tests should be updated to use testbed, and to follow patterns established elsewhere with the use of helpers files and possibly breaking the suite up into multiple files, like we did with ILM.

Convert index list components to TypeScript

Most of the index list components are JS. We need to convert these to TS.

Convert index table to EuiBasicTable or EuiInMemoryTable

The index table is implemented using low-level components like EuiTable, EuiTablePagination, EuiTableRowCell, and so on. We need to reimplement it using higher-level components like EuiBasicTable or EuiInMemoryTable. This will also allow us to remove some of the fundamental table behavior tests for things like pagination.

Migrate from Redux to local state

The index table has a Redux container. Migrating to the higher-level table components and local state using hooks will allow us to remove our dependency upon Redux. This is very similar to the migration @yuliacech performed for ILM.

Add support for deep-linking

Opening the detail panel for an index should update the URL, like we do for index templates and other UIs. This will allow people to share URLs that deep-link to individual indices.

Align component templates with the rest of the architecture

The component_templates architecture diverges from the standard plugin architecture we're using elsewhere. This makes it difficult to locate its CITs, its shared_imports, and to understand where to add new code. It also creates duplication for common services like breadcrumbs, documentation, and request.

elasticmachine commented 3 years ago

Pinging @elastic/kibana-stack-management (Team:Stack Management)

elasticmachine commented 1 month ago

Pinging @elastic/kibana-management (Team:Kibana Management)