Skip to content

[AI4DSOC] Add cell renderer for datetime fields to the alert summary table#219126

Merged
PhilippeOberti merged 2 commits intoelastic:mainfrom
PhilippeOberti:alert-summary-datetime-cell-renderer
Apr 24, 2025
Merged

[AI4DSOC] Add cell renderer for datetime fields to the alert summary table#219126
PhilippeOberti merged 2 commits intoelastic:mainfrom
PhilippeOberti:alert-summary-datetime-cell-renderer

Conversation

@PhilippeOberti
Copy link
Contributor

@PhilippeOberti PhilippeOberti commented Apr 24, 2025

Summary

This PR improves the AI4DSOC alert summary table cell renderers by rendering datetime type fields correctly. That way we have datetime fields rendered the same way the alerts page alerts table does.

The code uses the schema field to know when a field needs to be rendered accordingly. This field is provided by the EuiDataGrid.

Previous behavior

Screenshot 2025-04-24 at 10 34 57 AM

New behavior

Screenshot 2025-04-24 at 9 32 53 AM

Checklist

relates to https://github.com/elastic/security-team/issues/11973

@PhilippeOberti PhilippeOberti force-pushed the alert-summary-datetime-cell-renderer branch from d407f79 to 2547f36 Compare April 24, 2025 16:27
@PhilippeOberti PhilippeOberti marked this pull request as ready for review April 24, 2025 16:28
@PhilippeOberti PhilippeOberti requested review from a team as code owners April 24, 2025 16:28
@PhilippeOberti PhilippeOberti added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:Threat Hunting:Investigations Security Solution Threat Hunting Investigations Team Team:Security Generative AI Security Generative AI v9.1.0 labels Apr 24, 2025
@elasticmachine
Copy link
Contributor

Pinging @elastic/security-threat-hunting-investigations (Team:Threat Hunting:Investigations)

export const DatetimeSchemaCellRenderer = memo(
({ alert, field }: DatetimeSchemaCellRendererProps) => {
const displayValue: number | string | null = useMemo(
() => getAlertFieldValueAsStringOrNumberOrNull(alert, field),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what a function name 😅

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haha, yeah... at least it's clear? 😆

In a follow up PR (after RSA) I will move all the renderers into a folder and clean up these names a bit...

</TestProviders>
);

expect(getByText('[object Object]')).toBeInTheDocument();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still don't know how to feel about this 😓

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know...Problem for future me I think 🤣 The FormattedDate component I'm leveraging in this PR is actually a bit weird. It displays a date if it's valid, and if not it fallback to the original value. I would have expected it to display a date if valid, and if not, just display -...
But this PR shouldn't be changing this logic as it's used in other places...

Copy link
Contributor

@michaelolo24 michaelolo24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work 👍🏾

@PhilippeOberti PhilippeOberti enabled auto-merge (squash) April 24, 2025 17:21
@PhilippeOberti PhilippeOberti merged commit e014955 into elastic:main Apr 24, 2025
9 checks passed
@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
securitySolution 7340 7341 +1

Async chunks

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

id before after diff
securitySolution 9.1MB 9.1MB +396.0B

Page load bundle

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

id before after diff
securitySolution 91.0KB 91.0KB -1.0B

akowalska622 pushed a commit to akowalska622/kibana that referenced this pull request May 29, 2025
…table (elastic#219126)

## Summary

This PR improves the AI4DSOC alert summary table cell renderers by
rendering datetime type fields correctly. That way we have datetime
fields rendered the same way the alerts page alerts table does.

The code uses the `schema` field to know when a field needs to be
rendered accordingly. This field is provided by the EuiDataGrid.

Previous behavior

![Screenshot 2025-04-24 at 10 34
57 AM](https://github.com/user-attachments/assets/151f2b34-109e-4841-bba4-7630b7b53292)

New behavior

![Screenshot 2025-04-24 at 9 32
53 AM](https://github.com/user-attachments/assets/c06459b3-ee3e-42bf-8e69-252749830b82)

### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

relates to elastic/security-team#11973
PhilippeOberti added a commit to PhilippeOberti/kibana that referenced this pull request May 30, 2025
…table (elastic#219126)

## Summary

This PR improves the AI4DSOC alert summary table cell renderers by
rendering datetime type fields correctly. That way we have datetime
fields rendered the same way the alerts page alerts table does.

The code uses the `schema` field to know when a field needs to be
rendered accordingly. This field is provided by the EuiDataGrid.

Previous behavior

![Screenshot 2025-04-24 at 10 34
57 AM](https://github.com/user-attachments/assets/151f2b34-109e-4841-bba4-7630b7b53292)

New behavior

![Screenshot 2025-04-24 at 9 32
53 AM](https://github.com/user-attachments/assets/c06459b3-ee3e-42bf-8e69-252749830b82)

### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

relates to elastic/security-team#11973

(cherry picked from commit e014955)
PhilippeOberti added a commit to PhilippeOberti/kibana that referenced this pull request May 30, 2025
…table (elastic#219126)

## Summary

This PR improves the AI4DSOC alert summary table cell renderers by
rendering datetime type fields correctly. That way we have datetime
fields rendered the same way the alerts page alerts table does.

The code uses the `schema` field to know when a field needs to be
rendered accordingly. This field is provided by the EuiDataGrid.

Previous behavior

![Screenshot 2025-04-24 at 10 34
57 AM](https://github.com/user-attachments/assets/151f2b34-109e-4841-bba4-7630b7b53292)

New behavior

![Screenshot 2025-04-24 at 9 32
53 AM](https://github.com/user-attachments/assets/c06459b3-ee3e-42bf-8e69-252749830b82)

### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

relates to elastic/security-team#11973

(cherry picked from commit e014955)
@PhilippeOberti PhilippeOberti deleted the alert-summary-datetime-cell-renderer branch June 3, 2025 19:04
PhilippeOberti added a commit to PhilippeOberti/kibana that referenced this pull request Jun 4, 2025
…table (elastic#219126)

## Summary

This PR improves the AI4DSOC alert summary table cell renderers by
rendering datetime type fields correctly. That way we have datetime
fields rendered the same way the alerts page alerts table does.

The code uses the `schema` field to know when a field needs to be
rendered accordingly. This field is provided by the EuiDataGrid.

Previous behavior

![Screenshot 2025-04-24 at 10 34
57 AM](https://github.com/user-attachments/assets/151f2b34-109e-4841-bba4-7630b7b53292)

New behavior

![Screenshot 2025-04-24 at 9 32
53 AM](https://github.com/user-attachments/assets/c06459b3-ee3e-42bf-8e69-252749830b82)

### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

relates to elastic/security-team#11973

(cherry picked from commit e014955)
PhilippeOberti added a commit that referenced this pull request Jun 4, 2025
…) (#222074)

# Backport

This will backport the following commits from `main` to `8.19`:
- [[AI4DSOC] Alert summary page routing and initialization
(#214889)](#214889)
- [[AI4DSOC] Alert summary landing page
(#215246)](#215246)
- [[AI4DSOC] Alert summary dataview
(#215265)](#215265)
- [[AI4DSOC] Alert summary KQL bar
[#215586]](#215586)
- [[AI4DSOC] Alert summary KPI charts
[#215585]](#215585)
- [[AI4DSOR] Alert summary integrations section
[#215266]](#215266)
- [[AI4DSOC] Fix issue with filtering by integrations
[#216574]](#216574)
- [[AI4DSOC] Alert summary table setup
[#216744]](#216744)
- [Alerty summary table flyout setup
[#217421]](#217421)
- [[AI4DSOC] Alert summary alert actions in table and flyout
[#217696]](#217696)
- [[AI4DSOC] Alert summary table custom cell renderers
[#217124]](#217124)
- [[AI4DSOC] Alert summary table and flyout ai assistant
[#217744]](#217744)
- [[AI4DSOC] Alert summary page performance improvements
[#218632]](#218632)
- [[AI4DSOC] Change the Attack Discovery page to use the AI for SOC
alerts table [#218736]](#218736)
- [[AI4DSOC] Change the Cases page to use the AI for SOC alerts table
[#218742]](#218742)
- [[AI4DSOC] Fix spacing issue on alert summary landing page integration
card [#218868]](#218868)
- [[AI4DSOC][ResponseOps] Fix alerts table not handling undefined
maintenanceWindow capability
[#218999]](#218999)
- [[AI4DSOC] Fix link to the new integrations page
[#219030]](#219030)
- [[AI4DSOC] Disable CellActions and PreviewLinks on the Attack
discovery page [#219033]](#219033)
- [[AI4DSOC] Add cell renderer for datetime fields to the alert summary
table [#219126]](#219126)
- [[AI4DSOC] Remove Assistant icon from row action in alert summary
table [#219141]](#219141)
- [[AI4DSOC] Add checkboxes to the alert summary table
[#219169]](#219169)
- [[Security Solution][AI4DSOC] Fix table not applying alert tags for
Attack discovery and Cases pages in AI4DSOC
[#219410]](#219410)
- [[AI4DSOC] Fix logic that renders the group title when grouping by
integrations [#219430]](#219430)
- [[AI4DSOC] Alert summary table truncates long values and display the
field/value pair in tooltip
[#219438]](#219438)
- [[Security Solution] Fix alerts table potentially not applying alert
assignees [#219460]](#219460)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting release_note:skip Skip the PR/issue when compiling release notes Team:Security Generative AI Security Generative AI Team:Threat Hunting:Investigations Security Solution Threat Hunting Investigations Team v8.19.0 v9.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants