Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[8.11] [Cloud Security] CloudSecurityDataTable component (#167587) #168056

Merged
merged 2 commits into from
Oct 5, 2023

Conversation

kibanamachine
Copy link
Contributor

Backport

This will backport the following commits from main to 8.11:

Questions ?

Please refer to the Backport tool documentation

## Summary

This PR introduces the Cloud Security DataTable component, meant to
replace and consolidate the tables used in the Cloud Security plugin

The CloudSecurityDataTable component is a wrapper over the
`<UnifiedDataTable/>` component. We made that decision based on the
number of features it provides for the users plus support from the most
common features such as Flyout, Sort, Filtering, and Pagination to the
most advanced features like Virtualization and DataView integration.

- **Virtualization**: Thanks to Virtualization, users can fetch more
data on the table than the limit of `500`, and also use larger items per
page if desired.
- **DataView integration**: This option allows users to rename Columns
as needed by setting custom labels in the DataView.
- **Column control**: Users can move columns and resize it as needed,
and that settings is saved on the local storage.
- **Row Height control**: Users can modify in the Advanced Settings ->
`discover:rowHeight` the height of the row.

Below is a Matrix comparing the features between the current Findings
table, the Vulnerabilities Data Grid and the new CloudSecurityDataTable.

Feature | CloudSecurity DataTable (new >= 8.11) | Findings Table
(current <= 8.10) | Vulnerabilities Data Grid (current <= 8.10)
-- | -- | -- | --
Tooltip on Cell Hover | ❌ | ✅ | ❌
Column Sorting | ✅ | ✅ | ✅
Multi Column Sorting | ✅ | ❌ | ✅
Column filtering | ✅ | ✅ | ✅
Pagination | ✅ | ✅ | ✅
Rows per page | ✅ | ✅ | ✅
Virtualization (Support to load more data) | ✅ | ❌ | ❌
Custom component on Column Header | ❌ (only custom text) | ✅ | ❌
Additional controls on the left | ✅ | ❌ | ✅
Text truncation | ✅ | ✅ | ✅
Override Style | ✅ (elastic#166994) | ✅ |
✅
Load more button | ✅ | ❌ | ❌
Resize column | ✅ | ❌ | ✅
Reorder column | ✅ | ❌ | ✅
FullScreen button | ✅ | ❌ | ✅
User-defined row height | ✅ | ❌ | ❌
external pagination control (enables Flyout pagination) | ❌ | ✅ | ✅
user-defined column renaming | ✅ (using DataViews) | ❌ | ❌

### Regressions

There are some regressions such as losing the ability to paginate on the
Flyout and the table pagination is no longer controlled by URL params,
that's because pagination is controlled by an internal state in the
`<UnifiedDataTable/>` component, and we plan to re-enable those features
again in the future by contributing to the `<UnifiedDataTable/>`
component.

### Screenshots

![image](https://github.com/elastic/kibana/assets/19270322/a0d1f95a-adcc-4e58-9d3e-0adec3df8b3b)

### Videos

Basic Features + Virtualization

https://github.com/elastic/kibana/assets/19270322/b1a61592-e1ae-4baf-9610-3e24c473c17d

https://github.com/elastic/kibana/assets/19270322/d8e6106c-0ca3-4277-b78b-5ca482095ae1

DataView integration

https://github.com/elastic/kibana/assets/19270322/0d583243-bb86-45e4-baa5-dc63253da8f6

Row Height Control

https://github.com/elastic/kibana/assets/19270322/b1d43609-7c8a-4855-ab2f-624c18663579

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Jordan <[email protected]>
(cherry picked from commit 8d5dfaf)
@kibanamachine kibanamachine merged commit 9a5c2dd into elastic:8.11 Oct 5, 2023
@kibana-ci
Copy link
Collaborator

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
cloudSecurityPosture 238 358 +120

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
cloudSecurityPosture 281.5KB 383.7KB +102.2KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
cloudSecurityPosture 15.7KB 14.8KB -925.0B

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

cc @opauloh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants