-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Security Solution][DQD] Persist new fields in results storage #185025
[Security Solution][DQD] Persist new fields in results storage #185025
Conversation
Pinging @elastic/security-threat-hunting-explore (Team:Threat Hunting:Explore) |
Pinging @elastic/security-threat-hunting (Team:Threat Hunting) |
..._quality_dashboard/impl/data_quality/compare_fields_table/get_common_table_columns/index.tsx
Show resolved
Hide resolved
...ard/impl/data_quality/compare_fields_table/get_incompatible_mappings_table_columns/index.tsx
Show resolved
Hide resolved
...mpl/data_quality/compare_fields_table/get_incompatible_mappings_table_columns/index.test.tsx
Show resolved
Hide resolved
...-solution/ecs_data_quality_dashboard/impl/data_quality/compare_fields_table/helpers.test.tsx
Show resolved
Hide resolved
...-solution/ecs_data_quality_dashboard/impl/data_quality/compare_fields_table/helpers.test.tsx
Show resolved
Hide resolved
...urity-solution/ecs_data_quality_dashboard/impl/data_quality/compare_fields_table/helpers.tsx
Show resolved
Hide resolved
...urity-solution/ecs_data_quality_dashboard/impl/data_quality/compare_fields_table/helpers.tsx
Show resolved
Hide resolved
...ecurity-solution/ecs_data_quality_dashboard/impl/data_quality/compare_fields_table/index.tsx
Outdated
Show resolved
Hide resolved
...n/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.tsx
Show resolved
Hide resolved
...n/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.tsx
Show resolved
Hide resolved
...n/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.tsx
Show resolved
Hide resolved
..._data_quality_dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.test.tsx
Show resolved
Hide resolved
..._data_quality_dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.test.tsx
Show resolved
Hide resolved
..._data_quality_dashboard/impl/data_quality/data_quality_panel/allowed_values/helpers.test.tsx
Show resolved
Hide resolved
3e8839a
to
251a3a8
Compare
...ata_quality/data_quality_panel/data_quality_summary/summary_actions/check_all/check_index.ts
Show resolved
Hide resolved
...uality/data_quality_panel/data_quality_summary/summary_actions/check_all/check_index.test.ts
Show resolved
Hide resolved
251a3a8
to
d7481b2
Compare
...oard/impl/data_quality/data_quality_panel/tabs/callouts/incompatible_callout/helpers.test.ts
Outdated
Show resolved
Hide resolved
...dashboard/impl/data_quality/data_quality_panel/tabs/callouts/incompatible_callout/helpers.ts
Outdated
Show resolved
Hide resolved
...ity_dashboard/impl/data_quality/data_quality_panel/index_properties/markdown/helpers.test.ts
Show resolved
Hide resolved
x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/helpers.test.ts
Show resolved
Hide resolved
x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/helpers.ts
Show resolved
Hide resolved
x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/helpers.ts
Show resolved
Hide resolved
x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/types.ts
Outdated
Show resolved
Hide resolved
eb873c2
to
c907d30
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally, all worked as expected.
...data_quality_dashboard/impl/data_quality/data_quality_panel/index_properties/helpers.test.ts
Show resolved
Hide resolved
984665f
to
f8e62c8
Compare
x-pack/plugins/ecs_data_quality_dashboard/server/schemas/result.ts
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @kapral18 for the enhancements to persistence, and the improved types! 🙏
✅ Desk tested locally
LGTM 🚀
f8e62c8
to
69966f6
Compare
- Refactor `EnrichedFieldMetadata` into `EcsBasedFieldMetadata` and `CustomFieldMetadata` - Update tests to use new types - Remove unnecessary null checks for `ecsMetadata` - Simplify rendering logic in various components - Add `constants.ts` for ECS metadata constants
… field items - Added `incompatibleFieldItems` and `sameFamilyFieldItems` to `StorageResult` for detailed field information. - Updated tests to validate the new functionality. - Adjusted type definitions and mock data to support the changes. Addresses elastic#184751
- Refactored `incompatibleFieldItems` into `incompatibleFieldMappingItems` and `incompatibleFieldValueItems`. - Updated related test cases in `helpers.test.ts`. - Modified `helpers.ts` to handle the new structure. - Updated type definitions in `types.ts`. - Adjusted `results_field_map.ts` to reflect the new structure. - Updated mock data in `results.mock.ts`. - Modified schema definitions in `result.ts`.
7347cc5
to
00aa6c7
Compare
💛 Build succeeded, but was flaky
Failed CI StepsTest Failures
Metrics [docs]Module Count
Async chunks
History
To update your PR or re-run it, just comment with: cc @kapral18 |
addresses #185882 leverages changes introduced in #188468 # Data Quality Dashboard Historical Results (Phase 1) This PR introduces new functionality to the Data Quality Dashboard History tab (new): - view last 30 days of check results by default: - filter by historical checks by outcome (PASS/FAIL/ALL) - paginate all results (10 per page by default) - each result can be viewed in individually and independently expandable/collapsible accordion panel (collapsed by default) - each result contains an extended index stats panel with (custom, ecs and all fields counts) - each result contains index properties tabs (incompatible and same family) - check now checks and redirects to latest check tab with latest check info - switching from initial historical tab to latest check tab triggers latest check - subsequent switching back and forth between already open history or latest check tabs doesn't trigger a check - legacy data (before release of this #185025) is supported with degraded view (same family tab is disabled with warning tooltip), incompatible tab tables are statically rendered from markdown Latest checks list view (changes): - remove check index button icon from list view - add historical results button icon instead of check index button - historical results button icon directly opens history tab without going through latest check # UI Changes (before/after): ## ESS Changes ### Latest check expand icon - expand icon is replaced with check now icon (functionality is the same) - tooltip text is updated - this new icon is still opening the index check flyout tab (latest check tab) ![ess_before_after_0](https://github.com/user-attachments/assets/795af721-6867-4f56-882e-2a0f52793560) ### Historical check icon **(NEW)** - inline check now functionality is removed - view history icon is added in its stead to open a flyout with history tab - tooltip text is updated ![ess_before_after_1](https://github.com/user-attachments/assets/7f2c6009-35c3-488c-87ac-3048f4bded7b) ### Flyout Header - "checked at" subheader is now shorter (milliseconds are removed) - Tabline with Latest check and History tabs is added **(NEW)** ![ess_before_after_2](https://github.com/user-attachments/assets/728ff743-500e-435a-a07e-4287647a0af5) ### History tab **(NEW)** - top left: filter by check outcome - top right: filter by date range - list of checks collapsed by default (individually separately controlled, multiple can be open at a time) - pagination (10,25,50). 10 by default ![ess_after_3](https://github.com/user-attachments/assets/36fc0cee-b103-483d-ba79-d583bba89acf) ### Individual check result view **(NEW)** - topline: extended index stats including new "custom", "ecs compliant" & "all fields". - incompatible fields and same family fields view (custom, ecs compliant and all fields view is unavailable in history tab) ![ess_after_4](https://github.com/user-attachments/assets/57e6d5a1-1470-4c4b-9272-ccc872d80dc5) ### Legacy check result view **(NEW)** - before this PR went to production #185025 check result data contained information allowing to recreate detailed view of incompatible fields from markdown only (without same family fields) - we recreate incompatible field tables in degraded view from markdown - same family tab is permanently disabled with an explanation tooltip - action buttons still work as is for incompatible fields view - index stats panel is showing as for non-legacy result ![SCR-20241009-lmcu](https://github.com/user-attachments/assets/cd11435e-7335-40f3-a0b8-4e5c6bcc2f38) ### No results ![SCR-20241009-llzw](https://github.com/user-attachments/assets/a942ce8e-6e0e-46d3-9104-c30648a18208) ### Loading view ![ess_after_8](https://github.com/user-attachments/assets/1411ccc2-4978-41f6-a02d-2ca404a01c16) ### Error view ![ess_after_9](https://github.com/user-attachments/assets/adc80e19-0005-46f9-a667-ffd3bf8ecb4f) ## Serverless Changes ### Empty checks result badge **(FIX)** - **previously empty pattern check result badge was marked as `PASS` which was incorrect. It was removed.** ![serverless_before_after_0](https://github.com/user-attachments/assets/67e02e9c-cd7f-46d7-9b7a-9bdaa0abfc6c) ### Latest check expand icon - expand icon is replaced with check now icon (functionality is the same) - tooltip text is updated - this new icon is still opening the index check flyout tab (latest check tab) ![serverless_before_after_1](https://github.com/user-attachments/assets/dfac9aad-158b-4863-b719-47d50b06bda3) ### Historical check icon **(NEW)** - inline check now functionality is removed - view history icon is added in its stead to open a flyout with history tab - tooltip text is updated ![serverless_before_after_2](https://github.com/user-attachments/assets/c688c28c-2d86-4669-a9bb-ffc297d21bbf) ### Flyout Header and Body Topline - "checked at" subheader is now shorter (milliseconds are removed) - Tabline with Latest check and History tabs is added **(NEW)** - **Index Stats Panel is now also showing here just like in latest check tab (but without phase label as ilm is not available in serverless)** **(NEW)** ![serverless_before_after_3](https://github.com/user-attachments/assets/c3ae4160-d07c-4049-b8b4-4b66faa50320) ### History tab **(NEW)** - top left: filter by check outcome - top right: filter by date range - list of checks collapsed by default (individually separately controlled, multiple can be open at a time) - pagination (10,25,50). 10 by default ![serverless_after_4](https://github.com/user-attachments/assets/8b767de3-1ab1-4b9f-b0b8-84754a3776ae) ### Individual check result view **(NEW)** - topline: extended index stats including new "custom", "ecs compliant" & "all fields" but **excluding ilm phase label section**. - incompatible fields and same family fields view (custom, ecs compliant and all fields view is unavailable in history tab) ![serverless_after_5](https://github.com/user-attachments/assets/d8fdd48f-63f2-48f2-8ede-3613bffaa157) ### Legacy check result view **(NEW)** - before this PR went to production #185025 check result data contained information allowing to recreate detailed view of incompatible fields from markdown only (without same family fields) - we recreate incompatible field tables in degraded view from markdown - same family tab is permanently disabled with an explanation tooltip - action buttons still work as is for incompatible fields view - index stats panel is showing as for non-legacy result ![SCR-20241009-lkhi](https://github.com/user-attachments/assets/10adee1c-c11a-428a-9c56-ecc20a37f97f) ### No results ![SCR-20241009-ljwg](https://github.com/user-attachments/assets/8bf48778-98d6-4a96-a713-b49d4cc5165a) ### Loading view ![serverless_after_9](https://github.com/user-attachments/assets/5ba1f2cc-cbd9-4cfa-964c-962be150016f) ### Error view ![serverless_after_10](https://github.com/user-attachments/assets/b5c33ded-4ee5-46ff-9e13-f9e5dfc7546e)
) addresses elastic#185882 leverages changes introduced in elastic#188468 # Data Quality Dashboard Historical Results (Phase 1) This PR introduces new functionality to the Data Quality Dashboard History tab (new): - view last 30 days of check results by default: - filter by historical checks by outcome (PASS/FAIL/ALL) - paginate all results (10 per page by default) - each result can be viewed in individually and independently expandable/collapsible accordion panel (collapsed by default) - each result contains an extended index stats panel with (custom, ecs and all fields counts) - each result contains index properties tabs (incompatible and same family) - check now checks and redirects to latest check tab with latest check info - switching from initial historical tab to latest check tab triggers latest check - subsequent switching back and forth between already open history or latest check tabs doesn't trigger a check - legacy data (before release of this elastic#185025) is supported with degraded view (same family tab is disabled with warning tooltip), incompatible tab tables are statically rendered from markdown Latest checks list view (changes): - remove check index button icon from list view - add historical results button icon instead of check index button - historical results button icon directly opens history tab without going through latest check # UI Changes (before/after): ## ESS Changes ### Latest check expand icon - expand icon is replaced with check now icon (functionality is the same) - tooltip text is updated - this new icon is still opening the index check flyout tab (latest check tab) ![ess_before_after_0](https://github.com/user-attachments/assets/795af721-6867-4f56-882e-2a0f52793560) ### Historical check icon **(NEW)** - inline check now functionality is removed - view history icon is added in its stead to open a flyout with history tab - tooltip text is updated ![ess_before_after_1](https://github.com/user-attachments/assets/7f2c6009-35c3-488c-87ac-3048f4bded7b) ### Flyout Header - "checked at" subheader is now shorter (milliseconds are removed) - Tabline with Latest check and History tabs is added **(NEW)** ![ess_before_after_2](https://github.com/user-attachments/assets/728ff743-500e-435a-a07e-4287647a0af5) ### History tab **(NEW)** - top left: filter by check outcome - top right: filter by date range - list of checks collapsed by default (individually separately controlled, multiple can be open at a time) - pagination (10,25,50). 10 by default ![ess_after_3](https://github.com/user-attachments/assets/36fc0cee-b103-483d-ba79-d583bba89acf) ### Individual check result view **(NEW)** - topline: extended index stats including new "custom", "ecs compliant" & "all fields". - incompatible fields and same family fields view (custom, ecs compliant and all fields view is unavailable in history tab) ![ess_after_4](https://github.com/user-attachments/assets/57e6d5a1-1470-4c4b-9272-ccc872d80dc5) ### Legacy check result view **(NEW)** - before this PR went to production elastic#185025 check result data contained information allowing to recreate detailed view of incompatible fields from markdown only (without same family fields) - we recreate incompatible field tables in degraded view from markdown - same family tab is permanently disabled with an explanation tooltip - action buttons still work as is for incompatible fields view - index stats panel is showing as for non-legacy result ![SCR-20241009-lmcu](https://github.com/user-attachments/assets/cd11435e-7335-40f3-a0b8-4e5c6bcc2f38) ### No results ![SCR-20241009-llzw](https://github.com/user-attachments/assets/a942ce8e-6e0e-46d3-9104-c30648a18208) ### Loading view ![ess_after_8](https://github.com/user-attachments/assets/1411ccc2-4978-41f6-a02d-2ca404a01c16) ### Error view ![ess_after_9](https://github.com/user-attachments/assets/adc80e19-0005-46f9-a667-ffd3bf8ecb4f) ## Serverless Changes ### Empty checks result badge **(FIX)** - **previously empty pattern check result badge was marked as `PASS` which was incorrect. It was removed.** ![serverless_before_after_0](https://github.com/user-attachments/assets/67e02e9c-cd7f-46d7-9b7a-9bdaa0abfc6c) ### Latest check expand icon - expand icon is replaced with check now icon (functionality is the same) - tooltip text is updated - this new icon is still opening the index check flyout tab (latest check tab) ![serverless_before_after_1](https://github.com/user-attachments/assets/dfac9aad-158b-4863-b719-47d50b06bda3) ### Historical check icon **(NEW)** - inline check now functionality is removed - view history icon is added in its stead to open a flyout with history tab - tooltip text is updated ![serverless_before_after_2](https://github.com/user-attachments/assets/c688c28c-2d86-4669-a9bb-ffc297d21bbf) ### Flyout Header and Body Topline - "checked at" subheader is now shorter (milliseconds are removed) - Tabline with Latest check and History tabs is added **(NEW)** - **Index Stats Panel is now also showing here just like in latest check tab (but without phase label as ilm is not available in serverless)** **(NEW)** ![serverless_before_after_3](https://github.com/user-attachments/assets/c3ae4160-d07c-4049-b8b4-4b66faa50320) ### History tab **(NEW)** - top left: filter by check outcome - top right: filter by date range - list of checks collapsed by default (individually separately controlled, multiple can be open at a time) - pagination (10,25,50). 10 by default ![serverless_after_4](https://github.com/user-attachments/assets/8b767de3-1ab1-4b9f-b0b8-84754a3776ae) ### Individual check result view **(NEW)** - topline: extended index stats including new "custom", "ecs compliant" & "all fields" but **excluding ilm phase label section**. - incompatible fields and same family fields view (custom, ecs compliant and all fields view is unavailable in history tab) ![serverless_after_5](https://github.com/user-attachments/assets/d8fdd48f-63f2-48f2-8ede-3613bffaa157) ### Legacy check result view **(NEW)** - before this PR went to production elastic#185025 check result data contained information allowing to recreate detailed view of incompatible fields from markdown only (without same family fields) - we recreate incompatible field tables in degraded view from markdown - same family tab is permanently disabled with an explanation tooltip - action buttons still work as is for incompatible fields view - index stats panel is showing as for non-legacy result ![SCR-20241009-lkhi](https://github.com/user-attachments/assets/10adee1c-c11a-428a-9c56-ecc20a37f97f) ### No results ![SCR-20241009-ljwg](https://github.com/user-attachments/assets/8bf48778-98d6-4a96-a713-b49d4cc5165a) ### Loading view ![serverless_after_9](https://github.com/user-attachments/assets/5ba1f2cc-cbd9-4cfa-964c-962be150016f) ### Error view ![serverless_after_10](https://github.com/user-attachments/assets/b5c33ded-4ee5-46ff-9e13-f9e5dfc7546e) (cherry picked from commit e5f7739)
…) (#195962) # Backport This will backport the following commits from `main` to `8.x`: - [[Secuity Solution][DQD] add historical results (Phase 1) (#191898)](#191898) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Karen Grigoryan","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-10-11T16:14:11Z","message":"[Secuity Solution][DQD] add historical results (Phase 1) (#191898)\n\naddresses #185882 \r\n\r\nleverages changes introduced in\r\nhttps://github.com//pull/188468\r\n\r\n# Data Quality Dashboard Historical Results (Phase 1)\r\n\r\nThis PR introduces new functionality to the Data Quality Dashboard\r\n\r\nHistory tab (new):\r\n- view last 30 days of check results by default:\r\n- filter by historical checks by outcome (PASS/FAIL/ALL)\r\n- paginate all results (10 per page by default)\r\n- each result can be viewed in individually and independently\r\nexpandable/collapsible accordion panel (collapsed by default)\r\n- each result contains an extended index stats panel with (custom, ecs\r\nand all fields counts)\r\n- each result contains index properties tabs (incompatible and same\r\nfamily)\r\n- check now checks and redirects to latest check tab with latest check\r\ninfo\r\n- switching from initial historical tab to latest check tab triggers\r\nlatest check\r\n- subsequent switching back and forth between already open history or\r\nlatest check tabs doesn't trigger a check\r\n- legacy data (before release of this\r\nhttps://github.com//pull/185025) is supported with\r\ndegraded view (same family tab is disabled with warning tooltip),\r\nincompatible tab tables are statically rendered from markdown\r\n\r\nLatest checks list view (changes):\r\n- remove check index button icon from list view\r\n- add historical results button icon instead of check index button\r\n- historical results button icon directly opens history tab without\r\ngoing through latest check\r\n\r\n# UI Changes (before/after):\r\n\r\n## ESS Changes\r\n\r\n### Latest check expand icon\r\n- expand icon is replaced with check now icon (functionality is the\r\nsame)\r\n- tooltip text is updated\r\n- this new icon is still opening the index check flyout tab (latest\r\ncheck tab)\r\n\r\n![ess_before_after_0](https://github.com/user-attachments/assets/795af721-6867-4f56-882e-2a0f52793560)\r\n\r\n### Historical check icon **(NEW)**\r\n- inline check now functionality is removed\r\n- view history icon is added in its stead to open a flyout with history\r\ntab\r\n- tooltip text is updated\r\n\r\n![ess_before_after_1](https://github.com/user-attachments/assets/7f2c6009-35c3-488c-87ac-3048f4bded7b)\r\n\r\n### Flyout Header\r\n- \"checked at\" subheader is now shorter (milliseconds are removed)\r\n- Tabline with Latest check and History tabs is added **(NEW)**\r\n\r\n![ess_before_after_2](https://github.com/user-attachments/assets/728ff743-500e-435a-a07e-4287647a0af5)\r\n\r\n### History tab **(NEW)**\r\n- top left: filter by check outcome\r\n- top right: filter by date range\r\n- list of checks collapsed by default (individually separately\r\ncontrolled, multiple can be open at a time)\r\n- pagination (10,25,50). 10 by default\r\n\r\n![ess_after_3](https://github.com/user-attachments/assets/36fc0cee-b103-483d-ba79-d583bba89acf)\r\n\r\n### Individual check result view **(NEW)**\r\n- topline: extended index stats including new \"custom\", \"ecs compliant\"\r\n& \"all fields\".\r\n- incompatible fields and same family fields view (custom, ecs compliant\r\nand all fields view is unavailable in history tab)\r\n\r\n![ess_after_4](https://github.com/user-attachments/assets/57e6d5a1-1470-4c4b-9272-ccc872d80dc5)\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com//pull/185025 check result data\r\ncontained information allowing to recreate detailed view of incompatible\r\nfields from markdown only (without same family fields)\r\n- we recreate incompatible field tables in degraded view from markdown\r\n- same family tab is permanently disabled with an explanation tooltip\r\n- action buttons still work as is for incompatible fields view\r\n- index stats panel is showing as for non-legacy result\r\n\r\n![SCR-20241009-lmcu](https://github.com/user-attachments/assets/cd11435e-7335-40f3-a0b8-4e5c6bcc2f38)\r\n\r\n### No results\r\n\r\n![SCR-20241009-llzw](https://github.com/user-attachments/assets/a942ce8e-6e0e-46d3-9104-c30648a18208)\r\n\r\n### Loading view\r\n\r\n![ess_after_8](https://github.com/user-attachments/assets/1411ccc2-4978-41f6-a02d-2ca404a01c16)\r\n\r\n### Error view\r\n\r\n![ess_after_9](https://github.com/user-attachments/assets/adc80e19-0005-46f9-a667-ffd3bf8ecb4f)\r\n\r\n## Serverless Changes\r\n### Empty checks result badge **(FIX)**\r\n- **previously empty pattern check result badge was marked as `PASS`\r\nwhich was incorrect. It was removed.**\r\n\r\n![serverless_before_after_0](https://github.com/user-attachments/assets/67e02e9c-cd7f-46d7-9b7a-9bdaa0abfc6c)\r\n\r\n### Latest check expand icon\r\n- expand icon is replaced with check now icon (functionality is the\r\nsame)\r\n- tooltip text is updated\r\n- this new icon is still opening the index check flyout tab (latest\r\ncheck tab)\r\n\r\n![serverless_before_after_1](https://github.com/user-attachments/assets/dfac9aad-158b-4863-b719-47d50b06bda3)\r\n\r\n### Historical check icon **(NEW)**\r\n- inline check now functionality is removed\r\n- view history icon is added in its stead to open a flyout with history\r\ntab\r\n- tooltip text is updated\r\n\r\n![serverless_before_after_2](https://github.com/user-attachments/assets/c688c28c-2d86-4669-a9bb-ffc297d21bbf)\r\n\r\n### Flyout Header and Body Topline\r\n- \"checked at\" subheader is now shorter (milliseconds are removed)\r\n- Tabline with Latest check and History tabs is added **(NEW)**\r\n- **Index Stats Panel is now also showing here just like in latest check\r\ntab (but without phase label as ilm is not available in serverless)**\r\n**(NEW)**\r\n\r\n![serverless_before_after_3](https://github.com/user-attachments/assets/c3ae4160-d07c-4049-b8b4-4b66faa50320)\r\n\r\n### History tab **(NEW)**\r\n- top left: filter by check outcome\r\n- top right: filter by date range\r\n- list of checks collapsed by default (individually separately\r\ncontrolled, multiple can be open at a time)\r\n- pagination (10,25,50). 10 by default\r\n\r\n![serverless_after_4](https://github.com/user-attachments/assets/8b767de3-1ab1-4b9f-b0b8-84754a3776ae)\r\n\r\n### Individual check result view **(NEW)**\r\n- topline: extended index stats including new \"custom\", \"ecs compliant\"\r\n& \"all fields\" but **excluding ilm phase label section**.\r\n- incompatible fields and same family fields view (custom, ecs compliant\r\nand all fields view is unavailable in history tab)\r\n\r\n![serverless_after_5](https://github.com/user-attachments/assets/d8fdd48f-63f2-48f2-8ede-3613bffaa157)\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com//pull/185025 check result data\r\ncontained information allowing to recreate detailed view of incompatible\r\nfields from markdown only (without same family fields)\r\n- we recreate incompatible field tables in degraded view from markdown\r\n- same family tab is permanently disabled with an explanation tooltip\r\n- action buttons still work as is for incompatible fields view\r\n- index stats panel is showing as for non-legacy result\r\n\r\n![SCR-20241009-lkhi](https://github.com/user-attachments/assets/10adee1c-c11a-428a-9c56-ecc20a37f97f)\r\n\r\n### No results\r\n\r\n![SCR-20241009-ljwg](https://github.com/user-attachments/assets/8bf48778-98d6-4a96-a713-b49d4cc5165a)\r\n\r\n### Loading view\r\n\r\n![serverless_after_9](https://github.com/user-attachments/assets/5ba1f2cc-cbd9-4cfa-964c-962be150016f)\r\n\r\n### Error view\r\n\r\n![serverless_after_10](https://github.com/user-attachments/assets/b5c33ded-4ee5-46ff-9e13-f9e5dfc7546e)","sha":"e5f7739b263902bd01aca9fa902be7cc5181e855","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["v9.0.0","Team:Threat Hunting","release_note:feature","Team:Threat Hunting:Explore","backport:prev-minor","ci:cloud-deploy","ci:cloud-redeploy","ci:cloud-persist-deployment","ci:build-serverless-image","ci:project-deploy-security","ci:project-persist-deployment","ci:project-redeploy","v8.16.0"],"title":"[Secuity Solution][DQD] add historical results (Phase 1) ","number":191898,"url":"https://github.com/elastic/kibana/pull/191898","mergeCommit":{"message":"[Secuity Solution][DQD] add historical results (Phase 1) (#191898)\n\naddresses #185882 \r\n\r\nleverages changes introduced in\r\nhttps://github.com//pull/188468\r\n\r\n# Data Quality Dashboard Historical Results (Phase 1)\r\n\r\nThis PR introduces new functionality to the Data Quality Dashboard\r\n\r\nHistory tab (new):\r\n- view last 30 days of check results by default:\r\n- filter by historical checks by outcome (PASS/FAIL/ALL)\r\n- paginate all results (10 per page by default)\r\n- each result can be viewed in individually and independently\r\nexpandable/collapsible accordion panel (collapsed by default)\r\n- each result contains an extended index stats panel with (custom, ecs\r\nand all fields counts)\r\n- each result contains index properties tabs (incompatible and same\r\nfamily)\r\n- check now checks and redirects to latest check tab with latest check\r\ninfo\r\n- switching from initial historical tab to latest check tab triggers\r\nlatest check\r\n- subsequent switching back and forth between already open history or\r\nlatest check tabs doesn't trigger a check\r\n- legacy data (before release of this\r\nhttps://github.com//pull/185025) is supported with\r\ndegraded view (same family tab is disabled with warning tooltip),\r\nincompatible tab tables are statically rendered from markdown\r\n\r\nLatest checks list view (changes):\r\n- remove check index button icon from list view\r\n- add historical results button icon instead of check index button\r\n- historical results button icon directly opens history tab without\r\ngoing through latest check\r\n\r\n# UI Changes (before/after):\r\n\r\n## ESS Changes\r\n\r\n### Latest check expand icon\r\n- expand icon is replaced with check now icon (functionality is the\r\nsame)\r\n- tooltip text is updated\r\n- this new icon is still opening the index check flyout tab (latest\r\ncheck tab)\r\n\r\n![ess_before_after_0](https://github.com/user-attachments/assets/795af721-6867-4f56-882e-2a0f52793560)\r\n\r\n### Historical check icon **(NEW)**\r\n- inline check now functionality is removed\r\n- view history icon is added in its stead to open a flyout with history\r\ntab\r\n- tooltip text is updated\r\n\r\n![ess_before_after_1](https://github.com/user-attachments/assets/7f2c6009-35c3-488c-87ac-3048f4bded7b)\r\n\r\n### Flyout Header\r\n- \"checked at\" subheader is now shorter (milliseconds are removed)\r\n- Tabline with Latest check and History tabs is added **(NEW)**\r\n\r\n![ess_before_after_2](https://github.com/user-attachments/assets/728ff743-500e-435a-a07e-4287647a0af5)\r\n\r\n### History tab **(NEW)**\r\n- top left: filter by check outcome\r\n- top right: filter by date range\r\n- list of checks collapsed by default (individually separately\r\ncontrolled, multiple can be open at a time)\r\n- pagination (10,25,50). 10 by default\r\n\r\n![ess_after_3](https://github.com/user-attachments/assets/36fc0cee-b103-483d-ba79-d583bba89acf)\r\n\r\n### Individual check result view **(NEW)**\r\n- topline: extended index stats including new \"custom\", \"ecs compliant\"\r\n& \"all fields\".\r\n- incompatible fields and same family fields view (custom, ecs compliant\r\nand all fields view is unavailable in history tab)\r\n\r\n![ess_after_4](https://github.com/user-attachments/assets/57e6d5a1-1470-4c4b-9272-ccc872d80dc5)\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com//pull/185025 check result data\r\ncontained information allowing to recreate detailed view of incompatible\r\nfields from markdown only (without same family fields)\r\n- we recreate incompatible field tables in degraded view from markdown\r\n- same family tab is permanently disabled with an explanation tooltip\r\n- action buttons still work as is for incompatible fields view\r\n- index stats panel is showing as for non-legacy result\r\n\r\n![SCR-20241009-lmcu](https://github.com/user-attachments/assets/cd11435e-7335-40f3-a0b8-4e5c6bcc2f38)\r\n\r\n### No results\r\n\r\n![SCR-20241009-llzw](https://github.com/user-attachments/assets/a942ce8e-6e0e-46d3-9104-c30648a18208)\r\n\r\n### Loading view\r\n\r\n![ess_after_8](https://github.com/user-attachments/assets/1411ccc2-4978-41f6-a02d-2ca404a01c16)\r\n\r\n### Error view\r\n\r\n![ess_after_9](https://github.com/user-attachments/assets/adc80e19-0005-46f9-a667-ffd3bf8ecb4f)\r\n\r\n## Serverless Changes\r\n### Empty checks result badge **(FIX)**\r\n- **previously empty pattern check result badge was marked as `PASS`\r\nwhich was incorrect. It was removed.**\r\n\r\n![serverless_before_after_0](https://github.com/user-attachments/assets/67e02e9c-cd7f-46d7-9b7a-9bdaa0abfc6c)\r\n\r\n### Latest check expand icon\r\n- expand icon is replaced with check now icon (functionality is the\r\nsame)\r\n- tooltip text is updated\r\n- this new icon is still opening the index check flyout tab (latest\r\ncheck tab)\r\n\r\n![serverless_before_after_1](https://github.com/user-attachments/assets/dfac9aad-158b-4863-b719-47d50b06bda3)\r\n\r\n### Historical check icon **(NEW)**\r\n- inline check now functionality is removed\r\n- view history icon is added in its stead to open a flyout with history\r\ntab\r\n- tooltip text is updated\r\n\r\n![serverless_before_after_2](https://github.com/user-attachments/assets/c688c28c-2d86-4669-a9bb-ffc297d21bbf)\r\n\r\n### Flyout Header and Body Topline\r\n- \"checked at\" subheader is now shorter (milliseconds are removed)\r\n- Tabline with Latest check and History tabs is added **(NEW)**\r\n- **Index Stats Panel is now also showing here just like in latest check\r\ntab (but without phase label as ilm is not available in serverless)**\r\n**(NEW)**\r\n\r\n![serverless_before_after_3](https://github.com/user-attachments/assets/c3ae4160-d07c-4049-b8b4-4b66faa50320)\r\n\r\n### History tab **(NEW)**\r\n- top left: filter by check outcome\r\n- top right: filter by date range\r\n- list of checks collapsed by default (individually separately\r\ncontrolled, multiple can be open at a time)\r\n- pagination (10,25,50). 10 by default\r\n\r\n![serverless_after_4](https://github.com/user-attachments/assets/8b767de3-1ab1-4b9f-b0b8-84754a3776ae)\r\n\r\n### Individual check result view **(NEW)**\r\n- topline: extended index stats including new \"custom\", \"ecs compliant\"\r\n& \"all fields\" but **excluding ilm phase label section**.\r\n- incompatible fields and same family fields view (custom, ecs compliant\r\nand all fields view is unavailable in history tab)\r\n\r\n![serverless_after_5](https://github.com/user-attachments/assets/d8fdd48f-63f2-48f2-8ede-3613bffaa157)\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com//pull/185025 check result data\r\ncontained information allowing to recreate detailed view of incompatible\r\nfields from markdown only (without same family fields)\r\n- we recreate incompatible field tables in degraded view from markdown\r\n- same family tab is permanently disabled with an explanation tooltip\r\n- action buttons still work as is for incompatible fields view\r\n- index stats panel is showing as for non-legacy result\r\n\r\n![SCR-20241009-lkhi](https://github.com/user-attachments/assets/10adee1c-c11a-428a-9c56-ecc20a37f97f)\r\n\r\n### No results\r\n\r\n![SCR-20241009-ljwg](https://github.com/user-attachments/assets/8bf48778-98d6-4a96-a713-b49d4cc5165a)\r\n\r\n### Loading view\r\n\r\n![serverless_after_9](https://github.com/user-attachments/assets/5ba1f2cc-cbd9-4cfa-964c-962be150016f)\r\n\r\n### Error view\r\n\r\n![serverless_after_10](https://github.com/user-attachments/assets/b5c33ded-4ee5-46ff-9e13-f9e5dfc7546e)","sha":"e5f7739b263902bd01aca9fa902be7cc5181e855"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/191898","number":191898,"mergeCommit":{"message":"[Secuity Solution][DQD] add historical results (Phase 1) (#191898)\n\naddresses #185882 \r\n\r\nleverages changes introduced in\r\nhttps://github.com//pull/188468\r\n\r\n# Data Quality Dashboard Historical Results (Phase 1)\r\n\r\nThis PR introduces new functionality to the Data Quality Dashboard\r\n\r\nHistory tab (new):\r\n- view last 30 days of check results by default:\r\n- filter by historical checks by outcome (PASS/FAIL/ALL)\r\n- paginate all results (10 per page by default)\r\n- each result can be viewed in individually and independently\r\nexpandable/collapsible accordion panel (collapsed by default)\r\n- each result contains an extended index stats panel with (custom, ecs\r\nand all fields counts)\r\n- each result contains index properties tabs (incompatible and same\r\nfamily)\r\n- check now checks and redirects to latest check tab with latest check\r\ninfo\r\n- switching from initial historical tab to latest check tab triggers\r\nlatest check\r\n- subsequent switching back and forth between already open history or\r\nlatest check tabs doesn't trigger a check\r\n- legacy data (before release of this\r\nhttps://github.com//pull/185025) is supported with\r\ndegraded view (same family tab is disabled with warning tooltip),\r\nincompatible tab tables are statically rendered from markdown\r\n\r\nLatest checks list view (changes):\r\n- remove check index button icon from list view\r\n- add historical results button icon instead of check index button\r\n- historical results button icon directly opens history tab without\r\ngoing through latest check\r\n\r\n# UI Changes (before/after):\r\n\r\n## ESS Changes\r\n\r\n### Latest check expand icon\r\n- expand icon is replaced with check now icon (functionality is the\r\nsame)\r\n- tooltip text is updated\r\n- this new icon is still opening the index check flyout tab (latest\r\ncheck tab)\r\n\r\n![ess_before_after_0](https://github.com/user-attachments/assets/795af721-6867-4f56-882e-2a0f52793560)\r\n\r\n### Historical check icon **(NEW)**\r\n- inline check now functionality is removed\r\n- view history icon is added in its stead to open a flyout with history\r\ntab\r\n- tooltip text is updated\r\n\r\n![ess_before_after_1](https://github.com/user-attachments/assets/7f2c6009-35c3-488c-87ac-3048f4bded7b)\r\n\r\n### Flyout Header\r\n- \"checked at\" subheader is now shorter (milliseconds are removed)\r\n- Tabline with Latest check and History tabs is added **(NEW)**\r\n\r\n![ess_before_after_2](https://github.com/user-attachments/assets/728ff743-500e-435a-a07e-4287647a0af5)\r\n\r\n### History tab **(NEW)**\r\n- top left: filter by check outcome\r\n- top right: filter by date range\r\n- list of checks collapsed by default (individually separately\r\ncontrolled, multiple can be open at a time)\r\n- pagination (10,25,50). 10 by default\r\n\r\n![ess_after_3](https://github.com/user-attachments/assets/36fc0cee-b103-483d-ba79-d583bba89acf)\r\n\r\n### Individual check result view **(NEW)**\r\n- topline: extended index stats including new \"custom\", \"ecs compliant\"\r\n& \"all fields\".\r\n- incompatible fields and same family fields view (custom, ecs compliant\r\nand all fields view is unavailable in history tab)\r\n\r\n![ess_after_4](https://github.com/user-attachments/assets/57e6d5a1-1470-4c4b-9272-ccc872d80dc5)\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com//pull/185025 check result data\r\ncontained information allowing to recreate detailed view of incompatible\r\nfields from markdown only (without same family fields)\r\n- we recreate incompatible field tables in degraded view from markdown\r\n- same family tab is permanently disabled with an explanation tooltip\r\n- action buttons still work as is for incompatible fields view\r\n- index stats panel is showing as for non-legacy result\r\n\r\n![SCR-20241009-lmcu](https://github.com/user-attachments/assets/cd11435e-7335-40f3-a0b8-4e5c6bcc2f38)\r\n\r\n### No results\r\n\r\n![SCR-20241009-llzw](https://github.com/user-attachments/assets/a942ce8e-6e0e-46d3-9104-c30648a18208)\r\n\r\n### Loading view\r\n\r\n![ess_after_8](https://github.com/user-attachments/assets/1411ccc2-4978-41f6-a02d-2ca404a01c16)\r\n\r\n### Error view\r\n\r\n![ess_after_9](https://github.com/user-attachments/assets/adc80e19-0005-46f9-a667-ffd3bf8ecb4f)\r\n\r\n## Serverless Changes\r\n### Empty checks result badge **(FIX)**\r\n- **previously empty pattern check result badge was marked as `PASS`\r\nwhich was incorrect. It was removed.**\r\n\r\n![serverless_before_after_0](https://github.com/user-attachments/assets/67e02e9c-cd7f-46d7-9b7a-9bdaa0abfc6c)\r\n\r\n### Latest check expand icon\r\n- expand icon is replaced with check now icon (functionality is the\r\nsame)\r\n- tooltip text is updated\r\n- this new icon is still opening the index check flyout tab (latest\r\ncheck tab)\r\n\r\n![serverless_before_after_1](https://github.com/user-attachments/assets/dfac9aad-158b-4863-b719-47d50b06bda3)\r\n\r\n### Historical check icon **(NEW)**\r\n- inline check now functionality is removed\r\n- view history icon is added in its stead to open a flyout with history\r\ntab\r\n- tooltip text is updated\r\n\r\n![serverless_before_after_2](https://github.com/user-attachments/assets/c688c28c-2d86-4669-a9bb-ffc297d21bbf)\r\n\r\n### Flyout Header and Body Topline\r\n- \"checked at\" subheader is now shorter (milliseconds are removed)\r\n- Tabline with Latest check and History tabs is added **(NEW)**\r\n- **Index Stats Panel is now also showing here just like in latest check\r\ntab (but without phase label as ilm is not available in serverless)**\r\n**(NEW)**\r\n\r\n![serverless_before_after_3](https://github.com/user-attachments/assets/c3ae4160-d07c-4049-b8b4-4b66faa50320)\r\n\r\n### History tab **(NEW)**\r\n- top left: filter by check outcome\r\n- top right: filter by date range\r\n- list of checks collapsed by default (individually separately\r\ncontrolled, multiple can be open at a time)\r\n- pagination (10,25,50). 10 by default\r\n\r\n![serverless_after_4](https://github.com/user-attachments/assets/8b767de3-1ab1-4b9f-b0b8-84754a3776ae)\r\n\r\n### Individual check result view **(NEW)**\r\n- topline: extended index stats including new \"custom\", \"ecs compliant\"\r\n& \"all fields\" but **excluding ilm phase label section**.\r\n- incompatible fields and same family fields view (custom, ecs compliant\r\nand all fields view is unavailable in history tab)\r\n\r\n![serverless_after_5](https://github.com/user-attachments/assets/d8fdd48f-63f2-48f2-8ede-3613bffaa157)\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com//pull/185025 check result data\r\ncontained information allowing to recreate detailed view of incompatible\r\nfields from markdown only (without same family fields)\r\n- we recreate incompatible field tables in degraded view from markdown\r\n- same family tab is permanently disabled with an explanation tooltip\r\n- action buttons still work as is for incompatible fields view\r\n- index stats panel is showing as for non-legacy result\r\n\r\n![SCR-20241009-lkhi](https://github.com/user-attachments/assets/10adee1c-c11a-428a-9c56-ecc20a37f97f)\r\n\r\n### No results\r\n\r\n![SCR-20241009-ljwg](https://github.com/user-attachments/assets/8bf48778-98d6-4a96-a713-b49d4cc5165a)\r\n\r\n### Loading view\r\n\r\n![serverless_after_9](https://github.com/user-attachments/assets/5ba1f2cc-cbd9-4cfa-964c-962be150016f)\r\n\r\n### Error view\r\n\r\n![serverless_after_10](https://github.com/user-attachments/assets/b5c33ded-4ee5-46ff-9e13-f9e5dfc7546e)","sha":"e5f7739b263902bd01aca9fa902be7cc5181e855"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Karen Grigoryan <[email protected]>
Addresses #184751
Summary
This PR addresses couple of issues:
Main:
Persist revamped
resultsFieldMap
schema fields, namelyincompatibleFieldMappingItems
,incompatibleFieldValueItems
andsameFamilyFieldItems
in theStorageResult
after index check, so that after release user can start accumulating data in these fields, while we prepare main UI changes.Additional:
Improve and narrow down existing in-house
EcsFlat
override type that originally comes from@elastic/ecs
npm package, because currently it is too generic and too loose, resulting in an unnecessary conditional checks and leads to perception of impossible states most of which are refactored, cleaned and fixed in this PR.Screenshots
How to test
test-*
data-view withtest-*
index patternincompatibleFieldItems
andsameFamilyFieldItems
of expected shape: