From d2fef07b80b674d6a61cb64afdd5262cdb7fd794 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 8 May 2024 11:11:53 -0500 Subject: [PATCH 01/11] [serverless] Remove screenshotting-plugin assets (#182694) This plugin is not enabled on serverless. We can't remove the entire plugin because the reporting plugin depends on it. We can remove specific assets that are not loaded. 402mb -> 280mb `docker pull docker.elastic.co/kibana-ci/kibana-serverless:pr-182694-35970c7fc1d8-arm64` Closes [#168524](https://github.com/elastic/kibana/issues/168524) --- .../docker_generator/templates/base/Dockerfile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/base/Dockerfile b/src/dev/build/tasks/os_packages/docker_generator/templates/base/Dockerfile index 2284e504229a8..e42d2a7ec1dcd 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/templates/base/Dockerfile +++ b/src/dev/build/tasks/os_packages/docker_generator/templates/base/Dockerfile @@ -25,21 +25,27 @@ RUN cd /tmp && \ https://{{publicArtifactSubdomain}}.elastic.co/downloads/kibana/{{artifactPrefix}}-$(arch).tar.gz && \ cd - {{/usePublicArtifact}} - {{^usePublicArtifact}} COPY {{artifactTarball}} /tmp/kibana.tar.gz {{/usePublicArtifact}} RUN mkdir /usr/share/kibana WORKDIR /usr/share/kibana -RUN tar --strip-components=1 -zxf /tmp/kibana.tar.gz +RUN tar \ +# Exclude serverless.yml disabled assets +{{#serverless}} + --exclude=screenshotting-plugin/chromium \ + --exclude=screenshotting-plugin/server/assets \ +{{/serverless}} + --strip-components=1 \ + -zxf /tmp/kibana.tar.gz # Ensure that group permissions are the same as user permissions. # This will help when relying on GID-0 to run Kibana, rather than UID-1000. # OpenShift does this, for example. # REF: https://docs.openshift.org/latest/creating_images/guidelines.html RUN chmod -R g=u /usr/share/kibana - {{#cloud}} + COPY {{filebeatTarball}} /tmp/filebeat.tar.gz COPY {{metricbeatTarball}} /tmp/metricbeat.tar.gz From fd44e1faf47e01631730c41bbc2fa4ab252fc916 Mon Sep 17 00:00:00 2001 From: Saikat Sarkar <132922331+saikatsarkar056@users.noreply.github.com> Date: Wed, 8 May 2024 10:22:58 -0600 Subject: [PATCH 02/11] [Semantic Text UI] Handle the case when the model is not yet downloaded (#182040) When the trained model is not yet downloaded, it can't be deployed. This PR has covered the following: - Download the model if it does not exist - Tests to support this change ### How to test the changes locally - Download the elasticsearch changes from GitHub [branch](https://github.com/elastic/elasticsearch/tree/feature/semantic-text) - Run the elasticsearch: `./gradlew :run -Drun.license_type=trial` - Download the changes of this PR in local kibana and do the following steps + Set isSemanticTextEnabled = true in this [location](https://github.com/elastic/kibana/pull/180246/files#diff-92f4739f8a4a6917951a1b6e1af21a96d54313eaa2b5ce4c0e0553dd2ee11fcaL80) + Run `yarn start` --- .../semantic_text/use_semantic_text.test.ts | 66 +++++++++++-- .../semantic_text/use_semantic_text.ts | 97 +++++++++++++------ x-pack/plugins/ml/public/index.ts | 1 + 3 files changed, 126 insertions(+), 38 deletions(-) diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/create_field/semantic_text/use_semantic_text.test.ts b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/create_field/semantic_text/use_semantic_text.test.ts index 349c13fe805c0..062c0b93c303e 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/create_field/semantic_text/use_semantic_text.test.ts +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/create_field/semantic_text/use_semantic_text.test.ts @@ -13,10 +13,15 @@ import { act } from 'react-dom/test-utils'; const mlMock: any = { mlApi: { inferenceModels: { - createInferenceEndpoint: jest.fn(), + createInferenceEndpoint: jest.fn().mockResolvedValue({}), }, trainedModels: { - startModelAllocation: jest.fn(), + startModelAllocation: jest.fn().mockResolvedValue({}), + getTrainedModels: jest.fn().mockResolvedValue([ + { + fully_defined: true, + }, + ]), }, }, }; @@ -93,6 +98,11 @@ describe('useSemanticText', () => { result.current.handleSemanticText(mockFieldData); }); + expect(mlMock.mlApi.trainedModels.startModelAllocation).toHaveBeenCalledWith('.elser_model_2'); + expect(mockDispatch).toHaveBeenCalledWith({ + type: 'field.addSemanticText', + value: mockFieldData, + }); expect(mlMock.mlApi.inferenceModels.createInferenceEndpoint).toHaveBeenCalledWith( 'elser_model_2', 'text_embedding', @@ -105,16 +115,58 @@ describe('useSemanticText', () => { }, } ); - expect(mlMock.mlApi.trainedModels.startModelAllocation).toHaveBeenCalledWith('.elser_model_2'); - expect(mockDispatch).toHaveBeenCalledWith({ - type: 'field.addSemanticText', - value: mockFieldData, + }); + + it('should invoke the download api if the model does not exist', async () => { + const mlMockWithModelNotDownloaded: any = { + mlApi: { + inferenceModels: { + createInferenceEndpoint: jest.fn(), + }, + trainedModels: { + startModelAllocation: jest.fn(), + getTrainedModels: jest.fn().mockResolvedValue([ + { + fully_defined: false, + }, + ]), + installElasticTrainedModelConfig: jest.fn().mockResolvedValue({}), + }, + }, + }; + const { result } = renderHook(() => + useSemanticText({ + form, + setErrorsInTrainedModelDeployment: jest.fn(), + ml: mlMockWithModelNotDownloaded, + }) + ); + + await act(async () => { + result.current.handleSemanticText(mockFieldData); + }); + + expect( + mlMockWithModelNotDownloaded.mlApi.trainedModels.installElasticTrainedModelConfig + ).toHaveBeenCalledWith('.elser_model_2'); + expect( + mlMockWithModelNotDownloaded.mlApi.trainedModels.startModelAllocation + ).toHaveBeenCalledWith('.elser_model_2'); + expect( + mlMockWithModelNotDownloaded.mlApi.inferenceModels.createInferenceEndpoint + ).toHaveBeenCalledWith('elser_model_2', 'text_embedding', { + service: 'elasticsearch', + service_settings: { + num_allocations: 1, + num_threads: 1, + model_id: '.elser_model_2', + }, }); }); it('handles errors correctly', async () => { const mockError = new Error('Test error'); - mlMock.mlApi.inferenceModels.createInferenceEndpoint.mockImplementationOnce(() => { + mlMock.mlApi?.trainedModels.startModelAllocation.mockImplementationOnce(() => { throw mockError; }); diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/create_field/semantic_text/use_semantic_text.ts b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/create_field/semantic_text/use_semantic_text.ts index 9fe8e2a114645..dda1bfe794c97 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/create_field/semantic_text/use_semantic_text.ts +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/create_field/semantic_text/use_semantic_text.ts @@ -6,7 +6,8 @@ */ import { i18n } from '@kbn/i18n'; -import { MlPluginStart } from '@kbn/ml-plugin/public'; +import { useCallback } from 'react'; +import { MlPluginStart, TrainedModelConfigResponse } from '@kbn/ml-plugin/public'; import React, { useEffect, useState } from 'react'; import { useComponentTemplatesContext } from '../../../../../../component_templates/component_templates_context'; import { useDispatch, useMappingsState } from '../../../../../mappings_state_context'; @@ -64,20 +65,37 @@ export function useSemanticText(props: UseSemanticTextProps) { } }, [form, inferenceId, inferenceToModelIdMap]); - const handleSemanticText = (data: Field) => { - data.inferenceId = inferenceValue; + const isModelDownloaded = useCallback( + async (modelId: string) => { + try { + const response: TrainedModelConfigResponse[] | undefined = + await ml?.mlApi?.trainedModels.getTrainedModels(modelId, { + include: 'definition_status', + }); + return !!response?.[0]?.fully_defined; + } catch (error) { + if (error.body.statusCode !== 404) { + throw error; + } + } + return false; + }, + [ml?.mlApi?.trainedModels] + ); + + const createInferenceEndpoint = ( + trainedModelId: string, + defaultInferenceEndpoint: boolean, + data: Field + ) => { if (data.inferenceId === undefined) { - return; - } - - const inferenceData = inferenceToModelIdMap?.[data.inferenceId]; - - if (!inferenceData) { - return; + throw new Error( + i18n.translate('xpack.idxMgmt.mappingsEditor.createField.undefinedInferenceIdError', { + defaultMessage: 'InferenceId is undefined while creating the inference endpoint.', + }) + ); } - const { trainedModelId, defaultInferenceEndpoint, isDeployed, isDeployable } = inferenceData; - if (trainedModelId && defaultInferenceEndpoint) { const modelConfig = { service: 'elasticsearch', @@ -87,28 +105,45 @@ export function useSemanticText(props: UseSemanticTextProps) { model_id: trainedModelId, }, }; - try { - ml?.mlApi?.inferenceModels?.createInferenceEndpoint( - data.inferenceId, - 'text_embedding', - modelConfig - ); - } catch (error) { - setErrorsInTrainedModelDeployment?.((prevItems) => [...prevItems, trainedModelId]); - toasts?.addError(error.body && error.body.message ? new Error(error.body.message) : error, { - title: i18n.translate( - 'xpack.idxMgmt.mappingsEditor.createField.inferenceEndpointCreationErrorTitle', - { - defaultMessage: 'Inference endpoint creation failed', - } - ), - }); - } + + ml?.mlApi?.inferenceModels?.createInferenceEndpoint( + data.inferenceId, + 'text_embedding', + modelConfig + ); } + }; + + const handleSemanticText = async (data: Field) => { + data.inferenceId = inferenceValue; + if (data.inferenceId === undefined) { + return; + } + + const inferenceData = inferenceToModelIdMap?.[data.inferenceId]; + + if (!inferenceData) { + return; + } + + const { trainedModelId, defaultInferenceEndpoint, isDeployed, isDeployable } = inferenceData; - if (isDeployable && trainedModelId && !isDeployed) { + if (isDeployable && trainedModelId) { try { - ml?.mlApi?.trainedModels.startModelAllocation(trainedModelId); + const modelDownloaded: boolean = await isModelDownloaded(trainedModelId); + + if (isDeployed) { + createInferenceEndpoint(trainedModelId, defaultInferenceEndpoint, data); + } else if (modelDownloaded) { + ml?.mlApi?.trainedModels + .startModelAllocation(trainedModelId) + .then(() => createInferenceEndpoint(trainedModelId, defaultInferenceEndpoint, data)); + } else { + ml?.mlApi?.trainedModels + .installElasticTrainedModelConfig(trainedModelId) + .then(() => ml?.mlApi?.trainedModels.startModelAllocation(trainedModelId)) + .then(() => createInferenceEndpoint(trainedModelId, defaultInferenceEndpoint, data)); + } toasts?.addSuccess({ title: i18n.translate( 'xpack.idxMgmt.mappingsEditor.createField.modelDeploymentStartedNotification', diff --git a/x-pack/plugins/ml/public/index.ts b/x-pack/plugins/ml/public/index.ts index 25bec18e80ab0..bf293e2228570 100755 --- a/x-pack/plugins/ml/public/index.ts +++ b/x-pack/plugins/ml/public/index.ts @@ -26,6 +26,7 @@ export const plugin: PluginInitializer< > = (initializerContext: PluginInitializerContext) => new MlPlugin(initializerContext); export type { MlPluginSetup, MlPluginStart }; +export type { TrainedModelConfigResponse } from '../common/types/trained_models'; export type { MlCapabilitiesResponse } from '../common/types/capabilities'; export type { MlSummaryJob } from '../common/types/anomaly_detection_jobs'; From 1852d981a00a8a07d78c51c5d9042cd2a64ca454 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Wed, 8 May 2024 18:29:17 +0200 Subject: [PATCH 03/11] [DOCS] Add Playground docs (#182692) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Adds new **Playground** section to side nav ### [✨URL preview](https://kibana_bk_182692.docs-preview.app.elstc.co/guide/en/kibana/master/playground.html) --- docs/playground/images/chat-interface.png | Bin 0 -> 240099 bytes docs/playground/images/edit-query.png | Bin 0 -> 118636 bytes docs/playground/images/select-indices.png | Bin 0 -> 153669 bytes docs/playground/index.asciidoc | 203 ++++++++++++++++++ docs/playground/playground-context.asciidoc | 68 ++++++ docs/playground/playground-query.asciidoc | 51 +++++ .../playground-troubleshooting.asciidoc | 26 +++ docs/redirects.asciidoc | 7 +- docs/user/index.asciidoc | 2 + 9 files changed, 351 insertions(+), 6 deletions(-) create mode 100644 docs/playground/images/chat-interface.png create mode 100644 docs/playground/images/edit-query.png create mode 100644 docs/playground/images/select-indices.png create mode 100644 docs/playground/index.asciidoc create mode 100644 docs/playground/playground-context.asciidoc create mode 100644 docs/playground/playground-query.asciidoc create mode 100644 docs/playground/playground-troubleshooting.asciidoc diff --git a/docs/playground/images/chat-interface.png b/docs/playground/images/chat-interface.png new file mode 100644 index 0000000000000000000000000000000000000000..8f13fba59666ecb2981cc3b9e3e9859d100d6df4 GIT binary patch literal 240099 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�@MCK7&6eJI7e=;zS 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 uY*ANt+`rV;3D8#aRFcV~QZrMNk&)4A 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
qhjjNRD- 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
_;whI55*@e2$or3?OCTf!Z_ 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%0DRBdFnq)1)ClThuGv`#- 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

Z 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 xu7wmWuUa6^l>Q`6hjKeb7^l8+hhf)Alf9~h7K literal 0 HcmV?d00001 diff --git a/docs/playground/index.asciidoc b/docs/playground/index.asciidoc new file mode 100644 index 0000000000000..fe0aaea05a305 --- /dev/null +++ b/docs/playground/index.asciidoc @@ -0,0 +1,203 @@ +[role="xpack"] +[[playground]] += Playground + +preview::[] + +// Variable (attribute) definition +:x: Playground + +Use {x} to combine your Elasticsearch data with the power of large language models (LLMs) for retrieval augmented generation (RAG). +The chat interface translates your natural language questions into {es} queries, retrieves the most relevant results from your {es} documents, and passes those documents to the LLM to generate tailored responses. + +Once you start chatting, use the UI to view and modify the Elasticsearch queries that search your data. +You can also view the underlying Python code that powers the chat interface, and download this code to integrate into your own application. + +Learn how to get started on this page. +Refer to the following for more advanced topics: + +* <> +* <> +* <> + +[float] +[[playground-how-it-works]] +== How {x} works + +Here's a simpified overview of how {x} works: + +* User *creates a connection* to LLM provider +* User *selects a model* to use for generating responses +* User *define the model's behavior and tone* with initial instructions +** *Example*: "_You are a friendly assistant for question-answering tasks. Keep responses as clear and concise as possible._" +* User *selects {es} indices* to search +* User *enters a question* in the chat interface +* {x} *autogenerates an {es} query* to retrieve relevant documents +** User can *view and modify underlying {es} query* in the UI +* {x} *auto-selects relevant fields* from retrieved documents to pass to the LLM +** User can *edit fields targeted* +* {x} passes *filtered documents* to the LLM +** The LLM generates a response based on the original query, initial instructions, chat history, and {es} context +* User can *view the Python code* that powers the chat interface +** User can also *Download the code* to integrate into application + +[float] +[[playground-availability-prerequisites]] +== Availability and prerequisites + +For Elastic Cloud and self-managed deployments {x} is available in the *Search* space in {kib}, under *Content* > *{x}*. + +For Elastic Serverless, {x} is available in your {es} project UI. +// TODO: Confirm URL path for Serverless + +To use {x}, you'll need the following: + +1. An Elastic *v8.14.0+* deployment or {es} *Serverless* project. (Start a https://cloud.elastic.co/registration[free trial]). +2. At least one *{es} index* with documents to search. +** See <> if you'd like to ingest sample data. +3. An account with a *supported LLM provider*. {x} supports the following: ++ +[cols="2a,2a,1a", options="header"] +|=== +| Provider | Models | Notes + +| *Amazon Bedrock* +a| +* Anthropic: Claude 3 Sonnet +* Anthropic: Claude 3 Haiku +a| +Does not currently support streaming. + +| *OpenAI* +a| +* GPT-3 turbo +* GPT-4 turbo +a| + +| *Azure OpenAI* +a| +* GPT-3 turbo +* GPT-4 turbo +a| + +|=== + +[float] +[[playground-getting-started]] +== Getting started + +[float] +[[playground-getting-started-connect]] +=== Connect to LLM provider + +To get started with {x}, you need to create a <> for your LLM provider. +Follow these steps on the {x} landing page: + +. Under *Connect to LLM*, click *Create connector*. +. Select your *LLM provider*. +. *Name* your connector. +. Select a *URL endpoint* (or use the default). +. Enter *access credentials* for your LLM provider. + +[TIP] +==== +If you need to update a connector, or add a new one, click the wrench button (🔧) under *Model settings*. +==== + +[float] +[[playground-getting-started-ingest]] +=== Ingest data (optional) + +_You can skip this step if you already have data in one or more {es} indices._ + +There are many options for ingesting data into {es}, including: + +* The {enterprise-search-ref}/crawler.html[Elastic crawler] for web content (*NOTE*: Not yet available in _Serverless_) +* {enterprise-search-ref}/connectors.html[Elastic connectors] for data synced from third-party sources +* The {es} {ref}/docs-bulk.html[Bulk API] for JSON documents ++ +.*Expand* for example +[%collapsible] +============== +To add a few documents to an index called `books` run the following in Dev Tools Console: + +[source,console] +---- +POST /_bulk +{ "index" : { "_index" : "books" } } +{"name": "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470} +{ "index" : { "_index" : "books" } } +{"name": "Revelation Space", "author": "Alastair Reynolds", "release_date": "2000-03-15", "page_count": 585} +{ "index" : { "_index" : "books" } } +{"name": "1984", "author": "George Orwell", "release_date": "1985-06-01", "page_count": 328} +{ "index" : { "_index" : "books" } } +{"name": "Fahrenheit 451", "author": "Ray Bradbury", "release_date": "1953-10-15", "page_count": 227} +{ "index" : { "_index" : "books" } } +{"name": "Brave New World", "author": "Aldous Huxley", "release_date": "1932-06-01", "page_count": 268} +{ "index" : { "_index" : "books" } } +{"name": "The Handmaids Tale", "author": "Margaret Atwood", "release_date": "1985-06-01", "page_count": 311} +---- +============== + +We've also provided some Jupyter notebooks to easily ingest sample data into {es}. +Find these in the https://github.com/elastic/elasticsearch-labs/blob/main/notebooks/ingestion-and-chunking[elasticsearch-labs] repository. +These notebooks use the official {es} Python client. +// TODO: [The above link will be broken until https://github.com/elastic/elasticsearch-labs/pull/232 is merged] + +[float] +[[playground-getting-started-index]] +=== Select {es} indices + +Once you've connected to your LLM provider, it's time to choose the data you want to search. +Follow the steps under *Select indices*: + +. Select one or more {es} indices under *Add index*. +. Click *Start* to launch the chat interface. ++ +[.screenshot] +image::select-indices.png[width=400] + +Learn more about the underlying {es} queries used to search your data in <>. + +[float] +[[playground-getting-started-setup-chat]] +=== Set up the chat interface + +You can start chatting with your data immediately, but you might want to tweak some defaults first. + +[.screenshot] +image::chat-interface.png[] + +You can adjust the following under *Model settings*: + +* *Model*. The model used for generating responses. +* *Instructions*. Also known as the _system prompt_, these initial instructions and guidelines define the behavior of the model throughout the conversation. Be *clear and specific* for best results. +* *Include citations*. A toggle to include citations from the relevant {es} documents in responses. + +{x} also uses another LLM under the hood, to encode all previous questions and responses, and make them available to the main model. +This ensures the model has "conversational memory". + +Under *Indices*, you can edit which {es} indices will be searched. +This will affect the underlying {es} query. + +[TIP] +==== +Click *✨ Regenerate* to resend the last query to the model for a fresh response. + +Click *⟳ Clear chat* to clear chat history and start a new conversation. +==== + +[float] +[[playground-next-steps]] +=== Next steps + +Once you've got {x} up and running, and you've tested out the chat interface, you might want to explore some more advanced topics: + +* <> +* <> +* <> + +include::playground-context.asciidoc[] +include::playground-query.asciidoc[] +include::playground-troubleshooting.asciidoc[] + diff --git a/docs/playground/playground-context.asciidoc b/docs/playground/playground-context.asciidoc new file mode 100644 index 0000000000000..c0c4533fcb1a0 --- /dev/null +++ b/docs/playground/playground-context.asciidoc @@ -0,0 +1,68 @@ +[role="xpack"] +[[playground-context]] +== Optimize model context + +preview::[] + +// Variable (attribute) definition +:x: Playground + +Context is the information you provide to the LLM, to optimize the relevance of your query results. +Without additional context, an LLM will generate results solely based on its training data. +In {x}, this additional context is the information contained in your {es} indices. + +There are a few ways to optimize this context for better results. +Some adjustments can be made directly in the {x} UI. +Others require refining your indexing strategy, and potentially reindexing your data. + +[float] +[[playground-context-ui]] +== Edit context in UI + +Use the *Edit context* button in the {x} UI to adjust the number of documents and fields sent to the LLM. + +If you're hitting context length limits, try the following: + +* Limit the number of documents retrieved +* Pick a field with less tokens, reducing the context length + +[float] +[[playground-context-index]] +== Other context optimizations + +This section covers additional context optimizations that you won't be able to make directly in the UI. + +[float] +[[playground-context-index-chunking]] +=== Chunking large documents + +If you're working with large fields, you may need to adjust your indexing strategy. +Consider breaking your documents into smaller chunks, such as sentences or paragraphs. + +If you don't yet have a chunking strategy, start by chunking your documents into passages. + +Otherwise, consider updating your chunking strategy, for example, from sentence based to paragraph based chunking. + +Refer to the following Python notebooks for examples of how to chunk your documents: + +* https://github.com/elastic/elasticsearch-labs/tree/main/notebooks/ingestion-and-chunking/json-chunking-ingest.ipynb[JSON documents] +* https://github.com/elastic/elasticsearch-labs/tree/main/notebooks/ingestion-and-chunking/pdf-chunking-ingest.ipynb[PDF document] +* https://github.com/elastic/elasticsearch-labs/tree/main/notebooks/ingestion-and-chunking/website-chunking-ingest.ipynb[Website content] + +[float] +[[playground-context-balance]] +=== Balancing cost and latency + +Here are some general recommendations for balancing cost and latency with different context sizes: + +Optimize context length:: +Determine the optimal context length through empirical testing. +Start with a baseline and adjust incrementally to find a balance that optimizes both response quality and system performance. +Implement token pruning for ELSER model:: +If you're using our ELSER model, consider implementing token pruning to reduce the number of tokens sent to the model. +Refer to these relevant blog posts: ++ +* https://www.elastic.co/search-labs/blog/introducing-elser-v2-part-2[Optimizing retrieval with ELSER v2] +* https://www.elastic.co/search-labs/blog/text-expansion-pruning[Improving text expansion performance using token pruning] +Monitor and adjust:: +Continuously monitor the effects of context size changes on performance and adjust as necessary. diff --git a/docs/playground/playground-query.asciidoc b/docs/playground/playground-query.asciidoc new file mode 100644 index 0000000000000..11ed2e71b1a2d --- /dev/null +++ b/docs/playground/playground-query.asciidoc @@ -0,0 +1,51 @@ +[xpack] +[[playground-query]] +== View and modify queries + +:x: Playground + +preview::[] + +Once you've set up your chat interface, you can start chatting with the model. +{x} will automatically generate {es} queries based on your questions, and retrieve the most relevant documents from your {es} indices. +The {x} UI enables you to view and modify these queries. + +* Click *View query* to open the visual query editor. +* Modify the query by selecting fields to query per index. +* Click *Save changes*. + +[TIP] +==== +The `{query}` variable represents the user's question, rewritten as an {es} query. +==== + +The following screenshot shows the query editor in the {x} UI. +In this simple example, the `books` index has two fields: `author` and `name`. +Selecting a field adds it to the `fields` array in the query. + +[.screenshot] +image::images/edit-query.png[View and modify queries] + +[float] +[[playground-query-relevance]] +=== Improving relevance + +The fields you select in the query editor determine the relevance of the retrieved documents. + +Remember that the next step in the workflow is to send the retrieved documents to the LLM to answer the question. +Context length is an important factor in ensuring the model has enough information to generate a relevant answer. +Refer to <> for more information. + +<> provides tips on how to diagnose and fix relevance issues. + +[.screenshot] + + + +[NOTE] +==== +{x} uses the {ref}/retriever.html[`retriever`] syntax for {es} queries. +Retrievers make it easier to compose and test different retrieval strategies in your search pipelines. +==== +// TODO: uncomment and add to note once following page is live +//Refer to {ref}/retrievers-overview.html[documentation] for a high level overview of retrievers. \ No newline at end of file diff --git a/docs/playground/playground-troubleshooting.asciidoc b/docs/playground/playground-troubleshooting.asciidoc new file mode 100644 index 0000000000000..8fece498b12d5 --- /dev/null +++ b/docs/playground/playground-troubleshooting.asciidoc @@ -0,0 +1,26 @@ +[role="xpack"] +[[playground-troubleshooting]] +== Troubleshooting + +preview::[] + +:x: Playground + +Dense vectors are not searchable:: +Embeddings must be generated using the {ref}/inference-processor.html[inference processor] with an ML node. + +Context length error:: +You'll need to adjust the size of the context you're sending to the model. +Refer to <>. + +LLM credentials not working:: +Under *Model settings*, use the wrench button (🔧) to edit your GenAI connector settings. + +Poor answer quality:: +Check the retrieved documents to see if they are valid. +Adjust your {es} queries to improve the relevance of the documents retrieved. Refer to <>. ++ +You can update the initial instructions to be more detailed. This is called 'prompt engineering'. Refer to this https://platform.openai.com/docs/guides/prompt-engineering[OpenAI guide] for more information. ++ +You might need to click *⟳ Clear chat* to clear chat history and start a new conversation. +If you mix topics, the model will find it harder to generate relevant responses. \ No newline at end of file diff --git a/docs/redirects.asciidoc b/docs/redirects.asciidoc index 007a9d9f48cfc..be017fbd1c94e 100644 --- a/docs/redirects.asciidoc +++ b/docs/redirects.asciidoc @@ -432,9 +432,4 @@ This connector was renamed. Refer to <>. == APIs For the most up-to-date API details, refer to the -{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[alerting], {kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[cases], {kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[connectors], and {kib-repo}/tree/{branch}/x-pack/plugins/ml/common/openapi[machine learning] open API specifications. - -[role="exclude",id="playground"] -== Playground - -Coming in 8.14.0. \ No newline at end of file +{kib-repo}/tree/{branch}/x-pack/plugins/alerting/docs/openapi[alerting], {kib-repo}/tree/{branch}/x-pack/plugins/cases/docs/openapi[cases], {kib-repo}/tree/{branch}/x-pack/plugins/actions/docs/openapi[connectors], and {kib-repo}/tree/{branch}/x-pack/plugins/ml/common/openapi[machine learning] open API specifications. \ No newline at end of file diff --git a/docs/user/index.asciidoc b/docs/user/index.asciidoc index bf21f7b262924..419574804312c 100644 --- a/docs/user/index.asciidoc +++ b/docs/user/index.asciidoc @@ -28,6 +28,8 @@ include::alerting/index.asciidoc[] include::{kibana-root}/docs/observability/index.asciidoc[] +include::{kibana-root}/docs/playground/index.asciidoc[] + include::{kibana-root}/docs/apm/index.asciidoc[] include::{kibana-root}/docs/siem/index.asciidoc[] From b3e6f74234298f5f042679fe043a8a5c8d067673 Mon Sep 17 00:00:00 2001 From: Artem Shelkovnikov Date: Wed, 8 May 2024 18:29:41 +0200 Subject: [PATCH 04/11] Add * as default value for 3 more native connectors (#182957) ## Summary This PR adds "*" as default value for 3 more native connector fields that specify comma-separate values: - MySQL connector field "tables" - Oracle connector field "tables" - Sharepoint Online field "site_collections" Similar PR in connectors: https://github.com/elastic/connectors/pull/2532 ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- packages/kbn-search-connectors/types/native_connectors.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/kbn-search-connectors/types/native_connectors.ts b/packages/kbn-search-connectors/types/native_connectors.ts index 5f57f64f0a06f..3c235b0c3f4a3 100644 --- a/packages/kbn-search-connectors/types/native_connectors.ts +++ b/packages/kbn-search-connectors/types/native_connectors.ts @@ -2605,7 +2605,7 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record Date: Wed, 8 May 2024 12:49:12 -0400 Subject: [PATCH 05/11] skip failing test suite (#182792) --- .../common/index_management/index_component_templates.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts b/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts index fce7e3c7c7a44..a086f80b0bee5 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts @@ -15,7 +15,8 @@ export default function ({ getService }: FtrProviderContext) { const log = getService('log'); const indexManagementService = getService('indexManagement'); - describe('component templates', () => { + // Failing: See https://github.com/elastic/kibana/issues/182792 + describe.skip('component templates', () => { // Api methods let getAllComponentTemplates: typeof indexManagementService['componentTemplates']['api']['getAllComponentTemplates']; let getOneComponentTemplate: typeof indexManagementService['componentTemplates']['api']['getOneComponentTemplate']; From 69313c3c017621504093c66f06f9f65ce73b3b0c Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 8 May 2024 12:49:34 -0400 Subject: [PATCH 06/11] skip failing test suite (#182797) --- .../common/index_management/index_component_templates.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts b/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts index a086f80b0bee5..4b30a1e49c17c 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts @@ -16,6 +16,7 @@ export default function ({ getService }: FtrProviderContext) { const indexManagementService = getService('indexManagement'); // Failing: See https://github.com/elastic/kibana/issues/182792 + // Failing: See https://github.com/elastic/kibana/issues/182797 describe.skip('component templates', () => { // Api methods let getAllComponentTemplates: typeof indexManagementService['componentTemplates']['api']['getAllComponentTemplates']; From 958de39d0ceca43fa1e6733d0831de9155d71215 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 8 May 2024 12:49:41 -0400 Subject: [PATCH 07/11] skip failing test suite (#182791) --- .../common/index_management/index_component_templates.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts b/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts index 4b30a1e49c17c..b1f26ac562414 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/index_management/index_component_templates.ts @@ -17,6 +17,7 @@ export default function ({ getService }: FtrProviderContext) { // Failing: See https://github.com/elastic/kibana/issues/182792 // Failing: See https://github.com/elastic/kibana/issues/182797 + // Failing: See https://github.com/elastic/kibana/issues/182791 describe.skip('component templates', () => { // Api methods let getAllComponentTemplates: typeof indexManagementService['componentTemplates']['api']['getAllComponentTemplates']; From 75f3290e3013e06cde76bbb59078789c9f7bbdee Mon Sep 17 00:00:00 2001 From: Ying Mao Date: Wed, 8 May 2024 13:03:43 -0400 Subject: [PATCH 08/11] [Response Ops][Alerting] Limit how far back we can schedule a backfill job (#182616) Resolves https://github.com/elastic/kibana/issues/182241 ## Summary Adding a limit to how far back a backfill can be scheduled. Went with 90 days since the current thinking is that we'll be storing gap information inside the event log, which retains data for 90 days. Had to update all the functional tests because they were scheduling backfills with a fixed time that were all beyond the 90 day limit. Flaky test runner: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5849 --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../alerting/common/constants/backfill.ts | 4 + .../alerting/common/constants/index.ts | 6 +- x-pack/plugins/alerting/common/index.ts | 1 + x-pack/plugins/alerting/common/lib/index.ts | 8 + .../lib/validate_backfill_schedule.test.ts | 65 ++ .../common/lib/validate_backfill_schedule.ts | 48 ++ .../backfill/apis/schedule/schemas/v1.ts | 18 +- .../schedule/schedule_backfill.test.ts | 5 + .../schedule_backfill_params_schema.ts | 18 +- .../group1/tests/alerting/backfill/api_key.ts | 57 +- .../group1/tests/alerting/backfill/delete.ts | 28 +- .../group1/tests/alerting/backfill/find.ts | 123 ++-- .../group1/tests/alerting/backfill/get.ts | 62 +- .../tests/alerting/backfill/schedule.ts | 615 +++++++----------- .../tests/alerting/backfill/task_runner.ts | 119 ++-- 15 files changed, 550 insertions(+), 627 deletions(-) create mode 100644 x-pack/plugins/alerting/common/lib/index.ts create mode 100644 x-pack/plugins/alerting/common/lib/validate_backfill_schedule.test.ts create mode 100644 x-pack/plugins/alerting/common/lib/validate_backfill_schedule.ts diff --git a/x-pack/plugins/alerting/common/constants/backfill.ts b/x-pack/plugins/alerting/common/constants/backfill.ts index 0a8281cba8186..b78d18f5550b6 100644 --- a/x-pack/plugins/alerting/common/constants/backfill.ts +++ b/x-pack/plugins/alerting/common/constants/backfill.ts @@ -6,3 +6,7 @@ */ export const MAX_SCHEDULE_BACKFILL_BULK_SIZE = 100; +// Only allow scheduling backfills up to 90 days in the past +export const MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_DAYS = 90; +export const MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_MS = + MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_DAYS * 24 * 60 * 60 * 1000; diff --git a/x-pack/plugins/alerting/common/constants/index.ts b/x-pack/plugins/alerting/common/constants/index.ts index 5dc50b91a4163..0acc25785d194 100644 --- a/x-pack/plugins/alerting/common/constants/index.ts +++ b/x-pack/plugins/alerting/common/constants/index.ts @@ -7,5 +7,9 @@ export type { AdHocRunStatus } from './ad_hoc_run_status'; export { adHocRunStatus } from './ad_hoc_run_status'; -export { MAX_SCHEDULE_BACKFILL_BULK_SIZE } from './backfill'; +export { + MAX_SCHEDULE_BACKFILL_BULK_SIZE, + MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_DAYS, + MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_MS, +} from './backfill'; export { PLUGIN } from './plugin'; diff --git a/x-pack/plugins/alerting/common/index.ts b/x-pack/plugins/alerting/common/index.ts index 2c71a3a17379f..320a5b29f6956 100644 --- a/x-pack/plugins/alerting/common/index.ts +++ b/x-pack/plugins/alerting/common/index.ts @@ -13,6 +13,7 @@ import { AlertsHealth } from './rule'; export * from './rule'; export * from './rules_settings'; export * from './rule_type'; +export * from './lib'; export type { ThrottledActions, LastScheduledActions, diff --git a/x-pack/plugins/alerting/common/lib/index.ts b/x-pack/plugins/alerting/common/lib/index.ts new file mode 100644 index 0000000000000..35888ab08952d --- /dev/null +++ b/x-pack/plugins/alerting/common/lib/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { validateBackfillSchedule } from './validate_backfill_schedule'; diff --git a/x-pack/plugins/alerting/common/lib/validate_backfill_schedule.test.ts b/x-pack/plugins/alerting/common/lib/validate_backfill_schedule.test.ts new file mode 100644 index 0000000000000..fa512c1635afb --- /dev/null +++ b/x-pack/plugins/alerting/common/lib/validate_backfill_schedule.test.ts @@ -0,0 +1,65 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { validateBackfillSchedule } from './validate_backfill_schedule'; + +describe('validateBackfillSchedule', () => { + beforeAll(() => { + jest.useFakeTimers(); + jest.setSystemTime(new Date('2023-11-16T08:00:00.000Z')); + }); + afterAll(() => jest.useRealTimers()); + + test('validates valid start date', () => { + expect(validateBackfillSchedule('2023-10-16T08:00:00.000Z')).toBeUndefined(); + }); + + test('validates valid end date', () => { + expect( + validateBackfillSchedule('2023-10-16T08:00:00.000Z', '2023-10-17T08:00:00.000Z') + ).toBeUndefined(); + }); + + test('returns error if start date is not a valid date', () => { + expect(validateBackfillSchedule('foo')).toMatchInlineSnapshot( + `"Backfill start must be valid date"` + ); + }); + + test('returns error if end date is not a valid date', () => { + expect(validateBackfillSchedule('2023-10-16T08:00:00.000Z', 'foo')).toMatchInlineSnapshot( + `"Backfill end must be valid date"` + ); + }); + + test('returns error if start date is too far in the past', () => { + expect(validateBackfillSchedule('2023-08-18T07:59:59.999Z')).toMatchInlineSnapshot( + `"Backfill cannot look back more than 90 days"` + ); + }); + + test('returns error if end date is less than or equal to start date', () => { + expect( + validateBackfillSchedule('2023-10-16T08:00:00.000Z', '2023-10-16T08:00:00.000Z') + ).toMatchInlineSnapshot(`"Backfill end must be greater than backfill start"`); + expect( + validateBackfillSchedule('2023-10-16T08:00:00.000Z', '2023-10-15T08:00:00.000Z') + ).toMatchInlineSnapshot(`"Backfill end must be greater than backfill start"`); + }); + + test('returns error if start date is greater than current date', () => { + expect(validateBackfillSchedule('2023-11-16T08:00:00.001Z')).toMatchInlineSnapshot( + `"Backfill cannot be scheduled for the future"` + ); + }); + + test('returns error if end date is greater than current date', () => { + expect( + validateBackfillSchedule('2023-10-16T08:00:00.000Z', '2023-11-16T08:00:00.001Z') + ).toMatchInlineSnapshot(`"Backfill cannot be scheduled for the future"`); + }); +}); diff --git a/x-pack/plugins/alerting/common/lib/validate_backfill_schedule.ts b/x-pack/plugins/alerting/common/lib/validate_backfill_schedule.ts new file mode 100644 index 0000000000000..c8bc1467296e4 --- /dev/null +++ b/x-pack/plugins/alerting/common/lib/validate_backfill_schedule.ts @@ -0,0 +1,48 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_DAYS, + MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_MS, +} from '../constants'; + +export function validateBackfillSchedule(start: string, end?: string): string | void { + try { + const now = new Date().valueOf(); + + const parsedStart = Date.parse(start); + if (isNaN(parsedStart)) { + return `Backfill start must be valid date`; + } + + if (now - parsedStart > MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_MS) { + return `Backfill cannot look back more than ${MAX_SCHEDULE_BACKFILL_LOOKBACK_WINDOW_DAYS} days`; + } + + if (now < parsedStart) { + return `Backfill cannot be scheduled for the future`; + } + + if (end) { + const parsedEnd = Date.parse(end); + if (isNaN(parsedEnd)) { + return `Backfill end must be valid date`; + } + const startMs = new Date(start).valueOf(); + const endMs = new Date(end).valueOf(); + if (endMs <= startMs) { + return `Backfill end must be greater than backfill start`; + } + + if (now < parsedEnd) { + return `Backfill cannot be scheduled for the future`; + } + } + } catch (err) { + return `Error validating backfill schedule - ${err.message}`; + } +} diff --git a/x-pack/plugins/alerting/common/routes/backfill/apis/schedule/schemas/v1.ts b/x-pack/plugins/alerting/common/routes/backfill/apis/schedule/schemas/v1.ts index 791a5cce9ac38..527134a2b5138 100644 --- a/x-pack/plugins/alerting/common/routes/backfill/apis/schedule/schemas/v1.ts +++ b/x-pack/plugins/alerting/common/routes/backfill/apis/schedule/schemas/v1.ts @@ -5,6 +5,7 @@ * 2.0. */ import { schema } from '@kbn/config-schema'; +import { validateBackfillSchedule } from '../../../../..'; import { MAX_SCHEDULE_BACKFILL_BULK_SIZE } from '../../../../../constants'; import { backfillResponseSchemaV1, errorResponseSchemaV1 } from '../../../response'; @@ -17,22 +18,7 @@ export const scheduleBodySchema = schema.arrayOf( }, { validate({ start, end }) { - const parsedStart = Date.parse(start); - if (isNaN(parsedStart)) { - return `Backfill start must be valid date`; - } - - if (end) { - const parsedEnd = Date.parse(end); - if (isNaN(parsedEnd)) { - return `Backfill end must be valid date`; - } - const startMs = new Date(start).valueOf(); - const endMs = new Date(end).valueOf(); - if (endMs <= startMs) { - return `Backfill end must be greater than backfill start`; - } - } + return validateBackfillSchedule(start, end); }, } ), diff --git a/x-pack/plugins/alerting/server/application/backfill/methods/schedule/schedule_backfill.test.ts b/x-pack/plugins/alerting/server/application/backfill/methods/schedule/schedule_backfill.test.ts index 4767a344f5153..7edcb26b9718e 100644 --- a/x-pack/plugins/alerting/server/application/backfill/methods/schedule/schedule_backfill.test.ts +++ b/x-pack/plugins/alerting/server/application/backfill/methods/schedule/schedule_backfill.test.ts @@ -185,6 +185,10 @@ function getMockData(overwrites: Record = {}): ScheduleBackfill describe('scheduleBackfill()', () => { let rulesClient: RulesClient; + beforeAll(() => { + jest.useFakeTimers(); + jest.setSystemTime(new Date('2023-12-16T08:00:00.000Z')); + }); beforeEach(async () => { jest.resetAllMocks(); rulesClient = new RulesClient(rulesClientParams); @@ -239,6 +243,7 @@ describe('scheduleBackfill()', () => { }); backfillClient.bulkQueue.mockResolvedValue(mockBulkQueueResult); }); + afterAll(() => jest.useRealTimers()); test('should successfully schedule backfill', async () => { const mockData = [getMockData(), getMockData({ ruleId: '2', end: '2023-11-17T08:00:00.000Z' })]; diff --git a/x-pack/plugins/alerting/server/application/backfill/methods/schedule/schemas/schedule_backfill_params_schema.ts b/x-pack/plugins/alerting/server/application/backfill/methods/schedule/schemas/schedule_backfill_params_schema.ts index 0082181e759a6..c4a469da1b5db 100644 --- a/x-pack/plugins/alerting/server/application/backfill/methods/schedule/schemas/schedule_backfill_params_schema.ts +++ b/x-pack/plugins/alerting/server/application/backfill/methods/schedule/schemas/schedule_backfill_params_schema.ts @@ -6,6 +6,7 @@ */ import { schema } from '@kbn/config-schema'; +import { validateBackfillSchedule } from '../../../../../../common'; import { MAX_SCHEDULE_BACKFILL_BULK_SIZE } from '../../../../../../common/constants'; export const scheduleBackfillParamSchema = schema.object( @@ -16,22 +17,7 @@ export const scheduleBackfillParamSchema = schema.object( }, { validate({ start, end }) { - const parsedStart = Date.parse(start); - if (isNaN(parsedStart)) { - return `Backfill start must be valid date`; - } - - if (end) { - const parsedEnd = Date.parse(end); - if (isNaN(parsedEnd)) { - return `Backfill end must be valid date`; - } - const startMs = new Date(start).valueOf(); - const endMs = new Date(end).valueOf(); - if (endMs <= startMs) { - return `Backfill end must be greater than backfill start`; - } - } + return validateBackfillSchedule(start, end); }, } ); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/api_key.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/api_key.ts index 44e2c3f0252af..b079571b26224 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/api_key.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/api_key.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import moment from 'moment'; import { ALERTING_CASES_SAVED_OBJECT_INDEX, SavedObject } from '@kbn/core-saved-objects-server'; import { AdHocRunSO } from '@kbn/alerting-plugin/server/data/ad_hoc_run/types'; import { get } from 'lodash'; @@ -119,6 +120,8 @@ export default function apiKeyBackfillTests({ getService }: FtrProviderContext) } it('should wait to invalidate API key until backfill for rule is complete', async () => { + const start = moment().utc().startOf('day').subtract(7, 'days').toISOString(); + const end = moment().utc().startOf('day').subtract(4, 'day').toISOString(); const spaceId = SuperuserAtSpace1.space.id; // create 2 rules @@ -143,14 +146,9 @@ export default function apiKeyBackfillTests({ getService }: FtrProviderContext) .post(`${getUrlPrefix(spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .auth(SuperuserAtSpace1.user.username, SuperuserAtSpace1.user.password) - .send([ - { - rule_id: ruleId1, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-22T12:00:00.000Z', - }, - ]) + .send([{ rule_id: ruleId1, start, end }]) .expect(200); + const result = response.body; const backfillId = result[0].id; const schedule = result[0].schedule; @@ -163,43 +161,20 @@ export default function apiKeyBackfillTests({ getService }: FtrProviderContext) expect(typeof adHocRun1.createdAt).to.be('string'); expect(adHocRun1.duration).to.eql('12h'); expect(adHocRun1.enabled).to.eql(true); - expect(adHocRun1.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(adHocRun1.end).to.eql('2023-10-22T12:00:00.000Z'); + expect(adHocRun1.start).to.eql(start); + expect(adHocRun1.end).to.eql(end); expect(adHocRun1.status).to.eql('pending'); expect(adHocRun1.spaceId).to.eql(spaceId); testExpectedRule(adHocRun1, undefined, true); - expect(adHocRun1.schedule).to.eql([ - { - runAt: '2023-10-20T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-20T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-21T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-21T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-22T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-22T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - ]); + + let currentStart = start; + adHocRun1.schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.runAt).to.eql(runAt); + currentStart = runAt; + }); // delete both rules which will mark the api keys for invalidation await supertestWithoutAuth diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/delete.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/delete.ts index d0b48e5753e29..cc86d9a7d157e 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/delete.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/delete.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import moment from 'moment'; import { asyncForEach } from '@kbn/std'; import { GetResponse } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { UserAtSpaceScenarios } from '../../../../scenarios'; @@ -26,6 +27,8 @@ export default function deleteBackfillTests({ getService }: FtrProviderContext) describe('delete backfill', () => { let backfillIds: Array<{ id: string; spaceId: string }> = []; const objectRemover = new ObjectRemover(supertest); + const start = moment().utc().startOf('day').subtract(31, 'days').toISOString(); + const end = moment().utc().startOf('day').subtract(1, 'day').toISOString(); afterEach(async () => { asyncForEach(backfillIds, async ({ id, spaceId }: { id: string; spaceId: string }) => { @@ -80,19 +83,10 @@ export default function deleteBackfillTests({ getService }: FtrProviderContext) const scheduleResponse = await supertest .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') + // set a long time range so the backfill doesn't finish running and get deleted .send([ - { - // set a long time range so the backfill doesn't finish running and get deleted - rule_id: ruleId1, - start: '2023-10-19T12:00:00.000Z', - end: '2023-11-19T12:00:00.000Z', - }, - { - // set a long time range so the backfill doesn't finish running and get deleted - rule_id: ruleId2, - start: '2023-10-19T12:00:00.000Z', - end: '2023-11-19T12:00:00.000Z', - }, + { rule_id: ruleId1, start, end }, + { rule_id: ruleId2, start, end }, ]); const scheduleResult = scheduleResponse.body; @@ -258,7 +252,7 @@ export default function deleteBackfillTests({ getService }: FtrProviderContext) } }); - it('should not get backfill from another space', async () => { + it('should not delete backfill from another space', async () => { // create rule const rresponse = await supertest .post(`${getUrlPrefix(apiOptions.spaceId)}/api/alerting/rule`) @@ -272,13 +266,7 @@ export default function deleteBackfillTests({ getService }: FtrProviderContext) const scheduleResponse = await supertest .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') - .send([ - { - rule_id: ruleId, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-25T12:00:00.000Z', - }, - ]); + .send([{ rule_id: ruleId, start, end }]); const scheduleResult = scheduleResponse.body; expect(scheduleResult.length).to.eql(1); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/find.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/find.ts index 43fadf5ee04e9..1a6d94a7ffafb 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/find.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/find.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import moment from 'moment'; import { asyncForEach } from '@kbn/std'; import { UserAtSpaceScenarios } from '../../../../scenarios'; import { getTestRuleData, getUrlPrefix, ObjectRemover } from '../../../../../common/lib'; @@ -19,6 +20,10 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { describe('find backfill', () => { let backfillIds: Array<{ id: string; spaceId: string }> = []; const objectRemover = new ObjectRemover(supertest); + const start1 = moment().utc().startOf('day').subtract(14, 'days').toISOString(); + const end1 = moment().utc().startOf('day').subtract(8, 'day').toISOString(); + const start2 = moment().utc().startOf('day').subtract(12, 'days').toISOString(); + const end2 = moment().utc().startOf('day').subtract(10, 'day').toISOString(); afterEach(async () => { asyncForEach(backfillIds, async ({ id, spaceId }: { id: string; spaceId: string }) => { @@ -47,50 +52,44 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { expect(data.id).to.eql(id); expect(data.duration).to.eql('12h'); expect(data.enabled).to.eql(true); - expect(data.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(data.end).to.eql('2023-10-25T12:00:00.000Z'); + expect(data.start).to.eql(start1); + expect(data.end).to.eql(end1); expect(data.status).to.eql('pending'); expect(data.space_id).to.eql(spaceId); expect(typeof data.created_at).to.be('string'); testExpectedRule(data, ruleId, false); expect(data.schedule.length).to.eql(12); + + let currentStart = start1; data.schedule.forEach((sched: any) => { expect(sched.interval).to.eql('12h'); expect(sched.status).to.match(/complete|pending|running|error|timeout/); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; }); - expect(data.schedule[0].run_at).to.eql('2023-10-20T00:00:00.000Z'); - expect(data.schedule[1].run_at).to.eql('2023-10-20T12:00:00.000Z'); - expect(data.schedule[2].run_at).to.eql('2023-10-21T00:00:00.000Z'); - expect(data.schedule[3].run_at).to.eql('2023-10-21T12:00:00.000Z'); - expect(data.schedule[4].run_at).to.eql('2023-10-22T00:00:00.000Z'); - expect(data.schedule[5].run_at).to.eql('2023-10-22T12:00:00.000Z'); - expect(data.schedule[6].run_at).to.eql('2023-10-23T00:00:00.000Z'); - expect(data.schedule[7].run_at).to.eql('2023-10-23T12:00:00.000Z'); - expect(data.schedule[8].run_at).to.eql('2023-10-24T00:00:00.000Z'); - expect(data.schedule[9].run_at).to.eql('2023-10-24T12:00:00.000Z'); - expect(data.schedule[10].run_at).to.eql('2023-10-25T00:00:00.000Z'); - expect(data.schedule[11].run_at).to.eql('2023-10-25T12:00:00.000Z'); } function testExpectedBackfill2(data: any, id: string, ruleId: string, spaceId: string) { expect(data.id).to.eql(id); expect(data.duration).to.eql('12h'); expect(data.enabled).to.eql(true); - expect(data.start).to.eql('2023-10-21T12:00:00.000Z'); - expect(data.end).to.eql('2023-10-23T12:00:00.000Z'); + expect(data.start).to.eql(start2); + expect(data.end).to.eql(end2); expect(data.status).to.eql('pending'); expect(data.space_id).to.eql(spaceId); expect(typeof data.created_at).to.be('string'); testExpectedRule(data, ruleId, false); expect(data.schedule.length).to.eql(4); + + let currentStart = start2; data.schedule.forEach((sched: any) => { expect(sched.interval).to.eql('12h'); expect(sched.status).to.match(/complete|pending|running|error|timeout/); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; }); - expect(data.schedule[0].run_at).to.eql('2023-10-22T00:00:00.000Z'); - expect(data.schedule[1].run_at).to.eql('2023-10-22T12:00:00.000Z'); - expect(data.schedule[2].run_at).to.eql('2023-10-23T00:00:00.000Z'); - expect(data.schedule[3].run_at).to.eql('2023-10-23T12:00:00.000Z'); } function testExpectedRule(result: any, ruleId: string | undefined, isSO: boolean) { @@ -165,16 +164,8 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .send([ - { - rule_id: ruleId1, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-25T12:00:00.000Z', - }, - { - rule_id: ruleId2, - start: '2023-10-21T12:00:00.000Z', - end: '2023-10-23T12:00:00.000Z', - }, + { rule_id: ruleId1, start: start1, end: end1 }, + { rule_id: ruleId2, start: start2, end: end2 }, ]); const scheduleResult = scheduleResponse.body; @@ -235,7 +226,11 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?start=2023-10-19T08:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?start=${moment() + .utc() + .startOf('day') + .subtract(15, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -245,7 +240,11 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?start=2023-10-20T08:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?start=${moment() + .utc() + .startOf('day') + .subtract(13, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -255,7 +254,11 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?start=2023-10-22T08:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?start=${moment() + .utc() + .startOf('day') + .subtract(5, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -265,7 +268,11 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?end=2023-10-26T00:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?end=${moment() + .utc() + .startOf('day') + .subtract(5, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -275,7 +282,11 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?end=2023-10-24T18:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?end=${moment() + .utc() + .startOf('day') + .subtract(9, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -285,7 +296,11 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?end=2023-10-18T00:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?end=${moment() + .utc() + .startOf('day') + .subtract(15, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -295,7 +310,15 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?start=2023-10-19T00:00:00.000Z&end=2023-10-26T00:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?start=${moment() + .utc() + .startOf('day') + .subtract(15, 'days') + .toISOString()}&end=${moment() + .utc() + .startOf('day') + .subtract(7, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -305,7 +328,15 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?start=2023-10-21T00:00:00.000Z&end=2023-10-23T13:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?start=${moment() + .utc() + .startOf('day') + .subtract(13, 'days') + .toISOString()}&end=${moment() + .utc() + .startOf('day') + .subtract(9, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -315,7 +346,15 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { .post( `${getUrlPrefix( apiOptions.spaceId - )}/internal/alerting/rules/backfill/_find?start=2023-10-18T00:00:00.000Z&end=2023-10-19T00:00:00.000Z` + )}/internal/alerting/rules/backfill/_find?start=${moment() + .utc() + .startOf('day') + .subtract(20, 'days') + .toISOString()}&end=${moment() + .utc() + .startOf('day') + .subtract(15, 'days') + .toISOString()}` ) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password); @@ -625,9 +664,9 @@ export default function findBackfillTests({ getService }: FtrProviderContext) { ruleId2, space.id ); - const start1 = new Date(resultFindWithSort.data[0].start).valueOf(); - const start2 = new Date(resultFindWithSort.data[1].start).valueOf(); - expect(start1).to.be.greaterThan(start2); + const sortedStart1 = new Date(resultFindWithSort.data[0].start).valueOf(); + const sortedStart2 = new Date(resultFindWithSort.data[1].start).valueOf(); + expect(sortedStart1).to.be.greaterThan(sortedStart2); break; default: diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/get.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/get.ts index cce0e974032a7..7b051df51b226 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/get.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/get.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import moment from 'moment'; import { asyncForEach } from '@kbn/std'; import { UserAtSpaceScenarios } from '../../../../scenarios'; import { getTestRuleData, getUrlPrefix, ObjectRemover } from '../../../../../common/lib'; @@ -19,6 +20,9 @@ export default function getBackfillTests({ getService }: FtrProviderContext) { describe('get backfill', () => { let backfillIds: Array<{ id: string; spaceId: string }> = []; const objectRemover = new ObjectRemover(supertest); + const start = moment().utc().startOf('day').subtract(7, 'days').toISOString(); + const end1 = moment().utc().startOf('day').subtract(1, 'day').toISOString(); + const end2 = moment().utc().startOf('day').subtract(3, 'day').toISOString(); afterEach(async () => { asyncForEach(backfillIds, async ({ id, spaceId }: { id: string; spaceId: string }) => { @@ -115,16 +119,8 @@ export default function getBackfillTests({ getService }: FtrProviderContext) { .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .send([ - { - rule_id: ruleId1, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-25T12:00:00.000Z', - }, - { - rule_id: ruleId2, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-23T12:00:00.000Z', - }, + { rule_id: ruleId1, start, end: end1 }, + { rule_id: ruleId2, start, end: end2 }, ]); const scheduleResult = scheduleResponse.body; @@ -183,52 +179,42 @@ export default function getBackfillTests({ getService }: FtrProviderContext) { expect(getResponse1.body.id).to.eql(backfillId1); expect(getResponse1.body.duration).to.eql('12h'); expect(getResponse1.body.enabled).to.eql(true); - expect(getResponse1.body.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(getResponse1.body.end).to.eql('2023-10-25T12:00:00.000Z'); + expect(getResponse1.body.start).to.eql(start); + expect(getResponse1.body.end).to.eql(end1); expect(getResponse1.body.status).to.eql('pending'); expect(getResponse1.body.space_id).to.eql(space.id); expect(typeof getResponse1.body.created_at).to.be('string'); testExpectedRule(getResponse1.body, ruleId1, false); expect(getResponse1.body.schedule.length).to.eql(12); + + let currentStart = start; getResponse1.body.schedule.forEach((sched: any) => { expect(sched.interval).to.eql('12h'); expect(sched.status).to.match(/complete|pending|running|error|timeout/); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; }); - expect(getResponse1.body.schedule[0].run_at).to.eql('2023-10-20T00:00:00.000Z'); - expect(getResponse1.body.schedule[1].run_at).to.eql('2023-10-20T12:00:00.000Z'); - expect(getResponse1.body.schedule[2].run_at).to.eql('2023-10-21T00:00:00.000Z'); - expect(getResponse1.body.schedule[3].run_at).to.eql('2023-10-21T12:00:00.000Z'); - expect(getResponse1.body.schedule[4].run_at).to.eql('2023-10-22T00:00:00.000Z'); - expect(getResponse1.body.schedule[5].run_at).to.eql('2023-10-22T12:00:00.000Z'); - expect(getResponse1.body.schedule[6].run_at).to.eql('2023-10-23T00:00:00.000Z'); - expect(getResponse1.body.schedule[7].run_at).to.eql('2023-10-23T12:00:00.000Z'); - expect(getResponse1.body.schedule[8].run_at).to.eql('2023-10-24T00:00:00.000Z'); - expect(getResponse1.body.schedule[9].run_at).to.eql('2023-10-24T12:00:00.000Z'); - expect(getResponse1.body.schedule[10].run_at).to.eql('2023-10-25T00:00:00.000Z'); - expect(getResponse1.body.schedule[11].run_at).to.eql('2023-10-25T12:00:00.000Z'); expect(getResponse2.body.id).to.eql(backfillId2); expect(getResponse2.body.duration).to.eql('12h'); expect(getResponse2.body.enabled).to.eql(true); - expect(getResponse2.body.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(getResponse2.body.end).to.eql('2023-10-23T12:00:00.000Z'); + expect(getResponse2.body.start).to.eql(start); + expect(getResponse2.body.end).to.eql(end2); expect(getResponse2.body.status).to.eql('pending'); expect(getResponse2.body.space_id).to.eql(space.id); expect(typeof getResponse2.body.created_at).to.be('string'); testExpectedRule(getResponse2.body, ruleId2, false); expect(getResponse2.body.schedule.length).to.eql(8); + + currentStart = start; getResponse2.body.schedule.forEach((sched: any) => { expect(sched.interval).to.eql('12h'); expect(sched.status).to.match(/complete|pending|running|error|timeout/); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; }); - expect(getResponse2.body.schedule[0].run_at).to.eql('2023-10-20T00:00:00.000Z'); - expect(getResponse2.body.schedule[1].run_at).to.eql('2023-10-20T12:00:00.000Z'); - expect(getResponse2.body.schedule[2].run_at).to.eql('2023-10-21T00:00:00.000Z'); - expect(getResponse2.body.schedule[3].run_at).to.eql('2023-10-21T12:00:00.000Z'); - expect(getResponse2.body.schedule[4].run_at).to.eql('2023-10-22T00:00:00.000Z'); - expect(getResponse2.body.schedule[5].run_at).to.eql('2023-10-22T12:00:00.000Z'); - expect(getResponse2.body.schedule[6].run_at).to.eql('2023-10-23T00:00:00.000Z'); - expect(getResponse2.body.schedule[7].run_at).to.eql('2023-10-23T12:00:00.000Z'); break; default: throw new Error(`Scenario untested: ${JSON.stringify(scenario)}`); @@ -286,13 +272,7 @@ export default function getBackfillTests({ getService }: FtrProviderContext) { const scheduleResponse = await supertest .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') - .send([ - { - rule_id: ruleId, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-25T12:00:00.000Z', - }, - ]); + .send([{ rule_id: ruleId, start, end: end1 }]); const scheduleResult = scheduleResponse.body; expect(scheduleResult.length).to.eql(1); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/schedule.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/schedule.ts index 4bcd91574997b..d5207718d844a 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/schedule.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/schedule.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import moment from 'moment'; import { ALERTING_CASES_SAVED_OBJECT_INDEX, SavedObject } from '@kbn/core-saved-objects-server'; import { AdHocRunSO } from '@kbn/alerting-plugin/server/data/ad_hoc_run/types'; import { get } from 'lodash'; @@ -127,6 +128,8 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext password: user.password, }; it('should handle scheduling backfill job requests appropriately', async () => { + const defaultStart = moment().utc().startOf('day').subtract(7, 'days').toISOString(); + const defaultEnd = moment().utc().startOf('day').subtract(1, 'day').toISOString(); // create 2 rules const rresponse1 = await supertest .post(`${getUrlPrefix(apiOptions.spaceId)}/api/alerting/rule`) @@ -152,10 +155,10 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext .send([ { rule_id: ruleId1, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-25T12:00:00.000Z', + start: defaultStart, + end: defaultEnd, }, - { rule_id: ruleId2, start: '2023-10-19T12:00:00.000Z' }, + { rule_id: ruleId2, start: defaultStart }, ]); switch (scenario.id) { @@ -195,92 +198,37 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext backfillIds.push({ id: result[0].id, spaceId: apiOptions.spaceId }); expect(result[0].duration).to.eql('12h'); expect(result[0].enabled).to.eql(true); - expect(result[0].start).to.eql('2023-10-19T12:00:00.000Z'); - expect(result[0].end).to.eql('2023-10-25T12:00:00.000Z'); + expect(result[0].start).to.eql(defaultStart); + expect(result[0].end).to.eql(defaultEnd); expect(result[0].status).to.eql('pending'); expect(result[0].space_id).to.eql(space.id); expect(typeof result[0].created_at).to.be('string'); testExpectedRule(result[0], ruleId1, false); - expect(result[0].schedule).to.eql([ - { - run_at: '2023-10-20T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-20T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-21T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-21T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-22T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-22T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-23T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-23T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-24T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-24T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-25T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - run_at: '2023-10-25T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - ]); + + let currentStart = defaultStart; + result[0].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); expect(typeof result[1].id).to.be('string'); backfillIds.push({ id: result[1].id, spaceId: apiOptions.spaceId }); expect(result[1].duration).to.eql('12h'); expect(result[1].enabled).to.eql(true); - expect(result[1].start).to.eql('2023-10-19T12:00:00.000Z'); - expect(result[1].end).to.eql('2023-10-20T00:00:00.000Z'); + expect(result[1].start).to.eql(defaultStart); + expect(result[1].end).to.eql(moment(defaultStart).add(12, 'hours').toISOString()); expect(result[1].status).to.eql('pending'); expect(result[1].space_id).to.eql(space.id); expect(typeof result[1].created_at).to.be('string'); testExpectedRule(result[1], ruleId2, false); - expect(result[1].schedule).to.eql([ - { - run_at: '2023-10-20T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - ]); + expect(result[1].schedule[0].interval).to.eql('12h'); + expect(result[1].schedule[0].status).to.eql('pending'); + expect(result[1].schedule[0].run_at).to.eql( + moment(defaultStart).add(12, 'hours').toISOString() + ); // check that the ad hoc run SO was created const adHocRunSO1 = (await getAdHocRunSO(result[0].id)) as SavedObject; @@ -293,91 +241,35 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext expect(typeof adHocRun1.createdAt).to.be('string'); expect(adHocRun1.duration).to.eql('12h'); expect(adHocRun1.enabled).to.eql(true); - expect(adHocRun1.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(adHocRun1.end).to.eql('2023-10-25T12:00:00.000Z'); + expect(adHocRun1.start).to.eql(defaultStart); + expect(adHocRun1.end).to.eql(defaultEnd); expect(adHocRun1.status).to.eql('pending'); expect(adHocRun1.spaceId).to.eql(space.id); testExpectedRule(adHocRun1, undefined, true); - expect(adHocRun1.schedule).to.eql([ - { - runAt: '2023-10-20T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-20T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-21T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-21T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-22T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-22T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-23T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-23T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-24T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-24T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-25T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - { - runAt: '2023-10-25T12:00:00.000Z', - status: 'pending', - interval: '12h', - }, - ]); + currentStart = defaultStart; + adHocRun1.schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.runAt).to.eql(runAt); + currentStart = runAt; + }); expect(typeof adHocRun2.apiKeyId).to.be('string'); expect(typeof adHocRun2.apiKeyToUse).to.be('string'); expect(typeof adHocRun2.createdAt).to.be('string'); expect(adHocRun2.duration).to.eql('12h'); expect(adHocRun2.enabled).to.eql(true); - expect(adHocRun2.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(adHocRun2.end).to.eql('2023-10-20T00:00:00.000Z'); + expect(adHocRun2.start).to.eql(defaultStart); + expect(adHocRun2.end).to.eql(moment(defaultStart).add(12, 'hours').toISOString()); expect(adHocRun2.status).to.eql('pending'); expect(adHocRun2.spaceId).to.eql(space.id); testExpectedRule(adHocRun2, undefined, true); - expect(adHocRun2.schedule).to.eql([ - { - runAt: '2023-10-20T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - ]); + expect(adHocRun2.schedule[0].interval).to.eql('12h'); + expect(adHocRun2.schedule[0].status).to.eql('pending'); + expect(adHocRun2.schedule[0].runAt).to.eql( + moment(defaultStart).add(12, 'hours').toISOString() + ); // check references are stored correctly expect(adHocRunSO1.references).to.eql([{ id: ruleId1, name: 'rule', type: 'alert' }]); @@ -423,6 +315,11 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext }); it('should handle scheduling multiple backfill job requests for a single rule appropriately', async () => { + const start1 = moment().utc().startOf('day').subtract(7, 'days').toISOString(); + const end1 = moment().utc().startOf('day').subtract(4, 'days').toISOString(); + const start2 = moment().utc().startOf('day').subtract(8, 'days').toISOString(); + const start3 = moment().utc().startOf('day').subtract(14, 'days').toISOString(); + const end3 = moment().utc().startOf('day').subtract(12, 'days').toISOString(); // create 1 rule as current user const rresponse = await supertest .post(`${getUrlPrefix(apiOptions.spaceId)}/api/alerting/rule`) @@ -438,17 +335,9 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password) .send([ - { - rule_id: ruleId, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-21T12:00:00.000Z', - }, - { rule_id: ruleId, start: '2023-10-18T12:00:00.000Z' }, - { - rule_id: ruleId, - start: '2023-12-30T12:00:00.000Z', - end: '2024-01-01T12:00:00.000Z', - }, + { rule_id: ruleId, start: start1, end: end1 }, + { rule_id: ruleId, start: start2 }, + { rule_id: ruleId, start: start3, end: end3 }, ]); switch (scenario.id) { @@ -488,85 +377,61 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext backfillIds.push({ id: result[0].id, spaceId: apiOptions.spaceId }); expect(result[0].duration).to.eql('12h'); expect(result[0].enabled).to.eql(true); - expect(result[0].start).to.eql('2023-10-19T12:00:00.000Z'); - expect(result[0].end).to.eql('2023-10-21T12:00:00.000Z'); + expect(result[0].start).to.eql(start1); + expect(result[0].end).to.eql(end1); expect(result[0].status).to.eql('pending'); expect(result[0].space_id).to.eql(space.id); expect(typeof result[0].created_at).to.be('string'); testExpectedRule(result[0], ruleId, false); - expect(result[0].schedule).to.eql([ - { - interval: '12h', - run_at: '2023-10-20T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-20T12:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-21T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-21T12:00:00.000Z', - status: 'pending', - }, - ]); + + let currentStart = start1; + result[0].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); expect(typeof result[1].id).to.be('string'); backfillIds.push({ id: result[1].id, spaceId: apiOptions.spaceId }); expect(result[1].duration).to.eql('12h'); expect(result[1].enabled).to.eql(true); - expect(result[1].start).to.eql('2023-10-18T12:00:00.000Z'); - expect(result[1].end).to.eql('2023-10-19T00:00:00.000Z'); + expect(result[1].start).to.eql(start2); + expect(result[1].end).to.eql(moment(start2).add(12, 'hours').toISOString()); expect(result[1].status).to.eql('pending'); expect(result[1].space_id).to.eql(space.id); expect(typeof result[1].created_at).to.be('string'); testExpectedRule(result[1], ruleId, false); - expect(result[1].schedule).to.eql([ - { - interval: '12h', - run_at: '2023-10-19T00:00:00.000Z', - status: 'pending', - }, - ]); + + currentStart = start2; + result[1].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); expect(typeof result[2].id).to.be('string'); backfillIds.push({ id: result[2].id, spaceId: apiOptions.spaceId }); expect(result[2].duration).to.eql('12h'); expect(result[2].enabled).to.eql(true); - expect(result[2].start).to.eql('2023-12-30T12:00:00.000Z'); - expect(result[2].end).to.eql('2024-01-01T12:00:00.000Z'); + expect(result[2].start).to.eql(start3); + expect(result[2].end).to.eql(end3); expect(result[2].status).to.eql('pending'); expect(result[2].space_id).to.eql(space.id); expect(typeof result[2].created_at).to.be('string'); testExpectedRule(result[2], ruleId, false); - expect(result[2].schedule).to.eql([ - { - interval: '12h', - run_at: '2023-12-31T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-12-31T12:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2024-01-01T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2024-01-01T12:00:00.000Z', - status: 'pending', - }, - ]); + + currentStart = start3; + result[2].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); // check that the ad hoc run SO was created const adHocRunSO1 = (await getAdHocRunSO(result[0].id)) as SavedObject; @@ -581,84 +446,60 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext expect(typeof adHocRun1.createdAt).to.be('string'); expect(adHocRun1.duration).to.eql('12h'); expect(adHocRun1.enabled).to.eql(true); - expect(adHocRun1.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(adHocRun1.end).to.eql('2023-10-21T12:00:00.000Z'); + expect(adHocRun1.start).to.eql(start1); + expect(adHocRun1.end).to.eql(end1); expect(adHocRun1.status).to.eql('pending'); expect(adHocRun1.spaceId).to.eql(space.id); testExpectedRule(adHocRun1, undefined, true); - expect(adHocRun1.schedule).to.eql([ - { - interval: '12h', - runAt: '2023-10-20T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - runAt: '2023-10-20T12:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - runAt: '2023-10-21T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - runAt: '2023-10-21T12:00:00.000Z', - status: 'pending', - }, - ]); + + currentStart = start1; + adHocRun1.schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.runAt).to.eql(runAt); + currentStart = runAt; + }); expect(typeof adHocRun2.apiKeyId).to.be('string'); expect(typeof adHocRun2.apiKeyToUse).to.be('string'); expect(typeof adHocRun2.createdAt).to.be('string'); expect(adHocRun2.duration).to.eql('12h'); expect(adHocRun2.enabled).to.eql(true); - expect(adHocRun2.start).to.eql('2023-10-18T12:00:00.000Z'); - expect(adHocRun2.end).to.eql('2023-10-19T00:00:00.000Z'); + expect(adHocRun2.start).to.eql(start2); + expect(adHocRun2.end).to.eql(moment(start2).add(12, 'hours').toISOString()); expect(adHocRun2.status).to.eql('pending'); expect(adHocRun2.spaceId).to.eql(space.id); testExpectedRule(adHocRun2, undefined, true); - expect(adHocRun2.schedule).to.eql([ - { - interval: '12h', - runAt: '2023-10-19T00:00:00.000Z', - status: 'pending', - }, - ]); + + currentStart = start2; + adHocRun2.schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.runAt).to.eql(runAt); + currentStart = runAt; + }); expect(typeof adHocRun3.apiKeyId).to.be('string'); expect(typeof adHocRun3.apiKeyToUse).to.be('string'); expect(typeof adHocRun3.createdAt).to.be('string'); expect(adHocRun3.duration).to.eql('12h'); expect(adHocRun3.enabled).to.eql(true); - expect(adHocRun3.start).to.eql('2023-12-30T12:00:00.000Z'); - expect(adHocRun3.end).to.eql('2024-01-01T12:00:00.000Z'); + expect(adHocRun3.start).to.eql(start3); + expect(adHocRun3.end).to.eql(end3); expect(adHocRun3.status).to.eql('pending'); expect(adHocRun3.spaceId).to.eql(space.id); testExpectedRule(adHocRun3, undefined, true); - expect(adHocRun3.schedule).to.eql([ - { - interval: '12h', - runAt: '2023-12-31T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - runAt: '2023-12-31T12:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - runAt: '2024-01-01T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - runAt: '2024-01-01T12:00:00.000Z', - status: 'pending', - }, - ]); + + currentStart = start3; + adHocRun3.schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.runAt).to.eql(runAt); + currentStart = runAt; + }); // check references are stored correctly expect(adHocRunSO1.references).to.eql([{ id: ruleId, name: 'rule', type: 'alert' }]); @@ -726,12 +567,7 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password) - .send([ - { - rule_id: 'abc', - start: 'foo', - }, - ]); + .send([{ rule_id: 'abc', start: 'foo' }]); // invalid end time const response2 = await supertestWithoutAuth @@ -741,34 +577,58 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext .send([ { rule_id: 'abc', - start: '2023-10-19T12:00:00.000Z', + start: moment().utc().startOf('day').subtract(7, 'days').toISOString(), end: 'foo', }, ]); // end time equals start time + const time = moment().utc().startOf('day').subtract(7, 'days').toISOString(); const response3 = await supertestWithoutAuth + .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) + .set('kbn-xsrf', 'foo') + .auth(apiOptions.username, apiOptions.password) + .send([{ rule_id: 'abc', start: time, end: time }]); + + // end time is before start time + const response4 = await supertestWithoutAuth .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password) .send([ { rule_id: 'abc', - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-19T12:00:00.000Z', + start: moment().utc().startOf('day').subtract(7, 'days').toISOString(), + end: moment().utc().startOf('day').subtract(8, 'days').toISOString(), }, ]); - // end time is before start time - const response4 = await supertestWithoutAuth + // start time is too far in the past + const response5 = await supertestWithoutAuth + .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) + .set('kbn-xsrf', 'foo') + .auth(apiOptions.username, apiOptions.password) + .send([{ rule_id: 'abc', start: '2023-04-30T00:00:00.000Z' }]); + + // start time is in the future + const response6 = await supertestWithoutAuth + .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) + .set('kbn-xsrf', 'foo') + .auth(apiOptions.username, apiOptions.password) + .send([ + { rule_id: 'abc', start: moment().utc().startOf('day').add(1, 'days').toISOString() }, + ]); + + // end time is in the future + const response7 = await supertestWithoutAuth .post(`${getUrlPrefix(apiOptions.spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password) .send([ { rule_id: 'abc', - start: '2023-10-19T12:00:00.000Z', - end: '2020-10-19T12:00:00.000Z', + start: moment().utc().startOf('day').subtract(1, 'days').toISOString(), + end: moment().utc().startOf('day').add(1, 'days').toISOString(), }, ]); @@ -817,6 +677,27 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext error: 'Bad Request', message: '[request body.0]: Backfill end must be greater than backfill start', }); + + expect(response5.statusCode).to.eql(400); + expect(response5.body).to.eql({ + statusCode: 400, + error: 'Bad Request', + message: '[request body.0]: Backfill cannot look back more than 90 days', + }); + + expect(response6.statusCode).to.eql(400); + expect(response6.body).to.eql({ + statusCode: 400, + error: 'Bad Request', + message: '[request body.0]: Backfill cannot be scheduled for the future', + }); + + expect(response7.statusCode).to.eql(400); + expect(response7.body).to.eql({ + statusCode: 400, + error: 'Bad Request', + message: '[request body.0]: Backfill cannot be scheduled for the future', + }); break; default: throw new Error(`Scenario untested: ${JSON.stringify(scenario)}`); @@ -832,7 +713,7 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext .send([ { rule_id: 'ac612b4b-5d0c-46d7-855a-98dd920e3aa6', - start: '2023-10-19T12:00:00.000Z', + start: moment().utc().startOf('day').subtract(7, 'days').toISOString(), }, ]); @@ -872,6 +753,8 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext }); it('should handle schedule request where some requests succeed and some requests fail appropriately', async () => { + const start = moment().utc().startOf('day').subtract(7, 'days').toISOString(); + const end = moment().utc().startOf('day').subtract(5, 'days').toISOString(); // create 2 rules const rresponse1 = await supertest .post(`${getUrlPrefix(apiOptions.spaceId)}/api/alerting/rule`) @@ -927,16 +810,12 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext .set('kbn-xsrf', 'foo') .auth(apiOptions.username, apiOptions.password) .send([ - { - rule_id: ruleId1, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-21T00:00:00.000Z', - }, - { rule_id: ruleId2, start: '2023-10-19T12:00:00.000Z' }, - { rule_id: lifecycleRuleId, start: '2023-10-19T12:00:00.000Z' }, - { rule_id: disabledRuleId, start: '2023-10-19T12:00:00.000Z' }, - { rule_id: deletedRuleId, start: '2023-10-19T12:00:00.000Z' }, - { rule_id: ruleId1, start: '2023-10-19T12:00:00.000Z' }, + { rule_id: ruleId1, start, end }, + { rule_id: ruleId2, start }, + { rule_id: lifecycleRuleId, start }, + { rule_id: disabledRuleId, start }, + { rule_id: deletedRuleId, start }, + { rule_id: ruleId1, start }, ]); switch (scenario.id) { @@ -977,48 +856,42 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext backfillIds.push({ id: result[0].id, spaceId: apiOptions.spaceId }); expect(result[0].duration).to.eql('12h'); expect(result[0].enabled).to.eql(true); - expect(result[0].start).to.eql('2023-10-19T12:00:00.000Z'); - expect(result[0].end).to.eql('2023-10-21T00:00:00.000Z'); + expect(result[0].start).to.eql(start); + expect(result[0].end).to.eql(end); expect(result[0].status).to.eql('pending'); expect(result[0].space_id).to.eql(space.id); expect(typeof result[0].created_at).to.be('string'); testExpectedRule(result[0], ruleId1, false); - expect(result[0].schedule).to.eql([ - { - interval: '12h', - run_at: '2023-10-20T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-20T12:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-21T00:00:00.000Z', - status: 'pending', - }, - ]); + + let currentStart = start; + result[0].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); // successful schedule expect(typeof result[1].id).to.be('string'); backfillIds.push({ id: result[1].id, spaceId: apiOptions.spaceId }); expect(result[1].duration).to.eql('12h'); expect(result[1].enabled).to.eql(true); - expect(result[1].start).to.eql('2023-10-19T12:00:00.000Z'); - expect(result[1].end).to.eql('2023-10-20T00:00:00.000Z'); + expect(result[1].start).to.eql(start); + expect(result[1].end).to.eql(moment(start).add(12, 'hours').toISOString()); expect(result[1].status).to.eql('pending'); expect(result[1].space_id).to.eql(space.id); expect(typeof result[1].created_at).to.be('string'); testExpectedRule(result[1], ruleId2, false); - expect(result[1].schedule).to.eql([ - { - interval: '12h', - run_at: '2023-10-20T00:00:00.000Z', - status: 'pending', - }, - ]); + + currentStart = start; + result[1].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); // error scheduling due to unsupported rule type expect(result[2]).to.eql({ @@ -1049,19 +922,21 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext backfillIds.push({ id: result[5].id, spaceId: apiOptions.spaceId }); expect(result[5].duration).to.eql('12h'); expect(result[5].enabled).to.eql(true); - expect(result[5].start).to.eql('2023-10-19T12:00:00.000Z'); - expect(result[5].end).to.eql('2023-10-20T00:00:00.000Z'); + expect(result[5].start).to.eql(start); + expect(result[5].end).to.eql(moment(start).add(12, 'hours').toISOString()); expect(result[5].status).to.eql('pending'); expect(result[5].space_id).to.eql(space.id); expect(typeof result[5].created_at).to.be('string'); testExpectedRule(result[5], ruleId1, false); - expect(result[5].schedule).to.eql([ - { - interval: '12h', - run_at: '2023-10-20T00:00:00.000Z', - status: 'pending', - }, - ]); + + currentStart = start; + result[5].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); // check that the expected ad hoc run SOs were created const adHocRunSO1 = (await getAdHocRunSO(result[0].id)) as SavedObject; @@ -1076,64 +951,60 @@ export default function scheduleBackfillTests({ getService }: FtrProviderContext expect(typeof adHocRun1.createdAt).to.be('string'); expect(adHocRun1.duration).to.eql('12h'); expect(adHocRun1.enabled).to.eql(true); - expect(adHocRun1.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(adHocRun1.end).to.eql('2023-10-21T00:00:00.000Z'); + expect(adHocRun1.start).to.eql(start); + expect(adHocRun1.end).to.eql(end); expect(adHocRun1.status).to.eql('pending'); expect(adHocRun1.spaceId).to.eql(space.id); testExpectedRule(adHocRun1, undefined, true); - expect(adHocRun1.schedule).to.eql([ - { - interval: '12h', - runAt: '2023-10-20T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - runAt: '2023-10-20T12:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - runAt: '2023-10-21T00:00:00.000Z', - status: 'pending', - }, - ]); + + currentStart = start; + adHocRun1.schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.runAt).to.eql(runAt); + currentStart = runAt; + }); expect(typeof adHocRun2.apiKeyId).to.be('string'); expect(typeof adHocRun2.apiKeyToUse).to.be('string'); expect(typeof adHocRun2.createdAt).to.be('string'); expect(adHocRun2.duration).to.eql('12h'); expect(adHocRun2.enabled).to.eql(true); - expect(adHocRun2.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(adHocRun2.end).to.eql('2023-10-20T00:00:00.000Z'); + expect(adHocRun2.start).to.eql(start); + expect(adHocRun2.end).to.eql(moment(start).add(12, 'hours').toISOString()); expect(adHocRun2.status).to.eql('pending'); expect(adHocRun2.spaceId).to.eql(space.id); testExpectedRule(adHocRun2, undefined, true); - expect(adHocRun2.schedule).to.eql([ - { - runAt: '2023-10-20T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - ]); + + currentStart = start; + adHocRun2.schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.runAt).to.eql(runAt); + currentStart = runAt; + }); expect(typeof adHocRun3.apiKeyId).to.be('string'); expect(typeof adHocRun3.apiKeyToUse).to.be('string'); expect(typeof adHocRun3.createdAt).to.be('string'); expect(adHocRun3.duration).to.eql('12h'); expect(adHocRun3.enabled).to.eql(true); - expect(adHocRun3.start).to.eql('2023-10-19T12:00:00.000Z'); - expect(adHocRun3.end).to.eql('2023-10-20T00:00:00.000Z'); + expect(adHocRun3.start).to.eql(start); + expect(adHocRun3.end).to.eql(moment(start).add(12, 'hours').toISOString()); expect(adHocRun3.status).to.eql('pending'); expect(adHocRun3.spaceId).to.eql(space.id); testExpectedRule(adHocRun3, undefined, true); - expect(adHocRun3.schedule).to.eql([ - { - runAt: '2023-10-20T00:00:00.000Z', - status: 'pending', - interval: '12h', - }, - ]); + + currentStart = start; + adHocRun3.schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.runAt).to.eql(runAt); + currentStart = runAt; + }); // check references are stored correctly expect(adHocRunSO1.references).to.eql([{ id: ruleId1, name: 'rule', type: 'alert' }]); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/task_runner.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/task_runner.ts index 72635b82c8daf..6b555198e5eff 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/task_runner.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/backfill/task_runner.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import moment from 'moment'; import { SearchHit } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { SecurityAlert } from '@kbn/alerts-as-data-utils'; import { @@ -61,28 +62,28 @@ export default function createBackfillTaskRunnerTests({ getService }: FtrProvide const timestampPattern = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; const originalDocTimestamps = [ // before first backfill run - '2023-10-18T10:42:37.452Z', + moment().utc().subtract(14, 'days').toISOString(), // backfill execution set 1 - '2023-10-19T12:23:54.485Z', - '2023-10-19T13:48:11.654Z', - '2023-10-19T21:00:03.472Z', + moment().utc().startOf('day').subtract(13, 'days').add(64, 'seconds').toISOString(), + moment().utc().startOf('day').subtract(13, 'days').add(65, 'seconds').toISOString(), + moment().utc().startOf('day').subtract(13, 'days').add(66, 'seconds').toISOString(), // backfill execution set 2 - '2023-10-20T08:12:34.954Z', + moment().utc().startOf('day').subtract(12, 'days').add(89, 'seconds').toISOString(), // backfill execution set 3 - '2023-10-20T14:39:41.457Z', - '2023-10-20T14:39:41.457Z', - '2023-10-20T16:21:01.004Z', - '2023-10-20T19:02:12.475Z', - '2023-10-20T23:59:59.999Z', + moment().utc().startOf('day').subtract(11, 'days').add(785, 'seconds').toISOString(), + moment().utc().startOf('day').subtract(11, 'days').add(888, 'seconds').toISOString(), + moment().utc().startOf('day').subtract(11, 'days').add(954, 'seconds').toISOString(), + moment().utc().startOf('day').subtract(11, 'days').add(1045, 'seconds').toISOString(), + moment().utc().startOf('day').subtract(11, 'days').add(1145, 'seconds').toISOString(), // backfill execution set 4 purposely left empty // after last backfill - '2023-10-21T13:36:13.175Z', - '2023-10-21T15:42:31.145Z', + moment().utc().startOf('day').subtract(9, 'days').add(666, 'seconds').toISOString(), + moment().utc().startOf('day').subtract(9, 'days').add(667, 'seconds').toISOString(), ]; describe('ad hoc backfill task', () => { @@ -126,7 +127,7 @@ export default function createBackfillTaskRunnerTests({ getService }: FtrProvide tags: [], rule_type_id: 'siem.queryRule', consumer: 'siem', - schedule: { interval: '12h' }, + schedule: { interval: '24h' }, actions: [], params: { author: [], @@ -165,46 +166,30 @@ export default function createBackfillTaskRunnerTests({ getService }: FtrProvide const ruleId = response1.body.id; objectRemover.add(spaceId, ruleId, 'rule', 'alerting'); + const start = moment().utc().startOf('day').subtract(13, 'days').toISOString(); + const end = moment().utc().startOf('day').subtract(9, 'days').toISOString(); + // Schedule backfill for this rule const response2 = await supertestWithoutAuth .post(`${getUrlPrefix(spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .auth(SuperuserAtSpace1.user.username, SuperuserAtSpace1.user.password) - .send([ - { - rule_id: ruleId, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-21T12:00:00.000Z', - }, - ]) + .send([{ rule_id: ruleId, start, end }]) .expect(200); const scheduleResult = response2.body; expect(scheduleResult.length).to.eql(1); expect(scheduleResult[0].schedule.length).to.eql(4); - expect(scheduleResult[0].schedule).to.eql([ - { - interval: '12h', - run_at: '2023-10-20T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-20T12:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-21T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-21T12:00:00.000Z', - status: 'pending', - }, - ]); + + let currentStart = start; + scheduleResult[0].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('24h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(24, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); const backfillId = scheduleResult[0].id; @@ -414,16 +399,12 @@ export default function createBackfillTaskRunnerTests({ getService }: FtrProvide objectRemover.add(spaceId, ruleId, 'rule', 'alerting'); // schedule backfill for this rule + const start = moment().utc().startOf('day').subtract(13, 'days').toISOString(); const response2 = await supertestWithoutAuth .post(`${getUrlPrefix(spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .auth(SuperuserAtSpace1.user.username, SuperuserAtSpace1.user.password) - .send([ - { - rule_id: ruleId, - start: '2023-10-19T12:00:00.000Z', - }, - ]) + .send([{ rule_id: ruleId, start }]) .expect(200); const scheduleResult = response2.body; @@ -433,7 +414,7 @@ export default function createBackfillTaskRunnerTests({ getService }: FtrProvide expect(scheduleResult[0].schedule).to.eql([ { interval: '12h', - run_at: '2023-10-20T00:00:00.000Z', + run_at: moment(start).add(12, 'hours').toISOString(), status: 'pending', }, ]); @@ -556,45 +537,27 @@ export default function createBackfillTaskRunnerTests({ getService }: FtrProvide objectRemover.add(spaceId, ruleId, 'rule', 'alerting'); // schedule backfill for this rule + const start = moment().utc().startOf('day').subtract(13, 'days').toISOString(); + const end = moment().utc().startOf('day').subtract(11, 'days').toISOString(); const response2 = await supertestWithoutAuth .post(`${getUrlPrefix(spaceId)}/internal/alerting/rules/backfill/_schedule`) .set('kbn-xsrf', 'foo') .auth(SuperuserAtSpace1.user.username, SuperuserAtSpace1.user.password) - .send([ - { - rule_id: ruleId, - start: '2023-10-19T12:00:00.000Z', - end: '2023-10-21T12:00:00.000Z', - }, - ]) + .send([{ rule_id: ruleId, start, end }]) .expect(200); const scheduleResult = response2.body; expect(scheduleResult.length).to.eql(1); expect(scheduleResult[0].schedule.length).to.eql(4); - expect(scheduleResult[0].schedule).to.eql([ - { - interval: '12h', - run_at: '2023-10-20T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-20T12:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-21T00:00:00.000Z', - status: 'pending', - }, - { - interval: '12h', - run_at: '2023-10-21T12:00:00.000Z', - status: 'pending', - }, - ]); + let currentStart = start; + scheduleResult[0].schedule.forEach((sched: any) => { + expect(sched.interval).to.eql('12h'); + expect(sched.status).to.eql('pending'); + const runAt = moment(currentStart).add(12, 'hours').toISOString(); + expect(sched.run_at).to.eql(runAt); + currentStart = runAt; + }); const backfillId = scheduleResult[0].id; From e7a9291bb97d7a3bdef947ed8f8c39d8cc4c3a56 Mon Sep 17 00:00:00 2001 From: Brandon Morelli Date: Wed, 8 May 2024 10:09:49 -0700 Subject: [PATCH 09/11] Add synthetic serverless doc links (#182740) ## Summary Adds Synthetic Serverless doc links (and one missing logs link). Closes https://github.com/elastic/obs-docs-team/issues/219. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: DeDe Morton --- packages/kbn-doc-links/src/get_doc_links.ts | 28 +++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index f42bd3b688e4e..16d4fc648c3c6 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -578,21 +578,33 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D ? `${SERVERLESS_OBSERVABILITY_DOCS}create-custom-threshold-alert-rule` : `${OBSERVABILITY_DOCS}custom-threshold-alert.html`, monitorStatus: `${OBSERVABILITY_DOCS}monitor-status-alert.html`, - monitorUptime: `${OBSERVABILITY_DOCS}monitor-uptime.html`, + monitorUptime: isServerless + ? `${SERVERLESS_OBSERVABILITY_DOCS}monitor-synthetics` + : `${OBSERVABILITY_DOCS}monitor-uptime.html`, tlsCertificate: `${OBSERVABILITY_DOCS}tls-certificate-alert.html`, uptimeDurationAnomaly: `${OBSERVABILITY_DOCS}duration-anomaly-alert.html`, - monitorLogs: `${OBSERVABILITY_DOCS}monitor-logs.html`, + monitorLogs: isServerless + ? `${SERVERLESS_OBSERVABILITY_DOCS}discover-and-explore-logs` + : `${OBSERVABILITY_DOCS}monitor-logs.html`, analyzeMetrics: isServerless ? `${SERVERLESS_OBSERVABILITY_DOCS}infrastructure-monitoring` : `${OBSERVABILITY_DOCS}analyze-metrics.html`, - monitorUptimeSynthetics: `${OBSERVABILITY_DOCS}monitor-uptime-synthetics.html`, + monitorUptimeSynthetics: isServerless + ? `${SERVERLESS_OBSERVABILITY_DOCS}monitor-synthetics` + : `${OBSERVABILITY_DOCS}monitor-uptime-synthetics.html`, userExperience: `${OBSERVABILITY_DOCS}user-experience.html`, createAlerts: isServerless ? `${SERVERLESS_OBSERVABILITY_DOCS}alerting` : `${OBSERVABILITY_DOCS}create-alerts.html`, - syntheticsAlerting: `${OBSERVABILITY_DOCS}synthetics-settings.html#synthetics-settings-alerting`, - syntheticsCommandReference: `${OBSERVABILITY_DOCS}synthetics-configuration.html#synthetics-configuration-playwright-options`, - syntheticsProjectMonitors: `${OBSERVABILITY_DOCS}synthetic-run-tests.html#synthetic-monitor-choose-project`, + syntheticsAlerting: isServerless + ? `${SERVERLESS_OBSERVABILITY_DOCS}synthetics-settings#alerting` + : `${OBSERVABILITY_DOCS}synthetics-settings.html#synthetics-settings-alerting`, + syntheticsCommandReference: isServerless + ? `${SERVERLESS_OBSERVABILITY_DOCS}synthetics-configuration#playwrightoptions` + : `${OBSERVABILITY_DOCS}synthetics-configuration.html#synthetics-configuration-playwright-options`, + syntheticsProjectMonitors: isServerless + ? `${SERVERLESS_OBSERVABILITY_DOCS}synthetics-get-started-project` + : `${OBSERVABILITY_DOCS}synthetic-run-tests.html#synthetic-monitor-choose-project`, syntheticsMigrateFromIntegration: `${OBSERVABILITY_DOCS}synthetics-migrate-from-integration.html`, sloBurnRateRule: isServerless ? `${SERVERLESS_OBSERVABILITY_DOCS}create-slo-burn-rate-alert-rule` @@ -940,7 +952,9 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D apiKeyPrivileges: `${SERVERLESS_DOCS}api-keys#restrict-privileges`, }, synthetics: { - featureRoles: `${OBSERVABILITY_DOCS}synthetics-feature-roles.html`, + featureRoles: isServerless + ? `${SERVERLESS_OBSERVABILITY_DOCS}synthetics-feature-roles` + : `${OBSERVABILITY_DOCS}synthetics-feature-roles.html`, }, telemetry: { settings: `${KIBANA_DOCS}telemetry-settings-kbn.html`, From 718e6f0348e23707f18b6dd0f287a87dc7152a08 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Wed, 8 May 2024 13:21:51 -0400 Subject: [PATCH 10/11] [Fleet] Support granular privileges for endpoint action menu (#182617) --- .../endpoint/service/authz/authz.test.ts | 24 +++++++++++++++++++ .../common/endpoint/service/authz/authz.ts | 6 +++++ .../common/endpoint/types/authz.ts | 6 +++++ .../view/hooks/use_endpoint_action_items.tsx | 18 +++++++++++--- .../pages/endpoint_hosts/view/index.test.tsx | 5 +++- 5 files changed, 55 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/security_solution/common/endpoint/service/authz/authz.test.ts b/x-pack/plugins/security_solution/common/endpoint/service/authz/authz.test.ts index a3b3ebaf26142..b5e4e874c7537 100644 --- a/x-pack/plugins/security_solution/common/endpoint/service/authz/authz.test.ts +++ b/x-pack/plugins/security_solution/common/endpoint/service/authz/authz.test.ts @@ -98,6 +98,27 @@ describe('Endpoint Authz service', () => { ); }); + it('should not give canReadFleetAgents if `fleet.readAgents` is false', () => { + fleetAuthz.fleet.readAgents = false; + expect(calculateEndpointAuthz(licenseService, fleetAuthz, userRoles).canReadFleetAgents).toBe( + false + ); + }); + + it('should not give canWriteFleetAgents if `fleet.allAgents` is false', () => { + fleetAuthz.fleet.allAgents = false; + expect( + calculateEndpointAuthz(licenseService, fleetAuthz, userRoles).canWriteFleetAgents + ).toBe(false); + }); + + it('should not give canReadFleetAgentPolicies if `fleet.readAgentPolicies` is false', () => { + fleetAuthz.fleet.readAgentPolicies = false; + expect( + calculateEndpointAuthz(licenseService, fleetAuthz, userRoles).canReadFleetAgentPolicies + ).toBe(false); + }); + it('should not give canAccessEndpointManagement if not superuser', () => { userRoles = []; expect( @@ -276,6 +297,9 @@ describe('Endpoint Authz service', () => { canWriteSecuritySolution: false, canReadSecuritySolution: false, canAccessFleet: false, + canReadFleetAgentPolicies: false, + canReadFleetAgents: false, + canWriteFleetAgents: false, canAccessEndpointActionsLogManagement: false, canAccessEndpointManagement: false, canCreateArtifactsByPolicy: false, diff --git a/x-pack/plugins/security_solution/common/endpoint/service/authz/authz.ts b/x-pack/plugins/security_solution/common/endpoint/service/authz/authz.ts index f38a636b78211..95430a6df82fb 100644 --- a/x-pack/plugins/security_solution/common/endpoint/service/authz/authz.ts +++ b/x-pack/plugins/security_solution/common/endpoint/service/authz/authz.ts @@ -98,6 +98,9 @@ export const calculateEndpointAuthz = ( canWriteSecuritySolution, canReadSecuritySolution, canAccessFleet: fleetAuthz?.fleet.all ?? false, + canReadFleetAgentPolicies: fleetAuthz?.fleet.readAgentPolicies ?? false, + canWriteFleetAgents: fleetAuthz?.fleet.allAgents ?? false, + canReadFleetAgents: fleetAuthz?.fleet.readAgents ?? false, canAccessEndpointManagement: hasEndpointManagementAccess, // TODO: is this one deprecated? it is the only place we need to check for superuser. canCreateArtifactsByPolicy: isPlatinumPlusLicense, canWriteEndpointList, @@ -157,6 +160,9 @@ export const getEndpointAuthzInitialState = (): EndpointAuthz => { canWriteSecuritySolution: false, canReadSecuritySolution: false, canAccessFleet: false, + canReadFleetAgentPolicies: false, + canReadFleetAgents: false, + canWriteFleetAgents: false, canAccessEndpointActionsLogManagement: false, canAccessEndpointManagement: false, canCreateArtifactsByPolicy: false, diff --git a/x-pack/plugins/security_solution/common/endpoint/types/authz.ts b/x-pack/plugins/security_solution/common/endpoint/types/authz.ts index 1ec8f84a87073..0ccefaa686f72 100644 --- a/x-pack/plugins/security_solution/common/endpoint/types/authz.ts +++ b/x-pack/plugins/security_solution/common/endpoint/types/authz.ts @@ -16,6 +16,12 @@ export interface EndpointAuthz { canReadSecuritySolution: boolean; /** If the user has permissions to access Fleet */ canAccessFleet: boolean; + /** If the user has permissions to access Fleet Agent policies */ + canReadFleetAgentPolicies: boolean; + /** If the user has permissions to read Fleet Agents */ + canReadFleetAgents: boolean; + /** If the user has permissions to write Fleet Agents */ + canWriteFleetAgents: boolean; /** If the user has permissions to access Endpoint management (includes check to ensure they also have access to fleet) */ canAccessEndpointManagement: boolean; /** If the user has permissions to access Actions Log management and also has a platinum license (used for endpoint details flyout) */ diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/hooks/use_endpoint_action_items.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/hooks/use_endpoint_action_items.tsx index 1bd0c3dff62ff..5003aeae08840 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/hooks/use_endpoint_action_items.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/hooks/use_endpoint_action_items.tsx @@ -43,7 +43,9 @@ export const useEndpointActionItems = ( canIsolateHost, canUnIsolateHost, canAccessEndpointActionsLogManagement, - canAccessFleet, + canReadFleetAgentPolicies, + canWriteFleetAgents, + canReadFleetAgents, } = useUserPrivileges().endpointPrivileges; return useMemo(() => { @@ -177,7 +179,7 @@ export const useEndpointActionItems = ( /> ), }, - ...(canAccessFleet + ...(canReadFleetAgentPolicies ? [ { icon: 'gear', @@ -204,6 +206,10 @@ export const useEndpointActionItems = ( /> ), }, + ] + : []), + ...(canReadFleetAgents + ? [ { icon: 'gear', key: 'agentDetailsLink', @@ -228,6 +234,10 @@ export const useEndpointActionItems = ( /> ), }, + ] + : []), + ...(canWriteFleetAgents + ? [ { icon: 'gear', key: 'agentPolicyReassignLink', @@ -272,6 +282,8 @@ export const useEndpointActionItems = ( options?.isEndpointList, canIsolateHost, canUnIsolateHost, - canAccessFleet, + canReadFleetAgentPolicies, + canReadFleetAgents, + canWriteFleetAgents, ]); }; diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.test.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.test.tsx index f625e88e8a30c..91bc557d94d2d 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.test.tsx @@ -1455,12 +1455,15 @@ describe('when on the endpoint list page', () => { const hostLink = await renderResult.findByTestId('hostLink'); expect(hostLink).not.toBeNull(); }); - it('shows Agent Policy, View Agent Details and Reassign Policy Links when canAccessFleet RBAC control is enabled', async () => { + it('shows Agent Policy, View Agent Details and Reassign Policy Links when canReadFleetAgents,canWriteFleetAgents,canReadFleetAgentPolicies RBAC control is enabled', async () => { mockUserPrivileges.mockReturnValue({ ...mockInitialUserPrivilegesState(), endpointPrivileges: { ...mockInitialUserPrivilegesState().endpointPrivileges, canAccessFleet: true, + canReadFleetAgents: true, + canWriteFleetAgents: true, + canReadFleetAgentPolicies: true, }, }); await renderAndClickActionsButton(); From 0833045a42cd0b0f788e3a743953f9e364705350 Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Wed, 8 May 2024 19:54:21 +0200 Subject: [PATCH 11/11] [Fleet] rollback input package install on failure (#182665) ## Summary Closes https://github.com/elastic/kibana/issues/181032 2 improvements on input package policy creation failure handling: - if the package was not installed initially, rolling back on failure - only saving es references with the input package installation if the templates are added successfully, to prevent issues with upgrade later if the references would contain invalid template names - this is needed if the input package was installed before attempting to add a package policy, in this case we don't want to completely uninstall the package on failure To verify: Custom Logs package uninstalled: - add Custom Logs integration with dataset name with a * in it e.g. `generic*` - the package policy creation is expected to fail - verify that the Custom Logs package is not installed Custom Logs package installed: - Install Custom Logs package without package policy or add integration with the default dataset name to succeed - try adding another policy with dataset `generic*` - the package policy creation is expected to fail - verify that the Custom Logs package doesn't have any `installed_es` references with the invalid `generic*` prefix `GET .kibana_ingest/_search?q=epm-packages.name:log` ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --------- Co-authored-by: Jen Huang --- .../single_page_layout/hooks/form.tsx | 3 +- .../server/routes/package_policy/handlers.ts | 35 ++++- .../install_index_template_pipeline.ts | 23 +-- .../apis/package_policy/index.js | 1 + .../package_policy/input_package_rollback.ts | 136 ++++++++++++++++++ 5 files changed, 186 insertions(+), 12 deletions(-) create mode 100644 x-pack/test/fleet_api_integration/apis/package_policy/input_package_rollback.ts diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/hooks/form.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/hooks/form.tsx index 83453496507b0..b256349f5d6b9 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/hooks/form.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/hooks/form.tsx @@ -272,7 +272,8 @@ export function useOnSubmit({ setFormState('LOADING'); if ((withSysMonitoring || newAgentPolicy.monitoring_enabled?.length) ?? 0 > 0) { const packagesToPreinstall: Array = []; - if (packageInfo) { + // skip preinstall of input package, to be able to rollback when package policy creation fails + if (packageInfo && packageInfo.type !== 'input') { packagesToPreinstall.push({ name: packageInfo.name, version: packageInfo.version }); } if (withSysMonitoring) { diff --git a/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts b/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts index 7631e38f8df31..86d9be70435a5 100644 --- a/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts +++ b/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts @@ -48,7 +48,12 @@ import { PackagePolicyNotFoundError, PackagePolicyRequestError, } from '../../errors'; -import { getInstallations, getPackageInfo } from '../../services/epm/packages'; +import { + getInstallation, + getInstallations, + getPackageInfo, + removeInstallation, +} from '../../services/epm/packages'; import { PACKAGES_SAVED_OBJECT_TYPE, SO_SEARCH_LIMIT } from '../../constants'; import { simplifiedPackagePolicytoNewPackagePolicy, @@ -229,6 +234,7 @@ export const createPackagePolicyHandler: FleetRequestHandler< const user = appContextService.getSecurity()?.authc.getCurrentUser(request) || undefined; const { force, id, package: pkg, ...newPolicy } = request.body; const authorizationHeader = HTTPAuthorizationHeader.parseFromRequest(request, user?.username); + let wasPackageAlreadyInstalled = false; if ('output_id' in newPolicy) { // TODO Remove deprecated APIs https://github.com/elastic/kibana/issues/121485 @@ -258,6 +264,12 @@ export const createPackagePolicyHandler: FleetRequestHandler< } as NewPackagePolicy); } + const installation = await getInstallation({ + savedObjectsClient: soClient, + pkgName: pkg!.name, + }); + wasPackageAlreadyInstalled = installation?.install_status === 'installed'; + // Create package policy const packagePolicy = await fleetContext.packagePolicyService.asCurrentUser.create( soClient, @@ -282,6 +294,27 @@ export const createPackagePolicyHandler: FleetRequestHandler< }, }); } catch (error) { + appContextService + .getLogger() + .error(`Error while creating package policy due to error: ${error.message}`); + if (!wasPackageAlreadyInstalled) { + const installation = await getInstallation({ + savedObjectsClient: soClient, + pkgName: pkg!.name, + }); + if (installation) { + appContextService + .getLogger() + .info(`rollback ${pkg!.name}-${pkg!.version} package installation after error`); + await removeInstallation({ + savedObjectsClient: soClient, + pkgName: pkg!.name, + pkgVersion: pkg!.version, + esClient, + }); + } + } + if (error.statusCode) { return response.customError({ statusCode: error.statusCode, diff --git a/x-pack/plugins/fleet/server/services/epm/packages/install_index_template_pipeline.ts b/x-pack/plugins/fleet/server/services/epm/packages/install_index_template_pipeline.ts index 8092a133490af..ad738d1710fcc 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/install_index_template_pipeline.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/install_index_template_pipeline.ts @@ -68,16 +68,7 @@ export async function installIndexTemplatesAndPipelines({ // cleanup in the case that a single asset fails to install. let newEsReferences: EsAssetReference[] = []; - if (onlyForDataStreams) { - // if onlyForDataStreams is present that means we are in create package policy flow - // not install flow, meaning we do not have a lock on the installation SO - // so we need to use optimistic concurrency control - newEsReferences = await optimisticallyAddEsAssetReferences( - savedObjectsClient, - packageInstallContext.packageInfo.name, - [...preparedIngestPipelines.assetsToAdd, ...preparedIndexTemplates.assetsToAdd] - ); - } else { + if (!onlyForDataStreams) { newEsReferences = await updateEsAssetReferences( savedObjectsClient, packageInstallContext.packageInfo.name, @@ -103,6 +94,18 @@ export async function installIndexTemplatesAndPipelines({ ), ]); + // only add ES references if templates and pipelines were installed successfully, to prevent upgrade issues for referencing invalid template name + if (onlyForDataStreams) { + // if onlyForDataStreams is present that means we are in create package policy flow + // not install flow, meaning we do not have a lock on the installation SO + // so we need to use optimistic concurrency control + newEsReferences = await optimisticallyAddEsAssetReferences( + savedObjectsClient, + packageInstallContext.packageInfo.name, + [...preparedIngestPipelines.assetsToAdd, ...preparedIndexTemplates.assetsToAdd] + ); + } + return { esReferences: newEsReferences, installedTemplates, diff --git a/x-pack/test/fleet_api_integration/apis/package_policy/index.js b/x-pack/test/fleet_api_integration/apis/package_policy/index.js index f4f3069922c1d..8cb9cbd66a186 100644 --- a/x-pack/test/fleet_api_integration/apis/package_policy/index.js +++ b/x-pack/test/fleet_api_integration/apis/package_policy/index.js @@ -19,5 +19,6 @@ export default function loadTests({ loadTestFile, getService }) { loadTestFile(require.resolve('./delete')); loadTestFile(require.resolve('./upgrade')); loadTestFile(require.resolve('./input_package_create_upgrade')); + loadTestFile(require.resolve('./input_package_rollback')); }); } diff --git a/x-pack/test/fleet_api_integration/apis/package_policy/input_package_rollback.ts b/x-pack/test/fleet_api_integration/apis/package_policy/input_package_rollback.ts new file mode 100644 index 0000000000000..50c325dac22fb --- /dev/null +++ b/x-pack/test/fleet_api_integration/apis/package_policy/input_package_rollback.ts @@ -0,0 +1,136 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import expect from '@kbn/expect'; +import { sortBy } from 'lodash'; +import { FtrProviderContext } from '../../../api_integration/ftr_provider_context'; +import { skipIfNoDockerRegistry } from '../../helpers'; +import { setupFleetAndAgents } from '../agents/services'; +const PACKAGE_NAME = 'input_package_upgrade'; +const START_VERSION = '1.0.0'; + +const expectIdArraysEqual = (arr1: any[], arr2: any[]) => { + expect(sortBy(arr1, 'id')).to.eql(sortBy(arr2, 'id')); +}; +export default function (providerContext: FtrProviderContext) { + const { getService } = providerContext; + const supertest = getService('supertest'); + const uninstallPackage = async (name: string, version: string) => { + await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx'); + }; + + const installPackage = async (name: string, version: string) => { + return await supertest + .post(`/api/fleet/epm/packages/${name}/${version}`) + .set('kbn-xsrf', 'xxxx') + .send({ force: true }) + .expect(200); + }; + + const getInstallationSavedObject = async (name: string, version: string) => { + const res = await supertest.get(`/api/fleet/epm/packages/${name}/${version}`).expect(200); + return res.body.item.savedObject.attributes; + }; + + const getPackage = async (name: string, version: string) => { + const res = await supertest.get(`/api/fleet/epm/packages/${name}/${version}`).expect(200); + return res.body.item; + }; + + const createPackagePolicyWithDataset = async ( + agentPolicyId: string, + dataset: string, + expectStatusCode = 200, + force = false + ) => { + const policy = { + force, + policy_id: agentPolicyId, + package: { + name: PACKAGE_NAME, + version: START_VERSION, + }, + name: 'test-policy-' + dataset, + description: '', + namespace: 'default', + inputs: { + 'logs-logfile': { + enabled: true, + streams: { + 'input_package_upgrade.logs': { + enabled: true, + vars: { + paths: ['/tmp/test/log'], + tags: ['tag1'], + ignore_older: '72h', + 'data_stream.dataset': dataset, + }, + }, + }, + }, + }, + }; + const res = await supertest + .post(`/api/fleet/package_policies`) + .set('kbn-xsrf', 'xxxx') + .send(policy) + .expect(expectStatusCode); + + return res.body.item; + }; + + const createAgentPolicy = async (name = 'Input Package Test 3') => { + const res = await supertest + .post(`/api/fleet/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name, + namespace: 'default', + }) + .expect(200); + return res.body.item; + }; + + const deleteAgentPolicy = async (agentPolicyId: string) => { + if (!agentPolicyId) return; + return supertest + .post(`/api/fleet/agent_policies/delete`) + .set('kbn-xsrf', 'xxxx') + .send({ agentPolicyId }); + }; + + describe('input package policy rollback', async function () { + skipIfNoDockerRegistry(providerContext); + + let agentPolicyId: string; + before(async () => { + const agentPolicy = await createAgentPolicy(); + agentPolicyId = agentPolicy.id; + }); + + after(async () => { + await deleteAgentPolicy(agentPolicyId); + }); + setupFleetAndAgents(providerContext); + + it('should rollback package install on package policy create failure', async () => { + await createPackagePolicyWithDataset(agentPolicyId, 'test*', 400); + + const pkg = await getPackage(PACKAGE_NAME, START_VERSION); + expect(pkg?.status).to.eql('not_installed'); + }); + + it('should not add es references on package policy create failure when package is already installed', async () => { + await installPackage(PACKAGE_NAME, START_VERSION); + await createPackagePolicyWithDataset(agentPolicyId, 'test*', 400); + + const installation = await getInstallationSavedObject(PACKAGE_NAME, START_VERSION); + expectIdArraysEqual(installation.installed_es, []); + + await uninstallPackage(PACKAGE_NAME, START_VERSION); + }); + }); +}