mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[Security Solution] [Security Assistant] Fixes an unable to load page error in the Security assistant (#194488)
### [Security Solution] [Security Assistant] Fixes an unable to load page error in the Security assistant This PR fixes an `Unable to load page error` in the Security Assistant, introduced in <https://github.com/elastic/kibana/pull/193645>, where a check that appeared to be optional was removed. - The issue occurs when the assistant is asked a question that is likely to require anonymization, for example: `which alerts should I look at first?` - After the error occurs, re-opening the assistant for the same conversation may re-trigger the error - As a workaround, clear Kibana local storage for the current user, or via the browser's dev tools, specifically delete the `elasticAssistantDefault.lastConversationId` setting illustrated by the screenshot below:  ### Steps to reproduce To reproduce: 1) Ask the assistant a question that is likely to cause anonymized alerts to be returned, for example: `which alerts should I look at first?` **Expected result** - Anonymized alerts are displayed **Actual result** - An `Unable to load page` error is displayed, as illustrated by the screenshot below:  - The error details include text similar to the output below: ``` TypeError: Cannot convert undefined or null to object at Function.keys (<anonymous>) at replaceAnonymizedValuesWithOriginalValues (http://localhost:5601/XXXXXXXXXXXX/bundles/plugin/securitySolution/1.0.0/securitySolution.chunk.lazy_application_dependencies.js:60965:14) at transformMessageWithReplacements (http://localhost:5601/XXXXXXXXXXXX/bundles/plugin/securitySolution/1.0.0/securitySolution.chunk.lazy_application_dependencies.js:100511:158) at transformMessage (http://localhost:5601/XXXXXXXXXXXX/bundles/plugin/securitySolution/1.0.0/securitySolution.chunk.lazy_application_dependencies.js:100612:41) at http://localhost:5601/XXXXXXXXXXXX/bundles/plugin/securitySolution/1.0.0/securitySolution.chunk.lazy_application_dependencies.js:100638:32 at Array.map (<anonymous>) at getComments (http://localhost:5601/XXXXXXXXXXXX/bundles/plugin/securitySolution/1.0.0/securitySolution.chunk.lazy_application_dependencies.js:100595:45) at http://localhost:5601/XXXXXXXXXXXX/bundles/plugin/securitySolution/1.0.0/securitySolution.chunk.lazy_application_dependencies.js:68997:15 at updateMemo (http://localhost:5601/XXXXXXXXXXXX/bundles/kbn-ui-shared-deps-npm/kbn-ui-shared-deps-npm.dll.js:369829:19) at Object.useMemo (http://localhost:5601/XXXXXXXXXXXX/bundles/kbn-ui-shared-deps-npm/kbn-ui-shared-deps-npm.dll.js:370375:16) The above error occurred in AssistantComponent: at AssistantComponent (http://localhost:5601/XXXXXXXXXXXX/bundles/plugin/securitySolution/1.0.0/securitySolution.chunk.lazy_application_dependencies.js:68776:3) at div at http://localhost:5601/XXXXXXXXXXXX/bundles/kbn-ui-shared-deps-npm/kbn-ui-shared-deps-npm.dll.js:160008:73 at div at http://loc ``` - The following video illustrates the error: <https://github.com/user-attachments/assets/e96d7ac0-032d-49d6-88be-a8add6547fb1>
This commit is contained in:
parent
5ed0426ef6
commit
35233ba890
2 changed files with 31 additions and 5 deletions
|
@ -123,6 +123,30 @@ describe('helpers', () => {
|
|||
expect(result).toEqual(messageContent);
|
||||
});
|
||||
|
||||
it('returns the original messageContent if replacements is null', () => {
|
||||
const messageContent =
|
||||
'User {{ user.name 3541b730-1dce-4937-b63f-0d618ea1cc5f }} added a member to the Administrators group on host {{ host.name b222e892-431e-4e4f-9295-2ba92ef9d12d }}';
|
||||
|
||||
const result = replaceAnonymizedValuesWithOriginalValues({
|
||||
messageContent,
|
||||
replacements: null, // <-- null
|
||||
});
|
||||
|
||||
expect(result).toEqual(messageContent);
|
||||
});
|
||||
|
||||
it('returns the original messageContent if replacements is undefined', () => {
|
||||
const messageContent =
|
||||
'User {{ user.name 3541b730-1dce-4937-b63f-0d618ea1cc5f }} added a member to the Administrators group on host {{ host.name b222e892-431e-4e4f-9295-2ba92ef9d12d }}';
|
||||
|
||||
const result = replaceAnonymizedValuesWithOriginalValues({
|
||||
messageContent,
|
||||
replacements: undefined, // <-- undefined
|
||||
});
|
||||
|
||||
expect(result).toEqual(messageContent);
|
||||
});
|
||||
|
||||
it('replaces multiple occurrences of the same replacement key', () => {
|
||||
const messageContent =
|
||||
'User {{ user.name 3541b730-1dce-4937-b63f-0d618ea1cc5f }} added a member to the Administrators group on host {{ host.name b222e892-431e-4e4f-9295-2ba92ef9d12d }}, which is unusual because {{ user.name 3541b730-1dce-4937-b63f-0d618ea1cc5f }} is not a member of the Administrators group.';
|
||||
|
|
|
@ -40,13 +40,15 @@ export const replaceAnonymizedValuesWithOriginalValues = ({
|
|||
replacements,
|
||||
}: {
|
||||
messageContent: string;
|
||||
replacements: Replacements;
|
||||
replacements: Replacements | null | undefined;
|
||||
}): string =>
|
||||
Object.keys(replacements).reduce((acc, key) => {
|
||||
const value = replacements[key];
|
||||
replacements != null
|
||||
? Object.keys(replacements).reduce((acc, key) => {
|
||||
const value = replacements[key];
|
||||
|
||||
return acc.replaceAll(key, value);
|
||||
}, messageContent);
|
||||
return acc.replaceAll(key, value);
|
||||
}, messageContent)
|
||||
: messageContent;
|
||||
|
||||
export const replaceOriginalValuesWithUuidValues = ({
|
||||
messageContent,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue