mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
# Backport This will backport the following commits from `main` to `8.17`: - [[Bug] [Assistant API] - Do not allow empty conversation ID in chat/complete route (#11783) (#213049)](https://github.com/elastic/kibana/pull/213049) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Ievgen Sorokopud","email":"ievgen.sorokopud@elastic.co"},"sourceCommit":{"committedDate":"2025-03-04T12:05:51Z","message":"[Bug] [Assistant API] - Do not allow empty conversation ID in chat/complete route (#11783) (#213049)\n\n## Summary\n\nBUG: https://github.com/elastic/security-team/issues/11783\n\nThis PR fixes the behaviour of the\n`/api/security_ai_assistant/chat/complete` route where the\n`conversationId` can be passed as an empty string. This may lead to\nunexpected results described in\nhttps://github.com/elastic/security-team/issues/11783#issuecomment-2696529040.\n\n### Expected behaviour\n\nWe should throw a bad request (400) http error when empty\n`conversationId` has been passed.\n\n### Testing\n\n* Use this `curl` command to test the endpoint.\n\n```\ncurl --location 'http://localhost:5601/api/security_ai_assistant/chat/complete' \\\n--header 'kbn-xsrf: true' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"connectorId\": \"{{my-gpt4o-ai}}\",\n \"conversationId\": \"\",\n \"isStream\": false,\n \"messages\": [\n {\n \"content\": \"Follow up\",\n \"role\": \"user\"\n }\n ],\n \"persist\": true\n}'\n```\n\nYou should see next error as a response:\n\n```\n{\n \"statusCode\": 400,\n \"error\": \"Bad Request\",\n \"message\": \"[request body]: conversationId: String must contain at least 1 character(s), conversationId: No empty strings allowed\"\n}\n```\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"7db897a5393f2d776eca1d9760801dc2fa72ad9d","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","v9.0.0","Team: SecuritySolution","Team:Security Generative AI","backport:version","v8.17.0","v8.18.0","v9.1.0","v8.19.0"],"title":"[Bug] [Assistant API] - Do not allow empty conversation ID in chat/complete route (#11783)","number":213049,"url":"https://github.com/elastic/kibana/pull/213049","mergeCommit":{"message":"[Bug] [Assistant API] - Do not allow empty conversation ID in chat/complete route (#11783) (#213049)\n\n## Summary\n\nBUG: https://github.com/elastic/security-team/issues/11783\n\nThis PR fixes the behaviour of the\n`/api/security_ai_assistant/chat/complete` route where the\n`conversationId` can be passed as an empty string. This may lead to\nunexpected results described in\nhttps://github.com/elastic/security-team/issues/11783#issuecomment-2696529040.\n\n### Expected behaviour\n\nWe should throw a bad request (400) http error when empty\n`conversationId` has been passed.\n\n### Testing\n\n* Use this `curl` command to test the endpoint.\n\n```\ncurl --location 'http://localhost:5601/api/security_ai_assistant/chat/complete' \\\n--header 'kbn-xsrf: true' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"connectorId\": \"{{my-gpt4o-ai}}\",\n \"conversationId\": \"\",\n \"isStream\": false,\n \"messages\": [\n {\n \"content\": \"Follow up\",\n \"role\": \"user\"\n }\n ],\n \"persist\": true\n}'\n```\n\nYou should see next error as a response:\n\n```\n{\n \"statusCode\": 400,\n \"error\": \"Bad Request\",\n \"message\": \"[request body]: conversationId: String must contain at least 1 character(s), conversationId: No empty strings allowed\"\n}\n```\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"7db897a5393f2d776eca1d9760801dc2fa72ad9d"}},"sourceBranch":"main","suggestedTargetBranches":["9.0","8.17","8.18","8.x"],"targetPullRequestStates":[{"branch":"9.0","label":"v9.0.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.17","label":"v8.17.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.18","label":"v8.18.0","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/213049","number":213049,"mergeCommit":{"message":"[Bug] [Assistant API] - Do not allow empty conversation ID in chat/complete route (#11783) (#213049)\n\n## Summary\n\nBUG: https://github.com/elastic/security-team/issues/11783\n\nThis PR fixes the behaviour of the\n`/api/security_ai_assistant/chat/complete` route where the\n`conversationId` can be passed as an empty string. This may lead to\nunexpected results described in\nhttps://github.com/elastic/security-team/issues/11783#issuecomment-2696529040.\n\n### Expected behaviour\n\nWe should throw a bad request (400) http error when empty\n`conversationId` has been passed.\n\n### Testing\n\n* Use this `curl` command to test the endpoint.\n\n```\ncurl --location 'http://localhost:5601/api/security_ai_assistant/chat/complete' \\\n--header 'kbn-xsrf: true' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"connectorId\": \"{{my-gpt4o-ai}}\",\n \"conversationId\": \"\",\n \"isStream\": false,\n \"messages\": [\n {\n \"content\": \"Follow up\",\n \"role\": \"user\"\n }\n ],\n \"persist\": true\n}'\n```\n\nYou should see next error as a response:\n\n```\n{\n \"statusCode\": 400,\n \"error\": \"Bad Request\",\n \"message\": \"[request body]: conversationId: String must contain at least 1 character(s), conversationId: No empty strings allowed\"\n}\n```\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"7db897a5393f2d776eca1d9760801dc2fa72ad9d"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Ievgen Sorokopud <ievgen.sorokopud@elastic.co> |
||
---|---|---|
.. | ||
ai-infra | ||
index-lifecycle-management/index_lifecycle_management_common_shared | ||
index-management/index_management_shared_types | ||
kbn-ai-assistant | ||
kbn-ai-assistant-common | ||
kbn-alerting-comparators | ||
kbn-alerting-state-types | ||
kbn-cloud-security-posture | ||
kbn-data-forge | ||
kbn-elastic-assistant | ||
kbn-elastic-assistant-common | ||
kbn-entities-schema | ||
kbn-infra-forge | ||
kbn-langchain | ||
kbn-random-sampling | ||
kbn-slo-schema | ||
kbn-synthetics-private-location | ||
maps/vector_tile_utils | ||
ml | ||
observability | ||
rollup | ||
search/shared_ui | ||
security | ||
security-solution |