mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
869 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
e8b7c25925
|
[8.x] Add watsonx icon for inference endpoints management page (#197116) (#197276)
# Backport This will backport the following commits from `main` to `8.x`: - [Add watsonx icon for inference endpoints management page (#197116)](https://github.com/elastic/kibana/pull/197116) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Saikat Sarkar","email":"132922331+saikatsarkar056@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-22T15:10:40Z","message":"Add watsonx icon for inference endpoints management page (#197116)\n\nThis PR adds IBM Watsonx ai support for the Inference Endpoints\r\nManagement UI.\r\n\r\n<img width=\"1249\" alt=\"Screenshot 2024-10-21 at 12 22 09 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/58516bef-4800-4198-91bf-c428d878d787\">","sha":"8e1fcc126ac1b5b012b5730d51ca1ba6304020d5","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:EnterpriseSearch","backport:prev-minor","v8.16.0"],"title":"Add watsonx icon for inference endpoints management page","number":197116,"url":"https://github.com/elastic/kibana/pull/197116","mergeCommit":{"message":"Add watsonx icon for inference endpoints management page (#197116)\n\nThis PR adds IBM Watsonx ai support for the Inference Endpoints\r\nManagement UI.\r\n\r\n<img width=\"1249\" alt=\"Screenshot 2024-10-21 at 12 22 09 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/58516bef-4800-4198-91bf-c428d878d787\">","sha":"8e1fcc126ac1b5b012b5730d51ca1ba6304020d5"}},"sourceBranch":"main","suggestedTargetBranches":["8.16"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/197116","number":197116,"mergeCommit":{"message":"Add watsonx icon for inference endpoints management page (#197116)\n\nThis PR adds IBM Watsonx ai support for the Inference Endpoints\r\nManagement UI.\r\n\r\n<img width=\"1249\" alt=\"Screenshot 2024-10-21 at 12 22 09 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/58516bef-4800-4198-91bf-c428d878d787\">","sha":"8e1fcc126ac1b5b012b5730d51ca1ba6304020d5"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Saikat Sarkar <132922331+saikatsarkar056@users.noreply.github.com> |
||
|
5ececbb765
|
[8.x] [Security Solution][Notes] - fix user filter not checking correct license in notes management page (#197149) (#197245)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security Solution][Notes] - fix user filter not checking correct license in notes management page (#197149)](https://github.com/elastic/kibana/pull/197149) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Philippe Oberti","email":"philippe.oberti@elastic.co"},"sourceCommit":{"committedDate":"2024-10-22T13:32:48Z","message":"[Security Solution][Notes] - fix user filter not checking correct license in notes management page (#197149)","sha":"dcd8e0c614183ae648e00979eb82123656076d16","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["backport","release_note:skip","v9.0.0","Team:Threat Hunting:Investigations","v8.16.0"],"title":"[Security Solution][Notes] - fix user filter not checking correct license in notes management page","number":197149,"url":"https://github.com/elastic/kibana/pull/197149","mergeCommit":{"message":"[Security Solution][Notes] - fix user filter not checking correct license in notes management page (#197149)","sha":"dcd8e0c614183ae648e00979eb82123656076d16"}},"sourceBranch":"main","suggestedTargetBranches":["8.16"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/197149","number":197149,"mergeCommit":{"message":"[Security Solution][Notes] - fix user filter not checking correct license in notes management page (#197149)","sha":"dcd8e0c614183ae648e00979eb82123656076d16"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Philippe Oberti <philippe.oberti@elastic.co> |
||
|
7c542e2bbc
|
[8.x] [Security Assistant] Knowledge base settings author column fix (#197114) (#197138)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security Assistant] Knowledge base settings author column fix (#197114)](https://github.com/elastic/kibana/pull/197114) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Steph Milovic","email":"stephanie.milovic@elastic.co"},"sourceCommit":{"committedDate":"2024-10-21T20:18:44Z","message":"[Security Assistant] Knowledge base settings author column fix (#197114)","sha":"1e12f31a7082ce8286f933f8a586fdb706c35a01","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team: SecuritySolution","backport:prev-minor","Team:Security Generative AI","v8.16.0"],"title":"[Security Assistant] Knowledge base settings author column fix ","number":197114,"url":"https://github.com/elastic/kibana/pull/197114","mergeCommit":{"message":"[Security Assistant] Knowledge base settings author column fix (#197114)","sha":"1e12f31a7082ce8286f933f8a586fdb706c35a01"}},"sourceBranch":"main","suggestedTargetBranches":["8.16"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/197114","number":197114,"mergeCommit":{"message":"[Security Assistant] Knowledge base settings author column fix (#197114)","sha":"1e12f31a7082ce8286f933f8a586fdb706c35a01"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Steph Milovic <stephanie.milovic@elastic.co> |
||
|
20627745ee
|
[8.x] [Security Assistant] Fix KB output fields (#196567) (#197119)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security Assistant] Fix KB output fields (#196567)](https://github.com/elastic/kibana/pull/196567) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Patryk Kopyciński","email":"contact@patrykkopycinski.com"},"sourceCommit":{"committedDate":"2024-10-21T18:32:06Z","message":"[Security Assistant] Fix KB output fields (#196567)\n\n## Summary\r\n\r\nFixes Assistant Knowledge Base output fields field logic\r\nFixes Security Assistant card not appearing on Serverless \r\nReverts Assistant Cog wheel settings button when FF\r\n`assistantKnowledgeBaseByDefault` is off\r\n\r\n\r\n","sha":"399aed9b19935651b979dc68ad88429a156dae2f","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","release_note:skip","v9.0.0","backport:prev-minor","Feature:Security Assistant","Team:Security Generative AI","v8.16.0","v8.17.0"],"title":"[Security Assistant] Reverts Assistant Cog wheel settings button when assistantKnowledgeBaseByDefault FF is off","number":196567,"url":"https://github.com/elastic/kibana/pull/196567","mergeCommit":{"message":"[Security Assistant] Fix KB output fields (#196567)\n\n## Summary\r\n\r\nFixes Assistant Knowledge Base output fields field logic\r\nFixes Security Assistant card not appearing on Serverless \r\nReverts Assistant Cog wheel settings button when FF\r\n`assistantKnowledgeBaseByDefault` is off\r\n\r\n\r\n","sha":"399aed9b19935651b979dc68ad88429a156dae2f"}},"sourceBranch":"main","suggestedTargetBranches":["8.16","8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/196567","number":196567,"mergeCommit":{"message":"[Security Assistant] Fix KB output fields (#196567)\n\n## Summary\r\n\r\nFixes Assistant Knowledge Base output fields field logic\r\nFixes Security Assistant card not appearing on Serverless \r\nReverts Assistant Cog wheel settings button when FF\r\n`assistantKnowledgeBaseByDefault` is off\r\n\r\n\r\n","sha":"399aed9b19935651b979dc68ad88429a156dae2f"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.x","label":"v8.17.0","branchLabelMappingKey":"^v8.17.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Patryk Kopyciński <contact@patrykkopycinski.com> |
||
|
740930048b
|
[8.x] [ML] Transforms: Limit the data grid result window (#196510) (#197002)
# Backport This will backport the following commits from `main` to `8.x`: - [[ML] Transforms: Limit the data grid result window (#196510)](https://github.com/elastic/kibana/pull/196510) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Robert Jaszczurek","email":"92210485+rbrtj@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-18T09:45:10Z","message":"[ML] Transforms: Limit the data grid result window (#196510)\n\n## Summary\r\n\r\nFix for: [#196101](https://github.com/elastic/kibana/issues/196101)\r\nAdded a limit for grid data, capping it at a max of `10000` documents,\r\nas any number above this triggers an error due to ES pagination\r\nlimitations. Since this is only a preview, displaying all the data in\r\nthe grid is unnecessary.\r\nAfter:\r\n\r\n\r\n\r\n\r\n### Checklist\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n\r\n---------\r\n\r\nCo-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>","sha":"592225dfb6ffefa2717b49479491231dec12ecf2","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix",":ml","v9.0.0","Team:ML","v8.16.0","backport:version","v8.17.0"],"title":"[ML] Transforms: Limit the data grid result window","number":196510,"url":"https://github.com/elastic/kibana/pull/196510","mergeCommit":{"message":"[ML] Transforms: Limit the data grid result window (#196510)\n\n## Summary\r\n\r\nFix for: [#196101](https://github.com/elastic/kibana/issues/196101)\r\nAdded a limit for grid data, capping it at a max of `10000` documents,\r\nas any number above this triggers an error due to ES pagination\r\nlimitations. Since this is only a preview, displaying all the data in\r\nthe grid is unnecessary.\r\nAfter:\r\n\r\n\r\n\r\n\r\n### Checklist\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n\r\n---------\r\n\r\nCo-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>","sha":"592225dfb6ffefa2717b49479491231dec12ecf2"}},"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/196510","number":196510,"mergeCommit":{"message":"[ML] Transforms: Limit the data grid result window (#196510)\n\n## Summary\r\n\r\nFix for: [#196101](https://github.com/elastic/kibana/issues/196101)\r\nAdded a limit for grid data, capping it at a max of `10000` documents,\r\nas any number above this triggers an error due to ES pagination\r\nlimitations. Since this is only a preview, displaying all the data in\r\nthe grid is unnecessary.\r\nAfter:\r\n\r\n\r\n\r\n\r\n### Checklist\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n\r\n---------\r\n\r\nCo-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>","sha":"592225dfb6ffefa2717b49479491231dec12ecf2"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/196829","number":196829,"state":"MERGED","mergeCommit":{"sha":"21a3625dd5933dcdc87195f5cb3bfa450a5287c9","message":"[8.16] [ML] Transforms: Limit the data grid result window (#196510) (#196829)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.16`:\n- [[ML] Transforms: Limit the data grid result window\n(#196510)](https://github.com/elastic/kibana/pull/196510)\n\n<!--- Backport version: 9.4.3 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Robert\nJaszczurek\",\"email\":\"92210485+rbrtj@users.noreply.github.com\"},\"sourceCommit\":{\"committedDate\":\"2024-10-18T09:45:10Z\",\"message\":\"[ML]\nTransforms: Limit the data grid result window (#196510)\\n\\n##\nSummary\\r\\n\\r\\nFix for:\n[#196101](https://github.com/elastic/kibana/issues/196101)\\r\\nAdded a\nlimit for grid data, capping it at a max of `10000` documents,\\r\\nas any\nnumber above this triggers an error due to ES pagination\\r\\nlimitations.\nSince this is only a preview, displaying all the data in\\r\\nthe grid is\nunnecessary.\\r\\nAfter:\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n###\nChecklist\\r\\n\\r\\n- [ ] Any text added follows [EUI's\nwriting\\r\\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),\nuses\\r\\nsentence case text and includes\n[i18n\\r\\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nIstván Zoltán Szabó\n<istvan.szabo@elastic.co>\",\"sha\":\"592225dfb6ffefa2717b49479491231dec12ecf2\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.17.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"release_note:fix\",\":ml\",\"v9.0.0\",\"Team:ML\",\"v8.16.0\",\"backport:version\"],\"title\":\"[ML]\nTransforms: Limit the data grid result\nwindow\",\"number\":196510,\"url\":\"https://github.com/elastic/kibana/pull/196510\",\"mergeCommit\":{\"message\":\"[ML]\nTransforms: Limit the data grid result window (#196510)\\n\\n##\nSummary\\r\\n\\r\\nFix for:\n[#196101](https://github.com/elastic/kibana/issues/196101)\\r\\nAdded a\nlimit for grid data, capping it at a max of `10000` documents,\\r\\nas any\nnumber above this triggers an error due to ES pagination\\r\\nlimitations.\nSince this is only a preview, displaying all the data in\\r\\nthe grid is\nunnecessary.\\r\\nAfter:\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n###\nChecklist\\r\\n\\r\\n- [ ] Any text added follows [EUI's\nwriting\\r\\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),\nuses\\r\\nsentence case text and includes\n[i18n\\r\\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nIstván Zoltán Szabó\n<istvan.szabo@elastic.co>\",\"sha\":\"592225dfb6ffefa2717b49479491231dec12ecf2\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"8.16\"],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v9.0.0\",\"branchLabelMappingKey\":\"^v9.0.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/196510\",\"number\":196510,\"mergeCommit\":{\"message\":\"[ML]\nTransforms: Limit the data grid result window (#196510)\\n\\n##\nSummary\\r\\n\\r\\nFix for:\n[#196101](https://github.com/elastic/kibana/issues/196101)\\r\\nAdded a\nlimit for grid data, capping it at a max of `10000` documents,\\r\\nas any\nnumber above this triggers an error due to ES pagination\\r\\nlimitations.\nSince this is only a preview, displaying all the data in\\r\\nthe grid is\nunnecessary.\\r\\nAfter:\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n###\nChecklist\\r\\n\\r\\n- [ ] Any text added follows [EUI's\nwriting\\r\\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),\nuses\\r\\nsentence case text and includes\n[i18n\\r\\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nIstván Zoltán Szabó\n<istvan.szabo@elastic.co>\",\"sha\":\"592225dfb6ffefa2717b49479491231dec12ecf2\"}},{\"branch\":\"8.16\",\"label\":\"v8.16.0\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"}]}]\nBACKPORT-->\n\nCo-authored-by: Robert Jaszczurek <92210485+rbrtj@users.noreply.github.com>"}},{"branch":"8.x","label":"v8.17.0","branchLabelMappingKey":"^v8.17.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Robert Jaszczurek <92210485+rbrtj@users.noreply.github.com> |
||
|
307a08ef6e
|
[8.x] Hide assistant's knowledge base UI when assistantKnowledgeBaseByDefault feature flag is disabled (#196762) (#196980)
# Backport This will backport the following commits from `main` to `8.x`: - [Hide assistant's knowledge base UI when `assistantKnowledgeBaseByDefault` feature flag is disabled (#196762)](https://github.com/elastic/kibana/pull/196762) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Ievgen Sorokopud","email":"ievgen.sorokopud@elastic.co"},"sourceCommit":{"committedDate":"2024-10-18T11:35:04Z","message":"Hide assistant's knowledge base UI when `assistantKnowledgeBaseByDefault` feature flag is disabled (#196762)\n\n## Summary\r\n\r\nThis is the followup to https://github.com/elastic/kibana/pull/195733\r\nwhere we implemented the RBAC to allow managing Global Knowledge Base\r\ndocs. With those changes we introduced a bug where we do not hide the\r\nRBAC configuration setting when `assistantKnowledgeBaseByDefault`\r\nfeature flag is disabled. It means that in Serverless users will see\r\nthis setting but it will do nothing for them.\r\n\r\n### Screenshots of the fixed behaviour\r\n\r\n* `assistantKnowledgeBaseByDefault = true`\r\n\r\n\r\n\r\n\r\n* `assistantKnowledgeBaseByDefault = false`\r\n\r\n\r\n","sha":"f6e8065dd75116ddf596b77f75a8468804008323","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Feature:Security Assistant","Team:Security Generative AI","v8.16.0","backport:version"],"number":196762,"url":"https://github.com/elastic/kibana/pull/196762","mergeCommit":{"message":"Hide assistant's knowledge base UI when `assistantKnowledgeBaseByDefault` feature flag is disabled (#196762)\n\n## Summary\r\n\r\nThis is the followup to https://github.com/elastic/kibana/pull/195733\r\nwhere we implemented the RBAC to allow managing Global Knowledge Base\r\ndocs. With those changes we introduced a bug where we do not hide the\r\nRBAC configuration setting when `assistantKnowledgeBaseByDefault`\r\nfeature flag is disabled. It means that in Serverless users will see\r\nthis setting but it will do nothing for them.\r\n\r\n### Screenshots of the fixed behaviour\r\n\r\n* `assistantKnowledgeBaseByDefault = true`\r\n\r\n\r\n\r\n\r\n* `assistantKnowledgeBaseByDefault = false`\r\n\r\n\r\n","sha":"f6e8065dd75116ddf596b77f75a8468804008323"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/196762","number":196762,"mergeCommit":{"message":"Hide assistant's knowledge base UI when `assistantKnowledgeBaseByDefault` feature flag is disabled (#196762)\n\n## Summary\r\n\r\nThis is the followup to https://github.com/elastic/kibana/pull/195733\r\nwhere we implemented the RBAC to allow managing Global Knowledge Base\r\ndocs. With those changes we introduced a bug where we do not hide the\r\nRBAC configuration setting when `assistantKnowledgeBaseByDefault`\r\nfeature flag is disabled. It means that in Serverless users will see\r\nthis setting but it will do nothing for them.\r\n\r\n### Screenshots of the fixed behaviour\r\n\r\n* `assistantKnowledgeBaseByDefault = true`\r\n\r\n\r\n\r\n\r\n* `assistantKnowledgeBaseByDefault = false`\r\n\r\n\r\n","sha":"f6e8065dd75116ddf596b77f75a8468804008323"}},{"branch":"8.16","label":"v8.16.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/196857","number":196857,"state":"MERGED","mergeCommit":{"sha":"8094dd6d7791a5fd6e8ead925a1ba42b6bb7acfa","message":"[8.16] Hide assistant's knowledge base UI when `assistantKnowledgeBaseByDefault` feature flag is disabled (#196762) (#196857)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.16`:\n- [Hide assistant's knowledge base UI when\n`assistantKnowledgeBaseByDefault` feature flag is disabled\n(#196762)](https://github.com/elastic/kibana/pull/196762)\n\n<!--- Backport version: 9.4.3 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Ievgen\nSorokopud\",\"email\":\"ievgen.sorokopud@elastic.co\"},\"sourceCommit\":{\"committedDate\":\"2024-10-18T11:35:04Z\",\"message\":\"Hide\nassistant's knowledge base UI when `assistantKnowledgeBaseByDefault`\nfeature flag is disabled (#196762)\\n\\n## Summary\\r\\n\\r\\nThis is the\nfollowup to https://github.com/elastic/kibana/pull/195733\\r\\nwhere we\nimplemented the RBAC to allow managing Global Knowledge Base\\r\\ndocs.\nWith those changes we introduced a bug where we do not hide the\\r\\nRBAC\nconfiguration setting when `assistantKnowledgeBaseByDefault`\\r\\nfeature\nflag is disabled. It means that in Serverless users will see\\r\\nthis\nsetting but it will do nothing for them.\\r\\n\\r\\n### Screenshots of the\nfixed behaviour\\r\\n\\r\\n* `assistantKnowledgeBaseByDefault =\ntrue`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n*\n`assistantKnowledgeBaseByDefault =\nfalse`\\r\\n\\r\\n\\r\\n\",\"sha\":\"f6e8065dd75116ddf596b77f75a8468804008323\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.17.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"release_note:skip\",\"v9.0.0\",\"Feature:Security\nAssistant\",\"Team:Security Generative\nAI\",\"v8.16.0\",\"backport:version\"],\"title\":\"Hide assistant's knowledge\nbase UI when `assistantKnowledgeBaseByDefault` feature flag is\ndisabled\",\"number\":196762,\"url\":\"https://github.com/elastic/kibana/pull/196762\",\"mergeCommit\":{\"message\":\"Hide\nassistant's knowledge base UI when `assistantKnowledgeBaseByDefault`\nfeature flag is disabled (#196762)\\n\\n## Summary\\r\\n\\r\\nThis is the\nfollowup to https://github.com/elastic/kibana/pull/195733\\r\\nwhere we\nimplemented the RBAC to allow managing Global Knowledge Base\\r\\ndocs.\nWith those changes we introduced a bug where we do not hide the\\r\\nRBAC\nconfiguration setting when `assistantKnowledgeBaseByDefault`\\r\\nfeature\nflag is disabled. It means that in Serverless users will see\\r\\nthis\nsetting but it will do nothing for them.\\r\\n\\r\\n### Screenshots of the\nfixed behaviour\\r\\n\\r\\n* `assistantKnowledgeBaseByDefault =\ntrue`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n*\n`assistantKnowledgeBaseByDefault =\nfalse`\\r\\n\\r\\n\\r\\n\",\"sha\":\"f6e8065dd75116ddf596b77f75a8468804008323\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"8.16\"],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v9.0.0\",\"branchLabelMappingKey\":\"^v9.0.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/196762\",\"number\":196762,\"mergeCommit\":{\"message\":\"Hide\nassistant's knowledge base UI when `assistantKnowledgeBaseByDefault`\nfeature flag is disabled (#196762)\\n\\n## Summary\\r\\n\\r\\nThis is the\nfollowup to https://github.com/elastic/kibana/pull/195733\\r\\nwhere we\nimplemented the RBAC to allow managing Global Knowledge Base\\r\\ndocs.\nWith those changes we introduced a bug where we do not hide the\\r\\nRBAC\nconfiguration setting when `assistantKnowledgeBaseByDefault`\\r\\nfeature\nflag is disabled. It means that in Serverless users will see\\r\\nthis\nsetting but it will do nothing for them.\\r\\n\\r\\n### Screenshots of the\nfixed behaviour\\r\\n\\r\\n* `assistantKnowledgeBaseByDefault =\ntrue`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n*\n`assistantKnowledgeBaseByDefault =\nfalse`\\r\\n\\r\\n\\r\\n\",\"sha\":\"f6e8065dd75116ddf596b77f75a8468804008323\"}},{\"branch\":\"8.16\",\"label\":\"v8.16.0\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"}]}]\nBACKPORT-->\n\nCo-authored-by: Ievgen Sorokopud <ievgen.sorokopud@elastic.co>"}}]}] BACKPORT--> |
||
|
ecf451f132
|
[8.x] [Spaces] Read Security license to infer eligibility for sub feature customization (#195389) (#196925)
# Backport This will backport the following commits from `main` to `8.x`: - [[Spaces] Read Security license to infer eligibility for sub feature customization (#195389)](https://github.com/elastic/kibana/pull/195389) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Eyo O. Eyo","email":"7893459+eokoneyo@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-16T10:02:51Z","message":"[Spaces] Read Security license to infer eligibility for sub feature customization (#195389)\n\n## Summary\r\n\r\nCloses https://github.com/elastic/kibana/issues/195549\r\n\r\nThis PR adds implementation such that eligibility to allow for the\r\ntoggling of the switch for customization of sub features whilst defining\r\nprivileges that would be assigned to a space is determined from security\r\nlicense.\r\n\r\n\r\n### Before\r\n\r\n\r\n### After\r\n\r\n\r\n\r\n<!-- ### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n-->","sha":"e6e30c20215ce7cbb8bd25d6646edc5d0a8bc33e","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Security","release_note:skip","backport missing","v9.0.0","backport:prev-major"],"number":195389,"url":"https://github.com/elastic/kibana/pull/195389","mergeCommit":{"message":"[Spaces] Read Security license to infer eligibility for sub feature customization (#195389)\n\n## Summary\r\n\r\nCloses https://github.com/elastic/kibana/issues/195549\r\n\r\nThis PR adds implementation such that eligibility to allow for the\r\ntoggling of the switch for customization of sub features whilst defining\r\nprivileges that would be assigned to a space is determined from security\r\nlicense.\r\n\r\n\r\n### Before\r\n\r\n\r\n### After\r\n\r\n\r\n\r\n<!-- ### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n-->","sha":"e6e30c20215ce7cbb8bd25d6646edc5d0a8bc33e"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195389","number":195389,"mergeCommit":{"message":"[Spaces] Read Security license to infer eligibility for sub feature customization (#195389)\n\n## Summary\r\n\r\nCloses https://github.com/elastic/kibana/issues/195549\r\n\r\nThis PR adds implementation such that eligibility to allow for the\r\ntoggling of the switch for customization of sub features whilst defining\r\nprivileges that would be assigned to a space is determined from security\r\nlicense.\r\n\r\n\r\n### Before\r\n\r\n\r\n### After\r\n\r\n\r\n\r\n<!-- ### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n-->","sha":"e6e30c20215ce7cbb8bd25d6646edc5d0a8bc33e"}},{"url":"https://github.com/elastic/kibana/pull/196924","number":196924,"branch":"8.16","state":"OPEN"}]}] BACKPORT--> Co-authored-by: Eyo O. Eyo <7893459+eokoneyo@users.noreply.github.com> |
||
|
ef9f373008
|
[8.x] [EEM] Replace hashed ID with human readable ID (#193652) (#196902)
# Backport This will backport the following commits from `main` to `8.x`: - [[EEM] Replace hashed ID with human readable ID (#193652)](https://github.com/elastic/kibana/pull/193652) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Milton Hultgren","email":"milton.hultgren@elastic.co"},"sourceCommit":{"committedDate":"2024-10-18T14:42:38Z","message":"[EEM] Replace hashed ID with human readable ID (#193652)\n\nThis PR turns the `entity.id` field format from a hashed value to a\r\nhuman readable string of the **values** found in the identity fields,\r\nsuch as `my_host-my_cloud_zone` for the identity fields `[host.name,\r\ncloud.availability_zone]`.\r\nThe order of the values is based on the order in the identity fields\r\nlist.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"ae2c6ad321f2b4318d4114c1309b4420861bcd29","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Feature:EEM"],"title":"[EEM] Replace hashed ID with human readable ID","number":193652,"url":"https://github.com/elastic/kibana/pull/193652","mergeCommit":{"message":"[EEM] Replace hashed ID with human readable ID (#193652)\n\nThis PR turns the `entity.id` field format from a hashed value to a\r\nhuman readable string of the **values** found in the identity fields,\r\nsuch as `my_host-my_cloud_zone` for the identity fields `[host.name,\r\ncloud.availability_zone]`.\r\nThe order of the values is based on the order in the identity fields\r\nlist.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"ae2c6ad321f2b4318d4114c1309b4420861bcd29"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/193652","number":193652,"mergeCommit":{"message":"[EEM] Replace hashed ID with human readable ID (#193652)\n\nThis PR turns the `entity.id` field format from a hashed value to a\r\nhuman readable string of the **values** found in the identity fields,\r\nsuch as `my_host-my_cloud_zone` for the identity fields `[host.name,\r\ncloud.availability_zone]`.\r\nThe order of the values is based on the order in the identity fields\r\nlist.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"ae2c6ad321f2b4318d4114c1309b4420861bcd29"}}]}] BACKPORT--> Co-authored-by: Milton Hultgren <milton.hultgren@elastic.co> |
||
|
4770383016
|
[8.x] fix no-restricted-imports (#195456) (#196517)
# Backport This will backport the following commits from `main` to `8.x`: - [fix `no-restricted-imports` (#195456)](https://github.com/elastic/kibana/pull/195456) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Anton Dosov","email":"anton.dosov@elastic.co"},"sourceCommit":{"committedDate":"2024-10-15T11:55:53Z","message":"fix `no-restricted-imports` (#195456)\n\n## Summary\r\n\r\nI noticed that our `no-restricted-imports` rules were not working on\r\nsome parts of the codebase. Turns our the rule was overriden by mistake.\r\nThis PR fixes the rules and places that were not following them:\r\n\r\n- lodash set for safety\r\n- react-use for a bit smaller bundles\r\n- router for context annoncement (`useExecutionContext`) and hopefully\r\neasier upgrade to newer version","sha":"1055120d0f4640af67881b4909d4881681d9575d","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-management"],"number":195456,"url":"https://github.com/elastic/kibana/pull/195456","mergeCommit":{"message":"fix `no-restricted-imports` (#195456)\n\n## Summary\r\n\r\nI noticed that our `no-restricted-imports` rules were not working on\r\nsome parts of the codebase. Turns our the rule was overriden by mistake.\r\nThis PR fixes the rules and places that were not following them:\r\n\r\n- lodash set for safety\r\n- react-use for a bit smaller bundles\r\n- router for context annoncement (`useExecutionContext`) and hopefully\r\neasier upgrade to newer version","sha":"1055120d0f4640af67881b4909d4881681d9575d"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195456","number":195456,"mergeCommit":{"message":"fix `no-restricted-imports` (#195456)\n\n## Summary\r\n\r\nI noticed that our `no-restricted-imports` rules were not working on\r\nsome parts of the codebase. Turns our the rule was overriden by mistake.\r\nThis PR fixes the rules and places that were not following them:\r\n\r\n- lodash set for safety\r\n- react-use for a bit smaller bundles\r\n- router for context annoncement (`useExecutionContext`) and hopefully\r\neasier upgrade to newer version","sha":"1055120d0f4640af67881b4909d4881681d9575d"}}]}] BACKPORT--> --------- Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> |
||
|
4c2bf78751
|
[8.x] [Cloud Security] Remove Cursor pointer when hovering over Distribution Bar (#196402) (#196626)
# Backport This will backport the following commits from `main` to `8.x`: - [[Cloud Security] Remove Cursor pointer when hovering over Distribution Bar (#196402)](https://github.com/elastic/kibana/pull/196402) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Rickyanto Ang","email":"rickyangwyn@gmail.com"},"sourceCommit":{"committedDate":"2024-10-17T03:21:19Z","message":"[Cloud Security] Remove Cursor pointer when hovering over Distribution Bar (#196402)\n\n## Summary\r\n\r\nCurrently since clicking on Distribution Bar on Alerts Flyout or\r\nContextual Flyout doesn't do anything (like filtering), showing pointer\r\ncursor when user hovers over the Distribution is a bit misleading. As\r\nsuch this PR removes that cursor pointer when hovering over the bar.\r\nOnce we have the filter functionality, we will add it back","sha":"455e91ae970b6b54bae8de8d247feb73a90aa558","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Cloud Security","backport:prev-minor","v8.16.0"],"title":"[Cloud Security] Remove Cursor pointer when hovering over Distribution Bar","number":196402,"url":"https://github.com/elastic/kibana/pull/196402","mergeCommit":{"message":"[Cloud Security] Remove Cursor pointer when hovering over Distribution Bar (#196402)\n\n## Summary\r\n\r\nCurrently since clicking on Distribution Bar on Alerts Flyout or\r\nContextual Flyout doesn't do anything (like filtering), showing pointer\r\ncursor when user hovers over the Distribution is a bit misleading. As\r\nsuch this PR removes that cursor pointer when hovering over the bar.\r\nOnce we have the filter functionality, we will add it back","sha":"455e91ae970b6b54bae8de8d247feb73a90aa558"}},"sourceBranch":"main","suggestedTargetBranches":["8.16"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/196402","number":196402,"mergeCommit":{"message":"[Cloud Security] Remove Cursor pointer when hovering over Distribution Bar (#196402)\n\n## Summary\r\n\r\nCurrently since clicking on Distribution Bar on Alerts Flyout or\r\nContextual Flyout doesn't do anything (like filtering), showing pointer\r\ncursor when user hovers over the Distribution is a bit misleading. As\r\nsuch this PR removes that cursor pointer when hovering over the bar.\r\nOnce we have the filter functionality, we will add it back","sha":"455e91ae970b6b54bae8de8d247feb73a90aa558"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Rickyanto Ang <rickyangwyn@gmail.com> |
||
|
a9b526a3ad
|
[8.x] [Security assistant] Fix `AlertsRange` for Assistant (#196582) (#196590)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security assistant] Fix `AlertsRange` for Assistant (#196582)](https://github.com/elastic/kibana/pull/196582) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Steph Milovic","email":"stephanie.milovic@elastic.co"},"sourceCommit":{"committedDate":"2024-10-16T18:31:32Z","message":"[Security assistant] Fix `AlertsRange` for Assistant (#196582)","sha":"6438520c6522263bd38bf68606cf36fce4ce9697","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team: SecuritySolution","backport:prev-minor","Team:Security Generative AI","v8.16.0"],"title":"[Security assistant] Fix `AlertsRange` for Assistant","number":196582,"url":"https://github.com/elastic/kibana/pull/196582","mergeCommit":{"message":"[Security assistant] Fix `AlertsRange` for Assistant (#196582)","sha":"6438520c6522263bd38bf68606cf36fce4ce9697"}},"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/196582","number":196582,"mergeCommit":{"message":"[Security assistant] Fix `AlertsRange` for Assistant (#196582)","sha":"6438520c6522263bd38bf68606cf36fce4ce9697"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Steph Milovic <stephanie.milovic@elastic.co> |
||
|
24d9229d0f
|
[8.x] [Obs AI Assistant] Pass function responses when copying conversation (#195635) (#196558)
# Backport This will backport the following commits from `main` to `8.x`: - [[Obs AI Assistant] Pass function responses when copying conversation (#195635)](https://github.com/elastic/kibana/pull/195635) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Viduni Wickramarachchi","email":"viduni.wickramarachchi@elastic.co"},"sourceCommit":{"committedDate":"2024-10-16T14:42:09Z","message":"[Obs AI Assistant] Pass function responses when copying conversation (#195635)\n\nCloses https://github.com/elastic/kibana/issues/181216\r\n\r\n## Summary\r\n\r\n### Problem\r\nFunction call arguments and responses are serialized separately.\r\nTherefore, when a conversation is copied, arguments and responses\r\n(`content` and `data`) appear as strings instead of JSON objects. This\r\nmakes it harder to debug.\r\n\r\n### Solution\r\nDeserialize the arguments and responses and include it in the copied\r\nconversation object.\r\n\r\nExample of original copied conversation:\r\n<details>\r\n <summary>Click to expand JSON</summary>\r\n\r\n```json\r\n{\r\n \"title\": \"\",\r\n \"messages\": [\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": {\r\n \"role\": \"system\",\r\n \"content\": \"You are a helpful assistant for Elastic Observability....\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.881Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"Give me examples of questions I can ask here.\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.965Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:27.063Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"scores\\\":[],\\\"suggestions\\\":[]}\",\r\n \"name\": \"context\",\r\n \"content\": \"{\\\"screen_description\\\":\\\"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\\\n\\\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\\\\\"universal_profiling\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"uptime\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"heartbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_metrics\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"metrics-*,metricbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"alert\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"apm\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":{\\\\\\\"transaction\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"span\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"error\\\\\\\":\\\\\\\"logs-apm*,apm-*,logs-*.otel-*\\\\\\\",\\\\\\\"metric\\\\\\\":\\\\\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"onboarding\\\\\\\":\\\\\\\"apm-*\\\\\\\",\\\\\\\"sourcemap\\\\\\\":\\\\\\\"apm-*\\\\\\\"},\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"ux\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_logs\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"}}\\\",\\\"learnings\\\":[]}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:35.140Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"Sure, here are some examples of questions you can ask:\\n\\n1. \\\"What is the average response time for my services?\\\"\\n2. \\\"Show me the error rate for my services.\\\"\\n3. \\\"Are there any anomalies in my system?\\\"\\n4. \\\"What are the top 5 services by transaction volume?\\\"\\n5. \\\"Show me the logs for a specific service.\\\"\\n6. \\\"Are there any alerts in my system?\\\"\\n7. \\\"What is the CPU usage of my hosts?\\\"\\n8. \\\"Show me the network traffic in my system.\\\"\\n9. \\\"What is the disk usage of my hosts?\\\"\\n10. \\\"Show me the memory usage of my containers.\\\"\\n\\nPlease note that the actual questions you can ask depend on the data you have in your system.\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.651Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"What are the top 5 services by transaction volume\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.784Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"scores\\\":[],\\\"suggestions\\\":[]}\",\r\n \"name\": \"context\",\r\n \"content\": \"{\\\"screen_description\\\":\\\"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\\\n\\\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\\\\\"universal_profiling\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"uptime\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"heartbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_metrics\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"metrics-*,metricbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"alert\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"apm\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":{\\\\\\\"transaction\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"span\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"error\\\\\\\":\\\\\\\"logs-apm*,apm-*,logs-*.otel-*\\\\\\\",\\\\\\\"metric\\\\\\\":\\\\\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"onboarding\\\\\\\":\\\\\\\"apm-*\\\\\\\",\\\\\\\"sourcemap\\\\\\\":\\\\\\\"apm-*\\\\\\\"},\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"ux\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_logs\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"}}\\\",\\\"learnings\\\":[]}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.370Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"get_dataset_info\",\r\n \"arguments\": \"{\\n \\\"index\\\": \\\"traces-apm*,apm-*,traces-*.otel-*\\\"\\n}\",\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.379Z\",\r\n \"message\": { \"role\": \"user\", \"name\": \"get_dataset_info\", \"content\": \"{\\\"indices\\\":[],\\\"fields\\\":[]}\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.998Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"query\", \"arguments\": \"{}\", \"trigger\": \"assistant\" },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:47.572Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"keywords\\\":[\\\"STATS\\\",\\\"SORT\\\",\\\"LIMIT\\\",\\\"COUNT\\\"],\\\"requestedDocumentation\\\":{\\\"STATS\\\":\\\"# STATS ... BY\\\\n\\\\nThe `STATS ... BY` command groups rows based on a common value and calculates one or more aggregated values over these grouped rows.\\\\n\\\\n## Syntax\\\\n\\\\n```esql\\\\nSTATS [column1 =] expression1[, ..., [columnN =] expressionN] [BY grouping_expression1[, ..., grouping_expressionN]]\\\\n```\\\\n\\\\n### Parameters\\\\n\\\\n#### columnX\\\\n\\\\nThe name for the aggregated value in the output. If not provided....\"}}\",\r\n \"name\": \"query\",\r\n \"content\": \"{}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.481Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"execute_query\",\r\n \"arguments\": \"{\\\"query\\\":\\\"FROM traces-apm*,apm-*,traces-*.otel-* | STATS COUNT(*) BY service.name | SORT COUNT(*) DESC | LIMIT 5\\\"}\",\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.619Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"name\": \"execute_query\",\r\n \"content\": \"{\\\"message\\\":\\\"The query failed to execute\\\",\\\"error\\\":{\\\"name\\\":\\\"ResponseError\\\",\\\"message\\\":\\\"verification_exception\\\\n\\\\tRoot causes:\\\\n\\\\t\\\\tverification_exception: Found 1 problem\\\\nline 1:1: Unknown index [traces-apm*,apm-*,traces-*.otel-*]\\\"}}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:56.600Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"I'm sorry, but it seems like there are no indices matching the pattern \\\"traces-apm*,apm-*,traces-*.otel-*\\\" in your system. Therefore, I'm unable to retrieve the top 5 services by transaction volume. Please ensure that your APM data is being ingested correctly into Elasticsearch.\"\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n</details>\r\n<br/>\r\nCopied conversation after deserializing:\r\n<details>\r\n <summary>Click to expand JSON</summary>\r\n\r\n```json\r\n{\r\n \"title\": \"\",\r\n \"messages\": [\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": {\r\n \"role\": \"system\",\r\n \"content\": \"You are a helpful assistant for Elastic Observability. Your goal is to help the Elastic Observability users to quickly assess what is happening in their observed systems...\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.881Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"Give me examples of questions I can ask here.\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.965Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:27.063Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": { \"scores\": [], \"suggestions\": [] },\r\n \"name\": \"context\",\r\n \"content\": {\r\n \"screen_description\": \"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\n\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\"universal_profiling\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"uptime\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"heartbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_metrics\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"metrics-*,metricbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"alert\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"apm\\\":{\\\"hasData\\\":false,\\\"indices\\\":{\\\"transaction\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"span\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"error\\\":\\\"logs-apm*,apm-*,logs-*.otel-*\\\",\\\"metric\\\":\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"onboarding\\\":\\\"apm-*\\\",\\\"sourcemap\\\":\\\"apm-*\\\"},\\\"status\\\":\\\"success\\\"},\\\"ux\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_logs\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\",\\\"status\\\":\\\"success\\\"}}\",\r\n \"learnings\": []\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:35.140Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"Sure, here are some examples of questions...\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.651Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"What are the top 5 services by transaction volume\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.784Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": { \"scores\": [], \"suggestions\": [] },\r\n \"name\": \"context\",\r\n \"content\": {\r\n \"screen_description\": \"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\n\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\"universal_profiling\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"uptime\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"heartbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_metrics\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"metrics-*,metricbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"alert\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"apm\\\":{\\\"hasData\\\":false,\\\"indices\\\":{\\\"transaction\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"span\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"error\\\":\\\"logs-apm*,apm-*,logs-*.otel-*\\\",\\\"metric\\\":\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"onboarding\\\":\\\"apm-*\\\",\\\"sourcemap\\\":\\\"apm-*\\\"},\\\"status\\\":\\\"success\\\"},\\\"ux\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_logs\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\",\\\"status\\\":\\\"success\\\"}}\",\r\n \"learnings\": []\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.370Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"get_dataset_info\",\r\n \"arguments\": { \"index\": \"traces-apm*,apm-*,traces-*.otel-*\" },\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.379Z\",\r\n \"message\": { \"role\": \"user\", \"name\": \"get_dataset_info\", \"content\": { \"indices\": [], \"fields\": [] } }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.998Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"query\", \"arguments\": {}, \"trigger\": \"assistant\" },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:47.572Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": {\r\n \"keywords\": [\"STATS\", \"SORT\", \"LIMIT\", \"COUNT\"],\r\n \"requestedDocumentation\": {\r\n \"STATS\": \"# STATS ... BY\\n\\nThe `STATS ... BY`...\",\r\n \"SORT\": \"# SORT\\n\\nThe SORT command...\",\r\n \"LIMIT\": \"# LIMIT\\n\\nThe LIMIT command...\",\r\n \"COUNT\": \"# COUNT\\n\\n....\",\r\n \"SYNTAX\": \"# ES|QL Syntax Guide....\",\r\n \"OVERVIEW\": \"## ES|QL Overview\\n\\n### ES|QL....\",\r\n \"OPERATORS\": \"# ES|QL Operators\\n\\nThis document....\"\r\n }\r\n },\r\n \"name\": \"query\",\r\n \"content\": {}\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.481Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"execute_query\",\r\n \"arguments\": {\r\n \"query\": \"FROM traces-apm*,apm-*,traces-*.otel-* | STATS COUNT(*) BY service.name | SORT COUNT(*) DESC | LIMIT 5\"\r\n },\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.619Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"name\": \"execute_query\",\r\n \"content\": {\r\n \"message\": \"The query failed to execute\",\r\n \"error\": {\r\n \"name\": \"ResponseError\",\r\n \"message\": \"verification_exception\\n\\tRoot causes:\\n\\t\\tverification_exception: Found 1 problem\\nline 1:1: Unknown index [traces-apm*,apm-*,traces-*.otel-*]\"\r\n }\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:56.600Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"I'm sorry, but it seems like there are no indices matching the pattern \\\"traces-apm*,apm-*,traces-*.otel-*\\\" in your system. Therefore, I'm unable to retrieve the top 5 services by transaction volume. Please ensure that your APM data is being ingested correctly into Elasticsearch.\"\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n</details>","sha":"e34876aa6809a5ea79a836ce61e94192a4769d59","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","v9.0.0","backport:prev-minor","Team:Obs AI Assistant","ci:project-deploy-observability"],"title":"[Obs AI Assistant] Pass function responses when copying conversation","number":195635,"url":"https://github.com/elastic/kibana/pull/195635","mergeCommit":{"message":"[Obs AI Assistant] Pass function responses when copying conversation (#195635)\n\nCloses https://github.com/elastic/kibana/issues/181216\r\n\r\n## Summary\r\n\r\n### Problem\r\nFunction call arguments and responses are serialized separately.\r\nTherefore, when a conversation is copied, arguments and responses\r\n(`content` and `data`) appear as strings instead of JSON objects. This\r\nmakes it harder to debug.\r\n\r\n### Solution\r\nDeserialize the arguments and responses and include it in the copied\r\nconversation object.\r\n\r\nExample of original copied conversation:\r\n<details>\r\n <summary>Click to expand JSON</summary>\r\n\r\n```json\r\n{\r\n \"title\": \"\",\r\n \"messages\": [\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": {\r\n \"role\": \"system\",\r\n \"content\": \"You are a helpful assistant for Elastic Observability....\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.881Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"Give me examples of questions I can ask here.\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.965Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:27.063Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"scores\\\":[],\\\"suggestions\\\":[]}\",\r\n \"name\": \"context\",\r\n \"content\": \"{\\\"screen_description\\\":\\\"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\\\n\\\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\\\\\"universal_profiling\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"uptime\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"heartbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_metrics\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"metrics-*,metricbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"alert\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"apm\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":{\\\\\\\"transaction\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"span\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"error\\\\\\\":\\\\\\\"logs-apm*,apm-*,logs-*.otel-*\\\\\\\",\\\\\\\"metric\\\\\\\":\\\\\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"onboarding\\\\\\\":\\\\\\\"apm-*\\\\\\\",\\\\\\\"sourcemap\\\\\\\":\\\\\\\"apm-*\\\\\\\"},\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"ux\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_logs\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"}}\\\",\\\"learnings\\\":[]}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:35.140Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"Sure, here are some examples of questions you can ask:\\n\\n1. \\\"What is the average response time for my services?\\\"\\n2. \\\"Show me the error rate for my services.\\\"\\n3. \\\"Are there any anomalies in my system?\\\"\\n4. \\\"What are the top 5 services by transaction volume?\\\"\\n5. \\\"Show me the logs for a specific service.\\\"\\n6. \\\"Are there any alerts in my system?\\\"\\n7. \\\"What is the CPU usage of my hosts?\\\"\\n8. \\\"Show me the network traffic in my system.\\\"\\n9. \\\"What is the disk usage of my hosts?\\\"\\n10. \\\"Show me the memory usage of my containers.\\\"\\n\\nPlease note that the actual questions you can ask depend on the data you have in your system.\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.651Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"What are the top 5 services by transaction volume\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.784Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"scores\\\":[],\\\"suggestions\\\":[]}\",\r\n \"name\": \"context\",\r\n \"content\": \"{\\\"screen_description\\\":\\\"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\\\n\\\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\\\\\"universal_profiling\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"uptime\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"heartbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_metrics\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"metrics-*,metricbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"alert\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"apm\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":{\\\\\\\"transaction\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"span\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"error\\\\\\\":\\\\\\\"logs-apm*,apm-*,logs-*.otel-*\\\\\\\",\\\\\\\"metric\\\\\\\":\\\\\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"onboarding\\\\\\\":\\\\\\\"apm-*\\\\\\\",\\\\\\\"sourcemap\\\\\\\":\\\\\\\"apm-*\\\\\\\"},\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"ux\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_logs\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"}}\\\",\\\"learnings\\\":[]}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.370Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"get_dataset_info\",\r\n \"arguments\": \"{\\n \\\"index\\\": \\\"traces-apm*,apm-*,traces-*.otel-*\\\"\\n}\",\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.379Z\",\r\n \"message\": { \"role\": \"user\", \"name\": \"get_dataset_info\", \"content\": \"{\\\"indices\\\":[],\\\"fields\\\":[]}\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.998Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"query\", \"arguments\": \"{}\", \"trigger\": \"assistant\" },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:47.572Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"keywords\\\":[\\\"STATS\\\",\\\"SORT\\\",\\\"LIMIT\\\",\\\"COUNT\\\"],\\\"requestedDocumentation\\\":{\\\"STATS\\\":\\\"# STATS ... BY\\\\n\\\\nThe `STATS ... BY` command groups rows based on a common value and calculates one or more aggregated values over these grouped rows.\\\\n\\\\n## Syntax\\\\n\\\\n```esql\\\\nSTATS [column1 =] expression1[, ..., [columnN =] expressionN] [BY grouping_expression1[, ..., grouping_expressionN]]\\\\n```\\\\n\\\\n### Parameters\\\\n\\\\n#### columnX\\\\n\\\\nThe name for the aggregated value in the output. If not provided....\"}}\",\r\n \"name\": \"query\",\r\n \"content\": \"{}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.481Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"execute_query\",\r\n \"arguments\": \"{\\\"query\\\":\\\"FROM traces-apm*,apm-*,traces-*.otel-* | STATS COUNT(*) BY service.name | SORT COUNT(*) DESC | LIMIT 5\\\"}\",\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.619Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"name\": \"execute_query\",\r\n \"content\": \"{\\\"message\\\":\\\"The query failed to execute\\\",\\\"error\\\":{\\\"name\\\":\\\"ResponseError\\\",\\\"message\\\":\\\"verification_exception\\\\n\\\\tRoot causes:\\\\n\\\\t\\\\tverification_exception: Found 1 problem\\\\nline 1:1: Unknown index [traces-apm*,apm-*,traces-*.otel-*]\\\"}}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:56.600Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"I'm sorry, but it seems like there are no indices matching the pattern \\\"traces-apm*,apm-*,traces-*.otel-*\\\" in your system. Therefore, I'm unable to retrieve the top 5 services by transaction volume. Please ensure that your APM data is being ingested correctly into Elasticsearch.\"\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n</details>\r\n<br/>\r\nCopied conversation after deserializing:\r\n<details>\r\n <summary>Click to expand JSON</summary>\r\n\r\n```json\r\n{\r\n \"title\": \"\",\r\n \"messages\": [\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": {\r\n \"role\": \"system\",\r\n \"content\": \"You are a helpful assistant for Elastic Observability. Your goal is to help the Elastic Observability users to quickly assess what is happening in their observed systems...\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.881Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"Give me examples of questions I can ask here.\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.965Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:27.063Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": { \"scores\": [], \"suggestions\": [] },\r\n \"name\": \"context\",\r\n \"content\": {\r\n \"screen_description\": \"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\n\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\"universal_profiling\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"uptime\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"heartbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_metrics\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"metrics-*,metricbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"alert\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"apm\\\":{\\\"hasData\\\":false,\\\"indices\\\":{\\\"transaction\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"span\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"error\\\":\\\"logs-apm*,apm-*,logs-*.otel-*\\\",\\\"metric\\\":\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"onboarding\\\":\\\"apm-*\\\",\\\"sourcemap\\\":\\\"apm-*\\\"},\\\"status\\\":\\\"success\\\"},\\\"ux\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_logs\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\",\\\"status\\\":\\\"success\\\"}}\",\r\n \"learnings\": []\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:35.140Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"Sure, here are some examples of questions...\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.651Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"What are the top 5 services by transaction volume\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.784Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": { \"scores\": [], \"suggestions\": [] },\r\n \"name\": \"context\",\r\n \"content\": {\r\n \"screen_description\": \"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\n\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\"universal_profiling\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"uptime\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"heartbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_metrics\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"metrics-*,metricbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"alert\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"apm\\\":{\\\"hasData\\\":false,\\\"indices\\\":{\\\"transaction\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"span\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"error\\\":\\\"logs-apm*,apm-*,logs-*.otel-*\\\",\\\"metric\\\":\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"onboarding\\\":\\\"apm-*\\\",\\\"sourcemap\\\":\\\"apm-*\\\"},\\\"status\\\":\\\"success\\\"},\\\"ux\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_logs\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\",\\\"status\\\":\\\"success\\\"}}\",\r\n \"learnings\": []\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.370Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"get_dataset_info\",\r\n \"arguments\": { \"index\": \"traces-apm*,apm-*,traces-*.otel-*\" },\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.379Z\",\r\n \"message\": { \"role\": \"user\", \"name\": \"get_dataset_info\", \"content\": { \"indices\": [], \"fields\": [] } }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.998Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"query\", \"arguments\": {}, \"trigger\": \"assistant\" },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:47.572Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": {\r\n \"keywords\": [\"STATS\", \"SORT\", \"LIMIT\", \"COUNT\"],\r\n \"requestedDocumentation\": {\r\n \"STATS\": \"# STATS ... BY\\n\\nThe `STATS ... BY`...\",\r\n \"SORT\": \"# SORT\\n\\nThe SORT command...\",\r\n \"LIMIT\": \"# LIMIT\\n\\nThe LIMIT command...\",\r\n \"COUNT\": \"# COUNT\\n\\n....\",\r\n \"SYNTAX\": \"# ES|QL Syntax Guide....\",\r\n \"OVERVIEW\": \"## ES|QL Overview\\n\\n### ES|QL....\",\r\n \"OPERATORS\": \"# ES|QL Operators\\n\\nThis document....\"\r\n }\r\n },\r\n \"name\": \"query\",\r\n \"content\": {}\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.481Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"execute_query\",\r\n \"arguments\": {\r\n \"query\": \"FROM traces-apm*,apm-*,traces-*.otel-* | STATS COUNT(*) BY service.name | SORT COUNT(*) DESC | LIMIT 5\"\r\n },\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.619Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"name\": \"execute_query\",\r\n \"content\": {\r\n \"message\": \"The query failed to execute\",\r\n \"error\": {\r\n \"name\": \"ResponseError\",\r\n \"message\": \"verification_exception\\n\\tRoot causes:\\n\\t\\tverification_exception: Found 1 problem\\nline 1:1: Unknown index [traces-apm*,apm-*,traces-*.otel-*]\"\r\n }\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:56.600Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"I'm sorry, but it seems like there are no indices matching the pattern \\\"traces-apm*,apm-*,traces-*.otel-*\\\" in your system. Therefore, I'm unable to retrieve the top 5 services by transaction volume. Please ensure that your APM data is being ingested correctly into Elasticsearch.\"\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n</details>","sha":"e34876aa6809a5ea79a836ce61e94192a4769d59"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195635","number":195635,"mergeCommit":{"message":"[Obs AI Assistant] Pass function responses when copying conversation (#195635)\n\nCloses https://github.com/elastic/kibana/issues/181216\r\n\r\n## Summary\r\n\r\n### Problem\r\nFunction call arguments and responses are serialized separately.\r\nTherefore, when a conversation is copied, arguments and responses\r\n(`content` and `data`) appear as strings instead of JSON objects. This\r\nmakes it harder to debug.\r\n\r\n### Solution\r\nDeserialize the arguments and responses and include it in the copied\r\nconversation object.\r\n\r\nExample of original copied conversation:\r\n<details>\r\n <summary>Click to expand JSON</summary>\r\n\r\n```json\r\n{\r\n \"title\": \"\",\r\n \"messages\": [\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": {\r\n \"role\": \"system\",\r\n \"content\": \"You are a helpful assistant for Elastic Observability....\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.881Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"Give me examples of questions I can ask here.\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.965Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:27.063Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"scores\\\":[],\\\"suggestions\\\":[]}\",\r\n \"name\": \"context\",\r\n \"content\": \"{\\\"screen_description\\\":\\\"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\\\n\\\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\\\\\"universal_profiling\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"uptime\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"heartbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_metrics\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"metrics-*,metricbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"alert\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"apm\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":{\\\\\\\"transaction\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"span\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"error\\\\\\\":\\\\\\\"logs-apm*,apm-*,logs-*.otel-*\\\\\\\",\\\\\\\"metric\\\\\\\":\\\\\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"onboarding\\\\\\\":\\\\\\\"apm-*\\\\\\\",\\\\\\\"sourcemap\\\\\\\":\\\\\\\"apm-*\\\\\\\"},\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"ux\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_logs\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"}}\\\",\\\"learnings\\\":[]}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:35.140Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"Sure, here are some examples of questions you can ask:\\n\\n1. \\\"What is the average response time for my services?\\\"\\n2. \\\"Show me the error rate for my services.\\\"\\n3. \\\"Are there any anomalies in my system?\\\"\\n4. \\\"What are the top 5 services by transaction volume?\\\"\\n5. \\\"Show me the logs for a specific service.\\\"\\n6. \\\"Are there any alerts in my system?\\\"\\n7. \\\"What is the CPU usage of my hosts?\\\"\\n8. \\\"Show me the network traffic in my system.\\\"\\n9. \\\"What is the disk usage of my hosts?\\\"\\n10. \\\"Show me the memory usage of my containers.\\\"\\n\\nPlease note that the actual questions you can ask depend on the data you have in your system.\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.651Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"What are the top 5 services by transaction volume\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.784Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"scores\\\":[],\\\"suggestions\\\":[]}\",\r\n \"name\": \"context\",\r\n \"content\": \"{\\\"screen_description\\\":\\\"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\\\n\\\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\\\\\"universal_profiling\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"uptime\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"heartbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_metrics\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"metrics-*,metricbeat-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"alert\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"apm\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":{\\\\\\\"transaction\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"span\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*\\\\\\\",\\\\\\\"error\\\\\\\":\\\\\\\"logs-apm*,apm-*,logs-*.otel-*\\\\\\\",\\\\\\\"metric\\\\\\\":\\\\\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"onboarding\\\\\\\":\\\\\\\"apm-*\\\\\\\",\\\\\\\"sourcemap\\\\\\\":\\\\\\\"apm-*\\\\\\\"},\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"ux\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"},\\\\\\\"infra_logs\\\\\\\":{\\\\\\\"hasData\\\\\\\":false,\\\\\\\"indices\\\\\\\":\\\\\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\\\\\",\\\\\\\"status\\\\\\\":\\\\\\\"success\\\\\\\"}}\\\",\\\"learnings\\\":[]}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.370Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"get_dataset_info\",\r\n \"arguments\": \"{\\n \\\"index\\\": \\\"traces-apm*,apm-*,traces-*.otel-*\\\"\\n}\",\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.379Z\",\r\n \"message\": { \"role\": \"user\", \"name\": \"get_dataset_info\", \"content\": \"{\\\"indices\\\":[],\\\"fields\\\":[]}\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.998Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"query\", \"arguments\": \"{}\", \"trigger\": \"assistant\" },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:47.572Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": \"{\\\"keywords\\\":[\\\"STATS\\\",\\\"SORT\\\",\\\"LIMIT\\\",\\\"COUNT\\\"],\\\"requestedDocumentation\\\":{\\\"STATS\\\":\\\"# STATS ... BY\\\\n\\\\nThe `STATS ... BY` command groups rows based on a common value and calculates one or more aggregated values over these grouped rows.\\\\n\\\\n## Syntax\\\\n\\\\n```esql\\\\nSTATS [column1 =] expression1[, ..., [columnN =] expressionN] [BY grouping_expression1[, ..., grouping_expressionN]]\\\\n```\\\\n\\\\n### Parameters\\\\n\\\\n#### columnX\\\\n\\\\nThe name for the aggregated value in the output. If not provided....\"}}\",\r\n \"name\": \"query\",\r\n \"content\": \"{}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.481Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"execute_query\",\r\n \"arguments\": \"{\\\"query\\\":\\\"FROM traces-apm*,apm-*,traces-*.otel-* | STATS COUNT(*) BY service.name | SORT COUNT(*) DESC | LIMIT 5\\\"}\",\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.619Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"name\": \"execute_query\",\r\n \"content\": \"{\\\"message\\\":\\\"The query failed to execute\\\",\\\"error\\\":{\\\"name\\\":\\\"ResponseError\\\",\\\"message\\\":\\\"verification_exception\\\\n\\\\tRoot causes:\\\\n\\\\t\\\\tverification_exception: Found 1 problem\\\\nline 1:1: Unknown index [traces-apm*,apm-*,traces-*.otel-*]\\\"}}\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:56.600Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"I'm sorry, but it seems like there are no indices matching the pattern \\\"traces-apm*,apm-*,traces-*.otel-*\\\" in your system. Therefore, I'm unable to retrieve the top 5 services by transaction volume. Please ensure that your APM data is being ingested correctly into Elasticsearch.\"\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n</details>\r\n<br/>\r\nCopied conversation after deserializing:\r\n<details>\r\n <summary>Click to expand JSON</summary>\r\n\r\n```json\r\n{\r\n \"title\": \"\",\r\n \"messages\": [\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": {\r\n \"role\": \"system\",\r\n \"content\": \"You are a helpful assistant for Elastic Observability. Your goal is to help the Elastic Observability users to quickly assess what is happening in their observed systems...\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.881Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"Give me examples of questions I can ask here.\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:26.965Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:27.063Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": { \"scores\": [], \"suggestions\": [] },\r\n \"name\": \"context\",\r\n \"content\": {\r\n \"screen_description\": \"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\n\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\"universal_profiling\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"uptime\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"heartbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_metrics\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"metrics-*,metricbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"alert\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"apm\\\":{\\\"hasData\\\":false,\\\"indices\\\":{\\\"transaction\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"span\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"error\\\":\\\"logs-apm*,apm-*,logs-*.otel-*\\\",\\\"metric\\\":\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"onboarding\\\":\\\"apm-*\\\",\\\"sourcemap\\\":\\\"apm-*\\\"},\\\"status\\\":\\\"success\\\"},\\\"ux\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_logs\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\",\\\"status\\\":\\\"success\\\"}}\",\r\n \"learnings\": []\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:35.140Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"Sure, here are some examples of questions...\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.651Z\",\r\n \"message\": { \"role\": \"user\", \"content\": \"What are the top 5 services by transaction volume\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.723Z\",\r\n \"message\": { \"role\": \"assistant\", \"function_call\": { \"name\": \"context\", \"trigger\": \"assistant\" }, \"content\": \"\" }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:41.784Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": { \"scores\": [], \"suggestions\": [] },\r\n \"name\": \"context\",\r\n \"content\": {\r\n \"screen_description\": \"The user is looking at http://localhost:5601/kyq/app/observability/overview?rangeFrom=now-15m&rangeTo=now. The current time range is 2024-10-09T13:40:00.288Z - 2024-10-09T13:55:00.288Z.\\n\\nThe user is viewing the Overview page which shows a summary of the following apps: {\\\"universal_profiling\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"uptime\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"heartbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_metrics\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"metrics-*,metricbeat-*\\\",\\\"status\\\":\\\"success\\\"},\\\"alert\\\":{\\\"hasData\\\":false,\\\"status\\\":\\\"success\\\"},\\\"apm\\\":{\\\"hasData\\\":false,\\\"indices\\\":{\\\"transaction\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"span\\\":\\\"traces-apm*,apm-*,traces-*.otel-*\\\",\\\"error\\\":\\\"logs-apm*,apm-*,logs-*.otel-*\\\",\\\"metric\\\":\\\"metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"onboarding\\\":\\\"apm-*\\\",\\\"sourcemap\\\":\\\"apm-*\\\"},\\\"status\\\":\\\"success\\\"},\\\"ux\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"traces-apm*,apm-*,traces-*.otel-*,logs-apm*,apm-*,logs-*.otel-*,metrics-apm*,apm-*,metrics-*.otel-*\\\",\\\"status\\\":\\\"success\\\"},\\\"infra_logs\\\":{\\\"hasData\\\":false,\\\"indices\\\":\\\"logs-*-*,logs-*,filebeat-*,kibana_sample_data_logs*\\\",\\\"status\\\":\\\"success\\\"}}\",\r\n \"learnings\": []\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.370Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"get_dataset_info\",\r\n \"arguments\": { \"index\": \"traces-apm*,apm-*,traces-*.otel-*\" },\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.379Z\",\r\n \"message\": { \"role\": \"user\", \"name\": \"get_dataset_info\", \"content\": { \"indices\": [], \"fields\": [] } }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:43.998Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"query\", \"arguments\": {}, \"trigger\": \"assistant\" },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:47.572Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"data\": {\r\n \"keywords\": [\"STATS\", \"SORT\", \"LIMIT\", \"COUNT\"],\r\n \"requestedDocumentation\": {\r\n \"STATS\": \"# STATS ... BY\\n\\nThe `STATS ... BY`...\",\r\n \"SORT\": \"# SORT\\n\\nThe SORT command...\",\r\n \"LIMIT\": \"# LIMIT\\n\\nThe LIMIT command...\",\r\n \"COUNT\": \"# COUNT\\n\\n....\",\r\n \"SYNTAX\": \"# ES|QL Syntax Guide....\",\r\n \"OVERVIEW\": \"## ES|QL Overview\\n\\n### ES|QL....\",\r\n \"OPERATORS\": \"# ES|QL Operators\\n\\nThis document....\"\r\n }\r\n },\r\n \"name\": \"query\",\r\n \"content\": {}\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.481Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": {\r\n \"name\": \"execute_query\",\r\n \"arguments\": {\r\n \"query\": \"FROM traces-apm*,apm-*,traces-*.otel-* | STATS COUNT(*) BY service.name | SORT COUNT(*) DESC | LIMIT 5\"\r\n },\r\n \"trigger\": \"assistant\"\r\n },\r\n \"content\": \"\"\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:51.619Z\",\r\n \"message\": {\r\n \"role\": \"user\",\r\n \"name\": \"execute_query\",\r\n \"content\": {\r\n \"message\": \"The query failed to execute\",\r\n \"error\": {\r\n \"name\": \"ResponseError\",\r\n \"message\": \"verification_exception\\n\\tRoot causes:\\n\\t\\tverification_exception: Found 1 problem\\nline 1:1: Unknown index [traces-apm*,apm-*,traces-*.otel-*]\"\r\n }\r\n }\r\n }\r\n },\r\n {\r\n \"@timestamp\": \"2024-10-09T13:58:56.600Z\",\r\n \"message\": {\r\n \"role\": \"assistant\",\r\n \"function_call\": { \"name\": \"\", \"arguments\": \"\", \"trigger\": \"assistant\" },\r\n \"content\": \"I'm sorry, but it seems like there are no indices matching the pattern \\\"traces-apm*,apm-*,traces-*.otel-*\\\" in your system. Therefore, I'm unable to retrieve the top 5 services by transaction volume. Please ensure that your APM data is being ingested correctly into Elasticsearch.\"\r\n }\r\n }\r\n ]\r\n}\r\n```\r\n</details>","sha":"e34876aa6809a5ea79a836ce61e94192a4769d59"}}]}] BACKPORT--> Co-authored-by: Viduni Wickramarachchi <viduni.wickramarachchi@elastic.co> |
||
|
cbd40a81e4
|
[8.x] Kb settings followup (#195733) (#196477)
# Backport This will backport the following commits from `main` to `8.x`: - [Kb settings followup (#195733)](https://github.com/elastic/kibana/pull/195733) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Patryk Kopyciński","email":"contact@patrykkopycinski.com"},"sourceCommit":{"committedDate":"2024-10-16T03:41:57Z","message":"Kb settings followup (#195733)","sha":"983a3e5723f7c2ab6e33663e03355f431723b1b5","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["v9.0.0","release_note:feature","Feature:Security Assistant","Team:Security Generative AI","v8.16.0","backport:version"],"title":"Kb settings followup","number":195733,"url":"https://github.com/elastic/kibana/pull/195733","mergeCommit":{"message":"Kb settings followup (#195733)","sha":"983a3e5723f7c2ab6e33663e03355f431723b1b5"}},"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/195733","number":195733,"mergeCommit":{"message":"Kb settings followup (#195733)","sha":"983a3e5723f7c2ab6e33663e03355f431723b1b5"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Patryk Kopyciński <contact@patrykkopycinski.com> |
||
|
1549d38d02
|
[8.x] [Security Solution][DQD] Add historical results tour guide (#196127) (#196456)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security Solution][DQD] Add historical results tour guide (#196127)](https://github.com/elastic/kibana/pull/196127) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Karen Grigoryan","email":"karen.grigoryan@elastic.co"},"sourceCommit":{"committedDate":"2024-10-15T23:18:50Z","message":"[Security Solution][DQD] Add historical results tour guide (#196127)\n\naddresses #195971\r\n\r\nThis PR adds missing new historical results feature tour guide.\r\n\r\n## Tour guide features:\r\n- ability to maintain visual presence while collapsing accordions in\r\nlist-view\r\n- move from list-view to flyout view and back\r\n- seamlessly integrates with existing opening flyout and history tab\r\nfunctionality\r\n\r\n## PR decisions with explanation:\r\n- data-tour-element has been introduced on select elements (like first\r\nactions of each first row) to avoid polluting every single element with\r\ndata-test-subj. This way it's imho specific and semantically more clear\r\nwhat the elements are for.\r\n- early on I tried to control the anchoring with refs but some eui\r\nelements don't allow passing refs like EuiTab, so instead a more simpler\r\nand straightforward approach with dom selectors has been chosen\r\n- localStorage key name has been picked in accordance with other\r\ninstances of usage\r\n`securitySolution.dataQualityDashboard.historicalResultsTour.v8.16.isActive`\r\nthe name includes the full domain + the version when it's introduced.\r\nAnd since this tour step is a single step there is no need to stringify\r\nan object with `isTourActive` in and it's much simpler to just bake the\r\nactivity state into the name and make the value just a boolean.\r\n\r\n## UI Demo\r\n\r\n### Anchor reposition demo (listview + flyout)\r\n\r\nhttps://github.com/user-attachments/assets/0f961c51-0e36-48ca-aab4-bef3b0d1269e\r\n\r\n### List view tour guide try it + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/ca1f5fda-ee02-4a48-827c-91df757a8ddf\r\n\r\n### FlyOut Try It + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/d0801ac3-1ed1-4e64-9d6b-3140b8402bdf\r\n\r\n### Manual history tab selection path + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/34dbb447-2fd6-4dc0-a4f5-682c9c65cc8b\r\n\r\n### Manual open history view path + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/945dd042-fc12-476e-8d23-f48c9ded9f65\r\n\r\n### Dismiss list view tour guide + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/d20d1416-827f-46f2-9161-a3c0a8cbd932\r\n\r\n### Dismiss FlyOut tour guide + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/8f085f59-20a9-49f0-b5b3-959c4719f5cb\r\n\r\n### Serverless empty pattern handling + reposition demo\r\n\r\nhttps://github.com/user-attachments/assets/4af5939e-663c-4439-a3fc-deff2d4de7e4","sha":"c448593d546f6200b0d2d35bce043bef521f41a6","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"],"title":"[Security Solution][DQD] Add historical results tour guide","number":196127,"url":"https://github.com/elastic/kibana/pull/196127","mergeCommit":{"message":"[Security Solution][DQD] Add historical results tour guide (#196127)\n\naddresses #195971\r\n\r\nThis PR adds missing new historical results feature tour guide.\r\n\r\n## Tour guide features:\r\n- ability to maintain visual presence while collapsing accordions in\r\nlist-view\r\n- move from list-view to flyout view and back\r\n- seamlessly integrates with existing opening flyout and history tab\r\nfunctionality\r\n\r\n## PR decisions with explanation:\r\n- data-tour-element has been introduced on select elements (like first\r\nactions of each first row) to avoid polluting every single element with\r\ndata-test-subj. This way it's imho specific and semantically more clear\r\nwhat the elements are for.\r\n- early on I tried to control the anchoring with refs but some eui\r\nelements don't allow passing refs like EuiTab, so instead a more simpler\r\nand straightforward approach with dom selectors has been chosen\r\n- localStorage key name has been picked in accordance with other\r\ninstances of usage\r\n`securitySolution.dataQualityDashboard.historicalResultsTour.v8.16.isActive`\r\nthe name includes the full domain + the version when it's introduced.\r\nAnd since this tour step is a single step there is no need to stringify\r\nan object with `isTourActive` in and it's much simpler to just bake the\r\nactivity state into the name and make the value just a boolean.\r\n\r\n## UI Demo\r\n\r\n### Anchor reposition demo (listview + flyout)\r\n\r\nhttps://github.com/user-attachments/assets/0f961c51-0e36-48ca-aab4-bef3b0d1269e\r\n\r\n### List view tour guide try it + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/ca1f5fda-ee02-4a48-827c-91df757a8ddf\r\n\r\n### FlyOut Try It + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/d0801ac3-1ed1-4e64-9d6b-3140b8402bdf\r\n\r\n### Manual history tab selection path + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/34dbb447-2fd6-4dc0-a4f5-682c9c65cc8b\r\n\r\n### Manual open history view path + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/945dd042-fc12-476e-8d23-f48c9ded9f65\r\n\r\n### Dismiss list view tour guide + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/d20d1416-827f-46f2-9161-a3c0a8cbd932\r\n\r\n### Dismiss FlyOut tour guide + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/8f085f59-20a9-49f0-b5b3-959c4719f5cb\r\n\r\n### Serverless empty pattern handling + reposition demo\r\n\r\nhttps://github.com/user-attachments/assets/4af5939e-663c-4439-a3fc-deff2d4de7e4","sha":"c448593d546f6200b0d2d35bce043bef521f41a6"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/196127","number":196127,"mergeCommit":{"message":"[Security Solution][DQD] Add historical results tour guide (#196127)\n\naddresses #195971\r\n\r\nThis PR adds missing new historical results feature tour guide.\r\n\r\n## Tour guide features:\r\n- ability to maintain visual presence while collapsing accordions in\r\nlist-view\r\n- move from list-view to flyout view and back\r\n- seamlessly integrates with existing opening flyout and history tab\r\nfunctionality\r\n\r\n## PR decisions with explanation:\r\n- data-tour-element has been introduced on select elements (like first\r\nactions of each first row) to avoid polluting every single element with\r\ndata-test-subj. This way it's imho specific and semantically more clear\r\nwhat the elements are for.\r\n- early on I tried to control the anchoring with refs but some eui\r\nelements don't allow passing refs like EuiTab, so instead a more simpler\r\nand straightforward approach with dom selectors has been chosen\r\n- localStorage key name has been picked in accordance with other\r\ninstances of usage\r\n`securitySolution.dataQualityDashboard.historicalResultsTour.v8.16.isActive`\r\nthe name includes the full domain + the version when it's introduced.\r\nAnd since this tour step is a single step there is no need to stringify\r\nan object with `isTourActive` in and it's much simpler to just bake the\r\nactivity state into the name and make the value just a boolean.\r\n\r\n## UI Demo\r\n\r\n### Anchor reposition demo (listview + flyout)\r\n\r\nhttps://github.com/user-attachments/assets/0f961c51-0e36-48ca-aab4-bef3b0d1269e\r\n\r\n### List view tour guide try it + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/ca1f5fda-ee02-4a48-827c-91df757a8ddf\r\n\r\n### FlyOut Try It + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/d0801ac3-1ed1-4e64-9d6b-3140b8402bdf\r\n\r\n### Manual history tab selection path + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/34dbb447-2fd6-4dc0-a4f5-682c9c65cc8b\r\n\r\n### Manual open history view path + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/945dd042-fc12-476e-8d23-f48c9ded9f65\r\n\r\n### Dismiss list view tour guide + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/d20d1416-827f-46f2-9161-a3c0a8cbd932\r\n\r\n### Dismiss FlyOut tour guide + reload demo\r\n\r\nhttps://github.com/user-attachments/assets/8f085f59-20a9-49f0-b5b3-959c4719f5cb\r\n\r\n### Serverless empty pattern handling + reposition demo\r\n\r\nhttps://github.com/user-attachments/assets/4af5939e-663c-4439-a3fc-deff2d4de7e4","sha":"c448593d546f6200b0d2d35bce043bef521f41a6"}}]}] BACKPORT--> Co-authored-by: Karen Grigoryan <karen.grigoryan@elastic.co> |
||
|
e24a6653d2
|
[8.x] [ML] Add control to show or hide empty fields in dropdown in Transform (#195485) (#196451)
# Backport This will backport the following commits from `main` to `8.x`: - [[ML] Add control to show or hide empty fields in dropdown in Transform (#195485)](https://github.com/elastic/kibana/pull/195485) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Quynh Nguyen (Quinn)","email":"43350163+qn895@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-15T22:04:04Z","message":"[ML] Add control to show or hide empty fields in dropdown in Transform (#195485)\n\n## Summary\r\nFollow up of https://github.com/elastic/kibana/pull/186670. This PR adds\r\na new control show or hide empty fields in dropdowns in Transform.\r\n\r\n#### Transform\r\n\r\nPivot transform creation\r\n\r\n\r\nhttps://github.com/user-attachments/assets/35366671-c7a0-4ba1-ae24-ae3d965a2d69\r\n\r\nLatest transform creation\r\n\r\n<img width=\"1473\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/db53e7ed-17d5-44d7-93ab-1d0c5ca22f20\">\r\n\r\n\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"d89f32a6aca0b522c606e5aec668cee5a3267d4a","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement",":ml","Feature:Transforms","v9.0.0","backport:prev-minor","v8.16.0"],"title":"[ML] Add control to show or hide empty fields in dropdown in Transform ","number":195485,"url":"https://github.com/elastic/kibana/pull/195485","mergeCommit":{"message":"[ML] Add control to show or hide empty fields in dropdown in Transform (#195485)\n\n## Summary\r\nFollow up of https://github.com/elastic/kibana/pull/186670. This PR adds\r\na new control show or hide empty fields in dropdowns in Transform.\r\n\r\n#### Transform\r\n\r\nPivot transform creation\r\n\r\n\r\nhttps://github.com/user-attachments/assets/35366671-c7a0-4ba1-ae24-ae3d965a2d69\r\n\r\nLatest transform creation\r\n\r\n<img width=\"1473\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/db53e7ed-17d5-44d7-93ab-1d0c5ca22f20\">\r\n\r\n\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"d89f32a6aca0b522c606e5aec668cee5a3267d4a"}},"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/195485","number":195485,"mergeCommit":{"message":"[ML] Add control to show or hide empty fields in dropdown in Transform (#195485)\n\n## Summary\r\nFollow up of https://github.com/elastic/kibana/pull/186670. This PR adds\r\na new control show or hide empty fields in dropdowns in Transform.\r\n\r\n#### Transform\r\n\r\nPivot transform creation\r\n\r\n\r\nhttps://github.com/user-attachments/assets/35366671-c7a0-4ba1-ae24-ae3d965a2d69\r\n\r\nLatest transform creation\r\n\r\n<img width=\"1473\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/db53e7ed-17d5-44d7-93ab-1d0c5ca22f20\">\r\n\r\n\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"d89f32a6aca0b522c606e5aec668cee5a3267d4a"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Quynh Nguyen (Quinn) <43350163+qn895@users.noreply.github.com> |
||
|
d2e04412a8
|
[8.x] CDR workflow UI counters (#196346)
# Backport This will backport the following commits from `main` to `8.x`: - [CDR workflow UI counters](https://github.com/elastic/kibana/pull/196305) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Ido Cohen","email":"90558359+CohenIdo@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-15T15:16:15Z","message":"CDR workflow UI counters","sha":"489dc1dca3dc7793ebbf147e698834b9e54e3d7f","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Cloud Security","backport:prev-minor"],"title":"CDR workflow UI counters","number":196305,"url":"https://github.com/elastic/kibana/pull/196305","mergeCommit":{"message":"CDR workflow UI counters","sha":"489dc1dca3dc7793ebbf147e698834b9e54e3d7f"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/196305","number":196305,"mergeCommit":{"message":"CDR workflow UI counters","sha":"489dc1dca3dc7793ebbf147e698834b9e54e3d7f"}}]}] BACKPORT--> Co-authored-by: Ido Cohen <90558359+CohenIdo@users.noreply.github.com> |
||
|
e3996ca47a
|
[8.x] [Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements (#195669) (#196334)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements (#195669)](https://github.com/elastic/kibana/pull/195669) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Andrew Macri","email":"andrew.macri@elastic.co"},"sourceCommit":{"committedDate":"2024-10-15T14:39:48Z","message":"[Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements (#195669)\n\n## [Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements\r\n\r\n### Summary\r\n\r\nThis PR improves the Attack discovery user and developer experience with output chunking / refinement, migration to LangGraph, and improvements to evaluations.\r\n\r\nThe improvements were realized by transitioning from directly using lower-level LangChain apis to LangGraph in this PR, and a deeper integration with the evaluation features of LangSmith.\r\n\r\n#### Output chunking\r\n\r\n_Output chunking_ increases the maximum and default number of alerts sent as context, working around the output token limitations of popular large language models (LLMs):\r\n\r\n| | Old | New |\r\n|----------------|-------|-------|\r\n| max alerts | `100` | `500` |\r\n| default alerts | `20` | `200` |\r\n\r\nSee _Output chunking details_ below for more information.\r\n\r\n#### Settings\r\n\r\nA new settings modal makes it possible to configure the number of alerts sent as context directly from the Attack discovery page:\r\n\r\n\r\n\r\n- Previously, users configured this value for Attack discovery via the security assistant Knowledge base settings, as documented [here](https://www.elastic.co/guide/en/security/8.15/attack-discovery.html#attack-discovery-generate-discoveries)\r\n- The new settings modal uses local storage (instead of the previously-shared assistant Knowledge base setting, which is stored in Elasticsearch)\r\n\r\n#### Output refinement\r\n\r\n_Output refinement_ automatically combines related discoveries (that were previously represented as two or more discoveries):\r\n\r\n \r\n\r\n- The `refine` step in the graph diagram above may (for example), combine three discoveries from the `generate` step into two discoveries when they are related\r\n\r\n### Hallucination detection\r\n\r\nNew _hallucination detection_ displays an error in lieu of showing hallucinated output:\r\n\r\n\r\n\r\n- A new tour step was added to the Attack discovery page to share the improvements:\r\n\r\n\r\n\r\n### Summary of improvements for developers\r\n\r\nThe following features improve the developer experience when running evaluations for Attack discovery:\r\n\r\n#### Replay alerts in evaluations\r\n\r\nThis evaluation feature eliminates the need to populate a local environment with alerts to (re)run evaluations:\r\n\r\n \r\n\r\nAlert replay skips the `retrieve_anonymized_alerts` step in the graph, because it uses the `anonymizedAlerts` and `replacements` provided as `Input` in a dataset example. See _Replay alerts in evaluations details_ below for more information.\r\n\r\n#### Override graph state\r\n\r\nOverride graph state via datatset examples to test prompt improvements and edge cases via evaluations:\r\n\r\n \r\n\r\nTo use this feature, add an `overrides` key to the `Input` of a dataset example. See _Override graph state details_ below for more information.\r\n\r\n#### New custom evaluator\r\n\r\nPrior to this PR, an evaluator had to be manually added to each dataset in LangSmith to use an LLM as the judge for correctness.\r\n\r\nThis PR introduces a custom, programmatic evaluator that handles anonymization automatically, and eliminates the need to manually create evaluators in LangSmith. To use it, simply run evaluations from the `Evaluation` tab in settings.\r\n\r\n#### New evaluation settings\r\n\r\nThis PR introduces new settings in the `Evaluation` tab:\r\n\r\n\r\n\r\nNew evaluation settings:\r\n\r\n- `Evaluator model (optional)` - Judge the quality of predictions using a single model. (Default: use the same model as the connector)\r\n\r\nThis new setting is useful when you want to use the same model, e.g. `GPT-4o` to judge the quality of all the models evaluated in an experiment.\r\n\r\n- `Default max alerts` - The default maximum number of alerts to send as context, which may be overridden by the example input\r\n\r\nThis new setting is useful when using the alerts in the local environment to run evaluations. Examples that use the Alerts replay feature will ignore this value, because the alerts in the example `Input` will be used instead.\r\n\r\n#### Directory structure refactoring\r\n\r\n- The server-side directory structure was refactored to consolidate the location of Attack discovery related files\r\n\r\n### Details\r\n\r\nThis section describes some of the improvements above in detail.\r\n\r\n#### Output chunking details\r\n\r\nThe new output chunking feature increases the maximum and default number of alerts that may be sent as context. It achieves this improvement by working around output token limitations.\r\n\r\nLLMs have different limits for the number of tokens accepted as _input_ for requests, and the number of tokens available for _output_ when generating responses.\r\n\r\nToday, the output token limits of most popular models are significantly smaller than the input token limits.\r\n\r\nFor example, at the time of this writing, the Gemini 1.5 Pro model's limits are ([source](https://ai.google.dev/gemini-api/docs/models/gemini)):\r\n\r\n- Input token limit: `2,097,152`\r\n- Output token limit: `8,192`\r\n\r\nAs a result of this relatively smaller output token limit, previous versions of Attack discovery would simply fail when an LLM ran out of output tokens when generating a response. This often happened \"mid sentence\", and resulted in errors or hallucinations being displayed to users.\r\n\r\nThe new output chunking feature detects incomplete responses from the LLM in the `generate` step of the Graph. When an incomplete response is detected, the `generate` step will run again with:\r\n\r\n- The original prompt\r\n- The Alerts provided as context\r\n- The partially generated response\r\n- Instructions to \"continue where you left off\"\r\n\r\nThe `generate` step in the graph will run until one of the following conditions is met:\r\n\r\n- The incomplete response can be successfully parsed\r\n- The maximum number of generation attempts (default: `10`) is reached\r\n- The maximum number of hallucinations detected (default: `5`) is reached\r\n\r\n#### Output refinement details\r\n\r\nThe new output refinement feature automatically combines related discoveries (that were previously represented as two or more discoveries).\r\n\r\nThe new `refine` step in the graph re-submits the discoveries from the `generate` step with a `refinePrompt` to combine related attack discoveries.\r\n\r\nThe `refine` step is subject to the model's output token limits, just like the `generate` step. That means a response to the refine prompt from the LLM may be cut off \"mid\" sentence. To that end:\r\n\r\n- The refine step will re-run until the (same, shared) `maxGenerationAttempts` and `maxHallucinationFailures` limits as the `generate` step are reached\r\n- The maximum number of attempts (default: `10`) is _shared_ with the `generate` step. For example, if it took `7` tries (`generationAttempts`) to complete the `generate` step, the refine `step` will only run up to `3` times.\r\n\r\nThe `refine` step will return _unrefined_ results from the `generate` step when:\r\n\r\n- The `generate` step uses all `10` generation attempts. When this happens, the `refine` step will be skipped, and the unrefined output of the `generate` step will be returned to the user\r\n- If the `refine` step uses all remaining attempts, but fails to produce a refined response, due to output token limitations, or hallucinations in the refined response\r\n\r\n#### Hallucination detection details\r\n\r\nBefore this PR, Attack discovery directly used lower level LangChain APIs to parse responses from the LLM. After this PR, Attack discovery uses LangGraph.\r\n\r\nIn the previous implementation, when Attack discovery received an incomplete response because the output token limits of a model were hit, the LangChain APIs automatically re-submitted the incomplete response in an attempt to \"repair\" it. However, the re-submitted results didn't include all of the original context (i.e. alerts that generated them). The repair process often resulted in hallucinated results being presented to users, especially with some models i.e. `Claude 3.5 Haiku`.\r\n\r\nIn this PR, the `generate` and `refine` steps detect (some) hallucinations. When hallucinations are detected:\r\n\r\n- The current accumulated `generations` or `refinements` are (respectively) discarded, effectively restarting the `generate` or `refine` process\r\n- The `generate` and `refine` steps will be retried until the maximum generation attempts (default: `10`) or hallucinations detected (default: `5`) limits are reached\r\n\r\nHitting the hallucination limit during the `generate` step will result in an error being displayed to the user.\r\n\r\nHitting the hallucination limit during the `refine` step will result in the unrefined discoveries being displayed to the user.\r\n\r\n#### Replay alerts in evaluations details\r\n\r\nAlerts replay makes it possible to re-run evaluations, even when your local deployment has zero alerts.\r\n\r\nThis feature eliminates the chore of populating your local instance with specific alerts for each example.\r\n\r\nEvery example in a dataset may (optionally) specify a different set of alerts.\r\n\r\nAlert replay skips the `retrieve_anonymized_alerts` step in the graph, because it uses the `anonymizedAlerts` and `replacements` provided as `Input` in a dataset example.\r\n\r\nThe following instructions document the process of creating a new LangSmith dataset example that uses the Alerts replay feature:\r\n\r\n1) In Kibana, navigate to Security > Attack discovery\r\n\r\n2) Click `Generate` to generate Attack discoveries\r\n\r\n3) In LangSmith, navigate to Projects > _Your project_\r\n\r\n4) In the `Runs` tab of the LangSmith project, click on the latest `Attack discovery` entry to open the trace\r\n\r\n5) **IMPORTANT**: In the trace, select the **LAST** `ChannelWriteChannelWrite<attackDiscoveries,attackDisc...` entry. The last entry will appear inside the **LAST** `refine` step in the trace, as illustrated by the screenshot below:\r\n\r\n\r\n\r\n6) With the last `ChannelWriteChannelWrite<attackDiscoveries,attackDisc...` entry selected, click `Add to` > `Add to Dataset`\r\n\r\n7) Copy-paste the `Input` to the `Output`, because evaluation Experiments always compare the current run with the `Output` in an example.\r\n\r\n- This step is _always_ required to create a dataset.\r\n- If you don't want to use the Alert replay feature, replace `Input` with an empty object:\r\n\r\n```json\r\n{}\r\n```\r\n\r\n8) Choose an existing dataset, or create a new one\r\n\r\n9) Click the `Submit` button to add the example to the dataset.\r\n\r\nAfter completing the steps above, the dataset is ready to be run in evaluations.\r\n\r\n#### Override graph state details\r\n\r\nWhen a dataset is run in an evaluation (to create Experiments):\r\n\r\n- The (optional) `anonymizedAlerts` and `replacements` provided as `Input` in the example will be replayed, bypassing the `retrieve_anonymized_alerts` step in the graph\r\n- The rest of the properties in `Input` will not be used as inputs to the graph\r\n- In contrast, an empty object `{}` in `Input` means the latest and riskiest alerts in the last 24 hours in the local environment will be queried\r\n\r\nIn addition to the above, you may add an optional `overrides` key in the `Input` of a dataset example to test changes or edge cases. This is useful for evaluating changes without updating the code directly.\r\n\r\nThe `overrides` set the initial state of the graph before it's run in an evaluation.\r\n\r\nThe example `Input` below overrides the prompts used in the `generate` and `refine` steps:\r\n\r\n```json\r\n{\r\n \"overrides\": {\r\n \"refinePrompt\": \"This overrides the refine prompt\",\r\n \"attackDiscoveryPrompt\": \"This overrides the attack discovery prompt\"\r\n }\r\n}\r\n```\r\n\r\nTo use the `overrides` feature in evaluations to set the initial state of the graph:\r\n\r\n1) Create a dataset example, as documented in the _Replay alerts in evaluations details_ section above\r\n\r\n2) In LangSmith, navigate to Datasets & Testing > _Your Dataset_\r\n\r\n3) In the dataset, click the Examples tab\r\n\r\n4) Click an example to open it in the flyout\r\n\r\n5) Click the `Edit` button to edit the example\r\n\r\n6) Add the `overrides` key shown below to the `Input` e.g.:\r\n\r\n```json\r\n{\r\n \"overrides\": {\r\n \"refinePrompt\": \"This overrides the refine prompt\",\r\n \"attackDiscoveryPrompt\": \"This overrides the attack discovery prompt\"\r\n }\r\n}\r\n```\r\n\r\n7) Edit the `overrides` in the example `Input` above to add (or remove) entries that will determine the initial state of the graph.\r\n\r\nAll of the `overides` shown in step 6 are optional. The `refinePrompt` and `attackDiscoveryPrompt` could be removed from the `overrides` example above, and replaced with `maxGenerationAttempts` to test a higher limit.\r\n\r\nAll valid graph state may be specified in `overrides`.","sha":"2c21adb8faafc0016ad7a6591837118f6bdf0907","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","v9.0.0","Team: SecuritySolution","ci:cloud-deploy","ci:cloud-persist-deployment","Team:Security Generative AI","v8.16.0","backport:version"],"title":"[Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements","number":195669,"url":"https://github.com/elastic/kibana/pull/195669","mergeCommit":{"message":"[Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements (#195669)\n\n## [Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements\r\n\r\n### Summary\r\n\r\nThis PR improves the Attack discovery user and developer experience with output chunking / refinement, migration to LangGraph, and improvements to evaluations.\r\n\r\nThe improvements were realized by transitioning from directly using lower-level LangChain apis to LangGraph in this PR, and a deeper integration with the evaluation features of LangSmith.\r\n\r\n#### Output chunking\r\n\r\n_Output chunking_ increases the maximum and default number of alerts sent as context, working around the output token limitations of popular large language models (LLMs):\r\n\r\n| | Old | New |\r\n|----------------|-------|-------|\r\n| max alerts | `100` | `500` |\r\n| default alerts | `20` | `200` |\r\n\r\nSee _Output chunking details_ below for more information.\r\n\r\n#### Settings\r\n\r\nA new settings modal makes it possible to configure the number of alerts sent as context directly from the Attack discovery page:\r\n\r\n\r\n\r\n- Previously, users configured this value for Attack discovery via the security assistant Knowledge base settings, as documented [here](https://www.elastic.co/guide/en/security/8.15/attack-discovery.html#attack-discovery-generate-discoveries)\r\n- The new settings modal uses local storage (instead of the previously-shared assistant Knowledge base setting, which is stored in Elasticsearch)\r\n\r\n#### Output refinement\r\n\r\n_Output refinement_ automatically combines related discoveries (that were previously represented as two or more discoveries):\r\n\r\n \r\n\r\n- The `refine` step in the graph diagram above may (for example), combine three discoveries from the `generate` step into two discoveries when they are related\r\n\r\n### Hallucination detection\r\n\r\nNew _hallucination detection_ displays an error in lieu of showing hallucinated output:\r\n\r\n\r\n\r\n- A new tour step was added to the Attack discovery page to share the improvements:\r\n\r\n\r\n\r\n### Summary of improvements for developers\r\n\r\nThe following features improve the developer experience when running evaluations for Attack discovery:\r\n\r\n#### Replay alerts in evaluations\r\n\r\nThis evaluation feature eliminates the need to populate a local environment with alerts to (re)run evaluations:\r\n\r\n \r\n\r\nAlert replay skips the `retrieve_anonymized_alerts` step in the graph, because it uses the `anonymizedAlerts` and `replacements` provided as `Input` in a dataset example. See _Replay alerts in evaluations details_ below for more information.\r\n\r\n#### Override graph state\r\n\r\nOverride graph state via datatset examples to test prompt improvements and edge cases via evaluations:\r\n\r\n \r\n\r\nTo use this feature, add an `overrides` key to the `Input` of a dataset example. See _Override graph state details_ below for more information.\r\n\r\n#### New custom evaluator\r\n\r\nPrior to this PR, an evaluator had to be manually added to each dataset in LangSmith to use an LLM as the judge for correctness.\r\n\r\nThis PR introduces a custom, programmatic evaluator that handles anonymization automatically, and eliminates the need to manually create evaluators in LangSmith. To use it, simply run evaluations from the `Evaluation` tab in settings.\r\n\r\n#### New evaluation settings\r\n\r\nThis PR introduces new settings in the `Evaluation` tab:\r\n\r\n\r\n\r\nNew evaluation settings:\r\n\r\n- `Evaluator model (optional)` - Judge the quality of predictions using a single model. (Default: use the same model as the connector)\r\n\r\nThis new setting is useful when you want to use the same model, e.g. `GPT-4o` to judge the quality of all the models evaluated in an experiment.\r\n\r\n- `Default max alerts` - The default maximum number of alerts to send as context, which may be overridden by the example input\r\n\r\nThis new setting is useful when using the alerts in the local environment to run evaluations. Examples that use the Alerts replay feature will ignore this value, because the alerts in the example `Input` will be used instead.\r\n\r\n#### Directory structure refactoring\r\n\r\n- The server-side directory structure was refactored to consolidate the location of Attack discovery related files\r\n\r\n### Details\r\n\r\nThis section describes some of the improvements above in detail.\r\n\r\n#### Output chunking details\r\n\r\nThe new output chunking feature increases the maximum and default number of alerts that may be sent as context. It achieves this improvement by working around output token limitations.\r\n\r\nLLMs have different limits for the number of tokens accepted as _input_ for requests, and the number of tokens available for _output_ when generating responses.\r\n\r\nToday, the output token limits of most popular models are significantly smaller than the input token limits.\r\n\r\nFor example, at the time of this writing, the Gemini 1.5 Pro model's limits are ([source](https://ai.google.dev/gemini-api/docs/models/gemini)):\r\n\r\n- Input token limit: `2,097,152`\r\n- Output token limit: `8,192`\r\n\r\nAs a result of this relatively smaller output token limit, previous versions of Attack discovery would simply fail when an LLM ran out of output tokens when generating a response. This often happened \"mid sentence\", and resulted in errors or hallucinations being displayed to users.\r\n\r\nThe new output chunking feature detects incomplete responses from the LLM in the `generate` step of the Graph. When an incomplete response is detected, the `generate` step will run again with:\r\n\r\n- The original prompt\r\n- The Alerts provided as context\r\n- The partially generated response\r\n- Instructions to \"continue where you left off\"\r\n\r\nThe `generate` step in the graph will run until one of the following conditions is met:\r\n\r\n- The incomplete response can be successfully parsed\r\n- The maximum number of generation attempts (default: `10`) is reached\r\n- The maximum number of hallucinations detected (default: `5`) is reached\r\n\r\n#### Output refinement details\r\n\r\nThe new output refinement feature automatically combines related discoveries (that were previously represented as two or more discoveries).\r\n\r\nThe new `refine` step in the graph re-submits the discoveries from the `generate` step with a `refinePrompt` to combine related attack discoveries.\r\n\r\nThe `refine` step is subject to the model's output token limits, just like the `generate` step. That means a response to the refine prompt from the LLM may be cut off \"mid\" sentence. To that end:\r\n\r\n- The refine step will re-run until the (same, shared) `maxGenerationAttempts` and `maxHallucinationFailures` limits as the `generate` step are reached\r\n- The maximum number of attempts (default: `10`) is _shared_ with the `generate` step. For example, if it took `7` tries (`generationAttempts`) to complete the `generate` step, the refine `step` will only run up to `3` times.\r\n\r\nThe `refine` step will return _unrefined_ results from the `generate` step when:\r\n\r\n- The `generate` step uses all `10` generation attempts. When this happens, the `refine` step will be skipped, and the unrefined output of the `generate` step will be returned to the user\r\n- If the `refine` step uses all remaining attempts, but fails to produce a refined response, due to output token limitations, or hallucinations in the refined response\r\n\r\n#### Hallucination detection details\r\n\r\nBefore this PR, Attack discovery directly used lower level LangChain APIs to parse responses from the LLM. After this PR, Attack discovery uses LangGraph.\r\n\r\nIn the previous implementation, when Attack discovery received an incomplete response because the output token limits of a model were hit, the LangChain APIs automatically re-submitted the incomplete response in an attempt to \"repair\" it. However, the re-submitted results didn't include all of the original context (i.e. alerts that generated them). The repair process often resulted in hallucinated results being presented to users, especially with some models i.e. `Claude 3.5 Haiku`.\r\n\r\nIn this PR, the `generate` and `refine` steps detect (some) hallucinations. When hallucinations are detected:\r\n\r\n- The current accumulated `generations` or `refinements` are (respectively) discarded, effectively restarting the `generate` or `refine` process\r\n- The `generate` and `refine` steps will be retried until the maximum generation attempts (default: `10`) or hallucinations detected (default: `5`) limits are reached\r\n\r\nHitting the hallucination limit during the `generate` step will result in an error being displayed to the user.\r\n\r\nHitting the hallucination limit during the `refine` step will result in the unrefined discoveries being displayed to the user.\r\n\r\n#### Replay alerts in evaluations details\r\n\r\nAlerts replay makes it possible to re-run evaluations, even when your local deployment has zero alerts.\r\n\r\nThis feature eliminates the chore of populating your local instance with specific alerts for each example.\r\n\r\nEvery example in a dataset may (optionally) specify a different set of alerts.\r\n\r\nAlert replay skips the `retrieve_anonymized_alerts` step in the graph, because it uses the `anonymizedAlerts` and `replacements` provided as `Input` in a dataset example.\r\n\r\nThe following instructions document the process of creating a new LangSmith dataset example that uses the Alerts replay feature:\r\n\r\n1) In Kibana, navigate to Security > Attack discovery\r\n\r\n2) Click `Generate` to generate Attack discoveries\r\n\r\n3) In LangSmith, navigate to Projects > _Your project_\r\n\r\n4) In the `Runs` tab of the LangSmith project, click on the latest `Attack discovery` entry to open the trace\r\n\r\n5) **IMPORTANT**: In the trace, select the **LAST** `ChannelWriteChannelWrite<attackDiscoveries,attackDisc...` entry. The last entry will appear inside the **LAST** `refine` step in the trace, as illustrated by the screenshot below:\r\n\r\n\r\n\r\n6) With the last `ChannelWriteChannelWrite<attackDiscoveries,attackDisc...` entry selected, click `Add to` > `Add to Dataset`\r\n\r\n7) Copy-paste the `Input` to the `Output`, because evaluation Experiments always compare the current run with the `Output` in an example.\r\n\r\n- This step is _always_ required to create a dataset.\r\n- If you don't want to use the Alert replay feature, replace `Input` with an empty object:\r\n\r\n```json\r\n{}\r\n```\r\n\r\n8) Choose an existing dataset, or create a new one\r\n\r\n9) Click the `Submit` button to add the example to the dataset.\r\n\r\nAfter completing the steps above, the dataset is ready to be run in evaluations.\r\n\r\n#### Override graph state details\r\n\r\nWhen a dataset is run in an evaluation (to create Experiments):\r\n\r\n- The (optional) `anonymizedAlerts` and `replacements` provided as `Input` in the example will be replayed, bypassing the `retrieve_anonymized_alerts` step in the graph\r\n- The rest of the properties in `Input` will not be used as inputs to the graph\r\n- In contrast, an empty object `{}` in `Input` means the latest and riskiest alerts in the last 24 hours in the local environment will be queried\r\n\r\nIn addition to the above, you may add an optional `overrides` key in the `Input` of a dataset example to test changes or edge cases. This is useful for evaluating changes without updating the code directly.\r\n\r\nThe `overrides` set the initial state of the graph before it's run in an evaluation.\r\n\r\nThe example `Input` below overrides the prompts used in the `generate` and `refine` steps:\r\n\r\n```json\r\n{\r\n \"overrides\": {\r\n \"refinePrompt\": \"This overrides the refine prompt\",\r\n \"attackDiscoveryPrompt\": \"This overrides the attack discovery prompt\"\r\n }\r\n}\r\n```\r\n\r\nTo use the `overrides` feature in evaluations to set the initial state of the graph:\r\n\r\n1) Create a dataset example, as documented in the _Replay alerts in evaluations details_ section above\r\n\r\n2) In LangSmith, navigate to Datasets & Testing > _Your Dataset_\r\n\r\n3) In the dataset, click the Examples tab\r\n\r\n4) Click an example to open it in the flyout\r\n\r\n5) Click the `Edit` button to edit the example\r\n\r\n6) Add the `overrides` key shown below to the `Input` e.g.:\r\n\r\n```json\r\n{\r\n \"overrides\": {\r\n \"refinePrompt\": \"This overrides the refine prompt\",\r\n \"attackDiscoveryPrompt\": \"This overrides the attack discovery prompt\"\r\n }\r\n}\r\n```\r\n\r\n7) Edit the `overrides` in the example `Input` above to add (or remove) entries that will determine the initial state of the graph.\r\n\r\nAll of the `overides` shown in step 6 are optional. The `refinePrompt` and `attackDiscoveryPrompt` could be removed from the `overrides` example above, and replaced with `maxGenerationAttempts` to test a higher limit.\r\n\r\nAll valid graph state may be specified in `overrides`.","sha":"2c21adb8faafc0016ad7a6591837118f6bdf0907"}},"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/195669","number":195669,"mergeCommit":{"message":"[Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements (#195669)\n\n## [Security Solution] [Attack discovery] Output chunking / refinement, LangGraph migration, and evaluation improvements\r\n\r\n### Summary\r\n\r\nThis PR improves the Attack discovery user and developer experience with output chunking / refinement, migration to LangGraph, and improvements to evaluations.\r\n\r\nThe improvements were realized by transitioning from directly using lower-level LangChain apis to LangGraph in this PR, and a deeper integration with the evaluation features of LangSmith.\r\n\r\n#### Output chunking\r\n\r\n_Output chunking_ increases the maximum and default number of alerts sent as context, working around the output token limitations of popular large language models (LLMs):\r\n\r\n| | Old | New |\r\n|----------------|-------|-------|\r\n| max alerts | `100` | `500` |\r\n| default alerts | `20` | `200` |\r\n\r\nSee _Output chunking details_ below for more information.\r\n\r\n#### Settings\r\n\r\nA new settings modal makes it possible to configure the number of alerts sent as context directly from the Attack discovery page:\r\n\r\n\r\n\r\n- Previously, users configured this value for Attack discovery via the security assistant Knowledge base settings, as documented [here](https://www.elastic.co/guide/en/security/8.15/attack-discovery.html#attack-discovery-generate-discoveries)\r\n- The new settings modal uses local storage (instead of the previously-shared assistant Knowledge base setting, which is stored in Elasticsearch)\r\n\r\n#### Output refinement\r\n\r\n_Output refinement_ automatically combines related discoveries (that were previously represented as two or more discoveries):\r\n\r\n \r\n\r\n- The `refine` step in the graph diagram above may (for example), combine three discoveries from the `generate` step into two discoveries when they are related\r\n\r\n### Hallucination detection\r\n\r\nNew _hallucination detection_ displays an error in lieu of showing hallucinated output:\r\n\r\n\r\n\r\n- A new tour step was added to the Attack discovery page to share the improvements:\r\n\r\n\r\n\r\n### Summary of improvements for developers\r\n\r\nThe following features improve the developer experience when running evaluations for Attack discovery:\r\n\r\n#### Replay alerts in evaluations\r\n\r\nThis evaluation feature eliminates the need to populate a local environment with alerts to (re)run evaluations:\r\n\r\n \r\n\r\nAlert replay skips the `retrieve_anonymized_alerts` step in the graph, because it uses the `anonymizedAlerts` and `replacements` provided as `Input` in a dataset example. See _Replay alerts in evaluations details_ below for more information.\r\n\r\n#### Override graph state\r\n\r\nOverride graph state via datatset examples to test prompt improvements and edge cases via evaluations:\r\n\r\n \r\n\r\nTo use this feature, add an `overrides` key to the `Input` of a dataset example. See _Override graph state details_ below for more information.\r\n\r\n#### New custom evaluator\r\n\r\nPrior to this PR, an evaluator had to be manually added to each dataset in LangSmith to use an LLM as the judge for correctness.\r\n\r\nThis PR introduces a custom, programmatic evaluator that handles anonymization automatically, and eliminates the need to manually create evaluators in LangSmith. To use it, simply run evaluations from the `Evaluation` tab in settings.\r\n\r\n#### New evaluation settings\r\n\r\nThis PR introduces new settings in the `Evaluation` tab:\r\n\r\n\r\n\r\nNew evaluation settings:\r\n\r\n- `Evaluator model (optional)` - Judge the quality of predictions using a single model. (Default: use the same model as the connector)\r\n\r\nThis new setting is useful when you want to use the same model, e.g. `GPT-4o` to judge the quality of all the models evaluated in an experiment.\r\n\r\n- `Default max alerts` - The default maximum number of alerts to send as context, which may be overridden by the example input\r\n\r\nThis new setting is useful when using the alerts in the local environment to run evaluations. Examples that use the Alerts replay feature will ignore this value, because the alerts in the example `Input` will be used instead.\r\n\r\n#### Directory structure refactoring\r\n\r\n- The server-side directory structure was refactored to consolidate the location of Attack discovery related files\r\n\r\n### Details\r\n\r\nThis section describes some of the improvements above in detail.\r\n\r\n#### Output chunking details\r\n\r\nThe new output chunking feature increases the maximum and default number of alerts that may be sent as context. It achieves this improvement by working around output token limitations.\r\n\r\nLLMs have different limits for the number of tokens accepted as _input_ for requests, and the number of tokens available for _output_ when generating responses.\r\n\r\nToday, the output token limits of most popular models are significantly smaller than the input token limits.\r\n\r\nFor example, at the time of this writing, the Gemini 1.5 Pro model's limits are ([source](https://ai.google.dev/gemini-api/docs/models/gemini)):\r\n\r\n- Input token limit: `2,097,152`\r\n- Output token limit: `8,192`\r\n\r\nAs a result of this relatively smaller output token limit, previous versions of Attack discovery would simply fail when an LLM ran out of output tokens when generating a response. This often happened \"mid sentence\", and resulted in errors or hallucinations being displayed to users.\r\n\r\nThe new output chunking feature detects incomplete responses from the LLM in the `generate` step of the Graph. When an incomplete response is detected, the `generate` step will run again with:\r\n\r\n- The original prompt\r\n- The Alerts provided as context\r\n- The partially generated response\r\n- Instructions to \"continue where you left off\"\r\n\r\nThe `generate` step in the graph will run until one of the following conditions is met:\r\n\r\n- The incomplete response can be successfully parsed\r\n- The maximum number of generation attempts (default: `10`) is reached\r\n- The maximum number of hallucinations detected (default: `5`) is reached\r\n\r\n#### Output refinement details\r\n\r\nThe new output refinement feature automatically combines related discoveries (that were previously represented as two or more discoveries).\r\n\r\nThe new `refine` step in the graph re-submits the discoveries from the `generate` step with a `refinePrompt` to combine related attack discoveries.\r\n\r\nThe `refine` step is subject to the model's output token limits, just like the `generate` step. That means a response to the refine prompt from the LLM may be cut off \"mid\" sentence. To that end:\r\n\r\n- The refine step will re-run until the (same, shared) `maxGenerationAttempts` and `maxHallucinationFailures` limits as the `generate` step are reached\r\n- The maximum number of attempts (default: `10`) is _shared_ with the `generate` step. For example, if it took `7` tries (`generationAttempts`) to complete the `generate` step, the refine `step` will only run up to `3` times.\r\n\r\nThe `refine` step will return _unrefined_ results from the `generate` step when:\r\n\r\n- The `generate` step uses all `10` generation attempts. When this happens, the `refine` step will be skipped, and the unrefined output of the `generate` step will be returned to the user\r\n- If the `refine` step uses all remaining attempts, but fails to produce a refined response, due to output token limitations, or hallucinations in the refined response\r\n\r\n#### Hallucination detection details\r\n\r\nBefore this PR, Attack discovery directly used lower level LangChain APIs to parse responses from the LLM. After this PR, Attack discovery uses LangGraph.\r\n\r\nIn the previous implementation, when Attack discovery received an incomplete response because the output token limits of a model were hit, the LangChain APIs automatically re-submitted the incomplete response in an attempt to \"repair\" it. However, the re-submitted results didn't include all of the original context (i.e. alerts that generated them). The repair process often resulted in hallucinated results being presented to users, especially with some models i.e. `Claude 3.5 Haiku`.\r\n\r\nIn this PR, the `generate` and `refine` steps detect (some) hallucinations. When hallucinations are detected:\r\n\r\n- The current accumulated `generations` or `refinements` are (respectively) discarded, effectively restarting the `generate` or `refine` process\r\n- The `generate` and `refine` steps will be retried until the maximum generation attempts (default: `10`) or hallucinations detected (default: `5`) limits are reached\r\n\r\nHitting the hallucination limit during the `generate` step will result in an error being displayed to the user.\r\n\r\nHitting the hallucination limit during the `refine` step will result in the unrefined discoveries being displayed to the user.\r\n\r\n#### Replay alerts in evaluations details\r\n\r\nAlerts replay makes it possible to re-run evaluations, even when your local deployment has zero alerts.\r\n\r\nThis feature eliminates the chore of populating your local instance with specific alerts for each example.\r\n\r\nEvery example in a dataset may (optionally) specify a different set of alerts.\r\n\r\nAlert replay skips the `retrieve_anonymized_alerts` step in the graph, because it uses the `anonymizedAlerts` and `replacements` provided as `Input` in a dataset example.\r\n\r\nThe following instructions document the process of creating a new LangSmith dataset example that uses the Alerts replay feature:\r\n\r\n1) In Kibana, navigate to Security > Attack discovery\r\n\r\n2) Click `Generate` to generate Attack discoveries\r\n\r\n3) In LangSmith, navigate to Projects > _Your project_\r\n\r\n4) In the `Runs` tab of the LangSmith project, click on the latest `Attack discovery` entry to open the trace\r\n\r\n5) **IMPORTANT**: In the trace, select the **LAST** `ChannelWriteChannelWrite<attackDiscoveries,attackDisc...` entry. The last entry will appear inside the **LAST** `refine` step in the trace, as illustrated by the screenshot below:\r\n\r\n\r\n\r\n6) With the last `ChannelWriteChannelWrite<attackDiscoveries,attackDisc...` entry selected, click `Add to` > `Add to Dataset`\r\n\r\n7) Copy-paste the `Input` to the `Output`, because evaluation Experiments always compare the current run with the `Output` in an example.\r\n\r\n- This step is _always_ required to create a dataset.\r\n- If you don't want to use the Alert replay feature, replace `Input` with an empty object:\r\n\r\n```json\r\n{}\r\n```\r\n\r\n8) Choose an existing dataset, or create a new one\r\n\r\n9) Click the `Submit` button to add the example to the dataset.\r\n\r\nAfter completing the steps above, the dataset is ready to be run in evaluations.\r\n\r\n#### Override graph state details\r\n\r\nWhen a dataset is run in an evaluation (to create Experiments):\r\n\r\n- The (optional) `anonymizedAlerts` and `replacements` provided as `Input` in the example will be replayed, bypassing the `retrieve_anonymized_alerts` step in the graph\r\n- The rest of the properties in `Input` will not be used as inputs to the graph\r\n- In contrast, an empty object `{}` in `Input` means the latest and riskiest alerts in the last 24 hours in the local environment will be queried\r\n\r\nIn addition to the above, you may add an optional `overrides` key in the `Input` of a dataset example to test changes or edge cases. This is useful for evaluating changes without updating the code directly.\r\n\r\nThe `overrides` set the initial state of the graph before it's run in an evaluation.\r\n\r\nThe example `Input` below overrides the prompts used in the `generate` and `refine` steps:\r\n\r\n```json\r\n{\r\n \"overrides\": {\r\n \"refinePrompt\": \"This overrides the refine prompt\",\r\n \"attackDiscoveryPrompt\": \"This overrides the attack discovery prompt\"\r\n }\r\n}\r\n```\r\n\r\nTo use the `overrides` feature in evaluations to set the initial state of the graph:\r\n\r\n1) Create a dataset example, as documented in the _Replay alerts in evaluations details_ section above\r\n\r\n2) In LangSmith, navigate to Datasets & Testing > _Your Dataset_\r\n\r\n3) In the dataset, click the Examples tab\r\n\r\n4) Click an example to open it in the flyout\r\n\r\n5) Click the `Edit` button to edit the example\r\n\r\n6) Add the `overrides` key shown below to the `Input` e.g.:\r\n\r\n```json\r\n{\r\n \"overrides\": {\r\n \"refinePrompt\": \"This overrides the refine prompt\",\r\n \"attackDiscoveryPrompt\": \"This overrides the attack discovery prompt\"\r\n }\r\n}\r\n```\r\n\r\n7) Edit the `overrides` in the example `Input` above to add (or remove) entries that will determine the initial state of the graph.\r\n\r\nAll of the `overides` shown in step 6 are optional. The `refinePrompt` and `attackDiscoveryPrompt` could be removed from the `overrides` example above, and replaced with `maxGenerationAttempts` to test a higher limit.\r\n\r\nAll valid graph state may be specified in `overrides`.","sha":"2c21adb8faafc0016ad7a6591837118f6bdf0907"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Andrew Macri <andrew.macri@elastic.co> |
||
|
a8cec560a6
|
[8.x] [Onboarding] UX Feedback - Slight Tweaks to search detail (#194873) (#196314)
# Backport This will backport the following commits from `main` to `8.x`: - [[Onboarding] UX Feedback - Slight Tweaks to search detail (#194873)](https://github.com/elastic/kibana/pull/194873) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Michael DeFazio","email":"michael.defazio@elastic.co"},"sourceCommit":{"committedDate":"2024-10-15T13:33:31Z","message":"[Onboarding] UX Feedback - Slight Tweaks to search detail (#194873)\n\nTweaks to search details\r\n\r\n\r\nhttps://github.com/user-attachments/assets/a583a9d9-b059-4ce1-beaa-f7c733feabf0\r\n\r\n---------\r\n\r\nCo-authored-by: Joseph McElroy <joseph.mcelroy@elastic.co>\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"545f5a42f7af27bad33e272aa67eb59ac27e04ce","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Search","backport:prev-minor"],"title":"[Onboarding] UX Feedback - Slight Tweaks to search detail","number":194873,"url":"https://github.com/elastic/kibana/pull/194873","mergeCommit":{"message":"[Onboarding] UX Feedback - Slight Tweaks to search detail (#194873)\n\nTweaks to search details\r\n\r\n\r\nhttps://github.com/user-attachments/assets/a583a9d9-b059-4ce1-beaa-f7c733feabf0\r\n\r\n---------\r\n\r\nCo-authored-by: Joseph McElroy <joseph.mcelroy@elastic.co>\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"545f5a42f7af27bad33e272aa67eb59ac27e04ce"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/194873","number":194873,"mergeCommit":{"message":"[Onboarding] UX Feedback - Slight Tweaks to search detail (#194873)\n\nTweaks to search details\r\n\r\n\r\nhttps://github.com/user-attachments/assets/a583a9d9-b059-4ce1-beaa-f7c733feabf0\r\n\r\n---------\r\n\r\nCo-authored-by: Joseph McElroy <joseph.mcelroy@elastic.co>\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"545f5a42f7af27bad33e272aa67eb59ac27e04ce"}}]}] BACKPORT--> Co-authored-by: Michael DeFazio <michael.defazio@elastic.co> |
||
|
c04b25b9ee
|
[8.x] [Inventory][ECO] Show alerts for entities (#195250) (#196288)
# Backport This will backport the following commits from `main` to `8.x`: - [[Inventory][ECO] Show alerts for entities (#195250)](https://github.com/elastic/kibana/pull/195250) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Katerina","email":"aikaterini.patticha@elastic.co"},"sourceCommit":{"committedDate":"2024-10-15T11:51:34Z","message":"[Inventory][ECO] Show alerts for entities (#195250)\n\n## Summary\r\n\r\nShow alerts related to entities\r\n\r\nclose https://github.com/elastic/kibana/issues/194381 \r\n\r\n### Checklist\r\n\r\n- change default sorting from last seen to alertsCount\r\n- when alertsCount is not available server side sorting fallbacks to\r\nlast seen\r\n- [Change app route from /app/observability/inventory to\r\n/app/inventory]( |
||
|
06d98dc490
|
[8.x] [Cloud Security] Refactoring cloud-security-posture packages' folder structure (#196008) (#196267)
# Backport This will backport the following commits from `main` to `8.x`: - [[Cloud Security] Refactoring cloud-security-posture packages' folder structure (#196008)](https://github.com/elastic/kibana/pull/196008) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Kfir Peled","email":"61654899+kfirpeled@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-14T14:43:08Z","message":"[Cloud Security] Refactoring cloud-security-posture packages' folder structure (#196008)\n\n## Summary\r\n\r\nOrganized the team's packages under the same root folder\r\n\r\n```\r\n \"@kbn/cloud-security-posture\": \"link:x-pack/packages/cloud_security_posture/public\",\r\n \"@kbn/cloud-security-posture-common\": \"link:x-pack/packages/kbn-cloud-security-posture/common\",\r\n \"@kbn/cloud-security-posture-graph\": \"link:x-pack/packages/kbn-cloud-security-posture/graph\",\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"96eff23f50f68a161b85d6d05309fa3ea6a287b4","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor"],"number":196008,"url":"https://github.com/elastic/kibana/pull/196008","mergeCommit":{"message":"[Cloud Security] Refactoring cloud-security-posture packages' folder structure (#196008)\n\n## Summary\r\n\r\nOrganized the team's packages under the same root folder\r\n\r\n```\r\n \"@kbn/cloud-security-posture\": \"link:x-pack/packages/cloud_security_posture/public\",\r\n \"@kbn/cloud-security-posture-common\": \"link:x-pack/packages/kbn-cloud-security-posture/common\",\r\n \"@kbn/cloud-security-posture-graph\": \"link:x-pack/packages/kbn-cloud-security-posture/graph\",\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"96eff23f50f68a161b85d6d05309fa3ea6a287b4"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/196008","number":196008,"mergeCommit":{"message":"[Cloud Security] Refactoring cloud-security-posture packages' folder structure (#196008)\n\n## Summary\r\n\r\nOrganized the team's packages under the same root folder\r\n\r\n```\r\n \"@kbn/cloud-security-posture\": \"link:x-pack/packages/cloud_security_posture/public\",\r\n \"@kbn/cloud-security-posture-common\": \"link:x-pack/packages/kbn-cloud-security-posture/common\",\r\n \"@kbn/cloud-security-posture-graph\": \"link:x-pack/packages/kbn-cloud-security-posture/graph\",\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"96eff23f50f68a161b85d6d05309fa3ea6a287b4"}}]}] BACKPORT--> |
||
|
ba5a8fc816
|
[8.x] [APM][Otel] Use `fields` instead of `_source` on APM queries (#195242) (#196265)
# Backport This will backport the following commits from `main` to `8.x`: - [[APM][Otel] Use `fields` instead of `_source` on APM queries (#195242)](https://github.com/elastic/kibana/pull/195242) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Carlos Crespo","email":"crespocarlos@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-15T09:38:44Z","message":"[APM][Otel] Use `fields` instead of `_source` on APM queries (#195242)\n\ncloses https://github.com/elastic/kibana/issues/192606\r\n\r\n## Summary\r\n\r\nv2 based on the work done in this PR\r\nhttps://github.com/elastic/kibana/pull/192608 and the suggestion from\r\nDario https://github.com/elastic/kibana/pull/194424\r\n\r\nThis PR replaces the _source usage in APM queries with fields to support\r\nOtel data. The idea is to get rid of existing UI errors we have and make\r\nsure that otel data is shown correctly in the UI.\r\n\r\nOne way to check it is using the [e2e\r\nPoC](https://github.com/elastic/otel-apm-e2e-poc/blob/main/README.md).\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>\r\nCo-authored-by: Jenny <dzheni.pavlova@elastic.co>","sha":"7235ed0425100bbf04ff157d0af7980875473c99","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","v9.0.0","apm","apm:opentelemetry","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-infra_services"],"title":"[APM][Otel] Use `fields` instead of `_source` on APM queries","number":195242,"url":"https://github.com/elastic/kibana/pull/195242","mergeCommit":{"message":"[APM][Otel] Use `fields` instead of `_source` on APM queries (#195242)\n\ncloses https://github.com/elastic/kibana/issues/192606\r\n\r\n## Summary\r\n\r\nv2 based on the work done in this PR\r\nhttps://github.com/elastic/kibana/pull/192608 and the suggestion from\r\nDario https://github.com/elastic/kibana/pull/194424\r\n\r\nThis PR replaces the _source usage in APM queries with fields to support\r\nOtel data. The idea is to get rid of existing UI errors we have and make\r\nsure that otel data is shown correctly in the UI.\r\n\r\nOne way to check it is using the [e2e\r\nPoC](https://github.com/elastic/otel-apm-e2e-poc/blob/main/README.md).\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>\r\nCo-authored-by: Jenny <dzheni.pavlova@elastic.co>","sha":"7235ed0425100bbf04ff157d0af7980875473c99"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195242","number":195242,"mergeCommit":{"message":"[APM][Otel] Use `fields` instead of `_source` on APM queries (#195242)\n\ncloses https://github.com/elastic/kibana/issues/192606\r\n\r\n## Summary\r\n\r\nv2 based on the work done in this PR\r\nhttps://github.com/elastic/kibana/pull/192608 and the suggestion from\r\nDario https://github.com/elastic/kibana/pull/194424\r\n\r\nThis PR replaces the _source usage in APM queries with fields to support\r\nOtel data. The idea is to get rid of existing UI errors we have and make\r\nsure that otel data is shown correctly in the UI.\r\n\r\nOne way to check it is using the [e2e\r\nPoC](https://github.com/elastic/otel-apm-e2e-poc/blob/main/README.md).\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>\r\nCo-authored-by: Jenny <dzheni.pavlova@elastic.co>","sha":"7235ed0425100bbf04ff157d0af7980875473c99"}}]}] BACKPORT--> Co-authored-by: Carlos Crespo <crespocarlos@users.noreply.github.com> |
||
|
5a67e4d2e1
|
[8.x] Update dependency @types/lodash to ^4.17.10 (main) (#194739) (#196234)
# Backport This will backport the following commits from `main` to `8.x`: - [Update dependency @types/lodash to ^4.17.10 (main) (#194739)](https://github.com/elastic/kibana/pull/194739) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"elastic-renovate-prod[bot]","email":"174716857+elastic-renovate-prod[bot]@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-15T06:21:03Z","message":"Update dependency @types/lodash to ^4.17.10 (main) (#194739)","sha":"563910b672b6dbe4f9e7931e36ec41e674fe8eb3","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","Feature:ExpressionLanguage","release_note:skip","💝community","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-infra_services","Team:obs-ux-management"],"title":"Update dependency @types/lodash to ^4.17.10 (main)","number":194739,"url":"https://github.com/elastic/kibana/pull/194739","mergeCommit":{"message":"Update dependency @types/lodash to ^4.17.10 (main) (#194739)","sha":"563910b672b6dbe4f9e7931e36ec41e674fe8eb3"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/194739","number":194739,"mergeCommit":{"message":"Update dependency @types/lodash to ^4.17.10 (main) (#194739)","sha":"563910b672b6dbe4f9e7931e36ec41e674fe8eb3"}}]}] BACKPORT--> Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com> |
||
|
d63d72664d
|
[8.x] feat: allow plugins to deprecate and replace features and feature privileges (#186800) (#196204)
# Backport This will backport the following commits from `main` to `8.x`: - [feat: allow plugins to deprecate and replace features and feature privileges (#186800)](https://github.com/elastic/kibana/pull/186800) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Aleh Zasypkin","email":"aleh.zasypkin@elastic.co"},"sourceCommit":{"committedDate":"2024-10-14T19:40:59Z","message":"feat: allow plugins to deprecate and replace features and feature privileges (#186800)\n\n## Summary\r\n\r\nThis change is the implementation of the `Kibana Privilege Migrations`\r\nproposal/RFC and provides a framework that allows developers to replace\r\nan existing feature with a new one that has the desired configuration\r\nwhile teaching the platform how the privileges of the deprecated feature\r\ncan be represented by non-deprecated ones. This approach avoids\r\nintroducing breaking changes for users who still rely on the deprecated\r\nprivileges in their existing roles and any automation.\r\n\r\nAmong the use cases the framework is supposed to handle, the most common\r\nare the following:\r\n\r\n* Changing a feature ID from `Alpha` to `Beta`\r\n* Splitting a feature `Alpha` into two features, `Beta` and `Gamma`\r\n* Moving a capability between privileges within a feature (top-level or\r\nsub-feature)\r\n* Consolidating capabilities across independent features\r\n\r\n## Scope\r\n\r\nThis PR includes only the core functionality proposed in the RFC and\r\nmost of the necessary guardrails (tests, early validations, etc.) to\r\nhelp engineers start planning and implementing their migrations as soon\r\nas possible. The following functionality will be added in follow-ups or\r\nonce we collect enough feedback:\r\n\r\n* Telemetry\r\n* Developer documentation\r\n* UI enhancements (highlighting roles with deprecated privileges and\r\nmanual migration actions)\r\n\r\n## Framework\r\n\r\nThe steps below use a scenario where a feature `Alpha` should be split\r\ninto two other features `Beta` and `Gamma` as an example.\r\n\r\n### Step 1: Create new features with the desired privileges\r\n\r\nFirst of all, define new feature or features with the desired\r\nconfiguration as you'd do before. There are no constraints here.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_beta',\r\n name: 'Feature Beta',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_gamma',\r\n name: 'Feature Gamma',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n // Note that Feature Gamma, unlike Features Alpha and Beta doesn't provide any API access tags\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_2'] },\r\n ui: ['ui_read'],\r\n // Note that Feature Gamma, unlike Features Alpha and Beta doesn't provide any API access tags\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n\r\n</details>\r\n\r\n### Step 2: Mark existing feature as deprecated\r\n\r\nOnce a feature is marked as deprecated, it should essentially be treated\r\nas frozen for backward compatibility reasons. Deprecated features will\r\nno longer be available through the Kibana role management UI and will be\r\nreplaced with non-deprecated privileges.\r\n\r\nDeprecated privileges will still be accepted if the role is created or\r\nupdated via the Kibana role management APIs to avoid disrupting existing\r\nuser automation.\r\n\r\nTo avoid breaking existing roles that reference privileges provided by\r\nthe deprecated features, Kibana will continue registering these\r\nprivileges as Elasticsearch application privileges.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n // This is a new `KibanaFeature` property available during feature registration.\r\n deprecated: {\r\n // User-facing justification for privilege deprecation that we can display\r\n // to the user when we ask them to perform role migration.\r\n notice: i18n.translate('xpack.security...', {\r\n defaultMessage: \"Feature Alpha is deprecated, refer to {link}...\",\r\n values: { link: docLinks.links.security.deprecatedFeatureAlpha },\r\n })\r\n },\r\n // Feature id should stay unchanged, and it's not possible to reuse it.\r\n id: 'feature_alpha',\r\n name: 'Feature Alpha (DEPRECATED)',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1', 'saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1', 'saved_object_2'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n</details>\r\n\r\n### Step 3: Map deprecated feature’s privileges to the privileges of the\r\nnon-deprecated features\r\n\r\nThe important requirement for a successful migration from a deprecated\r\nfeature to a new feature or features is that it should be possible to\r\nexpress **any combination** of the deprecated feature and sub-feature\r\nprivileges with the feature or sub-feature privileges of non-deprecated\r\nfeatures. This way, while editing a role with deprecated feature\r\nprivileges in the UI, the admin will be interacting with new privileges\r\nas if they were creating a new role from scratch, maintaining\r\nconsistency.\r\n\r\nThe relationship between the privileges of the deprecated feature and\r\nthe privileges of the features that are supposed to replace them is\r\nexpressed with a new `replacedBy` property available on the privileges\r\nof the deprecated feature.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n // This is a new `KibanaFeature` property available during feature registration.\r\n deprecated: {\r\n // User-facing justification for privilege deprecation that we can display\r\n // to the user when we ask them to perform role migration.\r\n notice: i18n.translate('xpack.security...', {\r\n defaultMessage: \"Feature Alpha is deprecated, refer to {link}...\",\r\n values: { link: docLinks.links.security.deprecatedFeatureAlpha },\r\n })\r\n },\r\n // Feature id should stay unchanged, and it's not possible to reuse it.\r\n id: 'feature_alpha',\r\n name: 'Feature Alpha (DEPRECATED)',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1', 'saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['all'] },\r\n { feature: 'feature_gamma', privileges: ['all'] },\r\n ],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1', 'saved_object_2'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['read'] },\r\n { feature: 'feature_gamma', privileges: ['read'] },\r\n\t],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n\r\n</details>\r\n\r\n### Step 4: Adjust the code to rely only on new, non-deprecated features\r\n\r\nSpecial care should be taken if the replacement privileges cannot reuse\r\nthe API access tags from the deprecated privileges and introduce new\r\ntags that will be applied to the same API endpoints. In this case,\r\ndevelopers should replace the API access tags of the deprecated\r\nprivileges with the corresponding tags provided by the replacement\r\nprivileges. This is necessary because API endpoints can only be accessed\r\nif the user privileges cover all the tags listed in the API endpoint\r\ndefinition, and without these changes, existing roles referencing\r\ndeprecated privileges won’t be able to access those endpoints.\r\n\r\nThe UI capabilities are handled slightly differently because they are\r\nalways prefixed with the feature ID. When migrating to new features with\r\nnew IDs, the code that interacts with UI capabilities will be updated to\r\nuse these new feature IDs.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\n// BEFORE deprecation/migration\r\n// 1. Feature Alpha defition (not deprecated yet)\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_alpha',\r\n privileges: {\r\n all: {\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 2. Route protected by `all` privilege of the Feature Alpha\r\nrouter.post(\r\n { path: '/api/domain/my_api', options: { tags: ['access:api_all'] } },\r\n async (_context, request, response) => {}\r\n);\r\n\r\n// AFTER deprecation/migration\r\n// 1. Feature Alpha defition (deprecated, with updated API tags)\r\ndeps.features.registerKibanaFeature({\r\n deprecated: …,\r\n id: 'feature_alpha',\r\n privileges: {\r\n all: {\r\n api: ['api_all_v2'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['all'] },\r\n ],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 2. Feature Beta defition (new)\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_beta',\r\n privileges: {\r\n all: {\r\n api: ['api_all_v2'],\r\n … omitted for brevity …\r\n }\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 3. Route protected by `all` privilege of the Feature Alpha OR Feature Beta\r\nrouter.post(\r\n { path: '/api/domain/my_api', options: { tags: ['access:api_all_v2'] } },\r\n async (_context, request, response) => {}\r\n);\r\n\r\n----\r\n\r\n// ❌ Old client-side code (supports only deprecated privileges)\r\nif (capabilities.feature_alpha.ui_all) {\r\n … omitted for brevity …\r\n}\r\n\r\n// ✅ New client-side code (will work for **both** new and deprecated privileges)\r\nif (capabilities.feature_beta.ui_all) {\r\n … omitted for brevity …\r\n}\r\n```\r\n</details>\r\n\r\n## How to test\r\n\r\nThe code introduces a set of API integration tests that are designed to\r\nvalidate whether the privilege mapping between deprecated and\r\nreplacement privileges maintains backward compatibility.\r\n\r\nYou can run the test server with the following config to register a\r\nnumber of [example deprecated\r\nfeatures](https://github.com/elastic/kibana/pull/186800/files#diff-d887981d43bbe30cda039340b906b0fa7649ba80230be4de8eda326036f10f6fR20-R49)(`x-pack/test/security_api_integration/plugins/features_provider/server/index.ts`)\r\nand the features that replace them, to see the framework in action:\r\n\r\n```bash\r\nnode scripts/functional_tests_server.js --config x-pack/test/security_api_integration/features.config.ts\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"cb2112cae51d5f69b9e47ebfde66cfacb2a6719b","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Security","release_note:skip","Feature:Security/Authorization","v9.0.0","backport:prev-minor","v8.16.0"],"number":186800,"url":"https://github.com/elastic/kibana/pull/186800","mergeCommit":{"message":"feat: allow plugins to deprecate and replace features and feature privileges (#186800)\n\n## Summary\r\n\r\nThis change is the implementation of the `Kibana Privilege Migrations`\r\nproposal/RFC and provides a framework that allows developers to replace\r\nan existing feature with a new one that has the desired configuration\r\nwhile teaching the platform how the privileges of the deprecated feature\r\ncan be represented by non-deprecated ones. This approach avoids\r\nintroducing breaking changes for users who still rely on the deprecated\r\nprivileges in their existing roles and any automation.\r\n\r\nAmong the use cases the framework is supposed to handle, the most common\r\nare the following:\r\n\r\n* Changing a feature ID from `Alpha` to `Beta`\r\n* Splitting a feature `Alpha` into two features, `Beta` and `Gamma`\r\n* Moving a capability between privileges within a feature (top-level or\r\nsub-feature)\r\n* Consolidating capabilities across independent features\r\n\r\n## Scope\r\n\r\nThis PR includes only the core functionality proposed in the RFC and\r\nmost of the necessary guardrails (tests, early validations, etc.) to\r\nhelp engineers start planning and implementing their migrations as soon\r\nas possible. The following functionality will be added in follow-ups or\r\nonce we collect enough feedback:\r\n\r\n* Telemetry\r\n* Developer documentation\r\n* UI enhancements (highlighting roles with deprecated privileges and\r\nmanual migration actions)\r\n\r\n## Framework\r\n\r\nThe steps below use a scenario where a feature `Alpha` should be split\r\ninto two other features `Beta` and `Gamma` as an example.\r\n\r\n### Step 1: Create new features with the desired privileges\r\n\r\nFirst of all, define new feature or features with the desired\r\nconfiguration as you'd do before. There are no constraints here.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_beta',\r\n name: 'Feature Beta',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_gamma',\r\n name: 'Feature Gamma',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n // Note that Feature Gamma, unlike Features Alpha and Beta doesn't provide any API access tags\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_2'] },\r\n ui: ['ui_read'],\r\n // Note that Feature Gamma, unlike Features Alpha and Beta doesn't provide any API access tags\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n\r\n</details>\r\n\r\n### Step 2: Mark existing feature as deprecated\r\n\r\nOnce a feature is marked as deprecated, it should essentially be treated\r\nas frozen for backward compatibility reasons. Deprecated features will\r\nno longer be available through the Kibana role management UI and will be\r\nreplaced with non-deprecated privileges.\r\n\r\nDeprecated privileges will still be accepted if the role is created or\r\nupdated via the Kibana role management APIs to avoid disrupting existing\r\nuser automation.\r\n\r\nTo avoid breaking existing roles that reference privileges provided by\r\nthe deprecated features, Kibana will continue registering these\r\nprivileges as Elasticsearch application privileges.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n // This is a new `KibanaFeature` property available during feature registration.\r\n deprecated: {\r\n // User-facing justification for privilege deprecation that we can display\r\n // to the user when we ask them to perform role migration.\r\n notice: i18n.translate('xpack.security...', {\r\n defaultMessage: \"Feature Alpha is deprecated, refer to {link}...\",\r\n values: { link: docLinks.links.security.deprecatedFeatureAlpha },\r\n })\r\n },\r\n // Feature id should stay unchanged, and it's not possible to reuse it.\r\n id: 'feature_alpha',\r\n name: 'Feature Alpha (DEPRECATED)',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1', 'saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1', 'saved_object_2'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n</details>\r\n\r\n### Step 3: Map deprecated feature’s privileges to the privileges of the\r\nnon-deprecated features\r\n\r\nThe important requirement for a successful migration from a deprecated\r\nfeature to a new feature or features is that it should be possible to\r\nexpress **any combination** of the deprecated feature and sub-feature\r\nprivileges with the feature or sub-feature privileges of non-deprecated\r\nfeatures. This way, while editing a role with deprecated feature\r\nprivileges in the UI, the admin will be interacting with new privileges\r\nas if they were creating a new role from scratch, maintaining\r\nconsistency.\r\n\r\nThe relationship between the privileges of the deprecated feature and\r\nthe privileges of the features that are supposed to replace them is\r\nexpressed with a new `replacedBy` property available on the privileges\r\nof the deprecated feature.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n // This is a new `KibanaFeature` property available during feature registration.\r\n deprecated: {\r\n // User-facing justification for privilege deprecation that we can display\r\n // to the user when we ask them to perform role migration.\r\n notice: i18n.translate('xpack.security...', {\r\n defaultMessage: \"Feature Alpha is deprecated, refer to {link}...\",\r\n values: { link: docLinks.links.security.deprecatedFeatureAlpha },\r\n })\r\n },\r\n // Feature id should stay unchanged, and it's not possible to reuse it.\r\n id: 'feature_alpha',\r\n name: 'Feature Alpha (DEPRECATED)',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1', 'saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['all'] },\r\n { feature: 'feature_gamma', privileges: ['all'] },\r\n ],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1', 'saved_object_2'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['read'] },\r\n { feature: 'feature_gamma', privileges: ['read'] },\r\n\t],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n\r\n</details>\r\n\r\n### Step 4: Adjust the code to rely only on new, non-deprecated features\r\n\r\nSpecial care should be taken if the replacement privileges cannot reuse\r\nthe API access tags from the deprecated privileges and introduce new\r\ntags that will be applied to the same API endpoints. In this case,\r\ndevelopers should replace the API access tags of the deprecated\r\nprivileges with the corresponding tags provided by the replacement\r\nprivileges. This is necessary because API endpoints can only be accessed\r\nif the user privileges cover all the tags listed in the API endpoint\r\ndefinition, and without these changes, existing roles referencing\r\ndeprecated privileges won’t be able to access those endpoints.\r\n\r\nThe UI capabilities are handled slightly differently because they are\r\nalways prefixed with the feature ID. When migrating to new features with\r\nnew IDs, the code that interacts with UI capabilities will be updated to\r\nuse these new feature IDs.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\n// BEFORE deprecation/migration\r\n// 1. Feature Alpha defition (not deprecated yet)\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_alpha',\r\n privileges: {\r\n all: {\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 2. Route protected by `all` privilege of the Feature Alpha\r\nrouter.post(\r\n { path: '/api/domain/my_api', options: { tags: ['access:api_all'] } },\r\n async (_context, request, response) => {}\r\n);\r\n\r\n// AFTER deprecation/migration\r\n// 1. Feature Alpha defition (deprecated, with updated API tags)\r\ndeps.features.registerKibanaFeature({\r\n deprecated: …,\r\n id: 'feature_alpha',\r\n privileges: {\r\n all: {\r\n api: ['api_all_v2'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['all'] },\r\n ],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 2. Feature Beta defition (new)\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_beta',\r\n privileges: {\r\n all: {\r\n api: ['api_all_v2'],\r\n … omitted for brevity …\r\n }\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 3. Route protected by `all` privilege of the Feature Alpha OR Feature Beta\r\nrouter.post(\r\n { path: '/api/domain/my_api', options: { tags: ['access:api_all_v2'] } },\r\n async (_context, request, response) => {}\r\n);\r\n\r\n----\r\n\r\n// ❌ Old client-side code (supports only deprecated privileges)\r\nif (capabilities.feature_alpha.ui_all) {\r\n … omitted for brevity …\r\n}\r\n\r\n// ✅ New client-side code (will work for **both** new and deprecated privileges)\r\nif (capabilities.feature_beta.ui_all) {\r\n … omitted for brevity …\r\n}\r\n```\r\n</details>\r\n\r\n## How to test\r\n\r\nThe code introduces a set of API integration tests that are designed to\r\nvalidate whether the privilege mapping between deprecated and\r\nreplacement privileges maintains backward compatibility.\r\n\r\nYou can run the test server with the following config to register a\r\nnumber of [example deprecated\r\nfeatures](https://github.com/elastic/kibana/pull/186800/files#diff-d887981d43bbe30cda039340b906b0fa7649ba80230be4de8eda326036f10f6fR20-R49)(`x-pack/test/security_api_integration/plugins/features_provider/server/index.ts`)\r\nand the features that replace them, to see the framework in action:\r\n\r\n```bash\r\nnode scripts/functional_tests_server.js --config x-pack/test/security_api_integration/features.config.ts\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"cb2112cae51d5f69b9e47ebfde66cfacb2a6719b"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/186800","number":186800,"mergeCommit":{"message":"feat: allow plugins to deprecate and replace features and feature privileges (#186800)\n\n## Summary\r\n\r\nThis change is the implementation of the `Kibana Privilege Migrations`\r\nproposal/RFC and provides a framework that allows developers to replace\r\nan existing feature with a new one that has the desired configuration\r\nwhile teaching the platform how the privileges of the deprecated feature\r\ncan be represented by non-deprecated ones. This approach avoids\r\nintroducing breaking changes for users who still rely on the deprecated\r\nprivileges in their existing roles and any automation.\r\n\r\nAmong the use cases the framework is supposed to handle, the most common\r\nare the following:\r\n\r\n* Changing a feature ID from `Alpha` to `Beta`\r\n* Splitting a feature `Alpha` into two features, `Beta` and `Gamma`\r\n* Moving a capability between privileges within a feature (top-level or\r\nsub-feature)\r\n* Consolidating capabilities across independent features\r\n\r\n## Scope\r\n\r\nThis PR includes only the core functionality proposed in the RFC and\r\nmost of the necessary guardrails (tests, early validations, etc.) to\r\nhelp engineers start planning and implementing their migrations as soon\r\nas possible. The following functionality will be added in follow-ups or\r\nonce we collect enough feedback:\r\n\r\n* Telemetry\r\n* Developer documentation\r\n* UI enhancements (highlighting roles with deprecated privileges and\r\nmanual migration actions)\r\n\r\n## Framework\r\n\r\nThe steps below use a scenario where a feature `Alpha` should be split\r\ninto two other features `Beta` and `Gamma` as an example.\r\n\r\n### Step 1: Create new features with the desired privileges\r\n\r\nFirst of all, define new feature or features with the desired\r\nconfiguration as you'd do before. There are no constraints here.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_beta',\r\n name: 'Feature Beta',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_gamma',\r\n name: 'Feature Gamma',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n // Note that Feature Gamma, unlike Features Alpha and Beta doesn't provide any API access tags\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_2'] },\r\n ui: ['ui_read'],\r\n // Note that Feature Gamma, unlike Features Alpha and Beta doesn't provide any API access tags\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n\r\n</details>\r\n\r\n### Step 2: Mark existing feature as deprecated\r\n\r\nOnce a feature is marked as deprecated, it should essentially be treated\r\nas frozen for backward compatibility reasons. Deprecated features will\r\nno longer be available through the Kibana role management UI and will be\r\nreplaced with non-deprecated privileges.\r\n\r\nDeprecated privileges will still be accepted if the role is created or\r\nupdated via the Kibana role management APIs to avoid disrupting existing\r\nuser automation.\r\n\r\nTo avoid breaking existing roles that reference privileges provided by\r\nthe deprecated features, Kibana will continue registering these\r\nprivileges as Elasticsearch application privileges.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n // This is a new `KibanaFeature` property available during feature registration.\r\n deprecated: {\r\n // User-facing justification for privilege deprecation that we can display\r\n // to the user when we ask them to perform role migration.\r\n notice: i18n.translate('xpack.security...', {\r\n defaultMessage: \"Feature Alpha is deprecated, refer to {link}...\",\r\n values: { link: docLinks.links.security.deprecatedFeatureAlpha },\r\n })\r\n },\r\n // Feature id should stay unchanged, and it's not possible to reuse it.\r\n id: 'feature_alpha',\r\n name: 'Feature Alpha (DEPRECATED)',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1', 'saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1', 'saved_object_2'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n</details>\r\n\r\n### Step 3: Map deprecated feature’s privileges to the privileges of the\r\nnon-deprecated features\r\n\r\nThe important requirement for a successful migration from a deprecated\r\nfeature to a new feature or features is that it should be possible to\r\nexpress **any combination** of the deprecated feature and sub-feature\r\nprivileges with the feature or sub-feature privileges of non-deprecated\r\nfeatures. This way, while editing a role with deprecated feature\r\nprivileges in the UI, the admin will be interacting with new privileges\r\nas if they were creating a new role from scratch, maintaining\r\nconsistency.\r\n\r\nThe relationship between the privileges of the deprecated feature and\r\nthe privileges of the features that are supposed to replace them is\r\nexpressed with a new `replacedBy` property available on the privileges\r\nof the deprecated feature.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\ndeps.features.registerKibanaFeature({\r\n // This is a new `KibanaFeature` property available during feature registration.\r\n deprecated: {\r\n // User-facing justification for privilege deprecation that we can display\r\n // to the user when we ask them to perform role migration.\r\n notice: i18n.translate('xpack.security...', {\r\n defaultMessage: \"Feature Alpha is deprecated, refer to {link}...\",\r\n values: { link: docLinks.links.security.deprecatedFeatureAlpha },\r\n })\r\n },\r\n // Feature id should stay unchanged, and it's not possible to reuse it.\r\n id: 'feature_alpha',\r\n name: 'Feature Alpha (DEPRECATED)',\r\n privileges: {\r\n all: {\r\n savedObject: { all: ['saved_object_1', 'saved_object_2'], read: [] },\r\n ui: ['ui_all'],\r\n api: ['api_all'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['all'] },\r\n { feature: 'feature_gamma', privileges: ['all'] },\r\n ],\r\n … omitted for brevity …\r\n },\r\n read: {\r\n savedObject: { all: [], read: ['saved_object_1', 'saved_object_2'] },\r\n ui: ['ui_read'],\r\n api: ['api_read'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['read'] },\r\n { feature: 'feature_gamma', privileges: ['read'] },\r\n\t],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n```\r\n\r\n</details>\r\n\r\n### Step 4: Adjust the code to rely only on new, non-deprecated features\r\n\r\nSpecial care should be taken if the replacement privileges cannot reuse\r\nthe API access tags from the deprecated privileges and introduce new\r\ntags that will be applied to the same API endpoints. In this case,\r\ndevelopers should replace the API access tags of the deprecated\r\nprivileges with the corresponding tags provided by the replacement\r\nprivileges. This is necessary because API endpoints can only be accessed\r\nif the user privileges cover all the tags listed in the API endpoint\r\ndefinition, and without these changes, existing roles referencing\r\ndeprecated privileges won’t be able to access those endpoints.\r\n\r\nThe UI capabilities are handled slightly differently because they are\r\nalways prefixed with the feature ID. When migrating to new features with\r\nnew IDs, the code that interacts with UI capabilities will be updated to\r\nuse these new feature IDs.\r\n\r\n<details>\r\n\r\n<summary>Click to see the code</summary>\r\n\r\n```ts\r\n// BEFORE deprecation/migration\r\n// 1. Feature Alpha defition (not deprecated yet)\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_alpha',\r\n privileges: {\r\n all: {\r\n api: ['api_all'],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 2. Route protected by `all` privilege of the Feature Alpha\r\nrouter.post(\r\n { path: '/api/domain/my_api', options: { tags: ['access:api_all'] } },\r\n async (_context, request, response) => {}\r\n);\r\n\r\n// AFTER deprecation/migration\r\n// 1. Feature Alpha defition (deprecated, with updated API tags)\r\ndeps.features.registerKibanaFeature({\r\n deprecated: …,\r\n id: 'feature_alpha',\r\n privileges: {\r\n all: {\r\n api: ['api_all_v2'],\r\n replacedBy: [\r\n { feature: 'feature_beta', privileges: ['all'] },\r\n ],\r\n … omitted for brevity …\r\n },\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 2. Feature Beta defition (new)\r\ndeps.features.registerKibanaFeature({\r\n id: 'feature_beta',\r\n privileges: {\r\n all: {\r\n api: ['api_all_v2'],\r\n … omitted for brevity …\r\n }\r\n },\r\n … omitted for brevity …\r\n});\r\n\r\n// 3. Route protected by `all` privilege of the Feature Alpha OR Feature Beta\r\nrouter.post(\r\n { path: '/api/domain/my_api', options: { tags: ['access:api_all_v2'] } },\r\n async (_context, request, response) => {}\r\n);\r\n\r\n----\r\n\r\n// ❌ Old client-side code (supports only deprecated privileges)\r\nif (capabilities.feature_alpha.ui_all) {\r\n … omitted for brevity …\r\n}\r\n\r\n// ✅ New client-side code (will work for **both** new and deprecated privileges)\r\nif (capabilities.feature_beta.ui_all) {\r\n … omitted for brevity …\r\n}\r\n```\r\n</details>\r\n\r\n## How to test\r\n\r\nThe code introduces a set of API integration tests that are designed to\r\nvalidate whether the privilege mapping between deprecated and\r\nreplacement privileges maintains backward compatibility.\r\n\r\nYou can run the test server with the following config to register a\r\nnumber of [example deprecated\r\nfeatures](https://github.com/elastic/kibana/pull/186800/files#diff-d887981d43bbe30cda039340b906b0fa7649ba80230be4de8eda326036f10f6fR20-R49)(`x-pack/test/security_api_integration/plugins/features_provider/server/index.ts`)\r\nand the features that replace them, to see the framework in action:\r\n\r\n```bash\r\nnode scripts/functional_tests_server.js --config x-pack/test/security_api_integration/features.config.ts\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"cb2112cae51d5f69b9e47ebfde66cfacb2a6719b"}},{"branch":"8.x","label":"v8.16.0","labelRegex":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> |
||
|
abfed861e6
|
[8.x] [KB] create @kbn/product-doc-artifact-builder package (#193847) (#196206)
# Backport This will backport the following commits from `main` to `8.x`: - [[KB] create `@kbn/product-doc-artifact-builder` package (#193847)](https://github.com/elastic/kibana/pull/193847) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Pierre Gayvallet","email":"pierre.gayvallet@elastic.co"},"sourceCommit":{"committedDate":"2024-10-07T12:21:09Z","message":"[KB] create `@kbn/product-doc-artifact-builder` package (#193847)\n\n## Summary\r\n\r\nRelated https://github.com/elastic/kibana/issues/193473\r\n\r\nAdd initial implementation of the knowledge base artifact builder. This\r\nPR only introduces the builder script, it doesn't do anything about\r\nautomation.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"1ab1add68e15b4a227209952c6ab69b0f96ca456","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport missing","v9.0.0","backport:prev-minor","v8.16.0","Team:AI Infra"],"number":193847,"url":"https://github.com/elastic/kibana/pull/193847","mergeCommit":{"message":"[KB] create `@kbn/product-doc-artifact-builder` package (#193847)\n\n## Summary\r\n\r\nRelated https://github.com/elastic/kibana/issues/193473\r\n\r\nAdd initial implementation of the knowledge base artifact builder. This\r\nPR only introduces the builder script, it doesn't do anything about\r\nautomation.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"1ab1add68e15b4a227209952c6ab69b0f96ca456"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/193847","number":193847,"mergeCommit":{"message":"[KB] create `@kbn/product-doc-artifact-builder` package (#193847)\n\n## Summary\r\n\r\nRelated https://github.com/elastic/kibana/issues/193473\r\n\r\nAdd initial implementation of the knowledge base artifact builder. This\r\nPR only introduces the builder script, it doesn't do anything about\r\nautomation.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"1ab1add68e15b4a227209952c6ab69b0f96ca456"}},{"branch":"8.x","label":"v8.16.0","labelRegex":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> |
||
|
65cff56aa4
|
[8.x] [Security Assistant] Fix error handling on new chat (#195507) (#196215)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security Assistant] Fix error handling on new chat (#195507)](https://github.com/elastic/kibana/pull/195507) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Steph Milovic","email":"stephanie.milovic@elastic.co"},"sourceCommit":{"committedDate":"2024-10-14T22:10:43Z","message":"[Security Assistant] Fix error handling on new chat (#195507)","sha":"a15940d9b939dbf29f74dbde28a2a543b8849cc1","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team: SecuritySolution","backport:prev-minor","Team:Security Generative AI","v8.16.0"],"title":"[Security Assistant] Fix error handling on new chat","number":195507,"url":"https://github.com/elastic/kibana/pull/195507","mergeCommit":{"message":"[Security Assistant] Fix error handling on new chat (#195507)","sha":"a15940d9b939dbf29f74dbde28a2a543b8849cc1"}},"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/195507","number":195507,"mergeCommit":{"message":"[Security Assistant] Fix error handling on new chat (#195507)","sha":"a15940d9b939dbf29f74dbde28a2a543b8849cc1"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Steph Milovic <stephanie.milovic@elastic.co> |
||
|
df849c5431
|
[8.x] [ML] Adds ability to toggle visibility for empty fields when choosing an aggregation or field in Anomaly detection, data frame analytics (#186670) (#196180)
# Backport This will backport the following commits from `main` to `8.x`: - [[ML] Adds ability to toggle visibility for empty fields when choosing an aggregation or field in Anomaly detection, data frame analytics (#186670)](https://github.com/elastic/kibana/pull/186670) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Quynh Nguyen (Quinn)","email":"43350163+qn895@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-14T16:17:38Z","message":"[ML] Adds ability to toggle visibility for empty fields when choosing an aggregation or field in Anomaly detection, data frame analytics (#186670)\n\n## Summary\r\n\r\nThis PR adds new ability to toggle visibility for empty fields when\r\nchoosing an aggregation or field in Anomaly detection and Data frame\r\nanalytics\r\n\r\n\r\n |
||
|
d3a6059054
|
[8.x] [Index management] Add locator for deep linking into datastreams flyout (#195299) (#196123)
# Backport This will backport the following commits from `main` to `8.x`: - [[Index management] Add locator for deep linking into datastreams flyout (#195299)](https://github.com/elastic/kibana/pull/195299) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Ignacio Rivas","email":"rivasign@gmail.com"},"sourceCommit":{"committedDate":"2024-10-08T12:36:55Z","message":"[Index management] Add locator for deep linking into datastreams flyout (#195299)","sha":"17ae71b3d9008bc41582c8c92e1c3dadddd2e38b","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Index Management","Team:Kibana Management","release_note:skip","v9.0.0","backport:prev-minor"],"title":"[Index management] Add locator for deep linking into datastreams flyout","number":195299,"url":"https://github.com/elastic/kibana/pull/195299","mergeCommit":{"message":"[Index management] Add locator for deep linking into datastreams flyout (#195299)","sha":"17ae71b3d9008bc41582c8c92e1c3dadddd2e38b"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195299","number":195299,"mergeCommit":{"message":"[Index management] Add locator for deep linking into datastreams flyout (#195299)","sha":"17ae71b3d9008bc41582c8c92e1c3dadddd2e38b"}}]}] BACKPORT--> Co-authored-by: Ignacio Rivas <rivasign@gmail.com> |
||
|
98c93aa10f
|
[8.x] [Cloud Security] handle both rule.references and rule.reference in misconfiguraiton flyout (#195932) (#196115)
# Backport This will backport the following commits from `main` to `8.x`: - [[Cloud Security] handle both rule.references and rule.reference in misconfiguraiton flyout (#195932)](https://github.com/elastic/kibana/pull/195932) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Maxim Kholod","email":"maxim.kholod@elastic.co"},"sourceCommit":{"committedDate":"2024-10-14T11:31:59Z","message":"[Cloud Security] handle both rule.references and rule.reference in misconfiguraiton flyout (#195932)\n\n## Summary\r\n\r\nFixes:\r\n- https://github.com/elastic/security-team/issues/10793","sha":"cc46549c2f293bed7d24d8b1abf02c4d65db7bcb","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Cloud Security","backport:prev-minor","Feature:Cloud-Security","v8.16.0"],"title":"[Cloud Security] handle both rule.references and rule.reference in misconfiguraiton flyout","number":195932,"url":"https://github.com/elastic/kibana/pull/195932","mergeCommit":{"message":"[Cloud Security] handle both rule.references and rule.reference in misconfiguraiton flyout (#195932)\n\n## Summary\r\n\r\nFixes:\r\n- https://github.com/elastic/security-team/issues/10793","sha":"cc46549c2f293bed7d24d8b1abf02c4d65db7bcb"}},"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/195932","number":195932,"mergeCommit":{"message":"[Cloud Security] handle both rule.references and rule.reference in misconfiguraiton flyout (#195932)\n\n## Summary\r\n\r\nFixes:\r\n- https://github.com/elastic/security-team/issues/10793","sha":"cc46549c2f293bed7d24d8b1abf02c4d65db7bcb"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Maxim Kholod <maxim.kholod@elastic.co> |
||
|
0c6ab08a02
|
[8.x] [Connectors][GenAI] Inference Service Kibana connector (#189027) (#196035)
# Backport This will backport the following commits from `main` to `8.x`: - [[Connectors][GenAI] Inference Service Kibana connector (#189027)](https://github.com/elastic/kibana/pull/189027) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Yuliia Naumenko","email":"jo.naumenko@gmail.com"},"sourceCommit":{"committedDate":"2024-10-13T20:39:09Z","message":"[Connectors][GenAI] Inference Service Kibana connector (#189027)\n\n## Summary\r\nResolves https://github.com/elastic/kibana/issues/188043\r\n\r\nThis PR adds new connector which is define integration with Elastic\r\nInference Endpoint via [Inference\r\nAPIs](https://www.elastic.co/guide/en/elasticsearch/reference/current/inference-apis.html)\r\nThe lifecycle of the Inference Endpoint are managed by the connector\r\nregistered handlers:\r\n\r\n- `preSaveHook` -\r\n[create](https://www.elastic.co/guide/en/elasticsearch/reference/current/put-inference-api.html)\r\nnew Inference Endpoint in the connector create mode (`isEdit === false`)\r\nand\r\n[delete](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-inference-api.html)+[create](https://www.elastic.co/guide/en/elasticsearch/reference/current/put-inference-api.html)\r\nin the connector edit mode (`isEdit === true`)\r\n- `postSaveHook` - check if the connector SO was created/updated and if\r\nnot removes Inference Endpoint from preSaveHook\r\n- `postDeleteHook` -\r\n[delete](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-inference-api.html)\r\nInference Endpoint if connector was deleted.\r\n\r\nIn the Kibana Stack Management Connectors, its represented with the new\r\ncard (Technical preview badge):\r\n\r\n<img width=\"1261\" alt=\"Screenshot 2024-09-27 at 2 11 12 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/dcbcce1f-06e7-4d08-8b77-0ba4105354f8\">\r\n\r\nTo simplify the future integration with AI Assistants, the Connector\r\nconsists from the two main UI parts: provider selector and required\r\nprovider settings, which will be always displayed\r\n<img width=\"862\" alt=\"Screenshot 2024-10-07 at 7 59 09 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/87bae493-c642-479e-b28f-6150354608dd\">\r\n\r\nand Additional options, which contains optional provider settings and\r\nTask Type configuration:\r\n\r\n<img width=\"861\" alt=\"Screenshot 2024-10-07 at 8 00 15 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/2341c034-6198-4731-8ce7-e22e6c6fb20f\">\r\n\r\n\r\nsubActions corresponds to the different taskTypes Inference API\r\nsupports. Each of the task type has its own Inference Perform params.\r\nCurrently added:\r\n\r\n- completion & completionStream\r\n- rerank\r\n- text_embedding\r\n- sparse_embedding\r\n\r\nFollow up work:\r\n\r\n1. Collapse/expand Additional options, when the connector flyout/modal\r\nhas AI Assistant as a context (path through the extending context\r\nimplementation on the connector framework level)\r\n2. Add support for additional params for Completion subAction to be able\r\nto path functions\r\n3. Add support for tokens usage Dashboard, when inference API will\r\ninclude the used tokens count in the response\r\n4. Add functionality and UX for migration from existing specific AI\r\nconnectors to the Inference connector with proper provider and\r\ncompletion task\r\n5. Integrate Connector with the AI Assistants\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>\r\nCo-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>\r\nCo-authored-by: Steph Milovic <stephanie.milovic@elastic.co>","sha":"288d41d61ec2389b2e8856da75fd0f3107f9c484","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["v9.0.0","release_note:feature","Feature:Actions/ConnectorTypes","8.16 candidate","v8.16.0","backport:version"],"title":"[Connectors][GenAI] Inference Service Kibana connector","number":189027,"url":"https://github.com/elastic/kibana/pull/189027","mergeCommit":{"message":"[Connectors][GenAI] Inference Service Kibana connector (#189027)\n\n## Summary\r\nResolves https://github.com/elastic/kibana/issues/188043\r\n\r\nThis PR adds new connector which is define integration with Elastic\r\nInference Endpoint via [Inference\r\nAPIs](https://www.elastic.co/guide/en/elasticsearch/reference/current/inference-apis.html)\r\nThe lifecycle of the Inference Endpoint are managed by the connector\r\nregistered handlers:\r\n\r\n- `preSaveHook` -\r\n[create](https://www.elastic.co/guide/en/elasticsearch/reference/current/put-inference-api.html)\r\nnew Inference Endpoint in the connector create mode (`isEdit === false`)\r\nand\r\n[delete](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-inference-api.html)+[create](https://www.elastic.co/guide/en/elasticsearch/reference/current/put-inference-api.html)\r\nin the connector edit mode (`isEdit === true`)\r\n- `postSaveHook` - check if the connector SO was created/updated and if\r\nnot removes Inference Endpoint from preSaveHook\r\n- `postDeleteHook` -\r\n[delete](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-inference-api.html)\r\nInference Endpoint if connector was deleted.\r\n\r\nIn the Kibana Stack Management Connectors, its represented with the new\r\ncard (Technical preview badge):\r\n\r\n<img width=\"1261\" alt=\"Screenshot 2024-09-27 at 2 11 12 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/dcbcce1f-06e7-4d08-8b77-0ba4105354f8\">\r\n\r\nTo simplify the future integration with AI Assistants, the Connector\r\nconsists from the two main UI parts: provider selector and required\r\nprovider settings, which will be always displayed\r\n<img width=\"862\" alt=\"Screenshot 2024-10-07 at 7 59 09 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/87bae493-c642-479e-b28f-6150354608dd\">\r\n\r\nand Additional options, which contains optional provider settings and\r\nTask Type configuration:\r\n\r\n<img width=\"861\" alt=\"Screenshot 2024-10-07 at 8 00 15 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/2341c034-6198-4731-8ce7-e22e6c6fb20f\">\r\n\r\n\r\nsubActions corresponds to the different taskTypes Inference API\r\nsupports. Each of the task type has its own Inference Perform params.\r\nCurrently added:\r\n\r\n- completion & completionStream\r\n- rerank\r\n- text_embedding\r\n- sparse_embedding\r\n\r\nFollow up work:\r\n\r\n1. Collapse/expand Additional options, when the connector flyout/modal\r\nhas AI Assistant as a context (path through the extending context\r\nimplementation on the connector framework level)\r\n2. Add support for additional params for Completion subAction to be able\r\nto path functions\r\n3. Add support for tokens usage Dashboard, when inference API will\r\ninclude the used tokens count in the response\r\n4. Add functionality and UX for migration from existing specific AI\r\nconnectors to the Inference connector with proper provider and\r\ncompletion task\r\n5. Integrate Connector with the AI Assistants\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>\r\nCo-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>\r\nCo-authored-by: Steph Milovic <stephanie.milovic@elastic.co>","sha":"288d41d61ec2389b2e8856da75fd0f3107f9c484"}},"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/189027","number":189027,"mergeCommit":{"message":"[Connectors][GenAI] Inference Service Kibana connector (#189027)\n\n## Summary\r\nResolves https://github.com/elastic/kibana/issues/188043\r\n\r\nThis PR adds new connector which is define integration with Elastic\r\nInference Endpoint via [Inference\r\nAPIs](https://www.elastic.co/guide/en/elasticsearch/reference/current/inference-apis.html)\r\nThe lifecycle of the Inference Endpoint are managed by the connector\r\nregistered handlers:\r\n\r\n- `preSaveHook` -\r\n[create](https://www.elastic.co/guide/en/elasticsearch/reference/current/put-inference-api.html)\r\nnew Inference Endpoint in the connector create mode (`isEdit === false`)\r\nand\r\n[delete](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-inference-api.html)+[create](https://www.elastic.co/guide/en/elasticsearch/reference/current/put-inference-api.html)\r\nin the connector edit mode (`isEdit === true`)\r\n- `postSaveHook` - check if the connector SO was created/updated and if\r\nnot removes Inference Endpoint from preSaveHook\r\n- `postDeleteHook` -\r\n[delete](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-inference-api.html)\r\nInference Endpoint if connector was deleted.\r\n\r\nIn the Kibana Stack Management Connectors, its represented with the new\r\ncard (Technical preview badge):\r\n\r\n<img width=\"1261\" alt=\"Screenshot 2024-09-27 at 2 11 12 PM\"\r\nsrc=\"https://github.com/user-attachments/assets/dcbcce1f-06e7-4d08-8b77-0ba4105354f8\">\r\n\r\nTo simplify the future integration with AI Assistants, the Connector\r\nconsists from the two main UI parts: provider selector and required\r\nprovider settings, which will be always displayed\r\n<img width=\"862\" alt=\"Screenshot 2024-10-07 at 7 59 09 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/87bae493-c642-479e-b28f-6150354608dd\">\r\n\r\nand Additional options, which contains optional provider settings and\r\nTask Type configuration:\r\n\r\n<img width=\"861\" alt=\"Screenshot 2024-10-07 at 8 00 15 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/2341c034-6198-4731-8ce7-e22e6c6fb20f\">\r\n\r\n\r\nsubActions corresponds to the different taskTypes Inference API\r\nsupports. Each of the task type has its own Inference Perform params.\r\nCurrently added:\r\n\r\n- completion & completionStream\r\n- rerank\r\n- text_embedding\r\n- sparse_embedding\r\n\r\nFollow up work:\r\n\r\n1. Collapse/expand Additional options, when the connector flyout/modal\r\nhas AI Assistant as a context (path through the extending context\r\nimplementation on the connector framework level)\r\n2. Add support for additional params for Completion subAction to be able\r\nto path functions\r\n3. Add support for tokens usage Dashboard, when inference API will\r\ninclude the used tokens count in the response\r\n4. Add functionality and UX for migration from existing specific AI\r\nconnectors to the Inference connector with proper provider and\r\ncompletion task\r\n5. Integrate Connector with the AI Assistants\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>\r\nCo-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>\r\nCo-authored-by: Steph Milovic <stephanie.milovic@elastic.co>","sha":"288d41d61ec2389b2e8856da75fd0f3107f9c484"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Yuliia Naumenko <jo.naumenko@gmail.com> |
||
|
73d98d3d8e
|
[8.x] [Cloud Security] Graph visualization and API (#195307) (#196015)
# Backport This will backport the following commits from `main` to `8.x`: - [[Cloud Security] Graph visualization and API (#195307)](https://github.com/elastic/kibana/pull/195307) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Kfir Peled","email":"61654899+kfirpeled@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-12T03:37:02Z","message":"[Cloud Security] Graph visualization and API (#195307)\n\n## Summary\r\n\r\nThis PR adds:\r\n- Graph visualization component using `xyflow`, and layouts the graph\r\nusing `dagre`.\r\n- API that supports the graph visualization\r\n- API tests\r\n- Serverless API tests\r\n\r\n**List of open issues (will be tracked in a different ticket):**\r\n- Identify if `related.hosts`, `related.ip` and `related.user` are\r\nmapped before the query. (can be fixed by\r\nhttps://github.com/elastic/elasticsearch/issues/112912)\r\n- Update nodes rendering to match recent figma changes\r\n- Return 404 when feature is not enabled\r\n- Add keyboard accessibility\r\n- Resolve axe failures (run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n\r\n### How to test\r\n\r\nYou can view the graph using storybook's\r\n[playground](https://supreme-adventure-8qjmlp1.pages.github.io/graph-storybook/?path=/story/components-graph-components-dagree-layout-graph--graph-stacked-edge-cases).\r\n\r\nTo test this PR you can run\r\n\r\n```\r\nyarn storybook cloud_security_posture_packages\r\n```\r\n\r\nTo test the API you can use the mocked data\r\n\r\n```bash\r\nnode scripts/es_archiver load x-pack/test/cloud_security_posture_api/es_archives/logs_gcp_audit \\ \r\n--es-url http://elastic:changeme@localhost:9200 \\\r\n--kibana-url http://elastic:changeme@localhost:5601\r\n```\r\n\r\nAnd through dev tools:\r\n\r\n```\r\nPOST kbn:/internal/cloud_security_posture/graph?apiVersion=1\r\n{\r\n \"query\": {\r\n \"actorIds\": [\"admin@example.com\"],\r\n \"eventIds\": [\"\"],\r\n \"start\": \"now-1y/y\",\r\n \"end\": \"now/d\"\r\n }\r\n}\r\n```\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [x] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [x] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"be0eadfb9fa08f0d73383884dc67bf2005b7daba","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor"],"title":"[Cloud Security] Graph visualization and API","number":195307,"url":"https://github.com/elastic/kibana/pull/195307","mergeCommit":{"message":"[Cloud Security] Graph visualization and API (#195307)\n\n## Summary\r\n\r\nThis PR adds:\r\n- Graph visualization component using `xyflow`, and layouts the graph\r\nusing `dagre`.\r\n- API that supports the graph visualization\r\n- API tests\r\n- Serverless API tests\r\n\r\n**List of open issues (will be tracked in a different ticket):**\r\n- Identify if `related.hosts`, `related.ip` and `related.user` are\r\nmapped before the query. (can be fixed by\r\nhttps://github.com/elastic/elasticsearch/issues/112912)\r\n- Update nodes rendering to match recent figma changes\r\n- Return 404 when feature is not enabled\r\n- Add keyboard accessibility\r\n- Resolve axe failures (run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n\r\n### How to test\r\n\r\nYou can view the graph using storybook's\r\n[playground](https://supreme-adventure-8qjmlp1.pages.github.io/graph-storybook/?path=/story/components-graph-components-dagree-layout-graph--graph-stacked-edge-cases).\r\n\r\nTo test this PR you can run\r\n\r\n```\r\nyarn storybook cloud_security_posture_packages\r\n```\r\n\r\nTo test the API you can use the mocked data\r\n\r\n```bash\r\nnode scripts/es_archiver load x-pack/test/cloud_security_posture_api/es_archives/logs_gcp_audit \\ \r\n--es-url http://elastic:changeme@localhost:9200 \\\r\n--kibana-url http://elastic:changeme@localhost:5601\r\n```\r\n\r\nAnd through dev tools:\r\n\r\n```\r\nPOST kbn:/internal/cloud_security_posture/graph?apiVersion=1\r\n{\r\n \"query\": {\r\n \"actorIds\": [\"admin@example.com\"],\r\n \"eventIds\": [\"\"],\r\n \"start\": \"now-1y/y\",\r\n \"end\": \"now/d\"\r\n }\r\n}\r\n```\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [x] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [x] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"be0eadfb9fa08f0d73383884dc67bf2005b7daba"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195307","number":195307,"mergeCommit":{"message":"[Cloud Security] Graph visualization and API (#195307)\n\n## Summary\r\n\r\nThis PR adds:\r\n- Graph visualization component using `xyflow`, and layouts the graph\r\nusing `dagre`.\r\n- API that supports the graph visualization\r\n- API tests\r\n- Serverless API tests\r\n\r\n**List of open issues (will be tracked in a different ticket):**\r\n- Identify if `related.hosts`, `related.ip` and `related.user` are\r\nmapped before the query. (can be fixed by\r\nhttps://github.com/elastic/elasticsearch/issues/112912)\r\n- Update nodes rendering to match recent figma changes\r\n- Return 404 when feature is not enabled\r\n- Add keyboard accessibility\r\n- Resolve axe failures (run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n\r\n### How to test\r\n\r\nYou can view the graph using storybook's\r\n[playground](https://supreme-adventure-8qjmlp1.pages.github.io/graph-storybook/?path=/story/components-graph-components-dagree-layout-graph--graph-stacked-edge-cases).\r\n\r\nTo test this PR you can run\r\n\r\n```\r\nyarn storybook cloud_security_posture_packages\r\n```\r\n\r\nTo test the API you can use the mocked data\r\n\r\n```bash\r\nnode scripts/es_archiver load x-pack/test/cloud_security_posture_api/es_archives/logs_gcp_audit \\ \r\n--es-url http://elastic:changeme@localhost:9200 \\\r\n--kibana-url http://elastic:changeme@localhost:5601\r\n```\r\n\r\nAnd through dev tools:\r\n\r\n```\r\nPOST kbn:/internal/cloud_security_posture/graph?apiVersion=1\r\n{\r\n \"query\": {\r\n \"actorIds\": [\"admin@example.com\"],\r\n \"eventIds\": [\"\"],\r\n \"start\": \"now-1y/y\",\r\n \"end\": \"now/d\"\r\n }\r\n}\r\n```\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [x] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [x] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [x] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"be0eadfb9fa08f0d73383884dc67bf2005b7daba"}},{"url":"https://github.com/elastic/kibana/pull/196012","number":196012,"branch":"8.x","state":"OPEN"}]}] BACKPORT--> Co-authored-by: Kfir Peled <61654899+kfirpeled@users.noreply.github.com> |
||
|
4951ab959c
|
[8.x] [Search Assistant] Use scopes to modify behavior contextually (#195785) (#196014)
# Backport This will backport the following commits from `main` to `8.x`: - [[Search Assistant] Use scopes to modify behavior contextually (#195785)](https://github.com/elastic/kibana/pull/195785) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Sander Philipse","email":"94373878+sphilipse@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-11T23:09:06Z","message":"[Search Assistant] Use scopes to modify behavior contextually (#195785)\n\n## Summary\r\n\r\nThis actually uses the Search Assistant scope to modify the assistant's\r\nbehavior depending on the context they're in. The assistant now:\r\n- Defaults to Observability mode\r\n- Is a Search assistant in the Search pages\r\n- Switches dynamically, changing available functions, prompts and\r\ninstructions based on context\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"ee341d5f801ca42ed26acf0544b0bc59948d0214","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Search","Team:Obs AI Assistant","ci:project-deploy-observability","v8.16.0","backport:version"],"title":"[Search Assistant] Use scopes to modify behavior contextually","number":195785,"url":"https://github.com/elastic/kibana/pull/195785","mergeCommit":{"message":"[Search Assistant] Use scopes to modify behavior contextually (#195785)\n\n## Summary\r\n\r\nThis actually uses the Search Assistant scope to modify the assistant's\r\nbehavior depending on the context they're in. The assistant now:\r\n- Defaults to Observability mode\r\n- Is a Search assistant in the Search pages\r\n- Switches dynamically, changing available functions, prompts and\r\ninstructions based on context\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"ee341d5f801ca42ed26acf0544b0bc59948d0214"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195785","number":195785,"mergeCommit":{"message":"[Search Assistant] Use scopes to modify behavior contextually (#195785)\n\n## Summary\r\n\r\nThis actually uses the Search Assistant scope to modify the assistant's\r\nbehavior depending on the context they're in. The assistant now:\r\n- Defaults to Observability mode\r\n- Is a Search assistant in the Search pages\r\n- Switches dynamically, changing available functions, prompts and\r\ninstructions based on context\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"ee341d5f801ca42ed26acf0544b0bc59948d0214"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/196013","number":196013,"state":"OPEN"}]}] BACKPORT--> Co-authored-by: Sander Philipse <94373878+sphilipse@users.noreply.github.com> |
||
|
d301b8f7b0
|
[8.x] chore(security, eslint): apply platform security-specific rules to all exclusively owned paths. (#195711) (#196010)
# Backport This will backport the following commits from `main` to `8.x`: - [chore(security, eslint): apply platform security-specific rules to all exclusively owned paths. (#195711)](https://github.com/elastic/kibana/pull/195711) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Aleh Zasypkin","email":"aleh.zasypkin@elastic.co"},"sourceCommit":{"committedDate":"2024-10-11T07:49:12Z","message":"chore(security, eslint): apply platform security-specific rules to all exclusively owned paths. (#195711)\n\n## Summary\r\n\r\nApply platform security-specific rules to all exclusively owned paths.","sha":"a2d6e102d37217c58bf771a17c77976575e87a84","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["chore","Team:Security","release_note:skip","v9.0.0","backport:prev-major","v8.16.0"],"number":195711,"url":"https://github.com/elastic/kibana/pull/195711","mergeCommit":{"message":"chore(security, eslint): apply platform security-specific rules to all exclusively owned paths. (#195711)\n\n## Summary\r\n\r\nApply platform security-specific rules to all exclusively owned paths.","sha":"a2d6e102d37217c58bf771a17c77976575e87a84"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195711","number":195711,"mergeCommit":{"message":"chore(security, eslint): apply platform security-specific rules to all exclusively owned paths. (#195711)\n\n## Summary\r\n\r\nApply platform security-specific rules to all exclusively owned paths.","sha":"a2d6e102d37217c58bf771a17c77976575e87a84"}},{"branch":"8.x","label":"v8.16.0","labelRegex":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> |
||
|
8fef06fa55
|
[8.x] Extract AI assistant to package (#194552) (#196011)
# Backport This will backport the following commits from `main` to `8.x`: - [Extract AI assistant to package (#194552)](https://github.com/elastic/kibana/pull/194552) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Sander Philipse","email":"94373878+sphilipse@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-10T13:11:49Z","message":"Extract AI assistant to package (#194552)\n\n## Summary\r\n\r\nThis extracts the Observability AI Assistant into a shared package so\r\nSearch and Observability can both consume it.\r\n\r\nA few notes:\r\n\r\nThis still relies on significantly tight coupling with the Obs AI\r\nassistant plugin, which we will want to slowly decouple over time. It\r\nmeans that currently to consume this in multiple places, you need to\r\nprovide a number of plugins for useKibana. Hopefully we can get rid of\r\nthat and replace them with props eventually and make the interface a\r\nlittle less plugin-dependent.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"8a3a05927bdbe264c491b4034ff5d81674f3db73","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Search","Team:Obs AI Assistant","ci:project-deploy-observability","v8.16.0","backport:version"],"number":194552,"url":"https://github.com/elastic/kibana/pull/194552","mergeCommit":{"message":"Extract AI assistant to package (#194552)\n\n## Summary\r\n\r\nThis extracts the Observability AI Assistant into a shared package so\r\nSearch and Observability can both consume it.\r\n\r\nA few notes:\r\n\r\nThis still relies on significantly tight coupling with the Obs AI\r\nassistant plugin, which we will want to slowly decouple over time. It\r\nmeans that currently to consume this in multiple places, you need to\r\nprovide a number of plugins for useKibana. Hopefully we can get rid of\r\nthat and replace them with props eventually and make the interface a\r\nlittle less plugin-dependent.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"8a3a05927bdbe264c491b4034ff5d81674f3db73"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/194552","number":194552,"mergeCommit":{"message":"Extract AI assistant to package (#194552)\n\n## Summary\r\n\r\nThis extracts the Observability AI Assistant into a shared package so\r\nSearch and Observability can both consume it.\r\n\r\nA few notes:\r\n\r\nThis still relies on significantly tight coupling with the Obs AI\r\nassistant plugin, which we will want to slowly decouple over time. It\r\nmeans that currently to consume this in multiple places, you need to\r\nprovide a number of plugins for useKibana. Hopefully we can get rid of\r\nthat and replace them with props eventually and make the interface a\r\nlittle less plugin-dependent.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"8a3a05927bdbe264c491b4034ff5d81674f3db73"}},{"branch":"8.x","label":"v8.16.0","labelRegex":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> |
||
|
644692ab84
|
[8.x] [Onboarding] Make search_indices index details page as default route in index management (#194857) (#195973)
# Backport This will backport the following commits from `main` to `8.x`: - [[Onboarding] Make search_indices index details page as default route in index management (#194857)](https://github.com/elastic/kibana/pull/194857) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Saarika Bhasi","email":"55930906+saarikabhasi@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-11T17:53:41Z","message":"[Onboarding] Make search_indices index details page as default route in index management (#194857)\n\n## Summary\r\nMakes `search_indices` index details page as default route in the\r\nindex_management plugin list page.\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/65afec5c-733f-4657-a793-56e29c65cf11\r\n\r\n\r\n**How to test:** \r\n1. Enable searchIndices plugin in `kibana.dev.yml` as this plugin is\r\nbehind Feature flag\r\n```\r\nxpack.searchIndices.enabled: true\r\n\r\n```\r\n2. [Create new\r\nindex](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html)\r\n3. Navigate to `index management` app\r\n4. Click on index name and confirm is navigated to\r\n`/app/elasticsearch/indices/index_details/my-index/data`\r\n5. set `xpack.searchIndices.enabled: false` in `kibana.dev.yml` \r\n6. Navigate again to `index management` app\r\n7. Click on index name and confirm is navigated to index management\r\nindex details page\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [x] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Ignacio Rivas <rivasign@gmail.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"8d82a239531ce633c866cf755deed46848cfeb47","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor","v8.16.0"],"title":"[Onboarding] Make search_indices index details page as default route in index management","number":194857,"url":"https://github.com/elastic/kibana/pull/194857","mergeCommit":{"message":"[Onboarding] Make search_indices index details page as default route in index management (#194857)\n\n## Summary\r\nMakes `search_indices` index details page as default route in the\r\nindex_management plugin list page.\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/65afec5c-733f-4657-a793-56e29c65cf11\r\n\r\n\r\n**How to test:** \r\n1. Enable searchIndices plugin in `kibana.dev.yml` as this plugin is\r\nbehind Feature flag\r\n```\r\nxpack.searchIndices.enabled: true\r\n\r\n```\r\n2. [Create new\r\nindex](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html)\r\n3. Navigate to `index management` app\r\n4. Click on index name and confirm is navigated to\r\n`/app/elasticsearch/indices/index_details/my-index/data`\r\n5. set `xpack.searchIndices.enabled: false` in `kibana.dev.yml` \r\n6. Navigate again to `index management` app\r\n7. Click on index name and confirm is navigated to index management\r\nindex details page\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [x] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Ignacio Rivas <rivasign@gmail.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"8d82a239531ce633c866cf755deed46848cfeb47"}},"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/194857","number":194857,"mergeCommit":{"message":"[Onboarding] Make search_indices index details page as default route in index management (#194857)\n\n## Summary\r\nMakes `search_indices` index details page as default route in the\r\nindex_management plugin list page.\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/65afec5c-733f-4657-a793-56e29c65cf11\r\n\r\n\r\n**How to test:** \r\n1. Enable searchIndices plugin in `kibana.dev.yml` as this plugin is\r\nbehind Feature flag\r\n```\r\nxpack.searchIndices.enabled: true\r\n\r\n```\r\n2. [Create new\r\nindex](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html)\r\n3. Navigate to `index management` app\r\n4. Click on index name and confirm is navigated to\r\n`/app/elasticsearch/indices/index_details/my-index/data`\r\n5. set `xpack.searchIndices.enabled: false` in `kibana.dev.yml` \r\n6. Navigate again to `index management` app\r\n7. Click on index name and confirm is navigated to index management\r\nindex details page\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [x] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Ignacio Rivas <rivasign@gmail.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"8d82a239531ce633c866cf755deed46848cfeb47"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Saarika Bhasi <55930906+saarikabhasi@users.noreply.github.com> |
||
|
c9b0d86381
|
[8.x] [ML] Transforms: Improve data grid memoization. (#195394) (#195975)
# Backport This will backport the following commits from `main` to `8.x`: - [[ML] Transforms: Improve data grid memoization. (#195394)](https://github.com/elastic/kibana/pull/195394) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Walter Rafelsberger","email":"walter.rafelsberger@elastic.co"},"sourceCommit":{"committedDate":"2024-10-11T18:18:11Z","message":"[ML] Transforms: Improve data grid memoization. (#195394)\n\n## Summary\r\n\r\nPart of #178606 and #151664.\r\n\r\n- Removes some unused code related to identifying populated index\r\nfields.\r\n- Changes `useIndexData()` to accept just one config options arg instead\r\nof individual args.\r\n- Improves data grid memoziation.\r\n\r\nImprovements tested locally:\r\n\r\n#### `many_fields` dataset (no timestamp)\r\n\r\n- `main`: `~22s` and 10 data grid rerenders until many_fields data set\r\nloaded. The transform config dropdown are hardly usable and super slow,\r\neach edit causes 3 data grid rerenders.\r\n- This PR: `~4.5s` and 7 data grid rerenders until many_fields data set\r\nloaded. The transform config dropdowns are a bit slow but usable!\r\n\r\n#### `kibana_sample_data_logs` dataset (whole dataset in the past to\r\ntest rerenders on load without data)\r\n\r\n- `main`: 5 rerenders.\r\n- This PR: 3 rerenders\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [x] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"869ceec5ca8a1156d077bb2a888a91ef73e30511","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":[":ml","release_note:skip","Feature:Transforms","v9.0.0","v8.16.0","backport:version"],"title":"[ML] Transforms: Improve data grid memoization.","number":195394,"url":"https://github.com/elastic/kibana/pull/195394","mergeCommit":{"message":"[ML] Transforms: Improve data grid memoization. (#195394)\n\n## Summary\r\n\r\nPart of #178606 and #151664.\r\n\r\n- Removes some unused code related to identifying populated index\r\nfields.\r\n- Changes `useIndexData()` to accept just one config options arg instead\r\nof individual args.\r\n- Improves data grid memoziation.\r\n\r\nImprovements tested locally:\r\n\r\n#### `many_fields` dataset (no timestamp)\r\n\r\n- `main`: `~22s` and 10 data grid rerenders until many_fields data set\r\nloaded. The transform config dropdown are hardly usable and super slow,\r\neach edit causes 3 data grid rerenders.\r\n- This PR: `~4.5s` and 7 data grid rerenders until many_fields data set\r\nloaded. The transform config dropdowns are a bit slow but usable!\r\n\r\n#### `kibana_sample_data_logs` dataset (whole dataset in the past to\r\ntest rerenders on load without data)\r\n\r\n- `main`: 5 rerenders.\r\n- This PR: 3 rerenders\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [x] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"869ceec5ca8a1156d077bb2a888a91ef73e30511"}},"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/195394","number":195394,"mergeCommit":{"message":"[ML] Transforms: Improve data grid memoization. (#195394)\n\n## Summary\r\n\r\nPart of #178606 and #151664.\r\n\r\n- Removes some unused code related to identifying populated index\r\nfields.\r\n- Changes `useIndexData()` to accept just one config options arg instead\r\nof individual args.\r\n- Improves data grid memoziation.\r\n\r\nImprovements tested locally:\r\n\r\n#### `many_fields` dataset (no timestamp)\r\n\r\n- `main`: `~22s` and 10 data grid rerenders until many_fields data set\r\nloaded. The transform config dropdown are hardly usable and super slow,\r\neach edit causes 3 data grid rerenders.\r\n- This PR: `~4.5s` and 7 data grid rerenders until many_fields data set\r\nloaded. The transform config dropdowns are a bit slow but usable!\r\n\r\n#### `kibana_sample_data_logs` dataset (whole dataset in the past to\r\ntest rerenders on load without data)\r\n\r\n- `main`: 5 rerenders.\r\n- This PR: 3 rerenders\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [x] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"869ceec5ca8a1156d077bb2a888a91ef73e30511"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Walter Rafelsberger <walter.rafelsberger@elastic.co> |
||
|
3926570553
|
[8.x] [Secuity Solution][DQD] add historical results (Phase 1) (#191898) (#195962)
# Backport This will backport the following commits from `main` to `8.x`: - [[Secuity Solution][DQD] add historical results (Phase 1) (#191898)](https://github.com/elastic/kibana/pull/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":"karen.grigoryan@elastic.co"},"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/elastic/kibana/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/elastic/kibana/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\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\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\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\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\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com/elastic/kibana/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\r\n\r\n### No results\r\n\r\n\r\n\r\n### Loading view\r\n\r\n\r\n\r\n### Error view\r\n\r\n\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\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\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\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\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\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\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com/elastic/kibana/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\r\n\r\n### No results\r\n\r\n\r\n\r\n### Loading view\r\n\r\n\r\n\r\n### Error view\r\n\r\n","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/elastic/kibana/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/elastic/kibana/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\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\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\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\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\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com/elastic/kibana/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\r\n\r\n### No results\r\n\r\n\r\n\r\n### Loading view\r\n\r\n\r\n\r\n### Error view\r\n\r\n\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\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\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\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\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\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\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com/elastic/kibana/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\r\n\r\n### No results\r\n\r\n\r\n\r\n### Loading view\r\n\r\n\r\n\r\n### Error view\r\n\r\n","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/elastic/kibana/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/elastic/kibana/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\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\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\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\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\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com/elastic/kibana/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\r\n\r\n### No results\r\n\r\n\r\n\r\n### Loading view\r\n\r\n\r\n\r\n### Error view\r\n\r\n\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\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\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\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\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\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\r\n\r\n### Legacy check result view **(NEW)**\r\n- before this PR went to production\r\nhttps://github.com/elastic/kibana/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\r\n\r\n### No results\r\n\r\n\r\n\r\n### Loading view\r\n\r\n\r\n\r\n### Error view\r\n\r\n","sha":"e5f7739b263902bd01aca9fa902be7cc5181e855"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Karen Grigoryan <karen.grigoryan@elastic.co> |
||
|
d360231339
|
[8.x] [Onboarding] Increasing telemetry coverage (#195741) (#195903)
# Backport This will backport the following commits from `main` to `8.x`: - [[Onboarding] Increasing telemetry coverage (#195741)](https://github.com/elastic/kibana/pull/195741) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Joe McElroy","email":"joseph.mcelroy@elastic.co"},"sourceCommit":{"committedDate":"2024-10-11T12:08:07Z","message":"[Onboarding] Increasing telemetry coverage (#195741)\n\n## Summary\r\n\r\nAdding telemetry coverage for onboarding.\r\n\r\nAlso adds the eslint rule which warns of elements that do not have a\r\ndata-test-subj for telemetry needs.\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"4aa491dd7793a974a91cc295579d71529a9029df","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:EnterpriseSearch","backport:prev-minor"],"title":"[Onboarding] Increasing telemetry coverage","number":195741,"url":"https://github.com/elastic/kibana/pull/195741","mergeCommit":{"message":"[Onboarding] Increasing telemetry coverage (#195741)\n\n## Summary\r\n\r\nAdding telemetry coverage for onboarding.\r\n\r\nAlso adds the eslint rule which warns of elements that do not have a\r\ndata-test-subj for telemetry needs.\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"4aa491dd7793a974a91cc295579d71529a9029df"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195741","number":195741,"mergeCommit":{"message":"[Onboarding] Increasing telemetry coverage (#195741)\n\n## Summary\r\n\r\nAdding telemetry coverage for onboarding.\r\n\r\nAlso adds the eslint rule which warns of elements that do not have a\r\ndata-test-subj for telemetry needs.\r\n\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"4aa491dd7793a974a91cc295579d71529a9029df"}}]}] BACKPORT--> Co-authored-by: Joe McElroy <joseph.mcelroy@elastic.co> |
||
|
8f86639706
|
[8.x] [Cloud Security] Increase retention period on queries related to 3rd party data loading (#195636) (#195871)
# Backport This will backport the following commits from `main` to `8.x`: - [[Cloud Security] Increase retention period on queries related to 3rd party data loading (#195636)](https://github.com/elastic/kibana/pull/195636) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Maxim Kholod","email":"maxim.kholod@elastic.co"},"sourceCommit":{"committedDate":"2024-10-11T09:34:12Z","message":"[Cloud Security] Increase retention period on queries related to 3rd party data loading (#195636)\n\n## Summary\r\n\r\nIncrease retention on Cloud Security queries to accommodate a longer\r\nretention period on third-party CDR integrations, such as Wiz and AWS\r\nSecurityHub. This introduces regression for\r\nhttps://github.com/elastic/kibana/issues/142198\r\nThis is meant is a temporary workaround until we find a robust way to\r\nget full posture for third-party CDR integrations\r\nThis change goes together with increasing retention period on Wiz: \r\n- https://github.com/elastic/integrations/pull/11393\r\n\r\nfixes:\r\n- https://github.com/elastic/security-team/issues/10683\r\n\r\n## How to test\r\nThe CI deployed a serverless project where I installed Wiz and CSP\r\nintegrations and ingested some data.","sha":"e18c52eec2cb18dc2590b61d7649de4507f060a7","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Cloud Security","backport:prev-major","ci:cloud-deploy","ci:project-deploy-security","v8.16.0"],"title":"[Cloud Security] Increase retention period on queries related to 3rd party data loading","number":195636,"url":"https://github.com/elastic/kibana/pull/195636","mergeCommit":{"message":"[Cloud Security] Increase retention period on queries related to 3rd party data loading (#195636)\n\n## Summary\r\n\r\nIncrease retention on Cloud Security queries to accommodate a longer\r\nretention period on third-party CDR integrations, such as Wiz and AWS\r\nSecurityHub. This introduces regression for\r\nhttps://github.com/elastic/kibana/issues/142198\r\nThis is meant is a temporary workaround until we find a robust way to\r\nget full posture for third-party CDR integrations\r\nThis change goes together with increasing retention period on Wiz: \r\n- https://github.com/elastic/integrations/pull/11393\r\n\r\nfixes:\r\n- https://github.com/elastic/security-team/issues/10683\r\n\r\n## How to test\r\nThe CI deployed a serverless project where I installed Wiz and CSP\r\nintegrations and ingested some data.","sha":"e18c52eec2cb18dc2590b61d7649de4507f060a7"}},"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/195636","number":195636,"mergeCommit":{"message":"[Cloud Security] Increase retention period on queries related to 3rd party data loading (#195636)\n\n## Summary\r\n\r\nIncrease retention on Cloud Security queries to accommodate a longer\r\nretention period on third-party CDR integrations, such as Wiz and AWS\r\nSecurityHub. This introduces regression for\r\nhttps://github.com/elastic/kibana/issues/142198\r\nThis is meant is a temporary workaround until we find a robust way to\r\nget full posture for third-party CDR integrations\r\nThis change goes together with increasing retention period on Wiz: \r\n- https://github.com/elastic/integrations/pull/11393\r\n\r\nfixes:\r\n- https://github.com/elastic/security-team/issues/10683\r\n\r\n## How to test\r\nThe CI deployed a serverless project where I installed Wiz and CSP\r\nintegrations and ingested some data.","sha":"e18c52eec2cb18dc2590b61d7649de4507f060a7"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Maxim Kholod <maxim.kholod@elastic.co> |
||
|
afebfae443
|
[8.x] [Security GenAI] Fix `VertexChatAI` tool calling (#195689) (#195832)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security GenAI] Fix `VertexChatAI` tool calling (#195689)](https://github.com/elastic/kibana/pull/195689) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Steph Milovic","email":"stephanie.milovic@elastic.co"},"sourceCommit":{"committedDate":"2024-10-10T21:59:10Z","message":"[Security GenAI] Fix `VertexChatAI` tool calling (#195689)","sha":"6ff2d87b5c8ed48ccfaa66f9cc8d712ae161a076","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team: SecuritySolution","backport:prev-minor","Team:Security Generative AI","v8.16.0"],"title":"[Security GenAI] Fix `VertexChatAI` tool calling","number":195689,"url":"https://github.com/elastic/kibana/pull/195689","mergeCommit":{"message":"[Security GenAI] Fix `VertexChatAI` tool calling (#195689)","sha":"6ff2d87b5c8ed48ccfaa66f9cc8d712ae161a076"}},"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/195689","number":195689,"mergeCommit":{"message":"[Security GenAI] Fix `VertexChatAI` tool calling (#195689)","sha":"6ff2d87b5c8ed48ccfaa66f9cc8d712ae161a076"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Steph Milovic <stephanie.milovic@elastic.co> |
||
|
e435c47a8a
|
[8.x] [Security Solution] Add alert and cloud insights to document flyout (#195509) (#195825)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security Solution] Add alert and cloud insights to document flyout (#195509)](https://github.com/elastic/kibana/pull/195509) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"christineweng","email":"18648970+christineweng@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-10T20:46:51Z","message":"[Security Solution] Add alert and cloud insights to document flyout (#195509)\n\n## Summary\r\n\r\nThis PR adds alert count, misconfiguration and vulnerabilities insights\r\nto alert/event flyout. If data is not available, the insights are\r\nhidden.\r\n\r\n\r\n[Mocks]( |
||
|
e92919e7d0
|
[8.x] [Security GenAI] Remove assistantNaturalLanguageESQLTool feature flag and enable by default (#195480) (#195674)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security GenAI] Remove `assistantNaturalLanguageESQLTool` feature flag and enable by default (#195480)](https://github.com/elastic/kibana/pull/195480) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Steph Milovic","email":"stephanie.milovic@elastic.co"},"sourceCommit":{"committedDate":"2024-10-09T14:13:05Z","message":"[Security GenAI] Remove `assistantNaturalLanguageESQLTool` feature flag and enable by default (#195480)","sha":"3dd1ee8ae00a40b582f2d1f784c96269a1d2e016","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","v9.0.0","Team: SecuritySolution","backport:prev-minor","Feature:Security Assistant","Team:Security Generative AI","v8.16.0"],"number":195480,"url":"https://github.com/elastic/kibana/pull/195480","mergeCommit":{"message":"[Security GenAI] Remove `assistantNaturalLanguageESQLTool` feature flag and enable by default (#195480)","sha":"3dd1ee8ae00a40b582f2d1f784c96269a1d2e016"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195480","number":195480,"mergeCommit":{"message":"[Security GenAI] Remove `assistantNaturalLanguageESQLTool` feature flag and enable by default (#195480)","sha":"3dd1ee8ae00a40b582f2d1f784c96269a1d2e016"}},{"branch":"8.x","label":"v8.16.0","labelRegex":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> |
||
|
38de3b93a8
|
[8.x] [Logs Overview] Overview component (iteration 1) (attempt 2) (#195673) (#195742)
# Backport This will backport the following commits from `main` to `8.x`: - [[Logs Overview] Overview component (iteration 1) (attempt 2) (#195673)](https://github.com/elastic/kibana/pull/195673) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Felix Stürmer","email":"weltenwort@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-10T10:46:25Z","message":"[Logs Overview] Overview component (iteration 1) (attempt 2) (#195673)\n\nThis is a re-submission of https://github.com/elastic/kibana/pull/191899, which was reverted due to\r\na storybook build problem. This introduces a \"Logs Overview\" component for use in solution UIs\r\nbehind a feature flag.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Kerry Gallagher <471693+Kerry350@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"0caea22006591486fbfd80d7899e116743acd8a2","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Logs UI","v9.0.0","release_note:feature","backport:prev-minor","ci:build-storybooks","ci:project-deploy-observability","Team:obs-ux-logs","Team:obs-ux-infra_services"],"number":195673,"url":"https://github.com/elastic/kibana/pull/195673","mergeCommit":{"message":"[Logs Overview] Overview component (iteration 1) (attempt 2) (#195673)\n\nThis is a re-submission of https://github.com/elastic/kibana/pull/191899, which was reverted due to\r\na storybook build problem. This introduces a \"Logs Overview\" component for use in solution UIs\r\nbehind a feature flag.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Kerry Gallagher <471693+Kerry350@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"0caea22006591486fbfd80d7899e116743acd8a2"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195673","number":195673,"mergeCommit":{"message":"[Logs Overview] Overview component (iteration 1) (attempt 2) (#195673)\n\nThis is a re-submission of https://github.com/elastic/kibana/pull/191899, which was reverted due to\r\na storybook build problem. This introduces a \"Logs Overview\" component for use in solution UIs\r\nbehind a feature flag.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Kerry Gallagher <471693+Kerry350@users.noreply.github.com>\r\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"0caea22006591486fbfd80d7899e116743acd8a2"}}]}] BACKPORT--> |
||
|
0035e94287
|
[8.x] [Epic] AI Insights + Assistant - Add "Other" option to the existing OpenAI Connector dropdown list (#8936) (#194831) (#195688)
# Backport This will backport the following commits from `main` to `8.x`: - [[Epic] AI Insights + Assistant - Add "Other" option to the existing OpenAI Connector dropdown list (#8936) (#194831)](https://github.com/elastic/kibana/pull/194831) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Ievgen Sorokopud","email":"ievgen.sorokopud@elastic.co"},"sourceCommit":{"committedDate":"2024-10-09T22:07:31Z","message":"[Epic] AI Insights + Assistant - Add \"Other\" option to the existing OpenAI Connector dropdown list (#8936) (#194831)","sha":"83a701e837a7a84a86dcc8d359154f900f69676a","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["v9.0.0","release_note:feature","Feature:Security Assistant","Team:Security Generative AI","v8.16.0","backport:version"],"title":"[Epic] AI Insights + Assistant - Add \"Other\" option to the existing OpenAI Connector dropdown list (#8936)","number":194831,"url":"https://github.com/elastic/kibana/pull/194831","mergeCommit":{"message":"[Epic] AI Insights + Assistant - Add \"Other\" option to the existing OpenAI Connector dropdown list (#8936) (#194831)","sha":"83a701e837a7a84a86dcc8d359154f900f69676a"}},"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/194831","number":194831,"mergeCommit":{"message":"[Epic] AI Insights + Assistant - Add \"Other\" option to the existing OpenAI Connector dropdown list (#8936) (#194831)","sha":"83a701e837a7a84a86dcc8d359154f900f69676a"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Ievgen Sorokopud <ievgen.sorokopud@elastic.co> |
||
|
365bb613db
|
[8.x] [eem] remove history transforms (#193999) (#195680)
# Backport This will backport the following commits from `main` to `8.x`: - [[eem] remove history transforms (#193999)](https://github.com/elastic/kibana/pull/193999) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Kevin Lacabane","email":"kevin.lacabane@elastic.co"},"sourceCommit":{"committedDate":"2024-10-09T21:15:33Z","message":"[eem] remove history transforms (#193999)\n\n### Summary\r\n\r\nRemove history and backfill transforms, leaving latest transform in\r\nplace.\r\n\r\nNotable changes to latest transform:\r\n- it does not read from history output anymore but source indices\r\ndefined on the definition\r\n- it defines a `latest.lookbackPeriod` to limit the amount of data\r\ningested, which defaults to 24h\r\n- each metadata aggregation now accepts a\r\n`metadata.aggregation.lookbackPeriod` which defaults to the\r\n`latest.lookbackPeriod`\r\n- `entity.firstSeenTimestamp` is removed. this should be temporary until\r\nwe have a solution for\r\nhttps://github.com/elastic/elastic-entity-model/issues/174\r\n- latest metrics used to get the latest pre-computed value from history\r\ndata, but is it now aggregating over the `lookbackPeriod` in the source\r\nindices (which can be filtered down with `metrics.filter`)\r\n- `latest` block on the entity definition is now mandatory\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Mark Hopkin <mark.hopkin@elastic.co>","sha":"8f8e9883e0a8e78a632418a0677980f758450351","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Feature:EEM","team:obs-entities"],"title":"[eem] remove history transforms","number":193999,"url":"https://github.com/elastic/kibana/pull/193999","mergeCommit":{"message":"[eem] remove history transforms (#193999)\n\n### Summary\r\n\r\nRemove history and backfill transforms, leaving latest transform in\r\nplace.\r\n\r\nNotable changes to latest transform:\r\n- it does not read from history output anymore but source indices\r\ndefined on the definition\r\n- it defines a `latest.lookbackPeriod` to limit the amount of data\r\ningested, which defaults to 24h\r\n- each metadata aggregation now accepts a\r\n`metadata.aggregation.lookbackPeriod` which defaults to the\r\n`latest.lookbackPeriod`\r\n- `entity.firstSeenTimestamp` is removed. this should be temporary until\r\nwe have a solution for\r\nhttps://github.com/elastic/elastic-entity-model/issues/174\r\n- latest metrics used to get the latest pre-computed value from history\r\ndata, but is it now aggregating over the `lookbackPeriod` in the source\r\nindices (which can be filtered down with `metrics.filter`)\r\n- `latest` block on the entity definition is now mandatory\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Mark Hopkin <mark.hopkin@elastic.co>","sha":"8f8e9883e0a8e78a632418a0677980f758450351"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/193999","number":193999,"mergeCommit":{"message":"[eem] remove history transforms (#193999)\n\n### Summary\r\n\r\nRemove history and backfill transforms, leaving latest transform in\r\nplace.\r\n\r\nNotable changes to latest transform:\r\n- it does not read from history output anymore but source indices\r\ndefined on the definition\r\n- it defines a `latest.lookbackPeriod` to limit the amount of data\r\ningested, which defaults to 24h\r\n- each metadata aggregation now accepts a\r\n`metadata.aggregation.lookbackPeriod` which defaults to the\r\n`latest.lookbackPeriod`\r\n- `entity.firstSeenTimestamp` is removed. this should be temporary until\r\nwe have a solution for\r\nhttps://github.com/elastic/elastic-entity-model/issues/174\r\n- latest metrics used to get the latest pre-computed value from history\r\ndata, but is it now aggregating over the `lookbackPeriod` in the source\r\nindices (which can be filtered down with `metrics.filter`)\r\n- `latest` block on the entity definition is now mandatory\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Mark Hopkin <mark.hopkin@elastic.co>","sha":"8f8e9883e0a8e78a632418a0677980f758450351"}}]}] BACKPORT--> Co-authored-by: Kevin Lacabane <kevin.lacabane@elastic.co> |
||
|
9bdf698bb7
|
[8.x] [ML] Updates for Trained Models table layout and model states (#194614) (#195546) | ||
|
6b9c7586b4
|
[8.x] [Security GenAI] Remove assistantBedrockChat feature flag (#195461) (#195516)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security GenAI] Remove `assistantBedrockChat` feature flag (#195461)](https://github.com/elastic/kibana/pull/195461) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Steph Milovic","email":"stephanie.milovic@elastic.co"},"sourceCommit":{"committedDate":"2024-10-08T22:31:05Z","message":"[Security GenAI] Remove `assistantBedrockChat` feature flag (#195461)","sha":"38d0bdd3deeb72ca4e502361fb0df1f68fa7f443","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","v9.0.0","Team: SecuritySolution","backport:prev-minor","Team:Security Generative AI","v8.16.0"],"number":195461,"url":"https://github.com/elastic/kibana/pull/195461","mergeCommit":{"message":"[Security GenAI] Remove `assistantBedrockChat` feature flag (#195461)","sha":"38d0bdd3deeb72ca4e502361fb0df1f68fa7f443"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195461","number":195461,"mergeCommit":{"message":"[Security GenAI] Remove `assistantBedrockChat` feature flag (#195461)","sha":"38d0bdd3deeb72ca4e502361fb0df1f68fa7f443"}},{"branch":"8.x","label":"v8.16.0","labelRegex":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> |
||
|
e8992e3749
|
[8.x] [Security Assistant] V2 Knowledge Base Settings feedback and fixes (#194354) (#195644)
# Backport This will backport the following commits from `main` to `8.x`: - [[Security Assistant] V2 Knowledge Base Settings feedback and fixes (#194354)](https://github.com/elastic/kibana/pull/194354) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Garrett Spong","email":"spong@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-09T16:17:47Z","message":"[Security Assistant] V2 Knowledge Base Settings feedback and fixes (#194354)\n\n## Summary\r\n\r\nThis PR is a follow up to #192665 and addresses a bunch of feedback and\r\nfixes including:\r\n\r\n- [X] Adds support for updating/editing entries\r\n- [X] Fixes initial loading experience of the KB Settings Setup/Table\r\n- [X] Fixes two bugs where `semantic_text` and `text` must be declared\r\nfor `IndexEntries` to work\r\n- [X] Add new Settings Context Menu items for KB and Alerts\r\n - [X] Add support for `required` entries in initial prompt\r\n* See [this\r\ntrace](https://smith.langchain.com/public/84a17a31-8ce8-4bd9-911e-38a854484dd8/r)\r\nfor included knowledge. Note that the KnowledgeBaseRetrievalTool was not\r\nselected.\r\n* Note: All prompts were updated to include the `{knowledge_history}`\r\nplaceholder, and _not behind the feature flag_, as this will just be the\r\nempty case until the feature flag is enabled.\r\n\r\nTODO (in this or follow-up PR):\r\n - [ ] Add suggestions to `index` and `fields` inputs\r\n - [ ] Adds URL deeplinking to securityAssistantManagement\r\n- [ ] Fix bug where updating entry does not re-create embeddings (see\r\n[comment](https://github.com/elastic/kibana/pull/194354#discussion_r1786475496))\r\n - [ ] Fix loading indicators when adding/editing entries\r\n - [ ] API integration tests for update API (@e40pud)\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [X] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n* Docs being tracked in\r\nhttps://github.com/elastic/security-docs/issues/5337 for when feature\r\nflag is enabled\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Patryk Kopycinski <contact@patrykkopycinski.com>","sha":"7df36721923159f45bc4fdbd26f76b20ad84249a","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Feature:Security Assistant","Team:Security Generative AI","v8.16.0","backport:version"],"title":"[Security Assistant] V2 Knowledge Base Settings feedback and fixes","number":194354,"url":"https://github.com/elastic/kibana/pull/194354","mergeCommit":{"message":"[Security Assistant] V2 Knowledge Base Settings feedback and fixes (#194354)\n\n## Summary\r\n\r\nThis PR is a follow up to #192665 and addresses a bunch of feedback and\r\nfixes including:\r\n\r\n- [X] Adds support for updating/editing entries\r\n- [X] Fixes initial loading experience of the KB Settings Setup/Table\r\n- [X] Fixes two bugs where `semantic_text` and `text` must be declared\r\nfor `IndexEntries` to work\r\n- [X] Add new Settings Context Menu items for KB and Alerts\r\n - [X] Add support for `required` entries in initial prompt\r\n* See [this\r\ntrace](https://smith.langchain.com/public/84a17a31-8ce8-4bd9-911e-38a854484dd8/r)\r\nfor included knowledge. Note that the KnowledgeBaseRetrievalTool was not\r\nselected.\r\n* Note: All prompts were updated to include the `{knowledge_history}`\r\nplaceholder, and _not behind the feature flag_, as this will just be the\r\nempty case until the feature flag is enabled.\r\n\r\nTODO (in this or follow-up PR):\r\n - [ ] Add suggestions to `index` and `fields` inputs\r\n - [ ] Adds URL deeplinking to securityAssistantManagement\r\n- [ ] Fix bug where updating entry does not re-create embeddings (see\r\n[comment](https://github.com/elastic/kibana/pull/194354#discussion_r1786475496))\r\n - [ ] Fix loading indicators when adding/editing entries\r\n - [ ] API integration tests for update API (@e40pud)\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [X] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n* Docs being tracked in\r\nhttps://github.com/elastic/security-docs/issues/5337 for when feature\r\nflag is enabled\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Patryk Kopycinski <contact@patrykkopycinski.com>","sha":"7df36721923159f45bc4fdbd26f76b20ad84249a"}},"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/194354","number":194354,"mergeCommit":{"message":"[Security Assistant] V2 Knowledge Base Settings feedback and fixes (#194354)\n\n## Summary\r\n\r\nThis PR is a follow up to #192665 and addresses a bunch of feedback and\r\nfixes including:\r\n\r\n- [X] Adds support for updating/editing entries\r\n- [X] Fixes initial loading experience of the KB Settings Setup/Table\r\n- [X] Fixes two bugs where `semantic_text` and `text` must be declared\r\nfor `IndexEntries` to work\r\n- [X] Add new Settings Context Menu items for KB and Alerts\r\n - [X] Add support for `required` entries in initial prompt\r\n* See [this\r\ntrace](https://smith.langchain.com/public/84a17a31-8ce8-4bd9-911e-38a854484dd8/r)\r\nfor included knowledge. Note that the KnowledgeBaseRetrievalTool was not\r\nselected.\r\n* Note: All prompts were updated to include the `{knowledge_history}`\r\nplaceholder, and _not behind the feature flag_, as this will just be the\r\nempty case until the feature flag is enabled.\r\n\r\nTODO (in this or follow-up PR):\r\n - [ ] Add suggestions to `index` and `fields` inputs\r\n - [ ] Adds URL deeplinking to securityAssistantManagement\r\n- [ ] Fix bug where updating entry does not re-create embeddings (see\r\n[comment](https://github.com/elastic/kibana/pull/194354#discussion_r1786475496))\r\n - [ ] Fix loading indicators when adding/editing entries\r\n - [ ] API integration tests for update API (@e40pud)\r\n\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [X] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n* Docs being tracked in\r\nhttps://github.com/elastic/security-docs/issues/5337 for when feature\r\nflag is enabled\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Patryk Kopycinski <contact@patrykkopycinski.com>","sha":"7df36721923159f45bc4fdbd26f76b20ad84249a"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Garrett Spong <spong@users.noreply.github.com> |
||
|
0751a8ea34
|
[8.x] [Cloud Security]Vulnerabilities table in Contextual flyout (#195143) (#195597)
# Backport This will backport the following commits from `main` to `8.x`: - [[Cloud Security]Vulnerabilities table in Contextual flyout (#195143)](https://github.com/elastic/kibana/pull/195143) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Rickyanto Ang","email":"rickyangwyn@gmail.com"},"sourceCommit":{"committedDate":"2024-10-09T13:25:28Z","message":"[Cloud Security]Vulnerabilities table in Contextual flyout (#195143)\n\n## Summary\r\n\r\nThis PR is for Vulnerabilities data table in contextual flyout\r\nIt also addresses the ticket to remove Empty State for Preview Component\r\n[ticket](https://github.com/elastic/security-team/issues/10746)\r\n<img width=\"1510\" alt=\"Screenshot 2024-10-07 at 2 14 52 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/3c4cdc86-68c6-439c-96a1-92cece88e42e\">\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Maxim Kholod <maxim.kholod@elastic.co>","sha":"59f2f85b8a18cc23c7f0c168830fbc304a9346b6","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Cloud Security","backport:prev-minor","ci:build-cloud-image","ci:project-deploy-security","v8.16.0"],"title":"[Cloud Security]Vulnerabilities table in Contextual flyout","number":195143,"url":"https://github.com/elastic/kibana/pull/195143","mergeCommit":{"message":"[Cloud Security]Vulnerabilities table in Contextual flyout (#195143)\n\n## Summary\r\n\r\nThis PR is for Vulnerabilities data table in contextual flyout\r\nIt also addresses the ticket to remove Empty State for Preview Component\r\n[ticket](https://github.com/elastic/security-team/issues/10746)\r\n<img width=\"1510\" alt=\"Screenshot 2024-10-07 at 2 14 52 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/3c4cdc86-68c6-439c-96a1-92cece88e42e\">\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Maxim Kholod <maxim.kholod@elastic.co>","sha":"59f2f85b8a18cc23c7f0c168830fbc304a9346b6"}},"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/195143","number":195143,"mergeCommit":{"message":"[Cloud Security]Vulnerabilities table in Contextual flyout (#195143)\n\n## Summary\r\n\r\nThis PR is for Vulnerabilities data table in contextual flyout\r\nIt also addresses the ticket to remove Empty State for Preview Component\r\n[ticket](https://github.com/elastic/security-team/issues/10746)\r\n<img width=\"1510\" alt=\"Screenshot 2024-10-07 at 2 14 52 AM\"\r\nsrc=\"https://github.com/user-attachments/assets/3c4cdc86-68c6-439c-96a1-92cece88e42e\">\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by: Maxim Kholod <maxim.kholod@elastic.co>","sha":"59f2f85b8a18cc23c7f0c168830fbc304a9346b6"}},{"branch":"8.x","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Rickyanto Ang <rickyangwyn@gmail.com> |
||
|
0556cfc88f
|
[8.x] [Cloud Security] Fix vulnerability detection rule creation logic (#195291) (#195596)
# Backport This will backport the following commits from `main` to `8.x`: - [[Cloud Security] Fix vulnerability detection rule creation logic (#195291)](https://github.com/elastic/kibana/pull/195291) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Jordan","email":"51442161+JordanSh@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-10-09T13:18:33Z","message":"[Cloud Security] Fix vulnerability detection rule creation logic (#195291)","sha":"fbf3f8b8b24575bd9fdc10e05ed0e5032a1a4340","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:Cloud Security","backport:prev-minor"],"title":"[Cloud Security] Fix vulnerability detection rule creation logic","number":195291,"url":"https://github.com/elastic/kibana/pull/195291","mergeCommit":{"message":"[Cloud Security] Fix vulnerability detection rule creation logic (#195291)","sha":"fbf3f8b8b24575bd9fdc10e05ed0e5032a1a4340"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195291","number":195291,"mergeCommit":{"message":"[Cloud Security] Fix vulnerability detection rule creation logic (#195291)","sha":"fbf3f8b8b24575bd9fdc10e05ed0e5032a1a4340"}}]}] BACKPORT--> Co-authored-by: Jordan <51442161+JordanSh@users.noreply.github.com> |
||
|
c033f0d0bd
|
[8.x] [RCA] Events timeline !! (#193265) (#195280)
# Backport This will backport the following commits from `main` to `8.x`: - [[RCA] Events timeline !! (#193265)](https://github.com/elastic/kibana/pull/193265) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Shahzad","email":"shahzad31comp@gmail.com"},"sourceCommit":{"committedDate":"2024-10-07T13:41:24Z","message":"[RCA] Events timeline !! (#193265)\n\n## Summary\r\n\r\nEvents timeline !!\r\n\r\n<img width=\"1728\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/c00c2368-5f7e-4e5e-a6a1-cbcfacb859cd\">\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"89f28025052da4309087014330ed649468fc78b5","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor","ci:project-deploy-observability"],"number":193265,"url":"https://github.com/elastic/kibana/pull/193265","mergeCommit":{"message":"[RCA] Events timeline !! (#193265)\n\n## Summary\r\n\r\nEvents timeline !!\r\n\r\n<img width=\"1728\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/c00c2368-5f7e-4e5e-a6a1-cbcfacb859cd\">\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"89f28025052da4309087014330ed649468fc78b5"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/193265","number":193265,"mergeCommit":{"message":"[RCA] Events timeline !! (#193265)\n\n## Summary\r\n\r\nEvents timeline !!\r\n\r\n<img width=\"1728\" alt=\"image\"\r\nsrc=\"https://github.com/user-attachments/assets/c00c2368-5f7e-4e5e-a6a1-cbcfacb859cd\">\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"89f28025052da4309087014330ed649468fc78b5"}}]}] BACKPORT--> |