# Backport This will backport the following commits from `main` to `8.18`: - [[Security Solution] Fix timeline dynamic batching (#204034)](https://github.com/elastic/kibana/pull/204034) - [[ Security Solution ] Fix Refetch logic with new timeline batching (#205893)](https://github.com/elastic/kibana/pull/205893) <!--- Backport version: 9.6.4 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Jatin Kathuria","email":"jatin.kathuria@elastic.co"},"sourceCommit":{"committedDate":"2025-01-07T06:20:30Z","message":"[Security Solution] Fix timeline dynamic batching (#204034)\n\n## Summary\r\n\r\nHandles :\r\n\r\n\r\n### Issue with Batches\r\n- https://github.com/elastic/kibana/issues/201405\r\n- Timeline had a bug where if users fetched multiple batches and then if\r\nuser adds a new column, the value of this new columns will only be\r\nfetched for the latest batch and not old batches.\r\n- This PR fixes that ✅ by cumulatively fetching the data for old batches\r\ntill current batch `iff a new column has been added`.\r\n- For example, if user has already fetched the 3rd batch, data for\r\n1st,2nd and 3rd will be fetched together when a column has been added,\r\notherwise, data will be fetched incrementally.\r\n\r\n### Issue with Elastic search limit\r\n\r\n- Elastic search has a limit of 10K hits at max but we throw error at\r\n10K which should be allowed.\r\n - Error should be thrown at anything `>10K`. 10001 for example.\r\n - ✅ This PR fixes that just for timeline by allowing 10K hits.\r\n\r\n### Removal of obsolete code\r\n\r\nBelow files related to old Timeline code are removed as well:\r\n-\r\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\r\n-\r\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\r\n\r\n---------\r\n\r\nCo-authored-by: Philippe Oberti <philippe.oberti@elastic.co>","sha":"088169f446788f9fa8800d77817881524514943e","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","backport missing","v9.0.0","Team:Threat Hunting:Investigations","backport:prev-minor","v8.16.3","v8.19.0"],"title":"[Security Solution] Fix timeline dynamic batching","number":204034,"url":"https://github.com/elastic/kibana/pull/204034","mergeCommit":{"message":"[Security Solution] Fix timeline dynamic batching (#204034)\n\n## Summary\r\n\r\nHandles :\r\n\r\n\r\n### Issue with Batches\r\n- https://github.com/elastic/kibana/issues/201405\r\n- Timeline had a bug where if users fetched multiple batches and then if\r\nuser adds a new column, the value of this new columns will only be\r\nfetched for the latest batch and not old batches.\r\n- This PR fixes that ✅ by cumulatively fetching the data for old batches\r\ntill current batch `iff a new column has been added`.\r\n- For example, if user has already fetched the 3rd batch, data for\r\n1st,2nd and 3rd will be fetched together when a column has been added,\r\notherwise, data will be fetched incrementally.\r\n\r\n### Issue with Elastic search limit\r\n\r\n- Elastic search has a limit of 10K hits at max but we throw error at\r\n10K which should be allowed.\r\n - Error should be thrown at anything `>10K`. 10001 for example.\r\n - ✅ This PR fixes that just for timeline by allowing 10K hits.\r\n\r\n### Removal of obsolete code\r\n\r\nBelow files related to old Timeline code are removed as well:\r\n-\r\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\r\n-\r\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\r\n\r\n---------\r\n\r\nCo-authored-by: Philippe Oberti <philippe.oberti@elastic.co>","sha":"088169f446788f9fa8800d77817881524514943e"}},"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/204034","number":204034,"mergeCommit":{"message":"[Security Solution] Fix timeline dynamic batching (#204034)\n\n## Summary\r\n\r\nHandles :\r\n\r\n\r\n### Issue with Batches\r\n- https://github.com/elastic/kibana/issues/201405\r\n- Timeline had a bug where if users fetched multiple batches and then if\r\nuser adds a new column, the value of this new columns will only be\r\nfetched for the latest batch and not old batches.\r\n- This PR fixes that ✅ by cumulatively fetching the data for old batches\r\ntill current batch `iff a new column has been added`.\r\n- For example, if user has already fetched the 3rd batch, data for\r\n1st,2nd and 3rd will be fetched together when a column has been added,\r\notherwise, data will be fetched incrementally.\r\n\r\n### Issue with Elastic search limit\r\n\r\n- Elastic search has a limit of 10K hits at max but we throw error at\r\n10K which should be allowed.\r\n - Error should be thrown at anything `>10K`. 10001 for example.\r\n - ✅ This PR fixes that just for timeline by allowing 10K hits.\r\n\r\n### Removal of obsolete code\r\n\r\nBelow files related to old Timeline code are removed as well:\r\n-\r\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\r\n-\r\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\r\n\r\n---------\r\n\r\nCo-authored-by: Philippe Oberti <philippe.oberti@elastic.co>","sha":"088169f446788f9fa8800d77817881524514943e"}},{"branch":"8.16","label":"v8.16.3","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/205674","number":205674,"state":"OPEN"},{"branch":"8.19","label":"v8.19.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"url":"https://github.com/elastic/kibana/pull/205676","number":205676,"branch":"8.17","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/205702","number":205702,"branch":"8.x","state":"MERGED","mergeCommit":{"sha":"e480de112ae6bc121c4415e2e1726dd551805672","message":"[8.x] [Security Solution] Fix timeline dynamic batching (#204034) (#205702)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.x`:\n- [[Security Solution] Fix timeline dynamic batching\n(#204034)](https://github.com/elastic/kibana/pull/204034)\n - https://github.com/elastic/kibana/pull/205893\n\n<!--- Backport version: 8.9.8 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Jatin\nKathuria\",\"email\":\"jatin.kathuria@elastic.co\"},\"sourceCommit\":{\"committedDate\":\"2025-01-07T06:20:30Z\",\"message\":\"[Security\nSolution] Fix timeline dynamic batching (#204034)\\n\\n##\nSummary\\r\\n\\r\\nHandles :\\r\\n\\r\\n\\r\\n### Issue with Batches\\r\\n-\nhttps://github.com/elastic/kibana/issues/201405\\r\\n- Timeline had a bug\nwhere if users fetched multiple batches and then if\\r\\nuser adds a new\ncolumn, the value of this new columns will only be\\r\\nfetched for the\nlatest batch and not old batches.\\r\\n- This PR fixes that ✅ by\ncumulatively fetching the data for old batches\\r\\ntill current batch\n`iff a new column has been added`.\\r\\n- For example, if user has already\nfetched the 3rd batch, data for\\r\\n1st,2nd and 3rd will be fetched\ntogether when a column has been added,\\r\\notherwise, data will be\nfetched incrementally.\\r\\n\\r\\n### Issue with Elastic search\nlimit\\r\\n\\r\\n- Elastic search has a limit of 10K hits at max but we\nthrow error at\\r\\n10K which should be allowed.\\r\\n - Error should be\nthrown at anything `>10K`. 10001 for example.\\r\\n - ✅ This PR fixes that\njust for timeline by allowing 10K hits.\\r\\n\\r\\n### Removal of obsolete\ncode\\r\\n\\r\\nBelow files related to old Timeline code are removed as\nwell:\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nPhilippe Oberti\n<philippe.oberti@elastic.co>\",\"sha\":\"088169f446788f9fa8800d77817881524514943e\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.18.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"release_note:fix\",\"v9.0.0\",\"Team:Threat\nHunting:Investigations\",\"backport:prev-minor\",\"v8.16.3\"],\"number\":204034,\"url\":\"https://github.com/elastic/kibana/pull/204034\",\"mergeCommit\":{\"message\":\"[Security\nSolution] Fix timeline dynamic batching (#204034)\\n\\n##\nSummary\\r\\n\\r\\nHandles :\\r\\n\\r\\n\\r\\n### Issue with Batches\\r\\n-\nhttps://github.com/elastic/kibana/issues/201405\\r\\n- Timeline had a bug\nwhere if users fetched multiple batches and then if\\r\\nuser adds a new\ncolumn, the value of this new columns will only be\\r\\nfetched for the\nlatest batch and not old batches.\\r\\n- This PR fixes that ✅ by\ncumulatively fetching the data for old batches\\r\\ntill current batch\n`iff a new column has been added`.\\r\\n- For example, if user has already\nfetched the 3rd batch, data for\\r\\n1st,2nd and 3rd will be fetched\ntogether when a column has been added,\\r\\notherwise, data will be\nfetched incrementally.\\r\\n\\r\\n### Issue with Elastic search\nlimit\\r\\n\\r\\n- Elastic search has a limit of 10K hits at max but we\nthrow error at\\r\\n10K which should be allowed.\\r\\n - Error should be\nthrown at anything `>10K`. 10001 for example.\\r\\n - ✅ This PR fixes that\njust for timeline by allowing 10K hits.\\r\\n\\r\\n### Removal of obsolete\ncode\\r\\n\\r\\nBelow files related to old Timeline code are removed as\nwell:\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nPhilippe Oberti\n<philippe.oberti@elastic.co>\",\"sha\":\"088169f446788f9fa8800d77817881524514943e\"}},\"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/204034\",\"number\":204034,\"mergeCommit\":{\"message\":\"[Security\nSolution] Fix timeline dynamic batching (#204034)\\n\\n##\nSummary\\r\\n\\r\\nHandles :\\r\\n\\r\\n\\r\\n### Issue with Batches\\r\\n-\nhttps://github.com/elastic/kibana/issues/201405\\r\\n- Timeline had a bug\nwhere if users fetched multiple batches and then if\\r\\nuser adds a new\ncolumn, the value of this new columns will only be\\r\\nfetched for the\nlatest batch and not old batches.\\r\\n- This PR fixes that ✅ by\ncumulatively fetching the data for old batches\\r\\ntill current batch\n`iff a new column has been added`.\\r\\n- For example, if user has already\nfetched the 3rd batch, data for\\r\\n1st,2nd and 3rd will be fetched\ntogether when a column has been added,\\r\\notherwise, data will be\nfetched incrementally.\\r\\n\\r\\n### Issue with Elastic search\nlimit\\r\\n\\r\\n- Elastic search has a limit of 10K hits at max but we\nthrow error at\\r\\n10K which should be allowed.\\r\\n - Error should be\nthrown at anything `>10K`. 10001 for example.\\r\\n - ✅ This PR fixes that\njust for timeline by allowing 10K hits.\\r\\n\\r\\n### Removal of obsolete\ncode\\r\\n\\r\\nBelow files related to old Timeline code are removed as\nwell:\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nPhilippe Oberti\n<philippe.oberti@elastic.co>\",\"sha\":\"088169f446788f9fa8800d77817881524514943e\"}},{\"branch\":\"8.16\",\"label\":\"v8.16.3\",\"labelRegex\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"url\":\"https://github.com/elastic/kibana/pull/205674\",\"number\":205674,\"state\":\"OPEN\"},{\"url\":\"https://github.com/elastic/kibana/pull/205676\",\"number\":205676,\"branch\":\"8.17\",\"state\":\"OPEN\"}]}]\nBACKPORT-->\n\n---------\n\nCo-authored-by: Philippe Oberti <philippe.oberti@elastic.co>\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>"}}]},{"author":{"name":"Jatin Kathuria","email":"jatin.kathuria@elastic.co"},"sourceCommit":{"committedDate":"2025-02-05T21:12:38Z","message":"[ Security Solution ] Fix Refetch logic with new timeline batching (#205893)\n\n## Summary\n\nPR : https://github.com/elastic/kibana/pull/204034 fixed some issues\nwith timeline batching. It was not able to fix one of the issue with\n`Refetch` logic which exists in `main` ( resulting in a flaky test ) and\ncausing some tests to fail in `8.16`, `8.17` and `8.x`.\n\n## Issue Description\n\nThere are 2 issues with below video:\n\n1. When user updates a status of an alert, the `Refetch` only happens on\nthe first `batch`. This behaviour is flaky currently. Even if the user\nis on nth batch, table will fetch 0th batch and reset the user's page\nback to 1.\n\n\n\nhttps://github.com/user-attachments/assets/eaf88a82-0e9b-4743-8b2d-60fd327a2443\n \n\n\n3. When user clicks `Refresh` manually, then also only first (0th)\n`batch` is fetched, which should have rather fetched all the present\nbatches.\n\n\n\n\nhttps://github.com/user-attachments/assets/8d578ce3-4f24-4e70-bc3a-ed6ba99167a0\n\n\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios","sha":"54b4fac705c231b52396d70906f3259f9b129a3b","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["backport","release_note:skip","v9.0.0","Team:Threat Hunting:Investigations","v9.1.0"],"title":"[ Security Solution ] Fix Refetch logic with new timeline batching","number":205893,"url":"https://github.com/elastic/kibana/pull/205893","mergeCommit":{"message":"[ Security Solution ] Fix Refetch logic with new timeline batching (#205893)\n\n## Summary\n\nPR : https://github.com/elastic/kibana/pull/204034 fixed some issues\nwith timeline batching. It was not able to fix one of the issue with\n`Refetch` logic which exists in `main` ( resulting in a flaky test ) and\ncausing some tests to fail in `8.16`, `8.17` and `8.x`.\n\n## Issue Description\n\nThere are 2 issues with below video:\n\n1. When user updates a status of an alert, the `Refetch` only happens on\nthe first `batch`. This behaviour is flaky currently. Even if the user\nis on nth batch, table will fetch 0th batch and reset the user's page\nback to 1.\n\n\n\nhttps://github.com/user-attachments/assets/eaf88a82-0e9b-4743-8b2d-60fd327a2443\n \n\n\n3. When user clicks `Refresh` manually, then also only first (0th)\n`batch` is fetched, which should have rather fetched all the present\nbatches.\n\n\n\n\nhttps://github.com/user-attachments/assets/8d578ce3-4f24-4e70-bc3a-ed6ba99167a0\n\n\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios","sha":"54b4fac705c231b52396d70906f3259f9b129a3b"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"9.0","label":"v9.0.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/209916","number":209916,"state":"MERGED","mergeCommit":{"sha":"aeaff4957aded708fecfa0e57f16b3cba5f77485","message":"[9.0] [ Security Solution ] Fix Refetch logic with new timeline batching (#205893) (#209916)\n\n# Backport\n\nThis will backport the following commits from `main` to `9.0`:\n- [[ Security Solution ] Fix Refetch logic with new timeline batching\n(#205893)](https://github.com/elastic/kibana/pull/205893)\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\":\"Jatin\nKathuria\",\"email\":\"jatin.kathuria@elastic.co\"},\"sourceCommit\":{\"committedDate\":\"2025-02-05T21:12:38Z\",\"message\":\"[\nSecurity Solution ] Fix Refetch logic with new timeline batching\n(#205893)\\n\\n## Summary\\n\\nPR :\nhttps://github.com/elastic/kibana/pull/204034 fixed some issues\\nwith\ntimeline batching. It was not able to fix one of the issue\nwith\\n`Refetch` logic which exists in `main` ( resulting in a flaky test\n) and\\ncausing some tests to fail in `8.16`, `8.17` and `8.x`.\\n\\n##\nIssue Description\\n\\nThere are 2 issues with below video:\\n\\n1. When\nuser updates a status of an alert, the `Refetch` only happens on\\nthe\nfirst `batch`. This behaviour is flaky currently. Even if the user\\nis\non nth batch, table will fetch 0th batch and reset the user's page\\nback\nto\n1.\\n\\n\\n\\nhttps://github.com/user-attachments/assets/eaf88a82-0e9b-4743-8b2d-60fd327a2443\\n\n\\n\\n\\n3. When user clicks `Refresh` manually, then also only first\n(0th)\\n`batch` is fetched, which should have rather fetched all the\npresent\\nbatches.\\n\\n\\n\\n\\nhttps://github.com/user-attachments/assets/8d578ce3-4f24-4e70-bc3a-ed6ba99167a0\\n\\n\\n\\n###\nChecklist\\n\\nCheck the PR satisfies following conditions. \\n\\nReviewers\nshould verify this PR satisfies this list as well.\\n\\n\\n- [x] [Unit or\nfunctional\\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\\nwere\nupdated or added to match the most common\nscenarios\",\"sha\":\"54b4fac705c231b52396d70906f3259f9b129a3b\",\"branchLabelMapping\":{\"^v9.1.0$\":\"main\",\"^v8.19.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"backport\",\"release_note:skip\",\"Team:Threat\nHunting:Investigations\",\"v8.9.1\",\"v9.1.0\"],\"title\":\"[ Security Solution\n] Fix Refetch logic with new timeline\nbatching\",\"number\":205893,\"url\":\"https://github.com/elastic/kibana/pull/205893\",\"mergeCommit\":{\"message\":\"[\nSecurity Solution ] Fix Refetch logic with new timeline batching\n(#205893)\\n\\n## Summary\\n\\nPR :\nhttps://github.com/elastic/kibana/pull/204034 fixed some issues\\nwith\ntimeline batching. It was not able to fix one of the issue\nwith\\n`Refetch` logic which exists in `main` ( resulting in a flaky test\n) and\\ncausing some tests to fail in `8.16`, `8.17` and `8.x`.\\n\\n##\nIssue Description\\n\\nThere are 2 issues with below video:\\n\\n1. When\nuser updates a status of an alert, the `Refetch` only happens on\\nthe\nfirst `batch`. This behaviour is flaky currently. Even if the user\\nis\non nth batch, table will fetch 0th batch and reset the user's page\\nback\nto\n1.\\n\\n\\n\\nhttps://github.com/user-attachments/assets/eaf88a82-0e9b-4743-8b2d-60fd327a2443\\n\n\\n\\n\\n3. When user clicks `Refresh` manually, then also only first\n(0th)\\n`batch` is fetched, which should have rather fetched all the\npresent\\nbatches.\\n\\n\\n\\n\\nhttps://github.com/user-attachments/assets/8d578ce3-4f24-4e70-bc3a-ed6ba99167a0\\n\\n\\n\\n###\nChecklist\\n\\nCheck the PR satisfies following conditions. \\n\\nReviewers\nshould verify this PR satisfies this list as well.\\n\\n\\n- [x] [Unit or\nfunctional\\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\\nwere\nupdated or added to match the most common\nscenarios\",\"sha\":\"54b4fac705c231b52396d70906f3259f9b129a3b\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"8.9\"],\"targetPullRequestStates\":[{\"branch\":\"8.9\",\"label\":\"v8.9.1\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"main\",\"label\":\"v9.1.0\",\"branchLabelMappingKey\":\"^v9.1.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/205893\",\"number\":205893,\"mergeCommit\":{\"message\":\"[\nSecurity Solution ] Fix Refetch logic with new timeline batching\n(#205893)\\n\\n## Summary\\n\\nPR :\nhttps://github.com/elastic/kibana/pull/204034 fixed some issues\\nwith\ntimeline batching. It was not able to fix one of the issue\nwith\\n`Refetch` logic which exists in `main` ( resulting in a flaky test\n) and\\ncausing some tests to fail in `8.16`, `8.17` and `8.x`.\\n\\n##\nIssue Description\\n\\nThere are 2 issues with below video:\\n\\n1. When\nuser updates a status of an alert, the `Refetch` only happens on\\nthe\nfirst `batch`. This behaviour is flaky currently. Even if the user\\nis\non nth batch, table will fetch 0th batch and reset the user's page\\nback\nto\n1.\\n\\n\\n\\nhttps://github.com/user-attachments/assets/eaf88a82-0e9b-4743-8b2d-60fd327a2443\\n\n\\n\\n\\n3. When user clicks `Refresh` manually, then also only first\n(0th)\\n`batch` is fetched, which should have rather fetched all the\npresent\\nbatches.\\n\\n\\n\\n\\nhttps://github.com/user-attachments/assets/8d578ce3-4f24-4e70-bc3a-ed6ba99167a0\\n\\n\\n\\n###\nChecklist\\n\\nCheck the PR satisfies following conditions. \\n\\nReviewers\nshould verify this PR satisfies this list as well.\\n\\n\\n- [x] [Unit or\nfunctional\\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\\nwere\nupdated or added to match the most common\nscenarios\",\"sha\":\"54b4fac705c231b52396d70906f3259f9b129a3b\"}}]}]\nBACKPORT-->\n\nCo-authored-by: Jatin Kathuria <jatin.kathuria@elastic.co>"}},{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/205893","number":205893,"mergeCommit":{"message":"[ Security Solution ] Fix Refetch logic with new timeline batching (#205893)\n\n## Summary\n\nPR : https://github.com/elastic/kibana/pull/204034 fixed some issues\nwith timeline batching. It was not able to fix one of the issue with\n`Refetch` logic which exists in `main` ( resulting in a flaky test ) and\ncausing some tests to fail in `8.16`, `8.17` and `8.x`.\n\n## Issue Description\n\nThere are 2 issues with below video:\n\n1. When user updates a status of an alert, the `Refetch` only happens on\nthe first `batch`. This behaviour is flaky currently. Even if the user\nis on nth batch, table will fetch 0th batch and reset the user's page\nback to 1.\n\n\n\nhttps://github.com/user-attachments/assets/eaf88a82-0e9b-4743-8b2d-60fd327a2443\n \n\n\n3. When user clicks `Refresh` manually, then also only first (0th)\n`batch` is fetched, which should have rather fetched all the present\nbatches.\n\n\n\n\nhttps://github.com/user-attachments/assets/8d578ce3-4f24-4e70-bc3a-ed6ba99167a0\n\n\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios","sha":"54b4fac705c231b52396d70906f3259f9b129a3b"}},{"url":"https://github.com/elastic/kibana/pull/205676","number":205676,"branch":"8.17","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/205702","number":205702,"branch":"8.x","state":"MERGED","mergeCommit":{"sha":"e480de112ae6bc121c4415e2e1726dd551805672","message":"[8.x] [Security Solution] Fix timeline dynamic batching (#204034) (#205702)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.x`:\n- [[Security Solution] Fix timeline dynamic batching\n(#204034)](https://github.com/elastic/kibana/pull/204034)\n - https://github.com/elastic/kibana/pull/205893\n\n<!--- Backport version: 8.9.8 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Jatin\nKathuria\",\"email\":\"jatin.kathuria@elastic.co\"},\"sourceCommit\":{\"committedDate\":\"2025-01-07T06:20:30Z\",\"message\":\"[Security\nSolution] Fix timeline dynamic batching (#204034)\\n\\n##\nSummary\\r\\n\\r\\nHandles :\\r\\n\\r\\n\\r\\n### Issue with Batches\\r\\n-\nhttps://github.com/elastic/kibana/issues/201405\\r\\n- Timeline had a bug\nwhere if users fetched multiple batches and then if\\r\\nuser adds a new\ncolumn, the value of this new columns will only be\\r\\nfetched for the\nlatest batch and not old batches.\\r\\n- This PR fixes that ✅ by\ncumulatively fetching the data for old batches\\r\\ntill current batch\n`iff a new column has been added`.\\r\\n- For example, if user has already\nfetched the 3rd batch, data for\\r\\n1st,2nd and 3rd will be fetched\ntogether when a column has been added,\\r\\notherwise, data will be\nfetched incrementally.\\r\\n\\r\\n### Issue with Elastic search\nlimit\\r\\n\\r\\n- Elastic search has a limit of 10K hits at max but we\nthrow error at\\r\\n10K which should be allowed.\\r\\n - Error should be\nthrown at anything `>10K`. 10001 for example.\\r\\n - ✅ This PR fixes that\njust for timeline by allowing 10K hits.\\r\\n\\r\\n### Removal of obsolete\ncode\\r\\n\\r\\nBelow files related to old Timeline code are removed as\nwell:\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nPhilippe Oberti\n<philippe.oberti@elastic.co>\",\"sha\":\"088169f446788f9fa8800d77817881524514943e\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.18.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"release_note:fix\",\"v9.0.0\",\"Team:Threat\nHunting:Investigations\",\"backport:prev-minor\",\"v8.16.3\"],\"number\":204034,\"url\":\"https://github.com/elastic/kibana/pull/204034\",\"mergeCommit\":{\"message\":\"[Security\nSolution] Fix timeline dynamic batching (#204034)\\n\\n##\nSummary\\r\\n\\r\\nHandles :\\r\\n\\r\\n\\r\\n### Issue with Batches\\r\\n-\nhttps://github.com/elastic/kibana/issues/201405\\r\\n- Timeline had a bug\nwhere if users fetched multiple batches and then if\\r\\nuser adds a new\ncolumn, the value of this new columns will only be\\r\\nfetched for the\nlatest batch and not old batches.\\r\\n- This PR fixes that ✅ by\ncumulatively fetching the data for old batches\\r\\ntill current batch\n`iff a new column has been added`.\\r\\n- For example, if user has already\nfetched the 3rd batch, data for\\r\\n1st,2nd and 3rd will be fetched\ntogether when a column has been added,\\r\\notherwise, data will be\nfetched incrementally.\\r\\n\\r\\n### Issue with Elastic search\nlimit\\r\\n\\r\\n- Elastic search has a limit of 10K hits at max but we\nthrow error at\\r\\n10K which should be allowed.\\r\\n - Error should be\nthrown at anything `>10K`. 10001 for example.\\r\\n - ✅ This PR fixes that\njust for timeline by allowing 10K hits.\\r\\n\\r\\n### Removal of obsolete\ncode\\r\\n\\r\\nBelow files related to old Timeline code are removed as\nwell:\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nPhilippe Oberti\n<philippe.oberti@elastic.co>\",\"sha\":\"088169f446788f9fa8800d77817881524514943e\"}},\"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/204034\",\"number\":204034,\"mergeCommit\":{\"message\":\"[Security\nSolution] Fix timeline dynamic batching (#204034)\\n\\n##\nSummary\\r\\n\\r\\nHandles :\\r\\n\\r\\n\\r\\n### Issue with Batches\\r\\n-\nhttps://github.com/elastic/kibana/issues/201405\\r\\n- Timeline had a bug\nwhere if users fetched multiple batches and then if\\r\\nuser adds a new\ncolumn, the value of this new columns will only be\\r\\nfetched for the\nlatest batch and not old batches.\\r\\n- This PR fixes that ✅ by\ncumulatively fetching the data for old batches\\r\\ntill current batch\n`iff a new column has been added`.\\r\\n- For example, if user has already\nfetched the 3rd batch, data for\\r\\n1st,2nd and 3rd will be fetched\ntogether when a column has been added,\\r\\notherwise, data will be\nfetched incrementally.\\r\\n\\r\\n### Issue with Elastic search\nlimit\\r\\n\\r\\n- Elastic search has a limit of 10K hits at max but we\nthrow error at\\r\\n10K which should be allowed.\\r\\n - Error should be\nthrown at anything `>10K`. 10001 for example.\\r\\n - ✅ This PR fixes that\njust for timeline by allowing 10K hits.\\r\\n\\r\\n### Removal of obsolete\ncode\\r\\n\\r\\nBelow files related to old Timeline code are removed as\nwell:\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx\\r\\n-\\r\\nx-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by:\nPhilippe Oberti\n<philippe.oberti@elastic.co>\",\"sha\":\"088169f446788f9fa8800d77817881524514943e\"}},{\"branch\":\"8.16\",\"label\":\"v8.16.3\",\"labelRegex\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"url\":\"https://github.com/elastic/kibana/pull/205674\",\"number\":205674,\"state\":\"OPEN\"},{\"url\":\"https://github.com/elastic/kibana/pull/205676\",\"number\":205676,\"branch\":\"8.17\",\"state\":\"OPEN\"}]}]\nBACKPORT-->\n\n---------\n\nCo-authored-by: Philippe Oberti <philippe.oberti@elastic.co>\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>"}},{"url":"https://github.com/elastic/kibana/pull/205674","number":205674,"branch":"8.16","state":"OPEN"}]}] BACKPORT--> |
||
---|---|---|
.. | ||
kbn-ambient-common-types | ||
kbn-ambient-ftr-types | ||
kbn-ambient-storybook-types | ||
kbn-ambient-ui-types | ||
kbn-apm-synthtrace | ||
kbn-apm-synthtrace-client | ||
kbn-axe-config | ||
kbn-babel-preset | ||
kbn-babel-register | ||
kbn-babel-transform | ||
kbn-bazel-runner | ||
kbn-capture-oas-snapshot-cli | ||
kbn-check-mappings-update-cli | ||
kbn-check-prod-native-modules-cli | ||
kbn-ci-stats-core | ||
kbn-ci-stats-performance-metrics | ||
kbn-ci-stats-reporter | ||
kbn-ci-stats-shipper-cli | ||
kbn-cli-dev-mode | ||
kbn-code-owners | ||
kbn-cypress-config | ||
kbn-dependency-usage | ||
kbn-dev-cli-errors | ||
kbn-dev-cli-runner | ||
kbn-dev-proc-runner | ||
kbn-dev-utils | ||
kbn-docs-utils | ||
kbn-es | ||
kbn-es-archiver | ||
kbn-eslint-config | ||
kbn-eslint-plugin-css | ||
kbn-eslint-plugin-disable | ||
kbn-eslint-plugin-eslint | ||
kbn-eslint-plugin-i18n | ||
kbn-eslint-plugin-imports | ||
kbn-eslint-plugin-telemetry | ||
kbn-expect | ||
kbn-failed-test-reporter-cli | ||
kbn-find-used-node-modules | ||
kbn-ftr-common-functional-services | ||
kbn-ftr-common-functional-ui-services | ||
kbn-ftr-screenshot-filename | ||
kbn-gen-ai-functional-testing | ||
kbn-generate | ||
kbn-generate-console-definitions | ||
kbn-get-repo-files | ||
kbn-import-locator | ||
kbn-import-resolver | ||
kbn-io-ts-utils | ||
kbn-jest-serializers | ||
kbn-journeys | ||
kbn-json-ast | ||
kbn-kibana-manifest-schema | ||
kbn-lint-packages-cli | ||
kbn-lint-ts-projects-cli | ||
kbn-managed-vscode-config | ||
kbn-managed-vscode-config-cli | ||
kbn-management | ||
kbn-manifest | ||
kbn-mock-idp-plugin | ||
kbn-mock-idp-utils | ||
kbn-openapi-bundler | ||
kbn-openapi-generator | ||
kbn-optimizer | ||
kbn-optimizer-webpack-helpers | ||
kbn-peggy | ||
kbn-peggy-loader | ||
kbn-performance-testing-dataset-extractor | ||
kbn-picomatcher | ||
kbn-plugin-check | ||
kbn-plugin-generator | ||
kbn-plugin-helpers | ||
kbn-relocate | ||
kbn-repo-file-maps | ||
kbn-repo-linter | ||
kbn-repo-path | ||
kbn-repo-source-classifier | ||
kbn-repo-source-classifier-cli | ||
kbn-scout | ||
kbn-scout-info | ||
kbn-scout-reporting | ||
kbn-set-map | ||
kbn-some-dev-log | ||
kbn-sort-package-json | ||
kbn-spec-to-console | ||
kbn-stdio-dev-helpers | ||
kbn-storybook | ||
kbn-styled-components-mapping-cli | ||
kbn-telemetry-tools | ||
kbn-test | ||
kbn-test-eui-helpers | ||
kbn-test-jest-helpers | ||
kbn-test-subj-selector | ||
kbn-tooling-log | ||
kbn-ts-projects | ||
kbn-ts-type-check-cli | ||
kbn-validate-next-docs-cli | ||
kbn-web-worker-stub | ||
kbn-whereis-pkg-cli | ||
kbn-yarn-lock-validator | ||
serverless/storybook/config | ||
README.md |
Kibana-related packages
This folder contains packages that are intended for use in Kibana and Kibana plugins.
tl;dr:
- Don't publish to npm registry
- Always use the
@kbn
namespace - Always set
"private": true
inpackage.json
Using these packages
We no longer publish these packages to the npm registry. Now, instead of specifying a version when including these packages, we rely on yarn workspaces, which sets up a symlink to the package.
For example if you want to use the @kbn/i18n
package in Kibana itself, you
can specify the dependency like this:
"@kbn/i18n": "1.0.0"
However, if you want to use this from a Kibana plugin, you need to use a link:
dependency and account for the relative location of the Kibana repo, so it would
instead be:
"@kbn/i18n": "link:../../kibana/src/platform/packages/shared/kbn-i18n"
then run yarn kbn bootstrap
from the plugin directory.
Creating a new package
Run the following command from the root of the Kibana repo:
node scripts/generate package @kbn/<PACKAGE_NAME> --web --owner @elastic/<TEAM_NAME>
Unit tests for a package
Currently there is only one tool being used in order to test packages which is Jest. Below we will explain how it should be done.
Jest
A package should follow the pattern of having .test.js
files as siblings of the source code files, and these run by Jest.
A package using the .test.js
naming convention will have those tests automatically picked up by Jest and run by the unit test runner, currently mapped to the Kibana test
script in the root package.json
.
yarn test
runs all unit tests.yarn jest
runs all Jest tests in Kibana.
In order for the plugin or package to use Jest, a jest.config.js file must be present in it's root. However, there are safeguards for this in CI should a test file be added without a corresponding config file.
Each package can also specify its own test
script in the package's package.json
, for cases where you'd prefer to run the tests from the local package directory.