-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
[Cloud Security] CloudSecurityDataTable component #167587
Conversation
…to unified-data-grid/foundation
Pinging @elastic/kibana-cloud-security-posture (Team:Cloud Security) |
x-pack/plugins/cloud_security_posture/public/common/api/use_latest_findings_data_view.ts
Outdated
Show resolved
Hide resolved
...d_security_posture/public/components/cloud_security_data_table/cloud_security_data_table.tsx
Show resolved
Hide resolved
x-pack/plugins/cloud_security_posture/public/common/api/use_latest_findings_data_view.ts
Outdated
Show resolved
Hide resolved
x-pack/plugins/cloud_security_posture/public/common/api/use_latest_findings_data_view.ts
Outdated
Show resolved
Hide resolved
…test_findings_data_view.ts adding extra checking by @JordanSh Co-authored-by: Jordan <51442161+JordanSh@users.noreply.github.com>
address PR comment
💚 Build Succeeded
Metrics [docs]Module Count
Async chunks
Page load bundle
History
To update your PR or re-run it, just comment with: |
## 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 <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Jordan <51442161+JordanSh@users.noreply.github.com> (cherry picked from commit 8d5dfaf)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…168056) # Backport This will backport the following commits from `main` to `8.11`: - [[Cloud Security] CloudSecurityDataTable component (#167587)](#167587) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Paulo Henrique","email":"paulo.henrique@elastic.co"},"sourceCommit":{"committedDate":"2023-10-05T03:57:17Z","message":"[Cloud Security] CloudSecurityDataTable component (#167587)\n\n## Summary\r\n\r\nThis PR introduces the Cloud Security DataTable component, meant to\r\nreplace and consolidate the tables used in the Cloud Security plugin\r\n\r\nThe CloudSecurityDataTable component is a wrapper over the\r\n`<UnifiedDataTable/>` component. We made that decision based on the\r\nnumber of features it provides for the users plus support from the most\r\ncommon features such as Flyout, Sort, Filtering, and Pagination to the\r\nmost advanced features like Virtualization and DataView integration.\r\n\r\n- **Virtualization**: Thanks to Virtualization, users can fetch more\r\ndata on the table than the limit of `500`, and also use larger items per\r\npage if desired.\r\n- **DataView integration**: This option allows users to rename Columns\r\nas needed by setting custom labels in the DataView.\r\n- **Column control**: Users can move columns and resize it as needed,\r\nand that settings is saved on the local storage.\r\n- **Row Height control**: Users can modify in the Advanced Settings ->\r\n`discover:rowHeight` the height of the row.\r\n\r\nBelow is a Matrix comparing the features between the current Findings\r\ntable, the Vulnerabilities Data Grid and the new CloudSecurityDataTable.\r\n\r\nFeature | CloudSecurity DataTable (new >= 8.11) | Findings Table\r\n(current <= 8.10) | Vulnerabilities Data Grid (current <= 8.10)\r\n-- | -- | -- | --\r\nTooltip on Cell Hover | ❌ | ✅ | ❌\r\nColumn Sorting | ✅ | ✅ | ✅\r\nMulti Column Sorting | ✅ | ❌ | ✅\r\nColumn filtering | ✅ | ✅ | ✅\r\nPagination | ✅ | ✅ | ✅\r\nRows per page | ✅ | ✅ | ✅\r\nVirtualization (Support to load more data) | ✅ | ❌ | ❌\r\nCustom component on Column Header | ❌ (only custom text) | ✅ | ❌\r\nAdditional controls on the left | ✅ | ❌ | ✅\r\nText truncation | ✅ | ✅ | ✅\r\nOverride Style | ✅ (#166994) | ✅ |\r\n✅\r\nLoad more button | ✅ | ❌ | ❌\r\nResize column | ✅ | ❌ | ✅\r\nReorder column | ✅ | ❌ | ✅\r\nFullScreen button | ✅ | ❌ | ✅\r\nUser-defined row height | ✅ | ❌ | ❌\r\nexternal pagination control (enables Flyout pagination) | ❌ | ✅ | ✅\r\nuser-defined column renaming | ✅ (using DataViews) | ❌ | ❌\r\n\r\n\r\n### Regressions\r\n\r\nThere are some regressions such as losing the ability to paginate on the\r\nFlyout and the table pagination is no longer controlled by URL params,\r\nthat's because pagination is controlled by an internal state in the\r\n`<UnifiedDataTable/>` component, and we plan to re-enable those features\r\nagain in the future by contributing to the `<UnifiedDataTable/>`\r\ncomponent.\r\n\r\n### Screenshots\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/19270322/a0d1f95a-adcc-4e58-9d3e-0adec3df8b3b)\r\n\r\n### Videos\r\n\r\nBasic Features + Virtualization\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/b1a61592-e1ae-4baf-9610-3e24c473c17d\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/d8e6106c-0ca3-4277-b78b-5ca482095ae1\r\n\r\n\r\nDataView integration\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/0d583243-bb86-45e4-baa5-dc63253da8f6\r\n\r\nRow Height Control\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/b1d43609-7c8a-4855-ab2f-624c18663579\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Jordan <51442161+JordanSh@users.noreply.github.com>","sha":"8d5dfafd8d06cc3096f9b72325032510aa498eab","branchLabelMapping":{"^v8.12.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Cloud Security","backport:prev-minor","v8.11.0","v8.12.0"],"number":167587,"url":"https://github.com/elastic/kibana/pull/167587","mergeCommit":{"message":"[Cloud Security] CloudSecurityDataTable component (#167587)\n\n## Summary\r\n\r\nThis PR introduces the Cloud Security DataTable component, meant to\r\nreplace and consolidate the tables used in the Cloud Security plugin\r\n\r\nThe CloudSecurityDataTable component is a wrapper over the\r\n`<UnifiedDataTable/>` component. We made that decision based on the\r\nnumber of features it provides for the users plus support from the most\r\ncommon features such as Flyout, Sort, Filtering, and Pagination to the\r\nmost advanced features like Virtualization and DataView integration.\r\n\r\n- **Virtualization**: Thanks to Virtualization, users can fetch more\r\ndata on the table than the limit of `500`, and also use larger items per\r\npage if desired.\r\n- **DataView integration**: This option allows users to rename Columns\r\nas needed by setting custom labels in the DataView.\r\n- **Column control**: Users can move columns and resize it as needed,\r\nand that settings is saved on the local storage.\r\n- **Row Height control**: Users can modify in the Advanced Settings ->\r\n`discover:rowHeight` the height of the row.\r\n\r\nBelow is a Matrix comparing the features between the current Findings\r\ntable, the Vulnerabilities Data Grid and the new CloudSecurityDataTable.\r\n\r\nFeature | CloudSecurity DataTable (new >= 8.11) | Findings Table\r\n(current <= 8.10) | Vulnerabilities Data Grid (current <= 8.10)\r\n-- | -- | -- | --\r\nTooltip on Cell Hover | ❌ | ✅ | ❌\r\nColumn Sorting | ✅ | ✅ | ✅\r\nMulti Column Sorting | ✅ | ❌ | ✅\r\nColumn filtering | ✅ | ✅ | ✅\r\nPagination | ✅ | ✅ | ✅\r\nRows per page | ✅ | ✅ | ✅\r\nVirtualization (Support to load more data) | ✅ | ❌ | ❌\r\nCustom component on Column Header | ❌ (only custom text) | ✅ | ❌\r\nAdditional controls on the left | ✅ | ❌ | ✅\r\nText truncation | ✅ | ✅ | ✅\r\nOverride Style | ✅ (#166994) | ✅ |\r\n✅\r\nLoad more button | ✅ | ❌ | ❌\r\nResize column | ✅ | ❌ | ✅\r\nReorder column | ✅ | ❌ | ✅\r\nFullScreen button | ✅ | ❌ | ✅\r\nUser-defined row height | ✅ | ❌ | ❌\r\nexternal pagination control (enables Flyout pagination) | ❌ | ✅ | ✅\r\nuser-defined column renaming | ✅ (using DataViews) | ❌ | ❌\r\n\r\n\r\n### Regressions\r\n\r\nThere are some regressions such as losing the ability to paginate on the\r\nFlyout and the table pagination is no longer controlled by URL params,\r\nthat's because pagination is controlled by an internal state in the\r\n`<UnifiedDataTable/>` component, and we plan to re-enable those features\r\nagain in the future by contributing to the `<UnifiedDataTable/>`\r\ncomponent.\r\n\r\n### Screenshots\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/19270322/a0d1f95a-adcc-4e58-9d3e-0adec3df8b3b)\r\n\r\n### Videos\r\n\r\nBasic Features + Virtualization\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/b1a61592-e1ae-4baf-9610-3e24c473c17d\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/d8e6106c-0ca3-4277-b78b-5ca482095ae1\r\n\r\n\r\nDataView integration\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/0d583243-bb86-45e4-baa5-dc63253da8f6\r\n\r\nRow Height Control\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/b1d43609-7c8a-4855-ab2f-624c18663579\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Jordan <51442161+JordanSh@users.noreply.github.com>","sha":"8d5dfafd8d06cc3096f9b72325032510aa498eab"}},"sourceBranch":"main","suggestedTargetBranches":["8.11"],"targetPullRequestStates":[{"branch":"8.11","label":"v8.11.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.12.0","labelRegex":"^v8.12.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/167587","number":167587,"mergeCommit":{"message":"[Cloud Security] CloudSecurityDataTable component (#167587)\n\n## Summary\r\n\r\nThis PR introduces the Cloud Security DataTable component, meant to\r\nreplace and consolidate the tables used in the Cloud Security plugin\r\n\r\nThe CloudSecurityDataTable component is a wrapper over the\r\n`<UnifiedDataTable/>` component. We made that decision based on the\r\nnumber of features it provides for the users plus support from the most\r\ncommon features such as Flyout, Sort, Filtering, and Pagination to the\r\nmost advanced features like Virtualization and DataView integration.\r\n\r\n- **Virtualization**: Thanks to Virtualization, users can fetch more\r\ndata on the table than the limit of `500`, and also use larger items per\r\npage if desired.\r\n- **DataView integration**: This option allows users to rename Columns\r\nas needed by setting custom labels in the DataView.\r\n- **Column control**: Users can move columns and resize it as needed,\r\nand that settings is saved on the local storage.\r\n- **Row Height control**: Users can modify in the Advanced Settings ->\r\n`discover:rowHeight` the height of the row.\r\n\r\nBelow is a Matrix comparing the features between the current Findings\r\ntable, the Vulnerabilities Data Grid and the new CloudSecurityDataTable.\r\n\r\nFeature | CloudSecurity DataTable (new >= 8.11) | Findings Table\r\n(current <= 8.10) | Vulnerabilities Data Grid (current <= 8.10)\r\n-- | -- | -- | --\r\nTooltip on Cell Hover | ❌ | ✅ | ❌\r\nColumn Sorting | ✅ | ✅ | ✅\r\nMulti Column Sorting | ✅ | ❌ | ✅\r\nColumn filtering | ✅ | ✅ | ✅\r\nPagination | ✅ | ✅ | ✅\r\nRows per page | ✅ | ✅ | ✅\r\nVirtualization (Support to load more data) | ✅ | ❌ | ❌\r\nCustom component on Column Header | ❌ (only custom text) | ✅ | ❌\r\nAdditional controls on the left | ✅ | ❌ | ✅\r\nText truncation | ✅ | ✅ | ✅\r\nOverride Style | ✅ (#166994) | ✅ |\r\n✅\r\nLoad more button | ✅ | ❌ | ❌\r\nResize column | ✅ | ❌ | ✅\r\nReorder column | ✅ | ❌ | ✅\r\nFullScreen button | ✅ | ❌ | ✅\r\nUser-defined row height | ✅ | ❌ | ❌\r\nexternal pagination control (enables Flyout pagination) | ❌ | ✅ | ✅\r\nuser-defined column renaming | ✅ (using DataViews) | ❌ | ❌\r\n\r\n\r\n### Regressions\r\n\r\nThere are some regressions such as losing the ability to paginate on the\r\nFlyout and the table pagination is no longer controlled by URL params,\r\nthat's because pagination is controlled by an internal state in the\r\n`<UnifiedDataTable/>` component, and we plan to re-enable those features\r\nagain in the future by contributing to the `<UnifiedDataTable/>`\r\ncomponent.\r\n\r\n### Screenshots\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/19270322/a0d1f95a-adcc-4e58-9d3e-0adec3df8b3b)\r\n\r\n### Videos\r\n\r\nBasic Features + Virtualization\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/b1a61592-e1ae-4baf-9610-3e24c473c17d\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/d8e6106c-0ca3-4277-b78b-5ca482095ae1\r\n\r\n\r\nDataView integration\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/0d583243-bb86-45e4-baa5-dc63253da8f6\r\n\r\nRow Height Control\r\n\r\n\r\n\r\nhttps://github.com/elastic/kibana/assets/19270322/b1d43609-7c8a-4855-ab2f-624c18663579\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Jordan <51442161+JordanSh@users.noreply.github.com>","sha":"8d5dfafd8d06cc3096f9b72325032510aa498eab"}}]}] BACKPORT--> Co-authored-by: Paulo Henrique <paulo.henrique@elastic.co>
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.500
, and also use larger items per page if desired.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.
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
Videos
Basic Features + Virtualization
Video.1.mov
Video.2.mov
DataView integration
Screen.Recording.2023-09-28.at.10.29.26.PM.mov
Row Height Control
Screen.Recording.2023-09-28.at.10.34.18.PM.mov